Sziasztok!
Van valakinek ötlete, hogy miként lehet megoldani, hogy tartalom beküldéskor beküldésekor automatikusan létrejöjjön a pathauto által létrehozott aliason túl egy második (eltérő felépítésű) alias is?
Köszönöm a segítséget!
Üdv.:
Dani
Fórum:
Annyiban segíts hogy mi a
Annyiban segíts hogy mi a acélod ezzel? Eltérő felépítés mit takar? Rules modullal talán megoldható.
Drupal full-stack developer at Wunderman Thompson Budapest
A tartalom megjelenítést
A tartalom megjelenítést akarom szétválasztani. Adott egy tartalom, vannak hozzászólásai. Egy bevezetőt tartalmazó nézetben létrehoztam egy hivatkozást a hozzászólások számával, valamit egy tovább a cikkre hivatkozást.
A cél az lenne, hogy a két link ugyanarra a tartalomra mutasson, de a betöltéskor meg tudjam határozni, hogy melyik linkkel történt a megnyitás. Az egyik esetben csak a tartalom jelenik meg, a másikban csak a hozzászólások lenyitható tartalom megjelenítéssel.
Ahogy eddig próbáltam:
* rules - create content's alias: valamiért nem hozta létre a módosított aliast, csak duplikálta a meglevőt (alias: $node -> path . '_comments');
* Saját modul - nodeapi $op = 'insert': amikor beküldöm a hírt még nincs meg az útvonala, ugyan létre tudom hozni magam is az a mintát amit a pathauto-nal beállítottam, de ha később két ugyanolyan nevű tartalom lesz - bajosan fogja beletenni a -0 formát;
... ha bele tudnék akaszkodni a node_save utáni részbe akkor talán már létezne a $node -> path és működne az elgondolás, de eddig nem találtam rá, hogy hol tudnám megfogni.
Azon gondolkodom, hogy ha más nem - egy rules-t (php) futtatok, ami beleteszi az adatbázisba a szükséges sort és akkor tuti az kerül bele amit szeretnék.
Szerintem csak
be kéne állítani a pathauto-nál, hogy hagyja meg az előzőt is, ha újat hozol létre hozzá.
admin/build/path/pathauto -> Általános beállítások ->
Update action:
Create a new alias. Leave the existing alias functioning.
Üdv!
Dudás József
Köszönöm a hozzászólásokat
Nem hiszem, hogy ez lett volna az okozója annak, hogy duplikálta a meglevő álnevet.
Megírtam rules - php kombóval az eredményt, és sokkal gyorsabban lefut, mint bármilyen rules-en belüli bűvészkedős megoldás.
Hátha másnak is jól jön:
Szabály: Új tartalom mentése után
Ha: létrejött tartalom: hír (feltétel - opcionáis)
Akkor (do): php kód bevitele:
/***************************************
* src = node/nid, $node -> nid ($path)
* dst = path, $node -> path ($alias)
* language = $node -> language ($lang)
****************************************/
$path = 'node/' . $node -> nid;
$alias = $node -> path . '_comments';
$lang = '';
$res = db_query("INSERT INTO {url_alias} (src, dst, language) VALUES ('%s', '%s', '%s')", $path, $alias, $lang);
if ($res === TRUE) drupal_set_message('Az útvonalálnév alias létrejött.', $type = 'status', $repeat = TRUE);
Megj.: Szükség szerint lehet többnyelvűsiteni t() függvénnyel a feliratot.
Egyéb: a language paramétert azért nem adom meg, mert onnantól a _comments lesz a default node path.
... a célt megvalósítja ez a megoldás - egy korábbi kérdésem 'update'-elem majd, ha kész lesz a teljes megoldás.
Köszönök minden hozzászólást, segítséget!
Programozás nélkül, szerintem, sehogy
Ilyenkor sokat segít, ha a problémádat írod le, minél egyszerűbben, nem azt, hogy te hogyan próbáltad…
Szal, van egy node/xy tartalmad, a path alias-a legyen mycontent-xy, amit egyszer megjelenítenéd hagyományosan, egyszer pedig úgy, hogy csak a commentek.
Mi lenne, ha /mycontent-xy lenne a teljes nézet? Ekkor innen a commenteket el kell tűntetned. A másik a /mycontent-xy?showcomments url, ami a ?showcomments-ben tér el az előzőtől.
Ekkor már van néhány lehetőséged, de az url még mindig ua. csak adtál egy paramétert.
preprocess: vizsgálod az url paraméter meglétét, és attól függően a commenteket betöltöd, vagy sem, a node tartalmakat mezőit megjeleníted vagy sem.
Másik megoldás lehet, ha Display Suite-el állsz neki: két megjelenítési módót készítesz, az egyiken nincsenek hozzászólások, a másikon vannak, és az url paraméter meglététől függően változtatod a megjelenítést.
A harmadik…
Figyelem, nem konkrét megoldási javaslatokat írtam, módszereket, hogy hogyan lehetne… Vagyis, én valahogy így csinálnám.
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok
Köszönöm a segítséget!
Nagyon nagyon túlbonyolítottam az egészet. Gyakorlatilag itt a megoldás:
http://drupal.hu/comment/58926#comment-58926
Az útvonalálnevekhez hozzá sem kell nyúlni, meg semmihez.
... mindegy - talán nem volt teljesen haszontalan ez a szál. Eszembe nem jutott volna, hogy ennyire egyszerű a történet. :S