Выполнение всех агентов на cron. Чтобы почта была на хитах Мы рассмотрели, какие бывают агенты. Теперь научимся их запускать на кроне. Мы сможем переложить часть задач с пользователей сайта на крон и ускорить время выполнения страниц. Признаюсь. К этому снаряду я подходил несколько раз. И только с последнего толчка смог осилить этот вес. Сложность в том, что существует большое количество недокументированных констант и опций. Их совместное поведение совершенно не очевидно. Константы, которые могут влиять на запуск агентов и отправку писем: BX_CRONTAB BX_CRONTAB_SUPPORT NO_AGENT_CHECK DisableEventsCheck Опции модуля main, которые влияют на запуск агентов: agents_use_crontab - по умо
Переезжаем на windows хостинг. Проблемы, к которым нужно быть готовыми За три последних месяца довелось переносить сайты клиентов на всякие разные сервера - от их личных на windows до plesk на том же windows. Обнаружилось несколько мелких неприятных моментов, знание которых сильно облегчит жизнь. Сразу уточню, что не имею ничего против windows хостинга. К сожалению, если это внутренний сервер компании, то он, как правило, настроен через одно место и переубедить администратора достаточно сложно, почти невозможно (то же самое, кстати, относится к vps под linux). Итак: 1. Если на windows хостинге стоит apache, будьте готовы к тому, что не все параметры .htaccess будут обрабатываться. А не
Переход на авторизацию по E-mail на действующем сайте на «Битрикс» Стандартный механизм авторизации пользователя на «Битрикс» основан на логине и пароле. Несомненно, пользователям удобнее использовать адрес электронной почты в качестве логина. Казалось бы, можно назвать поле логина «E-mail» и этим ограничиться? Но нет. Пользователей название поля ни к чему не обязывает. Потребуется дополнительная валидация. Предлагаем простой и безошибочный рецепт авторизации по электронной почте. 1. Редактируем init.php Для этого находим файл init.php по такому пути /bitrix/php_interface/имя сайта/init.php Добавляем в него код: AddEventHandler("main", "OnBeforeUserLogin", Array("CUserEx", "OnBeforeUs
Автоматическая очистка кэша «Битрикс» Вы регулярно очищаете кэш «Битрикс»? Никогда не забываете? А если нет, то как вы можете быть уверены, что посетители сайта видят обновленную версию, а не кэшированную? Предлагаем решение, агент для регулярной автоматической очистки кэша «Битрикс». 1. Настроим агент в Панели управления Перейдя в Панели управления по адресу Настройки > Настройки продукта > Агенты, создадим новый агент. Зададим настройки: Функция: clean_expire_cache(); Сортировка: 100 Интервал (сек): 10 2. Создадим исполняемый файл агента По адресу /bitrix/php_interface/ должен быть файл init.php. Если его нет, создайте его. Поместите в файл init.php следующий код: function clean_e
Какая редакция «Битрикс» подойдет вашему интернет-магазину? Остановившись на «1С-Битрикс» как платформе вашего будущего интернет-магазина, вы оказались перед вопросом, какую редакцию выбрать. Какой функционал полностью обеспечит выполнение ваших задач и не введет вас в лишние расходы? «Малый бизнес» или «1С-Битрикс: Управление сайтом – Бизнес»? Давайте разберемся. Таблица сравнения редакций на сайте «1С» http://www.1c-bitrix.ru/products/cms/editions/#tab-table-link не сильно помогает делу. Из нее становится понятно, что редакция «Бизнес» отличается от редакции «Малый бизнес» таким функционалом: База знаний (Wiki) Реклама Универсальные списки Документооборот Конструктор отчетов! Обучени
Создание заказа полностью под гостем Стандартный компонент одношагового оформления заказа (sale.order.ajax) уже умеет создавать заказ под гостем, но с регистрацией пользователя. А если надо привязать гостевой заказ по e-mail к существующему пользователю? Уже никак, выдастся ошибка, что с таким e-mail пользователь есть и либо выбирайте другой e-mail, или авторизуйтесь. Ох и намучился я с разными вариантами подхода к решению задачи :) ведь стояло главное условие - нельзя трогать шаблон, и, тем более, компонент (идеальное условие). Но вроде бы все решил в итоге. Итак, дан компонент sale.order.ajax с включенной опцией "Оформлять заказ с автоматической регистрацией пользователя". 1. Убирае
Как очистить базу рассылки от «мертвых» адресов на «Битрикс» ? Предлагая посетителю сайта ввести в регистрационную форму адрес электронной почты, мы получаем в базе определенную толику «мусорных» адресов: намеренно несуществующих или введенных с ошибками. Выполняя рассылки по таким одресам, сервер впустую тратит ресурсы, причем с течением времени эта ситуация усугубляется. Как сделать так, чтобы сообщение об ошибочном адресе письма автоматически удаляло адрес из базы рассылки? 1. Добавим в систему почтовый ящик, на который возвращаются письма от сервера 2. Настраиваем модуль «Почта» Для этого создаем новое правило. В нем мы будем использовать поле «Условие на PHP скрипте», работающее с м
Как сделать отправку сообшения об ошибке на странице на «Битрикс» ? Реализуем традиционный способ улучшения качества текстов на сайте с участием посетителей. Теперь, если они заметят ошибку в тексте, то смогут легко и быстро передать ее администратору сайта, используя сочетание клавиш Ctrl + Enter. 1. Организуем форму отправки сообщений В нашем примере список вопросов: - Адрес страницы - Текст с ошибкой - Комментарий пользователя. Подключим форму в шаблоне сайта, описав для нее шаблон: <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <div id="[B]frm_errMsg[/B]"> <div onclick="return CloseMsgForm()" id="close-form-window" title="<?=GetMessage("AUTH_CLOSE_WINDOW")?
Быстрый лёгкий скрипт по AJAX подписке Данный скрипт проверяет на заполнение поле email, так же проверяет правильность заполнения. Если пользователь заполнил всё верно, то div меняется на "Вы подписаны", "На почту выслано сообщение". $('input.email_send').click(function(e){ e.preventDefault(); var email = $('#email_text').val(); var adr_pattern=/[0-9a-z_]+@[0-9a-z_]+\.[a-z]{2,5}/i; if(!adr_pattern.test(email)){ $('#email_error').css('display','block'); return false; }else{ $.ajax({ type:"POST", url:"/", dat a:{"ajaxsubscriptionaddemail":email},
Как оформить заказ на «Битрикс», если у покупателя нет E-mail? Обязан ли покупатель интернет-магазина указывать свою электронную почту при заказе? Оказывается, компонент sale.order.ajax считает, что обязан. Не помогает даже отмена настройки Главного модуля «"E-mail является обязательным полем». Как же нам облегчить жизнь нашим покупателям? Решение есть: 1. Редактируем файл init.php // ORDER_PROP_2 - свойство заказа "телефон" // ORDER_PROP_3 - свойство заказа "email" global $APPLICATION; if ('/personal/order/make/' == $APPLICATION->GetCurDir()) // урл страницы оформления заказа { $sOrderPropPhone = ''; if (isset($_POST['ORDER_PROP_2'])) // эту секцию if можно вообще удалить, если у вас те
Показать ещё