Непопулярные и малопосещаемые материалы - модуль Joomla 2.5

Непопулярные и малопосещаемые материалы - модуль Joomla 2.5

Непопулярные и малопосещаемые материалы. Введение

На каждом сайте есть непопулярные и малопосещаемые материалы. И далеко не всегда проблема в том, что материалы плохо написаны или не несут какой-либо смысловой нагрузки. Просто так складываются обстоятельства. Поисковые системы не сочли материал полезным. Вы плохо анонсировали материал. Статьи на конкурентных сайтах имеют больше входящих ссылок. Структура сайта не позволяет быстро добраться до статьи. Да и мало ли еще возможных проблем.

Обычно, такие материалы либо остаются где-то в углу сайта, либо оседают в архивах. Можно просто смотреть и надеяться, что когда-нибудь эти статьи вновь воспрянут и станут всем интересными. А можно предпринять ряд действий.

 

Непопулярные и малопосещаемые материалы. Теория

Первым делом, стоит определиться с тем, чего хочется получить на выходе. А так же какие ограничения стоит наложить на решение. 

Чего хочется:

  • автоматизация - самостоятельно следить за всеми материалами это дело не только затратное по времени, но и жутко рутинное
  • белое - решение должно применяться без каких-либо плохих последствий, а не приводить к пессимизации или бану сайта
  • простое и понятное - сложные и мощные алгоритмы это здорово, но разбираться в их проблемах так же сложно и долго. Это не та задача, когда затраченное время вернется сторицей
  • самостоятельное - один раз настроил и занялся другими делами
  • независимость - решение не должно зависеть от кучи обстоятельств, включая фазу луны
  • адаптивность - список непопулярных материалов постоянно меняется, решение должно учитывать этот момент 
  • постоянность - решение не должно быть одноразовым, оно должно постоянно применяться

Ограничения:

  • бесплатное - платных методов масса
  • не затратное по времени - корпеть над каждой статьей это правильное дело. Но, когда у вас будет с десяток другой таких материалов, корректность этого утверждения будет под сомнением
  • стандартное - возможность применить к любому обычному сайту на Joomla 2.5

Давайте размышлять. Какие, в принципе, возможны действия? Что можно сделать для того, чтобы непопулярный материал читали?

  1. Ссылаться на статью с других сайтов, чтобы их посетители и поисковые системы больше обращали внимание на материал. По сути, внешние факторы
  2. Переписать статью. Наполнить его другим текстом. Разбавить картинками, таблицами и списками. Сделать его более интересным и оптимизировать под поисковые системы
  3. Ссылаться на материал в тексте других статей вашего сайта. По сути, сделать перелинковку, направленную на повышение позиций материалов
  4. Создать блок на сайте и выводить туда все непопулярные материалы, чтобы привлечь внимание посетителей и поисковых систем

Рассмотрим каждый из способов отдельно.

Внешние факторы. Ссылки можно не только покупать на биржах, но и если вы не знали, то получать естественным (за счет посетителей, которые сочли материал интересным) или полу-естественным (самостоятельно оставлять комментарии, статьи и заметки на других сайтах) способами. Первое с чего стоит начать, это спам. Спам не только ни белое и ни адаптивное решение, но еще и требующее постоянно внимания. Поэтому его стоит исключить сразу. Следующее, что приходит на ум - это агрегаторы RSS лент и различные сайты для анонсирования (соц. сети, закладки и т.д.). Но, это одноразовые решения, которые никак не будут учитывать изменения в будущем. Последнее, что приходит на ум - это сервисы бесплатного обмена ссылками любого рода. Хоть идея и звучит интересно, гарантий того, что решение будет белым нет, так как не известно на какие сайты вы будете ссылаться, при автоматическом размещении. Да и учета малопосещаемых материалов там нет.

Редактирование статей. Вы можете себе представить автоматический редактор? Который не только будет следить за всеми факторами, но и правильно вносить корректировки в текст. Да еще и вставлять качественные картинки. Конечно, существуют синонимайзеры и тому подобные решения. Однако, тут сомнения возникают не только в отсутствии последующей писсимизации, но и в качестве итогового текста.

Перелинковка. Существуют различного рода решения, которые позволяют автоматически производить перелинковку статей на основе шаблонов. При правильном применении, они дают положительный эффект. Тем не менее, такие решения потребуют постоянного контроля не только списка материалов, но и получаемых результатов. Да и далеко не всегда возможно применить такие решения ко всем необходимым материалам, без внесения кардинальных изменений в текстах других статей.

Блок непопулярных материалов. Конечно, данный блок стоит назвать несколько иначе, чтобы не пугать посетителей. Но, сама по себе идея проста и понятна. Вы выводите список непопулярных на текущий момент статей в один из блоков на сайте. Это, как минимум, повышает шанс того, что посетители сайта прочтут эти материалы. Кроме того, такое решение удовлетворяет как желаниям, так и ограничениям.

Если подводить итог, то в соответствии с изначальными требованиями, самым оптимальным путем будет создание блока с непопулярными и малопосещаемыми материалами. 

Примечание: Конечно, все методы хороши и их стоит применять в совокупности. Однако, вопрос в необходимости их применения всегда будет открыт. Не забывайте, что речь идет о малопосещаемых материалах.  

Примечание: Не стоит так же рассчитывать, что неинтересные материалы станут востребованными и посещаемыми.

 

Непопулярные и малопосещаемые материалы. Практика

На практике, наиболее близким к решению является стандартный модуль "Материалы - Последние новости". По сути, этот модуль решает прямо противоположную задачу. Если бы добавить сортировку по хитам (количествам просмотров) и один параметр, а именно направление сортировки, то задача вывода непопулярных материалов была бы решена. Но, к сожалению, это не так. И всему виной отсутствие поддержки сортировки по хитам и строка в файле helper.php:

$dir = 'DESC';

Стоило бы добавить один пункт в выпадающем списке и вынести строку как отдельный параметр и задача решалась бы моментально. Однако, это не так. Какие варианты решений?

  • Изменять стандартный модуль
  • Писать собственный модуль на основе стандартного

Изменять стандартный модуль - дело не благодарное. Во-первых, случайное изменение или восстановление файлов может откатить все ваши труды. Во-вторых, изменение стандартных механизмов автоматически делает любую универсальную систему специализированной. Это означает, что любой вопрос, связанный с исправлением или поддержкой, уже нельзя рассматривать в обычном порядке. Конечно, в данном случае правка была бы минимальна. Однако, необходимо помнить, что там где есть одна маленькая правка, вероятны и последующие глобальные изменения.  

Писать собственный модуль на основе стандартного - это наиболее подходящий вариант. Так вы не только сократите множество проблем, но и оставите возможность свободно вносить свои правки.

Если же писать свой модуль, то имеет смысл дополнить его чем-то полезным. В данном случае - это нижняя граница счетчика посещений материалов. Задач у такой границы несколько. Во-первых, отделить свежие материалы от непопулярных. У добавленных статей счетчики обычно нулевые. Во-вторых, отделить материалы, требующие отдельного внимания, от основного списка малопосещаемых. Идея проста. Если какая-то статья не набрала определенное количество посещений, при ваших стандартных методах редактирования и анонсирования, то с большой вероятностью можно сказать, что с данным материалом какие-то проблемы. В-третьих, исключить материалы, которые не будут интересны в будущем или умеют узкую направленность. Например, исключить статьи, которые всегда будут редко читать, и направить внимание на статьи, которые ориентированы на большую аудиторию. 

Примечание: Если вас интересует готовый модуль, то ссылка на скачивание готового модуля находится в конце статьи.

 

Структура проекта малопосещаемых материалов

Первым делом, нужно скопировать стандартный модуль "mod_articles_latest" из папки "modules" и переименовать "_latest" в "_lowest". А так же заменить в локализации "en-GB" на "ru-RU", включая папку. Должна получиться следующая структура:

  • language
    • ru-RU
      • ru-RU.mod_articles_lowest.ini
      • ru-RU.mod_articles_lowest.sys.ini
  • tmpl
    • default.php
  • helper.php
  • mod_articles_lowest.php
  • mod_articles_lowest.xml

После чего, необходимо приступить к изменению файлов. В основном, это редактирование локализации, вставка и редактирование нескольких строчек helper.php, небольшая правка шаблона отображения (defaut.php) и изменение файла определения модуля (mod_articles_lowest.xml).

 

Локализация модуля непопулярных материалов

Заменяем текст "ru-RU.mod_articles_lowest.ini" на следующий:

; Joomla! Project
; Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
; Note : All ini files need to be saved as UTF-8 - No BOM
MOD_ARTICLES_LOWEST="Непопулярные/старые материалы"
MOD_LOWEST_NEWS_FIELD_CATEGORY_DESC="Выберите категории для поиска материалов. Если не выбрана ни одна категория, то поиск будет вестись по всем категориям"
MOD_LOWEST_NEWS_FIELD_COUNT_DESC="Количество отображаемых материалов (по умолчанию 5)"
MOD_LOWEST_NEWS_FIELD_COUNT_LABEL="Количество"
MOD_LOWEST_NEWS_FIELD_FEATURED_DESC="Показывать или скрывать избранные материалы"
MOD_LOWEST_NEWS_FIELD_FEATURED_LABEL="Избранные материалы"
MOD_LOWEST_NEWS_FIELD_ORDERING_DESC="Recently Added First: order the articles using their creation date<br />Recently Modified First: order the articles using their modification date<br />Recently Published First: order the articles using their publication date.<br />Recently Touched First: order the articles using their modification or creation dates."
MOD_LOWEST_NEWS_FIELD_ORDERING_LABEL="Сортировка"
MOD_LOWEST_NEWS_FIELD_MIN_HITS_DESC="Минимальное количество Хитов у материала."
MOD_LOWEST_NEWS_FIELD_MIN_HITS_LABEL="Мин. кол-во Хитов"
MOD_LOWEST_NEWS_FIELD_USER_DESC="Фильтр по автору"
MOD_LOWEST_NEWS_FIELD_USER_LABEL="Автор"
MOD_LOWEST_NEWS_VALUE_ADDED_BY_ME="Добавленные или измененные мной"
MOD_LOWEST_NEWS_VALUE_ANYONE="Все"
MOD_LOWEST_NEWS_VALUE_NOTADDED_BY_ME="Добавленные или измененные НЕ мной"
MOD_LOWEST_NEWS_VALUE_ONLY_SHOW_FEATURED="Только избранные материалы"
MOD_LOWEST_NEWS_VALUE_UNRECENT_ADDED="Давно добавленные материалы"
MOD_LOWEST_NEWS_VALUE_UNRECENT_MODIFIED="Давно измененные материалы"
MOD_LOWEST_NEWS_VALUE_UNRECENT_PUBLISHED="Давно опубликованные материалы"
MOD_LOWEST_NEWS_VALUE_UNRECENT_TOUCHED="Непопулярные материалы"
MOD_LOWEST_NEWS_VALUE_LOWEST_HIT="Малопросматриваемые материалы"
MOD_LOWEST_NEWS_XML_DESCRIPTION="Данный модуль выводит список непопулярных/старых материалов. Предназначен для поднятия просмотров таких материалов."

Заменяем текст "ru-RU.mod_articles_lowest.sys.ini" на следующий:

; Joomla! Project
; Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
; Note : All ini files need to be saved as UTF-8 - No BOM
MOD_ARTICLES_LOWEST="Непопулярные/старые материалы"
MOD_LOWEST_NEWS_XML_DESCRIPTION="Данный модуль выводит список непопулярных/старых материалов. Предназначен для поднятия просмотров таких материалов."
MOD_ARTICLES_LOWEST_LAYOUT_DEFAULT="По умолчанию"

Как видите, в основном, были заменены префиксы названий переменных (имя модуля) и их значения (сами фразы). А так же был добавлены пункт для выпадающего списка выбора порядка сортировки "MOD_LOWEST_NEWS_VALUE_LOWEST_HIT" и описание для параметра минимальной границы. На этом с локализацией все.

 

Изменяем helper.php модуля малопосещаемых материалов

В файле helper.php необходимо добавить код для сортировки на основании количества просмотров и изменить порядок общей сортировки.

Для этого после блока:

switch ($params->get('show_featured'))
{
    case '1':
        $model->setState('filter.featured', 'only');
        break;
    case '0':
        $model->setState('filter.featured', 'hide');
        break;
    default:
        $model->setState('filter.featured', 'show');
        break;
}

Вставляем:

// Фильтрация по сортировке hits
$minHits = intval($params->get('min_hits'));
$model->setState('list.filter', (int) $minHits);
$modelParams = $model->getState('params');
$modelParams->set('filter_field', 'hits');
$model->setState('params', $modelParams);

После чего заменяет в кусок:

$ordering = JArrayHelper::getValue($order_map, $params->get('ordering'), 'a.publish_up');
$dir = 'DESC';

На этот код:

$ordering = JArrayHelper::getValue($order_map, $params->get('ordering'), 'a.publish_up');
$dir = 'ASC';

На этом с файлом helper.php все.

 

Изменяем шаблон отображения (defaut.php) модуля непопулярных материалов

На самом деле все очень просто. Нужно всего лишь заменить имя класса с "latestnews" на "lowestnews".

<ul class="lowestnews<?php echo $moduleclass_sfx; ?>">

Примечание: Данные изменения вносятся для того, чтобы не смешивать общие стили.

 

Изменяем определение модуля (mod_articles_lowest.xml) малопосещаемых материалов

В файле определения модуля "mod_articles_lowest.xml" заменяем "_latest" на "_lowest" и "en-GB" на "ru-RU" для подключения файлов локализации, а так же добавляем порядок сортировки по хитам и поле для ввода нижней границы. Итоговый файл должен выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<extension
    type="module"
    version="2.5"
    client="site"
    method="upgrade">
    <name>mod_articles_lowest</name>
    <author>FBT</author>
    <creationDate>17.07.2014</creationDate>
    <copyright>Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.</copyright>
    <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
    <authorEmail></authorEmail>
    <authorUrl></authorUrl>
    <version>2.5.0</version>
    <description>MOD_LOWEST_NEWS_XML_DESCRIPTION</description>
    <files>
        <filename module="mod_articles_lowest">mod_articles_lowest.php</filename>
        <folder>tmpl</folder>
        <folder>language</folder>
        <filename>helper.php</filename>
        <filename>index.html</filename>
        <filename>mod_articles_lowest.xml</filename>
    </files>
    <languages folder="language">
        <language tag="ru-RU">ru-RU/ru-RU.mod_articles_lowest.ini</language>
        <language tag="ru-RU">ru-RU/ru-RU.mod_articles_lowest.sys.ini</language>
    </languages>
    <config>
        <fields name="params">
            <fieldset name="basic">
            <field
                    name="catid"
                    type="category"
                    extension="com_content"
                    multiple="true"
                    size="10"
                    default=""
                    label="JCATEGORY"
                    description="MOD_LOWEST_NEWS_FIELD_CATEGORY_DESC" >
                    <option value="">JOPTION_ALL_CATEGORIES</option>
                </field>
                <field
                    name="count"
                    type="text"
                    default="5"
                    label="MOD_LOWEST_NEWS_FIELD_COUNT_LABEL"
                    description="MOD_LOWEST_NEWS_FIELD_COUNT_DESC" />
 
                <field
                    name="show_featured"
                    type="list"
                    default=""
                    label="MOD_LOWEST_NEWS_FIELD_FEATURED_LABEL"
                    description="MOD_LOWEST_NEWS_FIELD_FEATURED_DESC">
                    <option
                        value="">JSHOW</option>
                    <option
                        value="0">JHIDE</option>
                    <option
                        value="1">MOD_LOWEST_NEWS_VALUE_ONLY_SHOW_FEATURED</option>
                </field>
 
                <field
                    name="ordering"
                    type="list"
                    default="published"
                    label="MOD_LOWEST_NEWS_FIELD_ORDERING_LABEL"
                    description="MOD_LOWEST_NEWS_FIELD_ORDERING_DESC">
                    <option
                        value="c_dsc">MOD_LOWEST_NEWS_VALUE_UNRECENT_ADDED</option>
                    <option
                        value="m_dsc">MOD_LOWEST_NEWS_VALUE_UNRECENT_MODIFIED</option>
                    <option
                        value="p_dsc">MOD_LOWEST_NEWS_VALUE_UNRECENT_PUBLISHED</option>
                    <option
                        value="mc_dsc">MOD_LOWEST_NEWS_VALUE_UNRECENT_TOUCHED</option>
                    <option
                        value="p_hit">MOD_LOWEST_NEWS_VALUE_LOWEST_HIT</option>
                </field>
 
                <field
                    name="min_hits"
                    type="text"
                    default="10"
                    label="MOD_LOWEST_NEWS_FIELD_MIN_HITS_LABEL"
                    description="MOD_LOWEST_NEWS_FIELD_MIN_HITS_DESC" />
 
                <field
                    name="user_id"
                    type="list"
                    default="0"
                    label="MOD_LOWEST_NEWS_FIELD_USER_LABEL"
                    description="MOD_LOWEST_NEWS_FIELD_USER_DESC">
                    <option
                        value="0">MOD_LOWEST_NEWS_VALUE_ANYONE</option>
                    <option
                        value="by_me">MOD_LOWEST_NEWS_VALUE_ADDED_BY_ME</option>
                    <option
                        value="not_me">MOD_LOWEST_NEWS_VALUE_NOTADDED_BY_ME</option>
                </field>
 
            </fieldset>
 
            <fieldset
                name="advanced">
 
                <field
                    name="layout"
                    type="modulelayout"
                    label="JFIELD_ALT_LAYOUT_LABEL"
                    description="JFIELD_ALT_MODULE_LAYOUT_DESC" />
 
                <field
                    name="moduleclass_sfx"
                    type="text"
                    label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
                    description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC" />
 
                <field
                    name="cache"
                    type="list"
                    default="1"
                    label="COM_MODULES_FIELD_CACHING_LABEL"
                    description="COM_MODULES_FIELD_CACHING_DESC">
                    <option
                        value="1">JGLOBAL_USE_GLOBAL</option>
                    <option
                        value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
                </field>
 
                <field
                    name="cache_time"
                    type="text"
                    default="900"
                    label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
                    description="COM_MODULES_FIELD_CACHE_TIME_DESC" />
                <field
                    name="cachemode"
                    type="hidden"
                    default="static">
                    <option
                        value="static"></option>
                </field>
            </fieldset>
        </fields>
    </config>
</extension>

Теперь единственное, что осталось - это заархивировать файлы в файл "mod_articles_lowest.zip". И все, модуль готов.

 

Результаты, установка и настройка модуля непопулярных материалов

Установите написанный модуль стандартным образом через менеджер расширений Joomla 2.5. Для этого откройте "Расширения" -> "Менеджер расширений". Выберите архив с модулем и нажмите установить.

После того, как модуль был удачно установлен, откройте менеджер модулей ("Расширения" -> "Менеджер модулей") и создайте модуль "Непопулярные/старые материалы" (название модуля берется из переменной MOD_ARTICLES_LOWEST файла локализации "ru-RU.mod_articles_lowest.ini").

Примечание: Возможно, во время установки будет создан выключенный модуль с названием "Непопулярные/старые материалы". 

Теперь, приступаем к настройке модуля. Задайте заголовок вида "Прежние статьи" / "Вам будет интересно" / "Советуем". Укажите все стандартные параметры, если такое требуется. И переходите к настройке параметров модуля. Укажите необходимые категории. Количество отображаемых статей. Включать ли избранные материалы.

Затем, укажите порядок сортировки "Малопросматриваемые материалы":

Непопулярные и малопосещаемые материалы - модуль Joomla 2.5 

Примечание: Не обязательно использовать указанный порядок сортировки. Вы можете использовать другой порядок сортировки, в данном случае каких-то ограничений нет.

Выставьте минимальную границу (например, 10 - этого вполне хватит для часто обновляемого небольшого сайта, чтобы отделить созданные статьи от малопопулярных):

Непопулярные и малопосещаемые материалы - модуль Joomla 2.5 

Нажмите кнопку сохранить. И все, модуль настроен и готов. Все ваши малопосещаемые и непопулярные материалы будут отображаться в отдельном блоке, позволяя не только привлекать внимание посетителей, но и динамически переносить вес сайта на эти страницы.

Сам модуль вы можете скачать тут: 

mod_articles_lowest.zip 

Социальные сети

☕ Понравился обзор? Поделитесь с друзьями!

Добавить комментарий / отзыв
Комментарий - это вежливое и наполненное смыслом сообщение (правила).



* Нажимая на кнопку "Отправить", Вы соглашаетесь с политикой конфиденциальности.
Социальные сети
Программы (Freeware, OpenSource...)