Вверх

Блог
RSS лента

Создание раздела новостей для Drupal

Хочу поделиться опытом создания раздела новостей.

Делать было нечего, захотелось сделать свои новости. Пример www.progdesign.ru

Итак,

1. Установил модуль CCK, в нем создал тип контента 'content_news'.
2. Для этого типа добавил поля:
field_text_value Краткое описание
field_content_value Текст
field_date_value Дата
Ну и естественно везде вставил текстовые пояснения, чтобы потом не думать где здесь что.

Если кто не знает где это создаеться то идем в "Типы материалов"--"Добавить тип содержимого", создаем тип материала, потом возле вновь созданого материала должно появиться между "изменить" и "удалить" вот такое вот "manage fields", тыркаем туда, заходим добавляем необходимые поля и будет вам счастье.

3. Код PHP для основной страницы новостей (список):

  1.  
  2. //выбрать все записи с нашим типом контента в обратном порядке
  3. $news = db_query("SELECT * FROM node WHERE type= 'content_news' ORDER BY `vid` DESC");
  4. while($item = db_fetch_object($news))
  5. {
  6. // получить заголовок новости
  7.   $title = l($item->title, "node/$item->nid");
  8.  
  9. // выбираем содержимое новости
  10.   $news_content = db_query("SELECT * FROM node_content_news WHERE  nid=" . $item->nid);
  11.  
  12.  
  13. $content = db_fetch_object($news_content);
  14. //описание
  15.   $desc = $content->field_text_value;
  16. //дата
  17.   $date= $content->field_date_value;
  18.  
  19. // склеиваем вывод
  20.   $output .=$title . "
    "
    . $desc . "

    ". $date. "

    "
    ;
  21.  
  22. }
  23. // выводим для каждой новости
  24. return $output;
  25.  
  26. ?>

4. Этот код вставить в страницу, выбрать режим PHP и сохранить.
5. Чтобы что-то отобразить нужно сначала создать.
Идем в публикации, создание.
Выбираем тип, который мы создали и видим наши поля.
Вводим текст и сохраняем.

Идем на страницу новостей и наслаждаемся.

6. Чтобы добавить блок новостей на правую панель.
Создаем блок. В его тело пишем следующий код:

  1. $news = db_query("SELECT * FROM node WHERE type= 'content_news' ORDER BY `vid` DESC LIMIT 3");
  2. // limit 3 означает, что выведутся только три последние новости
  3.  
  4. while($item = db_fetch_object($news))
  5. {
  6.   $title = l($item->title, "node/$item->nid");
  7.  
  8.  
  9. $news_content = db_query("SELECT * FROM node_content_news WHERE  nid=" . $item->nid );
  10.   $content = db_fetch_object($news_content);
  11.   $desc = $content->field_text_value;
  12.   $date= $content->field_date_value;
  13.  
  14.  
  15. $output .=$title . "
    "
    . $desc . "

    ". $date. "

    "
    ;
  16. }
  17. //Типа ссылка на основную страницу новостей
  18. $output .=l("Остальные новости", "news");
  19.  
  20. return
  21. $output;
  22.  
  23. ?>

7. Вы можете добавить поля которые нужны Вам

Иногда возникают проблемы с именами таблиц и полей.
Одно решение вот такое:

  1. global $db_prefix;
  2. $news = db_query("SELECT * FROM ".$db_prefix."node WHERE type= 'content_news' ORDER BY `vid` DESC LIMIT 3");
  3. // limit 3 означает, что выведутся только три последние новости
  4.  
  5. while($item = db_fetch_object($news))
  6. {
  7. $title = l($item->title, $db_prefix."node/$item->nid");
  8.  
  9. $news_content = db_query("SELECT * FROM ".$db_prefix."content_type_content_news WHERE nid=" . $item->nid );
  10. $content = db_fetch_object($news_content);
  11. $desc = $content->field_text_value;
  12. $date= $content->field_date_value;
  13.  
  14. $output .=$title . "
    "
    . $desc . "

    ". $date. "

    "
    ;
  15. }
  16. //Типа ссылка на основную страницу новостей
  17. $output .=l("Остальные новости", "news");
  18.  
  19. return $output;
  20. ?>

В моем случае поля field_text_value называелись с еще одним _value (тоесть field_text_value_value), а таблица content_type_content_news.
В общем смотрите какие там создались таблицы и поля через пхпмайадмин например, помогает если покопаться
Возможно кому то пригодиться.

Часть материала позаимствована с http://www.drupal.ru/node/2782

Ваша оценка: Пусто Средняя: 3.9 (14 votes)

Комментарии

Создание раздела новостей для Drupal

5

Вы просто Гений! Спасибо, очень понятно и грамотно расписали, сейчас буду пробовать. На друпал 7 надеюсь получится:)

Дружище! Спасибо тебе

Дружище! Спасибо тебе огромное! Все ясно и понятно! (только про PhpFilter, что надо включить не сказал, ну да черт с ним :)
Выручила эта статья не представляешь как!
Побольше надо таких!
Желаю удачи!

На сдоровье :) PhpFilter у

На сдоровье :)
PhpFilter у меня включен был, возможно забыл.

Отправить комментарий

 

Подробнее о форматировании

CAPTCHA
Если вы человек, то тогда введите символы изображенные на картинке ниже
Введите символы, изображенные на картинке.
Главная | Портфолио | Услуги | Контакты | Блог