Pokiaľ potrebujte na dvojazyčnom webe CCK pole s výberom štátu (aktuálny ISO 3166 zoznam) ktoré sa zmení podľa vybraného jazyka môžete použiť nasledujúci kúsok kódu: » Čítať viac »
Pokiaľ potrebujte na dvojazyčnom webe CCK pole s výberom štátu (aktuálny ISO 3166 zoznam) ktoré sa zmení podľa vybraného jazyka môžete použiť nasledujúci kúsok kódu: » Čítať viac »
Aby som si to zapamätal konečne:
Ak robím portupgrade -a na FreeBSD a náhodou začne PEAR vyhadzovať chybu Core Dumped tak si treba skontrolovať poradie rozšírení v /usr/local/etc/php/extensions.ini. Napríklad pokiaľ mám skompilované rozšírenia SPL a MySQLi tak riadok extension=spl.so musí byť vždy pred extension=mysqli.so.
Relevantná chybová hláška z logu:
[Wed Apr 09 17:07:16 2008] [notice] caught SIGTERM, shutting down
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20060613/mysqli.so' - /usr/local/lib/php/20060613/mysqli.so: Undefined
symbol "spl_ce_RuntimeException" in Unknown on line 0
Určite ste už na rôznych webstránkach videli vo formulároch zaujímavú funkciu – píšete do formulárového políčka a pod ním sa vám automaticky ponúka výber podľa napísaných písmen (napríklad na http://seznam.cz pri vyhľadávaní).
Myslíte si že dosiahnuť niečo podobné v Drupale je ťažké? Vôbec nie. » Čítať viac »
DGXov skvelý Texy! je teraz ešte skvelejší! » Čítať viac »
Dnes som si pri testovaní modulov Imagecache a Thickbox vsimol ze Thickbox vytvára odkazy na daľšie obrázky aj keď som nič také po ňom nechcel a žiadne ďalšie obrázky na stránke neboli. Nakoniec som zistil že Thickbox používa parameter rel="..." pre prepájanie súvisiacich obrázkov do série v ktorej je možno listovať šípkami. Následne na to som zistil že Texy! mi do každého odkazu vkladá rel="nofollow". Toto sa dá síce v nastaveniach Drupal modulu pre Texy! zapnúť ale ja som to určite zapnuté nemal. Nakoniec vysvitlo že to bola štandardná programátorská chyba:
$_obfuscateemail = variable_get('texy_obfuscate_email', '');
if ($_obfuscateemail = false) {
// do nothing
$texy->obfuscateEmail = false;
} else {
// obfuscate email addresses
$texy->obfuscateEmail = false;
}
Podobná chyba bola aj pri premennej $_forcenofollow. Tak so to opravil, trošku zladil veľkosť true a false v celom kóde modulu a vydal som novú verziu Drupal Texy! modulu texy-5.x-1.4.tar.gz.
Pozitívne na tom je aj to že som si konečne vyskúšal a pochopil ako funguje release cyklus v Drupal CVS (a ako sa dá v Tortoise CVS vytvoriť nový TAG) :D.
Pokiaľ používate vo svojich PHP skriptoch funkciu session_register() tak sa nečudujte keď vám zrazu prestane chodiť web (zobrazí sa ako prázdna stránka). V PHP 4.4.5 je totiž chyba, ktorá pri pokuse o zaregistrovanie neinicializovanej premennej funkciou session_register() posôbí pád procesu web servera.
User Contributed Notes
session_register
21-Feb-2007 12:37
Note that PHP 4.4.5 has a bug that will cause a segfault if you try to use session_register with an undefined variable. That's http://bugs.php.net/bug.php?… .
Tomovi (ktorý prevádzkuje na web hostingu Yegon web stránku Websound) sa stala presne táto situácia. Ešte že som deň predtým riešil niečo podobné aj u nás na serveri – nefungovala jedna staršia aplikácia pre vytváranie e-mail aliasov. Postupným debugovaním som došiel k tomu že keď nahradím volanie session_register('premenna') vlozenim premennej do $_SESSION['premenna'] = $premenna tak stránka zbehla vporiadku.
Dnes som si na Internete dohľadal o čo vlastne išlo, niekde som našiel zmienku ale pustil som to z hlavy, len som to Tomovi spomenul. No a Yegon cez obed upgradol PHP so 4.4.4 na 4.4.5 a websound.eu zostal nefunkčný.
Hneď sme vyskúšali uvedený spôsob nápravy, to však nebolo riešenie pretože dane premenné sa napĺňali kdesi ďaleko v hĺbkach includovaného PHP kódu. Ďalšie riešenie čo ma napadlo bolo inicializovať premenné vložením prázdnej hodnoty. Super. To fungovalo, akurát že sme pre zmenu zistili že to session premennú inicializuje zakaždým, čo je samozrejme neželané správanie.
Nakoniec bolo funkčné riešenie skontrolovať či je už session naplnená a ak nie nastaviť premennú, čo sa dá urobiť napríklad volaním takejto funkcie:
check_session($var) {
global $$var;
if (!isset($_SESSION[$var]) $$var = '';
}
Chyba sa prejaví len keď je nastavené register_globals = on. Samozrejme pokiaľ máte register_globals = off alebo pokiaľ dôsledne používate pole $_SESSION tak by ste sa s týmto problémom stretnúť nemali.
Firma IBM sa v posledných rokoch stala veľkým zástancom OpenSource software. Na svojej web stránke uverejňuje v posledných mesiacoch výborný seriál o úskaliach vývoja web stránok, postavených na OpenSource technológiách. Pred samotným zahájením vývoja je však podstatné vybrať „tú správnu“ technológiu. No a pre nás, čo sme sa stali priaznivcami OpenSource (W)CMS DRUPAL je potešujúce že autori vybrali ako najvhodnejší systém pre vývoj web stránok v tomto seriáli práve DRUPAL.
Tento seriál doporučujem sledovať, je tam veľmi dobre (a podrobne) popísané ako začať s Drupalom a ako ho využiť.
No a teraz už len pár odkazov:
Using open source software to design, develop, and deploy a collaborative Web site
Bližšie informácie o DRUPALe získate na http://www.drupal.org alebo http://www.drupal.cz
PS: V ostatných (neodkazovaných) častiach nájdete informácie o tom ako a prečo sa vyberal vhodný OpenSource software… Vybral som len časti o DRUPALe, pretože ten nás primárne zaujíma :).
20. februára 2007: Doplnil som ďalšie diely seriálu, ktoré pribudly na stránke IBM.
Komentárový spam je dnes všeobecný problém. A keďže sa jedná predovšetkým o anglický spam jestvuje jedno, síce nie dokonalé, ale aspoň jednoduché riešenie. Je to síce pre znalejších ale keby ste potrebovali poradiť ako na použitie, napíšte. Momentálne sa mi to rozpisovať nechce :). » Čítať viac »
Dnes som sa celkom dlho venoval Texy! modulu, ktorý som urobil do Drupalu. Nejak mi stále nešlo do hlavy prečo sa niekedy stane, že sa v niektorých prípadoch neaplikuje syntax highlighting. Konkrétne išlo o všetky náhľady článkov, ktoré som už napísal do blogu. Až po dlhšom experimentovaní mi došlo že to nie je problém jedného článku – proste všetky články za najvrchnejším (posledným publikovaným), nemali kód farebne zvýraznený (ale ostatné Texy! značky boli interpretované správne). Nakoniec som zistil že to má na svedomí zle umiestnená definícia Texy! callback funkcie.
Pôvodne som ju umiestnil do súboru lib/fshl/fshl.php ktorý sa pomocou funkcie require_once vkladal do kódu texy.module. Tento riadok stačilo prehodiť priamo do texy.module a hneď bolo po problémoch – syntax highlighting beží tak ako má.
Drupal 5.0? Áno, vyzerá to tak že za nejaké dva mesiace by tu mohol byť. Pôvodne sa uvažovalo o verzii 4.8, ale popri tom množstve zmien a vylepšení sa nakoniec rozhodlo že sa vydá rovno verzia 5.0.
Keďže ma to celkom zaujíma, sledujem trochu aj aké problémy sa v súvislosti s prevádzkou a vývojom Drupalu objavujú. Keďže Drupal prevádzkujem na PostgreSQL, zaujme ma každá zmienka o ňom (najmä vzhľadom k tomu že aj keď je Drupal programovaný súčasne pre MySQL aj PostgreSQL, dá sa očakávať že vzhľadom k menšiemu množstvu používateľov PostgreSQL je väčšia pravdepodobnosť výskytu chyby). Drupal 5.0 som si stiahol cez CVS a skúšobne nainštaloval u mňa na PC, na PostgreSQL 8.0. » Čítať viac »