Návod jak upravit zobrazení datumu v záhlaví článku v Joomla 1.5
Někteří uživatelé J! by rádi zvýraznili aktuálnost zveřejněného článku tím, že místo datumu vytvoření článku chtějí zobrazovat text "Dnes" nebo "Včera".
Pro zobrazování článků slouží scripty obsažené v jádru J!, které lze potlačit a využít vlastní scripty pro zobrazení článků. Tyto nové scripty jsou umísťovány do adresářové struktury vlastní šablony. Takže úprava zobrazení datumů se nebude týkat zásahu do jádra J!, ale půjde o úpravu šablony.
Pro ukázkovou úpravu jsem vybral standardní šablonu rhuk_milkyway z důvodu, že v této šabloně nejsou scripty pro zobrazení článků. Pokud používáte šablonu, která obsahuje takovéto scripty ( např. JA_Purity), budete postupovat podobně, ale až od úpravy scriptu. Je nutné ještě upozornit, že J! má dva různé soubory se scripty pro zobrazení článků na titulní stránce (frontpage) a na ostatních strankách.
Úprava zobrazení na titulní straně
Vytvoříme nový adresář ..\templates\rhuk_milkyway\html\com_content\frontpage a do něho překopírujeme dva soubory default_item.php a index.html z adresáře ..\components\com_content\views\frontpage\tmpl.
V souboru ..\html\com_content\frontpage\default_item.php vyhledáte následující script (řádek 97):
<?php if ($this->item->params->get('show_create_date')) : ?><tr>
<td valign="top" colspan="2" class="createdate">
<?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?>
</td>
</tr>
<?php endif; ?>
a ten nahradíte následujícím scriptem:
<?php if ($this->item->params->get('show_create_date')) : ?>
<tr>
<td valign="top" colspan="2" class="createdate">
<?php $pocetdni = (int)((strtotime("now")/86400)) - ((int) (strtotime($this->item->created)/86400)); ?>
<?php switch ( $pocetdni ) :
case 0: ?>
<span class="todaycreatedate">
<?php echo JText::_( 'DNES' ); ?>
</span>
<?php break;
case 1: ?>
<span class="yesterdaycreatedate">
<?php echo JText::_( 'VCERA' ); ?>
</span>
<?php break;
default:
echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2'));
break;
endswitch; ?>
</td>
</tr>
<?php endif; ?>
Dále je nutné do jazykového souboru ..\language\cs-CZ\cs-CZ.tpl_rhuk_milkyway.ini vložit tyto dva řádky:
DNES=DnesVCERA=Včera
Teď ještě zbývá zprovoznit jazykový soubor pro použitou šablonu. Na začátek souboru ..\html\com_content\frontpage\default_item.php vložíme následující script:
defined('_JEXEC') or die('Restricted access');
JPlugin::loadLanguage( 'tpl_rhuk_milkyway' );
$canEdit = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')); ?>
Posledním krokem je přidat nové třídy do css souboru ..\templates\rhuk_milkyway\css\template.css. Třídy obsahují pro ukázku pouze deklarace pro změnu barvy textu.
.todaycreatedate {color: #cc0033;}
.yesterdaycreatedate {color: #33cc00;}
Úprava zobrazení na ostatních stránkách
Vytvoříme nový adresář ..\templates\rhuk_milkyway\html\com_content\article a do něho překopírujeme dva soubory default.php a index.html z adresáře ..\components\com_content\views\article\tmpl.Stejně jako při úpravě na titulní stránce nahradíme zobrazení datumu následujícím scriptem:
<?php if ($this->params->get('show_create_date')) : ?>
<tr>
<td valign="top" class="createdate">
<?php $pocetdni = (int)((strtotime("now")/86400)) - ((int) (strtotime($this->article->created)/86400)); ?>
<?php switch ( $pocetdni ) :
case 0: ?>
<span class="todaycreatedate">
<?php echo JText::_( 'DNES' ); ?>
</span>
<?php break;
case 1: ?>
<span class="yesterdaycreatedate">
<?php echo JText::_( 'VCERA' ); ?>
</span>
<?php break;
default:
echo JHTML::_('date', $this->article->created, JText::_('DATE_FORMAT_LC2'));
break;
endswitch; ?>
</td>
</tr>
<?php endif; ?>
Ještě nezapomeneme vložit na začátek souboru ..\html\com_content\article\default.php následující script:
JPlugin::loadLanguage( 'tpl_rhuk_milkyway' );
A je to ....