Ответить
1) Чекбокс для включения/отключения.
2) Количество отслеживаемых материалов (сейчас 10).
Ну и код для добавления ссылки на RSS - например, {RSS_LINK}.
PS. Мне админку самому править не захотелось.
1
RSS для каталога файлов
Отправлено: 21 Feb 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-ридеров).
Edit by author 22 Feb 2011
Отправлено: 22 Feb 2011#2
Wasja, спасибо
Я сейчас очень заболел, по этому редко появляюсь тут. Но как выздоровлю, надо будет твои рсски подобавлять в Фапос как стандартные фишки. И может настройку к ним какуюто прикрутить


Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 22 Feb 2011#3
Drunya пишет:
И может настройку к ним какуюто прикрутить
2) Количество отслеживаемых материалов (сейчас 10).
Ну и код для добавления ссылки на RSS - например, {RSS_LINK}.
PS. Мне админку самому править не захотелось.

Отправлено: 3 Mar 2011#4
ну по поводу RSS вроде как в какой то теме писалось и я вроде описывал что необходимо для RSS каналов сделать в админке 
если нет то можно попробовать еще раз написать.
по большому счету необходимо:
Возможность создать RSS ленту для любого модуля (по сути включен или отключен RSS канал)
Возможность создания подборок RSS каналов по своему сайту (допустим один канал мне нужен что бы там были новости и статьи, другой канал что бы форум и фотоальбом и еще один канал который будет общим для всего сайта)
Возможность выбрать количество показываемых новостей для каждого канала RSS
совсем по хорошему еще можно добавить возможность настройки отображения вида новости в RSS. Так например должа или нет попадать какая то информация из полей. Как и где отображается фотка и так далее.

если нет то можно попробовать еще раз написать.
по большому счету необходимо:
Возможность создать RSS ленту для любого модуля (по сути включен или отключен RSS канал)
Возможность создания подборок RSS каналов по своему сайту (допустим один канал мне нужен что бы там были новости и статьи, другой канал что бы форум и фотоальбом и еще один канал который будет общим для всего сайта)
Возможность выбрать количество показываемых новостей для каждого канала RSS
совсем по хорошему еще можно добавить возможность настройки отображения вида новости в RSS. Так например должа или нет попадать какая то информация из полей. Как и где отображается фотка и так далее.
Edit by author 3 Mar 2011
Все мое имхо...
------
Не флуди и не да зафлудим будешь!
------
Не флуди и не да зафлудим будешь!
Отправлено: 3 Mar 2011#5
Ater, все записано что ты писал раньше. Я все помню
Думаю в 1.0 будет все о чем вы говорите кроме

Думаю в 1.0 будет все о чем вы говорите кроме
Ater пишет:
Возможность создания подборок RSS каналов по своему сайту (допустим один канал мне нужен что бы там были новости и статьи, другой канал что бы форум и фотоальбом и еще один канал который будет общим для всего сайта)
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
1
Сейчас online: 12. Зарегистрированных: 0. Гостей: 12.