Помощь Увеличение количества просмотров статьи в J2.5 - где?

Статус
В этой теме нельзя размещать новые ответы.

iskif

Профессор
Регистрация
21 Авг 2006
Сообщения
373
Реакции
49
сломал весь мозг себе уже :thenks:
в J1.5 было просто
файл libraries/joomla/database/table.php
Код:
строка 668
. ' SET hits = ( hits + 1 )'

сейчас же, в версии 2.5 в этом файле есть такой кусок кода
PHP:
/**
    * Method to increment the hits for a row if the necessary property/field exists.
    *
    * @param  mixed  $pk  An optional primary key value to increment. If not set the instance property value is used.
    *
    * @return  boolean  True on success.
    *
    * @link    http://docs.joomla.org/JTable/hit
    * @since  11.1
    */
    public function hit($pk = null)
    {
        // If there is no hits field, just return true.
        if (!property_exists($this, 'hits'))
        {
            return true;
        }
 
        // Initialise variables.
        $k = $this->_tbl_key;
        $pk = (is_null($pk)) ? $this->$k : $pk;
 
        // If no primary key is given, return false.
        if ($pk === null)
        {
            return false;
        }
 
        // Check the row in by primary key.
        $query = $this->_db->getQuery(true);
        $query->update($this->_tbl);
        $query->set($this->_db->quoteName('hits') . ' = (' . $this->_db->quoteName('hits') . ' + 1)');
        $query->where($this->_tbl_key . ' = ' . $this->_db->quote($pk));
        $this->_db->setQuery($query);
 
        // Check for a database error.
        if (!$this->_db->query())
        {
            $e = new JException(JText::sprintf('JLIB_DATABASE_ERROR_HIT_FAILED', get_class($this), $this->_db->getErrorMsg()));
            $this->setError($e);
            return false;
        }
 
        // Set table values in the object.
        $this->hits++;
 
        return true;
    }

пробовал менять ' + 1) и hits++; - эффекта ноль. даже просто вырезал этот весь код из файла всё равно счётчик просмотров упрямо изменяется на 1 :confused:

что и\или где надо исправить, чтоб увеличение было на отличную от 1 цифру ??
 
А в БД глянуть что не позволяет?
 
хм... а при чём тут БД? вопрос был про изменение счётчика просмотров статей, а не как посмотреть его значение в базе
 
Посмотри файл /components/com_content/views/article/view.html
там есть вот эта функция
Код:
public function hit($pk = 0)
    {
            $hitcount = JRequest::getInt('hitcount', 1);
 
            if ($hitcount)
            {
                // Initialise variables.
                $pk = (!empty($pk)) ? $pk : (int) $this->getState('article.id');
                $db = $this->getDbo();
 
                $db->setQuery(
                        'UPDATE #__content' .
                        ' SET hits = hits + 1' .
                        ' WHERE id = '.(int) $pk
                );
 
                if (!$db->query()) {
                        $this->setError($db->getErrorMsg());
                        return false;
                }
            }
 
            return true;
    }
Я думаю, что ты это искал.
 
дааа!! спасибо :)
только у меня вместо /components/com_content/views/article/view.html там лежал файл view.html.php с другим содержимым
возможно, из-за применения фреймворка от одной из студий
а эта функция у меня находится в \components\com_content\models\article.php
но спасибо за подсказку, что можно было не останавливаться и искать в других файлах :)
 
А как избавиться от кеширования кол-ва просмотров? А то выдает неверную информацию...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху