eMeLA képe

Van egy viszonylag szerteágazó menürendszer, ahol a menüpontok page tartalmakhoz vannak rendelve.

A gond ott keletkezett, hogy a page-ek beküldésekor néha elfelejtettek menüpontot megadni, így miután elnavigáltak a lapról "eltűnt" az oldal. Aztán mivel nem találták, létrehoztak még egyet :)

Persze irányíthattam volna őket a admin/content/node oldalra , de egyszerűbbnek gondoltam, ha kapnak egy listát az eltévelyedett page-ekről. Csak hát ahogy látom nem olyan egyszerű a dolog....

Időközben, hogy a továbbiakban ez ne történhessen meg, a page beküldő oldalon kötelezővé tettem, hogy meg kelljen adni menüpontot (és mellesleg kiszűrtem, hogy "rossz" helyre se tudjanak menüpontot beszúrni), így ezek után már nem tudnak eltévelyedni a page-ek, de ez persze nem a kérdés megoldása, csak kezelése.

Az adott pillanatban egy lehetséges út volt még, saját modulban létrehozni a listát, de az SQL lekérdezés meghaladta a képességeimet, nevezetesen hogyan lehet azokat a node-okat kiszűrni, melyekhez nem tartozik menüpont ;) De ez nem drupal-os kérdés.

Összességében tehát a problémát a megelőzéssel oldottam meg (az egykéket meg kigyomláltam).
Persze továbbra is érdekel a probléma drupal-os megoldása, mert a kérdés felvetésekor azt gondoltam, hogy csak én nem találom meg ami kellene nekem...

1
0

...mit tudok: http://web.termuves.hu

Sweetchuck képe

Szia

2 külön view-ra lesz szükséged. Ha jól olvasom az egyik már meg is van, csak még nem azt csinálja amit szeretnél.

Egyik
Tartalmakat listáz egy bizonyos szerzőre szűrve
Kell egy oldal útvonallal, úgy hogy a a szerzőt az URL-ből szedje ki.
cikkek-szerzo-szerint/%
Ezt hívják argumentumnak.

Másik
Felhasználókat listáz. Ha jól olvasom akkor ezt már elkezdted.
De views-nak nem mindegy, hogy a "Content Profil"-os node-okat vagy pedig felhasználókat kell listáznia.
Minimum kell két mező:
[nid] vagy [uid] (legyen rejtett)
Felhasználó neve.

Lényeg hogy előbb legyen az azonosító, mert csak akkor lehet felhasználni mint token.
A név mező beállításainál kapcsold ki azt az alap lehetőséget hogy a név hivatkozzon a felhasználói profilra (vagy node-ra), és kapcsold be a "Mező megjelenítése mint link" (valami ilyesmi)
Újabb mezők bukkannak elő. URL legyen:
cikkek-szerzo-szerint/[uid]

Ez lényegében ugyan az mint amit aboros javasolt, csak a "rewrite output" helyett egyszerübb módszer is van hivatkozásra alakítani egy mezőt.

Ha jól emlékszem ilyenről még Vörös-Boros videó is van.

0
0
aboros képe

persze egyátalán nem vagyok benne biztos, hogy ez így működni fog.

pakoljunk bele még flag meg rules modult, hamár lúd legyen kövér. a gyümölcs tartalom típusban legyen egy flag, "felhasználta". ezt egy nem-globál flag és egyik csoport se használhatja. :) itt van a kétségem, hogy ettől még a következő lépés működni fog e.

legyen egy rule, ami tartalom mentésekor, ha a tartalom típusa kedvenc gyümölcs, akkor a szerző nevében ráteszi a hivatkozott gyümölcs nodera a "felhasználta" flaget. (nem tudom eldönteni hirtelen, hogy ez itt eltörik e amiatt, hogy a flag beállításaiban az van, egyik csoport sem használhatja, de az meg szükséges, hogy kézzel ne tudja birizgálni ezt a flaget. ha elrejtem csak, az nem elég, mert gyalog hívhatja a flag urlt és akkor kijátssza a szisztémát. ezt is meg lehetne kerülni de akkor már tényleg rémálom bonyolult lesz a kerülőút)

innen már gyerekjáték, a view ami a node reference mezőt eteti, azokat a gyümölcs tartalmakat mutatja, amiket az aktuális user nem jelölt még meg a "felhasználta" flaggel.

a flag leszedését meg szintén egy rule intézi, ha esetleg törölnénk a kedvenc gyümölcs típust, akkor újra felszabaduljon az a usernek.

vagy x terv, aka special tactics, írunk egy modult, vagyhát vki ír.. :D

0
0

-
clear: both;

Sk8erPeter képe

Köszi szépen, ez kiszedte a domainnévvel tarkított abszolút címet a theme() függvény által visszaadott stringből.
Az l() függvénynél nem úsztam meg a replace-t, de persze a jó megoldás úgyis akkor születik, ha majd modulba pakolom.
Nyilván senkit nem biztatnék eme megoldás használatára. :)

Sajnos még nem tartok ott Drupalból, hogy csuklóból ugyanolyan könnyedén használjam pl. a Form API-t, mint amilyen gyorsan saját kódot "ragasztok" hozzá AJAX-os kommunikációhoz.
Az oldal egy totálisan JS-alapú részéhez volt szükség erre. Az oldal egyes részeit frissítem AJAX-szal, szerveroldalról JSON-ben adom vissza az eredményeket. Az ehhez tartozó kliensoldali kódot elég áttekinthetően és rugalmasan módosíthatóan sikerült elkészíteni, plusz a szerveroldali rész is elég könnyen kezelhető, a saját fenti Drupalos bohóckodást leszámítva. Drupalban egyelőre nem írtam AJAX-szal tarkított modulokat a beépített eszközök segítségével. Lehet, hogy nem nehéz, de gyorsan volt szükség megoldásra, saját kóddal összehozni meg így volt a leggyorsabb.

Köszi még egyszer!

0
0
pp képe

Ezzel a hozzáállással az a probléma, hogy vannak olyan beállítások és megoldások amiket pénztárcával nem lehet bírni.

Nekem egyszer sikerült egy olyan megoldást összekattintanom ami bármilyen nagy szervert leültet. (bármilyet, mivel önmagát dosolta)

Szakértettem olyan oldalt, ahol 1 oldalletöltésből csináltak 30-at különböző AJAXos megoldásokkal.

De ezek csak tipikusan hibás megoldásai egy egyszerű feladatnak. Vannak azonban olyan feladatok amikhez nem lehet gyors megoldást gyártani. Képtelenség. Ilyenkor a feladatot részfeladatokra kell bontani, amik már megoldhatóak rövidebb idő alatt. És itt az időt ne úgy képzeld el, hogy 2 perc, hanem az adott feladatba tartozó elemek számával arányos képletre gondolj. És ez a képlet nem mindig úgy néz ki, hogy mondjuk 2*N (ahol N az elemszám, mondjuk a node-oké), tehát ha kétszer annyi node-od van akkor kétszer annyi teljesítmény kell. Simán lehet valamilyen exponenciális összefüggés, mondjuk kettő az N-ediken.

http://www.cs.elte.hu/~kiraly/alg.pdf

Amiért biztosan hibás a „veszek még vasat” megoldás, mert nem létezik univerzális megoldás. Nincsen. Csak probléma van és megoldás, így együtt. Egy megoldás ami egyik problémára gyógyír lehet a másik problémádat épp elmélyíti. (pl. a veszek még vasat biztos károsan hat a pénztárcádra)

pp

8
0
Sk8erPeter képe

A lényeget már írták előttem, a node-ot nem kell ellátni id-val, van neki.
Egy normális theme ki is írja ezt a template-ben.

Gondolom tudod, hogy JavaScript-kódot nem csak azonosítóhoz rendelhetsz. Nem tudom, egész pontosan mihez kell neked, ezt nem írtad le.
De ha valami általános jellegű scriptet szeretnél írni, akkor egyszerűbb és ésszerűbb lenne az osztály szerint azonosítani. Ez theme-től is függ, hogy alapból mit pakol a node-okat megjelenítő template-be - ami tudtommal mindegyik theme-nél megvan: "node".
A Zen theme egész hosszú listát pakol be az osztályokból, amik nagyon leegyszerűsítik az azonosítást, egy példa a /node elérési útról, az egyik node wrapper div-jének osztályai:
class="node node-type-story node-promoted node-by-viewer node-teaser build-mode-teaser clearfix"
Ezek alapján könnyű általános JavaScript-kódot is írni a node-okra.
Írj több infót, mire is kell neked az azonosítás, milyen JavaScript-kódot szeretnél írni, és akkor aszerint segítünk.

0
0
edgarpe képe

Ez sajnos minden egyes bejegyzésről küld email-t, az meg nem jó, mert már egy egész kicsi site is tele van page-not-found bejegyzésekkel. Szűrni ugyan lehet severity-re, de az sem jó megoldás szerintem. Nálam most pl. bekerült vagy 10.000 notice bejegyzés 24 óra alatt egy apróság miatt. Az ilyeneket is szeretném megfogni ezzel.

Off: az apróság egyébként az volt, hogy egy cusom panels pane-ben PHP filterrel futtattam kódot, és így kommenteztem ki:
<?php/* a kód ami nem kell */?>
Erre tele lett a watchdog ilyenekkel:
Notice: Use of undefined constant php - assumed 'php'
Így már nem volt notice:
<?php /* a kód ami nem kell */ ?>

0
0
Sk8erPeter képe

Köszi a rövid beszámolót! Picit túl általános volt számomra, miben rugalmasabb ennyivel, mint az Ubercart? Csak röviden is elég, nem akarom telenyomni a topicot hsz.-ekkel, de tényleg érdekel a téma, viszont sajnos most jódarabig nem lesz időm kipróbálni a Commerce-t, ezért picivel több információmorzsának még nagyon örülnék, ha nem gáz. :)
Az biztos, hogy Ubercarthoz azért egyelőre jóval több modul készült, ami azért nagyon nem mindegy, ha valaki időt akar spórolni, és épp olyanra van szüksége, amit mondjuk a Commerce-hez még nem írtak meg; de sok helyen olvastam már, hogy a Commerce a jövő, de sajnos eddig tök általános infómorzsákat kaptam a miértekről, bár nem is mélyedtem bele a témába. Jól jönne ezért némi tapasztalat olyantól, aki élesben is használja, hogy mégis mitől jobb a Commerce, mint az Ubercart, legalább röviden. Mert általánosabb entitásokra épít, mint mondjuk az Ubercart, és ez kínál némi rugalmasságot? Mintha valahol olvastam volna, hogy azért az Ubercartot is modernizálták a 7-es változatnál (én csak 6-oshoz használtam Ubercartot, és 6-osban mai fejjel azért még nagyon sok minden iszonyat melós volt), de biztos valamilyen szempontból gyengébb, ha ezt írod, na de miben gyengébb?
Előre is köszi, ha még írsz róla pár mondatot!

0
0
Sk8erPeter képe

Igazad van, végül is elmentődik minden adatbázisba, nem csak a kódból kotorja ki a modullal definiált content type-okat sem. Kérdés, vajon ez tényleg hatékony-e így. (Mindent jól benyomni serializálva adatbázisba, aztán unserializálni, jó kis memóriazabáló módon...)

Én úgy gondolom, hogy a node_type_save() elment egy tartalomtípust, mint pl. amikor modulból létrehozunk egy tartalmat vagy bármit. A hook_node_info() pedig definiál egy olyant, ami a modul működéséhez feltétlenül szükséges.

Ja, hát én arra gondoltam - bár lehet, hogy nem sikerült jól kifejezni magam az eredeti hsz.-ben, aztán még beleírtam egy téveset is jól összecsapva -, hogy a node_type_save-vel mentett cuccok például az admin-felületen létrehozott content type-ok, tehát amiket én összeklattyogtatok a GUI-n, VAGY olyanok, amiket mondjuk modulból, "programmatically" hozok létre, a megfelelő paraméterekkel, míg a hook_node_info() meg arra szolgál, hogy egy modullal tudjak én is kínálni egy modul szerinti default tartalomtípust (ahogy írtad, amire feltétlen szükség van), ami aztán végül szintén bekerül az adatbázisba, ahogy írtad is.

Szóval ez még nem a Drupal 8, ezért itt még nincs olyan az alaprendszerben, hogy egy adat „csak úgy jön” valahonnan.

Ezt hogy érted? Mármint az említett dolgok miben lesznek mások D8-ban?

0
0
vlezli képe

Jó lett! :)

Az SMTP Authentication Support modul teljes mértékben megoldotta a problémát. A szolgáltató által nyújtott SMTP szervert állítottam be ugyanazokkal az adatokkal, ahogy egy levelező kliensben kellene (portszám, auth-adatok)és egy csapásra megoldódott a probléma.

Három honlapnál is kipróbálva mindent (formkitöltés, regisztráció, új jelszó kérése)a kimenő levelekben a feladó a fenti modulban beállított lett.

További kísérletezéssel viszont kiderült, hogy csak azoknál a honlapoknál volt ilyen form feladói email probléma, amelyeket más tárhelyről költöztettem a mostani tárhelyre. Azok a honlapok, amelyeket már alapból ide telepítettem fel, nem mutattak ilyen hibát, egyből minden jól működött.

Ebből valami olyasmire gondolok, hogy az áthozott honlapokban maradt valami fals beállítás, ami miatt a formok használatánál nem mentek volna ki a levelek a honlap saját email címéről. Valószínűleg ilyen esetekre kellett beállítanom egy alapértelmezett email címet a tárhelyen, ami akkor is működik, amikor egy-egy honlap saját email címe valamiért nem használható. Ilyenkor az alapértelmezett email cím lesz a feladó, bármelyik honlapról is legyen szó a tárhelyen működőek közül.

Kicsit nyakatekert a magyarázatom, de valószínűleg nem járok messze az igazságtól.

De bármi is okozta a hibát, egy a lényeg, hogy most már minden rendesen működik!

Köszönöm szépen a segítséget!

2
0

Veres László