|
|
|
| На странице должны быть блоки, в каждом из которых есть название категории, а под этим названием - список подкатегорий.
Мне нужно разделить логику и дизайн.
В этой функции формируются переменные(категории+подкатегории):
<?php
function homepage_category() {
$content = '';
$vid = 9;
//вытягиваем категории
$res = db_query('SELECT tt.name, tt.tid
FROM {term_data} tt
LEFT JOIN {term_hierarchy} th
ON tt.tid = th.tid
WHERE vid = %d AND th.parent = %d', $vid,0);
if(!$res) return drupal_not_found();
while($title = db_fetch_object($res)) {
$ttid = $title->tid;
$tname = $title->name;
$content['main']['tname'][] = $tname;
$content['main']['ttid'][] = $ttid;
//вытягиваем подкатегории к данной категории
$sql='SELECT td.name, td.tid
FROM {term_data} td
LEFT JOIN {term_hierarchy} th
ON td.tid = th.tid
WHERE td.vid = %d AND th.parent = %d';
$res1 = db_query($sql,$vid,$title->tid);
if(!$res1) return drupal_not_found();
while($sub_title = db_fetch_object($res1)){
$sub_t = $sub_title->tid;
$sub_n = $sub_title->name;
$content['sub']['sub_t'][] = $sub_t;
$content['sub']['sub_n'][] = $sub_n;
}
}
$content = theme(homepage_ann,$content);
//возвращаем оформленный массив
return !empty($content) ? $content : 'Переменные';
}
?>
|
Обьясняю последние три строки. После того, как информация получена из базы, мы пропускаем полученные переменные через функцию theme_homepage_ann, в которой добавляем к переменным дизайн:
<?php
function theme_homepage_ann($content) {
$tcontent = '';
$tcontent .= '<table>';
$i = 0;
foreach ($content['main'] as $main){
if (!($i % 4)) $tcontent .= '<tr>';
$tcontent .= '<td>';
$tcontent .= '<div class="category">
<div class="cat_back">
<div class="cat_cont">
<div class="subcategory">
<div class="cat_img">
<img src="/images/' . $main['ttid'] . '.jpeg" alt="' . $main['tname'] . '" />
</div>
<div class="home_title">'. $main['tname'] .'</div>';
foreach ($content['sub'] as $sub){
$tcontent .= '<div class="home_subtitle">
<nobr><a href="library/' . $main['ttid'] . '/' . $sub_name['sub_t'] . '">' . $sub['sub_n'] . '</a><br /></nobr>';
}//вывод подкатегорий
$tcontent .= '<div class="home_subtitle_other"><a href="library/' . $main['ttid'] . '">Другие</a></div>';
$tcontent .= '
</div>
</div>
</div>
</div>
</div>
</td>';
if (!($i+1 % 4)) $tcontent .= '</tr>';
$i++;
} //вывод категорий
$tcontent .= '</table>';
return !empty($tcontent) ? $tcontent : 'Шаблон';
}
?>
|
Сейчас на странице только два блока. А должно быть - много.
В функции темы я неправильно делаю циклы, а вот как надо правильно, не могу додуматься. | |
|
|