Познаем D7 Битрикс за 40 минут

  • Познаем D7 Битрикс за 40 минут

    Антон Долганин 17 Марта 2016 9:51 5195
    Новая технология Битрикс, которая появилась уже достаточно давно, позволяет легко и просто начать обращаться к вашей собственной таблице СУБД методами, к которым вы привыкли раз и навсегда. Но если вы еще не знаете этой технологии, или она вас пугает, то вам сюда.


    Скачать видео.

    Подключение в init.php
    CModule::AddAutoloadClasses(
       '',
       array(
          '\Asd\BookTable' => '/bitrix/php_interface/lib/book.php',
          )
    );
     

    Таблица, с который работали на семинаре:
     CREATE TABLE `b_book` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `DATE_CREATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      `TITLE` varchar(250) NOT NULL,
      `USER_ID` int(18) DEFAULT null,
      PRIMARY KEY (`ID`)
    ) ; 

    Курс здесь.
    Моя презентация здесь.
    Файл с классом прикрепляю к посту.
    Файлы:
    book.php (1.25 КБ)

mostovoi@bk.ru
20 Марта 2016 16:01
Покажите пример со связью USER_ID и название компании (на 39 минуте 39 секунде)
Антон Долганин
21 Марта 2016 5:36
Спасибо за вопрос. Я вернусь к этому на семинаре по хайлоад, который запланирован на 25 число.
sigtel
21 Марта 2016 20:26
3 маленьких вопроса как:
1. Выполнить сортировку ReferenceField? Пример: таблица вопросов и таблица - по нескольку ответов на каждый вопрос. Делаем массив вопросов с ответами, но у таблицы ответов есть поле SORT.
2. Через runtime выполнить арифметическую операцию (в том числе над полями ReferenceField)? Например присоединяемое поле разделить на переменную (курс валюты).
3. Изменить имена подключаемых полей (и/или положить во вложенный массив при одном значении)?
В инструкции следующий тезис  ясности не дал:
"При частом использовании поля соседней сущности можно воспользоваться ExpressionField и определить удаленное поле как локальное: new Entity\ExpressionField('AUTHOR_NAME', '%s', 'AUTHOR.NAME')"
Префикс добавить можно, указав в select ("префикс" => "имя поля";).
sigtel
21 Марта 2016 21:33
вопрос 2 удалось победить через fetch_data_modification
Антон Долганин
31 Марта 2016 6:59
Вебинаров в продолжение D7 пока не случилось, к сожалению. Отвеачаю тут.

1. Эту задачу я не смог решить даже на чистом мускуле. Задача была похожая - вывести список топиков форума, и для каждого приплюсовать первое сообщение в топике. Скорее всего через процедуры или еще как. В общем, не plain mysql точно. И уж точно на вряд ли ложится.
В любом случае, с точки зрения оптимизации я бы рекомендовал все же два разных запроса. Возможно, поэтому задача сложно решаема даже в mysql.

3. Разве ключ column_name не то? Про него я говорил в вебинаре и он есть в презентации.