From 1a59df225584f829019e53a1f38887550f6ba82d Mon Sep 17 00:00:00 2001 From: SVarlamov Date: Sat, 11 Jun 2016 12:59:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=9C=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=20RSS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 ++++ class.rss.php | 165 +++++++++++++++++++++++++++++++++++++++++ index.php | 4 + lang/index.php | 4 + lang/ru.txt | 36 +++++++++ module.php | 84 +++++++++++++++++++++ sql.php | 55 ++++++++++++++ templates/feed.gif | Bin 0 -> 952 bytes templates/index.php | 4 + templates/rss_edit.tpl | 108 +++++++++++++++++++++++++++ templates/rss_list.tpl | 107 ++++++++++++++++++++++++++ 11 files changed, 580 insertions(+) create mode 100644 README.md create mode 100644 class.rss.php create mode 100644 index.php create mode 100644 lang/index.php create mode 100644 lang/ru.txt create mode 100644 module.php create mode 100644 sql.php create mode 100644 templates/feed.gif create mode 100644 templates/index.php create mode 100644 templates/rss_edit.tpl create mode 100644 templates/rss_list.tpl diff --git a/README.md b/README.md new file mode 100644 index 0000000..7e51b93 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +## rss + +# Модуль RSS v1.2 + + +## Данный модуль предзназначен для организации RSS потоков на вашем сайте. + + +## Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку rss со всем ее содержимым внутри! + +## Changelog: + +15.01.2013 - версия 1.2 \ No newline at end of file diff --git a/class.rss.php b/class.rss.php new file mode 100644 index 0000000..c471046 --- /dev/null +++ b/class.rss.php @@ -0,0 +1,165 @@ +config_load($lang_file); + + $channels = array(); + $sql = $AVE_DB->Query("SELECT * FROM " . PREFIX . "_module_rss"); + while ($channel = $sql->FetchRow()) + { + $channel->tag = '[mod_rss:' . $channel->id . ']'; + array_push($channels, $channel); + } + + $AVE_Template->assign('channels', $channels); + $AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'rss_list.tpl')); + } + + /** + * Создание RSS - ленты + * + */ + public static function rssNew() + { + global $AVE_DB; + + $AVE_DB->Query(" + INSERT + INTO " . PREFIX . "_module_rss + SET + id = '', + rss_site_name = '" . $_POST['new_rss'] . "', + rss_site_description = '', + rss_site_url = '" . addslashes(get_home_link()) . "', + rss_rubric_id = 1, + rss_title_id = 0, + rss_description_id = 0, + rss_item_on_page = 10, + rss_description_lenght = 200 + "); + + $iid = $AVE_DB->InsertId(); + + header('Location:index.php?do=modules&action=modedit&mod=rss&moduleaction=edit&cp=' . SESSION . '&id=' . $iid); + exit; + } + + /** + * Редактирование RSS - ленты + * + * @param string $tpl_dir путь к папке с шаблонами + * @param string $lang_file путь к языковому файлу + */ + public static function rssEdit($tpl_dir, $lang_file) + { + global $AVE_DB, $AVE_Template; + + $AVE_Template->config_load($lang_file); + + $channel = $AVE_DB->Query(" + SELECT * + FROM " . PREFIX . "_module_rss + WHERE id = '" . (int)($_REQUEST['id']) . "' + ")->FetchRow(); + + if (isset($_REQUEST['rubric_id']) && is_numeric($_REQUEST['rubric_id'])) + { + $channel->rss_rubric_id = $_REQUEST['rubric_id']; + } + + $rubrics = array(); + $sql_rubrics = $AVE_DB->Query(" + SELECT + Id, + rubric_title + FROM " . PREFIX . "_rubrics + "); + while ($res = $sql_rubrics->FetchRow()) + { + array_push($rubrics, $res); + } + + $fields = array(); + $sql_fields = $AVE_DB->Query("SELECT + Id, + rubric_id, + rubric_field_title + FROM " . PREFIX . "_rubric_fields + WHERE rubric_id = '" . $channel->rss_rubric_id . "' + "); + while ($res = $sql_fields->FetchRow()) + { + array_push($fields,$res); + } + + $AVE_Template->assign('channel', $channel); + $AVE_Template->assign('rubrics', $rubrics); + $AVE_Template->assign('fields', $fields); + $AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'rss_edit.tpl')); + } + + /** + * Запись настроек + * + */ + public static function rssSave() + { + global $AVE_DB; + + $AVE_DB->Query(" + UPDATE " . PREFIX . "_module_rss + SET + rss_site_name = '" . $_POST['rss_site_name'] . "', + rss_site_description = '" . $_POST['site_descr'] . "', + rss_site_url = '" . $_POST['rss_site_url'] . "', + rss_rubric_id = '" . (int)$_POST['rss_rubric_id'] . "', + rss_title_id = '" . (int)$_POST['field_title'] . "', + rss_description_id = '" . (int)$_POST['field_descr'] . "', + rss_item_on_page = '" . (int)$_POST['rss_item_on_page'] . "', + rss_description_lenght = '" . (int)$_POST['rss_description_lenght'] . "' + WHERE + id = '" . (int)$_POST['id'] . "' + "); + + header('Location:index.php?do=modules&action=modedit&mod=rss&moduleaction=edit&cp=' . SESSION . '&id=' . (int)$_POST['id']); + exit; + } + + /** + * Удаление RSS - ленты + * + */ + public static function rssDelete() + { + global $AVE_DB; + + $AVE_DB->Query(" + DELETE + FROM " . PREFIX . "_module_rss + WHERE id = '" . (int)$_REQUEST['id'] . "' + "); + + header('Location:index.php?do=modules&action=modedit&mod=rss&moduleaction=1&cp=' . SESSION); + exit; + } +} + +?> \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..4ca25aa --- /dev/null +++ b/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/lang/index.php b/lang/index.php new file mode 100644 index 0000000..4ca25aa --- /dev/null +++ b/lang/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/lang/ru.txt b/lang/ru.txt new file mode 100644 index 0000000..8ebf623 --- /dev/null +++ b/lang/ru.txt @@ -0,0 +1,36 @@ +RSS_ENTER_NAME = "Пожалуйста, укажите название RSS канала" +RSS_BUTTON_ADD = "Добавить канал" +RSS_BUTTON_SAVE = "Сохранить изменения" +RSS_LIST = "RSS каналы" +RSS_LIST_TIP = "В данном разделе приведен список всех RSS каналов в системе." +RSS_NAME = "Название канала" +RSS_TAG = "Системный тег" +RSS_CHANNEL_NAME = "Название канала" +RSS_ACTIONS = "Действия" +RSS_ID = "Id" +RSS_EDIT_HINT = "Редактировать данный канал" +RSS_DELETE_HINT = "Удалить данный канал" +RSS_DELETE_CONF = "Вы уверены, что хотите удалить данный канал?" +RSS_NO_ITEMS = "В настоящий момент не существует ни одного RSS канала" +RSS_ADD = "Добавить новый RSS канал" +RSS_TITLE = "Список RSS каналов" +RSS_EDIT = "Редактирование канала" +RSS_EDIT_TIP = "В данном разделе вы можете отредактировать основные параметры RSS канала" +RSS_RETURN = "Вернуться к списку" +RSS_ITEM_NAME = "Название канала:" +RSS_LIMIT_NAME = "Количество на странице:" +RSS_RUBS_NAME = "Рубрика-источник:" +RSS_CHANNEL_TITLE = "Поле для заголовка:" +RSS_CHANNEL_DESC = "Поле для описания:" +RSS_CHANNEL_IMAGE = "Поле для изображения:" +RSS_CHANNEL_URL = "Адрес сайта" +RSS_CHANNEL_DESCR = "Описание канала:" +RSS_DESCR_LIMIT = "Длина сообщений" +RSS_ONPAGE_LIMIT = "Сообщений в потоке" +RSS_SITE_NAME_NO = "Не указан" +RSS_TITLE_EDIT = "Настройки RSS канала" +RSS_EDIT_TIP_RUBRIC = "Выберите рубрику источник, т.е. рубрику, из который у вас будут выбираться документы.

ВАЖНО!!
Если вы заполните все поля, а потом нажмете на выбор рубрики, все введенные значения очистяться!" +RSS_EDIT_TIP_NAME = "Название канала пишите НОРМАЛЬНО и ПРАВИЛЬНО, т.к. это название будет подставлено при выводе потока." +RSS_EDIT_TIP_ADD = "Адрес сайта вписывайте БЕЗ начального http://

Имейте ввиду адрес также подставляется в поток." +RSS_EDIT_TIP_TITLE = "Описание канала подставляется в поток. Пишите правильно и четко.

ВАЖНО!!!
Запрещается использовать в тексте HTML теги!!!" +RSS_SYMBOLS = "символов" \ No newline at end of file diff --git a/module.php b/module.php new file mode 100644 index 0000000..aa1bc6e --- /dev/null +++ b/module.php @@ -0,0 +1,84 @@ +"; +} + +/** + * Обработка тега модуля RSS + * + * @param int $rss_id идентификатор RSS-ленты + */ +function mod_rss($rss_id) +{ + $rss_id = preg_replace('/\D/', '', $rss_id); + + if (is_numeric($rss_id)) + { + echo ''; + } +} + +if (isset($_REQUEST['module']) && $_REQUEST['module'] == 'rss' + && isset($_REQUEST['do']) && $_REQUEST['do'] == 'show') +{ + header('Location:rss/index.php?id=' . $_GET['id']); +} + +if (defined('ACP') && !empty($_REQUEST['moduleaction'])) +{ + require(BASE_DIR . '/modules/rss/class.rss.php'); + + switch ($_REQUEST['moduleaction']) + { + case '1': + $tpl_dir = BASE_DIR . '/modules/rss/templates/'; + $lang_file = BASE_DIR . '/modules/rss/lang/' . $_SESSION['user_language'] . '.txt'; + Rss::rssList($tpl_dir, $lang_file); + break; + + case 'add': + Rss::rssNew(); + break; + + case 'del': + Rss::rssDelete(); + break; + + case 'edit': + $tpl_dir = BASE_DIR . '/modules/rss/templates/'; + $lang_file = BASE_DIR . '/modules/rss/lang/' . $_SESSION['user_language'] . '.txt'; + Rss::rssEdit($tpl_dir, $lang_file); + break; + + case 'saveedit': + Rss::rssSave(); + break; + } +} + +?> \ No newline at end of file diff --git a/sql.php b/sql.php new file mode 100644 index 0000000..53b9786 --- /dev/null +++ b/sql.php @@ -0,0 +1,55 @@ + \ No newline at end of file diff --git a/templates/feed.gif b/templates/feed.gif new file mode 100644 index 0000000000000000000000000000000000000000..7855cbf52c8bc8f05556d47528a538fd89518cd2 GIT binary patch literal 952 zcmZ?wbhEHbT`Tr ztoL?S@|$+Mcdf=ByG%a!n|+&N{$qy4ui2Kr=UTn&b$nK3{G!s}|NsAgKRo++eAc(w zF5jnHe3@kXy20@ClC&R3XZ?M3^WUduzt_cm?lb$?WAo$4tZ%C`e(fmx|MTki-<%M z$3cS@jy5H?J|BlkE+>U}d}bvSd~#ttEoxZsM}tYVON2pm*^~rDWp)AOkbi6}4AuZu C9oh&0 literal 0 HcmV?d00001 diff --git a/templates/index.php b/templates/index.php new file mode 100644 index 0000000..4ca25aa --- /dev/null +++ b/templates/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/templates/rss_edit.tpl b/templates/rss_edit.tpl new file mode 100644 index 0000000..752ec15 --- /dev/null +++ b/templates/rss_edit.tpl @@ -0,0 +1,108 @@ + + +
{#RSS_EDIT#}
+ +
+
+ {#RSS_EDIT_TIP#} +
+
+ + + + +
+
{#RSS_TITLE_EDIT#}
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{#RSS_RUBS_NAME#} + +
{#RSS_ITEM_NAME#}
{#RSS_CHANNEL_URL#}:
{#RSS_CHANNEL_DESCR#}
{#RSS_CHANNEL_TITLE#} + +
{#RSS_CHANNEL_DESC#} + +
{#RSS_LIMIT_NAME#}
{#RSS_DESCR_LIMIT#}: {#RSS_SYMBOLS#}
+
+
\ No newline at end of file diff --git a/templates/rss_list.tpl b/templates/rss_list.tpl new file mode 100644 index 0000000..cf8039d --- /dev/null +++ b/templates/rss_list.tpl @@ -0,0 +1,107 @@ + + +
{#RSS_LIST#}
+ +
+
+ {#RSS_LIST_TIP#} +
+
+ + + + + + + +
+ + +
+
+ + + + + + + + + + + + + + + {if $channels} + {foreach from=$channels item=channel} + + + + + + + + + + + {/foreach} + {else} + + + + {/if} + +
{#RSS_ID#}{#RSS_CHANNEL_NAME#}{#RSS_ONPAGE_LIMIT#}{#RSS_DESCR_LIMIT#}{#RSS_CHANNEL_URL#}{#RSS_TAG#}{#RSS_ACTIONS#}
{$channel->id}{$channel->rss_site_name|escape}{$channel->rss_item_on_page}{$channel->rss_description_lenght} {#RSS_SYMBOLS#}{if $channel->rss_site_url == ''}{#RSS_SITE_NAME_NO#}{else}{$channel->rss_site_url}{/if} + + + +
+
    +
  • {#RSS_NO_ITEMS#}
  • +
+
+
+ + +
+
+
\ No newline at end of file