Привет всем. Такая проблема. В файле bitrix/php_interface/init.php написал обработчик события изменения цены товара. При изменении цены у любого товара пытаюсь отправить себе сообщение. Не отправляет.
Стандартная функция, в другом файле php на том же сайте она работает прекрасно.
В файле init.php я уже даже пробовал открывать текстовый файл и заносить в него информацию. Не работает, после этого я решил mail() попробовать - тоже не работает.
if(mail(...тут данные для функции...)) { echo "rispect"; } else { echo "eror"; } exit();
Ставим его в нужное событие, там добавление товара, точнее в кадбэк-функцию события. Потом вызываем это событие и отработает всё до функции exit(); и потом остановка.
Ну а в частности проверить работает ли mail(...тут данные для функции...). Можно тупо кинуть на страницу <? mail(...тут данные для функции...) ?> или <? if(mail(...тут данные для функции...)) { echo "rispect"; } else { echo "eror"; } ?>
если придёт письмо значит функция работает. Потому что обработчики как раз работаю все.
Это сугубо мой подход в работе с init.php . Вообще это уже тонкости разработки. Ещё часто в моей практике бывает так что я не правильно выбираю обработчик. Нужно обращать внимание на то - до или после события делать логику. Было так что я написал логику, всё правильно думал думал потом сменил обработчик с до на опосля - и заработало как миленькоею
Так, если просто в файл init.php пишу mail(), то работает. А вот если на событие OnBeforePriceUpdate вешаю функцию обработчик, то при изменении цены товара сообщение в функции не отправляется. Может я не тот обработчик для цены беру?
Кстати, если вешаю обработчик AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("addComment", "addCommentFunction";));
Он работает, а вот AddEventHandler("catalog", "OnBeforePriceUpdate", Array("myClass", "CheckPriceBeforeSend";)); не хочет.
Пробовал перед объявлением обработчика: CModule::IncludeModule("catalog";); CModule::IncludeModule("sale";); не помогло.....вот что делать, мне нужен именно на обновление цены товара обработчик.
Ну поставьте теперь onAfterPriceUpdate. Я писал выше, или не в этом посте не помню, что удалённо сказать однозначно нельзя. Существует понятие подводные камни и я так же в разработке на них натыкаюсь. Нужно пробовать мало ли что там у вас на сайте. Сайт на Битрикс не состоит из одной функции, которая возвращает да или нет.
где Подводный камень - это парадокс в программировании, когда к примеру бинарная функция должна вернуть ответ только да или только нет, а она возвращает ни то и не другое.
В ТП пишите - они зайдут на сайт и разберутся. Фри - лансера наймите.
где Фри-лансер - свободный копьеносец в европе 15-столетия, тыняющийся по королевствам со своим копьём, убивающий за деньги. По нашему наёмник, киллер.
Это вот и есть разработка, которую пытаются в человеко-часах измерить. А оно вон бывает что волосы на голове рвёшь. Если вот так каждый шаг вы меня будет спрашивать - это будет самая длинная ветка на Битрикс, потому что я люблю потрепать языком.
Вывод: Совет такой берёте Битрикс. Устанавливаете на денвер за 8 минут . Потерзайте, помучайте, разламайте его. Не бойтесь измазаться в этой грязи, поверьте вам это понравиться и вы захотите ещё. Ночь не спите а решите задачу. Изучите рнр, яваскипт, апач.
И в процессе этого решение придёт само - как мимолётное виденье, как гений чистой красоты. И плюс к этому вы получите багаж знаний который в будущем вам поможет преодолеть сложные задачи, которые не под силу половине тут зарегистрированных.
А решение ваше будет как вершина огромного айсберга, смотря в бездну глубины на на который будет захватывать дух. Вот как закаляется сталь, вот как рождается супер-стар. Вы будете великим. Запомните мои слова - это золото из чана который я несу по жизни, оно плещится и падает на грязную землю бытия. Антологии под названием - словянская земля. Берите его и пользуйтесь. Потому что мы словяне и живём на русской земле в русской антологии.
Как говорят повара - не г0няйся за едой, не думай что ты будешь есть, сыт ли ты будешь или голоден. Еда приходит к тому - кто любит готовить.
Так что дерзайте. Удачи.
Р. С. И плюс к этому всему вы получите все сертификаты. Я верю в Вас. Удачи.