Помогите сделать вывод материалов в блоке

Главные вкладки

Аватар пользователя andribas@drupal.org andribas@drupal.org 20 октября 2010 в 8:40

Здравствуйте!
Подскажите, пожалуйста, как можно реализовать такой вывод:

Есть 3 типа материала - сюжет, новость, статья
и словарь сюжеты.
Сюжет: фото, термин сюжеты
Новость: заголовок, фото, термин сюжеты, первый абзац (teaser)
Статья: заголовок, фото, термин сюжеты, кратко о статье (summary)

Если в сюжете указано помещать на главную, то выводятся материалы этого термина в блоке.
Еще сюжет нужен для того, чтобы хранить дефолт фото для этого термина (в новости фото может не быть)

Мне нужно выводить последние 4 (новости, статьи) в блоке

сделал 2 views с аргументом термин ID

select_main_story: первая новость / статья - заголовок, фото, первый абзац / кратко о статье
select_story: остальные 3 новости - заголовки.

Что не получается сделать:
1. Как вывести Сюжет -> фото (по термину ID) если в первой новости нет фото?
2. Мне нужен блок из 3-х сюжетов. Как это правильно сделать?

Что-то типа сначала выбрать 3 материала из сюжетов, которые указано помещать на главную
Потом из каждого материала типа сюжет выбрать фото и термин таксономии.
Далее сделать вывод views

print views_embed_view('select_main_story','default','term_id');
print views_embed_view('select_story','default','term_id');

и потом если в select_main_story отсутствует фото, то заменить его на фото по дефолту из материала типа сюжет, чтобы это фото было в виде ссылки на материал типа новость / статья из select_main_story.

Подскажите как это проще всего сделать? или дайте ссылку на документацию / или пример чего-то похожего.

Комментарии

Аватар пользователя andribas@drupal.org andribas@drupal.org 20 октября 2010 в 21:15

В принципе показывает все, только подскажите как подсунуть фото во views, если там вывод пустой?

<?php
$query 
"select nid from node where promote='1' and type='story' order by created DESC LIMIT 0,3";
$result db_query($query);

    while (

$n db_fetch_object($result)) {
        
$my_node node_load($n->nid);
        print 
$my_node->field_main_photo['0']['filename']. '<br>';

        foreach (

$my_node->taxonomy as $term_id => $value) {
           print 
views_embed_view('select_main_story','default',$term_id);
           print 
views_embed_view('select_story','default',$term_id);
           break;
       }
    }
?>

Мне нужно "засунуть" $my_node->field_main_photo['0']['filename'] в select_main_story если там фото пустое. Как сделать?

Сделал по уродски, если фото нет, пишу replace_photo, а потом замена:

<?php
    $search 
"replace_photo";
    
$replace =  "<img src=\"/sites/default/files/imagecache/medium-land/{$my_node->field_main_photo['0']['filename']}\" />";
    
$subject views_embed_view('select_main_story','default',$term_id);
    
$new_subject str_replace($search$replace$subject);

    print 

$new_subject;?>

как по нормальному сделать?