úterý 19. srpna 2014

Ladění logických chyb v CMS Joomla

Během programování vznikají dva základní druhy chyb logické a syntaktické. Na syntaktické chyby vás upozorní interpreter jazyka PHP, ve kterém je napsaný CMS Joomla nebo vývojové prostředí, ale logické chyby se odlaďují o trochu složitěji. V čistém PHP lze využít příkazu echo pro výpis sledovaných proměnných. V některých případech lze také v CMS Joomla využít příkazu echo při vývoji veřejné části, ale při ladění administrativní části již tuto možnost ve většině případů nelze použít. Zde je nutné využít tzv. výpisu proměnných do zpráv systému. K tomu slouží příkaz JApplication::enqueueMessage().

Při vývoji komponenty mám ověřeno, že tento příkaz je možné použít kdekoliv v administrativní části CMS Joomla. Jen v některých případech bude výpis proveden vícekrát i přestože příkaz pro vložení proměnné vložíme pouze jednou.

Syntaxe příkazu je:

JApplication::enqueueMessage('sledovaná zpráva');
JApplication::enqueueMessage($sledovana_promenna);

Zdroj: 
http://docs.joomla.org/API17:JApplication::enqueueMessage

čtvrtek 14. srpna 2014

Component Creator - bug #1: vyhledávání

Vygenerovaná komponenta po nainstalování do CMS Joomla 3.x.x neobsahovala funkční vyhledávání. Po zadání řetězce do vyhledávacího pole v administrativním rozhraní se nic nestalo a tabulka zůstala v nezměnněné podobě.

Toto je možné velice snadno opravit. Ve administrátorské složce komponenty ve složce models chybí řádek

$query->where('( a.name LIKE '.$search.' )');

Tento přidejte do funkce getListQuery(), která se nachází ve třídě NazevKomponentyModelPohled (tedy například DiskuzeModelPrispevky)

Původní zdrojový kód:
        // Filter by search in title
        $search = $this->getState('filter.search');
        if (!empty($search)) {
            if (stripos($search, 'id:') === 0) {
                $query->where('a.id = ' . (int) substr($search, 3));
            } else {
                $search = $db->Quote('%' . $db->escape($search, true) . '%');
               
            }
        }


Opravený zdrojový kód:
        // Filter by search in title
        $search = $this->getState('filter.search');
        if (!empty($search)) {
            if (stripos($search, 'id:') === 0) {
                $query->where('a.id = ' . (int) substr($search, 3));
            } else {
                $search = $db->Quote('%' . $db->escape($search, true) . '%');
                $query->where('( a.name LIKE '.$search.' )');
            }
        }

středa 13. srpna 2014

Component Creator - představení

Joomla Component Creator
Joomla Component Creator
Nástroj Joomla Component Creator je určen pro pro vývoj základních šablon komponent pro CMS Joomla ve verzi 2.5.x a 3.x.x. S jeho pomocí lze vytvořit plně funkční základ komponenty, který lze dodatečně celkem dobře upravovat. Odvede rutijní práci a urychlí vývoj. Pochopení, jak takto vytvořená komponenta funguje sice chvíli trvá, ale mohu říct, že výsledky jsou působivé.

V základní verzi je tento nástroj zdarma. I tomto případě umožňuje vytvářet nemezené množství komponent,ale lze navrhnout spolupráci pouze s jednou tabulkou. V placené verzi získáte plnou zákaznickou podporu, neomezené množství tabulek pro jednu komponentu a samozřejmě neomezené množství komponent.
Prostředí Joomla Component Creatoru
Pracovní prostředí Joomla Component Creatoru

Vzhledem ke skutečnosti, že většina komponent v CMS Joomla používá tabulky, seznamy a formuláře pro vkládání informací do systému, uspokojí Component Creator méně náročné vývojáře. Pokud budete mít na komponentu větší požadavky než jen základní činnosti s daty tabulky, bude nutné sáhnout do zdrojových kódů komponenty. I přes všechnu chválu má i tento nástroj svoje chyby, ale o tom zase někdy příště


Úvodní článek

Ve tuto chvíli blogu mám jen velice mlhavé představy, co zde budu uveřejňovat. Bude se jednat určitě o moji lásku k programování a dalším odborným věcem ze světa IT. Neodborné informace o informačních technologiích budu uveřejňovat dále na blog PC Fanda. Zápisky a fotografie z cest se budu snažit dávat na blog Bratři Trnečkovi a spol., který jsem založil společně se svým bratrem.

Bohužel oba blogy mě dost omezovaly v mojí tvorbě, a proto vznikl tento blog, který bude řešen jako osobní blog jednoho programátorského šílence a pokud budu spokojen s návštěvností vytvořím také navazující internetové stránky.

Proč takový postup?

Odpověď je jdnoduchá. Denně zjišťuji mnoho nových informací a rád bych se s Vámi čtenáři o tyto informace podělil. Bude zde hodně věcí okomentovaných odkazů po řešení programátorských problémů. Vzhledem k mojí současné vytíženosti nestíhám vytvořit webové stránky, ale chci publikovat články, proto jsem zvolil blog.

Budu velice rád za každý Váš komentář ke článkům a na každý dotaz velice rád odpovím