Sziasztok!
Érdeklődni szeretnék, hogy létezik-e olyan modul ami megvalósítaja azt, hogy amikor taratalmat viszek be akkor a közzétételi beállításoknál ki lehessen választani azt, hogy blokkban jelenjen meg. Jobb sávban, ball sávban, fejléc vagy az általam deklarált blokkok valamelyikében. Létezik erre blokk? Ha nem akkor van valami javaslatotok, hogy lehetne azt megvalósítani?!
Előre is köszönöm!
Fórum:
blokk hozzáadása
Ez pontosan azt csinálja amit szeretnél!
Palócz István
https://palocz.hu | https://tanarurkerem.hu
node_load($nid)
Ha valamilyen különös oknál fogva mégis egy adott story vagy page tartalma kéne (vagy bármilyen más node), akkor azt a node_load függvénnyel el tudod érni. Példa:
csak ez nem formáz
szóval ez csak kiömleszti a body -t de semmi formázás, v. beviteli forma szerinti feldolgozás...
azt mivel kellene?
Helyettesítés
Az adatbázisban eltárolódnak a formázások, a sortörés kivételével. Vagyis az is benne van, csak nem html (br), hanem php sortörés (\n). Nincs más dolgunk, mint ezeket kicserélni, én erre reguláris kifejezést javaslok, bár nem vagyok biztos benne, hogy ez így szokás. Mindenesetre működik. A node címét pedig a $node->title -el kapod vissza.
Mikor ilyen adatszerkezetekkel bánsz, ajánlom a var_dump php-s függvényt.
részleges megoldás
a megoldásod működhet ha html, vagy filtered html a beviteli mód...
node mi van ha bbcode a beviteli forma?!
szóval ez így nem jó!
én a node_prepare -al próbálkozgatok, de nem ismerem még igazán a beépített fv tárat... hasonló gondom van ebben a topic -ban.
tartalomtípus függő
Igen, a cserélgetős megoldásom csak html-ként jó, de ez volt a kérdés, nem? Hogy nincs benne formázás. Ha már más tartalomtípusokról van szó, részletesebben meg kell vizsgálni, hogy miből épül fel, és úgy kell összerakni.
ne vágjunk fát
Nem kell itt favágó megoldásokat használni, meg megírni mégegyszer, ami a Drupalban benne van. Szépen megnyitjuk a node.module kódját, megnézzük mit csinál a node_view, és lőn! Itt látszik, hogy a lényeget (a formázás átalakítását is) a node_prepare() csinálja, és hogy a már hurkok meghívása is érdekes lehet, ha vannak azt kihasználó moduljaid telepítve.
Igyekszem
Igyekszem megfogadni a tanácsot, komoly erőfeszítésembe tellik, mert ha nem figyelek, valahogy mindíg a farigcsálásnál lyukadok ki. De igyekszem :-)
nl2br
;) van ám ilyen függvény is.
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Okés
Közben megvilágosodtam :)
:)
Köszönöm, pont erre volt szükségem. Tudtok valami, jó helyet ami nem fórum, ahol turkálni lehet hasonló jó megoldásokkal kapcsolatban? CVS?
Na azért
Örülök neki :)
csak egy apróság
Azt szeretném még megkérdezni, hogy mivel kell kiegészíteni a kódot, hogy a blokk mindenhól látható legyen. Ha kilépek akkor is. Vagy ha meg tudnád mondani hol találom meg a szükséges kampokát azt is megköszönném!
apróságok
A blokk mindenhol látszani fog, ha máshogy nem rendelkezel (az edit lapon tudod állítani, hogy melyik node-oknál vagy melyik node-oknál nem illetve egy php kód visszatérésének függvényében). A modulokban használatos ,,kampó'' az a hook_block(), hogy ha ezt kérdezted, de annak tudomásom szerint itt most nincs szerepe.
Formáz az
De formáz az. A node->body -ba már eleve formázott tartalom van. Olyan, amilyet megadtál a node felvitelénél. Az új node-ban, blokkban kell megmondani, hogy melyik filtert akarod használni. Ha a blokkban szeretnéd használni a használd a check_markup()-ot.
--
Aries
http://aries.mindworks.hu
Ugyanezt szeretném..
Sziasztok,
~ugyanazt szeretném elérni mint a topikindító. Egy page típusú node-ot szeretnék megjeleníteni egy mindenki számára látható blokkban, de én már itt elakadok:
Az eredmény három hiba a log-ban:
1. Invalid argument supplied for foreach() - node.module - 358. sor.
2. implode(): Bad arguments. - node.module - 363. sor.
3. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 query: SELECT n.*, u.uid, u.name, u.picture, u.data FROM node n INNER JOIN users u ON u.uid = n.uid WHERE (n.language ='hu' OR n.language = '') AND - database.mysql.inc - 66. sor.
Mi lehet a gond? Az számít, hogy 4.6-ot használok?
ui.: Kezdô vagyok.
Más verzió, más utak
Szia!
Valójában soha nem használtam 4.6-os verziót, de az api oldalon (http://api.drupal.org/api/4.6/function/node_load) látható, hogy ebben a verzióban, a node_load nem egy node id-t vár első paraméternek, hanem egy asszociatív tömböt, amiben megadhatod, hogy mi alkapján töltse be (hasonlóan, mint a 4.7.x-ben a user_load). A kódod tehát valahogy így kell, hogy kinézzen:
ha ez megvan, a var_dump($node) paranccsal írasd ki, milyen változói vannak a kapott objektumnak, ezekután úgy darabolod illetve jeleníted meg, ahogy neked tetszik. Az előző hozzászólásokból ismert node_prepare() függvényre is szükséged lehet.
Valaki összefoglalhatná...
Valaki összefoglalhatná az egészet, hogy akkor most hogy is kellene egy node tartalmát blokkban megjeleníteni (mert én már elvesztem az erdőben ;) ). Akkor fel is kerülhetne a kézikönyvbe, a tippek, trükkök közé.
Köszi, Pali
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan