Přihlásit se

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=Dnes
VCERA=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 ....