-
Fototrend
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
válasz Sk8erPeter #50 üzenetére
Modulok:
pl. lehet rendezni letöltések / értékelések szerint. Meg különben is.jQ UI:
a readme szerint jó:
jquery_ui_add('ui.sortable'); // For a single fileAzért majd kipróbálom tömbösítve is.
-
Sk8erPeter
nagyúr
Modulok:
Nem rossz, de a hivatalos honlapon meg telepítések száma alapján is lehet rendezni.jQ UI:
Igazad van, jó, hogy pont én linkeltem, nem néztem meg alaposan...Itt van az a rész, ami tömbbé kasztolja, ha pl. valaki úgy hívja meg, ahogy Te is:
// Convert file to an array if it's not one already, to compensate for
// lazy developers. ;)
if (!is_array($files)) {
$files = array($files);
}Szóval Te egy lazy developer vagy.
Amúgy hol hívod meg a függvényt, melyik hookban?
A source-ban egyáltalán nem jelenik meg a UI tabs pluginje?[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #52 üzenetére
Jó tudni, hogy gondolnak rám is: a lazy developer necromancer.
Valóban, saját bevallásom szerint is lusta vagyok. Ezért farigcsáltam régebben kisebb programokat, minek dolgozzak én, ha nem muszáj?!A template.php-ben hívtam meg.
Szerk.:
És már bővült is az első hozzászólás. Köszönjük, yetike. Neked is, Sk8erPeter, hogy összeszedted az infókat.[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Nincs mit!
A template.php-n belül melyik függvényben hívtad meg?
Egyébként még a korábbira visszatérve, vagyis a $head_title változó módosítására: az if($hook == 'page') ellenőrzés szükségessége helyett még egyszerűbb, és még jobban elkülöníthető megoldás, ha a következőt alkalmazod:
/**
* Implements hook_preprocess_page()
*
* @see http://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/hook_preprocess_HOOK/6
*/
function pete_preprocess_page(&$variables) {
// Modifying $head_title variable's value
$variables['head_title'] = 'Lószar (asdasdasdasd)';
}Egyébként úgy van a sorrend, hogy előbb a moduleName_preprocess() fut le, utána a moduleName_preprocess_hook().
A sorrendről bővebben: [Setting up variables for use in a template (preprocess and process functions)].U.i.: minden programozó lusta.
[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #54 üzenetére
Ez a változat jobban tetszik, mert rövidebb. Az előző azért volt jó, mert nem biztos, hogy page típusra van szükségem, mint jelen esetben is egyedileg létrehozott típussal dolgozom és ez esetben változóval is, akár több típusra megírható a kód.
Csak simán beleraktam a template.php-be, semmi cifrázás.
-
Sk8erPeter
nagyúr
"Csak simán beleraktam a template.php-be, semmi cifrázás."
Az említett jquery_ui_add('ui.tabs'); sort úgy, ahogy van, beledobáltad a template.php-be, és még csak függvénybe sem pakoltad?
Hát akkor ezt a megoldást jó gyorsan felejtsd el. Ne is csodálkozz, ha ilyen módon valami nem az elvárt szerint működik. Használd a Drupalt rendeltetésszerűen, ahogy illik.
Szóval ha a template.php-ben szeretnéd ezt a függvényt meghívni, akkor kotord elő ezt a fájlt, és pakold bele ezt (smink nevét nyilván módosítsd a sajátodra):/**
* Override or insert variables into all templates.
*
* @param $variables
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered (name of the .tpl.php file.)
*/
function YOURTHEMENAME_preprocess(&$variables, $hook) {
static $jQuery_UI_plugins_included = FALSE;
if (empty($jQuery_UI_plugins_included)) {
jquery_ui_add('ui.tabs');
$jQuery_UI_plugins_included = TRUE;
}
switch ($hook) {
case 'page':
// ....
break;
// ....
}
}Ezt most úgy csináltam meg, hogy minden hook esetén include-olja a jQuery UI plugint.
Ha csak egy adott hooknál kell, akkor értelemszerűen a switch-case-en belülre rakd.
Aztán törölj egy cache-t, és remélhetőleg működni fog (nálam megy).Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #56 üzenetére
Használnám én rendeltetésszerűen, de minek, a te módszereddel sem megy. Nincs nálad véletlenül fent a jquery update modul?
Na jó, belátom, tényleg így kellene használni. Emlékszel? Lazy developer...
-
Siriusb
veterán
válasz Sk8erPeter #58 üzenetére
Szerintem kell az update modul, hogy normálisan működjön. Régebbről is valami ilyesmi rémlik, úgyhogy megteszem.
Töröltem a cache-t, nem ment.Mindjárt megnézem, a Devel modul be van-e kapcsolva, mert az szokott még nagyon bekavarni...
-
Sk8erPeter
nagyúr
Megcsináltad azokat a lépéseket, amik a readme-ben vannak?
Hányas verziójú jQuery UI-t töltötted le hozzá? Hova raktad? Libraries modul fent van? Ezt is érdemes felpakolni.
Valamit lehet, hogy az alábbi lépések közül kihagytál.-- JQUERY UI 1.7 --
The jQuery UI module uses jQuery UI 1.6 because jQuery UI 1.7 requires at least
jQuery 1.3, which is not shipped with Drupal 6. If you absolutely need to move
to jQuery UI 1.7, you can get around this by doing the following:* Download and install the corresponding jQuery Update module from:
http://drupal.org/project/jquery_update
* Download the latest jQuery UI 1.7 release from:
http://code.google.com/p/jquery-ui/downloads/list?q=1.7
* Put the downloaded archive into the directory:
/sites/all/libraries/jquery.ui-1.7.zip
* Extract the archive. This will create the following sub-directory:
/sites/all/libraries/jquery.ui-1.7/
* Rename the sub-directory into "jquery.ui":
/sites/all/libraries/jquery.ui/
so the actual jQuery UI JavaScript files are located in:
/sites/all/libraries/jquery.ui/ui/*.js
* Enable the module at Administer >> Site building >> Modules.
#59:
Nálam bekapcsolt Devel modullal is jól működik.
Szerk.: elvileg a jQuery Update modul nélkül is működnie kell, 1.6-os verzióval.[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #61 üzenetére
A readme alapján csináltam, Libraries modul nincs fent.
jqui 1.7.3-at raktam fel.Az említett modullal is ki fogom próbálni, már csak az érdekesség kedvéért.
-
Sk8erPeter
nagyúr
Akkor mutasd meg plíz, hogyan adod hozzá drupal_add_js() segítségével - tehát mi az, ami működik.
Valószínű, hogy valami elérési úttal kapcsolatos probléma lesz.Így próbálja megtalálni a jQuery UI elérési útját: jquery_ui_get_path().
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #63 üzenetére
Így adom hozzá:
drupal_add_js('sites/all/libraries/jquery.ui/ui/ui.core.js');
drupal_add_js('sites/all/libraries/jquery.ui/ui/ui.tabs.js');
drupal_add_css('sites/all/libraries/jquery.ui/themes/base/ui.all.css');Ha délután / este lesz időm, megnézem a linkelt függvényed.
-
sz_abika
addikt
Hali!
Blokkok gyorstárazása inaktív egy oldalon, ilyen ürüggyel:
A blokkok gyorstárazása nem működik, ha tartalom elérést szabályozó modulok vannak bekapcsolva.Miféle modulokat kéne keresnem pontosan, amik ezt korlátozzák?
PSN: xszabikax
-
Sk8erPeter
nagyúr
Pedig ez az elérési út jó.
Na, de hogy sikerüljön kideríteni a probléma okát, vigyük vissza egy kicsit, először is csekkoljuk, hogy belelép-e egyáltalán az itt említett függvénybe, tehát ezt írd be a template.php-be (szerkeszd a meglévő függvényt, ha már megvan):/**
* Override or insert variables into all templates.
*
* @param $variables
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered (name of the .tpl.php file.)
*/
function YOURTHEMENAME_preprocess(&$variables, $hook) {
static $testOutputReady = FALSE;
if(empty($testOutputReady)){
drupal_set_message('jquery_ui_get_path(): <pre>' . var_export(jquery_ui_get_path(), TRUE) . '</pre><hr />');
$testOutputReady = TRUE;
}
// ..........
}A YOURTHEMENAME helyén nyilván legyen a saját theme-ed neve.
Most ezzel egyrészt meg tudod nézni, mit ad vissza a jQuery UI path-ra, valamint ellenőrizni tudod, hogy jól írtad-e meg, belelép-e egyáltalán a függvénybe.
Ha kiírja a path-t, akkor majd szólj vissza, mit adott eredményül.Szerk.: most kipróbáltam egy tök kezdetleges teszt-Drupalon (6-os), és ott is jól működik.
Ott is fent van a jQuery Update, a Libraries és a jQuery UI.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ez mondjuk tudtommal csak egy figyelmeztetés, hogy bizonyos esetekben nem feltétlenül működik, nem biztos, hogy ez rád is igaz, amennyiben nem használsz ilyen jellegű modulokat.
Az eredeti duma: "Note that block caching is inactive when modules defining content access restrictions are enabled."
Erre rákeresve találtam pl. ezt, itt azt írják erre:"For example, if organic groups, content access, taxonomy access modules or other modules that restrict access to certain kinds of content are turned on, block caching will be turned off."
Aztán van még ilyen: Menu Access, Nodeaccess, és még itt megtalálod az összes "Content Access Control" kategóriába tartozó modult.
Szerk.:
A lényeg, hogy amennyiben korlátozod az elérést pl. bizonyos szerepkörökre az egyes blokkokra vonatkozóan, akkor nem a cache-elt tartalmat veszi elő, mert ez szereptől függően dinamikusan változhat.
Viszont ezt ajánlom figyelmedbe, ha blokkok cache-elésével kapcsolatos problémád van, hátha megoldja (nem próbáltam).[ Szerkesztve ]
Sk8erPeter
-
sz_abika
addikt
válasz Sk8erPeter #67 üzenetére
Köszi a segédletet, mindjárt bele is merülök.
Remélem lesz rá jogosultságom, mert nem az én felügyeletem alatt van az oldalPSN: xszabikax
-
sz_abika
addikt
válasz Sk8erPeter #69 üzenetére
Lassú az oldal, és gyanítom itt lehet a hiba oka.
Viszont tényleg nem tudok belenyúlni ilyen szinten, így csak továbbítottam a fülest végülPSN: xszabikax
-
Sk8erPeter
nagyúr
Szerintem máshol kellene keresni a lassúság okát. Sokszor szokott az adatbázisszerver sebességével is gond lenni. Ha van hozzáférésetek, vagy tudtok ilyen kérést intézni a rendszergazda felé (és teljesíti is), a query cache-t pl. MySQL esetén szerintem mindenképp érdemes bekapcsolni. Meg van még egy-két trükk, amivel lehet gyorsítani. Pl. a Boost modult tudom ajánlani még, ez a statikus tartalmak megjelenítését jelentősen gyorsítja megfelelő beállítások esetén, mert készít egy helyi példányt, emiatt meg nem kell minden alkalommal adatbázishoz nyúlkálni, lekérni a nem kis méretű tartalmakat, és utána PHP-vel összeállítani a teljes oldalt.
Aztán Siriusb ajánlott még egy tippet korábban a másik topicban, ezt nem próbáltam, így nem tudok róla érdemben nyilatkozni, de azt mondja, nála látványos változást hozott: innodb_flush_log_at_trx_commit = 0.
Meg persze mindenképp érdemes bekapcsolni a JS- és CSS-fájlok tömörítését is (itt a fájlok tartalmának változtatása esetén oda kell figyelni, hogy a cache-elt változatot frissítsétek manuálisan).
Még annyi, hogy az ember sokszor rak fel eszetlenül rengeteg modult (én is néha így teszek, ha próbálgatok, bár tanultam a korábbi hibáimból, én ezt már először csak tesztváltozaton próbálom), amit aztán ki sem használ - ezeket mindenképp érdemes kikapcsolni; minél több modul, annál lassabb lehet az egész. Na meg olyan is elképzelhető, hogy valamelyik modul még fejlesztői stádiumban van, így maradhattak benne feleslegesen lassító tényezők (persze ugyanez a véglegesnél sem kizárt, sőt).[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
Search modult megy valakinek? Drupal 6.
Le is van indexelve, mégsem hoz ki egy találatot sem 3 vagy több betűs szóra. Semmi modul nincs feltelepítve, 2 oldal van, az egyik tartalma aaa cccccc a másiké bbb. -
Siriusb
veterán
válasz Sk8erPeter #66 üzenetére
Bocs, hogy ilyen sokára jelentkezem, hirtelen ezer és egy dolgom lett.
Ezt írja:
jquery_ui_get_path():
'sites/all/libraries/jquery.ui'Lehet az is baj - könnyíteni akartam a dolgomon -, egy garland subtheme-ben dolgozom. Mivel nem írt ki először semmit a kódod hatására, áttettem a garland template.php-jébe, úgy már kiköpte a fenti infót. Viszont onnan sem húzza be az UI-t.
-
Sk8erPeter
nagyúr
Hát akkor a subtheme-ed valahogy nagyon rosszul strukturált, elképzelhető, hogy ezért nem megy. A subtheme-ben is kellene, hogy tudd használni rendesen a megfelelő theme hookokat.
Ez is közrejátszhat a sikertelenségben.
Ennek a megoldása igazából csak azért érdekes, mert ha ez nem megy, lehet, hogy más modulok helyes működése is kérdéses.
Az elérési út pedig jó...Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #74 üzenetére
Annyi a kavarás a subtheme-ben, hogy Views-t használok.
Keresés:
Lehet nincs joga mysql temporary táblát csinálni? Megnézem. -
Sk8erPeter
nagyúr
Nem tom, lehet.
"Annyi a kavarás a subtheme-ben, hogy Views-t használok."
Ezt nem értem. Hogy jön a subtheme-hez a Views module, mi köze a kettőnek egymáshoz?
Vagy most arra célzol, hogy azon az oldalon, ahol meg akarod jeleníteni a jQuery UI-t, ott éppen Views-zal kéred le a tartalmat?
A megfogalmazás így elég zavaros...Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #76 üzenetére
A kapkodás... Bocs. Nem a legjobb a multitasking vezélésem. Mondhatnám úgy is, gyenge a proci.
Szerintem sincs köze, és valóban, ott kell a jQuery UI, ahol Views is van.
-
Sk8erPeter
nagyúr
Hogy csináltad a Garland subtheme-et? Valahogy így?
Mondjuk én Zen subtheme-et használok, ott minden theme hook faszán működik (amúgy is ajánlott smink a Zen, ha valaki szereti a rugalmasan kezelhető, jól kommentezett theme-eket).
Arra kéne rájönni előbb, mi az oka, hogy nem működnek a subtheme hookjai.[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #78 üzenetére
Hasonlóan, de kipróbálom így is.
Idáig inkább megírtam saját sminket, de ennél a projektnél nem akartam túl sok munkát belefektetni annak idején (2 éves cuccot húztam elő most...). -
Sk8erPeter
nagyúr
Szerintem saját sminket írni tök felesleges, túl sok meló, miközben nagyon faszán testreszabható sminkek vannak, amikből könnyű jól működő subtheme-et gyártani (lásd pl. Zen), és legalább valaki már elvégezte helyetted a piszkos melót.
A Zent egyébként azért szeretem, mert már van egy előre elkészített subtheme, aminek a neve "STARTERKIT", amit csak a saját mappájából ki kell ollózni, berakni külön theme-ként, és átírni a STARTERKIT részt a megfelelő fájlokban a saját névre, amit szeretnél adni a subtheme-nek (template.php, theme-settings.php, valamint a STARTERKIT.info.txt fájlt átnevezni a sajatnev.info-ra), és kész vagy.
Még példákat is mutat a template.php-ben a hookokra.
Arról nem is beszélve, hogy az Internet Explorerrel való kompatibilitásra is gondoltak a CSS-fájlokban is, meg választhatsz előre létrehozott CSS-fájlokból, hogy most fixed vagy fluid layoutot szeretnél.
Aztán ezt megfelelően testreszabod.
Na én ezt nem akarnám megcsinálni mind saját melóval, ha már valaki ezt megosztotta.[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #80 üzenetére
Azt hiszem jobban meg kell ismerkednem ezzel a Zennel. Néztem annak idején és tetszett is, de valamiért félreraktam.
Kösz az infót. Szerintem ez hasznos lesz számomra! -
Sk8erPeter
nagyúr
Nincs mit!
Amúgy miután kibontottad a Zen-t, a STARTERKIT könyvtáron belül van egy README.TXT, az tök egyértelműen elmond mindent. De igazából annyi a lényeg, amit előbb leírtam, ha jól csinálod, kb. 5 perc (jó, elsőre 10), és van egy tök jól működő subtheme-ed.Sk8erPeter
-
PowerBuldog
veterán
sziasztok!
Volna egy kis problémám az egyik sminkel.
Szépen telepítve van, aktiválva és defaultként beállítva. Viszont a Structure>>Blocks felületen nem jelenik meg, csak a Bartik és a Seven smink, így az egyedi blockokat nem tudom a helyes sorrendbe rakni.
Localhoston futtatva hibátlan, rendesen működik ahogy kell, viszont éles környezetben fellőve már nem bírom rendesen konfigurálni.Mi lehet a hiba?
[ Szerkesztve ]
Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html
-
Sk8erPeter
nagyúr
válasz PowerBuldog #83 üzenetére
Bár lehet, hogy már megvolt, de töröltél theme registry-t (cache-t a performance oldalon)?
(Melyik theme?)Sk8erPeter
-
PowerBuldog
veterán
válasz Sk8erPeter #84 üzenetére
Csináltam, de nem jó. Amúgy saját gyártású smink.
Közben viszont rájöttem, hogy mind1 milyen sminket aktiválok és teszek default-á, akkor is csak a Bartik fület mutatja és annak a blockjait engedi csak konfigurálni.
Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html
-
Sk8erPeter
nagyúr
válasz PowerBuldog #85 üzenetére
Az éles környezeten pontosan ugyanaz a Drupal van fent?
Vagy ez valami hosting, ahol előretelepített Drupalt használsz? Ott engedélyezik egyáltalán, nincs letiltva valamilyen módon más sminkek használata?
A saját sminkedben definiáltad a megfelelő régiókat (bár ha nincs definiálva, elvileg alapértelmezettnek vesz párat)?
A könyvtárszerkezet megfelelő? Hova teszed fel őket?
Árulj már el egy kicsit több infót, mert így csak találgatni lehet, főleg, hogy semmit nem tudunk a lokális és a tesztkörnyezetedről sem.A saját smink gyártása helyett meg egyébként szerintem stabilabb megoldás pl. egy Zen subtheme használata, azt nagyon jól testreszabhatod (erről beszéltünk fentebb).
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #82 üzenetére
Most van időm, elkezdtem a ZEN-nel (is) foglalkozni, tényleg hasznos kis darab. Egyelőre elkezdtem az egyik sminket átültetni ebbe. Amint az ember fejébe megragad, melyik css-be miért kel nyúlni, egész jól megy.
Más:
Szótöredékes keresésre mit használtok? Ugye a beépített search module csak egész szavakra keres. Drupal 6. -
Sk8erPeter
nagyúr
Jaja, én még nem találtam jobbat a Zennél.
Nagyon logikusan strukturált, jó, hogy vannak példák a template.php-ben az alkalmazható hookokra (még kezdőként nagyon nagy hasznát vettem, sokat segített), rendkívül jól dokumentált (minden fájl elején totál egyértelmű magyarázatokkal van tele, hogy mi mire való, melyik változó használható fel, és annak mi is lesz pontosan a tartalma, stb.), Internet Explorer hülyeségeire is gondoltak, könnyen megvalósítható vele a fixed és a fluid layout is, és persze teljesen valid kódot generál.Szótöredékes keresésre? Hmm, jó kérdés.
Itt nem találsz valami ezzel kapcsolatosat (Apache Solr Search Integration)? Az Apache Solr Search Integration a core search modul lecserélésére, a kereséses extra feature-ökkel való kiegészítésére hivatott.[ Szerkesztve ]
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #88 üzenetére
Ezt, a Fuzzy Search -t és a Google Custom Search Engine - t néztem. Gondoltam hátha van valakinek tapasztalata.
-
Sk8erPeter
nagyúr
Hát én csak részmegoldásokat találtam, pl. kötőjeleket szóelválasztásnak tekint, mint egyfajta szótöredék: [link]
Van egy ilyen, de ezt őszintén szólva nem értem, miért megoldás, és gáz, hogy belegányol a core modulba: [link]
Itt pedig pont a Fuzzy-ra meg a Trip Search-re hivatkoznak: [link]De basszus, most nézem a Fuzzy Search oldalát, ott épp ezt írják:
"This module provides drupal sites with a fuzzy search engine to allow for broader keyword matches including partial or misspelled keywords."
Akkor mi a kérdés?Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #90 üzenetére
A kérdés kb. az volt, kinek mi vált be.
A Solr túl munkás, elolvasva a readme-jét, most a Fuzzy-t próbálgatom.
-
Siriusb
veterán
Elhatározám, page-contact.tpl.php helyin hook-ot használnók, 'iszen csupán csak statikus infót kívánnék megjeleníttetni az adott form - on (igazándiból html kódokkal egyetemben). Perszehogybelegabalyodék.
Drupal 6 + Zen subtheme + template.php
Első változat, mely nem akaródzik működni:
function MYTHEME_theme(&$existing, $type, $theme, $path) {
$hooks = zen_theme($existing, $type, $theme, $path);
$hooks['contact_mail_page'] = array(
'arguments' => array('form' => NULL),
);
return $hooks;
}
function MYTHEME_contact_mail_page($form) {
$form['contact_information']['#value'] = 'akármi';
//De akkor sem megy az ebeadta, ha az alábbi parancsot is hozzáadom:
//return drupal_render($form);
}Második változat, mellik működék, de rút:
function MYTHEME_markup($element) {
if ($element['#parents'][0] == 'contact_information'){
$element['#value'] = "Húha";
}
//return (isset($element['#value']) ? $element['#value'] : '') . (isset($element['#children']) ? $element['#children'] : '');
}Szeretnők, ha valakinek (
Sk8erPeter) kedve támadna megsegélleni. -
Sk8erPeter
nagyúr
... és ím' Sk8erPeter ama kürt hívószanának hallatán jövé' vala, ama nemes szándéktól vezérelvén, hogy bajtársát mielőbb igyekezzék kisegíteni ama nehéz időkből.
Szóval valóban NAGYON rút az a megoldás.
Most olyan megoldásokat mondok, amik elsőre eszembe jutnak (lehet még több is):
1.) /contact elérési út helyett másik használata (pl. /contact-us), saját statikus tartalom belerakása egy adott node-ba - de gondolom Te szeretnéd inkább mégis ezt az elérési utat használni. Bár mégis ez lenne a lehető legegyszerűbb.
2.) Contact modul kikapcsolása, saját node létrehozása a statikus tartalommal, ennek beállítása a /contact elérési útra - nem olyan jó megoldás, mert ütközés van, ha később mégis be akarod kapcsolni a Contact modult.
3.) page-contact.tpl.php módosítása; a következő sor kikommentezése (Zen esetén):
<?php print $content; ?>
és ennek lecserélése a saját, statikus tartalomra, tehát így:
<div id="content-area">
<?php print $content; ?>
</div>HELYETT
<div id="content-area">
<?php
// print $content;
?>
asdlkjasdlkasjdlkasjdklasjd
</div>- szintén NEM túl szép megoldás.
4.) Modulban - mindenképp hozz létre egyet, úgyis hasznát fogod még venni!
Mutatok egy példát (úgy tudom, 6-ost használsz!):
A modult kiegészítem egy általam írt függvénnyel, aminek szerintem debuggolásnál még hasznát veheted: var_export_drupal_set_message() - ez tulajdonképpen a keveréke a var_export() és drupal_set_message() függvényeknek. Így könnyen kiírathatod a változók értékeit, ott mutatja, ahol a státuszüzeneteket. Mutatok is a használatára példát: kiíratom a $form_id változó értékét. Egy-két helyen kommentként benne hagytam egyéb példákat, amiket felhasználhatsz debuggolás céljára.
Elérési út (ide pakold a modult!!):
sites/all/modules/modSiriusbEzenbelül a két fő fájl, ami szükséges:
==================================================
modSiriusb.info
; $Id$
name = "Siriusb - Test module"
description = "Test Module by Siriusb"
package = "Siriusb"
core = "6.x"
php = 5.2==================================================
modSiriusb.module
<?php
// $Id$
/**
* @file
* Siriusb's test module.
*/
define('SIRIUSB_MODULE_MACHINE_NAME', 'modSiriusb');
/**
* Sets a Drupal message which outputs a parsable string representation of a variable
*
* @param mixed $var The variable of which we would like to output a parsable string representation
* @param string $text The message to output
* @param string $type The type of the message
* - 'status'
* - 'warning'
* - 'error'
*
* @see http://php.net/manual/en/function.var-export.php
* @see http://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/drupal_set_message/6
*/
function var_export_drupal_set_message($var, $text, $type = 'status') {
// $type: e.g. 'status'
drupal_set_message($text . ': <pre>' . var_export($var, TRUE) . '</pre><hr />', $type);
}
/**
* Implementation of hook_form_alter()
*/
function modSiriusb_form_alter(&$form, &$form_state, $form_id) {
// var_export_drupal_set_message(__FUNCTION__, 'function');
// teszt célból kiírjuk a $form_id-t --> csak debug-célra, használat után ELTÜNTETNI!
var_export_drupal_set_message($form_id, '$form_id');
}
/**
* Implementation of hook_form_FORM_ID_alter()
*/
function modSiriusb_form_contact_mail_page_alter(&$form, &$form_state){
// var_export_drupal_set_message(__FUNCTION__, 'function');
// var_export_drupal_set_message($form, '$form...');
// var_export_drupal_set_message($form_state, '$form_state...');
$form['#after_build'][] = 'modSiriusb_form_contact_mail_page_alter_after_build';
}
function modSiriusb_form_contact_mail_page_alter_after_build(&$form, &$form_state) {
// eltüntetjük az eredeti formot
unset($form);
// új tartalmat teszünk bele a $form változóba
$form['contact_info'] = array(
'#value' => '<div>Ide jön a saját tartalmad!</div>',
);
return $form;
}Az érdekesség az, hogy csak az #after_build függvényben eltüntetve működik úgy, ahogy akarjuk most (eltüntetni, majd felülbírálni a contact formot).
A modSiriusb_form_contact_mail_page_alter() függvényben viszont plusz esetleges saját mezőket is lehet hozzáadni (meg persze a modSiriusb_form_contact_mail_page_alter_after_build() függvényben is).
Fontos tudni, hogy az #after_build függvényekben vissza kell térni a $form változóval.=====================================================
Ettől függetlenül talán még mindig az tűnik a legkevésbé erőforrásigényesnek, ha saját node-ot létrehozol, és ezt beállítod pl. a /contact-us címre. A Contact modult meg addig kikapcsolhatod, amíg nincs szükséged rá.
Remélem segítettem!
Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #95 üzenetére
Ez aztán a válasz! Kösz!
Bevallom egyetlen egyszer írtam modult, a Views-hoz kellett sorba rendezés választható mező alapján, mert nem táblázatos formában jelenítettem meg a tartalmat. Meg is voltam lepődve, hogy működött.
-
Siriusb
veterán
Hátha valakinek van még ötlete:
Localhoston (LAMP) tegnap még az egyik drupal 6 alapú site-on 1-2 apró módosítást végrehajtottam és feltöltöttem élesbe. Ma is kellett volna még pluszban berakni valamit, de localban nem megy, a hibaüzenet:
Fatal error: Maximum execution time of 30 seconds exceeded in /akarhol/includes/file.inc on line 963Próbáltam a php.ini-ben a max_execution_time - ot növelni (végül már 30-ról 1000-re), de csak annyit értem el, hogy egy tökéletesen üres oldalt kapok, nincs betöltve semmi az ég világon.
Növeltem még a memory_limitet, a drupal-ban a settings.php-ben hozzáadtam, hogy ini_set('max_execution_time', 0); , hatástalan.
Az éles verzió működik szerencsére, és az összes többi drupal is a local-on. Valaki mondjon valamit!
-
Sk8erPeter
nagyúr
"settings.php-ben hozzáadtam, hogy ini_set('max_execution_time', 0); , hatástalan"
Ez a beállítás nem tudom, miért lenne jó.
Egyébként érdemes inkább a set_time_limit() függvényt használni: [link].A 30 másodperc néhány esetben tényleg kevésnek is bizonyulhat, ezt érdemes magasabbra állítani, van, amikor cron-feladatok, update, cache-elési mechanizmusok, vagy épp több modul egyszerre történő telepítése (ehhez többek közt a táblák adatbázisba való feltöltése), stb. fut, ami hosszabban tarthat, nem érdemes kockáztatni, hogy esetleg egy script megszakad - és pl. ezáltal egy modulhoz feltöltendő tábláknak csak mondjuk a fele kerül az adatbázisba - a túl kevés futási idő miatt.
Hogy a lényegi részre is térjek:
először is nem ártana, mi volt az az "1-2 apró módosítás".
Másrészt: próbáld meg azt, hogy az index.php fájl ELEJÉRE berakod ezt (nyilván a <?php után):function set_error_reporting() {
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
}
set_error_reporting();
// .......Ha ettől behal (mondjuk így is behal), akkor kommentezd ki a fv.-en belüli harmadik sort, vagyis ezt: ini_set('display_startup_errors', TRUE);
Számomra az meglepő volt, hogy hasonló problémánál a /admin/reports/dblog címen elérhető adatbázisnapló elérhető volt, innen tudtam törölni az Admin menü segítségével a cache-t, és így megoldódott a dolog.
Persze olyan is előfordul, hogy belekerül valami modulba egy gányolás, és így totálisan meghal az egész oldal.
Nálam egyszer attól is para volt, hogy Devel modullal rámentem, hogy telepítsen újra egy-két modult (tehát disable, uninstall, majd megint install, asszem az enable már manuális), de a folyamat felénél valamiért megszakadt, és ez nem tett túl jót az oldalnak. De aztán az Admin menüben lévő cache-törlő menü ezt is megoldotta.Sk8erPeter
-
Siriusb
veterán
válasz Sk8erPeter #99 üzenetére
Ez a beállítás nem tudom, miért lenne jó.
Én sem, a netet túrva találtam, valaki ezt alkalmazta. Neki bejött, nekem nem. Végigpróbáltam mindent, amit javasoltak.Ha megemelem a max_execution_time -ot, most 180-on van, apache újraindítva, hibaüzenetet nem ad, teljesen üres az oldal. Ezt úgy értsd, hogy a forrásban sincs semmi, ha böngészőben megnézem.
Az általad javasolt függvény sem működik, egyik módon sem.
először is nem ártana, mi volt az az "1-2 apró módosítás".
A tartalomban ill. a css-ben módosítgattam. Semmi, ami a kódot érintené.Szerk:
Ami lényeges, a többi drupal alapú cucc megy a különféle virtualhost-okon, csak ez az egy nem, tehát nem valószínű, hogy apache konfig probléma...[ Szerkesztve ]
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Napelem
- Milyen processzort vegyek?
- Formula-1 humoros
- Elektromos rásegítésű kerékpárok
- Skoda, VW, Audi, Seat topik
- Véroxigénszintet is mér a Honor Band 5
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- exHWSW - Értünk mindenhez IS
- Microsoft Excel topic
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest