Diskuse

Téma: Vypis datumu

Zdravím, chtěl bych se zeptat kde v sunlightu bych měl zakomponovat tuto úpravu výpisu datumu (primárně se mi jedná o články a fórum?

http://www.joomlaportal.cz/index.php/clanky-a-novinky/vyvojarske-tipy-a-triky/315-zobrazeni-qdnesq-a-qveraq-misto-data-u-lank

Jedná se úpravu pro joomlu ale do SL to určitě také půjde zakomponovat.

//Hack for showing "Today" and "Yesterday" by Kryštof Korb | Copyright August 2008
$lang = "cz"; //Language en, cz, fr

$today['en'] = 'Today!';
$today['cz'] = 'Dnes!';
$today['fr'] = 'Aujourd\'hui!';
$yesterday['en'] = 'Yesterday';
$yesterday['cz'] = 'Včera';
$yesterday['fr'] = 'Hier';
if ($create_date == mosFormatDate(date("Y-m-d H:i:s", strtotime("now")))) {
$create_date = '<span style="color: red;">' . $today[$lang] . '</span>';
}
if ($create_date == mosFormatDate(date("Y-m-d H:i:s", strtotime("1 day ago")))) {
$create_date = '<span style="color: red;">' . $yesterday[$lang] . '</span>';
}
//End of Today/Yesterday hack
postZaslat odpověď
Zdravím, vracím se k prozbě na "Landsmana" s kategoriemi zdali by mi neporadil jak je zakomponovat do articlePreview na stránkách kterých to mám na novou verzi přecházet nebudu neboť již změň je velké množstí.

Děkuji za případné rady
Zdravím,

použijte kód, který jsem zde posílal.
Na novou verzi rozhodně doporučuji přejít, vyplatí se.
Určitě bych doporučil udělat si seznam změn a tyto přepsat do extendů, je jen málo věcí které extendem nejdou udělat. A přechod na novou verzi určitě doporučuji, jelikož nikdo z nás se starými verzemi již zabývat nebude, nebudou extendy, nebudou šablony.... a myslím že pokud se sem obrátíš s otázkou, tak ti bude odpovězeno popř. budeš nasměrován jak problém řešit

edit: já mám například na GitHubu statickou OOP třídu pro převod timestampu na slovní časový interval... př: před 3 sekundami, před 2 dny, za 2 měsíce ...

https://github.com/jDanek/TimeInterval/blob/master/TimeInterval.php
Bohužel použitím kódu který jsi dříve postoval mi nefungoval viz. předešlé příspěvky. To s tím časem mi od tebe fungoval v pohodě dle návodu ale kategorie nikoliv.

Co se týče nové verze vím že přináší spousty nového ale vzhledem k tomu že hodně věcí pluginu atd.. nefungovalo v 7.5.3 a dost večí se zde ani neojevila předělaných ve stažených tak jsem zůstal na 7.5.2 STABLE8 a předělávat vše na to hold nemám zkušenosti a hlavně čas. Ale určitě využiju novou verzi na jiný web.

Jirko D. díky ale co se týče času s tím problém nemám to co již mám od Landsmana mi vyhovuje.
problem byl v praci s $homes, skript pristupoval k $homes['id'] ktere tam vlastne vubec nebylo, tak jsem vyhodil ten if a nahradil foreachem

cely ten skript je starsiho data a trochu divocina, prepisovat to nebudu... pouze jsem to opravil

<?php

/* --- kontrola jadra --- */

if (!defined('_core'))
{
exit;
}

$GLOBALS['_odd'] = true;

// funkce
function _plugin_articlePreview($art, $info, $perex, $comment_count)
{
global $_odd;

$status = ((true === $_odd) ? "odd" : "even");

$link = _linkArticle($art['id'], $art['title_seo']);

// uprava datumu na dnes, vcara
$my_date = date('d.m.Y', $art['time']); // formatuje i datum pouze na den,mesic, rok

$today = 'Dnes';
$yesterday = 'Včera';
if ($my_date == date('d.m.Y', strtotime("now")))
{
$my_date = '' . $today . '';
}
if ($my_date == date('d.m.Y', strtotime("1 day ago")))
{
$my_date = '' . $yesterday . '';
}

///////////////////////////////////////////////////////////
//dotaz
$article = DB::query_row("SELECT
a.id, a.title_seo, a.home1, a.home2, a.home3
FROM `" . _mysql_prefix . "-articles` a
WHERE a.id= " . DB::val($art['id']));

//zjistit v jakych je kategoriich
$categories = "";
$homes = array();
for ($i = 1; $i <= 3; ++$i)
if ($article['home' . $i] != -1)
$homes[] = $article['home' . $i];
$q = DB::query('SELECT id,title,title_seo,var3 FROM `' . _mysql_prefix . '-root` WHERE id IN(' . implode(',', $homes) . ')');

$homes = array();
$cat_showinfo = false;
while ($r = DB::row($q))
{
if ($r['id'] == $article['home1'])
$homei = 1;
elseif ($r['id'] == $article['home2'])
$homei = 2;
else
$homei = 3;
$homes[$homei] = $r;
if ($r['var3'] == 1)
$cat_showinfo = true;
}

$h=array();
foreach ((array) $homes as $home)
{
if (count($homes) > 0)
{
$h[] = "<a href='" . _linkRoot($home['id'], $home['title_seo']) . "' class='list-category-link category-" . _anchorStr($home['title']) . "'><span>" . $home['title'] . "</span></a>";
}
}


/*for ($i = 1; $i <= 3; ++$i)
{
if (!isset($homes))
continue;
$homes = "<a href='" . _linkRoot($homes['id'], $homes['title_seo']) . "' class='list-category-link category-" . _anchorStr($homes['title']) . "'><span>" . $homes['title'] . "</span></a>";
}*/

$categories .= implode('', $h);
unset($homes,$h);

////////////////////////////////////////////////////////////////

$out = "
<div class='list-article num-{$status}'>
<div class='list-perex-media'>
" . (($perex && isset($art['picture_uid'])) ? "<a href='{$link}'><img src='" . _pictureStorageGet(_indexroot . 'pictures/articles/', null, $art['picture_uid'], 'jpg') . "' class='list-perex-image' alt='{$art['title']}' /></a>" : '') . "
</div>
<h2 class='list-title'><a href='{$link}'>" . _cutStr(_htmlStrUndo($art['title']), 70) . "</a></h2>
" . ($perex ? "<p class='list-perex'>
" . _cutStr(strip_tags(_parsePost(_htmlStrUndo($art['perex']))), 250) . "
</p>" : '') . "
" . ($info ? "<div class='list-info'>
<div class='date'>" . _plugin_articles_formatTime($art['time']) . "</div>
<span class='categories'>" . $categories . "</span>&nbsp;&nbsp;&nbsp;
<span class='comments'><img class='icon' alt='comment' src='./plugins/templates/default/images/icons/comment.gif'></img>" . (isset($comment_count) ? " komentářů {$comment_count}" : '') . "</span>
</div>" : '') . "
</div>
<div class='hr_line'></div>";

if (true === $_odd)
{
$_odd = false;
}
else
{
$_odd = true;
}

return $out;
}

_extend('reg', 'article.preview', function($args) {
$args['callback'] .='_plugin_articlePreview';
});
Děkuji Jirko D. funguje.
Rád bych přidal tento extend na web. Ale poslední posledí kód od Jirky vypisuje: Fatal error: Call to undefined function _plugin_articles_formatTime na řádku 95. Víte někdo jak to opravit ?
<div class='date'>" . _plugin_articles_formatTime($art['time']) . "</div>
Ono to bude tím, že zmíněný kód je pro verzi 7.5.2.8 a do 7.5.3 Shira dělal změny... A kdo ví zda je ten kód celý nebo jen kousek 😕
Edit.:
Jsem v práci ale stačilo by asi nahradit za date('j.n.Y G:i', $art['time'])
$my_date = date('d.m.Y', $art['time']);Jsem nahradil za
$my_date = date('j.n.Y G:i', $art['time']);
Pořád stejný fatal error.
No to je v pořádku. Chyba byla přeci na řádku 95!
Strana: « předchozí 1 2