- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Argos: Az vagy, amit megeszel
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- GAI: Retro GPU-k mindörökké: a végleges koncepció, és a szereplők bemutatása
- eBay-es kütyük kis pénzért
-
LOGOUT
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
-
SecMan
csendes tag
válasz
Sk8erPeter #299 üzenetére
"Nyomtatott anyag -> webre"
Ez mi?
Ezzel a folyamat irányát akartam bemutatni
Nyomtatott anyagot kell webre rakni.
(persze a nyomtatás előtt pdf-ben van, és azzal kell foglalkoznom)Photoshop felismeri a pdf-ben a képeket, csak ki kell pipálni, hogy melyik kell
Én is profilra gyanakszom.
De most már elég az off-ból.
ON:
Nincs valami tipped, hogy node-ok teaser megjelenítésénél a node CÍMÉT hogyan tudnám egy másik mező UTÁN rakni? A Tartalomtípus -> megjelenés beállításainál a node-title nem szerepel.... -
Sk8erPeter
nagyúr
"Nyomtatott anyag -> webre"
Ez mi? Photoshopban menüpontok így vannak elnevezve? Magyar nyelven sosem használtam a Photoshopot, úgyhogy nem vágom, most ez az elnevezés ott van-e.
Photoshopban vágod ki a PDF-ből a képet?
Amúgy a megrendelős dolgot azért kérdeztem, mert ezek szerint valamilyen ismeretlen oknál fogva pdf-ből kell kimentegetned a képeket, ami eleve furcsa...Egyébként biztos valami Photoshopos profillal kapcsolatos a probléma: a képernyőre optimalizált színprofillal kellene dolgozni, nem a nyomtatásban megfelelővel. De Photoshopos kérdést majd abban a topicban tegyél fel, mert én ahhoz kevés vagyok.
-
SecMan
csendes tag
válasz
Sk8erPeter #296 üzenetére
Nem értetted félre (csak most
)
Van a pdf -> PS-al kimenetem a képeket -> Drupal oldalra feltöltöm ->Eredeti jó, ami átméretezésre kerül az túl színes.
=
Nyomtatott anyag -> webre -
Siriusb
veterán
válasz
Sk8erPeter #296 üzenetére
Én már nem tudom követni.
Kicsire átméretezett képeknél nem láttam különbséget, legalábbis nem tűnt fel. -
SecMan
csendes tag
válasz
Sk8erPeter #294 üzenetére
"Ilyen jó megrendelőt sikerült kapni, aki pdf-oldalak formájában küldi a képeket?"
Szerencsére nem
Nyomtatott anyag -> webreHa meg lesz a megoldás akkor leírom.
És a GD-t használom, nem Imagemagick-et. -
Sk8erPeter
nagyúr
"PDF-ből átmentett képekről"
Ilyen jó megrendelőt sikerült kapni, aki pdf-oldalak formájában küldi a képeket?Ha rájössz, mi okozza a különbséget, azt én is megköszönném, ha leírnád, de az ezek szerint már egyértelmű, hogy a PHP GD-könyvtárfüggvényeivel való átalakítás során történik a változás, hacsak nem ImageMagick-et használsz.
-
SecMan
csendes tag
válasz
Sk8erPeter #292 üzenetére
Igaz. Az "eredeti" kép változatlan, csak az lesz "hibás" ami átmegy átméretezésen, márpedig átmegy...
De megnéztem a képstílusokat és
1. nincs semmi más csak átméretezés
2. nincs ilyen modulom... akkor ez valószínűleg photoshop beállítás lesz.
Főleg mivel PDF-ből átmentett képekről van szó. -
Sk8erPeter
nagyúr
Az "eredeti" képet töltöd le? Nincs rá image style alkalmazva, ami módosíthatja valamelyest, mert új képet generál belőle? Példát tudsz mutatni rá? Nincs engedélyezve az Image Example modul (Examples for Developers része)?
-
SecMan
csendes tag
Ha jól sejtem az alábbi kérdésem inkább kapcsolódik a weblapos topikhoz, de mivel mégiscsak drupal rendszerről van szó, ezért ide kerül
D7:
Tehát, az mitől van, (vagy merre keressem a megoldás kulcsát), hogy a feltöltött képek a weboldalon sokkkkkal színtelítettebben jelennek meg, mint eredetileg?
A képet letöltve is megmarad ez a túlzott színtelítettség, tehát már amikor felkerül akkor történik valami.
A feltöltést a core image és file modul végzi. -
Sk8erPeter
nagyúr
válasz
SureStudio #289 üzenetére
Na most a kedvedért regisztráltam a NeoBase-nél, és default beállításokkal minden flottul megy:
Igaz, ez neobase-es aldomainen megy.
Nálad saját domain van?
Milyen adatokkal kapcsolódsz? Fentihez hasonlóan?Szerk.:
ja igen, itt a képen az látszik, hogy kiszedtem a passzív módot, és nálam úgy is megy.
Esetleg azt bepipálhatnád (a képpel ellentétben), ha még nincs, úgy is megpróbálva. -
SureStudio
tag
válasz
Sk8erPeter #288 üzenetére
Filezilla: „Időtúllépés a kapcsolatban
A könyvtár lista lekérdezése nem sikerült”
Total commanderrel pedig azt írja, hogy a szolgáltatóhoz nem sikerült kapcsolódni.
Nem értem mi a hiba...és más gépen sem megy -
Sk8erPeter
nagyúr
válasz
SureStudio #283 üzenetére
"File not found or expired"
Már nincs meg a kép.
Írd már le szövegesen plíz, hogy mit ír ki. -
Siriusb
veterán
válasz
SureStudio #285 üzenetére
Ez nem drupal probléma.
Azon kívül, hogy valami (tűzfal) blokkolja a kommunikációt, nem jut eszembe semmi.
A hitelesítési folyamat gondolom nem jelzett hibát. -
Siriusb
veterán
válasz
SureStudio #283 üzenetére
Megpingeltem az ftp szervert, az oké, igaz a port blokkolva van.
Próbáld meg kikapcsolni a tűzfaladat. Vagy nézd meg, nem kaptál-e értesítést tőlük, hogy változtattak az ftp porton.
Melyik portot használod most, 21-est?Szerk: a weboldalukon nem írják, hogy más portot használnának, szóval a default 21-es az jó.
-
Siriusb
veterán
válasz
SureStudio #281 üzenetére
Úgy érted, nem tudsz FTP-vel csatlakozni a weboldalad tárhelyére? Próbáld meg esetleg a neobase kezelőfelületén feltölteni, valószínűleg biztosítanak valamilyen fájlkezelőt, de én már nagyon régen használtam az ő szolgáltatásukat.
-
SureStudio
tag
Sziasztok!
Van egy n@obase-es oldalam és akartam egy új sminket feltölteni, de valamiért nem listázza ki a fájlokat. TotalCommander-rel és FileZillával is próbáltam de nem sikerült. Lehet a n@obase-el van baj, vagy a fájlkezelőimmel? -
-
SecMan
csendes tag
Úgy tűnik a path-alias-os megoldás működk
Bár manuálisan hozzáadogatni nem túl jó, szóval próbálkozom még a taxoval.Ja, és még nem 0|Példa Egy, 1|Példa Kettő formában vannak, mert ahhoz a teszt tartalmakat újra kell csinálnom, szóval azt majd később.
Btw ha ilyen formában lennének az min változtatna megoldás szempontjából, azon kívül, hogy gyorsabb lenne adatbázis szempontból? -
SecMan
csendes tag
válasz
Sk8erPeter #277 üzenetére
Van igazából akadálya a Taxonomy szótár használatának?
Van és nincs
Korábban úgy tűnt, hogy Taxo modulra egyátalán nem lesz szükség, ezért nem abban kezdtem el ezt a részt megoldani.
Most párhuzamosan próbálom a Taxoval és anélküli megvalósítást.
Taxoval az a gond, hogy szótáranként más és más views-t kell létrehoznom, amit eddig nem sikerült megcsinálni. (tegnap találtam egy taxonomy display modult, azt ma tesztelem)Remélem csak a konkrét fieldre vonatkozóan.
TermészetesenA konkrét kérdésre: ilyet még Views-zal nem csináltam, de azt esetleg megpróbálhatnád (engem is érdekelne, úgy működik-e), hogy létrehozol URL aliast magára a konkrét kulcsra, hogy úgy működik-e, tehát így:
valamifield-argumentumot-var/0
erre alias:
valamifield-argumentumot-var/pelda-egy
Lehet, hogy abszolút hülyeség, de próbáld meg.Ok, kipróbálom és visszajelzek hogy mennyire volt hülyeség vagy éppen megoldás
-
Sk8erPeter
nagyúr
Van igazából akadálya a Taxonomy szótár használatának?
Csak mert azzal nem kéne szenvedni."template-ben is sikerült összekókányolnom, amit a field templateben"
Remélem csak a konkrét fieldre vonatkozóan.
Korábbi példa alapján asszem ilyesmi lenne a template-fájl neve: field--field-text-list-with-radio-butto.tpl.phpA konkrét kérdésre: ilyet még Views-zal nem csináltam, de azt esetleg megpróbálhatnád (engem is érdekelne, úgy működik-e), hogy létrehozol URL aliast magára a konkrét kulcsra, hogy úgy működik-e, tehát így:
valamifield-argumentumot-var/0
erre alias:
valamifield-argumentumot-var/pelda-egy
Lehet, hogy abszolút hülyeség, de próbáld meg.Most ilyesmi a listád?
0|Példa Egy
1|Példa Kettő
2|Példa Három -
SecMan
csendes tag
Na, szóval az addig megvan, hogy link keletkezik a select list értékének megfelelően.
Tehát ha lehet választani Példa Egy, Példa Kettő és Példa Három közül, akkor ez linkként jelenik meg, mutatva a pelda.hu/pelda-egy vagy pelda.hu/pelda-ketto oldalra.
A gond ezzel már csak az, hogy ezt Views argumentumként kéne felhasználnom, de az meg a kulcsot várja, nem az értéket.Najó, ezen agyalok még.
-
SecMan
csendes tag
válasz
Sk8erPeter #272 üzenetére
1. Views
Tudom, hogy nem lassú, meg mire jó, csak azt fölös erőfeszítésnek tartom, hogy egy-két mező miatt a teljes node megjelenését összerakjam. Arról nem is beszélve hogy több féle tartalomtípusnál végigkattintani.... szóval szeretem a Views-t és pont az ilyen balekokon segít mint én, de ehhez a megoldáshoz ez túl nagy melónak tűnik.2. field_template
... mi számít sok fieldnek?3. template.php
Ennek utánanézek4. List (text)
az a baj a List (text) típusúval, hogy az ebben való keresgélés szerintem adatbázisoldalon viszonylag lassú. Ezért jobb lenne int típusú.
Öm, Int típusúban hogyan oldom meg a kiválasztható szöveges értéket? -
Siriusb
veterán
válasz
Sk8erPeter #272 üzenetére
És valóban, hook-kal sokkal értelmesebb a megoldás. Hiába, ezért tartunk egy nagyágyút a topikban
-
Sk8erPeter
nagyúr
"Views-ban tudom, hogy egyszerű megcsinálni, de az nem para ha így rengeteg nodenál "közbelép" a views?"
Nem, szerintem itt félreértelmezed a Views szerepét, amikor tetszőleges fieldek tetszőleges sorrendben történő megjelenítéséről van szó. A Views nem "közbelép", hanem ő maga intézi el a tartalmak adatbázisból való lekérését, és az általad beállítottaknak megfelelő megjelenítését. A query-t a beállítások alapján rakja össze, és minden egyebet is a háttérben elintéz. Ő szolgáltatja az adatokat a template-eknek is (ezért van a Views-nál mindenfélére külön template-fájl).
A Views nagy előnye az, hogy rendkívül kényelmes felületen állíthatsz össze viszonylag komplex query-ket, és ezek megjelenítését is grafikus felületen tudod beállítani.
Mondjuk feltételezem, a sima node-lekérésnél (teaser vagy full mode), amikor nem tetszőlegesen állítod be a fieldeket, a Drupal beépített függvényeit használja fel.
De attól még nem lassú.A field template-ek használata nem biztos, hogy javasolt, ha sok field van, mert lassulást eredményezhet:
theme_field()
"However, it takes longer for the server to process templates than to call a function, so for websites with many fields displayed on a page, this can result in a noticeable slowdown of the website. For these websites, developers are discouraged from placing a field.tpl.php file into the theme's folder, but may customize templates for specific fields."A megfelelő függvényeket viszont felhasználhatod.
A saját theme-ed template.php-jébe pakold a theme_field() megvalósítását.
Most egy szemetelős Drupalnál létrehoztam az általad említett fieldeket:
[link]A nyíllal jelölt rész az érdekes, hogy mennyi előfeldolgozó függvény van, CSAK és kizárólag az adott fieldre! Ezt használd, ne általánosan írd felül!
Pl. nálam "field_text_list_with_radio_butto" lett a machine name-je a fieldnek, így ilyen előfeldolgozó függvényem van:
zenTest_field__field_text_list_with_radio_butto()Igen, az "n" betű lemaradt, de ezzel nem foglalkoztam, ez lett a machine name.
A másik: az a baj a List (text) típusúval, hogy az ebben való keresgélés szerintem adatbázisoldalon viszonylag lassú. Ezért jobb lenne int típusú.
-
SecMan
csendes tag
ohbaaa+
Nem.... a korábban írt "Példa Egy | Példa Kettő | Példa Három" CSAK SZEMLÉLTETÉS
Ez NEM key|value forma, csak valamiért épp jó ötletnek tűnt itt így elválasztani xDViews-ban tudom, hogy egyszerű megcsinálni, de az nem para ha így rengeteg nodenál "közbelép" a views? (ezért gondoltam a field template-re)
Vissza az eredeti kérdésre... ha a kulcs|érték párok az alábbiak: (textről van szó):
pelda-egy|Példa Egy
pelda-ketto|Példa Kettő
pelda-harom|Példa HáromAkkor hogy íratom ki a kulcsot field template-ben?
-
Siriusb
veterán
válasz
Sk8erPeter #265 üzenetére
Sortörés akkor is kell, ahogy mondtad.
-
Siriusb
veterán
válasz
Sk8erPeter #263 üzenetére
Ja, én azt hittem, csak szemléltetés céljából vannak felsorolva az értékek így. Ha ebben a formában adta meg, abból nemhogy link, de érték sem lesz.
Egyébként ha csak a key van megadva, drupal hét bátyó generál kulcsokat, kipróbáltam régebben. -
Sk8erPeter
nagyúr
Példa Egy | Példa Kettő | Példa Három
De ez így nagyon nem jó...key|value formában kell megadni, attól függően, hogy milyen típust választottál ki.
Pl. integernél:
0|Példa Egy
1|Példa Kettő
2|Példa HáromVAGY ha text, és lehet, hogy neked ez lenne a jó jelen esetben:
pelda-egy|Példa Egy
pelda-ketto|Példa Kettő
pelda-harom|Példa Hároma sortörések is fontosak!
Lehet, hogy az általad írt dolgot is a Drupal valahogy lekezeli, de erre nem alapoznék, hogy egy elírt dolgot majd "valahogy" LEHET, hogy megold.Egyébként Siriusb ötlete teljesen jó, Views-zal lehetne legegyszerűbben megoldani a dolgot.
Persze template-ből is, de előbb javítsd a listát a kulcs|érték pároknak megfelelően!===
Másik kérdésre:igen, így:
global $base_url;
echo $base_url;Persze nem kell echo-zni, ez csak egy példa volt, a global kulcsszó a lényeg!
-
SecMan
csendes tag
Select list típusú mező értékének linkké alakítása
Üdv!
Volna nekem egy tartalomtípusom, amiben van egy legördülő lista, aminél a felhasználó 1 értéket választhat ki több közül.
Példa Egy | Példa Kettő | Példa HáromEzt kellene nekem linkké alakítanom, nyilván a megadott értéküktől függően máshova vezetnének a linkek.
pelda.hu/pelda-egy | pelda.hu/pelda-ketto | pelda.hu/pelda-haromAhol megakadtam, az az, hogy mint a példa is mutatja, az értékekben lehetnek szóközök, kis-nagybetű, stb. Ezért a field templatben hiába raknám be a href="pelda.hu/<?php print $output ?> -ot, az nem lesz jó.
Működésében kb. az, mint ha taxonómiában kiválasztanánk egy kiefejezést és a nodenál megjelenő kifejezés linkként működik.
Ennek a megoldásában tudnátok segíteni/iránytmutatni, stb?
+kérdés, a field templateben a baseurl nem elérhető?
-
Siriusb
veterán
válasz
Sk8erPeter #259 üzenetére
Hmm, nekem custom content type van, multilingual site, és max 10 kép és van custom image style is.
Ha lesz időm, valamikor kísérletezem vele, hogy is működik. Kösz, hogy megnézted. -
Sk8erPeter
nagyúr
Én most kipróbáltam localhoston, mert úgy emlékeztem, hogy kitörlődik, ha egyből nem is, legalább a következő cron lefutásakor. Ez a hsz. meg is erősíti ezt.
Sima Article típusnál feltöltöttem az Image fieldhez egy 12 MB-os képet, elmentettem a node-ot, majd utána rámentem a szerkesztésre, és ott a Remove gombbal eltávolítottam a képet, majd megint elmentettem a node-ot. Egyből törölte a fájlt a sites/default/files/field/image könyvtárból is! -
Siriusb
veterán
válasz
Sk8erPeter #256 üzenetére
Ezzel én is találkoztam.
Azért valahol ez egy komoly bug, ha kis tárhely és nagy képek szerepelnek az egyenletben. -
Sk8erPeter
nagyúr
válasz
olivera88 #253 üzenetére
Leginkább az első hozzászólásban szereplő linkeket ajánlom figyelmedbe. Pl. Nagy Gusztáv könyvében magyarul is le van írva mindez.
-
Siriusb
veterán
Keresztkérdés: adott drupal 7 és image field-ek egy node-ban Amennyiben képet kitörlöm és újat töltök fel helyette, a régi kép a szerveren marad. Mi a legjobb / legegyszerűbb megoldás a törölt képek eltávolítására?
-
olivera88
veterán
válasz
Sk8erPeter #251 üzenetére
Értem. Köszi. Saját gépemre hogyan tudom telepíteni?
-
SecMan
csendes tag
válasz
Sk8erPeter #251 üzenetére
Ha ez számít akkor lokálban sem törlődik.
-
Sk8erPeter
nagyúr
válasz
olivera88 #250 üzenetére
Az UltraWebet Drupalhoz szerintem már most felejtsd el, ahogy az ehhez hasonló ingyenes tárhelyeket is (mint az FW, ATW és társai).
Komolytalanok, számtalan dolog tiltva van, többek közt tudtommal az elementáris fontosságú .htaccess fájl használata is.
Az ilyen tárhelyeken legfeljebb bohóckodni lehet, komolyabb célokra nem alkalmasak. Manapság már annyira olcsón lehet saját domaint és tárhelyet kapni, hogy egyszerűen nem éri meg magát szívatnia az embernek ezekkel a nagyon gagyi ingyenes tárhelyekkel.
Esetleg ezt megpróbálhatod (nem tudom, itt kell-e saját domain, de azt regisztrálni szintén megéri, és ára kb. annyi, mint havi egy söré), meg ezt olvasd el.
Ha egyelőre úgysem készült el a saját honlap, akkor telepítsd saját gépedre a webszervert, ennek igen nagy előnye, hogy "offline" is megy, és akkor tesztelgetsz vele, amikor akarsz.
Windows-on IIS-hez használd a Web Platform Installert. (Ha nagyon akarod, XAMPP-ot is felhúzhatsz.)
Linuxhoz pedig LAMPP.=========================
(#249) SecMan : hát most hirtelen nincs ötletem, én úgy emlékszem, törlődnie kellene, de majd lecsekkolom még. Lehet, hogy jogosultsági para, most nem tudom hirtelen.
-
olivera88
veterán
Üdv.
Feltöltöttem a Drupalt 7.14 et ultrawebre, csak ilyen próba céljából. Az lenne gondom h nem akar bejönni a telepítés oldal. -
SecMan
csendes tag
válasz
Sk8erPeter #248 üzenetére
Nem, akkor sem.
Azt mondja az időzített feladatok sikeresen lefutottak. -
SecMan
csendes tag
Az normális, hogy a CSS és JS tömörítéskor létrehozott CSS és JS fájlokat, és azok tömörített verzióit nem törli a rendszer magától, amikor újakat készít?
-
Sk8erPeter
nagyúr
Kis ötletadó azoknak, akik szeretik lerövidíteni a fejlesztésre fordítandó időt (és/vagy lustáknak).
Ha valaki NetBeans-ben vagy hasonló IDE-ben szokott fejleszteni (pl. Eclipse), akkor biztos ismeri a code template-eket (ha nem, ismerkedjen meg velük
), példa: fore beírása, majd Tab (persze ez a billentyű is megváltoztatható), ekkor a NetBeans legenerál egy foreach ciklust:
foreach ($array as $value) {
}vagy forek, majd Tab, ekkor legenerál egy másikat, immár kulccsal együtt:
foreach ($array as $key => $value) {
}És így tovább.
Ugyanilyen code template-ek írása Drupalhoz is jól jöhet.
Én pl. sűrűn veszem hasznát debuggolási célokra a Devel modul különböző függvényeinek (főleg, ha az Xdebugot épp nincs kedvem belőni), és megszokásból a dsm()-et használom (meg azért, mert beszédes, mint a drupal_set_message() rövidítése).
Sokszor kiíratom pl. a függvény argumentumait - tipikus példa egy mezei $variables tömb (7-esben elég sűrűn ez a függvényargumentum). Gondolom Ti sem szerettek sokat gépelni. Én még a dsm utáni pötyögésekhez is lusta vagyok (pl. dsm($tomb, 'ez a $tomb tömb tartalma, nézd csak:');).
Ezért:NetBeans-ben
1.) Tools - Options - Editor - Code Templates
2.) Languages-nél PHP legyen kiválasztva.
3.) New gomb
4.) Abbreviation - ddsm
5.) Expanded Text részbe:
dsm($$${VARIABLE newVarName default="variables"}, '$$${VARIABLE} in '.__FUNCTION__.'()');
(Description fül kitöltése opcionális)
6.) OKEkkor ddsm begépelése után a következő kódrészlet keletkezik:
dsm($variables, '$variables in ' . __FUNCTION__ . '()');A variables rész (tehát a változó neve) egyből szerkeszthető, és a stringben is ugyanarra fog változni.
========================
DE még hasznosabb:
Hosszu Kálmán készített egy nélkülözhetetlen template-gyűjteményt modulfejlesztéshez:
Drupal template-ek Netbeans-hez, fejlesztőknek és sminkeseknek
Drupal.org oldalán: NetBeans templates
-
Sk8erPeter
nagyúr
Na, ennek örülök. Szívesen!
Amúgy ja, nem kevés idő beleásni magad, meg rászánni magad sem egyszerű.
Az is jó a Zenben, hogy látszik, hogy óriási munka van a fejlesztésében, jövőbe mutató technológiákat alkalmaznak, és folyamatosan optimalizálnak különböző böngészőkre, meg agyondokumentált kódjaik vannak. Nem véletlen, hogy ilyen népszerű theme. -
SecMan
csendes tag
válasz
Sk8erPeter #243 üzenetére
Kérdezz nyugodtan, ha valami nem tiszta!
Fogok
De ezzel is már egy akkora kezdő löketet adtál az új Zenhez, amivel jóóóó sok órát spóroltál nekem
Szal kösz...
Csak sajnos még a korábbi problémára adott tippeket se tudtam mind kipróbálni.... az a fránya időhiány.... -
Sk8erPeter
nagyúr
">>A Zennél a Drush-sal való subtheme-készítés is elengedhetetlen.<<
Ezt kifejtenéd bővebben?
Miért elengedhetetlen? Ugyanúgy van benne starterkit, az nem jó? "Ezt úgy értem, hogy a Drush-sal ezerszer egyszerűbb a subtheme elkészítése.
Tényleg ennyivel elintézhető:
drush zen "Uj theme neve" uj_theme_gepi_neve --without-rtl(a --without-rtl a Right-To-Left (jobbról-balra irányú) szövegekre vonatkozik, nyilván csak akkor rakd mögé ezt a kapcsolót, ha nem tervezel közel- vagy távol-keleti nyelveket és egyéb RTL-módon írós nyelveket használni)
Miért egyszerűbb?
- mert egy sor a konzolon, nem kell csomó felé figyelni, agyalni, gondolkodni, hogy mi is maradt ki (ki az, aki szeret gondolkodni?)
- helyetted átmásolja a STARTERKIT-ben lévő fájlokat a megfelelő helyre (sites/all/themes/uj_theme_gepi_neve)
- helyetted megcsinálja a fájlokban a prefixek lecserélését - ezt úgy kell érteni, hogy mondjuk a starterkitben alapból van egy ilyen függvény:function STARTERKIT_preprocess_page(&$variables, $hook) {
$variables['sample_variable'] = t('Lorem ipsum.');
}a fenti konzolos parancs lecseréli ilyenre:
function uj_theme_gepi_neve_preprocess_page(&$variables, $hook) {
$variables['sample_variable'] = t('Lorem ipsum.');
}
mindezt hasonlóan az összes többi függvénynél, és minden szükséges fájlban, ami igencsak leegyszerűsíti a folyamatot, mert nem kell megnyitni több fájlt, és módosítgatni a megfelelő helyeken- a .info fájlba is berakja a megfelelő infókat, a --description kapcsolóval még leírás is adható hozzá
- miután a parancsot kiadtad, és elkészült a subtheme, már csak engedélyezned kell a Appearance-nél (/admin/appearance) az új subtheme-edet
Szóval röviden összefoglalva: jó az is, ha a readme-ben található instrukciók szerint létrehozod a STARTERKIT alapján a subtheme-edet, de sokkal gyorsabb és egyszerűbb Drush-sal.
Hidd el, csak egyszer kell megpróbálni a Drush-t, némi sikerélményt tapasztalni, és akkor rá fogsz kattanni.
Bár tudom, elsőre melós minden ilyesmit kipróbálni (nekem sem könnyen megy, hogy rávegyem magam, de megéri).=========
"Btw itt (Zen Drupal alsminknél) a SASS fájlokat kell CSS-re fordíttatni végeredményért? Tehát a SASS-al kell dolgozni és abból lesz CSS-ünk?"
Igen, alapvetően jól érted, az SCSS-fájlokat módosítgatod, a Compass pedig előfeldolgozza és "lefordítja" neked valós CSS-fájlokba, és automatikusan felülírja a css alkönyvtárban lévő fájlokat változás esetén.
Amúgy itt is szó van a SASS-ról, Compass-ról:
[Getting started with Drupal7, Zen, Sass and Compass].
Ha konzolon a
compass watch
-ot beírtad (vagy
compass watch d:\<DRUPAL_PROJECT_ELÉRÉSI_ÚTJA>\sites\all\themes\uj_theme_gepi_neve
[Windows-osan az elérési útnál]), akkor monitorozza a változásokat a Compass, és egyből legenerálja a szükséges CSS-fájlt, amint elmentetted az SCSS-fájlodat.Kérdezz nyugodtan, ha valami nem tiszta!
-
SecMan
csendes tag
válasz
Sk8erPeter #240 üzenetére
Köszönöm!
(bár drush-hoz nem értek, se SASS-hoz, se semmihez)
de egyik projektemnél már ismerkedni akartam Zen újabb verziójával és lehetőségeivel, de ezekbe még nem sikerült beleásnom magam.A Zennél a Drush-sal való subtheme-készítés is elengedhetetlen.
Ezt kifejtenéd bővebben?
Miért elengedhetetlen? Ugyanúgy van benne starterkit, az nem jó?Btw itt (Zen Drupal alsminknél) a SASS fájlokat kell CSS-re fordíttatni végeredményért? Tehát a SASS-al kell dolgozni és abból lesz CSS-ünk?
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #240 üzenetére
NetBeans-plugin: SCSS Support
-
Sk8erPeter
nagyúr
Most egy új Drupalos projekt keretében a Zen theme legújabb változatát használom (7.x-5.1), és így végre belekóstoltam a SASS-ba is. Hát ez nagyon komoly, már megértem a növekvő népszerűségének okát. A Zen brigádja ráadásul nagyon ráfeküdt a témára, és a subtheme-ekhez egy eleve jól használható SCSS-fájlgyűjteményt hoztak össze, amiből nagyon sokat lehet tanulni, és könnyű módosítani is. Másnak is tudom ajánlani, hogy próbálja ki, ha kicsit le szeretné egyszerűsíteni a CSS-írogatást, vagy könnyebben módosíthatóvá szeretné tenni a fájljait (pl. ebben a változók használata nagy segítség - a fájl elején megadod, milyen színt szeretnél többször is felhasználni, a kódba pedig csak a változó nevét írod).
A Zennél a Drush-sal való subtheme-készítés is elengedhetetlen.
Én így kezdtem el használni az új projektnél:
1.) Drush a konzolból (Win+R - cmd), a megfelelő Drupal-projekt elérési útvonalához elnavigálva:
drush zen "Uj theme neve" uj_theme_gepi_neve --without-rtlEzzel el is készült a megadott nevű subtheme, a
sites/all/themes/uj_theme_gepi_neve elérési úton.2.) Telepítettem a Ruby-t (a linkelt változat Windows-hoz való) és a Compass-t, majd indítottam egy konzolt (Win+R - cmd).
3.) Elnavigáltam a Zen theme alkönyvtárába (az előbb említett elérési útra), ahol már eleve van egy config.rb a Compass/Sass pároshoz, és kiadtam a következőt:
compass watch
(itt a watch után nem kellett elérési út, HA elnavigáltam ebbe a könyvtárba előtte)
4.) Ezután tetszőlegesen módosíthattam az SCSS-fájljaimat, a Compass figyelte a változásokat, és minden fájlmentéskor legenerálta a config.rb fájlban meghatározott css nevű könyvtárba a megfelelő CSS-fájlokat.
Remélem másnak is hasznos lesz.
===========================
Drush + Zen kombóval kapcsolatban még tudnivaló, hogy a
drush help zen
megmutatja az elérhető argumentumokat, opciókat:d:\<DRUPAL_PROJEKTEM_HELYE>\htdocs>drush help zen
(M)Create a theme using Zen.
Examples:
drush zen "My theme name" Create a sub-theme, using the default options.
drush zen "My theme name" my_theme Create a sub-theme with a specific machine name.
Arguments:
name A name for your theme.
machine_name [optional] A machine-readable name for your theme.
Options:
--description A description of your theme.
--machine-name [a-z, 0-9] A machine-readable name for your theme.
--name A name for your theme.
--without-rtl Remove all RTL stylesheets.(/M) -
Sk8erPeter
nagyúr
-
SecMan
csendes tag
válasz
Sk8erPeter #235 üzenetére
Nem nyert
-
Siriusb
veterán
válasz
Sk8erPeter #233 üzenetére
Az tagadhatatlan, hogy a win7-et jól összerakták, ha az XP-vel vetjük össze, a Vistáról nem is beszélve. Mondjuk azt talán jobb elfelejteni is.
Múltkoriban kerültem össze egy office 2010 (?) -zel (ribbon-os volt), de kiakadtam, hogy a search/replace-nél nincs regex. Sejtheted, mint mondtam.Azt a kattingatós webszerveredet egyszer ki kellene próbálnom, csak hogy lássak olyat is.
-
Sk8erPeter
nagyúr
Nem néztem bele a Comment Abuse kódjába, így nem tudom, mit használ, de lehet, hogy annak már a jQuery 1.5.2 kell, fene tudja, tehát rakd fel ezt a modult:
-
SecMan
csendes tag
válasz
Sk8erPeter #231 üzenetére
Nem, a Windows-os részre nem reagáltam, az easyphp-s tippet köszöntem meg
Neked meg akkor most kösz az IIS tippet.
Szerk:
ne menjünk el Win/Linux témábaaaaa! Lécci!
Próbáltam Linux-ot. Bugos sz.r verziót fogtam ki. Ennyi a történetem vele.
Ha valaki rohadtul ért Linuxhoz akkor annak biztosan sokkal de sokkal jobb (lehet) mint a win, de aki nem ért hozzá.... annak mindegyHibaüzenet kb. ugyanannyi.
Console:
POST http://localhost/xxx/comment-abuse/complaint-popup/22
500 (Service unavailable (with message)) jquery.js:142
c.extend.ajax jquery.js:142
b.fn.ajaxSubmit jquery.form.js:12
Drupal.ajax.eventResponse ajax.js:251
Drupal.ajax ajax.js:178
c.event.handle jquery.js:64
c.event.add.h.handle.o jquery.js:57 -
Siriusb
veterán
válasz
Sk8erPeter #231 üzenetére
Szerinted miért raktam off-ba?
Egyébként szerintem ő az easyphp-re válaszolt.(off)(off)(off)(off)(off)
Minden lélek számít, akit kimentünk a M$ ördögi csapdájából.
(/off)(/off)(/off)(/off)(/off)Vetted?
-
Sk8erPeter
nagyúr
Jaj nehogy komolyan vedd, hogy az a baj, hogy Windows-t használsz......
Én is Windows-zal, konkrétan IIS+FastCGI PHP 5.3-mal meg MySQL-lel használom a Drupal 7-et, és SEMMI bajom vele.
A XAMPP amúgy így összehasonlítva a fenti kombóval szart sem ér, ahogy az EasyPHP sem.
A Microsoft megoldotta a Web Platform Installeren keresztül az összekattintgatós felületet a szerverhez, nem is értem, miért használják olyan kevesen, akiknek Windows-a van. Tapasztalat (!), hogy a Windows-ra ráerőszakolt Apache+PHP jóval lassabb, mint az IIS+PHP. Félreértés ne essék, az Apache egyébként Linux-szerverek alatt nagyon gyors tud lenni, de én már rájöttem, hogy Apache-ot Windows-ra ráhúzni totál felesleges, csak önszívatás, amikor van egy tök egyszerű admin-felület az IIS-hez.Még az eredeti kérdés lehetséges okán gondolkozom, hátha eszembe jut valami.
Egyébként az AJAX-os kommunikáció hibakezelése Drupal esetén szerintem egyelőre egy vicc. Soha nem derül ki az alapvető hibaüzenetből, hogy most akkor mi a szar van. Mint ahogy a mellékelt ábra is mutatja.........
Esetleg megnézhetnéd F12-vel fejlesztői panelen (vagy Ctrl+Shift+I Opera alatt), hogy mit ír ki az AJAX-os kommunikációnál, akár a Net fülön, akár hátha a konzolra dobott valamit.
==============
(#229) Siriusb :
ne már....... A Windows-fika nagyon régen lejárt lemez, főleg, hogy pl. a webszerver esetén abszolúte nincs alapja, persze ha valaki XAMPP-ot használ Windows-on, az megérdemli. -
SecMan
csendes tag
válasz
Sk8erPeter #224 üzenetére
Views használ AJAX-ot, nem? Mert az működik gond nélkül.
Sőt, ajax-os Views által létrehozott oldal is működik. (nem itt vannak a commentek)Modulok....
Advanced Help
Auto nodetitle
Comment abuse
Conditional fields (de nincsen beállítva)
ctools
entity
field group
field permissions
hidden comment (ezt próbáltam kikapcsolni és uninstall, hátha ezzel akad össze, de nem segített)
hierarchial select
link
pathauto
rate
redirect
references
rules
tlcomment (Two level comment) (mindjárt kipróbálom, hogy kikapcsolom, hátha ezzel akad-e össze)
token
transliteration
views
voting api
webform
webform validationSiriusb:
Nem használom a Flag Abuse-t. -
Siriusb
veterán
Használod a Flag Abuse modult?
Ha igen, próbáld meg anélkül.(#224) Sk8erPeter
Akkor valószínűleg tényleg nem ez lesz a gond, ha köll hozzá alapból.
-
Sk8erPeter
nagyúr
Háde így mondják.
Nézd:"Warning
Currently the "@" error-control operator prefix will even disable error reporting for critical errors that will terminate script execution. Among other things, this means that if you use "@" to suppress errors from a certain function and either it isn't available or has been mistyped, the script will die right there with no indication as to why."
===============
(#222) SecMan : fura, nálam ugyanezek vannak fent a tesztcélú Drupalnál, ahol most kipróbáltam.
Még megpróbálhatnál valahol egy másik, szintén AJAX-ot igénylő dolgot végrehajtani, hogy az működik-e.Milyen modulok vannak fent nálad?
Jöjjünk rá a hiba okára.===============
(#223) Siriusb : szerintem már korábban gondja lett volna, ha nincs engedélyezve a PDO MySQL-hez tartozó része, mert elvileg requirement:
"Drupal 7 will only support MySQL 5.0.15 or higher, and requires the PDO database extension for PHP (see What is PDO?)." -
SecMan
csendes tag
@218 Sk8erPeter
7.x-2.0 a modulverzió.
7.14 DrupalHa nektek jó, akkor nálam a hiba, legalább tudom, hogy ne zaklassam a drupal.org-on a készítőt.
@219 Siriusb
......nincs..... -
Siriusb
veterán
válasz
Sk8erPeter #220 üzenetére
el volt "nyomva"
A fején ültem.Szegény Kunta Kinte.
-
Sk8erPeter
nagyúr
Igen, mert nem mindig lesz objektum a menu_get_object(); eredménye, van, amikor NULL lesz. Igazából amikor írtam a kódot, gyorsan kiollóztam a Te kódodból innen ezt a részt, mert őszintén szólva hirtelen nem tűnt fel ez a hibalehetőség, tehát MEGINT A TE HIBÁD!!
A megoldás az isset() használata:$node = menu_get_object();
if (isset($node->nid)) {
....
}"Kihagytad a leírásból a function zenTest_links($variables) -t, ami azért a pastebin-es kódban benne van."
Persze, hogy kihagytam, mert rohadt sok helyet foglal.===================
(#214) SecMan : nálam is jól működik!
Két dolgot megpróbálhatnál: átmenetileg Devel és Theme Developer modul kikapcsolása (ha egyáltalán engedélyezve van), vagy a Comment Abuse modul letiltása, uninstall, majd reinstall.
Melyik változatot raktad fel? -
Siriusb
veterán
válasz
Sk8erPeter #195 üzenetére
Kihagytad a leírásból a function zenTest_links($variables) -t, ami azért a pastebin-es kódban benne van.
Ami furcsa, hogy a $node->nid sorra hibát dob, pl. egy /contact oldalon:Notice: Trying to get property of non-object
Még furcsább, hogy idáig html_head_alter()-ben ugyanezt használtam nem volt gond. A Te kódod beírása után ez is szórakozik.
Akkor is, ha eltávolítom a kódod. Lehet utánad kellene egy széles spektrumú antibiotikum?
-
SecMan
csendes tag
Aloha!
Kéne nekem egy modul drupal 7hez amivel "report"-olni lehet user commenteket. (ejbeszép magyaros)
Kipróbáltam a Comment Abuse nevű modult, pont azt tudja leírás alapján amire szükségem volna.
Csakhogy local testen egy ilyen szép hibát kapok:An AJAX HTTP Error occured
HTTP result code: 500
Status text: Service unavailable (with message)
Response text:
PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'ip' at row 1: INSERT INTO {comment_abuse} (nid, cid, timestamp, message, reason, uid, ip) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6); Array ( [:db_insert_placeholder_0] => 80 [:db_insert_placeholder_1] => 17 [:db_insert_placeholder_2] => 1343232118 [:db_insert_placeholder_3] => fsfsdfsd [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => 1 [:db_insert_placeholder_6] => ) in comment_abuse_add_comment_abuse() (line 219 of D:\xampp\htdocs\xxx\sites\all\modules\comment_abuse\comment_abuse.module).Igen, xampp-ot használok....
Ki tudná próbálni valaki (Sk8erPeter?) hogy csak nálam van geba, vagy tényleg rossz és reportolni kell drupal.org-on?
Esetleg alternatívát javasolni?
Thank you! -
Sk8erPeter
nagyúr
"Universally Unique IDentifier"-t generál Drupal-objektumokhoz, pl. entitásokhoz, ez van a leírásban is.
Már f×ngom sincs, melyik modul(ok)nak kellett. Ez egyébként csak a test site-on van fent, de ott sok más szarság is fent van.
A Drush-hoz Windows-os telepítő is van.
Amúgy a var_dump-nál még rövidebb is a dsm vagy dvm meg a többi.
Na, most egész rövidre sikerült a hsz.
-
Siriusb
veterán
válasz
Sk8erPeter #210 üzenetére
Nem tudom, miért nem működött, 1 pillanatot sem szántam rá, hogy kiderítsem.
Amikor pl. csak a key neve kell, jó az a var_dump, kattingatni sem szükséges, egyből ott fekszik előtted kiterítve. S erre az egy alkalomra nem érdekel, mennyire töri szét az oldalt. Elég rendesen rombol, az biztos.
Jobb napokon még a <pre> -t is hozzácsapom.
Ki kell próbálnom a Drush-t. Ezért szeretem az Arch Linux-t, valaki már készített is hozzá PKGBUILD-et, szóval pikkpakk felrakom.
Ez az UUID miért jó? A leírásból hirtelen nem jöttem rá. Ha esetleg *röviden* leírnád.
Csak viccelek.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #210 üzenetére
Ja, még egy, ami nélkül nem lehet létezni aktív Drupal-fejlesztőként:
Drush.
Én személy szerint eléggé lusta vagyok ahhoz, hogy össze-vissza kattintgassak az admin-felületen (nem szeretek ilyen rabszolgamelókkal időt elszarni), és megvárjam, amíg végre összerakja az oldalt, stb., meg backupoljak az update-ekhez, stb., ezért ez tökéletes eszköz számomra.
Csak kiragadott példák:
nyomatok egy ennyit parancssorból:
drush pm-update
a Drupal core-hoz és az ÖSSZES engedélyezett modulhoz megkeresi a lehetséges update-eket, és update-eli is őket, ha van újabb ajánlott verzió. Az adatbázis-frissítést is elintézi egyből.Én akkor vettem elő ezt az eszközt, amikor meguntam a piros figyelmeztetést, hogy nem ártana már security update miatt frissítenem a Drupal core-t és pár modult.
Kicsit ismerkedtem vele, aztán elindítottam konzolból a fentit, készítettem egy kis kaját, mire visszaértem, megvolt a teljes folyamat. Backupot is készített az update-elendő modulokból.
Persze éles projektből saját mentés akkor sem árt, minden adat inkább legyen meg akár kétszer-háromszor, mint egyszer sem.Másik use-case: most pl. a Drupal 7-es frissítésénél előjött egy modulhiba, a UUID modul alpha3-as változatába beleraktak egy kisebb hibát:
[link]
"Undefined variable: replacements in uuid_tokens() (line 95 of ...sites\all\modules\uuid\uuid.tokens"
OK, megnéztem, a topicban írják, hogy a devel változatban már javították ezt az egyébként nem túl tragikus hibát.
Na, akkor frissítsünk csak a develre, de a franc fogja böngészőben megkeresni a UUID modul oldalát, és az alapján begépelni a pontos változatot (jó, itt nem túl bonyolult, 7.x-1.x-dev, de kinek van kedve gondolkozni rajta, hogy ez még csak az 1-es változat), ezért inkább begépeltem ezt:drush dl uuid --select
Ez felkínált egy listát:
D:\Projects\web\PHP\drupal-7\htdocs>drush dl uuid --select
Choose one of the available releases for uuid:
[0] : Cancel
[1] : 7.x-1.x-dev - 2012-Jul-18 - Development
[2] : 7.x-1.0-alpha3 - 2012-Jan-31 - Supported, Recommended
1
Project uuid (7.x-1.x-dev) downloaded to D:/Projects/web/PHP/drupal-7/htdocs/sites/all/modules/uuid.
Project uuid contains 4 modules: uuid_services_example, uuid_services, uuid_default_entities_example, uuid.Szóval a lényeg, hogy csak bepötyögtem, hogy 1-es, és kész is volt.
Persze ha Access denied üzenetet kap az ember, akkor figyelni kell a jogosultságokra (esetleg adminként el lehet indítani a parancssort), meg arra is kell figyelni, hogy ne legyen lock-olva a webszerver által (nálam ezt megtörtént, ekkor jött jól az Unlocker).
Vagy többnyelvű oldalnál le akartam tölteni a frissített modulokhoz az esetleges fordítási frissítéseket, akkor ennyi:
drush l10n-update
A listát még sokáig lehetne bővíteni: drush.ws
Ajánlom a használatát, ezt is folyamatosan fejlesztik.
-
Sk8erPeter
nagyúr
Hát az még várat magára egy darabig.
Csak jó dolgokra beszélem rá erőszakosan az embereket.
Egyébként nagyon örülök neki, hogy ezek nálad is beváltak."Ha jól emlékszem drupal 6-nál a dpm-et használtam, viszont a 7-esben hibával elszállt."
Az hogy lehet? Pedig még a 8-as változatnál is működnie kell a dpm-nek: dpm().Én azért használom a dsm()-et, mert elég beszédes a neve, a drupal_set_message-ből van összerakva.
Ez így pont leírja, amit csinál. A státuszüzenetekhez fogja kiírni szétnyitható változatban a változókat, mármint kibontható, ha nem egy stringről, hanem mondjuk egy tömbről van szó.
A dvm() pedig var_export-ot használ, stb..."Néha meg bekandikál a var_dump(), ha rá kell keresni valamire"
Ez nem biztos, hogy jó ötlet. Mármint pont a var_dump alkalmazása. Nem biztos, hogy ott fogod kiprintelni a változó eredményét, ahol nem töri szét mondjuk a megjelenítést. Viszont ezt áthidalják a Devel modul által elérhető függvények, mert hívnak egy drupal_set_message-et, és akkor a státuszüzenetek közé fog kerülni a változók tartalma.
(Akkor már var_export($valtozo, TRUE), a TRUE-val visszaadja az értéket, ezt meg kiírathatod a megfelelő helyen... áhh, melós, inkább használd a Devel modul sajátjait.
Mondjuk én annak idején, amikor nem ismertem eléggé a Devel modult, felfedeztem a spanyolviaszt, mert egy ilyen függvényt írtam (igaz, ez sem rossz, a célnak megfelel):function var_export_drupal_set_message($var, $text = ' __ ', $output_type = TRUE, $type = 'status') {
// $type: e.g. 'status'
if (is_string($var)) {
$var = htmlentities($var);
}
$msg_to_output =
'
<p>' . $text . ($output_type ? ' (type: ' . gettype($var) . ')' : '') . ':
</p>
<pre>' . var_export($var, TRUE) . '</pre>
<hr />
';
drupal_set_message($msg_to_output, $type);
}Ezt is meghívhatod így:
var_export_drupal_set_message($valtozo, 'ez az én változóm');
Ez kb. ugyanazt csinálja, mint a dvm();.
Szerk.: na, már megint sikerült egy óriási hsz.-t kreálnom...
-
Siriusb
veterán
válasz
Sk8erPeter #208 üzenetére
Ha jól emlékszem drupal 6-nál a dpm-et használtam, viszont a 7-esben hibával elszállt. Lusta voltam utánajárni, mert a kpr működik.
Néha meg bekandikál a var_dump(), ha rá kell keresni valamireAnnak örülök nagyon, hogy régebben javasoltad, nézzem meg a zen-t. Némi használat után nagyon bejött.
Most már azt sem sajnálom, hogy áttértem d 6-ról a 7-re, amire szintén te "beszéltél rá".
Várom a beszámolód a 8-ról is -
Sk8erPeter
nagyúr
"Akkor jobban érteném, mikor milyen hook-ot célszerű alkalmazni."
Csak kérdezz, abban van a kihívás.
Több fontos hook van ezzel kapcsolatban:hook_node_load
hook_node_view
stb.Amit mindenképp érdemes használni, az a Devel modul fejlesztéshez használható függvénye, dsm(), dvm(), stb., példa:
function myModule_node_view($node, $view_mode, $langcode) {
dsm($node, '$node variable in '.__FUNCTION__.'()');
dsm($view_mode, '$view_mode variable in '.__FUNCTION__.'()');
// ........................
}Ezt mindenképp próbáld ki, persze template.php-ben vagymáshol is tudod használni ezt a függvényt, iszonyú hasznos, ha átlátható módon szeretnéd "kinyomtatni" a változók tartalmát. Egy csomó időt spórolhatsz meg magadnak ezzel.
Hát ez hihetetlen, hogy minden egyes hozzászólásomnál annyit elkezdek pofázni, hogy le kell magam lőni, hogy végre abbahagyjam, mindenről eszembe jut valami.
Biztos az az oka, hogy öröm, hogy végre valakivel tudok dumálni érdemben a Drupalról.
Mondjuk a drupal.hu-n is meg lehet ezt tenni, de az a fórum annyira nem áll közel a szívemhez. -
Siriusb
veterán
válasz
Sk8erPeter #206 üzenetére
Ismét oszlattál a homályon.
Bele sem gondoltam, miért használja referenciát, tényleg okos megközelítés.
Próbáltam már átlátni, milyen sorrendben megy egy node eleminek az előállítása, csak többet kellene olvasnom róla... Akkor jobban érteném, mikor milyen hook-ot célszerű alkalmazni.
-
Sk8erPeter
nagyúr
Szívesen! Most már tényleg megérdemeltem, hogy valaki dobjon egy csontot...Na, vissza a Drupalhoz.
"Értem én, hogy csak a kimenet számít, de majdnem mindenhol azzal találkoztam, hogy ott van paraméterként a &$variables, szóval furcsa volt."
Biza, de ha jól megnézed, a $variables előtt ott van a referenciát jelző karakter (&):
Passing by Reference
Tehát a változót referencia szerint adjuk át a függvénynek, ezt a függvény fejlécében jelezni kell; ez azt jelenti, hogy akármit is változtatsz ezen a változón, az a hívás helyén is változni fog.
Erre pont jó egy tök egyszerű példa a php.net-en:
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a is 6 hereTehát nem visszatérési értéket vizsgálnak, hanem az adott függvény kap egy referenciát, az adott függvényben hozzácsapod a változóhoz a dolgaidat, vagy épp törölsz belőlük, stb., tehát a tömböket nem kell állandóan lemásolgatni, aminek mondjuk elég nagy jelentősége van memóriaspórolási célból.
Gondolj bele, milyen erőforrás-igénye lenne az amúgy is erőforrás-igényes Drupalnak, ha minden egyes brutális nagy tömböt le kellene másolni.Rövid példával:
function blabla(&$variables){
$variables['asdasd'] = 'bla';
unset($variables['nem']);
}
$myVariables = array();
$myVariables['igen'] = 'NEM!';
$myVariables['nem'] = 'IGEN!'; // :D
blabla($myVariables);Az eredménye ennek:
$myVariables = array(
'igen' => 'NEM!',
'asdasd' => 'bla'
);Tehát a függvényben hozzácsaptam egy adott kulcson lévő értéket ('asdasd' kulcs), meg elvettem egyet (a 'nem' kulcsban lévő értéket), aztán ez lett belőle.
Remélem érthető.A hook_form_alter és ehhez hasonló jellegű függvények (amikben változtathatsz a beállított értékeken) is referenciákat kapnak.
Ez a konvenció elég könnyen megszokható, ha már megérted a miérteket.A hook_theme és egyéb függvények nem ilyen jellegű változtatásokra valók, ott visszatérési értéket vár a Drupal, nem ad át referenciaként semmit.
-
Siriusb
veterán
válasz
Sk8erPeter #204 üzenetére
Öregem, az elmúlt évezredbeli önmagamra emlékeztetsz, amikor katonáéknál nagyon megtanultam mindent kimagyarázni (értsd: a lustaságomat) a tiszteknek. Persze egy idő után rámszóltak, hogy ne nézzem már őket hülyének.
SSD már nagyon jó lenne, a 8 éves asztali gépem biztos szívesen venné.
Értem én, hogy csak a kimenet számít, de majdnem mindenhol azzal találkoztam, hogy ott van paraméterként a &$variables, szóval furcsa volt.
TEHÁT A TE HIBÁD AZ EGÉSZ!!!
Csak a Te egyedfejlődésedért teszem, hogy segítsem, több oldalról is ráláthass az adott témára.Nagyon szépen kifejtetted az egész kérdéskört az utóbbi 1-2 napban, megérdemelsz egy piros pontot.
Remélem értékeled, hogy nem csontot vagy jutalomfalatot mondtam.Komolyra fordítva a szót: kösz. Elég színvonalas topikot generálsz így magadban.
-
Sk8erPeter
nagyúr
"Egyébként én mindent cache-t ki szoktam kapcsolni, amíg turkálok, így is néha kell egy plusz ctrl+f5, hogy frissüljön a böngésző."
A Drupal attól még bizonyos dolgokat cache-elhet, bár ha Zennél úgy állítottad be, hogy minden oldalfrissítésnél frissítse a theme registry-t, akkor okés, bár eléggé lassítja az oldalbetöltést, tehát nem biztos, hogy mindig érdemes ezt bekapcsolva hagyni, csak legfeljebb akkor, ha tényleg folyamatosan olyan dolgokat pakolsz a template.php-be vagy hasonló helyre, aminél a módosítások után amúgy is üríteni kéne a cache-t.
Bár ha SSD-n van a webszervered, akkor nagy eséllyel majdnem "mindegy", hogy be van-e kapcsolva, vagy sem."Ezt a függvényt nem teljesen értem. Igazából azt furcsállom, hogy nincs bemenet."
Igen, a bemeneteket lustaságból hagytam le, mert jelen esetben úgysincs szükségem a hook_theme() leírásában látható ($existing, $type, $theme, $path) változókra, egyébként ennek a függvénynek úgyis csak a KIMENETE számít: visszaadsz egy tömböt a modulod/theme-ed által deklarált theme implementation(ök)ről.
Tehát a bemenet csak segítségül szolgálhat, hasznos lehet bizonyos esetekben, de egyébként nincs rá feltétlenül szükség. A bizonyos eseteknél arra gondolok, hogy mondjuk a már meglévő implementációkból szeretnél kiszedni valami adatot ($existing tömb), esetleg az elérési utat fel akarod használni template fájlhoz ($path string), vagy hasonló. (pl. ha egy template-fájlnak adod át a theme bizonyos változóit [ilyenekre kell gondolni template fájloknál, mint a block.tpl.php és hasonlók]).Ha már block, csak hogy megértsd, ehhez hasonló jellegű végül is a hook_block_info() is, ott sincs elvárt BEMENET, csupán elvárt KIMENET! Itt előre szólsz a Drupalnak, hogy a modulod milyen blokkokat fog definiálni. Aztán a hook_block_view() megfelelő implementációját is elő fogja venni a Drupal, és szintén elvár egy kimenetet, de itt viszont már fontos a bemenet is, vagyis a $delta változó, ami megmondja, hogy épp melyik blokkot is szeretné renderelni az általad megadottak alapján a Drupal.
=========================================
Abból, hogy "a megfelelő helyre megy", számomra nem sok derül ki.
Ettől függetlenül értem, mire gondolsz.
Tulajdonképpen abból a szempontból jogos, amit mondasz, hogy bár magában az AKTÍV theme-ben definiálod a theme megfelelő implementációját, és ott is implementálod (ez elég kemény magyar mondat volt...), végül is az engedélyezett modulok még úgy emlékszem (most, hogy mondod), végezhetnek rajta módosítást egy megfelelő preprocess függvénnyel.Jelen esetben én csak magára a theme-re koncentráltam, az ott végzett módosításokra, mert nagyon ragaszkodtál hozzá, hogy mindent a template.php-ből végezz el.
TEHÁT A TE HIBÁD AZ EGÉSZ!!!Na jó, akkor most megmutatom a legjobb változatot, ahol MODULBAN implementálom a hook_theme-et, ott hozom létre a megfelelő theme_ kezdetű fájlt is, majd ezt abban a theme-ben bírálod felül, amelyikben csak akarod:
/**
* Implements hook_theme()
*/
function myModule_theme($existing, $type, $theme, $path) {
return array(
'links__locale_block' => array(
'variables' => array('links' => NULL, 'attributes' => array('class' => array('links')), 'heading' => array()),
),
);
}
/**
* @see theme_links()
*
* @param array $variables
* @return string
*/
function theme_links__locale_block($variables) {
$node = menu_get_object();
if ($node->nid) {
if ($node->type == 'test_multilingual_type') {
$myTestFieldValue = $node->field_title_for_test['und'][0]['value'];
foreach ($variables['links'] as $langcode => $langLinksArray) {
$variables['links'][$langcode]['attributes']['title'] = t('!myTestFieldValue (original: !originalTitle)', array(
'!myTestFieldValue' => $myTestFieldValue,
'!originalTitle' => $langLinksArray['attributes']['title'],
)
);
}
}
}
return theme('links', $variables);
}Így már biztos, hogy a Drupal-konvenciók szerint fog működni a dolog.
Persze ha nagyon akarod, mindezt a template.php fájlban is megcsinálhatod, de ideje leszakadni kicsit a template.php-ről, és modult fejleszteni.Ha a fentit szeretnéd felülbírálni egy theme-ben, akkor a theme_ előtagot helyettesítsd a sajátThemeNeve_ előtaggal, pl. ha a subtheme-ed neve zenTest, akkor:
function zenTest_links__locale_block($variables){
// ... a fentit kimásolod, aztán a megfelelő módosításokat elvégzed!!
} -
Siriusb
veterán
válasz
Sk8erPeter #202 üzenetére
Szóval böngészgettem egy kicsit a hook-ok miatt és valahol olvastam, hogy a theme() függvény használata javasolt, mert az automatikusan a megfelelő helyre megy, hisze n a theme registry-ben ellenőrzi a kérést, akár template-t, akár hook-ot hívsz meg.
Persze nem biztos, hogy felfogtam, mit akarnak, csak ez maradt meg.5.) Létrehoztam a zenTest_theme() függvényt:
Ezt a függvényt nem teljesen értem. Igazából azt furcsállom, hogy nincs bemenet. Remélem ma este lesz időm szórakozni vele, hogy megértsem, mit is csináltál. Azt lehet tudom, mit tettél tavaly nyáron, de hogy idén nyáron mit, azt biztos nem.Egyébként én mindent cache-t ki szoktam kapcsolni, amíg turkálok, így is néha kell egy plusz ctrl+f5, hogy frissüljön a böngésző.
-
Sk8erPeter
nagyúr
Ja tényleg, azt nem vettem észre, hogy csak 6-osig van elkészítve.
"És azt derítettem ki még, hogy theme() függvényt illik inkább használni"
Mi? Ezt kifejtenéd bővebben?Tudom, mire való a theme függvény, de ebben a kontextusban nem igazán értem ("inkább" - mi helyett?).
Egyébként a candidate functions-nél sokáig nem jöttem rá, hogy kell használni, de aztán próbálkoztam, kiderült, hogy csak a modulban/theme-ben deklarálni kell a felajánlott nevet a hook_theme implementálásával, ahogy mutattam, majd definiálni a függvényt.
-
Siriusb
veterán
válasz
Sk8erPeter #199 üzenetére
töröltem
Új hozzászólás Aktív témák
- Apple Watch Series 9 41mm okosóra Silver S/M Kék szíjjal
- Asus TUF A17 Gamer Laptop 17.3" 144 hz Ryzen 7 7735HS 16 GB RAM RTX 4060 512 GB SSD Garanciával
- MSI Claw A1M Hordozható játékkonzol garanciával.
- Asus ROG Ally Z1 Extreme hordozható játékkonzol dokkolóval, garanciával
- Asztali PC , i7 6700K , RTX 2060 , 16GB DDR4 , 256GB m.2 , 500GB HDD
- Új állapotú, csúcstechnológiás Roborock Saros Z70 robotporszívó (katt a szóviccért!)
- Bomba ár! Lenovo ThinkPad X390: i5-G8 I 16GB I 256SSD I 13,3" FHD Touch I HDMI I Cam I W11 I Gari!
- Új Dell 13 Inspiron 5310 FHD+ IPS i5-11300H 4.4Ghz 8GB 256GB Intel Iris XE Graphics Win11 Garancia
- LicencAruhaz.hu OLCSÓ, LEGÁLIS SZOFTVEREK AZONNAL - Windows - Office - Win Server - ÖRÖK GARANCIÁVAL
- OLCSÓBB!!! Dell Latitude Precision XPS Üzleti gépek, 2-in-1 gépek, Vostro 8-12. gen.
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest