- Motorola Moto G24 Power - hol van az erő?
- Samsung Galaxy S23 Ultra - non plus ultra
- Volkswagen ID.7 menetpróba
- Megjelent a Moondrop audio-fókuszú telefonja Kínában, lesz globális verzió is
- Bemutatkozott a Polestar Phone
- Nothing Phone 2a - semmi nem drága
- Készülőben a Xiaomi 2021-es csúcsmodelljeinek HyperOS frissítése
- Poco F5 - pokolian jó ajánlat
- iPhone topik
- Milyen okostelefont vegyek?
Hirdetés
-
Lopják az LG akkutitkait
it Inkább licenceli ezentúl az akkumulátoros szabadalmait az LG Energy Solution, mert túl sok a jogsértés. Az LGES mellett az UMC is az autóipar egyre lassuló keresletére figyelmeztet.
-
Késik a következő S24 Ultra kamerafrissítés?
ma Még mindig lehet reszelni az algoritmuson.
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
-
Mobilarena
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
-
Siriusb
veterán
-
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.
Sk8erPeter
-
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
"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!!
}[ Szerkesztve ]
Sk8erPeter
-
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
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.
[ Szerkesztve ]
Sk8erPeter
-
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
"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.Sk8erPeter
-
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
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...
[ Szerkesztve ]
Sk8erPeter
-
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
-
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
"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.
Sk8erPeter
-
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! -
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?
-
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?[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #220 üzenetére
el volt "nyomva"
A fején ültem. Szegény Kunta Kinte. -
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..... -
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?)."[ Szerkesztve ]
Sk8erPeter
-
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.
-
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.[ Szerkesztve ]
-
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.[ Szerkesztve ]
Sk8erPeter
-
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?
[ Szerkesztve ]
-
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[ Szerkesztve ]
-
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:
Sk8erPeter
-
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.
-
SecMan
csendes tag
válasz Sk8erPeter #235 üzenetére
Nem nyert
-
Sk8erPeter
nagyúr
-
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)[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
-
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
">>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!
[ Szerkesztve ]
Sk8erPeter
-
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
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.Sk8erPeter
-
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
[ Szerkesztve ]
Sk8erPeter
-
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?
-
SecMan
csendes tag
válasz Sk8erPeter #248 üzenetére
Nem, akkor sem.
Azt mondja az időzített feladatok sikeresen lefutottak. -
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.LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
Új hozzászólás Aktív témák
- AMD Radeon Pro W7900 48GB GDDR6
- ZBook Firefly 14 G9 14" FHD+ IPS i7-1255U T550 32GB 512GB NVMe SSD IR kam gar
- PowerColor RX 6800 XT Red Dragon 16GB GDDR6 256bit - Számla + Garancia, Ár alatt! BeszámítOK!
- MacBook Pro M1MAX 64gb ram 1TB SSD Áfás
- Konzolok karbantartása - hűtőpaszta csere - takarítás (minden 10. karbantartás INGYENES)