Nedávno v diskuzi někdo hledal komponentu pro J!1.5, která by uměla vypsat nově přidané články od posledního přihlášení uživatele. Když jsem hledal, jak to udělat napadlo mně velice jednoduché řešení. Podobně jako v článku „Včera, dnes a zítra … “ provést úpravu zobrazení data přímo v šabloně.
U každého přihlášeného uživatele se zapisuje do DB datum a čas jeho
posledního přihlášení. Nebudu znova uvádět co a jak překopírovat do
adresářů šablony, to je uvedeno ve výše uvedeném článku.
Úprava spočívá v tom, že před datem vytvoření se objeví nápis „Nový“. A
to pouze v případě, že je uživatel přihlášen a datum posledního
přihlášení je starší než datum vytvoření článku.
Úprava zobrazení na titulní straně
V souboru ..\html\com_content\frontpage\default_item.php nahradíte skript pro zobrazení data vytvoření článku tímto skriptem:
<?php if ($this->item->params->get('show_create_date')) : ?>
<tr>
<td valign="top" colspan="2" class="createdate">
<?php $uzivatel =& JFactory::getUser(); ?>
<?php if (($uzivatel->id != 0) &&
((strtotime($uzivatel->lastvisitDate)+ Date("Z")) <
strtotime($this->item->created))) : ?>
<span class="newcontents">
<?php echo JText::_( 'NEW' ); ?>
</span>
<?php endif; ?>
<?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')) ?>
</td>
</tr>
<?php endif; ?>
V tomto případě není nutné upravovat ani zprovozňovat jazykový soubor
šablony, neboť proměná „NEW“ již existuje v jazykovém souboru J!.
Ještě zbývá přidat novou třídu do css souboru
..\templates\rhuk_milkyway\css\template.css. Tříd obsahuje pro ukázku
pouze deklaraci pro změnu barvy textu.
.newcontents {color: #cc0033;}
Úprava zobrazení na ostatních stránkách
V souboru ..\html\com_content\article\default.php nahradíte skript pro zobrazení data vytvoření článku tímto skriptem:
<?php if ($this->params->get('show_create_date')) : ?>
<tr>
<td valign="top" class="createdate">
<?php $uzivatel =& JFactory::getUser(); ?>
<?php if (($uzivatel->id != 0) &&
((strtotime($uzivatel->lastvisitDate)+ Date("Z")) <
strtotime($this->article->created))) : ?>
<span class="newcontents">
<?php echo JText::_( 'NEW' ); ?>
</span>
<?php endif; ?>
<?php echo JHTML::_('date', $this->article->created, JText::_('DATE_FORMAT_LC2')) ?>
</td>
</tr>
<?php endif; ?>
A je to ....
V příštím článku si uvedeme podobnou úpravu modulu „Poslední novinky“.