Example #1
0
/**
 * Плагин для смарти.
 * Позволяет получать дату с возможностью склонения
 * формы слова и поддержкой мультиязычноти.
 *
 * Список ключей параметров:
 *        date*          [string]
 *        format*        [string]
 *        declination*   [int]
 *        now*           [int]    Количество секунд, в течении которых событие имеет статус "Только что"
 *        day*           [string] Указывает на необходимость замены "Сегодня", "Вчера", "Завтра".
 *                                В указанном формате 'day' будет заменено на соответствующее значение.
 *        minutes_back*  [int]    Количество минут, в течении которых событие имеет статус "... минут назад"
 *        hours_back*    [int]    Количество часов, в течении которых событие имеет статус "... часов назад"
 *        tz*            [float]  Временная зона
 *        notz*          [bool]   Не учитывать зону
 *
 * (* - параметр является необязательным)
 *
 * @param   array  $aParams
 * @param   Smarty $oSmarty
 *
 * @return  string
 */
function smarty_function_date_format($aParams, &$oSmarty)
{
    $sFormatDefault = 'd F Y, H:i';
    //  формат даты по умолчанию
    $iDeclinationDefault = 1;
    //  индекс склонения по умолчанию
    /**
     * Текущая дата и сдвиг времени для пользователя
     */
    $iTz = false;
    if (!isset($aParams['notz'])) {
        if (isset($aParams['tz'])) {
            $iTz = $aParams['tz'];
        }
        if ($iTz === false) {
            if (($oUserCurrent = E::ModuleUser()->GetUserCurrent()) && $oUserCurrent->getSettingsTimezone()) {
                $iTz = $oUserCurrent->getSettingsTimezone();
            }
        }
    }
    if ($iTz !== false) {
        $iDiff = (date('I') + $iTz - (strtotime(date('Y-m-d H:i:s')) - strtotime(gmdate('Y-m-d H:i:s'))) / 3600) * 3600;
    } else {
        $iDiff = 0;
        // пользователю показываем время от зоны из основного конфига
    }
    $iNow = time() + $iDiff;
    /**
     * Определяем дату
     */
    $sDate = empty($aParams['date']) ? time() : $aParams['date'];
    $iDeclination = !isset($aParams['declination']) ? $iDeclinationDefault : $aParams['declination'];
    $sFormat = empty($aParams['format']) ? $sFormatDefault : $aParams['format'];
    /**
     * Если указан другой язык, подгружаем его
     */
    if (isset($aParams['lang']) && $aParams['lang'] != E::ModuleLang()->GetLang()) {
        E::ModuleLang()->SetLang($aParams['lang']);
    }
    $aMonth = E::ModuleLang()->Get('month_array');
    $iDate = preg_match("/^\\d+\$/", $sDate) ? $sDate : strtotime($sDate);
    $iDate += $iDiff;
    /**
     * Если указана необходимость выполнять проверку на NOW
     */
    if (isset($aParams['now'])) {
        if ($iDate + $aParams['now'] > $iNow) {
            return E::ModuleLang()->Get('date_now');
        }
    }
    /**
     * Если указана необходимость на проверку minutes back
     */
    if (isset($aParams['minutes_back'])) {
        require_once 'modifier.declension.php';
        $iTimeDelta = round(($iNow - $iDate) / 60);
        if ($iTimeDelta < $aParams['minutes_back']) {
            return $iTimeDelta != 0 ? smarty_modifier_declension($iTimeDelta, E::ModuleLang()->Get('date_minutes_back', array('minutes' => $iTimeDelta)), E::ModuleLang()->GetLang()) : E::ModuleLang()->Get('date_minutes_back_less');
        }
    }
    /**
     * Если указана необходимость на проверку minutes back
     */
    if (isset($aParams['hours_back'])) {
        require_once 'modifier.declension.php';
        $iTimeDelta = round(($iNow - $iDate) / (60 * 60));
        if ($iTimeDelta < $aParams['hours_back']) {
            return $iTimeDelta != 0 ? smarty_modifier_declension($iTimeDelta, E::ModuleLang()->Get('date_hours_back', array('hours' => $iTimeDelta)), E::ModuleLang()->GetLang()) : E::ModuleLang()->Get('date_hours_back_less');
        }
    }
    /**
     * Если указана необходимость автоподстановки "Сегодня", "Вчера", "Завтра".
     */
    if (isset($aParams['day']) && $aParams['day']) {
        switch (date('Y-m-d', $iDate)) {
            /**
             * Если дата совпадает с сегодняшней
             */
            case date('Y-m-d'):
                $sDay = E::ModuleLang()->Get('date_today');
                break;
                /**
                 * Если дата совпадает со вчерашней
                 */
            /**
             * Если дата совпадает со вчерашней
             */
            case date('Y-m-d', mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"))):
                $sDay = E::ModuleLang()->Get('date_yesterday');
                break;
                /**
                 * Если дата совпадает с завтрашней
                 */
            /**
             * Если дата совпадает с завтрашней
             */
            case date('Y-m-d', mktime(0, 0, 0, date("m"), date("d") + 1, date("Y"))):
                $sDay = E::ModuleLang()->Get('date_tomorrow');
                break;
            default:
                $sDay = null;
        }
        if ($sDay) {
            $sFormat = str_replace("day", preg_replace("#(\\w{1})#", '\\\\${1}', $sDay), $aParams['day']);
            return date($sFormat, $iDate);
        }
    }
    /**
     * Определяем нужное текстовое значение названия месяца
     */
    $iMonth = date("n", $iDate);
    $sMonth = isset($aMonth[$iMonth]) ? $aMonth[$iMonth] : "";
    /**
     * Если не найден индекс склонения, берем склонене по умолчанию.
     * Если индекс по умолчанию также не определен, берем первое значение в массиве.
     */
    if (is_array($sMonth)) {
        $sMonth = isset($sMonth[$iDeclination]) ? $sMonth[$iDeclination] : $sMonth[$iDeclinationDefault];
    }
    $sFormat = preg_replace("~(?<!\\\\)F~U", preg_replace('~(\\w{1})~u', '\\\\${1}', $sMonth), $sFormat);
    return date($sFormat, $iDate);
}
/**
 * Плагин для смарти.
 * Позволяет получать дату с возможностью склонения 
 * формы слова и поддержкой мультиязычноти.
 *
 * Список ключей параметров:
 * 		date*          [string]
 * 		format*        [string]
 * 		declination*   [int]
 * 		now*           [int]    Количество секунд, в течении которых событие имеет статус "Только что"
 * 		day*   		   [string] Указывает на необходимость замены "Сегодня", "Вчера", "Завтра". 
 * 								В указанном формате 'day' будет заменено на соответствующее значение.
 * 		minutes_back*  [int]    Количество минут, в течении которых событие имеет статус "... минут назад"
 * 		hours_back*    [int]    Количество часов, в течении которых событие имеет статус "... часов назад"
 * 
 * (* - параметр является необязательным)
 * 
 * @param   array $aParams
 * @param   Smarty $oSmarty
 * @return  string
 */
function smarty_function_date_format($aParams, &$oSmarty)
{
    $sFormatDefault = "d F Y, H:i";
    //  формат даты по умолчанию
    $iDeclinationDefault = 1;
    //  индекс склонения по умолчанию
    /**
     * Определяем дату
     */
    $sDate = empty($aParams['date']) ? time() : $aParams['date'];
    $iDeclination = !isset($aParams['declination']) ? $iDeclinationDefault : $aParams['declination'];
    $sFormat = empty($aParams['format']) ? $sFormatDefault : $aParams['format'];
    require_once Config::Get('path.root.engine') . '/classes/Engine.class.php';
    $oEngine = Engine::getInstance();
    /**
     * Если указан другой язык, подгружаем его
     */
    if (isset($aParams['lang']) and $aParams['lang'] != $oEngine->Lang_GetLang()) {
        $oEngine->Lang_SetLang($aParams['lang']);
    }
    $aMonth = $oEngine->Lang_Get('month_array');
    $iDate = preg_match("/^\\d+\$/", $sDate) ? $sDate : strtotime($sDate);
    /**
     * Если указана необходимость выполнять проверку на NOW
     */
    if (isset($aParams['now'])) {
        if ($iDate + $aParams['now'] > time()) {
            return $oEngine->Lang_Get('date_now');
        }
    }
    /**
     * Если указана необходимость на проверку minutes back
     */
    if (isset($aParams['minutes_back'])) {
        require_once 'modifier.declension.php';
        $iTimeDelta = round((time() - $iDate) / 60);
        if ($iTimeDelta < $aParams['minutes_back']) {
            return $iTimeDelta != 0 ? smarty_modifier_declension($iTimeDelta, $oEngine->Lang_Get('date_minutes_back', array('minutes' => $iTimeDelta)), $oEngine->Lang_GetLang()) : $oEngine->Lang_Get('date_minutes_back_less');
        }
    }
    /**
     * Если указана необходимость на проверку minutes back
     */
    if (isset($aParams['hours_back'])) {
        require_once 'modifier.declension.php';
        $iTimeDelta = round((time() - $iDate) / (60 * 60));
        if ($iTimeDelta < $aParams['hours_back']) {
            return $iTimeDelta != 0 ? smarty_modifier_declension($iTimeDelta, $oEngine->Lang_Get('date_hours_back', array('hours' => $iTimeDelta)), $oEngine->Lang_GetLang()) : $oEngine->Lang_Get('date_hours_back_less');
        }
    }
    /**
     * Если указана необходимость автоподстановки "Сегодня", "Вчера", "Завтра".
     */
    if (isset($aParams['day']) and $aParams['day']) {
        switch (date('Y-m-d', $iDate)) {
            /**
             * Если дата совпадает с сегодняшней
             */
            case date('Y-m-d'):
                $sDay = $oEngine->Lang_Get('date_today');
                break;
                /**
                 * Если дата совпадает со вчерашней
                 */
            /**
             * Если дата совпадает со вчерашней
             */
            case date('Y-m-d', mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"))):
                $sDay = $oEngine->Lang_Get('date_yesterday');
                break;
                /**
                 * Если дата совпадает с завтрашней
                 */
            /**
             * Если дата совпадает с завтрашней
             */
            case date('Y-m-d', mktime(0, 0, 0, date("m"), date("d") + 1, date("Y"))):
                $sDay = $oEngine->Lang_Get('date_tomorrow');
                break;
            default:
                $sDay = null;
        }
        if ($sDay) {
            $sFormat = str_replace("day", $sDay, $aParams['day']);
            return date($sFormat, $iDate);
        }
    }
    /**
     * Определяем нужное текстовое значение названия месяца
     */
    $iMonth = date("n", $iDate);
    $sMonth = isset($aMonth[$iMonth]) ? $aMonth[$iMonth] : "";
    /**
     * Если не найден индекс склонения, берем склонене по умолчанию.
     * Если индекс по умолчанию также не определен, берем первое значение в массиве.
     */
    if (is_array($sMonth)) {
        $sMonth = isset($sMonth[$iDeclination]) ? $sMonth[$iDeclination] : $sMonth[$iDeclinationDefault];
    }
    $sFormat = preg_replace("~(?<!\\\\)F~U", preg_replace('~(\\w{1})~u', '\\\\${1}', $sMonth), $sFormat);
    return date($sFormat, $iDate);
}
Example #3
0
/**
 * Smarty datespent modifier plugin
 *
 * Type:     modifier<br>
 * Name:     datespent<br>
 * Purpose:  datespent
 * @author battazo
 * @param string
 * @param string
 * @param interger
 * @param interger
 * @param string
 * @param string
 */
function smarty_modifier_datespent($sDatetime, $getTime = false)
{
    //get datetime
    if (!$sDatetime) {
        return false;
    }
    $date = Func::parse_datetime($sDatetime);
    //get now datetime
    static $now;
    if (!isset($now)) {
        $now = date('Y,m,d,H,i,s');
    }
    $nowdt = array();
    list($nowdt['year'], $nowdt['month'], $nowdt['day'], $nowdt['hour'], $nowdt['min'], $nowdt['sec']) = explode(',', $now);
    //дата позже текущей
    if ($nowdt['year'] < $date['year']) {
        return '';
    }
    //since
    $since = array();
    foreach ($nowdt as $k => $v) {
        $since[$k] = $nowdt[$k] - $date[$k];
    }
    $tmp = array(0 => array('sec', 60, 'секунда;секунды;секунд'), 1 => array('min', 60, 'минута;минуты;минут'), 2 => array('hour', 24, 'час;часа;часов'), 3 => array('day', 30, 'день;дня;дней'), 4 => array('month', 12, 'месяц;месяца;месяцев'), 5 => array('year', 0, 'год;года;лет'));
    //    if(!function_exists('calcsince'))
    //    {
    //        function calcsince($i, $minus = false)
    //        {
    //            global $tmp, $date, $nowdt, $since;
    //            $key = $tmp[$i][0];
    //            if ($minus) {
    //                --$nowdt[$key];
    //                if ($nowdt[$key] == $date[$key]) {
    //                    $since[$key] = $nowdt[$key] - $date[$key];
    //                }
    //            }
    //            $minus = false;
    //            if ($nowdt[$key] < $date[$key]) {
    //                $since[$key] =  $tmp[$i][1] + $nowdt[$key] - $date[$key];
    //                $minus = true;
    //            }
    //            if(++$i > 5) return;
    //            calcsince($tmp, $date, $nowdt, $since, $i, $minus);
    //        }
    //    }
    //    calcsince(0);
    $minus = false;
    //seconds
    if ($minus) {
        $nowdt['sec']--;
        if ($nowdt['sec'] == $date['sec']) {
            $since['sec'] = $nowdt['sec'] - $date['sec'];
        }
    }
    $minus = false;
    if ($nowdt['sec'] < $date['sec']) {
        $since['sec'] = 60 + $nowdt['sec'] - $date['sec'];
        $minus = true;
    }
    //minutes
    if ($minus) {
        $nowdt['min']--;
        if ($nowdt['min'] == $date['min']) {
            $since['min'] = $nowdt['min'] - $date['min'];
        } else {
            $since['min']--;
        }
    }
    $minus = false;
    if ($nowdt['min'] < $date['min']) {
        $since['min'] = 60 + $nowdt['min'] - $date['min'];
        $minus = true;
    }
    //hours --------------------------------------
    if ($minus) {
        $nowdt['hour']--;
        if ($nowdt['hour'] == $date['hour']) {
            $since['hour'] = $nowdt['hour'] - $date['hour'];
        }
    }
    $minus = false;
    if ($nowdt['hour'] < $date['hour']) {
        $since['hour'] = 24 + $nowdt['hour'] - $date['hour'];
        $minus = true;
    }
    //days ---------------------------------------
    if ($minus) {
        $nowdt['day']--;
        if ($nowdt['day'] == $date['day']) {
            $since['day'] = $nowdt['day'] - $date['day'];
        } else {
            $since['day']--;
        }
    }
    $minus = false;
    if ($nowdt['day'] < $date['day']) {
        $since['day'] = 30 + $nowdt['day'] - $date['day'];
        $minus = true;
    }
    //months -------------------------------------
    if ($minus) {
        $nowdt['month']--;
        if ($nowdt['month'] == $date['month']) {
            $since['month'] = $nowdt['month'] - $date['month'];
        }
    }
    $minus = false;
    if ($nowdt['month'] < $date['month']) {
        $since['month'] = 30 + $nowdt['month'] - $date['month'];
        $minus = true;
    }
    //years
    if ($minus) {
        $nowdt['year']--;
        if ($nowdt['year'] == $date['year']) {
            $since['year'] = $nowdt['year'] - $date['year'];
        }
    }
    $minus = false;
    if ($nowdt['year'] < $date['year']) {
        $since['year'] = 0 + $nowdt['year'] - $date['year'];
        $minus = true;
    }
    //    debug($since);
    //
    //    $dateDiff = time() - strtotime($sDatetime, 0);
    //    $since2 = array();
    //    $since2['day']  = floor($dateDiff/86400); $dateDiff = $dateDiff % 86400;
    //    $since2['hour'] = floor($dateDiff/3600);  $dateDiff = $dateDiff % 3600;
    //    $since2['min']  = floor($dateDiff/60);    $dateDiff = $dateDiff % 60;
    //    $since2['sec']  = $dateDiff;
    //
    //    debug($since2);
    $sResult = '';
    do {
        //разница в год и более (5лет [5месяцев])
        if ($since['year']) {
            $sResult .= $since['year'] . ' ' . smarty_modifier_declension($since['year'], $tmp[5][2], false);
            if ($since['month']) {
                $sResult .= ' ' . $since['month'] . ' ' . smarty_modifier_declension($since['month'], $tmp[4][2], false);
            }
            break;
        }
        //разница в месяц и больше (5месяцев [5дней])
        if ($since['month']) {
            $sResult .= $since['month'] . ' ' . smarty_modifier_declension($since['month'], $tmp[4][2], false);
            if ($since['day']) {
                $sResult .= ' ' . $since['day'] . ' ' . smarty_modifier_declension($since['day'], $tmp[3][2], false);
            }
            break;
        }
        //разница в день и больше  (5дней [5часов] [5минут])
        if ($since['day']) {
            $sResult .= $since['day'] . ' ' . smarty_modifier_declension($since['day'], $tmp[3][2], false);
            if ($since['hour'] > 0) {
                $sResult .= ' ' . $since['hour'] . ' ' . smarty_modifier_declension($since['hour'], $tmp[2][2], false);
                //if($since['min'])
                //    $sResult .= ' '.$since['min'].' '.smarty_modifier_declension($since['min'],$tmp[1][2], false);
            }
            break;
        }
        //разница в час и больше  (5часов [5минут])
        if ($since['hour']) {
            $sResult .= $since['hour'] . ' ' . smarty_modifier_declension($since['hour'], $tmp[2][2], false);
            if ($since['min']) {
                $sResult .= ' ' . $since['min'] . ' ' . smarty_modifier_declension($since['min'], $tmp[1][2], false);
            }
            break;
        }
        //разница в минуту и меньше (5минут 5секунд)
        if ($since['min'] > 3) {
            $sResult = $since['min'] . ' ' . smarty_modifier_declension($since['min'], $tmp[1][2], false);
        } else {
            $sResult = 'сейчас';
        }
    } while (false);
    return $sResult;
}
    function content_5684d6cb444e21_44640408($_smarty_tpl)
    {
        if (!is_callable('smarty_modifier_declension')) {
            include '/var/www/bunker//engine/modules/viewer/plugs/modifier.declension.php';
        }
        if (!is_callable('smarty_function_router')) {
            include '/var/www/bunker//engine/modules/viewer/plugs/function.router.php';
        }
        if ($_smarty_tpl->tpl_vars['oTopic']->value) {
            ?>
	<?php 
            $_smarty_tpl->tpl_vars["oBlog"] = new Smarty_variable($_smarty_tpl->tpl_vars['oTopic']->value->getBlog(), null, 0);
            ?>
	<?php 
            if ($_smarty_tpl->tpl_vars['oBlog']->value->getType() != 'personal') {
                ?>
	<section class="block block-type-blog">
		<header class="block-header">
			<h3><a href="<?php 
                echo $_smarty_tpl->tpl_vars['oBlog']->value->getUrlFull();
                ?>
"><?php 
                echo htmlspecialchars($_smarty_tpl->tpl_vars['oBlog']->value->getTitle(), ENT_QUOTES, 'UTF-8', true);
                ?>
</a></h3>
		</header>

		<div class="block-content">
			<span id="blog_user_count_<?php 
                echo $_smarty_tpl->tpl_vars['oBlog']->value->getId();
                ?>
"><?php 
                echo $_smarty_tpl->tpl_vars['oBlog']->value->getCountUser();
                ?>
</span> <?php 
                echo smarty_modifier_declension($_smarty_tpl->tpl_vars['oBlog']->value->getCountUser(), $_smarty_tpl->tpl_vars['aLang']->value['reader_declension'], 'russian');
                ?>
<br />
			<?php 
                echo $_smarty_tpl->tpl_vars['oBlog']->value->getCountTopic();
                ?>
 <?php 
                echo smarty_modifier_declension($_smarty_tpl->tpl_vars['oBlog']->value->getCountTopic(), $_smarty_tpl->tpl_vars['aLang']->value['topic_declension'], 'russian');
                ?>

			
			<br />
			<br />
			
			<?php 
                if ($_smarty_tpl->tpl_vars['oUserCurrent']->value && $_smarty_tpl->tpl_vars['oUserCurrent']->value->getId() != $_smarty_tpl->tpl_vars['oBlog']->value->getOwnerId()) {
                    ?>
				<button type="submit" class="button button-primary <?php 
                    if ($_smarty_tpl->tpl_vars['oBlog']->value->getUserIsJoin()) {
                        ?>
active<?php 
                    }
                    ?>
" id="blog-join" data-only-text="1" onclick="ls.blog.toggleJoin(this,<?php 
                    echo $_smarty_tpl->tpl_vars['oBlog']->value->getId();
                    ?>
); return false;"><?php 
                    if ($_smarty_tpl->tpl_vars['oBlog']->value->getUserIsJoin()) {
                        echo $_smarty_tpl->tpl_vars['aLang']->value['blog_leave'];
                    } else {
                        echo $_smarty_tpl->tpl_vars['aLang']->value['blog_join'];
                    }
                    ?>
</button>&nbsp;&nbsp;
			<?php 
                }
                ?>
			<a href="<?php 
                echo smarty_function_router(array('page' => 'rss'), $_smarty_tpl);
                ?>
blog/<?php 
                echo $_smarty_tpl->tpl_vars['oBlog']->value->getUrl();
                ?>
/" class="rss">RSS</a>
		</div>
	</section>
	<?php 
            }
        }
    }
    function content_5577f7814f34e6_65079724($_smarty_tpl)
    {
        if (!is_callable('smarty_function_router')) {
            include '/home/vxeeuesn/public_html/_sokol/engine/modules/viewer/plugs/function.router.php';
        }
        if (!is_callable('smarty_modifier_declension')) {
            include '/home/vxeeuesn/public_html/_sokol/engine/modules/viewer/plugs/modifier.declension.php';
        }
        if (!is_callable('smarty_function_hook')) {
            include '/home/vxeeuesn/public_html/_sokol/engine/modules/viewer/plugs/function.hook.php';
        }
        ?>
<div class="modal modal-write" id="modal_write">
	<header class="modal-header">
		<a href="#" class="close jqmClose"></a>
	</header>
	
	<div class="modal-content"><ul class="write-list"><?php 
        if ($_smarty_tpl->tpl_vars['iUserCurrentCountTopicDraft']->value) {
            ?>
<li class="write-item-type-draft"><a href="<?php 
            echo smarty_function_router(array('page' => 'topic'), $_smarty_tpl);
            ?>
saved/" class="write-item-image"></a><a href="<?php 
            echo smarty_function_router(array('page' => 'topic'), $_smarty_tpl);
            ?>
saved/" class="write-item-link"><?php 
            echo $_smarty_tpl->tpl_vars['iUserCurrentCountTopicDraft']->value;
            ?>
 <?php 
            echo smarty_modifier_declension($_smarty_tpl->tpl_vars['iUserCurrentCountTopicDraft']->value, $_smarty_tpl->tpl_vars['aLang']->value['draft_declension'], 'russian');
            ?>
</a></li><?php 
        }
        ?>
<li class="write-item-type-topic"><a href="<?php 
        echo smarty_function_router(array('page' => 'topic'), $_smarty_tpl);
        ?>
add" class="write-item-image"></a><a href="<?php 
        echo smarty_function_router(array('page' => 'topic'), $_smarty_tpl);
        ?>
add" class="write-item-link"><?php 
        echo $_smarty_tpl->tpl_vars['aLang']->value['block_create_topic_topic'];
        ?>
</a></li><li class="write-item-type-blog"><a href="<?php 
        echo smarty_function_router(array('page' => 'blog'), $_smarty_tpl);
        ?>
add" class="write-item-image"></a><a href="<?php 
        echo smarty_function_router(array('page' => 'blog'), $_smarty_tpl);
        ?>
add" class="write-item-link"><?php 
        echo $_smarty_tpl->tpl_vars['aLang']->value['block_create_blog'];
        ?>
</a></li><li class="write-item-type-message"><a href="<?php 
        echo smarty_function_router(array('page' => 'talk'), $_smarty_tpl);
        ?>
add" class="write-item-image"></a><a href="<?php 
        echo smarty_function_router(array('page' => 'talk'), $_smarty_tpl);
        ?>
add" class="write-item-link"><?php 
        echo $_smarty_tpl->tpl_vars['aLang']->value['block_create_talk'];
        ?>
</a></li><?php 
        echo smarty_function_hook(array('run' => 'write_item', 'isPopup' => true), $_smarty_tpl);
        ?>
</ul></div>
</div>
	<?php 
    }
    function content_5684d6cb647bc7_02769927($_smarty_tpl)
    {
        if (!is_callable('smarty_modifier_truncate')) {
            include '/var/www/bunker/engine/lib/external/Smarty/libs/plugins/modifier.truncate.php';
        }
        if (!is_callable('smarty_function_router')) {
            include '/var/www/bunker//engine/modules/viewer/plugs/function.router.php';
        }
        if (!is_callable('smarty_function_date_format')) {
            include '/var/www/bunker//engine/modules/viewer/plugs/function.date_format.php';
        }
        if (!is_callable('smarty_modifier_declension')) {
            include '/var/www/bunker//engine/modules/viewer/plugs/modifier.declension.php';
        }
        ?>
<ul class="item-list">
	<?php 
        $_smarty_tpl->tpl_vars['oComment'] = new Smarty_Variable();
        $_smarty_tpl->tpl_vars['oComment']->_loop = false;
        $_from = $_smarty_tpl->tpl_vars['aComments']->value;
        if (!is_array($_from) && !is_object($_from)) {
            settype($_from, 'array');
        }
        foreach ($_from as $_smarty_tpl->tpl_vars['oComment']->key => $_smarty_tpl->tpl_vars['oComment']->value) {
            $_smarty_tpl->tpl_vars['oComment']->_loop = true;
            ?>
		<?php 
            $_smarty_tpl->tpl_vars["oUser"] = new Smarty_variable($_smarty_tpl->tpl_vars['oComment']->value->getUser(), null, 0);
            ?>
		<?php 
            $_smarty_tpl->tpl_vars["oTopic"] = new Smarty_variable($_smarty_tpl->tpl_vars['oComment']->value->getTarget(), null, 0);
            ?>
		<?php 
            $_smarty_tpl->tpl_vars["oBlog"] = new Smarty_variable($_smarty_tpl->tpl_vars['oTopic']->value->getBlog(), null, 0);
            ?>
		
		<li class="js-title-comment" title="<?php 
            echo htmlspecialchars(smarty_modifier_truncate(trim(preg_replace('!<[^>]*?>!', ' ', $_smarty_tpl->tpl_vars['oComment']->value->getText())), 100, '...'), ENT_QUOTES, 'UTF-8', true);
            ?>
">

			
			<a href="<?php 
            echo $_smarty_tpl->tpl_vars['oUser']->value->getUserWebPath();
            ?>
" class="author"><?php 
            echo $_smarty_tpl->tpl_vars['oUser']->value->getLogin();
            ?>
</a> в
			<a href="<?php 
            echo $_smarty_tpl->tpl_vars['oBlog']->value->getUrlFull();
            ?>
" class="blog-name"><?php 
            echo htmlspecialchars($_smarty_tpl->tpl_vars['oBlog']->value->getTitle(), ENT_QUOTES, 'UTF-8', true);
            ?>
</a>:<br>
			<a href="<?php 
            if ($_smarty_tpl->tpl_vars['oConfig']->value->GetValue('module.comment.nested_per_page')) {
                echo smarty_function_router(array('page' => 'comments'), $_smarty_tpl);
            } else {
                echo $_smarty_tpl->tpl_vars['oTopic']->value->getUrl();
                ?>
#comment<?php 
            }
            echo $_smarty_tpl->tpl_vars['oComment']->value->getId();
            ?>
"><?php 
            echo htmlspecialchars($_smarty_tpl->tpl_vars['oTopic']->value->getTitle(), ENT_QUOTES, 'UTF-8', true);
            ?>
</a>
			
			<p>
				<time datetime="<?php 
            echo smarty_function_date_format(array('date' => $_smarty_tpl->tpl_vars['oComment']->value->getDate(), 'format' => 'c'), $_smarty_tpl);
            ?>
"><?php 
            echo smarty_function_date_format(array('date' => $_smarty_tpl->tpl_vars['oComment']->value->getDate(), 'hours_back' => "12", 'minutes_back' => "60", 'now' => "60", 'day' => "day H:i", 'format' => "j F Y, H:i"), $_smarty_tpl);
            ?>
</time> |
				<?php 
            echo $_smarty_tpl->tpl_vars['oTopic']->value->getCountComment();
            ?>
 <?php 
            echo smarty_modifier_declension($_smarty_tpl->tpl_vars['oTopic']->value->getCountComment(), $_smarty_tpl->tpl_vars['aLang']->value['comment_declension'], 'russian');
            ?>

			</p>
		</li>
	<?php 
        }
        ?>
</ul>


<footer>
	<a href="<?php 
        echo smarty_function_router(array('page' => 'comments'), $_smarty_tpl);
        ?>
"><?php 
        echo $_smarty_tpl->tpl_vars['aLang']->value['block_stream_comments_all'];
        ?>
</a> | <a href="<?php 
        echo smarty_function_router(array('page' => 'rss'), $_smarty_tpl);
        ?>
allcomments/">RSS</a>
</footer><?php 
    }