BOOZ: Блог

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

Торможу..

5 февраля 2010 в 9:15

Заработался наверное. Есть стандартное recent_comments view в блоке. Надо добавить аватар юзера который оставил комментарий.

Возможно сделать это там же во view, или надо писать что-то отдельно?

Спасибо

Настройка транслита в pathauto

19 января 2010 в 9:46

Кому надоело бороться с кириллицей в линках, в pathauto встроенна поддержка русского транслита. Что надо сделать:

1) Установить pathauto
2) i18n-ascii.sample.txt файл в папке модуля переименовать на i18n-ascii.txt
3) В установках Path включить Transliterate prior to creating alias

Весь существующий контент с кириллицей надо будет пересохранить, иначе линки остануться прежними.

Вопрос по drupal_get_form() [РЕШЕНО]

11 января 2010 в 17:22

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

Для этого в menu_alter прописал следующее:

function remove_tab_menu_alter(&$items) {

  $items['node/%node_add_review/addreview']['page callback'] = 'remove_tab_addreview_load';

}

Потом добавил callback функцию там же в модуле:

function remove_tab_addreview_load() {
  global $user;
  if (arg(0) == 'node' && is_numeric(arg(1))) {
     $node = node_load(arg(1));
   }

  if ($user->uid) {
     return drupal_get_form('nodereview_node_form');
  }
  else{
   return drupal_goto('user','destination=node/'.urlencode($node->nid) .'/addreview');
  }

  drupal_not_found();
}

Сценарий с анонимом работает четко, а вот загрузка формы не работает. Думаю проблема связана с тем, что я переписываю форму в template.php.

Так вот, когда вызывается drupal_get_form - на странице нет моей переопреденной формы, а только ее админ часть.

Как подгрузить все форму из моего модуля???

Спасибо заранее за помощь.

BOOZ

Постраничный счетчик нодов для view

11 декабря 2009 в 7:57

Недавно понадобилось вставить постраничный счетчик в заголовке view. Пример смотрите здесь http://www.cto4u.ru/articles

1) Идем на страницу редактирования view. Кликаем на поле Header (Заголовок, у кого русская версия стоит) и выбераем PHP Code как фильтр.

2) Вставляем следующий снипет.

<?php
global $pager_page_array, $pager_total_items, $pager_total;
$my_view = views_get_current_view();
$items_per_page = $my_view->pager['items_per_page'];
if ($pager_total[0] == 1) {
  echo "всего: <b>" . $pager_total_items[0] . "</b>";
} else {
  $start = 1 + ($pager_page_array[0] * $items_per_page);
  $end = (1 + $pager_page_array[0]) * $items_per_page;
  if ($end > $pager_total_items[0]) $end = $pager_total_items[0];
  echo "Показано: <b>$start-$end</b> (всего: <b>" . $pager_total_items[0]."</b>)";
}
?>

3) Если есть отдельный шаблон для view, проверить если переменная $header присутствует

<?php if ($header): ?>
    <div class="view-header">
      <?php print $header; ?>
    </div>
  <?php endif; ?>

3) В результате выйдет примерно так

Показано: 1-5 (всего: 25) и т.д

Imagecache на вьюсе

1 декабря 2009 в 8:00

Добрые люди посоветовали прилинковать картинку в тизере к контенту. Не стал сопротивляться, так как знал, что это не сложно. Пошел смело на установки вьюса и чекнул "Link this field to its node" для моего image поля. Вернулся обратно на страницу, провел мышой над и понял, что что-то не то. В алте появилась какая-то фигня:

&lt;img src=&quot;http://www.cto4u.ru/sites/default/files/imagecache/Thumbnail/auto-parts-shop.gif&quot; alt=&quot;&quot; title=&quot;&quot;  class=&quot;imagecache imagecache-Thumbnail imagecache-default imagecache-Thumbnail_default&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;

Вернулся в установки вью и разобрался. Оказывается надо "Link this field to its node" выключить, а "Image linked to node" включить для imagecache если таковой используется, иначе image прилинкуется дважды. Смотрите атачмент снизу.

С уважением,
BOOZ