These are chat archives for dru-io/Drupal

28th
Mar 2016
Alexander Dubovskoy
@adubovskoy
Mar 28 2016 15:09
maria-kvitova
@maria-kvitova
Mar 28 2016 19:25
М-да. Избавиться от php-template в ядре это еще не все - из головы разработчиков его выкинуть куда сложнее.
Alan Bondarchuk
@fortis
Mar 28 2016 19:44
эм))
а чем это кардинально отличается от например {{ form(view, variables = []) }} в симфони?
Alexander Dubovskoy
@adubovskoy
Mar 28 2016 19:46
не, там все в порядке, кроме одного варианта: {{ 'return date("Y");' | php }}
остальное норм
ну и preg_replace тоже лишнее
maria-kvitova
@maria-kvitova
Mar 28 2016 19:49
Мешать вывод и логику - плохая идея. Внезаввисимости от фреймворка
Alan Bondarchuk
@fortis
Mar 28 2016 19:50
там нет логики
в примере во всяком случае на странице модуля
maria-kvitova
@maria-kvitova
Mar 28 2016 19:51
Доставать блок, вьюшку, сущность - это есть логика
Токены - тоже логика.
Все нужно выносить в переменные и обрабатывать в препроцессах/процессах
Это мое мнение
Alexander Dubovskoy
@adubovskoy
Mar 28 2016 20:05
имхо не логика.
не производится вычислений, присваиваний, сравнений. производится только запрос для вывода.
тут холивар должен уточнить формулировки) вы аргументируете "не должно быть функций для отображения, только переменные". я лично не против функций.
Sergey Bril
@brilsergei
Mar 28 2016 20:12
запрос для вывода - это значит view знает откуда берутся данные, получаем связь view->model, что в идеальном мире не очень то хорошо. Соглашусь с Марией - все переменные лучше подготовить в препроцессоре, описать в шапке шаблона, и у пусть уже верстальщик выводит их так, как хочет.
я лично не против функций.
Я тоже, если функции рендерят контент, а не производят какие-либо вычисления или загрузку данных из БД
Alan Bondarchuk
@fortis
Mar 28 2016 20:22
mvc это просто паттерн)
и не все фреймворки его строго навязывают, симфони как пример
и это не единственно верный путь) есть и примеры где он вреден, обсуждали тут, так что в любом случае программист взвешивает
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 20:25
@fortis +
@fortis шалют
Alan Bondarchuk
@fortis
Mar 28 2016 20:26
@AlexandrPoddubsky hi)
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 20:26
@fortis не подскажешь плейсхолдеры поддерживают ли множесвенные значения?
,array(':al_s' => $ur, ':cr_d' => $creat)
Alan Bondarchuk
@fortis
Mar 28 2016 20:29
ты все вставку мучаешь?)
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 20:29
как время появляется ага. насилую-развлекаюсь
Alan Bondarchuk
@fortis
Mar 28 2016 20:29
в 7?
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 20:29
да
вернулся к вставке. другое уже пашет. на вечер мысли а чтоб еще учудить
вот множесвенный запрос обезопасить. добаить плейсхолдеры
ядреные а не свои
Alan Bondarchuk
@fortis
Mar 28 2016 20:38
https://api.drupal.org/api/drupal/includes%21database%21query.inc/function/DatabaseCondition%3A%3Acompile/7
         foreach ($condition['value'] as $value) {
              $placeholder = ':db_condition_placeholder_' . $queryPlaceholder->nextPlaceholder();
              $arguments[$placeholder] = $value;
              $placeholders[] = $placeholder;
            }
ну судя по этому под каждое значение свой
nextPlaceholder просто ++ делает
ты просто склеиваешь строку?
в цикле $query->values() не подойдет?
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 20:59
ну да типа так (".implode(', ',$cols).")
(':al_s'.$key.' => $ur, ':cr_d'.$key.' ' => $creat) блин придется так делать пока
не не подойдет увы
Alan Bondarchuk
@fortis
Mar 28 2016 21:11
ну если он у тебя один такой можешь хотя бы как в 6ке в https://api.drupal.org/api/drupal/includes%21database.inc/function/_db_query_callback/6 делать приведение к типу и для строк db_escape_string
хотя не у тебя ж итак наверно db_query все это итак есть
$cols только проверять что не пустой иначе имплод зафинтит)
можно еще попробовать (?,?,?,?)
и в аргументах array(1,2,3,4)
Alan Bondarchuk
@fortis
Mar 28 2016 21:17
тогда сможешь просто массив аргументов заполнить по количеству всех ? под каждую вставку
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 21:18
да но все равно будет не один а много. массивы не поддерживаются же
пока сделаю кучу. потом уже буду думать дальше. а то некрасиво
да и выод уже пора сделать
вывод
Alan Bondarchuk
@fortis
Mar 28 2016 21:20
имею ввиду можно попробовать (?,?) (?,?) (?,?)
и в аргументах (1,2,1,2,1,2)
если ? то в аргументах один массив без ключей просто по порядку
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 21:22
ага примерно понял
надо подумать. :a, :b,:a, :b,:a, :b,:a, :b, так?
(?,?) ,(?,?), (?,?) тут так только через запятую
Alan Bondarchuk
@fortis
Mar 28 2016 21:26
двоеточий не нужно с ними придётся в аргументах передавать имя аргумента
просто знак вопроса где должно быть значение
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 21:27
честно? тогда не понял извини. уже походу начал подтормаживать
пример бы
Alan Bondarchuk
@fortis
Mar 28 2016 21:28
дай запрос
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 21:31
db_query('INSERT INTO {temp} (alias, metrics, created, urlhash)
                                VALUES (:al_s, :me_s, :cr_d, :u_hash)
                                ON DUPLICATE KEY UPDATE  created = :cr_d,  urlhash = :u_hash ',
                           array(':al_s' => $url, ':me_s' =>$metrics, ':cr_d' => $creat, ':u_hash' =>$urlhash)
                 );
это для одиночных. для множесвенного пока порушил.
разбиваю сейчас
Alan Bondarchuk
@fortis
Mar 28 2016 21:40
db_query('INSERT INTO {temp} (alias, metrics, created, urlhash)
VALUES (?,?,?,?)
ON DUPLICATE KEY UPDATE created = ?, urlhash = ?', array($url, $metrics, $creat, $urlhash,$creat, $urlhash));
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 21:46
да но $url переменая же с массивом
Alan Bondarchuk
@fortis
Mar 28 2016 22:01
ну ты тоже не как переменную передаешь она сериализованно хранится?
ее
если temp через schema api описана то с типами друпал разберётся
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 22:12
с типами полей? ну да описаны. а как же : ? или я не понимаю как плейсхолдеры реализованы в 7
в 6 через %
Alan Bondarchuk
@fortis
Mar 28 2016 22:29
да в 6 % а в 7 либо ? либо именованные
и кавычками их в 7 не нужно оборачивать
Alexandr.Poddubsky
@AlexandrPoddubsky
Mar 28 2016 22:53
так насчет array($url, $metrics, $creat, $urlhash,$creat, $urlhash)); удобнее да. но в них же переменные с обычными массивами же
обычные двумерные