Debug Drupal модулей и Next/Prev модуль

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

Аватар пользователя roma4ke roma4ke 21 августа 2012 в 2:22

Продолжаю, пока горячо, в прямом эфире так сказать. Захотел реализовать простую штучку как ссылки на следующий и предыдущий товар. (в моём случае node type = product). Нашел подходяший модуль который называется Prev/next Api. Скачал установил, прочитал ReadMe.txt. Закинул в template.php такую вот функцию прямо скопировл из ReadMe и поменял тип 'product':

function pn_node($node, $mode = 'n') {
  if (!function_exists('prev_next_nid')) {
       
    return NULL;
  }
 
  switch($mode) {
    case 'p':
      $n_nid = prev_next_nid($node->nid, 'prev');
      $link_text = 'previous';
      break;
       
    case 'n':
               
      $n_nid = prev_next_nid($node->nid, 'next');
      $link_text = 'next';
      break;

    default:
      return NULL;
  }
 
  if ($n_nid) {
    $n_node = node_load($n_nid);

    $options = array(
      'attributes' => array('class' => 'thumbnail'),
      'html'  => TRUE,
    );
    switch($n_node->type) {
      // For image nodes only
      case 'product':      <strong>// Вот мой продукт.</strong>
        $html = l($link_text, "node/$n_nid", array('html' => TRUE)); <strong>// А вот нужная ссылочка</strong> это все что я добавил.
        return $html;

 
      default:
        // Add other node types here if you want.
    }
  }
}

и в product-node.tpl.php добавил

 <ul id="node-navigation">
    <li class="next"><?php print pn_node($node, 'n'); ?></li>
    <li class="prev"><?php print pn_node($node, 'p'); ?></li>
  </ul>

Конечно с первого раза ничего не заработала и я полез в код искать причины, из-за этого разобрался как дебажить друпал и его модули с еклипсом, об этом дальше, а пока напишу маленькую инструкцию по этому модулю.
После всего что я написал - нужно еще запустить крон!!!cron!! И если вы создадите больше продуктов, нужно в конфигурации модуля жать reindex и потом опять запускать cron. Тогда все работает.

----------------------------------- Debug Модулей.
Вот очень мощная ссылка где все хорошо объясняеться.
Отмечу важно указывать полный путь . C:\WebServers\usr\local\php5\ext\php_xdebug-2.1.0-5.3-vc6.dll и смотреть версию php и vc!! у меня была 5.3 и vc6 узнать можно вот тут