Блог пользователя - lena_elena4

Вывод ссылок

24 марта 2009 в 23:19

В модуле определяю ссылки:

function library_link($type, $node = NULL, $teaser = FALSE) {  
$links = array();
$content = '';  
  if($node->type == 'library') {
    if (user_access('create library')) {
      $links[] = l(t('Add'), "library/add", array('title' => t('Add a new library')));
          $links .= theme('t_library_link',$links);
    }
    if (user_access('update library')) {
       
      $links[] = l(t('Edit library'), "library/" . arg(1) . "/" . arg(2) . "/edit", array('title' => t('Edit library') . $node->title));
      $links[] = l(t('Delete library'), "library/" . arg(1) . "/" . arg(2) . "/delete", array('title' => t('Delete library') . $node->title));
      $links .= theme('t_library_link',$links);
        }
  }
return $links;
}

там же функция, которая выводит ссылки:

function t_library_link($list) {
  $cont = '';
  foreach ($list as $list_item) {
    $cont .= $list_item.'|';
  }
  return $cont;
}

В node-library.tpl делаю вывод: print $links
Разрешения есть, но на странице - пусто. Что делаю не так?

Просьба помогать только если есть желание(от "-" пользы мало).

Правильная обработка $_GET-запроса

16 марта 2009 в 15:55

Ссылки в меню - термины одного словаря.
При нажатии на ссылку должны вывести "подтермины", родитель которых - пункт меню.
Не пойму, почему у меня не показывается страница, на которой должны появиться "подтермины".
Я так думаю, причина в неправильной передаче $_GET-параметров.

//Меню
function library_menu() {
  $items = array();
  $items['taxonomy/term/%term'] = array(
  'title' => t('Литература'),
  'description' => t('Выводим все ссылки'),
  'page callback' => 'author',
  'access callback' => TRUE,
  'type' => MENU_CALLBACK
  );
return $items;
}

//callback-функция
function author() {
$term = isset($term) ? intval(arg(2)) : 0;
  $page_content = '';
  $content = db_query("SELECT td.name FROM {term_data} td
    INNER JOIN {term_hierarchy} th
        ON td.tid = th.tid WHERE th.parent = $term"
);
  if(!$result) _db_error_page($error = 'Error in $sql');
  while ($links = db_fetch_object($content))
   $page_content .= l(htmlspecialchars($links->title),"node/$links->nid") . '<br />';
  //проверяем, есть ли контент
  if ($page_content != ''){
  //отобразить страницу
  return $page_content;
  }
}

Отладка в Друпале

15 марта 2009 в 0:03

Меня интересует, как происходит процесс отладки в Друпале.
Если у меня в модуле ошибка, появляется 500 заголовок: Внутренняя ошибка сервера, я, получается, вообще не могу зайти ни на индекс-страницу, ни в админку.
Что делаю. Беру проблемный модуль, выбрасываю его временно из папки модулей, захожу в логи, смотрю, какая ошибка, исправляю ошибку, снова вставляю папку с модулем в sites/all/modules, пробую зайти на домашнюю страничку.
Мне кажется, надо делать не так.
Поделитесь, пожалуйста, опытом, как можно работать над ошибками, не трогая папку с модулем.