Přihlásit se

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“.