Помощь Не отображается количество просмотров материала

Romanychch

Хранитель порядка
Регистрация
14 Дек 2013
Сообщения
319
Реакции
610
Помогите пожалуйста решить проблему следующего характера:
Нужно сделать так, чтобы в материале отображалось количество просмотров.

Я зашёл в настройки пункта меню (это блог категории), "Параметры отображения материала" и включил пункт "Кол-во просмотров - Показать".
Также дополнительно (хоть это и не обязательно), также включил в самом материале "Кол-во просмотров - Показать".

Что в итоге: списке блога материалов отображается количество просмотров, а в самом материале - нет.

Шаблон я использую g2shop (Joomla 3.5). Вот Для просмотра ссылки Войди или Зарегистрируйся на демо шаблона, а именно на отображение статьи Joomla. Как видите, тут также не отображается количество просмотров. Есть подозрение, что разработчик шаблона специально "выпилил" отображение количества просмотров материала.

Думаю что "копать" нужно в сторону файла mystite.com/templates/sj_g2shop/html/com_content/article/default.php , так как именно он отвечает за отображение статьи в Joomla. Но где и какой код надо отредактировать - не могу понять... Помогите мне "включить" количество просмотров статьи
На всякий случай прикладываю код файла:
Код:
<?php
/**
* @package     Joomla.Site
* @subpackage  com_content
*
* @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license     GNU General Public License version 2 or later; see LICENSE.txt
*/

defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');

// includes placehold
$yt_temp = JFactory::getApplication()->getTemplate();
include (JPATH_BASE . '/templates/'.$yt_temp.'/includes/placehold.php');

// Create shortcuts to some parameters.
$params  = $this->item->params;
$images  = json_decode($this->item->images);
$urls    = json_decode($this->item->urls);
$canEdit = $params->get('access-edit');
$user    = JFactory::getUser();
$info    = $params->get('info_block_position', 0);


$useDefList = ($params->get('show_modify_date') || $params->get('show_publish_date') || $params->get('show_create_date')
    || $params->get('show_hits') );

?>
<article class="item-page<?php echo $this->pageclass_sfx?>">
    <?php if ($this->params->get('show_page_heading', 1)) : ?>
    <div class="page-header">
        <h2> <?php echo $this->escape($this->params->get('page_heading')); ?> </h2>
    </div>
    <?php endif;
if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && $this->item->paginationrelative)
{
    echo $this->item->pagination;
}
?>
    <?php if (!$useDefList && $this->print) : ?>
        <div id="pop-print" class="btn">
            <?php echo JHtml::_('icon.print_screen', $this->item, $params); ?>
        </div>
        <div class="clearfix"> </div>
    <?php endif; ?>
    <?php if ($params->get('show_title') || $params->get('show_author')) : ?>
    <header class="article-header">
        <h1>
            <?php if ($this->item->state == 0) : ?>
                <span class="label label-warning"><?php echo JText::_('JUNPUBLISHED'); ?></span>
            <?php endif; ?>
            <?php if ($params->get('show_title')) : ?>
                <?php if ($params->get('link_titles') && !empty($this->item->readmore_link)) : ?>
                    <a href="<?php echo $this->item->readmore_link; ?>"> <?php echo $this->escape($this->item->title); ?></a>
                <?php else : ?>
                    <?php echo $this->escape($this->item->title); ?>
                <?php endif; ?>
            <?php endif; ?>
        </h1>
    </header>
    <?php endif; ?>
    <?php if (!$this->print) : ?>
        <?php if ($canEdit || $params->get('show_print_icon') || $params->get('show_email_icon')) : ?>
        <div class="btn-group pull-right">
            <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> <span class="icon-cog"></span> <span class="caret"></span> </a>
            <?php // Note the actions class is deprecated. Use dropdown-menu instead. ?>
            <ul class="dropdown-menu actions">
                <?php if ($params->get('show_print_icon')) : ?>
                <li class="print-icon"> <?php echo JHtml::_('icon.print_popup', $this->item, $params); ?> </li>
                <?php endif; ?>
                <?php if ($params->get('show_email_icon')) : ?>
                <li class="email-icon"> <?php echo JHtml::_('icon.email', $this->item, $params); ?> </li>
                <?php endif; ?>
                <?php if ($canEdit) : ?>
                <li class="edit-icon"> <?php echo JHtml::_('icon.edit', $this->item, $params); ?> </li>
                <?php endif; ?>
            </ul>
        </div>
        <?php endif; ?>
    <?php else : ?>
        <?php if ($useDefList) : ?>
            <div id="pop-print" class="btn">
                <?php echo JHtml::_('icon.print_screen', $this->item, $params); ?>
            </div>
        <?php endif; ?>
    <?php endif; ?>

    <?php if ($useDefList && ($info == 0 || $info == 2)) : ?>
        <aside class="article-aside">
            <dl class="article-info">
                <dt></dt>
                <?php if ($params->get('show_parent_category') && $this->item->parent_slug != '1:root') : ?>
                    <dd>
                        <div class="parent-category-name">
                            <?php    $title = $this->escape($this->item->parent_title);
                            $url = '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->parent_slug)).'">'.$title.'</a>';?>
                            <?php if ($params->get('link_parent_category') and !empty($this->item->parent_slug)) : ?>
                                <?php echo JText::sprintf('COM_CONTENT_PARENT', $url); ?>
                            <?php else : ?>
                                <?php echo JText::sprintf('COM_CONTENT_PARENT', $title); ?>
                            <?php endif; ?>
                        </div>
                    </dd>
                <?php endif; ?>
               

                <?php if ($params->get('show_publish_date')) : ?>
                    <dd>
                        <div class="published">
                            <i class="icon-calendar"></i> <?php echo JText::sprintf('COM_CONTENT_PUBLISHED_DATE_ON', JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC3'))); ?>
                        </div>
                    </dd>
                <?php endif; ?>

                <?php if ($info == 0) : ?>
                    <?php if ($params->get('show_modify_date')) : ?>
                        <dd>
                            <div class="modified">
                                <i class="icon-calendar"></i> <?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHtml::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC3'))); ?>
                            </div>
                        </dd>
                    <?php endif; ?>
                    <?php if ($params->get('show_create_date')) : ?>
                        <dd>
                            <div class="create">
                                <?php echo JText::sprintf( JHtml::_('date',$this->item->created, JText::_('DATE_FORMAT_LC2'))); ?>
                            </div>
                        </dd>
                    <?php endif; ?>
                   
                   
                   
                <?php endif; ?>
            </dl>
        </aside>
    <?php endif; ?>

   
    <?php if (!$params->get('show_intro')) : echo $this->item->event->afterDisplayTitle; endif; ?>
   
    <?php if ($params->get('show_vote', null)) :?>
        <div class="vote-info">
            <?php echo $this->item->event->beforeDisplayContent; ?>
        </div>
    <?php endif; ?>

    <?php if (isset($urls) && ((!empty($urls->urls_position) && ($urls->urls_position == '0')) || ($params->get('urls_position') == '0' && empty($urls->urls_position)))
        || (empty($urls->urls_position) && (!$params->get('urls_position')))) : ?>
    <?php echo $this->loadTemplate('links'); ?>
    <?php endif; ?>
    <?php if ($params->get('access-view')):?>
   
    <?php  if (isset($images->image_fulltext) and !empty($images->image_fulltext)) :
       
        //Create placeholder items images
        $src = $images->image_fulltext;
        if (file_exists(JPATH_BASE . '/' . $src)) {                               
            $thumb_img = '<img src="'.$src.'" alt="'.$images->image_fulltext_alt.'" />';
            $full_img =  htmlspecialchars($images->image_fulltext);
        } else if ($is_placehold) {                   
            $thumb_img = yt_placehold($placehold_size['article']);
            $full_img  = 'http://placehold.it/'.$placehold_size['article'].'/969696';
        }   

    ?>
    <?php $imgfloat = (empty($images->float_fulltext)) ? $params->get('float_fulltext') : $images->float_fulltext; ?>
    <figure class="img-fulltext pull-<?php echo htmlspecialchars($imgfloat); ?>">
        <a data-rel="prettyPhoto"  href="<?php echo $full_img;  ?>" title="<?php echo htmlspecialchars($images->image_fulltext_alt); ?>">   
            <?php echo $thumb_img; ?>
        </a>   
    </figure>
    <?php endif; ?>
   
   
   
    <?php
    if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && !$this->item->paginationrelative):
        echo $this->item->pagination;
    endif;
    ?>
   
    <?php if (isset ($this->item->toc)) :
        echo $this->item->toc;
    endif; ?>
   
   
    <?php echo $this->item->text; ?>
   
    <?php if ($params->get('show_tags', 1) && !empty($this->item->tags)) : ?>
                    <div>
                        <?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
                    </div>
    <?php endif; ?>
   
    <?php if ($useDefList && ($info == 1 || $info == 2)) : ?>
        <div class="article-info muted">
            <dl class="article-info">
            <dt class="article-info-term"><?php echo JText::_('COM_CONTENT_ARTICLE_INFO'); ?></dt>

            <?php if ($info == 1) : ?>
                <?php if ($params->get('show_author') && !empty($this->item->author )) : ?>
                    <dd class="createdby">
                        <?php $author = $this->item->created_by_alias ? $this->item->created_by_alias : $this->item->author; ?>
                        <?php if (!empty($this->item->contactid) && $params->get('link_author') == true) : ?>
                        <?php
                        $needle = 'index.php?option=com_contact&view=contact&id=' . $this->item->contactid;
                        $menu = JFactory::getApplication()->getMenu();
                        $item = $menu->getItems('link', $needle, true);
                        $cntlink = !empty($item) ? $needle . '&Itemid=' . $item->id : $needle;
                        ?>
                        <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', JHtml::_('link', JRoute::_($cntlink), $author)); ?>
                        <?php else: ?>
                        <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', $author); ?>
                        <?php endif; ?>
                    </dd>
                <?php endif; ?>
                <?php if ($params->get('show_parent_category') && !empty($this->item->parent_slug)) : ?>
                    <dd class="parent-category-name">
                        <?php    $title = $this->escape($this->item->parent_title);
                        $url = '<a href="' . JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->parent_slug)) . '">' . $title . '</a>';?>
                        <?php if ($params->get('link_parent_category') && $this->item->parent_slug) : ?>
                            <?php echo JText::sprintf('COM_CONTENT_PARENT', $url); ?>
                        <?php else : ?>
                            <?php echo JText::sprintf('COM_CONTENT_PARENT', $title); ?>
                        <?php endif; ?>
                    </dd>
                <?php endif; ?>
                <?php if ($params->get('show_category')) : ?>
                    <dd class="category-name">
                        <?php     $title = $this->escape($this->item->category_title);
                        $url = '<a href="' . JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug)) . '">' . $title . '</a>';?>
                        <?php if ($params->get('link_category') && $this->item->catslug) : ?>
                            <?php echo JText::sprintf('COM_CONTENT_CATEGORY', $url); ?>
                        <?php else : ?>
                            <?php echo JText::sprintf('COM_CONTENT_CATEGORY', $title); ?>
                        <?php endif; ?>
                    </dd>
                <?php endif; ?>
                <?php if ($params->get('show_publish_date')) : ?>
                    <dd class="published">
                        <span class="icon-calendar"></span>
                        <?php echo JText::sprintf('COM_CONTENT_PUBLISHED_DATE_ON', JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC3'))); ?>
                    </dd>
                <?php endif; ?>
            <?php endif; ?>

            <?php if ($params->get('show_create_date')) : ?>
                <dd class="create">
                    <span class="icon-calendar"></span>
                    <?php echo JText::sprintf('COM_CONTENT_CREATED_DATE_ON', JHtml::_('date', $this->item->created, JText::_('DATE_FORMAT_LC3'))); ?>
                </dd>
            <?php endif; ?>
            <?php if ($params->get('show_modify_date')) : ?>
                <dd class="modified">
                    <span class="icon-calendar"></span>
                    <?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHtml::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC3'))); ?>
                </dd>
            <?php endif; ?>
            <?php if ($params->get('show_hits')) : ?>
                <dd class="hits">
                    <?php echo JText::sprintf('COM_CONTENT_ARTICLE_HITS', $this->item->hits); ?>
                </dd>
            <?php endif; ?>
            </dl>
        </div>
    <?php endif; ?>

    <?php
if (!empty($this->item->pagination) && $this->item->pagination && $this->item->paginationposition && !$this->item->paginationrelative):
    echo $this->item->pagination;
?>
    <?php endif; ?>
    <?php if (isset($urls) && ((!empty($urls->urls_position) && ($urls->urls_position == '1')) || ($params->get('urls_position') == '1'))) : ?>
    <?php echo $this->loadTemplate('links'); ?>
    <?php endif; ?>
    <?php // Optional teaser intro text for guests ?>
    <?php elseif ($params->get('show_noauth') == true && $user->get('guest')) : ?>
    <?php echo $this->item->introtext; ?>
    <?php //Optional link to let them register to see the whole article. ?>
    <?php if ($params->get('show_readmore') && $this->item->fulltext != null) :
        $link1 = JRoute::_('index.php?option=com_users&view=login');
        $link = new JUri($link1);?>
    <p class="readmore">
        <a href="<?php echo $link; ?>">
        <?php $attribs = json_decode($this->item->attribs); ?>
        <?php
        if ($attribs->alternative_readmore == null) :
            echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE');
        elseif ($readmore = $this->item->alternative_readmore) :
            echo $readmore;
            if ($params->get('show_readmore_title', 0) != 0) :
                echo JHtml::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
            endif;
        elseif ($params->get('show_readmore_title', 0) == 0) :
            echo JText::sprintf('COM_CONTENT_READ_MORE_TITLE');
        else :
            echo JText::_('COM_CONTENT_READ_MORE');
            echo JHtml::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
        endif; ?>
        </a>
    </p>
    <?php endif; ?>
    <?php endif; ?>
    <?php
if (!empty($this->item->pagination) && $this->item->pagination && $this->item->paginationposition && $this->item->paginationrelative) :
    echo $this->item->pagination;
?>
    <?php endif; ?>
    <?php echo $this->item->event->afterDisplayContent; ?>
   
</article>
 
Без подозрения - разработчик просто выпилил эту строку :)). Варианта два - добавить строку вручную (см. protostar) или удалить переопределение для статьи в шаблоне. Второй вариант будет более громоздким по дальнейшей работе - макет будет существенно (скорее всего) отличаться от всего стиля сайта - нужно будет править. Поэтому 1й вариант предпочтительнее.
 
выпилил эту строку :)). Варианта два - добавить строку вручную
Будьте добры, чуть подробнее - какую строку он выпилил, откуда её взять и куда вставить?

PS: и ещё такой момент. Если открыть Блог, (то есть список материалов блога, Для просмотра ссылки Войди или Зарегистрируйся) - количество просмотров показываются.
Это файл mystite.com/templates/sj_g2shop/html/com_content/category/blog_item.php

Так вот, может быть есть способ, чтобы из файла ...category/blog_item.php скопировать какой-то код с просмотрами в файл ...article/default.php ?

UPD: всё сделал :)
Если кому интересно, то в файл ...article/default.php вставил следующий код:
Код:
    <?php if (($params->get('show_hits'))) : ?>
                <dl class="blog-in-bottom">
        <dd class="hits">
            <?php echo JText::_('Просмотров:'); ?>
            <?php echo JText::sprintf($this->item->hits); ?>
          
        </dd>
    </dl>
    <?php endif; ?>

А куда именно вставлять, уже как хотите, может под датой, а может в конце статьи (материала) - кому как нравиться.
 
Последнее редактирование:
Попробуйте сделать красивее, две строки с JText замените на одну с переменной и правилом plural:
Код:
<?php echo JText::plural('MY_TOTAL_VIEWS', $this->item->hits); ?>

Затем в админке добавьте 3 переопределения для вышеупомянутой языковой константы:
Код:
MY_TOTAL_VIEWS_1 = %s просмотр
MY_TOTAL_VIEWS_2 = %s просмотра
MY_TOTAL_VIEWS = %s просмотров
Как вы уже наверное поняли, форма слова ПРОСМОТРЫ будет формироваться в зависимости от количества просмотров, например:

21 просмотр
22 просмотра
... и т.д.
 
Назад
Сверху