Полная документация по CMS Drupal (создание сайта, локализация)

Установка и настройка сайта, а также системного окружения. Исключая вопросы программирования новых модулей и тем.

См. документацию на английском: http://drupal.org/node/258

Вывод в блоке определенного контента из базы данных sql.

.:
Блока на примере вывод данных из новостной ленты.
:
  • Создаёте блок
  • В настройках указываете показывать везде кроме admin/* --в админке он вам не нужен
  • Вставляете следующий код (указав фильтр ввода - php):

<?php
   
// Лимит вывода статей на странице
   
$limit 30;

   
// Выбранный типы материала
   
$type 'page';
   
   
// тут будем всё хранить
   
$output  '';

// Формируем запрос к базе
// иперемешиваем занчения
   
$query " SELECT node_revisions.nid, node_revisions.title, " .
               
"node_revisions.teaser, users.name, node_type.name " .
               
"AS typename FROM node_revisions, node, users, node_type " .
               
"WHERE (node_revisions.nid = node.nid) " .
               
"AND (node.status = 1)" .
               
"AND (node.uid = users.uid)" .
               
"AND (node_type.type = node.type) AND (node_type.type ='%s') ORDER BY RAND() LIMIT %d";
   
// Спрашиваем у БД то, что сформировали
   
$result db_query($query$type$limit);

   
// Проходимся циклом по результату
   // На каждую найденную строку формируем строку вывода и прибавляем её к общему результату ($output)
     
while ($arr db_fetch_array($result)) {
         
         
// Заголовок
         
$output .= '<h4 class=".unnamed7">' l($arr['title'], 'node/'$arr[nid]) .'</h4>';


   }

   
// Освобождаем память от переменной $result
   
mysql_free_result($result);

      print 
$output;

?>
 
 лучше добавить возможность кэширования в данный скрипт:
 
 
<?php
// Проверяем, существует ли кеш если существует, выводим его
// Если не существует создаём
// my_cache -- название придумманое для кеша
// $block['content'] в функции кеширования заменить на собствевенно сам контент
// 10 --Время кеширования в минутах

   
if ($cached cache_get("my_cache"'cache_page')) {
     
$block['subject'] = t('Title');
     
$block['content'] = $cached->data;

      return 
$block;
    } else {
         
cache_set("my_cache"'cache_page'$block['content'], time() + (60 10));
      }

?>