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

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

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

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

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

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

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

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

Возникла необходимость фильтровать по полю 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'=')
);
?>

Получаю:
 

17 июля 2013 в 0:08

Drupal commerce template.tpl.php

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как в 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.'),?>
5 октября 2012 в 17:25

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

Стояла задача добавить 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 вещи:

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

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

Кто ставил и настраивал модуль 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

2 октября 2012 в 23:01
Аватар пользователя divined divined 0 12

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

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

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

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

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

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

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

25 сентября 2012 в 10:27
Аватар пользователя divined divined 0 14

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нужно обрезать десятичные окончания во всех десятичных полях, если окончания равны 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:
?>
3 сентября 2012 в 14:07

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

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

http://drupal.org/node/1319292

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

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

27 августа 2012 в 17:58
Аватар пользователя divined divined 0 13

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

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

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

14 мая 2012 в 11:59
Аватар пользователя divined divined 0 13

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

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

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

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

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

23 апреля 2012 в 17:12
Аватар пользователя divined divined 0 17

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

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

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

14 марта 2012 в 17:45

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

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

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

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

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

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

9 марта 2012 в 14:58

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

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

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

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

Ahah элементы формы

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

Есть затык с AHAH формой, помогите разобраться.

На форме есть два checkbox'а с ahah обработчиками и отключенными progress bar'ами:

8 февраля 2012 в 13:09

[Решено частично] Кастомизация модуля Boost

Кто может оказать содействие в доработке модуля boost?

Смысл доработки:

Учитывать значение Cookie для генерации нового вида страницы в кэшэ.

Часть которая касается выбора файла для реврайтинга в .htaccess я сделал.
Т.е. Правило читает куки, и на основании его значения выбирает файлы для вывода:

1. site.ru/page1.html.gz //Если куки нет
2. site.ru/page1+r.html.gz //Если значение куки = r и т.д.

Требуется чтобы boost создавал разные варианты кэша для разных значений куки.

..Где будет использоваться:

12 декабря 2011 в 13:50

Опрос всех сессий на сайте

Собственно вопрос сводится к чему..

Есть некий портфель объектов, который формирует пользователь.
В сессию записывается массив nid'ов.

Все, работает все устраивает.
Вопрос: Можно ли как-то на основании сессий сделать отчет..
Обойти все активные сессии и прочитать этот массив в каждой сессии?

Или все-таки придется отходить от сессий и писать дополнительную таблицу в БД для хранения этой информации?
Конечно в любом случае на основании SID.

6 декабря 2011 в 17:52

Chrome - изменение порядка картинок в материале

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

есть у кого еще такая проблема:
В браузере Chrome не изменяется порядок показа картинок (CCK ImageField).

В форме редактирования материала за крестик берешь картинку, меняешь порядок, нажимаешь сохранить и ничего не происходит, остается предыдущий порядок.
Протестировано на 2-х ПК с разными версиями хрома.

В Mozilla все прекрасно меняется.

15 сентября 2011 в 18:00