Ответить
1) Чекбокс для включения/отключения.
2) Количество отслеживаемых материалов (сейчас 10).
Ну и код для добавления ссылки на RSS - например, {RSS_LINK}.
PS. Мне админку самому править не захотелось.
1
RSS для каталога файлов
Отправлено: 21 Фев 2011#1
Для поддержки RSS необходимо добавить в файл "\modules\loads\index.php" в конец файла (но перед "}?>" ) следующую функцию
Дополнительно необходимо добавить в шаблон "loads\main.html" перед строкой "</head>" ссылку на RSS
Путь к RSS: "/loads/rss".
Добавлено 2011.02.22 12-03
Подкорректировал генерацию ссылок - теперь дополнительно используется имя домена (необходимо для работы офлайн RSS-ридеров).
Code:
/**
* RSS for loads (c) Wasja
*/
function rss($id_forum = null) {
$sitename = '/';
if (!empty($_SERVER['SERVER_NAME'])) {
$sitename = 'http://' . $_SERVER['SERVER_NAME'] . '/';
}
$html = '<?xml version="1.0" encoding="UTF-8"?>';
$html .= '<rss version="2.0">';
$html .= '<channel>';
$html .= '<title>' . h(Config::read('title', 'loads')) . '</title>';
$html .= '<link>' . $sitename . 'loads/</link>';
$html .= '<description>' . h(Config::read('description', 'loads')) . '</description>';
$html .= '<pubDate>' . date('r') . '</pubDate>';
$html .= '<generator>RSS Generator for Fapos (c) Wasja</generator>';
$last_added_loads = $this->DB->select('loads', DB_ALL, array(
'joins' => array(
array(
'table' => 'loads_sections',
'type' => 'LEFT',
'alias' => 'b',
'cond' => 'a.`category_id` = b.`id`',
),
array(
'table' => 'loads_sections',
'type' => 'LEFT',
'alias' => 'c',
'cond' => 'b.`section_id` = c.`id`',
),
array(
'table' => 'users',
'type' => 'LEFT',
'alias' => 'd',
'cond' => 'd.`id` = a.`author_id`',
),
),
'fields' => array('`a`.*', '`b`.`title` as category_name', '`b`.`section_id` as section_id',
'`c`.`title` as section_name', '`d`.`name` AS author'),
'alias' => 'a',
'order' => '`a`.`date` DESC',
'limit' => 10)
);
if (!empty($last_added_loads)) {
$html .= '<lastBuildDate>' . date('r', strtotime($last_added_loads[0]['last_post'])) . '</lastBuildDate>';
foreach ($last_added_loads as $last_load) {
$html .= '<item>';
$html .= '<link>' . $sitename . 'loads/view/' . $last_load['id'] . '</link>';
$html .= '<pubDate>' . date('r', strtotime($last_load['date'])) . '</pubDate>';
$html .= '<title>' . $last_load['title'] . '</title>';
$html .= '<description><![CDATA[Категория: <a href="' . $sitename . 'loads/section/' . $last_load['section_id'] . '">' . $last_load['section_name'] . '</a> - <a href="' .
$sitename . 'loads/category/' . $last_load['category_id'] . '">' . $last_load['category_name'] . '</a><br />';
if (!empty($last_load['description'])) {
$html .= 'Описание: ' . $last_load['description'] . '<br />';
}
$html .= 'Автор: ' . $last_load['author'] . '<br />';
$html .= 'Количество скачиваний: ' . $last_load['downloads'] . ']]></description>';
$html .= '<category>' . $last_load['section_name'] . ' - ' . $last_load['category_name'] . '</category>';
$html .= '<guid>' . $sitename . 'loads/view/' . $last_load['id'] . '</guid>';
$html .= '</item>';
}
}
$html .= '</channel>';
$html .= '</rss>';
echo $html;
}
* RSS for loads (c) Wasja
*/
function rss($id_forum = null) {
$sitename = '/';
if (!empty($_SERVER['SERVER_NAME'])) {
$sitename = 'http://' . $_SERVER['SERVER_NAME'] . '/';
}
$html = '<?xml version="1.0" encoding="UTF-8"?>';
$html .= '<rss version="2.0">';
$html .= '<channel>';
$html .= '<title>' . h(Config::read('title', 'loads')) . '</title>';
$html .= '<link>' . $sitename . 'loads/</link>';
$html .= '<description>' . h(Config::read('description', 'loads')) . '</description>';
$html .= '<pubDate>' . date('r') . '</pubDate>';
$html .= '<generator>RSS Generator for Fapos (c) Wasja</generator>';
$last_added_loads = $this->DB->select('loads', DB_ALL, array(
'joins' => array(
array(
'table' => 'loads_sections',
'type' => 'LEFT',
'alias' => 'b',
'cond' => 'a.`category_id` = b.`id`',
),
array(
'table' => 'loads_sections',
'type' => 'LEFT',
'alias' => 'c',
'cond' => 'b.`section_id` = c.`id`',
),
array(
'table' => 'users',
'type' => 'LEFT',
'alias' => 'd',
'cond' => 'd.`id` = a.`author_id`',
),
),
'fields' => array('`a`.*', '`b`.`title` as category_name', '`b`.`section_id` as section_id',
'`c`.`title` as section_name', '`d`.`name` AS author'),
'alias' => 'a',
'order' => '`a`.`date` DESC',
'limit' => 10)
);
if (!empty($last_added_loads)) {
$html .= '<lastBuildDate>' . date('r', strtotime($last_added_loads[0]['last_post'])) . '</lastBuildDate>';
foreach ($last_added_loads as $last_load) {
$html .= '<item>';
$html .= '<link>' . $sitename . 'loads/view/' . $last_load['id'] . '</link>';
$html .= '<pubDate>' . date('r', strtotime($last_load['date'])) . '</pubDate>';
$html .= '<title>' . $last_load['title'] . '</title>';
$html .= '<description><![CDATA[Категория: <a href="' . $sitename . 'loads/section/' . $last_load['section_id'] . '">' . $last_load['section_name'] . '</a> - <a href="' .
$sitename . 'loads/category/' . $last_load['category_id'] . '">' . $last_load['category_name'] . '</a><br />';
if (!empty($last_load['description'])) {
$html .= 'Описание: ' . $last_load['description'] . '<br />';
}
$html .= 'Автор: ' . $last_load['author'] . '<br />';
$html .= 'Количество скачиваний: ' . $last_load['downloads'] . ']]></description>';
$html .= '<category>' . $last_load['section_name'] . ' - ' . $last_load['category_name'] . '</category>';
$html .= '<guid>' . $sitename . 'loads/view/' . $last_load['id'] . '</guid>';
$html .= '</item>';
}
}
$html .= '</channel>';
$html .= '</rss>';
echo $html;
}
Code:
<link href="/loads/rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
Путь к RSS: "/loads/rss".
Добавлено 2011.02.22 12-03
Подкорректировал генерацию ссылок - теперь дополнительно используется имя домена (необходимо для работы офлайн RSS-ридеров).
Отредактировано автором 22 Фев 2011
Отправлено: 22 Фев 2011#2
Wasja, спасибо Я сейчас очень заболел, по этому редко появляюсь тут. Но как выздоровлю, надо будет твои рсски подобавлять в Фапос как стандартные фишки. И может настройку к ним какуюто прикрутить
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 22 Фев 2011#3
Drunya пишет:
И может настройку к ним какуюто прикрутить
2) Количество отслеживаемых материалов (сейчас 10).
Ну и код для добавления ссылки на RSS - например, {RSS_LINK}.
PS. Мне админку самому править не захотелось.
Отправлено: 3 Мар 2011#4
ну по поводу RSS вроде как в какой то теме писалось и я вроде описывал что необходимо для RSS каналов сделать в админке
если нет то можно попробовать еще раз написать.
по большому счету необходимо:
Возможность создать RSS ленту для любого модуля (по сути включен или отключен RSS канал)
Возможность создания подборок RSS каналов по своему сайту (допустим один канал мне нужен что бы там были новости и статьи, другой канал что бы форум и фотоальбом и еще один канал который будет общим для всего сайта)
Возможность выбрать количество показываемых новостей для каждого канала RSS
совсем по хорошему еще можно добавить возможность настройки отображения вида новости в RSS. Так например должа или нет попадать какая то информация из полей. Как и где отображается фотка и так далее.
если нет то можно попробовать еще раз написать.
по большому счету необходимо:
Возможность создать RSS ленту для любого модуля (по сути включен или отключен RSS канал)
Возможность создания подборок RSS каналов по своему сайту (допустим один канал мне нужен что бы там были новости и статьи, другой канал что бы форум и фотоальбом и еще один канал который будет общим для всего сайта)
Возможность выбрать количество показываемых новостей для каждого канала RSS
совсем по хорошему еще можно добавить возможность настройки отображения вида новости в RSS. Так например должа или нет попадать какая то информация из полей. Как и где отображается фотка и так далее.
Отредактировано автором 3 Мар 2011
Все мое имхо...
------
Не флуди и не да зафлудим будешь!
------
Не флуди и не да зафлудим будешь!
Отправлено: 3 Мар 2011#5
Ater, все записано что ты писал раньше. Я все помню
Думаю в 1.0 будет все о чем вы говорите кроме
Думаю в 1.0 будет все о чем вы говорите кроме
Ater пишет:
Возможность создания подборок RSS каналов по своему сайту (допустим один канал мне нужен что бы там были новости и статьи, другой канал что бы форум и фотоальбом и еще один канал который будет общим для всего сайта)
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
1
Зарегистрируйтесь или авторизуйтесь что бы писать
Сейчас online: 153. Зарегистрированных: 0. Гостей: 153.