Айдар: Блог

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

[Решено] 2 контекстных фильтра views, 2 типа материала и вывод поля другого типа материала

24 марта 2012 в 0:24

Други, помогите, мозг сломал!

У мну есть 2 типа материала: "организация" и "цены организации". В типе "организация" также есть пару полей с ценами, а в типе "цены организации" используются field_collection поля. Ноды связываются общим термином таксономии.

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

Что делаю: для того, чтобы вывести свои же поля (тут все понятно) контекстный фильтр Node:Nid - все замечательно.

Чем лучше закешировать блок Views, выводящийся с помощью Panels

3 марта 2012 в 14:23

Ребят, есть такая ситуация: создается порядка 30 вьюшек, которые собираются воедино в блок с помощью module_invoke и затем этот блок выводится как элемент панели на морде.

Чем и как лучше закешировать все это дело: кеширование views, кеширование блоков в настройке вьюх (используемое отображение - блок), кешированиt как элемента Панели и/или стандартное кеширование?

Fivestar оценка в комментариях - сохранение голоса при несохранении коммента

22 февраля 2012 в 13:45

Робят, может кто пытался решить у себя траблу.

Замечательный модуль Fivestar - все работает как часы, кроме одного: настроено так, чтобы пользователи голосовали в комментарии, при этом, если пользователь выставил оценку, но оставил, к примеру, какое-либо обязательное поле пустым или не прошел антиспам, но нажал кнопку "отправить", то коммент не сохраняется, а голос - да.

Замучился уже в базе руками такие удалять.

Настройка views - 2 критерия фильтрации: по термину и по полю Content Taxonomy

18 февраля 2012 в 21:31

И снова я по вьюхам. Никак не соображу.

Дано:

  1. Тип материала "болезни"
  2. Тип материала "лекарства"
  3. Словарь "Симптомы"
  4. Термины словаря "Симптомы" добавляются при добавлении болезни, а в лекарствах есть 2 поля типа "Content Taxonomy", оба ссылаются на словарь "Симптомы": 1 поле - "применение при симптомах", 2-е поле - "побочные эффекты". В обоих полях стоит галка "Также сохранять в стандартную таблицу таксономии".

Что нужно:
На странице термина отобразить ассоциированные болезни и ассоциированные только по полю "побочные эффекты" лекарства.

Как пытался сделать:

Не подхватывает токен другого поля в views

17 февраля 2012 в 22:27

Поцоны, уже все перепробовал. Нужно вывести заголовок ссылкой на ноду и чтобы тайтлом (всплывающим текстом) шло урезанное содержание ноды.

Создал вьюху, выводящую материал, с полями заголовок и содержание. Содержание сделал первее заголовка, исключил из вывода, сделал обрезать на 250 символах на границе слова, html теги не выводить. В настройке заголовка: выводить в виде ссылки, в пути ссылки ничего, в Alt - токен [body], галка на "сделать поле ссылкой на материал".

В итоге и в превью вьюхи, и на конечной странице из 4 выводимых нод тайтл выводится только у самой первой - связи так и не нашел, кроме той, что после создания этой первой ноды и перед созданием последующих добавил 2 поля типа Content Taxonomy в тип материала (т.е. по сути связи никакой!).

Пробовал:

При включенном ajax в views при работе с раскрытыми фильтрами перезагружается страница

16 февраля 2012 в 15:33

Привет!

Странность в общем - настриваю вьюхи taxonomy/term/% для каждого словаря: в одной вьюхе разные отображения, привязываю их к соотв. словарям модулем TVI. Так вот, сначала все было нормуль - раскрытые фильтры работали как надо, но начиная с третьего добавленного отображения (хотя ничего особенно нового там нету) на странице термина таксономии при нажатии кнопки "применить" происходит перезагрузка страницы, при этом у кнопки все равно крутится троббер (обозначающий как раз аяксовую подгрузку). А вот сортировка работает нормально - все подгружается аяксом, страница не перезагружается.

[Будьте осторожнее] При обновлении 6.22 > 6.24 включите модуль locale

2 февраля 2012 в 21:11

Для тех, кто не использует модуль Locale из коробки - ошибка при апдейте Друпала. Нужно его включить на время апдейта.

Тема на орге: http://drupal.org/node/1425260.

Подсказано Andypost

Изменить ссылку комментария с 'comment/cid#...' на 'node_url/#...' (Drupal 7)

21 января 2012 в 21:07

Друзья, по умолчанию Друпал (видимо все-таки друпал, а не тема) выводит комментарии в виде "Автор Дата создания". Трабла в том, что "автор" ссылается на страницу профиля юзера, а дата создания является прямой ссылкой на комментарий в виде 'comment/cid#comment-cid', что, имхо, не логично, и потому хочу переделать ссылку с "Дата создания" на 'node_url#comment-cid'.

Например, если нода имеет путь 'my-node', а id коммента == 42, то ссылка на коммент по умолчанию выводится так: 'comment/42#comment-42', а нужно так: 'my-node#comment-42'.

К сожалению, в comment.tpl.php содержится переменная '$submitted', которая выводит уже сразу все вместе. А с comment.module такое:

Запланированное действие Rules: если неизмененное не опубликовано, а измененное опубликовано?

18 января 2012 в 22:35

Други! Не совсем понимаю, некорректно я составил правило или некорректно отрабатывает.

Есть набор условий:
ЕСЛИ
1. НЕНеизмененное содержимое опубликовано
И
2. Обновленное содержимое *определенные типы материалов*
И
3. Обновленное содержимое опубликовано
И
4. Обновленное содержимое's field 'my_field' has value [пусто]

Действие при выполнении условий:
1. Послать письмо пользователю.

Собственно, как планировалось:
Условия:
1, 2. Человек создает ноду определенного типа, а сохраняется она как неопубликованная (в настройках типа материала сделано).
3, 4. Я проверяю материал и жму галку "Опубликовано". Далее меняю автора ноды, затем в текстовом поле my_field удаляю весь текст.
Действие:

[Решено] Вывод региона в node.tpl.php теперь в Drupal 7

30 декабря 2011 в 12:30

Доброго дня, товарищи!

На орге нашел решение по выводу региона в шаблон node.tpl.php, однако, у меня почему-то не сработало. По аналогии сделал так (код обновлен на корректный):

В template.php добавляем:

<?php
function mytheme_preprocess_node(&$vars) {
if (
$blocks block_get_blocks_by_region('my_region')) {
  
$vars['my_region'] = $blocks;
  
$vars['my_region'] = $blocks;
  
$vars['my_region']['#theme_wrappers'] = array('region');
  
$vars['my_region']['#region'] = 'my_region';
  }
}
?>

В инфо файл темы:

<?php
regions
[my_region]    = My region
?>

В шаблон:

<?php
<div class="content-above">
    <?
php print render($my_region); ?>
    </div>
?>

Однако, ничего не выводит, кроме пустого дива. В то же время на странице списка блоков есть выбор региона, но на странице просмотра регионов (admin/structure/block/demo/my_theme) регион не отображается. Возможно, есть ошибка в коде, добавляемом в template.php?

[Решено] Выводить в пути анонсы материалов, если аргумента нет

27 декабря 2011 в 14:01

о/

Что требуется:
1. выводить ноды с урлом 'news/?ID=nid' (именно с такими символами)
2. чтобы при этом по урлу 'news' отображался список анонсов всех этих нод

Что сделано:
1. Созданы 2 вьюхи:
1.1. с аргументом Node: nid → Provide default argument → PHP-код
в коде следующее:

<?php
if($_GET['ID']) return $_GET['ID']; else {
views_embed_view('dfj''page_1');
}
?>

→ Action to take if argument does not validate: Display empty text.
1.2. Вторая вьюха как раз и есть 'dfj', 'page_1' с урлом у страницы 'news'

В чем трабла:
1. Вторая вьюха не ембедится - отображается пустой текст, а если в Action to take if argument does not validate выставить 404, то так и будет отдавать.
2. Попробовал сделать такую страницу через hook_menu, но поведение такое же, как в п.1 - видимо, вьюха приоритетнее.

Вопросы:
1. Как все же заставить эмбеддиться вьюху?
2. Может есть какой вариант подставить после оператора else, чтобы ничего не делало?

И, пожалуйста, не спрашивайте, нахрена мне все это! Smile

При клике на сортировку views-таблица переезжает в другой регион

5 декабря 2011 в 14:30

Вроде грехов немного, но какая-то чертовщина!

Здесь, если кликнуть по заголовку таблицы "Компания", который должен заменять стандартную сортировку данных, вся таблица переезжает в самый правый сайдбар.

Трабла наблюдается в браузерах FF, Opera, IE7.

Я так понимаю, что это не связано со стилями, т.к. по сути таблица съезжает в другой див. Бывает иногда, что таблица не переезжает, но сортировки нет.

Views: показать пользователя, отредактировавшего материал

1 декабря 2011 в 2:34

Сабж, views 2.

Добавлял связь "Редакция материала: Пользователь", но безрезультатно.

Views: taxonomy/term/% - разные страницы для разных терминов теперь для drupal 7

1 декабря 2011 в 0:32

Люди добрые, как-то проскакивала инфа о том, что в 7-ке настройка вывода терминов с помощью views для разных словарей возможна в Drupal 7.

Только вот как ни бодался с клоном стандартной taxonomy/term/% - нифига подобного. Кто реализовывал, подскажите, плиз?

Уже пробовал путь taxonomy/term/% заменить на my_path/%, где my_path соответствует началу url всех терминов одного словаря, а в аргументе ограничил термины словарем - казалось бы, вот оно - решение, ан нет - хрен там!

Какой модуль для автоматической перелинковки лучше? Есть что кроме Alinks для Drupal 7?

28 ноября 2011 в 0:56

Други, никак не могу выбрать между этими двумя наиболее вменяемыми модулями для 6-ки.

Как я понял, Alinks не работает со склоненными словами (что логично в нашем языке) и криво ставится у многих.

Второй, Glossify вроде как ссылается только на тайтлы нод и терминов без настроек.

Что посоветуете?

И второе, для 7-ки есть чего для аналогичной задачи?

This form is outdated. Reload the page and try again - уберите это!

27 ноября 2011 в 22:31

При простое формы добавления материала и попытке после этого ее сохранить вылезает данное сообщение: "This form is outdated. Reload the page and try again".

Соответственно, все, что до этого делал, теряется.

Возможно ли отключить данную проверку - никто этим не занимался?

[Решено] Undefined index: #type в функции template_preprocess_search_block_form()

27 ноября 2011 в 0:57

Уже несколько дней вылезает варнинг, корня которого найти не могу:
Notice: Undefined index: #type в функции template_preprocess_search_block_form() (строка 1070 в файле /modules/search/search.module).

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

[Решено] Кто знает синтаксис mod_rewrite в .htaccess, помогите?

19 ноября 2011 в 23:30

Люди добрые, помгите!

Пока не знай, выйдет ли чего из этого, но пробую - необходимо правило, чтобы вместо адреса 'node/nid' подставлялся адрес 'my_page/my_doc/?id=nid'

прописываю в .htaccess:

Ошибка: PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value

13 ноября 2011 в 0:31

Собственно, при добавлении ноды Друпал ругается на адрес "/статьи/как-правильно-ремонтировать-ламинат", и не могу понять, что не то.

Ошибка:

Косяк в Meta Tags 7.x-1.0-alpha3 или в Token... или в Drupal 7.9.

12 ноября 2011 в 22:36

Други, может у кого вываливалось подобное?

В модуле Meta tags указанной в сабже версии при добавлении токена из "группы" taxonomy_field вываливается ошибка, и при этом, к примеру, ключевые слова не подставляются, но запятыми отеделяются пробелы, соответственно, сколько ключевых слов должно быть, столько и запятых.

Собс-но ашыпка:

[Решено] На что заменить $submitted; чтобы показать только дату публикации

11 ноября 2011 в 1:02

Други, подскажите? В 6-ке запросто убирал. В 7-ке в node.tpl.php пробовал прописывать вместо:


<?php if ($display_submitted): ?>
    <p class="submitted"><?php print $submitted?></p>
<?php endif; ?>

Это:


<?php if ($display_submitted): ?>
        <?php if ($teaser): ?>
            <p class="submitted"><?php print t('Submitted by !author on @date', array('!author' => $username'@date' => $datetime); ?></p>
        <?php else: ?>
          <p class="submitted"><?php print $submitted?></p>
           <?php endif; ?>
        <?php endif; ?>
<?php 
endif; ?>

В поиске перевода это дело выводится так: "Опубликовано !datetime пользователем !username". Соответсвенно пробовал подставлять различные вариации переменных, но безрезультатно.

Далее в template.php вообще отсутствует функция <?php _preprocess_submitted ?>, и непонятно, где эти переменные обозначаются тогда - порыл все файлы темы - нету.

Все, что находил: это, это и это. Соответственно, пробовал все вариации оттуда, в т.ч. порписывать функцию в template.php, и все равно выводится непосредственно переменная.

Запланированное действие с нодой в указанное в поле Date время

8 ноября 2011 в 23:28

Кто-нибудь пробовал настраивать запланированное действие с нодой так, чтобы она снималась с публикации/удалялась/закрывалась от комментов в момент, указанный в поле (Field) Date?

Курю сейчас Rules для Друпал 7, подобного не нахожу.

Кто-нибудь ставил модуль Answers?

8 ноября 2011 в 1:51

Для одного проекта понадобилось нечто подобное рубрике вопрос/ответ. По ряду причин не подошли варианты нода/коммент и поле/поле. Начал искать модули и нашел всего 2:

1. Answers - начал читать описание, понравилось. Дошел до конца описания и ахуел ужаснулся, увидев абзац Dependencies. Как-то сразу отшибло. Но вдруг кто ставил - сильно ли сайт грузится после него, и сильно ли глючит это сборище беток?

[Решено] Nid в field--field_name.tpl.php

7 ноября 2011 в 15:40

Как подставить id ноды в шаблон поля в D7:

создал файл field--field_email_address.tpl.php, в нем прямиком необходимо вывести значение одного поля ссылкой: <a href="/email/node/nid/field_email_address">...</a>

[Решено] Синтаксис ссылки в php для нуба

7 ноября 2011 в 13:28

Люди добрые, подскажите, ибо как в php дуб.

В модуле есть ссылка вида:

<?php
$element
[$delta] = array('#markup' => l(t('Contact person by email'), 'email/' $object_type '/' 
$ids[0] . '/' $instance['field_name']));?>

Сформировавшаяся ссылка получается такой: /email/node/nid/field_email_address
Эту ссылку необходимо переделать в файле модуля на такую: /colorbox/form/email_mail_page_form?destination=/email/node/9/field_email_address&width=600&height=300 - все статично, кроме ID ноды.

Пробовал прописать тупо вот так:

<?php
$element
[$delta] = array('#markup' => l(t('Contact person by email'), 'colorbox/form/email_mail_page_form?destination=' 'email/' $object_type '/' $ids[0] . '/' $instance['field_name'] . '&width=500&height=500'));
?>

Но тогда спецсимволы '&', '=' заменяются на вида '%3F' и т.п.

Также не пойму, как в этом коде добавить к ссылке class="colorbox-load"

Спасибо!