kv4

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

user-icon

Константин Черняков kv4

Views block id

Аватар пользователя kv4

Почему некоторые блоки созданные модулем Views имеют нормальную delta: например my_news, в то время как у некоторых других delta выглядит так: 6afc54f4df9bf9a3666f2387918fac28.

А это потому, что модуль Block (block.module) определяет максимальную длину delta в 32 символа. Но поскольку дельта в модуле Views формируется из названий представлений (а они могут быть более 32 символов), то delta формируется как хэш md5. Ниже кусок кода, который из реализации Views (views.module)

<?php
function views_block_info() {
...
// block.module has a delta length limit of 32, but our deltas can
  // unfortunately be longer because view names can be 32 and display IDs
  // can also be 32. So for very long deltas, change to md5 hashes.
  
$hashes = array();
?>
0 Thanks

Вывод поля, в зависимости от значения - настройки через админку

Аватар пользователя kv4

Задача
Есть тип материала Автомобиль. Он содержит поле с ценой - числовое поле. Нужно в зависимости от значения этого поля изменять его вывод.

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

На сайте использутся Display Suite и Rules. Создавать новый модуль не желательно.

Модуль ds_forms должен быть включен, что бы можно было управлять отображением полей в форме редактирования ноды.

Решение

0 Thanks

str_replace в модуле token

Аватар пользователя kv4

Привет!

Возникла проблема, может кто-то поможет разрешить.

Есть вот такой код

<?php
  $text 
"[block:views:test-test_bxslider] [block:user:online] [block:node:recent]";
  
  
$tokens = array('[block:views:test-test_bxslider]''[block:user:online]''[block:node:recent]');
  
$values = array('html-1''html-2''html-3');

  foreach(

$tokens as $key => $token){
    
$text str_replace($token$values[$key], $text);
  }
?>

'html-1', 'html-2', 'html-3' - подразумевается какая-то разметка.

В прикреплённом файле разметка для [block:views:test-test_bxslider]

Так вот, первая же замена заменяет просто всё содержимое $text.

0 Thanks

LANGUAGE_NONE или не LANGUAGE_NONE...

Аватар пользователя kv4

Привет!

Не могу понять, от чего зависит ключ в массиве поля "und".
Например есть нода с полем field_name,
Доступ к значению поля всегда примерно такой

0 Thanks

Обновления сайта - кто как...

Аватар пользователя kv4

Периодически приходится решать один и тот-же вопрос - как обновить сайт на боевом сервере. Я имею ввиду не обновления ядра и/или модулей, а о обновления настроек сайта. Например: типы материалов, настройки их отображения, представления, переменные, блоки и т.п.

В общем, может кто-нибудь поделится своим опытом, расскажет как это делает сам, какие дополнительные модули использует, как синхронизирует версии БД с версиями кода.

Я использую модуль Features для переноса настроек (однако он не на 100% решает задачи переноса настроек) + то, что Features не может переносить, прописываю в модуле созданном Features вручную. БД храню в git вместе с кодом. Перед каждой фиксацией изменений соответственно делается дамп базы.

План обновлений примерно такой:

0 Thanks

Нужен человек для поддержки сайтов на Drupal

Аватар пользователя kv4

Нужен человек для поддержки сайтов на Drupal 7.

Что нужно будет делать:
- добавлять функционал;
- исправлять ошибки в том, что есть;

Работа скорее всего будет эпизодической.
Оплата ориентировочно от 250 руб./час. в зависимости от того, насколько быстро умеете решать задачи.

Время исполнения оговаривается предварительно перед началом работ. В соответствии с этим и сумма оплаты.
Готов оплачивать 50% предоплаты и вторую половину после сдачи работы.

0 Thanks

lightbox2 - ввыод изображений разного размера

Аватар пользователя kv4

Привет.

Расскажу о том, как на странице показать изображения разного размера. Пример картинки

У нас есть тип материала "Автомобиль", в нём, помимо прочих присутствует поле field_car_photos (изображения автомобиля).
Тип поля - изображение.
Количество значений - не ограничено.
В настройках отображения выбран формат вывода Lightbox2: lightshow: ad-page-preview-photo->original, где ad-page-preview-photo - стиль изображения размером 99х74 например.

После создания материала, мы увидим, что все картинки выводятся одинакового размера - 99х74. А нам нужно, что бы первая картинка была большой 400х300 (это заранее созданный стиль изображения, который я назвал ad-first-photo).

0 Thanks

Entity или Field multicolumn

Аватар пользователя kv4

Привет всем.

Есть некий тип материала, у которого набралось со временем куча полей (порядка 30). Понятное дело, при выборке ноды с таким количеством полей запрос выглядит мягко говоря странно - целый ворох JOIN`ов.
90% полей заполняется всегда. Т.е. не бывает пустых не заполненных полей.
Логично было бы создать новый тип Entity с набором свойств, перекрывающим потребности.

Т.е. одна запись в таблице, содержала бы все необходимые данные. Тогда и производительность вырастет, и кол-во таблиц БД заметно сократиться.

Но, есть ещё один вариант - создать комплексное поле. Определить новый тип поля, со всеми требуемыми полями (смешно получилось:)).

В общем надеюсь достаточно понятно изложил мысль:)

0 Thanks

drupal 7 ajax select и required radios

Аватар пользователя kv4

Добрый день!
Помогите решить задачу.

Есть тип материала - car.
Содержит поля:
Марка автомобиля - make; type=select; Обязательное поле.
Модель автомобиля - model; type=select; Обязательное поле.
Статус - status; type=radios; Обязательное поле.

Прикручиваю ajax к выбору марки:

<?php$form['field_car_make']['und']['#ajax'] = array(
      'callback' => 'car_make_changed',
      'wrapper' => 'field_car_data_wrapper',
      'progress' => array(
          'type' => 'throbber',
          'message' => ' '
      ),
  );?>

И вот при изменении марки, возникает ошибка 'Сделан недопустимый выбор... блаблабла' - ругается на поле status, потому, что не выбрано значение в этом поле.

0 Thanks

ajax form validation (валидация формы с ajax)

Аватар пользователя kv4

Добрый день!
Есть форма, в которой:
Два списка - марка и модель автомобиля, и одно поле статус (чекбоксы). Все поля обязательны для заполнения.
Марка и модель выбираются из одного словаря таксономии. К полю марка привязан ajax вызов. Т.е. после выбора марки, обновляется список доступных моделей.
Суть вопроса, при выборе марки, форма не проходит валидацию, пока не выбран один из статусов. Как убрать валидацию для ajax вызова?

Спасибо.

0 Thanks

content_type - как создаются таблицы?

Аватар пользователя kv4

Добрый день!

Создал тип материала, с набором CCK полей. В базе появилась таблица content_type_instok (instok - название типа материала), с набором полей почти соответствующим тем полям, которые я насоздавал для материала, но для некоторых полей создались отдельные таблицы. В таком виде сайт работает на прод. сервере уже более года.
Теперь мне потребовалось немного изменить набор полей в этом типе материала, и сделав это на тестовом сервере, я обнаружил, что набор полей в таблице content_type_instok сильно сократился, и там остались только nid и vid поля. Вопрос. что повлияло на разделение таблиц?

Пока писал вопрос, понял что произошло. Возможно у кого-то возникнет такой же вопрос, так что напишу сразу и ответ. (Если я ошибаюсь, то просьба поправить)

0 Thanks

Ubercart в мультисайтинге

Аватар пользователя kv4

Добрый день уважаемые!
Такая задача - есть несколько сайтов, все они расположены на одном домене второго уровня и у них различные поддомены.
site_1.main_site.ru
site_2.main_site.ru
site_3.main_site.ru
site_4.main_site.ru

Сайты пользуются одной базой, у таблиц каждого сайта разные префиксы. Однако есть и общие таблицы, например users, role, sessions, authmap... т.е. у них общая авторизация.

На двух из этих сайтов, нужно настроить интернет магазин, а в будущем возможно и на всех. В магазинах будут продаваться некие услуги. Но корзина должна быть единая для всех сайтов, т.е. пользователь может наложить в неё услуг из разных магазинов и потом оплатить всё скопом.

Так вот, может быть есть у кого-то опыт с подобным использованием ubercart (предполагается использовать его, но может есть что-то более подходящее).

Какие таблицы можно шарить для разных сайтов, какие лучше не трогать?

Спасибо:)

0 Thanks

валидация форм

Аватар пользователя kv4

Как реализовать валидацию формы для блока. Форма сабмитится через ahah. Код такой:


<?php

/**
 * Реализация hook_menu() 
 */
function cost_calculator_menu(){

  

$items['services/cost-calculator/calculate'] = array(
    
'page callback' => 'cost_calculator_calculate',
    
'access arguments' => TRUE,
    
'type' => CALLBACK_ITEM,
  );

  return 

$items;
}

/**
 * Реализация hook_block()
 */
function cost_calculator_block($op 'list'$delta 0$edit = array()){
  switch(
$op){
    case 
'list';
      
// Блок расчёта стоимости таможни
      
$blocks['customs'] = array(
        
'info' => t('Расчёт таможенной пошлины.'),
        
'cache' => BLOCK_NO_CACHE,
      );

      return 

$blocks;
    case 
'configure':
      return 
$form;
    case 
'save':
      return;
    case 
'view':
      
$block['content'] = drupal_get_form('calculator_form'$delta);
      return 
$block;
  }
}

function 

calculator_form(&$form_state$delta){
    
$foem['sum'] = array(
      
'#type' => 'textfield'
    ); 
 
  
$form['calculate-button'] = array(
    
'#type' => 'submit',
    
'#value' => t("Рассчитать"),
    
'#ahah' => array(
      
'path' => 'services/cost-calculator/calculate',
      
'wrapper' => 'calc-result',
    ),
  );

  

$form['calc-result'] = array(
    
'#value' => '&nbsp;',
    
'#prefix' => "<div id='calc-result'>",
    
'#suffix' => "</div>",
  );

  return 

$form;
}

// эта функция не вызывается никогда
function calculator_form_validate(&$form, &$form_state){
    
$va 2;
}

function 

cost_calculator_calculate(){?>
0 Thanks

Спамеры: как с ними бороться?

Аватар пользователя kv4

Добрый день уважаемые. Случилось вот что. Кто-то, зашёл на мой сайт как гость, и разместил кучу левого контента на моём сайте. Обновления все устанавливаются регулярно, Единственное что не обновлено WebForms. Возможно кто-то сталкивался с подобным... как такое могло произойти? И что с этим делать?

0 Thanks

Как создать задачу выполняемую по расписанию

Аватар пользователя kv4

Как создать свою задачу для регулярного выполнения?
Например, есть модуль, который решает некую задачу, и требуется его запускать каждые 3 часа, и другой модуль, который требуется запускать раз в сутки.
Как в Drupal это делается?

Просто мне не очень понятна идеология.
Например есть такая запись
0 * * * * wget -O - -q -t 1 http://www.example.com/cron.php

0 Thanks

[РЕШЕНО] Валидация формы настройки блока

Аватар пользователя kv4

Доброго всем.

У меня такой вопрос. Создаю блок, для него нужна форма настроек параметров.
создаю её, а каким образом происходит валидация формы в этом случае?
form_name_validate - не вызывается, а сразу вызывается hook_block с параметром $op = save.

Подскажите как проверку форме устроить?

0 Thanks

[РЕШЕНО] CCK + Views

Аватар пользователя kv4

Здравствуйте!
Как вывести в Views ноду со всеми добавленными к ней CCK полями?
То есть, CCK поля могут добавляться со временем или удаляться, и при этом Views должен выводить только существующие поля.

Спасибо.

0 Thanks

Работа - нужен views

Аватар пользователя kv4

Привет.

Задача такая:
Есть тип контента "автомобиль". Нужно создать views, в котором можно будет осуществлять фильтрацию по разным критериям + сортировку по столбцам результирующей таблицы.

Более подробное ТЗ могу выслать по электронке.

0 Thanks

[РЕШЕНО]db_query

Аватар пользователя kv4

Привет уважаемые!

выполняю вот такой код

0 Thanks