Блог пользователя - divined

Трекер для анонимный юзеров

17 декабря 2014 в 16:12

Стоит задача создать страницу "трекер" для анонимных юзеров.

Страница должна отображать ноды, созданные или обновленные после последнего посещения анонимным пользователем сайта с возможной фильтрацией: "Только новые", "Только обновленные" и "Все".

В голову лезет только дебильное решение типа:

1. Дать юзеру "печеньку" с датой последнего посещения
2. Во вьюхе сделать контекст по этой "печеньке"

Огромный минус: кэширование (Authcache) придется отключать.

[РЕШЕНО] Как лучше организовать сео блок?

10 декабря 2014 в 18:22

Суть в следующем, на сайте необходимо организовать ОДИН СЕО блок (текстовый), но чтобы контент этого блока менялся в зависимости от контекста, адреса страницы или раздела (не важно)

[Решено] Проблема с генерацией запроса SQL для поля varchar

17 июля 2013 в 0:08

Возникла необходимость фильтровать по полю varchar.

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

Что делаю:

<?php
$this
->query->add_where(0
 
db_and()  
  ->
condition($table3.".field_value_value"min($value), '>=')
  ->
condition($table3.".field_value_value"max($value), '<=')
  ->
condition($table6.".field_label_value"$label'=')
);
?>

Получаю:
 

Views генерация запроса, БРЕД

14 января 2013 в 15:42

Привет всем!

Столкнулся с проблемой с которой без пол литра не разберусь, а именно:

Views генерит такой запрос...

Drupal commerce template.tpl.php

13 декабря 2012 в 22:02

Как стилизовать свои продукты?
А именно: добавить полю цены враппер, существенно изменить позиции элементов, перемешав и объединив некоторые, что невозможно сделать в управлении отображением.

Редактирование node--{node_type_display}.tpl.php - массива $content позволяет достичь некоторых результатов, но все сбрасывается при выборе любого атрибута: Wrapper исчезает, позиции меняются на стандартные.

Нигде не могу найти информацию какой файл шаблона нужен, например product--{product_type}.tpl.php с прямым доступом к переменным.

Синимы и массовое обновление

21 ноября 2012 в 18:49

Как вы все знаете в 7-ке добавили возможность массового обновления синонимов.

Но вот 2 проблемы:

1. Обновлять приходится сразу все типы материалов.
(А если у меня около 100 тыс. нод.? И необходим строгий порядок обновления по типу материала?)
Ладно, оставляем некоторые шаблоны пустыми, чтобы обновить их во второй заход.

Тут вторая проблема.

2. Друпал обновляет все синонимы, включая те, у которых не задан паттерн(шаблон).

Все это выливается в 3-ий день обновления синонимов.

[Решено] Токен порядкового номера для полей с множественными значениями

15 октября 2012 в 11:27

Кто сталкивался с необходимость написания токена для получения порядкового номера для поля с множественными значениями.

Задача: заполнить атрибуты alt и title у картинок ноды.

Поставил модуль Image attribute defaults (позволяет задавать атрибуты по умолчанию), исправил и подогнал к своей задаче.

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

Или есть другой вариант решения задачи?

Очередной нубский вопрос

5 октября 2012 в 17:25

Как в 7-ке установить значение по умолчанию для элемента формы типа radios?

Вот код:

<?php
    $options 
= array(
        
=> t('All'),
        
10 => t('Sea resorts'),
        
13 => t('Ski resorts'),
        
14 => t('SPA resorts'),
        
30 => t('Other')
    );
    
$form['pid'] = array(
        
'#type' => 'radios',
        
'#required' => TRUE,
        
'#default_value' => 0,
        
'#options' => $options,
        
    );
?>

Вот кусок из Form API Reference:

<?php
   $active 
= array(=> t('Closed'), => t('Active'));
...
  
$form['settings']['active'] = array(
    
'#type' => 'radios',
    
'#title' => t('Poll status'),
    
'#default_value' => isset($node->active) ? $node->active 1,
    
'#options' => $active,
    
'#description' => t('When a poll is closed, visitors can no longer vote for it.'),?>

Ajax событие к не Drupal Form элементам

5 октября 2012 в 12:34

Стояла задача добавить ajax событие на элемент формы созданный не Друпалом. В моем случае это оказался "Path" от элемента SVG, созданного библиотекой Raphael. Т.е. кусочек интерактивной карты.

Решение:

1. Создаем элемент на форме, который будет выполнять функции ajax элемента:

<?php
        $form
['tid'] = array(
        
'#type' => 'textfield',
        
'#default_value' => '',
        
'#ajax' => array (
            
'callback' => 'mapsearch_cities',
            
'wrapper' => 'cities',
            
'event' => 'hs_changed',
        ),
    );
?>

2. В JS коде генерации неДрупал элемента(карты Raphael), присваиваем этому элементу событие mousedown, это можно сделать как минимум 5 способами, смотрите документацию jquery или в моем случае библиотеки Raphael.

В этом событии нам нужно сделать 2 вещи:

Права на указание ширины и долготы ноды в модуле gmap.

2 октября 2012 в 23:01

Кто ставил и настраивал модуль gmap подскажите:

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

Облазил все права, нашел только эти, все установлены в разрешено

отправить широту/долготу
view location directory
view node location table
view user location table

administer user locations
set own user location
view all user locations
view own user location

Форма не сабмитится при "левом присоединении" в запросе

25 сентября 2012 в 10:27

Хм, странная ситуация, моя в шоке ))

Итак, есть форма, записи "по умолчанию" в которую подставляются по результатам запроса.

Вернее сказать, что обход результатов запроса создает форму определенной величины. Конкретно:
Обход всех дочерних элементов у 1 материала, по модулю nodehierarchy, и занесение их в 1 таблицу-форму для массового редактирования.

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

ПС: не отрабатывает - значит при сабмите просто загружается заново форма, но метод ПОСТ происходит.

Вопрос: Как сабмит формы связан с наличием в запросе "левого присоединения".

Не могу понять новый AHAH в друпал 7

17 сентября 2012 в 17:38

Подскажите уже весь мозг сломал.

Как сделать добавление элементов в форму с помощью AJAX.

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

А вот если добавить новый элемент на форму, то его значения не попадают в form_state.

В 6 друпале мы пересобирали форму заново и все ложилось как надо. В 7-ке хоть убей не вижу как пересобрать форму для ДОБАВЛЕНИЯ в нее новых полей.

пустой $content['field_NAME']

13 сентября 2012 в 14:53

Собственно в заглавии проблема:

Для всех полей нет значений в массиве $content в node.tpl.php.

print_r ($content['field_NAME']); возвращает пусто.
print_r ($node->field_NAME['und'][0]['value']); возвращает значение.

Нужно вывести поле с его суфиксам, префиксами и лэйблами.
В то же время переопределен формат вывода значений и суфиксов. (Мультиязычный сайт - перевод суфиксов и обрезка пустых нолей в числе с плавающей запятой после запятой)

Форматирование вывода стандартного ckk number

3 сентября 2012 в 14:07

Нужно обрезать десятичные окончания во всех десятичных полях, если окончания равны 0.

198.00 -> 198
198.10 -> 198.10

Нашел где это сделать в ядре:

<?php
function number_field_formatter_view($entity_type$entity$field$instance$langcode$items$display) {
  
$element = array();
  
$settings $display['settings'];

  switch (

$display['type']) {
    case 
'number_integer':
    case 
'number_decimal':
      foreach (
$items as $delta => $item) {
        switch (
$item['value']-intval($item['value'])) {
            case 
0:
            
$output number_format($item['value'], 0$settings['decimal_separator'], $settings['thousand_separator']);
            break;
            default:
?>

Производительность Nodehierarchy

27 августа 2012 в 17:58

Кто использует модуль Node Hierarchy как решили вопрос с быстродействием данного модуля?

http://drupal.org/node/1319292

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

У меня 20000+ нод, соответственно меню иерархии очень огромное. Только тело запроса к БД весит ~24Мб, и соответственно ни о каком кэше (в том числе sql) говорить не приходится.

Перевод поля термина таксономии в Drupal 7

14 мая 2012 в 11:59

Приветствую, возникла проблема парюсь уже неделю:

Не могу перевести на другие языки отличные от оригинального, поле термина таксономии.
Как вы знаете, терминам таксономии в 7 друпале добавили поля аналогичные cсk, так вот значения этих полей я не могу перевести, их нет ни в одной таблице перевода, да и просто через поиск не появляются.

Мультивалютный сайт "без уберкарта", (размышления)

23 апреля 2012 в 17:12

Приветствую всех,

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

Тезисы:
1. Решения на основе JS
2. Решение на основе дополнения CCK
3. Решение на основе модуля locale
4. Ваше видение решения
5. Готовые решения которым можно уделить внимание

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

Помогите понять поведение drupal

14 марта 2012 в 17:45

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 30471139 bytes) in /modules/filter/filter.module on line 1001

phpinfo(): memory_limit 2048M 2048M

ошибка появляется при редактировании ноды.

Снова проблема с AHAH =( (Временами перегружается страница)

9 марта 2012 в 14:58

Здравствуйте.

И снова проблема с AHAH:
выражается в том что изредка (1 раз из 10) вместо выполнения AHAH выполняется обычный POST, который приводит к перезагрузке страницы.
Бывает что я вижу как вставились данные из AHAH запроса и тут же перезагрузка страницы.

Связать проблему чисто теоретически могу только с переходом на новый сервер, т.к. до этого все работало как часы.
Отличия нового сервера только в PHP 5.3.

Кто сталкивался и как решал проблему?

ПС. Доунгрейд ПХП невозможен по причине установленного ПО только для ПХП 5.3

Как все таки сделать ahah+checkboxes?

21 февраля 2012 в 16:01

Приветствую.

Задача сводится к перезаписи массива checkboxes при ahah выборе.
Т.е. при определенном значении поля select нужно выводить или 1 набор checkboxes или другой,
для этого нужно использовать drupal_render, но он не рендерит эти элементы (