Попытка сделать новостной блок, через views.

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

Аватар пользователя Reno Reno 12 декабря 2007 в 11:49

Этот блог не претендует ни на что, это просто записи, что я делал в процессе изучения друпала, чтобы просто не забыть в каком месте я менял что то.

Новостной блок сделать оказалось не сложно, можно использовать модуль views. Но появилась одна проблема
Theme wizard в views работает только с одной закладкой View Type:List View, а мне нужен Teaser list.
При чем так как новости выводятся через фильтр по термам, а изза модуля Taxonomy_content в новостном блоке формировалось сылка на словарь и на терму, то я закоментил в taxonomy_context.module следущий код на 645 строчке.
<?php
/**
* Theme a list of vocabulary and term links.
*/
/*function theme_taxonomy_context_vocabulary_list($vocabulary) {
$output = '

' . l($vocabulary->name, "taxonomy/vocabulary/$vocabulary->vid") . "

\n";
$output .= "

    \n";
    foreach($vocabulary->terms as $term) {
    $output .= '
  • ' . l($term->name, taxonomy_term_path($term)) . "
  • \n";
    }
    $output .= "

\n";
return $output;
}
*/
?>

Не знаю к чему это приведет, но пока работает Smile

Комментарии

Аватар пользователя korol korol 12 декабря 2007 в 13:56

Я думаю будет полезен тем кто пользуется друпал не так давно
Мне одним из первых заданий на нем стало создание новосного блока)
От лица всех кому пригодится
Спасибо

Аватар пользователя selff selff 12 декабря 2007 в 14:46

не пойму вы внесли изменения в саму функцию theme_taxonomy_context_vocabulary_list ?
а почему вы ее не переопределили?
ядро хакать не хорошо

Аватар пользователя Reno Reno 13 декабря 2007 в 12:14

Да спасибо большое, за замеченаие, действительно лезть в ядро плохо.
Просто я забыл про переопределение функций, слишком много инфы Smile
В общем я раскоментил theme_taxonomy_context_vocabulary_list
создал функцию academia_taxonomy_context_vocabulary_list($vocabulary) в template.php и сделал там условие чтобы обрезались сылки только на главной странице. Ведь полюбому, где нибудь эти линки понадобятся. Выглядело примерно так :
<?php
/**
** Hide vocabulary and terms links in frontpage in NewsBlock**.
*/
function academia_taxonomy_context_vocabulary_list($vocabulary) {
if (strpos($_SERVER['PHP_SELF'],'index.php') == true)
{
return false;
}
else
{
$content = _phptemplate_callback('vocabulary', array('vocabulary' => $vocabulary));
return $content;
}
}
?>
Ну , а сами аутпуты вывел в vocabulary.tpl.php при помощи _phptemplate_callback()

    <h3 class="title"> <?php print l($vocabulary->name, "taxonomy/vocabulary/$vocabulary->vid") ?> </h3>
 <ul>
  <?php foreach($vocabulary->terms as $term) {?>
         <li class="vocabulary-list"><?php print l($term->name, taxonomy_term_path($term)) ?> </li>
        <?php }?>
 </ul>