Katalog stron
Strona główna | RSS | Reklama | Dodaj wpis
Jesteś: Katalog stron > Internet i Komputery > Joomla - blog ekspertów
Wyszukaj:

Joomla - blog ekspertów:

Blog prowadzony przez specjalistów z firmy DJ-Projekty zajmującej się projektowaniem i wdrażaniem serwisów opartych na CMS Joomla Słowa kluczowe: Joomla, projektowanie stron, web 2.0, CMS,

 

Joomla - blog ekspertów



Adres: design-joomla.pl/blog-ekspercki.feed?type=rss

 

Channel Title: Nasz blog

  • Joomla 1.6


    Coraz głośniej już o Joomla 1.6. Deweloperzy odkrywają rąbka tajemnicy a nowe możliwości możemy poznać w wersji preAlfa.


    Najważniejsze udogodnienia to możliwość dokładania dowolnych pół w formularzu kontaktowym, wbudowany system captcha, menadżer aktualizacji (coś dla leniwych) a co najważniejsze menadżer użytkowników i kontroli dostępu.



  • Stylowanie wydruku artykułu

    W Joomla! istnieje możliwość wydrukowania treści artykułu bez otaczających go modułów i całego szablonu strony przez kliknięcie ikony 'drukuj' znajdującej się obok tytułu danego artykułu. Jednak w jaki sposób zdefiniować style dla tego sposobu drukowania?




  • Usuwanie wirusów HTML:iframe-inf

    Niestety ostatnio coraz częściej spotykamy strony zainfekowane wirusami. Jeśli problem dotyczy małego serwisu nie jest kłopotem wyedytować kilka plików i zobaczyć czy wirus nie dolepił jakiegoś iframe. Ale co zrobić jeśli nasz serwis zbudowany jest na takim systemie jak Joomla z tysiącami plików?




  • Zaawansowane techniki renderowania modułów

    Kiedy w szablonie Joomla! istnieje potrzeba wyróżnienia pewnych modułów należących do jednej pozycji, tak aby możliwe było oddzielne ostylowanie np. pierwszego i/lub ostatniego modułu, często posiłkujemy się różnymi skomplikowanymi lub po prostu nieczytelnymi sztuczkami czy nawet JavaScript'em. Stosowanie znacznika <jdoc:include type="..." />, który "wypluwa" wszystkie moduły z danej pozycji w jedno miejsce nie daje bowiem zbyt dużego pola manewru...



    Poniżej prezentuję alternatywę dla znacznika <jdoc:include type="..." />, dzięki której możemy osiągnąć rewelacyjne efekty. Za przykład posłuży mi pozycja footer, w której renderowane będą kolejne moduły. Pierwszy i ostatni moduł oznaczony zostanie dodatkową klasą - odpowiednio footer-in-first i footer-in-last.



    Najpierw zaprezentuję niezbędne funkcje klasy, a następnie przykłady z nimi związane.



    Zaczynamy od dołączenia klasy JModuleHelper związaną z renderowaniem modułów


    jimport( 'joomla.application.module.helper' );


    Funkcja pobierająca wszystkie moduły z pozycji footer:


    $footerModules = JModuleHelper::getModules( 'footer' );


    Atrybuty stylu takie jak raw, xhtml, rounded, etc. określamy w tablicy:


    $footerAttribs['style'] = 'raw';


    Renderowanie modułów w pętli:


    for ($i = 0; $i < count($footerModules); $i++) {
    echo JModuleHelper::renderModule($footerModules[$i],$footerAttribs);
    }
     
     

    Przykład 1

    Kod renderujący moduły z pozycji footer:



    <?php 
    // Załączamy klasę JModuleHelper
    jimport( 'joomla.application.module.helper' );
    ?>
    <!-- ... kod szablonu ... -->
    <div id="footer">
    <?php
    $footerModules = JModuleHelper::getModules( 'footer' );
    $footerAttribs['style'] = 'xhtml';
    for ($i = 0; $i < count($footerModules); $i++) {
    $footerClass = '';
    if ($i == 0 ) $footerClass .= ' footer-in-first';
    if ($i == count($footerModules)-1 ) $footerClass .= ' footer-in-last';
    ?>
    <div class="footer-in<?php echo $footerClass; ?>">
    <?php echo JModuleHelper::renderModule($footerModules[$i], $footerAttribs); ?>
    </div>
    <?php
    }
    ?>
    </div>


    Efekt:


    <div id="footer">
    <div class="footer-in footer-in-first">...</div>
    <div class="footer-in">...</div>
    <div class="footer-in">...</div>
    <div class="footer-in footer-in-last">...</div>
    </div>
     
     

    Przykład 2

    Innym pomysłem na wykorzystanie klasy JModuleHelper może być nadanie elementom div, klasy odpowiadającej
    typowi modułu, np.


    <?php 
    // Załączamy klasę JModuleHelper
    jimport( 'joomla.application.module.helper' );
    ?>
    <!-- ... kod szablonu ... -->
    <div id="footer">
    <?php
    $footerModules = JModuleHelper::getModules( 'footer' );
    $footerAttribs['style'] = 'xhtml';
    for ($i = 0; $i < count($footerModules); $i++) { ?>
    <div class="footer-in <?php echo $footerModules[$i]->module; ?>"> <?php
    echo JModuleHelper::renderModule($footerModules[$i], $footerAttribs); ?>
    </div><?php
    }
    ?>
    </div>
     

    Efekt:



    <div id="footer">
    <div class="footer-in mod_mainmenu">...</div>
    <div class="footer-in mod_djcategories">...</div>
    <div class="footer-in mod_banners">...</div>
    <div class="footer-in mod_login">...</div>
    </div>
     
     

    Dla leniwych

    Klasa DJModuleHelper pozwalająca na wyświetlenie modułów ze wskazanej pozycji i w wybranym stylu. Dzięki niej moduły opakowane będą elementem div, którego klasa składać się będzie z nazwy pozycji oraz słowa scheme_x (gdzie x oznacza liczbę wszystkich modułów, np. <div class="left scheme_4">...</div>). Każdemu modułowi (zawartemu w tym kontenerze) nadana zostanie klasa oznaczająca:

    • jego parzystość (odd lub even),
    • nazwę modułu (np. mod_login, mod_mainmenu),
    • włączenie tytułu modułu (showtitle lub notitle),
    • tak jak w pierwszym przykładzie, pierwszy i ostatni moduł posiadają odpowiednio klasy first, last.


    Poniższy kod zapisujemy w katalogu z szablonem, np. w pliku
    templates/nazwa_szablonu/php/djmodulehelper.php
    .

    Następnie importujemy go do szablonu
    <?php include_once (JPATH_ROOT."/templates/".$this->template.'/php/djmodulehelper.php'); ?>

    W miejscu wyświetlania modułów, tam gdzie zwykliśmy używać <jdoc:inlude type="pozycja" style="styl" /> wpisujemy
    <?php DJModuleHelper::renderModules( 'pozycja' , 'styl'); ?>

    Pierwszym argumentem funkcji jest nazwa pozycji, żas drugim powinnna być jedna z następujących wartości
    [none|rounded|xhtml|table|horz]


    Zawartość pliku djmodulehelper.php



    <?php 
    defined('_JEXEC') or die ('Restricted access!!!');
     
    /*
    * Użycie w szablonie:
    * echo DJModuleHelper::renderModules('nazwa_pozycji','[none|rounded|xhtml|table|horz]');
    * np.: echo DJModuleHelper::renderModules('footer','none');
    */

     
    jimport( 'joomla.application.module.helper' );
     
    class DJModuleHelper extends JModuleHelper {
     
    function renderModules($position, $chrome = 'none') {
    if (!position) return false;
    $html = '';
    if ($modules = parent::getModules( $position )) {
    $attribs['style'] = $chrome;
     
    /* wszystkie moduły są opakowane w kontener
    * nazwa_pozycji scheme_x
    * gdzie x oznacza liczbę modułów */

    $html .= '<div class="'.$position.' scheme_'.count($modules).'">';
     
    for ($i = 0, $k = 0; $i < count($modules); $i++) {
    // nazwa_pozycji-in
    $className = $position.'-in';
     
    // nazwa modułu
    $className .= ' '.$modules[$i]->module;
     
    // parzystość modułu
    $className .= ($k) ? ' even' : ' odd';
     
    // wyświetlanie tytułu w module
    $className .= ($modules[$i]->showtitle) ? ' showtitle' : ' notitle';
     
    // jeśli moduł jest pierwszy dodajemy nazwa_pozycji-in-first
    if ($i == 0 ) $className .= ' '.$position.'-in-first';
     
    // jeśli moduł jest ostatni dodajemy nazwa_pozycji-in-last
    if ($i == count($modules)-1 ) $className .= ' '.$position.'-in-last';
     
    $html .= '<div class="'.$className.'">';
    $html .= parent::renderModule($modules[$i], $attribs);
    $html .= '</div>';
     
    $k = 1 - $k;
    }
     
    $html .= '</div>';
     
    }
    return $html;
    }
    }
    ?>


  • Uwaga na duplicate content

    Wrażliwość wyszukiwarki Google na skopiowaną zawartość niedawno sami boleśnie odczuliśmy.
    Jakiś czas temu elementy zawartości z naszej strony design-joomla.eu zostały skopiowane przez "konkurencję". Niestety algorytm Google uznał, że to złodziejowi należą się prawa do naszego tekstu a nas ukarał dramatycznym spadkiem pozycji.




  • Problem z flash uploaderem

    Niestety jak narazie nierozwiązany. Wtyczka flashowa w wersji 10 powoduje problem z jednoczesnym uploadowaniem wielu plików. Problem leży po stronie flasha i na dzień dzisiejszy mamy tylko dwa wyjścia



    • downgrade plugina flashowego do wersji 9

    • wyłączenie flashowego uploadu w zakładce system ustawień globalnych


    Od wersji 1.5.8 flash uploader jest domyślnie wyłączony w konfiguracji.



  • Polskie znaki w aliasach

    Każdy, kto używa wbudowanego w Joomla 1.5 systemu do generowania przyjaznych URL-i z pewnością zirytowany jest faktem, że generowane adresy mają "powycinane" polskie znaki. Wystarczyło by zamieniać je na znaczki bez ogonków tak jak robią to zewnętrzne systemy np. ArtioJoomSEF.
    Nic prostszego. Przygotowaliśmy odpowiednie rozwiązanie.




  • Odróżnianie FRONTPAGE w templatce

    Często jest potrzeba odróżnienia strony startowej w Joomli 1.5 od podstron, z uwagi na wymagania projektu. Na przykład musimy wyłączyć obszar contentowy dla frontpage.


    Joomla 1.5 oferuje prosty warunek, który można wstawić w pliku index.php umożliwiający to rozwiązanie. Przykład:



    if(JRequest::getVar('view') == 'frontpage') {
    FRONTPAGE
    else {
    NOT FRONTPAGE
    }


  • Błąd generowania PDF w Joomla na serwerach home.pl

    Na serwerach wirtualnych home.pl występują problemy z generowaniem plików PDF z artykułów, które zawierają pliki graficzne. Błąd dotyczy adresu plików. Aby to rozwiązać wystarczy otworzyć plik tcpdf.php.




  • Przekierowanie po zalogowaniu

    W najnowszej wersji Joomli 1.5.9 użytkownik po zalogowaniu jest przekierowywany na stronę z komunikatem "Witaj w gronie zarejestrowanych użytkowników...". Niektórym może to nie odpowiadać i chcieliby aby użytkownik był przekierowywany na stronę główną jak działo się to dotychczas.
    Wystarczy otworzyć plik components/com_user/controller.php. Następnie w linii 150 zamienić


    $return    = 'index.php?option=com_user';
    na
    $return    = 'index.php';


  • Joomla i SEO

    Optymalizacja witryny to jeden z ważniejszych czynników, który ma wpływ na jej pozycję w wyszukiwarkach. Poza poprawnym sematycznie kodem szablonu istotny jest też dobór odpowiednich słów kluczowych i ich użycie w tagach i treści witryny.


    Użytkownicy systemu CMS Joomla mogli do tej pory czuć się nieco poirytowani brakiem łatwej mozliwości zmiany tagów tutułowych dla poszczególnych podstron.




  • Błąd z window.addEvent() w mootools pod IE

    Często stosując przeglądarkę Microsoftu do przeglądania stron w Joomli przy włączonych bibliotekach MooTools, napotykamy na błąd metody window.addEvent(). Wyskakuje wtedy alert javascript'owy o tym, że przeglądarka nie może wczytać danych. Związane jest to z tym, że IE ma problemy z domready.


  • Kopia zapasowa witryny na Joomla

    Bezpieczeństwo przede wszystkim. Nie wyobrażam sobie aby szanujący się webmaster nie wykonywał kopii zapasowych swojego serwisu.


    Polecam wyszystkim administratorom Joomla doskonały komponent JoomlaPack autorstwa Nicholasa K. Dionysopoulosa




  • mb_convert_case i kodowanie UTF-8

    Wszyscy wiemy, że nowa Joomla 1.5 korzysta z kodowania znaków UTF-8. Jest to bardzo dobre posunięcie ze strony twórców CMS Joomla ze względu na kompatybilonść z różnymi kontami hostingowymi. Bardzo ułatwia też pracę nam, czyli developerom. Niestety nie wszyscy pamiętają aby poprawnie konwertować ciągi znaków.


     




  • Własne strony błedów w Joomla 1.5

    Strony błedów w Joomla 1.5 nie wygladają zbyt ciekawie. Chcąc zatrzymać użytkownika w serwisie można pokazać mu dowolny artykuł w Joomla bez uciekania się edycji plików .htacess na serwerze. Wszystko możemy załatwić z poziomu templatki




  • Błędne liczenie postów w komponencie Fireboard 1.0.4

    W komponencie forum Fireboard 1.0.4 istnieje błąd związany z nieprawidłowym liczeniem ilości postów w danej kategorii.



    Rozwiązaniem jest wklejenie poniższego kodu poczynając od linii 539 w pliku /components/com_fireboard/template/default/listcat.php :




  • Warto sie dzielić czyli jak dramatycznie zwiekszyć ruch na swojej stronie www

    W ostatnich dniach zanotowaliśmy prawie czterokrotny wzrost ogladalności witryny design-joomla.eu. A wszystko dzięki jednej małej wtyczce ...




  • Edytor tekstu w Joomla i polskie znaki

    Pewnie każdy zna FckEditor gdyż jest on domyślnym edytorem tekstu w Joomla 1.5. Czasami zdarza się, że potrzebujemy pobrać jakiś tekst z bazy danych a następnie go przetworzyć skryptem php. Przeszkodą jednak okazują się polskie znaki diakrytyczne.

    W czym problem? FckEditor zapisuje "ogonki" w postaci encji. Niestety php nie bardzo potrafi sobie poradzić z dekodowaniem encji niektórych znaków w formacie utf-8 (np: "ó" ). Rozwiązaniem problemu okazuje się zmiana konfiguracji FckEditora. Wystarczy wyedytować plik /plugins/editors/wysiwyg/fckconfig.js i zmienić "FCKConfig.IncludeLatinEntities" z "true" na "false". Dzięku temu zabiegowi nie następuje zmiana polskich znaków na encje.


  • Zawartość zależna od użytkownika

    Jak wyświetlić element zawartości niezalogowanemu użytkownikowi, w taki sposób aby zalogowany już jej nie widział?


    Na tak postawione pytanie częstą experci na forach internetowych piszą: "nie da się" "nie ma takiej opcji" Otóż okazuje się że jest rozwiązanie i to całkiem proste.




  • Wygląd elementów paginacji w Joomla 1.5

    Niestety nie wszystko w CMS Joomla jest idealne. Model MVC to kapitalne posunięcie. Ale część elementów "siedzi" jeszcze głęboko w kodzie i nie mozna łatwo zapanowac nad ich wyglądem. Choćby paginacja.




  • Joomla, walidacja i edytory

    Pewnie już niektórzy zauważyli, że w przypadku linkowania wewnętrznego z między artykułami w Joomla 1.5 powstaje charakterystyczny błąd walidacji.


    Może nie jest to jakiś krytyczny błąd ale niektórych może ityrować. Wynika on z faktu, że edytor nie zamienia znaków & i pozostają one w kodzie strony.


    Rada: zmienic edytor. Chocby na całkiem przyjemny edytorek jxTended


     



ilość wejść robota google 74 ilość wejść robota msn 32 ilość wejść robota yahoo 1 ilość wejść robota onet 0 ilość wejść robota netsprint 0 ilość wejść robota szukacz 0
wpisów: 81 online: 5
last 100 RSS | Mapa strony | XML Sitemap | RSS | reklama | kontakt | regulamin | praca
Katalog RSS Livret - © Agencja A.R.T.
imprezy integracyjne - Volkswagen Golf 3 - Obrazki - moderowany katalog ouo - bielizna nocna - Lodówka turystyczna - Wczasy Dźwirzyno - inwestycje mieszkaniowe warszawa - Młociny, Warszawa - pozycjonowanie