-
IT café
Ajánlott szakirodalmak a teljesség igénye nélkül (a lista még bővülhet):
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Ismerős a jelenség, úgy nevezik: White Screen of Death (WSOD)
A linkelt oldalon sok megoldási lehetőséget is kínálnak.Az admin-oldalakat nem éred el? Ahogy írtam is korábban, ez elő szokott fordulni esetenként, hogy pl. az adatbázislogot megnézed, azon a címen, amit írtam fentebb (az is a 6-osra vonatkozott, feltételezem, mi egymás közt a 6-osról beszélünk, mert eddig ha jól tudom, arra fejlesztettél).
Azt is csinálhatnád első körben tesztelésként, hogy a cache-táblákat törlöd: [link].
Lehet admin-felületről, meg adatbázisból, manuálisan (most ehhez férsz csak hozzá ezek szerint).Mondjuk lehetne kóddal is ugyanezt, úgy, hogy ezt az index.php fájlod elejére teszed ÁTMENETILEG (aztán kitörlöd az első futtatás után): drupal_flush_all_caches().
De így:
require_once("./includes/bootstrap.inc");
$cookie_domain = $_SERVER['HTTP_HOST'];
drupal_bootstrap( DRUPAL_BOOTSTRAP_FULL );
drupal_flush_all_caches();
die();Ennek is lehetne adni egy próbát.
Szóval én első körben mindenképp a cache-táblákat buzerálnám ilyen esetben, az már annyiszor segített.
Aztán ha ez sem jött be, végiggondolnám még egyszer, mit cseszhettem el.
Persze adatbázis is megtörhetett valahol, de akkor érdekes, hogy így jelentkezik, nem mondjuk egy query sikertelenségében.
Meg nehéz elképzelni, hogy egy adatbázissérülés csak az egyik projektet érintette volna....Mondjuk persze nem nehéz akkor, ha mondjuk csak az adott adatbázis fájlja sérült (pl. MySQL-nél).[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #102 üzenetére
Semmilyen oldalt nem érek el, sehogy nem tudtam előcsalni semmit.
Végigpróbáltam mindent, amit javasoltál, cache táblákat is ürítettem az adatbázisban.Töröltem mindent, leszedtem a szerverről az egész cuccot, betöltöttem az adatbázist is... és működik!
Vagy nagyon szégyenlős lett egyik napról a másikra a lokális változat, vagy valami orbitális baklövést követtem el, amire rá sem tudok jönni. Töröm a fejem, melyik változat a valószínűbb...
Szerk:
szerintem kimondatlanul is tudod, de azért: kösz a segítséget![ Szerkesztve ]
-
Sk8erPeter
nagyúr
Nincs mit!
Akkor ezek szerint a hibakeresés véget ért.
Nagyon sok oka lehetett, de az a baj, hogy fel kellett fedeznem, hogy Drupalban a hibakezelés a 6-osban legalábbis igencsak erősen hagy kívánnivalót maga után (a 7-essel egyelőre nem szoptam annyit, csak egy viszonylag egyszerű többnyelvű céges honlapot készítettem el), pl. ilyen esetben is elnyomja a hibákat, pedig mondjuk normálisan kivételkezeléssel pl. szerintem lehetne egyértelműsíteni, mi is a gond ilyen fatális jellegű hibáknál is, mint a WSOD. A hibák köre elég tág, épp ezért kellene rájuk felkészülni, amint felmerül a lehetőség, betenni a megfelelő hibaellenőrzést. Így a hibák csekkolása jó hosszú lehet, de legalább ilyenkor nem nézel, mint borjú az új kapura, hogy most akkor mi a sz@rt rontottál el (ismerem az érzést).Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #104 üzenetére
Véget ért, a ló rúgja meg. Utálom feladni, de bizonyos energia+idő beleölése után tovább nem vagyok hajlandó értelmetlenül pocsékolni az erőforrásokat, ha van kerülő megoldás.
Az első többnyelvű drupal 6 oldallal azért kínlódtam. Amit most csináltam, ott már elég gördülékenyen ment a többnyelvű tartalmak kezelése. Mintha azt olvastam volna régebben, hogy a 7-ben sokkal jobb az internacionalizáció kezelés.
Amikor legutoljára néztem - ami nem tegnap volt - a Drupal 7-et, még sok modul nem volt portolva, vagy alfa / béta státuszban voltak. Ha már CMS, akkor nem szeretném az időmet bug keresésssel tölteni és hekkelni a rendszert. Persze a másik oldalon meg ott van, hogy akkor lesz kiforrott a verzió, ha minél több hibát jelentenek és javítanak.
Ahogy látom, már a Drupal 8-cal foglalkoznak. Nem tudom, a 7 beérett-e már annyira, mint a 6, de hogy már a következő verzión fáradoznak ahelyett, hogy a 7 lenne teljes értékű. Hmm. Mondjuk a custom modulok karbantartása biztos nem a core fejlesztők feladata. -
Sk8erPeter
nagyúr
Ja, megértem, hogy nem akartál időt elcseszni arra, hogy debuggolj.
Mondjuk későbbi tanulságként én akkor is végig szoktam szívni ezt az időszakot, miután már a fél világot elküldtem a halál farkára, és a fél hajállományomat kitéptem.Ja, a 7-esben elég sok minden nagyon kézenfekvően meg van csinálva, szerintem kellemes az átállás a 6-osról, tetszik a full AJAX-os új admin-felület is, szerintem egész jól eltalálták. Könnyen kezelhető, átlátható, modern felület, pont jó.
Igen, én is azért részesítettem előnyben úgy fél éve egy projektnél a 6-os Drupalt, mert rengeteg modul még nem volt kész 7-eshez, vagy írták a modul oldalán, hogy nem is tervezik a 7-esre fejlesztést.
Mondjuk ezen tanultam meg Drupalt fejleszteni, elég volt hozzá egy viszonylag összetett feladat, tele szívással.
Ha most kezdenék el egy projektet, egyértelműen a 7-est választanám (ahogy azt az egyszerű céges honlapot is ebben készítettem, és nem bántam meg). Az biztos, hogy a 7-es bőven tartogat számomra újdonságokat, mert nagyon sok mindent változtattak a 6-oshoz képest, sok minden ésszerűbb lett a modulfejlesztés terén.
Az ImageCache és a CCK is a core-ba került, ami mondjuk szintén igen jó.A Drupal 8 újításairól még őszintén szólva én sem olvastam semmit, hogy mi is az oka, hogy major verzióváltásra volt szükség, milyen komolyabb dolgot változtatnak a core felépítésén, ami nem fért volna bele egy minor verzióváltásba, tehát egy laza update-be.
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #106 üzenetére
Ha ennyire pozitív a véleményed / tapasztalatod, el kell gondolkoznom a Drupal 7 felhasználásán legközelebb. Vagy inkább a 9-én, ha már ennyire nyomják
-
Sk8erPeter
nagyúr
Jaja, nekem kifejezetten tetszik. Azt persze meg kell szoknod az átálláskor, hogy elég rendesen átstrukturálták, nagyon sok minden változott, az elérési utak is mások lettek, az admin-felületen elérhető menüpontok nevei is helyenként újak lettek, más sorrendben vannak, stb.
Eleinte akadós, de azért gyorsan rá lehet állni. Amúgy az új, default AJAX-os felületnél van egy shortcut menü, amire a saját linkjeidet rápakolhatod, olyan menüpontokat az admin-felületen, amit gyakran használsz, így gyorsabban eléred. Csak van egy korlát, hogy mennyi fér rá.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #108 üzenetére
Egyébként nekem ami nagyon tetszik, az a modultelepítés módszere: ráklikkelsz a modulok listáján az "Install new module" linkre, a megjelenő szövegdobozba csak beilleszted a modul hivatalos oldalán található tar.gz vagy zip linket a projektre, leokézod, az meg letölti és kibontja a modulok saját könyvtárába, még csak elő sem kell kapnod az FTP-klienst.
Ezután már ott az engedélyezés lehetősége.
(Persze ehhez először legyen rendben a tmp és a jogosultságok.)
Lehet, hogy önmagában nem nagy szám, de szerintem ez is egy a sok közül, ami nagyon kényelmessé teszi a Drupal használatát, főleg az elején, amikor még csak a core modulok vannak fent, és az ember nyilván teleszórja kismillió extra modullal.Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #109 üzenetére
Ez a modul telepítési módszer már önmagában is felgyorsítja a munkafolyamatot.
Meglátjuk. Ha majd a 7-sel kapcsolatos kérdésekkel nyaggatlak, átálltam. -
MODERÁTOR
Sziasztok!
Modult kikapcsolom, eltávolítás, kiírja, hogy eltávolítva majd visszamegyek és ott vigyorog a listában továbbra is. Mi lehet a gond?
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Sk8erPeter
nagyúr
Siriusb már megírta a választ, annyit még hozzátennék, hogy eléggé gond lenne, ha nem listázná ki továbbra is, mert akkor az kvázi azt jelentené, hogy soha többé nem tudod feltelepíteni. A Drupal beolvassa a sima modules és sites/all/modules és sites/valamidomain/modules könyvtár tartalmát is, megkeresi a megfelelő modulfájlokat, és ha azokat rendben találja, megjeleníti a modulok neveit ebben a listában, amik ezek alapján engedélyezhetőek.
Ezt mutatja meg a modulok listája. Tehát ha továbbra is ott van a listában, az azért van, mert fizikailag megtalálható a fájlrendszerben. Ettől még engedélyezve, telepítve nincs, ha már végrehajtottál egy uninstallt.Sk8erPeter
-
PowerBuldog
veterán
Hali!
A múltkori hibákat csak egy drupal újratelepítés oldotta meg. Azóta jól megy.
Most viszont van egy olyan "gondom" hogy bizonyos blockok tartalma adminisztrációs felületen nem látszik. Csak egy configure felirat. Ha kijelentkezek akkor megjelenik rendesen.
Hol nézelődjek a PHP-ben, hogy ezt az admin felületen is ugyan úgy lássam?Ja igen, a block tartalma full html-re van állítva, és egy img tag-el berakott képet tartalmaz.
MOD:
nem tudom, hogy másoknak segítség-e, mert saját készítés sminkről van szó, de így sikerült megoldani:
block.tpl.php fájlból törölni kellett a következő sort
"<?php print render($title_suffix); ?>"
Így ugyan úgy jelenik meg admin felületen is.Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html
-
Sk8erPeter
nagyúr
válasz PowerBuldog #115 üzenetére
Szerintem ez nem megoldás - inkább valami olyat tudnék elképzelni, hogy a címek kicsúsztak, így bár ott voltak az oldalon, nem voltak láthatók, tehát valami CSS-módosításra lett volna szükség.
Idézek a jól kommentezett Zen theme-ből, mire is jó az a $title_suffix:
* - $title_suffix (array): An array containing additional output populated by
* modules, intended to be displayed after the main title tag that appears in
* the template.Tehát előfordulhat olyan eset, hogy épp hiányozni fog a megléte, de inkább kiszedted - az ilyesmik előtt érdemes inkább developer console-on nézelődni, nincs-e más megoldás. Szerintem.
==
Szerk.: ja, egyébként érdekességként: Drupal 7 Theming cheatsheet.[ Szerkesztve ]
Sk8erPeter
-
Speeedfire
nagyúr
Kis olvasni való. Nagy Gusztáv kicsit átdolgozta a könyvét és most már a 7-es verzió van célkeresztben. Jó olvasást.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz Speeedfire #117 üzenetére
Így van, de már nem is csak "célkeresztben" van, hanem már kész. (legalábbis a v1)
Itt megtalálható a tartalomjegyzék is:
Drupal 7 alapismeretekMeg is kérem, hogy tegyék be az első hsz.-be, ez mindenképp kötelező információ egy ezzel foglalkozó magyar fórumon.
[ Szerkesztve ]
Sk8erPeter
-
SecMan
csendes tag
Drupal 7 alatt, hogy tudnám azt megoldani, hogy egy tartalomtípus egy másik tartalomtípus mezőit és azok értékeit átvegye?
Tehát létrehozok egy node-ot, kitöltöm a mezőit, majd egy másik tartalomtípus beküldésénél kiválasztom azt, hogy melyik nodeból vegye át ezeket és jelenítse meg. -
Speeedfire
nagyúr
válasz Sk8erPeter #118 üzenetére
Úgy értettem, hogy célkeresztben, hogy a 7-essel foglalkozik.
Majd ha lesz egy kis időm végigolvasom.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Siriusb
veterán
Kicsit szórakozok most a Drupal 7-tel.
Létrehoztam egy content type.t, de nem találom, hogy a mezőket hol lehet csoportosítani. Ez megszűnt volna?Ellenben a multilanguage site-ot előtudtam készíteni, csak még azt nem találom, hogy a prefix-et hol kell engedélyezni. Vagy elég a Languages / Detection & selection-ben az URL-t kipipálni? No majd kiderül.
-
Siriusb
veterán
Nos, úgy tűnik, az internationalization modul teszi hidegre a pathauto-t. Telepítéskor ezt az üzenetet kapom:
Notice: Array to string conversion in i18n_string_group_string_list() (line 273 of /.../sites/all/modules/i18n/i18n_string/i18n_string.admin.inc).
Valami ötlet, hogy ne csak magamban beszélgessek?
-
Sk8erPeter
nagyúr
Jé, van élet a topicban. (bennem most nincs, túl sok volt a pia )
Hmm, ez fura. Melyik változatot használod ezekből?
A multilanguage dolog azóta végül akkor összejött?
(#123): inkább írtál volna konkrét URL-t, most elő kellett kotornom.
Most nem vágom, erre gondoltál?
/admin/config/search/path/patternsA másik, ha már erről a beállítási oldalról beszélünk.
Kérdezted priviben, hogy lehet Pathauto-nál fieldekből generáltatni az URL aliast.
Létrehoztam egy "My Test Content Type" nevű content type-ot, azonbelül egy field_stuff azonosítójú mezőt, és a "Pattern for all My Test Content Type paths" részhez ezt írtam:
my-test-ct/[node:field_stuff]
Ez nálam jól működik, persze miután mondjuk adott node-nál az Edit lapon az "URL path settings"-en belül a "Generate automatic URL alias" checkboxot bepipáltam.Sk8erPeter
-
Sk8erPeter
nagyúr
Ezt sikerült megoldani azóta? Annak idején erre elfelejtettem válaszolni, de láttam a kérdésedet a Drupal topicban, most hirtelen nincs kedvem előkotorni, de láttam, hogy érkeztek kommentek, és kíváncsi lennék, végül mi lett a megoldás.
Más:
Nagyon érdekes hiba jött elő nálam a napokban Drupal 6-nál, Ubercartnak az uc_products táblája lekérdezésekor, amikor csak a nid-re vagyok kíváncsi, itt leírtam részletesen:
db_query('SELECT nid FROM uc_products'); doesn't give any results! Why?Nincs bárkinek bármi ötlete, hogy ezzel mit kezdjek? Egyszerűen semmi elképzelésem sincs, mi okozhatja ezt a problémát, annyira bugyutának és érthetetlennek tűnik az egész.
[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #127 üzenetére
Igyál aludt tejet, vagy mit tudom én mit szoktak ilyenkor csinálni...
A multilanguage dolog azóta végül akkor összejött?
IgenMost nem vágom, erre gondoltál?
/admin/config/search/path/patterns
Igen. Megy ez neked.my-test-ct/[node:field_stuff]
Ez nálam jól működik
Milyen modulok vannak még installálva? Pl internatiolizatis, variable?Vagy ennyire részrehajló a drupal, téged szeret, engem szivat? Vagy én szivatom magamat?
-
Sk8erPeter
nagyúr
Ja, beleprogramozták a részrehajlást.
A tesztelési célra felrakott Drupalomon próbálkoztam, sok modul van fent:
http://i.imgur.com/67G3e.jpg
Bocs, az Imgur kissé lebutította a minőségét, azért ilyen fos minőségű, de talán olvasható még.
Szerintem mondjuk ebből csak a Token és a Pathauto a lényeges...Ja, amúgy amivel én próbálkoztam, az egy sima textfield. Te milyen mezővel próbáltad?
[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #130 üzenetére
Lehet sutyiba adtál nekik valami patch-et, ami beleraktak, belőled kinézem.
Öregem, van ennyi modul egyáltalán, vagy csak kivágtál a képből egy részt és azt másoltad egymás alá? S azért fogod másra a rossz minőséget, mert nem akartad, hogy észrevegyem. De szemfüles vagyok ám!
Nálam olyan modulok vannak, hogy: ctools, fieldgroup, date, adv help, token, internationalization, variable, views.
A fieldgroup bekavarhat, mert amikkel próbáltam, az csoportban van benne? Hmm, holnap megnézem. Egyébként én is textfielddel próbáltam.Lássalak ám holnap is!
-
Sk8erPeter
nagyúr
Már ma is itt vagyok, muhahaha!!!
Ez amúgy nem is olyan sok modul.Hogy a fieldgroup bezavar, az nem egy hülyeség, de ez nyilván csak akkor derül ki, ha
1.) kiveszed belőle, és úgy teszteled
2.) létrehozol egy új mezőt tesztelési célból, és azt adod meg patternnek.Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #132 üzenetére
Próbáltam egy új telepítéssel, ott működik a field_groups-ban lévő mező is az url alias-ban.
Viszont a [node:original:source:nid] nem akar megjelenni itt sem! Angol és magyar nyelvű tartalom, URL úgy nézne ki:
some/thing/1 (az eredeti változat NID=1) illetve vala/mi/1 (a magyarra fordított node, NID=2)Azt hiszem a fejlesztői verzióba törlöm a content type-t és felveszem újra, hátha, bár nem sok kedvem van ennyit kattintgatni...
A [node:original:source:nid] tokent kipróbálnád te is? Kösz.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
[node:original:source:nid]
Ilyen szinten nem ismerem ezeket a tokeneket, de miért lenne ez jó neked ehhez: "some/thing/1 (az eredeti változat NID=1) illetve vala/mi/1 (a magyarra fordított node, NID=2)"?
Most létrehoztam egy "Test multilingual type" nevű típust, és nálam most a magyar, német és angol nyelvek vannak engedélyezve, és az /admin/config/search/path/patterns elérési úton a következők vannak erre a típusra vonatkozóan:
Pattern for all language neutral Test multilingual type paths
Pattern for all English Test multilingual type paths
Pattern for all German Test multilingual type paths
Pattern for all Hungarian Test multilingual type pathsTehát mindegyikre külön-külön megadhatok egy mintát.
Ergo az esetedben a "Pattern for all English Test multilingual type paths" lehetne some/thing/[node:nid], a "Pattern for all Hungarian Test multilingual type paths" pedig vala/mi/[node:nid].Ez így nem jó neked?
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #134 üzenetére
Nem kell ismerni őket, elég kattintgatni a replacement patterns szekcióban
some/thing/[node:nid] és vala/mi/[node:nid] esetén a NID nem lenne ugyanaz, a forrás és a fordítás más node-ban van. Viszont ha egy google analyticsra ránézek, nem fogom tudni, hogy ez a kettő ugyanarra a tartalomra hivatkozik, csak más nyelven.
Pl. lesz cat/1, cat/9, cat/11 és macska/5, macska/10, macska/19 az előbbieknek megfelelően. Ebből nem fogok rájönni hogy a macska/5 tulajdonképpen az 1-es számú. -
Sk8erPeter
nagyúr
Jaaa, hogy így szeretnéd, értem....
Viszont olyan tokent, amit mutattál, nem láttam sehol (azért írtam, hogy ennyire nem ismerem őket, mert hátha csak nem találkoztam vele, de szerintem azért nem, mert ilyen nincs ), csak ilyet:
[node:source:nid]Ez működik is.
Ezt a mintát hoztam létre a /admin/config/search/path/patterns oldalon a korábban említett content type-ra:
Pattern for all language neutral Test multilingual type paths
test-ml-neutral/[node:title]/[node:nid]/source-[node:source:nid]Pattern for all English Test multilingual type paths
test-ml-english/[node:title]/[node:nid]/source-[node:source:nid]Pattern for all German Test multilingual type paths
test-ml-german/[node:title]/[node:nid]/source-[node:source:nid]Pattern for all Hungarian Test multilingual type paths
test-ml-hungarian/[node:title]/[node:nid]/source-[node:source:nid]Tehát test-ml-NYELV/NODE_CÍME/NODE_ID/source-FORRÁS_NODE_ID.
Screenshot
ANGOL (/test-ml-english/test-multilingual-type-english/21/source-21)
NÉMET (/de/test-ml-german/test-multilingual-type-german/22/source-21)
MAGYAR (/hu/test-ml-hungarian/test-multilingual-type-hungarian/23/source-21)Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #136 üzenetére
[link]
Nálam van. Viszont nálam nem működik úgy az alias generálás, ahogy nálad, szóval cserélnék.Pl. most beírtam még 1-2 mezőt, és nem akarja legenerálni az új minta alapján, csak a régivel.
A Te általad javasolt token működik.Hrrrrr.
-
Siriusb
veterán
válasz Sk8erPeter #138 üzenetére
összekutyulódtam
Fenéket működik.
Akarok felvenni új content type-t és elölről kezdeni, hátha segít, mert elsőre csak tesztelgettem, szóval módosítgatás, törölgetés volt benne. Eddig még nem jutottam azonban el, mert egyrészt kutya meleg van, másrész haverom olyan olyan skint tervezett, a fülem is kettéáll. Mindenhol árnyékok, vonalak, szerintem szívatni akar. Lehet photoshop-ban sem volt könnyű megcsinálni."original" részt
Ezért kérdezgettem a moduljaidról, csak durván elbántál velem... -
Sk8erPeter
nagyúr
Akkor közelítsük meg másként a kérdést, mutasd meg Te a fent lévő moduljaidat.
Most nézem, itt van egy pár példa tokenekre, itt az "Original node" részen belül van egy-két ilyesmi, amit mutattál, de az erre vonatkozik: "The original node data if the node is being updated or saved."
Nálad nem ilyen kategórián belül van? Mondjuk akkor is kicsit más a formátuma, mert itt pl. "[node:sourceriginal:title]" van.
Másik, teszt Drupal 7 esetén rendesen működik az a token, amit mutattam az imént?
Nézd meg, azon is van-e ez az "original" rész. Valami csak belegenerálja másként, ami nálam nem történik meg... Én pont ezzel a tokennel ILYEN FORMÁBAN még nem találkoztam.Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #140 üzenetére
Original node no, a leírását már nem olvastam el, túlságosan el van rejtve
Szerintem most egy napig hanyagolom a pathauto vegzálást, be kellene fejeznem a téma beizzítását. Később még biztos jövök ezzel a kérdéskörrel. Ebben a melegben nagyon döcögősen halad a munka. Pedig már a country is szól, hátha ad egy kis ritmust...
-
Siriusb
veterán
Örömöm közben egy kicsit fogom a fejem, újraraktam az egészet kórostól (core), modulostól, felvettem 2 szöveges mezőt, s láss csodát, egyelőre megy a pathauto, úgy ahogy kell. Egyedül az advanced help-et nam raktam vissza.
A régiben próbáltam új content type, új field-ek felvételével, de nem akart együttműködni velem, úgyhogy elszántam magam a fenti lépésre. Most jön az újraépítés. remélem még a végén is működni fog.
-
Siriusb
veterán
Mi a legjobb módja annak, ha egy blokkban el akarok helyezni egy linket a front page-re, az éppen használt nyelvnek megfelelően?
1. Blokkot létrehozni mindegyik nyelvnek, hardcode link, csak az adott nyelvnél látható beállítással. Siccc.
2. page.tpl.php-ban hozok létre egy div-et, $front_page-dzsel kiíratom. Hmmmm.
3 my_theme_preprocess_block
Na, ezt nem sikerül összehozni. Addig eljutottam, hogy my_theme_preprocess_page-ben beadtam az értéket:
$variables["page"]['header']["block_4"]["myfrontpage"] = $variables['front_page'];
Ezt a function my_theme_preprocess_page(&$variables, $hook) látja is, de a blokkban php filter segítségével hozzá tudok férni valahogy? -
Sk8erPeter
nagyúr
Csak most látom a postodat.
1.) na, azt semmiképp. Csak agyonbonyolítja, meg finoman szólva nem túl szép.
2.) hát, végül is lehet, ha nagyon akarod.
3.) $variables["page"]['header']["block_4"]["myfrontpage"] = $variables['front_page'];
Ennek nem nagyon látom értelmét, ha már ott van a $variables['front_page'].
Azt pedig a $front_page változóval tudod elérni.Szerintem értelmesebb egy nagyon egyszerű modullal létrehozni egy blokkot, meg is mutatom, Drupal 7 alatt hogyan tudod ezt megtenni:
Blokk létrehozása modulból Drupal 7 alatt (legegyszerűbb példa)
MYMODULE mindenhol behelyettesítendő a saját modulunk nevével.
1.) MYMODULE.info létrehozása:
name = Test Module
description = Description of my test module...
core = 7.x
package = MYMODULES2.) MYMODULE.module fájl létrehozása (<?php nyitótaggel)
3.) hook_block_info() implementálása:
/**
* Implements hook_block_info().
*/
function MYMODULE_block_info() {
$blocks = array();
$blocks['my_test_block'] = array(
'info' => t('My test block'), // The name that will appear in the block list.
'cache' => DRUPAL_CACHE_GLOBAL, // The block is the same for every user on every page where it is visible. (the default is DRUPAL_CACHE_PER_ROLE)
);
return $blocks;
}4.) hook_block_view() implementálása:
/**
* Implements hook_block_view().
*
* Prepares the contents of the block.
*/
function MYMODULE_block_view($delta = '')
{
$block = array();
switch ($delta) {
case 'my_test_block':
$block['subject'] = t('Test block blabla');
$items = array();
$items[] = array(
'data' => l(t('Home'), '<front>'),
'class' => array(
'test-block-front-page'
),
'id' => array(
'test-block-front-page'
)
);
$items[] = array(
'data' => l(t('Email'), 'contact'),
'class' => array(
'test-block-links test-block-email'
),
'id' => array(
'test-block-links-email'
)
);
$block['content'] = theme('item_list', array(
'items' => $items,
'attributes' => array(
'class' => 'test-block links inline clearfix'
),
'type' => 'ul'
));
break;
}
return $block;
}5.) /admin/structure/block oldalon engedélyezni a blokkot.
Screenshotok a végeredményről:
ANGOL:
MAGYAR:
NÉMET
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #144 üzenetére
Ja, és a teljesség kedvéért, ezt a HTML-kimenetet generálja:
<div id="block-testmodule-my-test-block" class="block block-testmodule first last odd">
<h2 class="block-title">Test block blabla</h2>
<div class="content">
<div class="item-list">
<ul class="test-block links inline clearfix">
<li class="test-block-front-page first" id="test-block-front-page"><a href="/" class="active">Home</a></li>
<li class="test-block-links test-block-email last" id="test-block-links-email"><a href="/contact">Email</a></li>
</ul>
</div>
</div>
</div><!-- /.block -->Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #145 üzenetére
Itt van egy jó lista a további elérhető hookokról: [link]
- hook_block_configure
- hook_block_info
- hook_block_info_alter
- hook_block_list_alter
- hook_block_save
- hook_block_view
- hook_block_view_alter
- hook_block_view_MODULE_DELTA_alterSk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #144 üzenetére
Kösz a javaslatot.
Ennek nem nagyon látom értelmét, ha már ott van a $variables['front_page'].
Azt hittem, az abban a tömbben lévő változók elérhetőek lesznek a blokk előállításkor, de nem így történt.Azt hiszem, a Te megközelítésed a második legjobb az én nem működő első legjobbam után. Érted?
A drupal api-ban az l() funkcióra konkrétan nem írják a <front> használatát, ám mivel ez úgy is az url()-t hívja meg, működnie kell. Kösz, ki fogom próbálni.
-
Sk8erPeter
nagyúr
Az l(t('Home'), '<front>') működik a blokkban a PHP filterrrel, bár én a PHP filter használatát már eleve messziről kerülöm, mióta rájöttem, hogyan lehet az API használatával, szebben megoldani a dolgokat.
Ha van kérdés ezzel kapcsolatban, ne tartsd magadban - és használj saját modult ilyesmire.Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #144 üzenetére
Ez így nagyon jó, köszi, szuperül működik.
PHP filterrel a l(t('Home'), '<front>') NEM működik a blokkban, kipróbáltam, hiszen ott nem fér hozzá a szükséges változóhoz. Ez volt a kezdeti problémám. -
Siriusb
veterán
Lenne még egy kérdés. A "Home" szöveget span-ok közé tenném, mert el lenne rejtve, a background-ként lévő házikó lenne csak megjelenítve (ami felett a láthatatlanul megjelenő (érdekes ez a két szó egy egymás mellett) Home szöveg szolgáltatná a linket). Tehát a span-re rátennék egy visibility:hidden-t.
Csak valami prepocess-szel tudom ezt elérni?Vagy van jobb megoldás?
Új hozzászólás Aktív témák
- EVGA 850 G5 80+GOLD Moduláris tápegység 2 év garancia
- Teszteletlen Pc pakk
- Gyönyörű Gigabyte Aorus 15P XC, i7-10870H, 16GB, 500GB, NVIDIA GTX 3070 8GB 130W, Win11
- Samsung T7 2TB piros hordozható SSD, megkímélten, garanciával, házhozszállítással is
- Tesoro Excalibur V2 - TS-G7NL-V2 - magyar billentyűzet kiosztás - mechanikus - kék LED-es világítás