Контакты

Достижения

Все достижения (7)

Наибольший вклад в теги

Все теги (92)

Лучшие ответы пользователя

Все ответы (433)
  • Как привести Битрикс до нормального состояния?

    gromdron
    @gromdron
    Bitrix developer
    Эм... давайте я отвечу (если не от всех, то хотя бы от лица себя и своих коллег) "битриксойдов" - никак.

    Поясню свой ответ: дело не в битриксе, а в подходе. Именно этого и не понимают многие разработчики, которые после Yii, Zend, Symfony и т.д. видят Bitrix.

    Во-первых, у продукта (я имею ввиду Битрикс24, и именно продукт, а не CMF/CMS) есть определенная парадигма: User First & Business insight.

    User First - это означает, что для реализации базовых вещей, например бизнес-процессы, пользователь с правами администратора должен иметь возможность сделать 80% работы без привлечения разработчика (читать - без привлечения, а я не без опыта/знаний/навыков/образования). Реальность такова, что Вы не сможете за столь короткий срок, сделать ВСЕ ТО ЖЕ САМОЕ, НО ЛУЧШЕ (я не сомневаюсь в Ваших способностях, но одному человеку за измеримые 1-5 лет это практически нереально).

    Business Insight - это означает, что в продукте уже заложена логика, а "кривизна результата" зачастую складывается из того, что Бизнес диктует свои условия (Продукт не для всех, но каждый пытается его использовать как хочет и как умеет). Как пример: купив зубную щетку Вы можете чистить ей зубы И/ИЛИ мыть машину, но согласитесь машину мыть неудобнее, но "бизнес решает не тратиться и на имеющуюся щетку нацепить тряпку побольше и ручку подлиннее".

    Во-вторых, увы, с этим сталкиваются чаще - кривизна разработчиков. Так как система распространенная, то порог в ее вхождение чуть выше чем в сам язык. Поэтому обилие не сертифицированных, неквалифицированных и необразованных разработчиков очень и очень много. Чтобы "наговнокодить" в том же Symfony нужно сначала понять где это делается, а для этого придется как минимум разобраться как он работает. В битриксе вы можете "говнокодить" почти не разбираясь в нем (я видел сайт, который от битрикса взял только лицензию, ни инфоблоки, ни orm, ничего...)

    В-третьих, а давно ли Вы видели битрикс? Сейчас он движется в нужную сторону и, я Вас уверяю, если вы подключите к нему Yii/Silex и т.п., ничего кроме бОльшего "говнокода" Вы не получите. Я не говорю о том, что Вы плохой программист, но что будет после Вас? Вот уволитесь Вы, а это все достанется очередному бедолаге и ему с этим жить.
    Ответ написан
  • Как опубликовать сообщение в группе с помощью API?

    gromdron
    @gromdron
    Bitrix developer
    Чтобы отправить сообщение в живую ленту нужно еще более изощренный метод.

    Подключаем модуль Соц.сети:
    CModule::IncludeModule("socialnetwork");

    Чтобы отправить сообщение в ленту, нужно чтобы существовал пост, который будет отправлен в ленту, поэтому создаем сначала пост:

    $arFields = array(
     "TITLE" => "Заголовок записи",
     "DETAIL_TEXT" => "Тело сообщения",
     "BLOG_ID" => 1, //ID отправителя
     "AUTHOR_ID" => 1, //ID блога, в котором будет запись
     "DATE_PUBLISH" => '11.02.2014 09:08', // дада
     "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, // Читаем в API
     "ENABLE_TRACKBACK" => 'N',
     "ENABLE_COMMENTS" => 'Y'
    );


    При успешном добавлении ($ID = CBlogPost::Add($arFields);) получим ID blogPost записи

    Затем необходимо отправить это сообщение в ленту, для нам нужен фрагмент кода (заменить соответствующим образом):

    $arEvent = array (
    	'EVENT_ID'     => 'blog_post',
    	'=LOG_DATE'    => 'now()',
    	'TITLE_TEMPLATE' => '#USER_NAME# добавил(а) сообщение "#TITLE#" в блог',
    	'TITLE'    => "Заголовок записи",
    	'MESSAGE'  => "Текст записи",
    	'TEXT_MESSAGE'  => "Текст записи",
    	'MODULE_ID'     => 'blog',
    	'CALLBACK_FUNC' => false,
    	'SOURCE_ID'     => $ID,
    	'ENABLE_COMMENTS'  => 'Y',
    	'RATING_TYPE_ID'   => 'BLOG_POST',
    	'RATING_ENTITY_ID' => $newID,
    	'ENTITY_TYPE' => 'U',
    	'ENTITY_ID'   => '1',
    	'USER_ID'     => '1',
    	'URL' => '/company/personal/user/1/blog/'.$ID.'/',
    );


    Создаём запись в ленте через: CSocNetLog::Add, на выходе получаем eventID (в случае успеха)

    Если все прошло хорошо, то выставляем права на пост (в премере отправляем ВСЕМ ПОЛЬЗОВАТЕЛЯМ G3)

    // Выдает права
    CSocNetLogRights::Add ( $eventID, array ("G3") );
    // Отправляет уведомление о новом сообщении
    CSocNetLog::SendEvent ( $eventID, 'SONET_NEW_EVENT' );


    Радуемся =)

    Все параметры получаются по средствам GetList например.
    Ответ написан
  • Какой язык учить после PHP?

    gromdron
    @gromdron
    Bitrix developer
    Иван, у Вас неверная постановка вопроса.
    Во-первых, ценится не знания языка, а опыт.
    Во-вторых, у меня сложилось субъективное впечатление, что Вы не знаете чего хотите.

    Если Вы хотите быть востребованным специалистом - смотрите на тенденции. Сейчас это анализ данных, DL, машинное обучение. Языковой стек в основном это Python.
    Если Вы хотите разрабатывать игры - C++/C, Java
    Мобильная разработка: Swift, ObjectiveC и т.д.
    Web-разработка: Node.JS, Ruby, PHP
    Из (субъективно для меня) экзотического - Erlang, Rust.
    Ответ написан
  • Как получить индексы такого массива?

    gromdron
    @gromdron
    Bitrix developer
    Вариант 1: array_key
    Вернет все ключи

    Вариант 2: итерация через foreach

    Вариант 3: key()

    Выбирайте любой :)
    Ответ написан
  • Целесообразно ли перепиливать Битрикс?

    gromdron
    @gromdron
    Bitrix developer
    Т.е. получается пользователь при регистрации сам себе группу выбирает. Такое вообще можно на битриксе сделать?


    Да, такое сделать возможно.

    а самое главное целесообразно ли c точки зрения его архитектуры?


    Не вижу ничего, что бы ломало архитектуру продукта
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (3)