vic: Блог

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

Блок с произвольными картинками (баннер) кешируется и не меняется. [РЕШЕНО]

8 октября 2014 в 5:26

Доброго всем дня!

На главной странице сайт разместил блок с меняющимися баннерами.
Блок сформирован модулем views, в представлении беру ОДНУ картинки из определенного типа материала, сортировку задал как "Глобальный: Случайно (возр.)"
Кеширование представления отключено.

Вся беда в том, что для анонимного пользователя блок не меняется, постоянно показывается одна картинка.
Если кеширование страниц в друпале отключить, то картинки начинают меняться.

Как сделать, чтоб в блоке показывались произвольные картинки для анонимного пользователя?

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

30 апреля 2013 в 20:17

Доброго всем дня!

Делаю интеренет-магазин на Drupal 7 + Ubercart.
Возникла необходимость на странице оформления заказа в поле адреса доставки добавить форму с выбором города из списка.
Кто-нибудь сталкивался с подобной задачей? Есть готовые решения?

Как вывести форму добавления ноды в блоке?

11 июля 2012 в 20:41

Доброго всем дня!

Создал тип материала consultation и теперь мне необходимо вывести форму добавления этого материла в блоке.
Пытаюсь делать так

function site_block_view($delta = '') {
  global $user;
  $block = array();

  switch ($delta) {
   
    case 'consultation_form':
      $node = (object) array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => 'consultation', 'language' => LANGUAGE_NONE);
      $form = drupal_get_form('consultation_node_form', $node);
      $block['subject'] = 'Задать вопрос';
      $block['content'] = drupal_render($form);
 
      break;
  }
   
  return $block;
}

Но форма не выводится, вылазит куча ошибок.

Передача параметров из url во views

5 сентября 2011 в 18:39

Доброго всем дня!

Есть вопрос по модулю views (drupal 7)
Мне нужно на странице термина таксономии вывести имеющиеся подразделы.
Я пишу вьюс, который принимает контекстный параметр - Term ID. Все вроде работает, передаю во вьюс параметр, например, 108 и получаю термины таксономии, у которых родителем является термин с id=108.

А как мне сделать так, чтоб параметр брался из url. Например, если мы находимся на странице texonomy/term/108, то во вьюс должен передаться параметр 108.
arg(2)

Не запускается крон

28 августа 2011 в 8:21

Доброго всем дня!

Сайт работает на drupal 7.7
Столкнулся с проблемой запуска крона.
Пока крон запускаю вручную, при этом при запуске мгновенно происходит переадресация на
страницу site.ru/user?destination=admin/config/system/cron

При этом никаких сообщение и ошибок не выводится.
В чем может быть причина?

Migrate: как перенести аватары пользователей

20 июля 2011 в 12:12

Доброго всем дня.
Для переноса материалов на друпал 7 использую модуль migrate.

У меня возникли трудности с переносом аватарок пользователей. У меня есть имена файлов изображений и сама папка с изображениями.
В примерях я лишь нашел как переносить изображения для поля с изображением

Вот такое не работает:

Как вывести пагинатор в блоке

4 июля 2011 в 7:30

Доброго всем дня!

Написал блок, который должен выводить на странице просмотра группы (og) все ноды, которые принадлежат этой группе. Причем выводить с разбивкой на страницы по 10 нод.
Но оказалось что пагинатор не выводиться в блоке.

Вот код блока

<?php
function site_block_view($delta '') {
  
$block = array();

  switch (

$delta) {
    
// Дискуссии (на странице просмотра сообщества)
    
case 'site_group_discussion':
      
$query = new EntityFieldQuery;
      
$result $query
        
->entityCondition('entity_type''node')
        ->
entityCondition('bundle', array('blog''recipe'), 'IN')
        ->
propertyCondition('status'1)
        ->
propertyOrderBy('created''DESC')
        ->
pager(10)
      ->
execute();
      
$node_list = array();
      if (!empty(
$result['node'])) {
        
$nodes entity_load('node'array_keys($result['node']));
        foreach (
$nodes as $node$node_list[] = $node;
      }
            
      
$block['subject'] = 'Дискуссии';
      
$block['content'] = theme('site_group_discussion', array('node_list' => $node_list)).theme('pager');
      break;
    
  }
  return 
$block;
?>

Т.е. такая строчка "theme('pager')" не добавляет пвгинатор в конец блока.
Как сделать блок с пагинатором? Может какие параметры использовать?
Почитал http://api.drupal.org/api/drupal/includes--pager.inc/function/theme_pager/7
Но пока ничего не выходит.

Запрос на получения списка групп с максимальным числом участников [Решено]

29 июня 2011 в 8:03

Доброго всем дня!

Необходимо сформировать запрос на получение 5 групп с максимальным числом участников. Имеются ввиду группы из модуля og (Organic Group), но суть именно в запросе.

Если строить запрос в сыром виде, то получается как то так:

SELECT g.group_audience_gid, COUNT(g.group_audience_gid) AS total FROM {field_revision_group_audience} g WHERE g.bundle='user' GROUP_BY g.group_audience_gid.

У меня два вопроса:
1) Как отсортировать выборку по полю COUNT(g.group_audience_gid), возможно ли такое?
2) Как переписать запрос в рамках db_select() ?

У меня пока вышло вроде этого:

<?php
  $query 
db_select('field_revision_group_audience ''g');
  
$query->condition('g.bundle''user');
  
$query->groupBy('g.group_audience_gid');
  
$query->fields('g', array('group_audience_gid'));
  
$query->range(05);
  
$result $query->execute();
?>

Не знаю как добавить поле COUNT(g.group_audience_gid) и как затать сортировку?
Нужна помощь!

Почему то запускается cron на каждый запрос.

27 июня 2011 в 11:53

Доброго всем дня!

Разрабатываю проект на локалхосте.
Писал задание для крона - обновление рейтингов материалов. Тестировал наподобие этого

Как запустить Bueditor не на друпале?

23 июня 2011 в 14:30

Есть вариант Bueditor редактора не для друпала.
Или есть ли аналог?
В документации есть раздел об этом, но информация явно устарела.
http://ufku.com/drupal/bueditor/non-drupal

Вывод поля изображения заданного по умолчанию [решено]

22 июня 2011 в 7:06

Доброго всем дня!

Имеется некоторый тип материала, который содержит поле изображения.
Поле необязательное и загружено изображение по умолчанию.

Мне нужно вручную вывести список материалов данного типа с изображением.
Вот с выводом изображения у меня трудности. Если взять объект ноды, то поле с изображением может быть пустым (ведь оно необязательное).
В этом случае нужно выводить изображение по умолчанию.
А вот как его достать?

Переобпределить вывод последних записей в блоге

11 июня 2011 в 8:57

Приветствую, друзья!

Используется стандартный модуль blog, он формирует страницу последних записей в блоге (/blog).
Я добавил типу материала "Запись в блоге" свое поле "Личный блог".
И теперь мне надо на странице последних записей в блоге выводить все кроме личных блогов, т.е. надо добавить условие в запрос.
Можно конечно написать свой вьюс и "убить" стандартный. НО хочется именно переопределить запрос стандартного вывода.

Вот функция, которая выводит последние записи в блоге

<?php
/**
 * Menu callback; displays a Drupal page containing recent blog entries of all users.
 */
function blog_page_last() {
  global 
$user;
  
$build = array();

  

$query db_select('node''n')->extend('PagerDefault');
  
$nids $query
    
->fields('n', array('nid''sticky''created'))
    ->
condition('type''blog')
    ->
condition('status'1)
    ->
orderBy('sticky''DESC')
    ->
orderBy('created''DESC')
    ->
limit(variable_get('default_nodes_main'10))
    ->
addTag('node_access')
    ->
execute()
    ->
fetchCol();

  if (!empty(

$nids)) {
    
$nodes node_load_multiple($nids);
    
$build += node_view_multiple($nodes);
    
$build['pager'] = array(
      
'#theme' => 'pager',
      
'#weight' => 5,
    );
  }
  else {
    
drupal_set_message(t('No blog entries have been created.'));
  }
  
drupal_add_feed('blog/feed't('RSS - blogs'));

  return 

$build;
}
?>

Для переопределения запроса можно использовать функцию http://api.drupal.org/api/drupal/modules--system--system.api.php/functio...

Узнать число записей в выборке EntityFieldQuery

12 мая 2011 в 8:36

Доброго всем дня!

Вот такой код использую для запроса нужных нод с пагинатором

Хранение дополнительной информации в объекте пользователя

26 апреля 2011 в 10:03

Доброго всем дня!

В drupal 6 можно было легко схранять и получать любые данные в объекте пользователя. Например так:

// Add user's disposition.
global $user;
$extra_data = array('disposition' => t('Grumpy'));
user_save($user, $extra_data);

// Print user's disposition.
global $user;
print $user->disposition;

В друпал 7, как я понял, так сделать нельзя. Для сохраниения дополнительной информации, необходимо использовать хук hook_user_presave:
function rating_user_presave(&$edit, $account, $category) {
$edit['data']['rating_user_profile'] = 12;
}

Я так понимаю, что это можно сделать только при создании/обновлении профиля пользователя.
А если мне нужно хранить в объекте пользователя, например, количество созданных им нод. Т.е. мне надо каждый раз при создании ноды обращаться к этой переменной в объекте пользователя и увеличивать ее на 1.
Как такое сделать в drupal 7?

Да, и попутно возник вопрос - как удалить сериализованную переменную из объекта пользователя?

Очистить строку от тегов форматирования

23 апреля 2011 в 8:37

Доброго всем дня!

Нужно в блоке вывести часть содержимого материала - текст длинной 60 символов.
Обрезание текста осуществляю с помощью truncate_utf8().
Ну вот незадача - текст соержит теги форматирования. Т.е. при обрезке, можно обрезать пол абзаца и получится некорректная верстка.
Надо перед применением truncate_utf8() очистить содержимое от тегов форматирования.

Есть ли в друпале подходящая функция для этого?

Как писать сложные запросы к БД?

21 апреля 2011 в 9:27

Доброго всем дня!

Прочитал много доков, книг, но что то не нашел сложных примеров запросов к БД.

В друпал 7 новые возможности работы с БД и Field API.
Хотелось бы увидеть примеры подобных запросов:

1) Получение материалов определенного типа с одним определенным полем
2) Получение материалов определенного типа со всеми доступными полями
...

Как сформировать ссылку из uri

14 апреля 2011 в 14:17

Доброго всем дня!

Что то совсем запутался. Имеется uri картинки
public://albums/3/image34.jpg

Как мне сформировать ссылку на это изображение. Пробую так, но не работает
l('Увеличить изображение', $node->field_photo['ru'][0]['uri']);

Убрать возможность для пользователя выбирать формат ввода.

31 марта 2011 в 15:36

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

В друпале сейчас, к сожалению, нет возможности указать, чтобы некоторая текстовая область имела ОПРЕДЕЛЕННЫЙ формат ввода.
Можно лишь указать либо 'простой текст', либо 'на выбор пользователя'.
Как можно исправить эту ситуацию? Может есть подходящие модули?

Как сформировать свое меню

28 марта 2011 в 12:01

Возникла необходимость сделать свое меню и выводить его в блоки.
Обычное меню (Меню -> Добавить меню) не подходит, т.к. пути формируются на основе $uid пользователя.

Можно было бы конечно вывести просто список ссылок, но хотелось бы использовать возможности модуля Menu, а именно - чтоб автоматически для активного пункта меню добавлялся класс 'active'.
Как можно сформировать такое меню?

Раньше я для каждого пункта меню проверял соответствие текущего адреса с href ссылки. Но хочется сделать это прощее.

CKEditor для определенного поля в drupal 7

28 марта 2011 в 7:42

Доброго всем дня!

Кто пользовался ckeditor для drupal 7 наверное заметил, что активация редактора идет в зависимости от формата ввода поля.
Впринципе логично. Но вот возникла такая ситуация, когда мне надо для некоторой текстовой области активировать текстовый редактор.

В друпал 6 это можно было сделать просто указав идентификатор поля в настройках ckeditor.
А вот как это сделать в семерке?

Просто вызвать редактор можно путем прописывания полю класса 'ckeditor'

CKEditor для определенного поля в drupal 7

24 марта 2011 в 12:11

Доброго всем дня!

Кто пользовался ckeditor для drupal 7 наверное заметил, что активация редактора идет в зависимости от формата ввода поля.
Впринципе логично. Но вот возникла такая ситуация, когда мне надо для некоторой текстовой области активировать текстовый редактор.

В друпал 6 это можно было сделать просто указав идентификатор поля в настройках ckeditor.
А вот как это сделать в семерке?

Просто вызвать редактор можно путем прописывания полю класса 'ckeditor'

Связать два типа материала и редактировать разом

21 марта 2011 в 13:09

Доброго всем дня!

Стоит задача реализовать форму добавления кулинарного рецепта. Каждый рецепт может состоять из неограниченного числа шагов, каждый шаг состоит из описания и фото.
Т.е. мы имеем два типа материалов - РЕЦЕПТ и ШАГ.

Можно ли сделать так, чтобы рецепт с необходимым числом шагов доавляля в одной форме. Т.е. форма должна быть динамической, с кнопной "Добавить шаг" - при этом добавляются поля для нового шага.
Есть ли готовые решения для реализации подобного?
Если нет, то возможно ли сделать, с какими проблеммами можно столкнуться?

Не переопределяется шаблон блока в drupal7

20 марта 2011 в 9:13

Доброго всем дня!
Начал работать с друпал 7 и столкнулся со следующей проблеммой.

Возникла необходимость перекрыть шаблон блока block-search-form (форма поиска), но создание в теме своего шаблона блока НЕ РАБОТАЕТ т.е. мои шаблоны просто не перекрываю ничего.
При этом пробовал следующие названия шаблонов:
block-search-form.tpl.php
block--search-form.tpl.php
block--block-search-form.tpl.php
block-search-0.tpl.php
block--search-0.tpl.php
block--block-search-0.tpl.php

Взаимосвязанные блоки

24 декабря 2010 в 21:57

Доброго всем дня!

Использую на сайте модкль menu_block, который позволяет мне в левой колонке выводить меню 2го уровня (menu_2). Основное меню (1 уровень) расположено горизонтально в шапке. Т.е. кликаю по основному меню и в левой колонке появляется меню второго уровня (menu_2).

Еще в левой колонке есть дополнительное меню (menu_extra).
Так вот надо, чтобы при появлении меню второго уровня (menu_2) дополнительное меню (menu_extra) исчезало.
Как можно этого добиться!?

Заранее спасибо!

Установка начальных значений полей профиля при регистрации

18 октября 2010 в 18:09

Доброго всем дня!

С помощью стандартного модуля Profile я добавил необходимые поля в профиль пользователя. Среди них есть и select-поле - "Статус пользователя".

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

Да, это поля доступно только администратору. В данный момент приходится администратору присвавать значения вручную, а хотелось бы автоматизировать это.

Кто-нибудь сталкивался с подобной задачей, поделитесь опытом?