Cyanix: Блог

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

Детальная темизация полей CCK в Views

22 декабря 2009 в 15:37

Тема не раз поднималась на форуме (http://www.drupal.ru/node/34401, http://www.drupal.ru/node/36517), но нигде не нашёл ответа на такой вопрос. Необходимо детально темизировать поля CCK в Views. Именно получив доступ к переменным, формирующим вывод блока, а не обойти проблему, применяя CSS, JQuery и пр. Есть такая вьюшка:

Файлы views-view--allworks.tpl.php, views-view-list--allworks.tpl.php, views-view-fields--allworks.tpl.php, views-view-field.tpl.php не позволяют детально настроить выдачу значений CCK-полей. Нужно, чтобы в результате в блоке получился такой список:

  • '.$alt_of_the_image.'/li>
    ...

Переменные $url_of_the_node, $link_to_preview, $alt_of_the_image (значения CCK-полей) хочу дёргать при помощи API Drupal из файлов темизации вьювсы. Из ответов на подобные вопросы понял, что как-то можно брать информацию непосредственно из переменных, разрешённых в файлах views-view--allworks.tpl.php, views-view-list--allworks.tpl.php, views-view-fields--allworks.tpl.php и views-view-field.tpl.php, т.е. возможно что-то типа этого:

<?php
$node_path 
$field->{options}['alter']['path'];
?>

Как и где правильно поставить куки? [Решено]

3 декабря 2009 в 10:49

При заходе пользователя на сайт рандомно генерится номер цветовой схемы, который в дальнейшем должен быть неизменен для пользователя на всём протяжении работы с сайтом. Хочу сохранить номер цветовой схемы. Искал информацию о cookies как на этом форуме, так и на drupal.org. Единственная страница, которая (вероятно) могла бы мне помочь, ссылается на похеренную ссылку: http://drupal.org/node/48448. Вопрос к умельцам: в каком файле и какую функцию надо использовать, чтобы оставить и забрать куки? Если можно, приведите конкретный пример.

Вот функция, которая работает с цветовыми схемами (template.php):

<?php
function template_preprocess_page(&$vars) {
// Случайно выбираем стиль гаммы страницы
  
$rand_index mt_rand(06);

  

$path_style1 path_to_theme() .'/styles/gamma-'.$rand_index.'.css';

  

drupal_add_css($path_style1'theme''all'FALSE);

  if (!

$vars['is_front']) {
  
$path_style2 path_to_theme() .'/styles/secondary-defauts.css';
  
drupal_add_css($path_style2'theme''all'FALSE);
  }

  

$vars['styles'] = drupal_get_css();

}

?>

Созданные в CCK поля и выведенные через Views видит только админ [Решено]

2 декабря 2009 в 11:41

Данные, внесённые через поля CCK, не показываются через блок созданный в Views. В блоке должны выводится картинки, по одной с каждой ноды, принадлежащей типу материалов "Готовая работа". При этом админ видит всё так, как должно быть, а незарегистрированному пользователю изображения не выводятся. Админ видит правильные результаты работы Views. Обычный пользователь не видит ничего. Регионы и блоки настроены верно. Игрался с правами для ролей, не помогло. Игрался с кэшированием и правами views - тоже не помогло. Модуль Views переустанавливал, сами вьюшки экспортировал/импортировал, облазил все форумы по друпалу, но ответ, почему так происходит, не нашёл. Экспериментировал с другими данными, введёнными через поля CCK, они тоже через views доступны только админу.

Вот так создал поле для ввода изображения в CCK:
Создание поля в CCK

Во вьюс выбрал соответствующее поле:
Выбираю во вьюс соответсвующее поле

Вот полученная вьюшка, которая показывает загруженные изображения только админу:
Данная вьюшка выводит изображения только для админа

Может кто-нибудь помочь?

P.S. С таксономией не заморачивался. Если выборку views надо как-то опосредовать через неё, скажите, пожалуйста, как именно.