Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Убрать html в отдельную функцию
 
 автор: Лена   (01.06.2009 в 17:17)   письмо автору
 
 

На странице должны быть блоки, в каждом из которых есть название категории, а под этим названием - список подкатегорий.
Мне нужно разделить логику и дизайн.
В этой функции формируются переменные(категории+подкатегории):

<?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+4)) $tcontent .= '</tr>';
 
$i++;
 } 
//вывод категорий
  
$tcontent .= '</table>';
return !empty(
$tcontent) ? $tcontent 'Шаблон';
}
?>

Сейчас на странице только два блока. А должно быть - много.
В функции темы я неправильно делаю циклы, а вот как надо правильно, не могу додуматься.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования