These are chat archives for dru-io/Drupal

14th
Nov 2016
strelkovandrey
@strelkovandrey
Nov 14 2016 10:35
Добрый день
KarmaBot
@KarmaBot
Nov 14 2016 10:35
@strelkovandrey, привет, как настроение?
strelkovandrey
@strelkovandrey
Nov 14 2016 10:36
стоит задача создать блок внутри которого выполняется PHP код, который выведет определённый контент, PHP фильтр юзать и формат текст PHP code это считает абсолютно не true way
как я понимаю, самое идеальное это создать модуль который создаст мой кастомный блок с php кодом внутри
или может можно как то хуками это сделать
какое самое правильно решение?
Как я понимаю, вот то что мне нужно и это идеал http://xandeadx.ru/blog/drupal/255
Alexander Dubovskoy
@adubovskoy
Nov 14 2016 10:42
да
Anton L. Safin
@als-studio
Nov 14 2016 10:48
Иногда проще (и менее затратно для Drupal) добавить элемент в функции препроцессинга, и выводить его на страницу в нужном месте шаблона.
boolboost
@boolboost
Nov 14 2016 10:58
@strelkovandrey да, хуками, пишите свой кастомный модуль.
strelkovandrey
@strelkovandrey
Nov 14 2016 11:08
разрешите ещё один дилетантский вопрос, всё работает, но хочу в блоке вывести немного сложнее контент чем в примере, а именно

<div class="abc">
echo views_embed_view('comments_recent', 'page');
</div>

<div class="cba">
echo views_embed_view('comments_last', 'page');
</div>

  • как кста красиво код в гиттере вставлять?
как я должен нужный мне контент представить данной переменной $block['content'] = ('Hello World!');
KarmaBot
@KarmaBot
Nov 14 2016 11:09
Не узнал тебя, @strelkovandrey. Богатым будешь :)
boolboost
@boolboost
Nov 14 2016 11:17
@strelkovandrey что вам мешает. Не используйте echo пешите в переменные
Пишите*
strelkovandrey
@strelkovandrey
Nov 14 2016 11:24

@boolboost т.е. $block['content'] = "<div class="abc">
echo views_embed_view('comments_recent', 'page');
</div>

<div class="cba">
echo views_embed_view('comments_last', 'page');
</div>"

ткните мне пожалуйста носом в правильность написания на моём примере
Anton L. Safin
@als-studio
Nov 14 2016 11:24
Кавычки заэкранируйте
"<div class=\"abc\">" . views_embed_view('comments_recent', 'page') . "</div>"
Ну и т.д.
Либо
'<div class="abc">' . echo views_embed_view('comments_recent', 'page') . '</div>'
strelkovandrey
@strelkovandrey
Nov 14 2016 11:27
@als-studio Спасибо!
KarmaBot
@KarmaBot
Nov 14 2016 11:27
Спасибо (+1) для @als-studio принято! Текущая карма +2.
alexd73
@alexd73
Nov 14 2016 11:32
  • как кста красиво код в гиттере вставлять?
http://i.imgur.com/ZyJBtUK.png
strelkovandrey
@strelkovandrey
Nov 14 2016 11:38
@alexd73 Спасибо
KarmaBot
@KarmaBot
Nov 14 2016 11:38
Спасибо (+1) для @alexd73 принято! Текущая карма +5.
Airat
@codev0
Nov 14 2016 12:17
смайлик зачетный :D
wbxplrr
@wbxplrr
Nov 14 2016 12:59
Здравствуйте. Кто-нибудь может подсказать как прикрутить maskedinput к всплывающему в fancybox-форме полю?
KarmaBot
@KarmaBot
Nov 14 2016 12:59
@wbxplrr и тебе не хворать :)
wbxplrr
@wbxplrr
Nov 14 2016 13:00
(function($) {
    $.ajax({success: function (data) {
          $("#edit-commerce-buy-one-click-phone").mask("+7 (999) 999-9999", {placeholder:"# ### ###-####"});
    }
});
})(jQuery);
boolboost
@boolboost
Nov 14 2016 13:03
@wbxplrr есть модуль
Добавляет widget
wbxplrr
@wbxplrr
Nov 14 2016 13:06
@boolboost да, я знаю. Дело в том, что поля в этой всплывающей форме не настраиваются, их вывод задан в основном файле модуля commerce_*.module.
commerce_buy_one_click
Или я могу поменять тип на maskedinput прямо в этом файле?
  if (variable_get('commerce_buy_one_click_name_show', TRUE)) {
    $form['form_wrapper']['commerce_buy_one_click_name'] = array(
      '#title' => t('Your name'),
      '#type' => 'textfield',
      '#weight' => 20,
      '#default_value' => $user_name,
    );
  }

  if (variable_get('commerce_buy_one_click_email_show', TRUE)) {
    $form['form_wrapper']['commerce_buy_one_click_email'] = array(
      '#title' => t('Your email'),
      '#type' => 'textfield',
      '#weight' => 30,
      '#default_value' => $user_email,
    );
Airat
@codev0
Nov 14 2016 13:32
@wbxplrr если я правильно понял, надо повесить инициализацию плагина на событие on(‘change’).
Дело в том что этого поля нет на момент DOMContentLoaded или $(document).ready().
$(“#form”).on(‘change’, function() { // вызов masked input} );
wbxplrr
@wbxplrr
Nov 14 2016 13:41
@codev0 а если формы тоже нет на момент DOMContentLoaded?
Airat
@codev0
Nov 14 2016 13:42
@wbxplrr тогда на $(‘document’).on(‘change’, function());
хотя это очень плохо так делать
Evgeny
@tensor146
Nov 14 2016 13:42
Всем привет!
Вопрос про D8, насколько я вижу, он, если код объекта response >400 и <500 - насильно выставляет кэширование на час.
KarmaBot
@KarmaBot
Nov 14 2016 13:42
@tensor146 и тебе не хворать :)
Evgeny
@tensor146
Nov 14 2016 13:42
Как с этим бороться?
Airat
@codev0
Nov 14 2016 13:42
потому что он будет слушать весь документ
можно через drupal behaviors это сделать, но я не понял еще как с ним работать
а на 8 уже полноценный проект пилите? или просто поиграться?
Evgeny
@tensor146
Nov 14 2016 13:44
Проект
Airat
@codev0
Nov 14 2016 13:44
уже реди?
Evgeny
@tensor146
Nov 14 2016 13:44
drupal behaviors
Они стартуют при каждом ajax'е на странице.
В смысле "реди"?
Airat
@codev0
Nov 14 2016 13:45
8ка продакшн реди? вроде модулей много еще в альфе
Evgeny
@tensor146
Nov 14 2016 13:45
Да норм в-принципе.
Правда, задачи нужно оценивать аккуратнее.
Смотреть, есть ли что готовое.
Airat
@codev0
Nov 14 2016 13:46
@tensor146 спасибо
KarmaBot
@KarmaBot
Nov 14 2016 13:46
Спасибо (+1) для @tensor146 принято! Текущая карма +3.
Airat
@codev0
Nov 14 2016 13:46
поковыряю
wbxplrr
@wbxplrr
Nov 14 2016 13:48
@codev0 Спасибо, получилось. Правда первый раз когда текстбокс делаю активным маска не применяется, перевожу курсор на другой текстбокс (в первом всё стирается) потом назад и маска появляется
KarmaBot
@KarmaBot
Nov 14 2016 13:48
Спасибо (+1) для @codev0 принято! Текущая карма +5.
wbxplrr
@wbxplrr
Nov 14 2016 13:50
@codev0 даже не так. Нужно обязательно что-то в текстбоксе написат и переключить фокус
(function($) {
    $(document).on('change', function() {
          $("#edit-commerce-buy-one-click-phone").mask("+7 (999) 999-9999", {placeholder:"# ### ###-####"});
    });
})(jQuery);
Airat
@codev0
Nov 14 2016 13:51
@wbxplrr а у инпута какой id/class?
wbxplrr
@wbxplrr
Nov 14 2016 13:53
1.jpg
Airat
@codev0
Nov 14 2016 13:56
попробуйте вызвать инициализацию плагина из консоли, когда есть модалка
boolboost
@boolboost
Nov 14 2016 14:00
@wbxplrr всё равно через form api правильнее делать
Airat
@codev0
Nov 14 2016 14:08
@boolboost вы про что? правильнее вешать JS на инпут через Form API?
в Form API есть какие то JS плюшки?
boolboost
@boolboost
Nov 14 2016 14:08
Подключается по необходимости
attached
Airat
@codev0
Nov 14 2016 14:13
@wbxplrr https://habrahabr.ru/post/161039/ вот тут более понятно про drupal behaviors
wbxplrr
@wbxplrr
Nov 14 2016 14:14
@codev0 ок. почитаю.
alexd73
@alexd73
Nov 14 2016 14:51

Здравствуйте. Кто-нибудь может подсказать как прикрутить maskedinput к всплывающему в fancybox-форме полю? @wbxplrr

Я делал так:

Drupal.behaviors.myModule = {
        attach: function (context, settings) {
            if (typeof $(context).find("#edit-buy-art-buy-one-click-phone").mask == 'function') {
                $(context).find("#edit-buy-art-buy-one-click-phone").mask("+7(999)999-99-99");
            }
  }
}
boolboost
@boolboost
Nov 14 2016 14:53
@alexd73 вот смотрю эту темы с widget ипонимаю
Без сущности пахать никак не будет=\
alexd73
@alexd73
Nov 14 2016 14:54
Только не знаю fancyBox перечитывает бихайвирес
boolboost
@boolboost
Nov 14 2016 14:54
Сам fancybox нет
А вот даннве если по ajax получаешь то да срабатывает
Но это решается опциями fancybox
Если всё кастом
alexd73
@alexd73
Nov 14 2016 15:00
Я так к форме прикручивал
  $masked_input_plugin_path = libraries_get_path('maskedinput') . '/jquery.maskedinput-1.3.js';
  if (file_exists($masked_input_plugin_path)) {
    $form['#attached']['js'] = array($masked_input_plugin_path);
  }
boolboost
@boolboost
Nov 14 2016 15:22
@alexd73 говорят можно проще
alexd73
@alexd73
Nov 14 2016 15:23
может ) я покопался и на этом сайте уже другая библиотека для масок на инпут стояла ))
boolboost
@boolboost
Nov 14 2016 15:23
$form['input']['#type'] = 'masked_input';
alexd73
@alexd73
Nov 14 2016 15:24
Это если с виджетом?
boolboost
@boolboost
Nov 14 2016 15:24
Ну и там 2 параметра
Ага
Это модуль masked_input
alexd73
@alexd73
Nov 14 2016 15:24

покопался и на этом сайте уже другая библиотека для масок на инпут стояла ))

Так и так переделывать )

boolboost
@boolboost
Nov 14 2016 15:24

mask и #placeholder

Не ну я так просто разбираюсь щас с темой подключения виджетов в form api
В общем hook_element_info типы задаются
Буду щас тестить, мне этот способ как то больше нравится чем подкличать ричками просто в script.js
Ручками*
Вот читаешь и сразу понятно как это пашит
boolboost
@boolboost
Nov 14 2016 15:37
И да это не widget а элемент
Airat
@codev0
Nov 14 2016 18:55
у кого удалось настроить phpstorm + xdebug?
не пойму как заставить работать на точке остановке на определнной странице
Airat
@codev0
Nov 14 2016 19:07
завел