LINUXPORTAL.RU  |   Живое общение LinuxPortal.Ru   |    Ленты событий        |   ФОРУМЫ  |   БИБЛИОТЕКА  |   ССЫЛКИ  |   НОВОСТИ  |   БЛОГИ АДМИНОВ

Участники   Поиск   F.A.Q.    Регистрация    Вход   Начало
Начало » Для администраторов и программистов » Копилка » Осваиваю Drupal Views.
Показать: Сегодняшние сообщения  :: Показать голосования :: Навигатор по сообщениям
Отправить по e-mail 
Переключение в режим просмотра в виде древовидного списка сообщений и ответов Создать новую тему Отправить ответ
Осваиваю Drupal Views. Срд, 26 Май 2010 11:30
San АНДРЕЕВ в настоящее время не в онлайне San АНДРЕЕВ  RUSSIAN FEDERATION
Сообщений: 8512
Зарегистрирован: Июнь 2002
Географическое положение: Санкт-Петербу...

administrator · partner

От: *81.arpa.se.spb.ru
В своё время озаботился получением опыта в LAMP-разработке (P=PHP, Perl) и в нынешнее кризисное время это помогло мне не остаться без работы. Несмотря на то, что мне нравится разрабатывать информационные системы и писать клиент-серверное ПО на C в GNU/Linux (а в перспективе хочется вообще в ядро "погрузиться"), сейчас "для поддержки штанов" приходится лабать сайты в контексте Drupal. С самим программированием проблем, разумеется, не возникает, но в рамках этой системы хочется обходиться без программирования, средствами самой этой системы.

И вот здесь у меня возникла проблема. Есть довольно распространённая (как я понял, погуглив) задача выдачи rss-потоков с сайта по типам материалов и однажды эта задача поставилась и передо мной. Опять же, погуглив и почитав литературу, пришёл к выводу, что обычно она решается через использование типа дисплея Feed во Views. Не мудрствуя лукаво, я так и сделал: настроил фильтры, сортировку, указал путь (скажем, "/typerss.xml") и т.д. В результате, в Live Preview внизу страницы с моим view дисплей Feed нужные мне данные, как раз по типу, показывает. Однако когда пытаюсь посмотреть фид по урлу (http://сайт/typerss.xml), то получаю "Запрашиваемая страница не найдена". Тут я завис. Продолжил полировать гугл и литературу, но безрезультатно.

В конечном счёте, отпущенное на реализацию время стало уже поджимать, поэтому пришлось решать "ломиком". Поскольку у меня типы содержимого регистрируются моими же модулями, то счёл логичным добавить в эти же модули как экспорт пути, так и callback для этого пути. Разместил в hook_menu() среди прочего такое:

<?php
$items
['typerss.xml'] = array (
    
'title' => t('RSS-поток новостей type'),
    
'type' => MENU_CALLBACK,
    
'page callback' => 'typerss_page',
    
'access callback' => TRUE
);
?>


в callback такое:

<?php
$dbResult 
db_query("SELECT nid FROM node WHERE type=\"type\" AND status=1  AND promote=1
                      ORDER BY created DESC LIMIT 20"
);
if (
mysql_num_rows($dbResult)) {
    
$nids = array();
    while (
$data db_fetch_array($dbResult)) {
        
$nids[] = $data['nid'];
    }
}
node_feed($nids);
?>


Однако ничего не изменилось. Пробовал и обновлять admin/build/modules, и переустанавливать модуль с полным удалением, и добавлять в module.install вызов menu_rebuild() - всё бесполезно, страница не найдена и всё, новый путь не добавляется.

Плюнул, залез в мускл и руками сказал такое:
INSERT INTO menu_router VALUES ("typerss.xml","","",1,"a:0:{}","typerss_page","a:0:{}",1,1,"","typerss.xml","RSS-поток новостей type","t","",4,"","","",0,"");

После этого сразу заработало как надо. Если кто подскажет как это сделать изящнее, без программирования и лазания в БД руками - буду признателен.

P.S. Моя тема о том же на drupal.ru висит без ответа.
P.P.S. Прошу не обсуждать тут кризис, его последствия и кто как выкручивается. Пожалуйста, только по существу.
  Переключение в режим просмотра в виде древовидного списка сообщений и ответов Создать новую тему Отправить ответ
Предыдущая тема:Не получается извлечь раздел из образа целого диска
Следующая тема:Средства и способы проверки производительности Linux-систем
Переход к форуму:
  

-=] Вернуться вверх [=-
[ Сформировать XML ] [ RSS ]

Текущее время: Чтв Сен 9 03:50:07 MSD 2010
.:: Обратная связь :: Начало ::.

При поддержке: FUDforum 3.0.0.
Copyright © 2001-2009 FUDforum Bulletin Board Software

©"Linuxportal.Ru". Материалы сайта можно использовать свободно при условии сохранения этой свободы при дальнейшем распространении, если явно не указано иное.

Дизайн и программирование: ,
Поставьте нашу кнопку: Linux Portal.ru ::: Линукс Портал.ру