Вопрос о стандартном модуле "drupal". Мне нужно создать каталог сайтов, зарегистрированных посредством xml-rpc на сайте-сервере. Так, как это сделано на drupal.ru: http://drupal.ru/directory
Как вывести список сайтов?
Вопрос о стандартном модуле "drupal". Мне нужно создать каталог сайтов, зарегистрированных посредством xml-rpc на сайте-сервере. Так, как это сделано на drupal.ru: http://drupal.ru/directory
Как вывести список сайтов?
Комментарии
В смысле snap shots или построения списка?
Просто список, как на друпал.ру
Примерно так:
<?php
$out_a = array();
$sites = db_query('SELECT * FROM {client}');
while($site = db_fetch_object($sites)) {
if ( (strpos($site->link, 'http://') === false) && (strpos($site->link, 'https://' ) === false) ) { continue; }
$site_line = "check_plain($site->link). check_plain($site->name). check_plain($site->slogan). strip_tags($site->mission) ....
";
$out_a[] = $site_line;
}
if (count($out_a)) {
echo ' implode('', $out_a)';
}
else {
echo "Облом";
}
?>
Спасибо, буду пробовать.
Если хотите избавиться от дублирования записей при выводе, лучше так
<?php
$out_a = array();
$sites = db_query('SELECT * FROM {client}');
// sas 28_05_07
$sites_link_unique = array();
$sites_name_unique = array();
// sas 28_05_07
while($site = db_fetch_object($sites)) {
// check for bad urls (because url must include 'http://' or 'https://' prefix)
$site_test .= check_plain($site->name);
if ( (strpos($site->link, 'http://') === false) &&
(strpos($site->link, 'https://' ) === false) ) { continue; }
if (
(strpos($site->link, 'http://localhost' ) !== false) ||
// sas 28_05_07 check site for unique site->name
(strpos($site->link, '.' ) === false) ||
(array_key_exists(strtoupper(check_plain($site->name)),$sites_name_unique)) ||
(array_key_exists(strtoupper(check_plain($site->link)),$sites_link_unique))
)
{ continue; }
else
{
$sites_name_unique[strtoupper(check_plain($site->name))]='';
$sites_link_unique[strtoupper(check_plain($site->link))]='';
}
// sas 28_05_07 check site for unique in array
$site_line = "
"\">". check_plain($site->name). ""
. ' (link). '">'.
check_plain($site->link). ')
'
. ''. check_plain($site->slogan). '
';
$site_line .= strip_tags($site->mission). '
';
$out_a[] = $site_line;
}
if (count($out_a)) {
shuffle($out_a);
echo '
'. implode('', $out_a) . '
';
}
else {
echo '
Статистика в настоящее время не доступна.
';
}
?>
Спасибо! Меня все-таки удивляет, что функция сайта-сервера в Друпале реализована, а как выводить список сайтов-клиентов надо придумывать самому.
Для sas: А как происходит обновление информации? Почему-то у меня инфо о некоторых сайтах не обновляется.
Этот скрипт выводит инфу например в блоке, как часто будете вызывать эту страницу с блоком так часто и инфа обновляется , можно "повеситиь" на cron, вообщем ситуаций смого, напишите как конкретно часто и по какому событию надо ?!
Вот здесь я создал статическую страницу: http://philosophystorm.org/page/709
И у одного сайта инфо не обновляется ("Новый сайт"), хотя фактически название, слоган и миссия уже изменились.
И у одного сайта инфо не обновляется ("Новый сайт"), хотя фактически название, слоган и миссия уже изменились.
1) Механизм оповещения настраивается на сайте "доноре" через core возможность Drupal (подробно написано на странице "каталог сайтов" внизу ).
2) На сайте "приемнике" через xmlrpc.php информация записывается в таблицу "client";
3) Script читает ее из таблицы, каждый раз при вызове в вашем случае адреса http://philosophystorm.org/page/709, конечно если она у вас не кеширована ( не могу знать)
P.S. проверьте информацию в таблице client, тогда все станет понятно.