Если в сабж, то так и есть, сабж ровно настолько вызывающий, как и поведение модуля CRM. Если вы используете задачи без привязки к CRM, то на вкладке Мои дела вы увидите, что на самом деле являетесь бездельником
Когда то я уже поднимал данный вопрос. Почему страниц МОИ ДЕЛА - это только CRM, а не страница всего портала? Но воз и ныне там как у батюшки Крылова. Каждая подсистема тянет воз на себя. Я уже привык, что если в Битрикс две подсистемы "еще с завода" друг с другом "не срослись" или швы не так легли, то это надолго
Докажите мне, почему задача, у которой нет привязки к сущности CRM - не дело? Или докажите мне экономическую целесообразность контроля задача на двух страницах? Или докажите, что правильно разорвать организацию на части: этим специалистам CRM не нужен пусть идут туда, этим нужен пусть сидят здесь. Может кто-то выскажет экспертное мнение по данному поводу? (как ни крутил, все упирается просто в недоработку и все.) Но может я что то и не понимаю
Когда то, чтобы попользоваться данной страницей я ввел мнимую группу - свою организацию как элемент CRM Но, извините, что за бред то Все равно ситуация, когда не заполнишь CRM - не редкость
Коллеги из Битрикс, если видите это сообщение, может пора уже привести все в норму? С точки зрения юзабилити это более критично, чем выигрыш в смене дизайна.
P.S. Сейчас, конечно я уже не использую эту страницу, так как с задачами у меня разговор короткий ( с помощью ). Надобность вообще в данной странице отпала. Но "за державу обидно". Может еще кто-то париться.
В данный момент функция CFile::ResizeImageGet возвращает массив с ключами src, width, height, size. Поэтому, чтобы вытащить описание файла (в котором очень удобно хранить атрибут alt картинки), приходится делать дополнительный вызов CFile::GetByID. Говоря про описание файла, я имею в виду поле DESCRIPTION в таблице b_file.
Если бы CFile::ResizeImageGet возвращала дополнительно еще и ключ description, то работать с выводом изображений стало бы намного приятнее.
Совсем недавно обратил внимание, что давно уже не вижу цифры 50+ в своем списке задач
Ранее было и до 200 доходило, плюс дубли и прочее прочее прочее
Поделюсь наработками Если вы, также как и я, всегда найдете себе задачи, то наверное уже сталкивались с ситуацией когда их ну очень много А с чего начать - не знаете.
легко потерять нужную задачу и утонуть в ненужных.
Когда уже стало совсем плохо, задач в списке у меня было порядка 200, причем из них половина - дубли, чуть ли не каждую неделю упущено что то срочное, и вылизано второстепенное... Решил взяться за ум. Но тут все просто: Тайм менеджмент + бумага до тех пор пока не появилась готовая схема приложения.
Дело за малым - сделать?
Так появился мой первый помощник для Битрикс24 в коробке
C переходом в облако, еще и появилось несколько идей, которые в будущем перешли в такое приложение для Битркис 24 , который то по сути и являлся переработкой юзабилити предыдущего решения. Мы даже типа history нарисовали
И вот сейчас я смотрю и радуюсь. В загашнике всего 45 задач висит. И это после полугода эксплуатации приложения и вечного полтишка .
Конечно, без дисциплины и методик вряд ли все будет гладко, но все же инструмент - это инструмент, и если он помогает, то и работа спорится.
А еще у меня есть верный помощник, благодаря которому я забил на контроль срочности и дедлайнов. Есть кому меня тыкнуть носом
Сейчас у нас на выходе уже девятая версия Органайзера задач. Посмотреть описание решения можно на странице в Маркетплейс
Доступен пробный период. И цена а у решения такова, что его может позволить себе каждый.
Еще добавим удобств и все ради того, чтобы легко рассортировать задачи и взять их под полный контроль.
И все же, как приятно не утонуть в задачах и сделать рабочий день по максимуму эффективным.
P.S. ну и по правилам нашей компании мы стараемся всегда докумнетировать возможности наших продуктов
Данный модуль будет интересен службам такси, курьерским службам, грузоперевозчикам
Модуль “Расчет стоимости перевозки” разработан для системы управления сайтами 1С Битрикс, служит для автоматизированного расчета примерной стоимости перевозок в заданной зоне на основе Яндекс.Карт 2.0. Расчет ведется по расстоянию между выбранными адресами, с возможностью указания зон фиксированной стоимости перевозки и зон с разделением на интервалы удаленности в километрах. Модуль имеет стандартную структуру модулей 1С-Bitrix. Отличительными особенностями является:
При установке создается 2 Инфоблока. Если уже существуют инфоблоки с таким кодом, то не создаются. При удалении модуля, инфоблоки не удаляются, удалится лишь сам компонент.
Если установлен модуль интернет-магазин, то в настройках компонента появляется чекбокс “Добавлять перевозку в корзину” (Рис.1):
Рис.1 Возможность настройки добавления товара в корзину Расчет оплаты за перевозки выполняется следующим образом:
При размещении компонента “Расчет стоимости перевозки” в настройках выбирается список карт, для которых будет производиться расчет.
Пользователь может установить начальную и конечную точки перевозки, дважды кликнув в нужном месте на карте либо указав адрес в строке поиска.
После установки двух точек система произведет расчет стоимости перевозки для каждой карты. Среди зон этой карты происходит проверка вхождения обоих точек в эту зону, если найдено несколько подходящих зон, то выбирается зона с максимальным значением сортировки.
Если у карты не найдено ни одной, подходящей для этих двух точек, зоны, то перевозка для этой карты считается невозможной и система переходит к проверке другой карты.
Для подходящей зоны происходит расчет стоимости, согласно заданному тарифу. Если указана фиксированная цена и не указана цена за километр, значит стоимость перевозок данным способом (в соответствии с текущей картой) равна фиксированной цене текущей зоны. Если указана цена за километр, то идет расчет километража между точками и умножается на кол-во километров. Если же тариф задан через таблицу интервалов в км, то происходит поиск подходящего интервала и стоимость рассчитывается по тарифу интервала.
После завершения расчетов по всем картам, пользователю будет выведен список стоимостей перевозок и он сможет выбрать минимальную цену среди всех маршрутов.
Базовые понятия: Зона - это выделенная область на карте, для которой может быть установлен определенный тариф. Карта - это совокупность зон объединенных по способу перевозки.
Пример 1.: Компания осуществляет перевозку “грузовым транспортом” по всей России, а также “курьером” в любое удобное время, но только на территории Москвы. При это стоимость перевозки “грузовым транспортом” отличается в зависимости от федерального округа и зависит от километража, а стоимость перевозки курьером фиксированная и неизменна. Для того чтобы организовать расчет стоимости перевозки по указанному примеру нужно будет создать зону “Перевозка курьером по Москве” с фиксированной стоимостью и добавить её в карту “Курьером”, а также создать несколько зон, по одной для каждого федерального округа, со своими тарифами (“Перевозка грузовым транспортом в ПФО”, “Перевозка грузовым транспортом в ЦФО” и т.д.) и объединить все эти зоны в одну карту “Грузовым транспортом” (Рис.2). Рис. 2. Выбор типа карты
Вот так выглядит пример по расчету стоимости перевозки (Рис. 3a и Рис. 3b): Рис. 3а Пример по расчету стоимости перевозки Рис.3b Пример по расчету стоимости перевозки
Преимущества и перспективы использования модуля: - автоматизация расчета стоимости перевозок; - наглядность расчета; - легкое освоение алгоритма расчета; - эффектность представления функции расчета стоимости перевозок для сайта услуг; - автоопределение адреса из данных Yandex карт, при наборе адреса в строке поиска выходит список автодополненных адресов с возможностью выбора нужного; - возможность указания фиксированной стоимости для интервалов удаленности в километрах; - возможность указания цен за км. в интервалах удаленности; - возможность настраивать зависимость стоимости перевозок от веса и стоимости заказа.
На момент написания статьи была выпущена версия 1.0.0. Коллеги, рекомендуем модуль к использованию!
По всем возникающим вопросам о настройках или работе продукта, просьба обращаться . Запуск модуля был произведен в апреле 2014 года Модуль на Marketplace: Демо версия модуля: Страница модуля на нашем сайте:
Разработка модуля: Юрий Токарев Тестирование и помощь в написании статьи: Алена Осипенко.
На одном из проектов была поставлена задача - закрепить за каждым клиентом своего менеджера. Начал делать как делал обычно - добавил пользовательское свойство для объекта USER, перешел на страницу с настройкой свойства... а привязки к пользователю там нет:
Можно бы было оставить числовое свойство и вписывать туда руками ID, но как-то это неправильно. Поэтому собрал модуль, добавляющий новое свойство - привязка к пользователю, получилось вот так:
Таким образом на странице пользователя появляется поле ввода ID прикрепленного пользователя, а также кнопка для выбора из списка:
Также свойство можно редактировать прямо в списке пользователей:
Для решения этой задачи мне очень помог модуль , именно там я подсмотрел идею для реализации. Если он еще не установлен - очень рекомендую, расширяет функциональность сайта. Скачать модуль, добавляющий свойство "Привязка к пользователю" можно по ссылке
Коллеги! Возможно в данный момент как-то в модулях разрабатывать без глобальной переменной $APPLICATION? Пытался найти, но похоже нигде не реализован метод AuthForm(). Можете поделиться опытом?
Коллеги нужна ваша помощь в настройке VMBitrix для VPS.Задача развернуть данный продукт на сервере.
Застрял в добавлении дополнительного сайта 6. Manage sites in the pool > 1 Create site: необходимо установить локально для начала. Говорится : в случае локальной установки указать доменное имя в/etc/hosts на виртуальной машине, а также на всех машинах, с которых будет осуществляться доступ к данному сайту. Как мне указать доменное имя в /etc/hosts , как зайти туда?
Вниманию жителей Краснодара и окрестностей хорошая вакансия . Ребят знаю лично, и знаю, какие к ним поступают проекты - это действительно хорошее предложение.
Студию Лебедева все знают, и у них появилась вакансия . Я бы хотел порекомендовать данную вакансию всем тем, кто хочет отшлифовать свое отношение к веб-разработке (а может просто пойти дальше в составе Студии). Вас там реально научат отвечать за дидлайн, уважать проект и каждый винтик на нем. Вы переосмыслите свое отношение к сайту, станете по другому смотреть на результат своей работы.
Наличие скилов и прочего - само собой. Но, повторюсь, ценность вакансии в другом.
Оптимизировали, оптимизировали, да не оптимизировали.
Есть у Битрикса такая штука, как рекламный модуль, который выводит баннеры. Вот обращается клиент и просит пройти валидацию на w3c. Ну, думаю, в чём проблемы, пройдём же. Исправляли много, справляли долго. в итоге на многих страницах было всё отлично. Но, как всегда откуда невозьмись у клиента в момент просмотра появилась реклама на сайте. Тут же появились ошибки. При чём на каждую строчку рекламного баннера (по 5-7 на баннер). Сразу полез в шаблон, но обломался. Там всего 1 строчка - вывод баннера. Тогда полез в компонент, но и там обломался. Получение html баннера зашито в ядре.. "Какого фига??" - подумал я. Думал, что делать дальше с этим всем, но тут посетила хорошая мысль. Вывод кода баннера обернул через js
Хочу поделиться своим опытом поддержки клиентов на протяжении почти 7 лет (времени, когда саппорт стал постоянен), от радужного рассвета до черного заката.
Речь в статье не про проекты на поддержке (даже те, которые вы сами сделали), а поддержка ваших собственных решений. То бишь, модули, типовые сайты, и прочее. Хочу сразу сказать, что пост написан для российской действительности, когда нет сотен продаж ежедневно, как у какого-нибудь WP-плагина за 3 бакса в Штатах. В российской действительности клиент пока еще не платит массово, и начнет ли он платить когда-либо — вопрос. И да, написанное относится к студиям 1-5 человек, или к фрилансерам. Ну и конечно если их у вас хотя бы с десяток-другой, что собственно естественно — вы будете стремиться наращивать количество, думая, что это приведет и к росту денег.
Итак, все началось году в 2008, когда я стал выпускать первые модули под систему Битрикс. Благо, они были достаточно дорогие (3-5т.р., что по тем временам достаточно дорого для веб-софта). Когда пошли первые продажи, естественно, я был рад. Купили за 4т.р., потратили моего времени на 500р., 3.5т.р. ушло на окупаемость разработки. Кто-то вообще не обращался за саппортом, чистая выгода в 4т.р. ложилась в карман. Ляпота!
Спустя пару-тройку лет Битрикс запустил свой , все ринулись делать решения за 100 руб. Я тоже. Не, ну а что? Потратил 4 часа, выпустил, глядишь за 50-100 покупок окупит, да и прибыль хорошую даст. Да и для конечного клиента не тянет это на бОльшие деньги. Спасибо Битрикс, что он поставил планку в 500 руб. несколько позже, но даже эта планка оказалась фатальной спустя несколько лет.
Что за негатив, и что такого произошло несколько лет спустя? А вот эти 500-рублевые клиенты накапливались, накапливались, накапливались, и потом стал происходить взрыв за взрывом. То в Битрикс выйдет нечто, под что надо пилить новую версию модуля, то сам банально что-то упустил в коде. Все бы ничего... но 500 рублей (которые, к тому же, были заплачены в прошлом) уже не рентабельны для вас. То есть тупо они могут убить вас, так как вы будете работать ниже прожиточного минимума своего (у каждого есть семья, счета, квартиры, машины, а может и кредиты). То есть, опускаться до дешевого труда банально невыгодно и опасно.
И вот тут то нас встречает зверь Support. Ты обязан, сынок. Ты продал это решение, дал свое обязательство оказать помощь. Ты должен прямо сейчас все бросить и помочь. Ну или спустя пару дней. Но завтра тебе еще один напишет, и ты ему тоже должен будешь помочь.
Резонно возразить «Сам виноват, раз писал плохой код». Так ладно бы плохой код. Давно бы постригся в монахи, стал бы поддерживать сайт прихода в каком-нибудь селе. Люди пишут в 90% случаев совершенно по проблеме меня не касающейся (либо задают вопросы, что тоже отнимает время). А вникнуть в проблему надо, отписать пути решения, или банально «простите, мой модуль не виноват» тоже надо. На все разборы полетов тратится драгоценное время. Да, клиент конечно потом пишет «Спасибо, Антон, извините меня», но деньги уже потрачены. И не 500 рублей, а 1-2 т.р. уже улетели в пересчете на ваш _текущий_ рейт.
Что происходит дальше? А дальше игла наркомана. Чтобы хоть как-то оплачивать текущий саппорт, я вынужден не снимать с продажи всю эту мелочь, получается, ком наращивается. Да и просто обидно — столько работал, а сейчас просто закрыть лавочку. Делать бесплатным — может и выход через несколько лет. Это, по крайней мере, очистит совесть.
Я вас не убедил? В пересчете на деньги я трачу 30-50 т.р. в месяц на саппорт. Я просто так выкидываю полтинник каждый месяц на поиски даже не своих ошибок. Это, черт подери, очень обидно. Это, черт подери, одна новая машина каждый год. Да, конечно, я не трачу именно деньги, но я давно приравнял час своей жизни к рублю по определенному курсу.
Какие варианты? Я бы предложил вам задуматься над пунктами ниже:
Не делать дешевые решения. Я описывал планку в 200-300 т.р. за решение на партнерке (). Делайте крутые решения, делайте бандлы мелких. Стремитесь к тому, чтобы одна продажа окупала сразу месяц труда специалиста начального уровня. В крайнем случае посадите его на поддержку.
Не делайте дешевые решения, я повторю. Даже в начале пути. Потом вас это убьет. Только если у вас не железная совесть, и вы не сможете послать всех нафик.
Продавайте саппорт. Если клиент обращается к вам, спросите активный ключ решения. Если он истек - отказывайте в помощи. Жестоко, но пропишите это в правилах пользования вашим товаром. Так вы хоть будете окупать поддержку, и индексировать стоимость саппорта (увеличивать стоимость продления).
А как же та планка в 3-5 т.р. за модуль? Можно их делать, но, вы же понимаете, что функционал должен быть интересен клиенту. А это либо крутая идея, которая все равно прогорит рано или поздно, либо постоянные доделки. Мое мнение, что это еле-еле окупит разработку. Проще заниматься обычной коммерческой разработкой для клиентов. Или делать стартапы.
К сожалению, иных вариантов выживать на этом российском рынке я не вижу.
В силу отсутствия у любимого вендора инструментов борьбы с троллями и неадекватами, приглашаю всех либо на FB Либо в мой блог И там и там уже тоже есть ценные мысли. Либо добавляйтесь здесь в друзья, им открыто комментирование.
Большая часть алгоритмов компонентов повторяется. Дублирование кода усложняет поддержку и увеличивает время разработки. Два года назад вендор сделал шаг на встречу — внедрил поддержку . Но до сих пор не существует штатного компонента, от которого имело бы смысл наследоваться (компоненты меню и фильтра в расчёт не берём).
Необходимый минимум Какие типовые задачи обычно выполняет некий абстрактный компонент?
Подключение модулей.
Проверка входящих параметров.
Кеширование.
Генерация строки постраничной навигации.
Установка заголовков страницы.
[Комплексный комп.] Определение запрашиваемой страницы.
Эталон Продолжим список возможностей абстрактного эталонного компонента:
Оперативное уведомление администратора о «схваченных исключениях».
Работа с аяксом без лишней головной боли (в обход «битриксовой» технологии).
Установка для соцсетей.
Наследование параметров компонентов с возможностью модификации.
Базовые битриксовые компоненты Всё это должно быть. В смысле, это должно быть написано один раз и применяться на всём проекте. Не копи-пастом, а в виде дочерних классов.
Встречайте — первые, по-настоящему функциональные компоненты для «Битрикса».
Разработчику больше не нужно тратить время на типовые задачи. Задать компоненту собственную логику, сохранив все выше перечисленные эталонные возможности достаточно просто.
Сборка включает в себя два основополагающих абстрактных компонента: basis.router (для комплексных компонентов) и basis (для всех остальных), и компоненты elements.* для работы с элементами инфоблока. У компонентов есть три точки входа, через методы:
executeProlog() — выполняется в начале работы компонента, после подключения модулей, установки параметров и заголовков. Результаты метода не кешируются.
executeMain() — основная логика компонента, все ключевые операции производятся в этом методе. Если в параметрах компонента передан ключ CACHE_TYPE не равный «N», результаты метода буду закешированы.
executeEpilog() — выполняется после подключения шаблона компонента. Результаты не кешируются.
Маленький пример структуры класса, отнаследованного от базового компонента:
<?php
namespace Components\Project;
use Components\Basis;
if(!defined('B_PROLOG_INCLUDED')||B_PROLOG_INCLUDED!==true)die();
\CBitrixComponent::includeComponentClass('basis:basis');
class Test extends Basis\Basis
{
// Типаж для работы с элементами инфоблоков и различные соцфичи
use Elements;
// Модули, которые будут подключены
protected $needModules = array('iblock');
// Указываем условия для проверок и приведения параметров
protected $checkParams = array(
'IBLOCK_TYPE' => array('type' => 'string'),
'IBLOCK_ID' => array('type' => 'int')
);
public function onPrepareComponentParams($params)
{
// Устанавливаем свои параметры, если необходимо
return $params;
}
protected function executeProlog()
{
// Выполняем действия в самом начале работы компонента.
// Например, можно сохранить какие-нибудь данные, отправленные
// из формы
}
protected function executeMain()
{
// Основная логика, метод кешируется. Например, делаем выборку
// из инфоблока
}
protected function executeEpilog()
{
// Операции, производимые после подключения шаблона компонента
}
}
Кроме того, компонент elements.list вызывает на каждой итерации цикла обработки результатов запроса элементов инфоблока метод prepareElementsResult(). С помощью этого метода в дочерних компонентах можно модифицировать обработку результатов выборки: удалять, изменять и добавлять поля, производить какие-либо операции. Метод должен вернуть либо массив полей элемента, либо false для пропуска итерации.
public function prepareElementsResult($element)
{
if ($element['NAME'] === 'BBC')
{
// Пропускаем итерацию, результат не попадёт в arResult
return false;
}
// Обрезаем описание для анонса
$element['PREVIEW_TEXT'] = substr($element['PREVIEW_TEXT'], 0, 100);
return $element;
}
Все методы классов задокументированы, компоненты серии elements.* — хороший пример, демонстрирующий возможности сборки, так что смело открывайте свои «идэешки» и наслаждайтесь красотой и умениями ББК. Полноценной документации в онлайне нет, пока только краткое техописание. Пишите, предлагайте, критикуйте и отправляйте пул-реквесты. Вэлкам!
P. S. В «Битриксе» много корпоративщины, коммерции. Я не говорю, что это плохо или хорошо, просто пришло время разбавить её. Я приглашаю всех желающих принять участие в развитии ББК, пишите мне на почту или в комментарии, будем совершенствовать ББК вместе.
Совсем коротко о модуле, который позволяет покупателю подписаться на уведомление о появлении товара на складе
Около двух лет назад был запущен в продажу модуль “Уведомление о поступлении на склад”, продукт стал весьма популярен для интернет-магазинов и не только.
На момент написания статьи в доработках учтены все пожелания покупателей и пользователей: “Да, супер. Нужная вещь, и не "привередливый", легко устанавливается и настраивается, все остальное делает сам.”, “Модуль сделан хорошо, код понятный, легко поддается доработке под свои задачи.”, “Незаменимый модуль для любого интернет-магазина.”, … .
Можно еще много приводить примеров отзывов благодарных покупателей, их вы можете посмотреть на , модуль действительно создавался как маленький помощник менеджеру продаж.
Предлагаю и вам познакомиться с продуктом, возможно пригодится в работе.
Модуль “Уведомление о поступлении на склад” содержит компонент по выводу формы подписки на уведомление о товаре, шаблонов почтовых писем, а также позволяет максимально гибко настроить правила при которых товар считается появившемся на складе. + Кроме e-mail уведомлений в модуле имеется поддержка SMS уведомлений, но для функционирования SMS уведомлений требуется наличие настроенного и установленного бесплатного модуля rarus.sms4b. Вы можете получить 5% скидку на услуги сервиса SMS4B, если при регистрации укажете промо-код SEBEKON.
При установке модуля добавляются два новых агента: 1) "СSebekonReminder::checkRules();" - отвечает за проверку наступления необходимости уведомления. При каждом запуске этого агента проверяются все не обработанные запросы на уведомления и, если товар перешел в нужный статус и появился на складе, то уведомление ставится в очередь на рассылку; 2) "СSebekonReminder::processQueue();" - отвечает за проверку рассылку уведомлений из очереди. При каждом запуске этого агента все напоминания из очереди рассылаются адресатам.
Кроме того добавляются два новых типа почтовых события: 1) SEBEKON_STOCK_REQUEST - событие возникает при заполнении формы о напоминании, для этого события имеется шаблон email уведомления, которое отсылаемый администратору; 2) SEBEKON_STOCK_MESSAGE - событие возникает, когда товар появляется на складе, для этого события имеется шаблон email уведомления, которое отсылаемый пользователю, который подписался на соответствующее уведомление по данному товару.
Теперь можем выполнить настройки модуля в: Настройки -> Настройки продукта -> Настройки модулей -> Уведомление о поступлении товара на склад.
Настройки. Выберем информационный блок “Напоминание о товарах”:
Укажем условия оповещения: при количестве товара на складе >=1
Укажем условия, при которых будет появляться на странице форма “Напоминание о товарах”, заполнив которую, покупатель будет получать уведомления о поступлении товара (условие: товара меньше чем 1) :
Формируем шаблон сообщения и указываем время рассылки смс (желательно в пределах допустимого, не ночное время)
Осталось добавить компонент на страницу в нужное место при редактировании содержания страницы, логичнее на страницу отображения описания товара. Теперь на странице товара, количество которого меньше 1 готова форма для подписки на уведомления о поступлении товара на склад. Информация о наличии желаемого товара после подписки придет покупателю вовремя.
Сама форма создания запроса на уведомление о поступлении товара будет выглядеть примерно так (мы добавили компонент на страницу описания товара):
Нам удобно и пользователям, потенциальным покупателям приятно!
“Как включить капчу?”, “Как сделать так, чтобы не авторизованные пользователи не видели форму уведомления?” - ответы на многие подобные вопросы можно найти на нашем сайте .
Эту и другую информацию можно посмотреть на странице модуля:
Приобрести модуль “Уведомление о поступлении на склад” можно на Marketplace: Коллеги, желаю приятной работы с 1С Битрикс!
Разработка модуля: Токарев Юрий. Тестирование и помощь в написании поста: Алёна Осипенко.
Не так давно я писал статью в комментариях спрашивали - ЗАЧЕМ, раньше не писал этого - но теперь напишу (просто достало), не этот вопрос достал "ЗАЧЕМ" а наплевательское отношение к разрабатываемым решениям и модулям не буду скрывать, первые модули у меня тоже такую погрешность имели - но были устранены в обновлениях...
1. типовое решение Ремонт квартир и офисов
2. тут ничего описывать не буду 3. и т.д. и это только с 1 сайта а если покопаться еще много подобных ляпов найти можно
для этого и пишется мною ПО - для помощи в создании модуля (компонента) и генерацией уникальных языковых ключей
Пару слов о том, какие перспективы нам это сулит: Первое - каждый разработчик сможет по своему оптимизировать формируемый CSS или подключать соответствующие модули. Что можно будет сделать уже сейчас - есть идея замены маленьких изображений (скажем, до 2кб) на их base64 аналоги - это может сэкономить от нескольких единиц до нескольких десятков GET-запросов к серверу. На больших страницах или при медленном интернете этот прирост может быть весьма ощутим. В перспективе, мне кажется, что верстая под битрикс больше не пришлось бы создавать спрайты (но не уверен, что от них можно полностью отказаться).
Как бы то ни было, новые события в ядре дают нам - разработчикам больше свободы. Уже только ради этого стоит проголосовать за идею Надеюсь на вашу поддержку и советы!
В конце прошлого года, в голове засела небольшая задумка, которая была есть и будет появляться в головах многих разработчиков под 1С-Битрикс, это ПОЧЕМУ под эту CMS нет своей IDE, система уже огромна, куча классов, прослоек и всего остального. Начала работать мысль и в этом направлении - написать СРАЗУ IDE это ужас...... поэтому было принято решение написать модульную систему (к которой можно будет дописывать то, что надо для работы)
примерно так: 1. Основная программа (MDI форма с дочерними окнами) 2. Библиотека работы с модулями 3. Библиотека работы с компонентами 4. Библиотека mysql 5. Библиотека php 6. ну и т.д. - список большой (исправляется и добавляется)
Начали с самого основного - Библиотеки работы с модулями.
На данный этап есть форма, есть настройки (не все еще, но основные) - генерируется полная структура модуля, исходя из настроек. В работе - Редактируемые шаблоны с кодом (у каждого программиста свои привычки, сделали шаблоны под себя и получили модули как Вам надо)
На стадии тестирования - Открыть модуль на редактирование При генерации создается xml файл с настройками модуля - который можно открыть и пересобрать модуль, изменить что-то и т.д.
Начальные настройки (создание модуля) можно посмотреть тут
При создании модуля - создается полная структура (согласно настройкам, в созданные файлы прописывается код (шаблонный)
install.php
проверка на версионность главного модуля и установленные необходимые модули
код копирования и удаления нужных файлов
код регистрации событий
выполнения sql и т.д.
языковые файлы
option.php
default_option.php
prolog.php
include.php
/admin/ файлы и соответственно в /install/admin
В общем после генерации остается только вставить код необходимый и все. Но в скором времени библиотеку доработаем и при установке в главную программу - модуль полностью можно будет разработать и Создать в нашем программном продукте!
Этот пост призван дополнить или расширить прошлые посты об оптимизации загрузки сайта:
Итак, задачи, которые я решаю в этом посте - отложенная загрузка скриптов и инлайн CSS стилей сайта (актуально для сайтов, чьи стили укладываются в 50-100кб).
Здесь, если не установлено свойство страницы "save_kernel = Y" из страницы исключается kernel.css и template.css заменяется на инлайновое представление, так экономится один GET запрос к серверу и страница быстрее отображается. Но момент с CSS неоднозначный, т.к. не будь он инлайном, то мог бы и кешироваться на стороне браузера. Я считаю, что если этот файл получается небольшим, то лучше его инлайнить, особенно, если работает gzip.
P.S. Написал тут обращение разработчикам, что бы добавили события на формирование файла template.css после объединения всех CSS шаблона - дополнительно можно было бы заменить маленькие картинки (скажем, до 2кб) на их base64 аналог. В таком случае нам бы не понадобилось грузить CSS иналайном. Ну или можно было бы разделить - загружать важный css инлайном, а остальное внизу страницы.
P.P.S. Пытался решить задачу замены цветов типа #dddddd на #ddd с помощью регулярных выражений, но так и не получилось. Вот такая регулярка:
#(\w){6};
забирает любое представление цвета, т.к. \w - это любая буква или число. По идее, регулярным выражением нужно получить 6 одинаковых(!) символов, а не "\w", но как это сделать я не знаю. Может подскажете?
анонсирует решение . Решение предназначено для ремонтных бригад и компаний, которые оказывают услуги по ремонту квартир, домов и других жилых помещений.
Дизайн сайта разработан в изысканном минималистичном стиле, что подчеркивает и передает изысканный вкус и уникальность работ ремонтных бригад, не отвлекая пользователя другими излишними элементами. Сайт насыщен реальными фотографиями, баннерами и работами компании, что позволяет клиенту без особых трудностей представить интерьер своей будущей квартиры.
Главная страница разработана специально для представления главных визуальных элементов и конкурентных преимуществ компании и состоит из:
- Адаптивного баннера. Данное свойство позволяет вывести как свои лучшие работы, так и рекламу своих услуг по ремонту квартир.
- Блока конкурентных преимуществ
- Блока описания компании
Страница Услуги состоит из блоков, в которых содержится название услуги, краткое ее описание и цена. Каждая услуга также имеет свою детальную страницу, что позволяет еще подробнее ознакомится со всеми тонкостями и условиями услуги.
Страница Команда отображает список специалистов, которые входят в команду данной компании. В списке отображается фотография, ФИО, специализация работника, а также краткое описание его профессионального профиля.
Страница Портфолио является второй по важности после Главной страницы, поэтому ей уделялось особое внимание. Для наглядности представления каждого проекта в списке отображается главная картинка работы со стильным визуальным эффектом всплывания названия. Детальная страница проекта состоит из галереи изображений и полного описания.
Страница Статьи предназначена для публикации интересных статей, как ваших, так и любых других со всего мира, о ремонте квартир. Это поможет привлечь и увеличить тематический трафик сайта. Статьи разбиты на категории, что позволит быстро разделить статьи по интересующим Вас темам.
Страница Контакты стандартная и отображает карту и адрес компании.
Основные данные шапки и подвала легко редактируются прямо из админки (Настройки – Настройки модулей - БыстроРемонт). В этих настройках вы можете поменять данные от логотипа сайта до контактных телефонов.
Решение является полностью адаптивным, что позволит Вам не только с удовольствием тестировать ваше решение с любого устройства и хвастаться перед коллегами и знакомыми, но и Вашим клиентам просматривать и заказывать ваши услуги без проблем даже с мобильного телефона.
Также, следуя веяниям моды, решение переведено на Композитный режим, что сделает ваш сайт еще быстрее. Решение платное - 9990 руб. (без учета скидки). Но вы сможете легко его опробовать в демо-режиме в течение 14 дней, чтобы полностью убедиться и утвердиться в своем выборе.
Мы следим за каждым нашим решением. Поэтому, и это решение будет постоянно развиваться и обновляться в зависимости от требований рынка и запросов клиентов.
Это первое наше полноценное отраслевое решение-сайт, которое мы выпускаем на рынок Маркетплейс 1С-Битрикс. На подходе еще два решения: одно тоже отраслевое решение подобного уровня, а другое топ-решение, которое должно стать лучшим в Маркете в своей тематике.
Хотелось бы отметить, что это также первое решение, вышедшее из нашей белорусской печки. Надеемся, что наш белорусский офис будет продолжать радовать нас и наших клиентов своими идеями и решениями.
Подходит к концу 2014 год. И настало время подвести кое-какие итоги года уходящего для еще молодой .
Конференция и партнеры
2014 год начался с приятного: мы посетили первую для нас зимнюю партнерскую конференцию 1С-Битрикс.
По сути впервые мы ощутили эту волшебную атмосферу, где все дышит вебом, где все дышит Битриксом. Мы познакомились со многими партнерами(очно или заочно). Мы многое вынесли из этой конференции: от Михаила Токовинина, что нужно не бояться повышать цены, что все мы равны и все проблемы только у нас в головах; от NotaMedia как нужно мониторить все проекты и вести грамотную статистику; и многое другое от других докладчиков и партнеров. Были и разочарования, но о них промолчим.
На летней партнерской конференции мы уже были по смелее и по увереннее: задавали вопросы, общались непосредственно с командой 1С-Битрикс, активно обсуждали насущные проблемы с партнерами.
В будущем же мы должны не просто быть слушателями подобных партнерок, а непосредственными докладчиками. Интересными и полезными партнерам, а не просто для галочки.
Конечно же, одними поездками по конференциям работа не ограничивается. Поэтому, продолжим подводить итоги других сфер нашей деятельности.
Клиенты
2014 год по сути первый год, когда мы непосредственно начали работать с клиентами. Количество клиентов выросло, но, на наш взгляд, могло быть еще больше и лучше. Также растут наши знания и опыт работы с клиентами, но, также, хотелось бы лучше. Сейчас мы допускаем много ошибок и недоработок. Но все будет. Мы стремимся стать лучшими в работе с клиентами и их обработке. Этому мы будем учиться у всех: у умных книжек, у партнеров да и у самого Битрикса. Пока мы тут среди отстающих, но это временно. Мы это обещаем.
Дизайн
Этот год для нас существенной с точки зрения становления нашей дизайнерской концепции, нашего дизайнерского видения и нашего главного дизайнера Валерии Майоровой. Теперь мы начали понимать, что же надо клиенту(да и нам самим) и как быстро это представить и реализовать.
Благодаря нашему дизайнерскому прозрению у нас родился наш новый сайт с полной переработкой всех разделов(пока за исключением Клиентов). Теперь он у нас не просто стильный и современный, но еще и адаптивный и композитный.
Наша цель не просто разрабатывать программную часть интернет-решений, но и предоставлять клиенту модный и современный дизайн. В последствие, возможно, даже отделение дизайна в полноценное самостоятельно подразделение для разработки дизайнерских решений без привязки к программированию.
Отлично вписался в наш специально разработанный видео-ролик "Как расширить свой бизнес с помощью интернет-магазина".
Белорусский офис
Важным и ответственным этапом в 2014 году было открытие офиса разработки в Беларуси. Офис открыт в замечательном городе Могилеве прямо в центре города в Технопарке. Штат был оперативно набран. Пока небольшой, но с ростом компании и штат будет расти. Сейчас наши программисты проходят боевую обкатку и обучение. Мы тщательно следим за качеством подготовки наших программистов и выделяем этот пункт в качестве нашего конкурентного преимущества.
Буквально на днях наш белорусский офис уже дал свои плоды. Вышло наше первое отраслевое решение: . Но это только начало. Дальше – больше!
Также, мы запустили наш сайт в зоне BY , что позволит нам увеличить аудиторию, хотя основным рынком у нас все равно остается Россия.
Маркетплейс
О решениях для Маркетплейса мы можем говорить вечно, так как мы любим разрабатывать для себя, в свое удовольствие. Но обо всем по порядку.
В 2014 году мы внедрили у себя модуль тех. поддержки. Это позволило систематизировать наше общение с клиентами. Теперь мы четко понимаем какие решения самые проблемные или какие вопросы самые часто задаваемые. За полгода пользования тех. поддержкой число обращений немного превысило отметку в 250.
Также в 2014 году мы внедрили у себя систему отправки писем(благодаря нашему топ-решению , о которым мы расскажем ниже) нашим клиентам по сценариям:
- отправка письма при демо-закачке решения
- отправка письма о предупреждении окончания демо-режима
- отправка письма с благодарностью за покупку решения
- и др сценарии, взаимодействующие непосредственно на клиента решения
Данные почтовые сообщения положительно повлияли на лояльность клиентов: количество отзывов увеличилось и продажи соответственно. У нас есть еще интересные задумки по Маркетплейсу в этом направлении, но это оставим на будущее, чтобы не сглазить.
Теперь перейдем непосредственно к нашим решениям.
Наше популярное топ-решение, которому мы уделяем особое внимание. В 2014 году оно научилось парсить каталоги(картинки, свойства, цены). В 2015 году его тоже ждет больше обновление: парсинг офферов, учет остатков, деактивация-удаление несуществующих элементов и многое другое.
Мы вкладываем всю душу в это решение. И оно отвечает благодарностью не только нам, но и клиентам, которые используют его.
Специально для нашего любимого Парсера был разработан презентационный видео-ролик, который представляет главные преимущества данного решения:
Еще одно наше топ-решение. В 2014 году оно было полностью переработано. Появилась система кеширования, созданы свои таблицы для ускорения обмена, справочники хайлоад, справочники инфоблоков, появилось много опций для характеристик торговых предложений и многое другое. Также был внедрен важный функционал для работы со скидками.
В середине года мы запустили совершенно новое и уникальное решение Маркетинговые рассылки. Оно уже стало у нас топовым и приносит свои плоды. Решение позволяет делать персонализированные рассылки клиентам вашего ИМ. Особенности:
Включает в себя различные сценарии по отправке персональных писем клиентам(брошенные корзины, поздравление с ДР, новинки категорий, отправка скидочных купонов в письме, просмотренные товары, рекомендуемые товары и многое другое)
Полная статистика(открытие письма, время открытия, переход по ссылкам письма и многое другое) по каждому письмо. Ни одно письмо не останется не отслеженным. Статистика представлена как в численном так и в графическом виде.
Компоненты для сбора имейлов
Собственная база подписчиков
Интеграция с Unisender и mailchimp
и многое другое, что способствует взаимодействую интернет-магазина с клиентами
Также за 2014 год мы выпустили другие решения, которые дополнили коллекцию Сотбита: , , , , , ,
Кроме того, совсем недавно мы выпустили наше первое отраслевое решение-сайт , тем самым открыли себе дорогу в полнофункциональные решения для корпоративных сайтов и интернет-магазинов. Все впереди!
Также мы весь год очень кропотливо трудились над нашим будущим топ-решением интернет-магазином элитной женской одежды. Осталось еще немного и мы сможем представить его на суд общественности. Планируемая дата запуска: январь-февраль 2015 года. Мы планируем, что это решение будет достойно конкурировать с решениями подобного класса по данной тематике. Оно должно стать лучшим!
В общем, 2014 год стал для нас удачным в Маркетплейсе. Доходы с Маркета выросли на порядок, да и наши запросы тоже. Теперь мы знаем, что нам нужно делать в Маркете. Мы нацелены на точечные дорогие решения, необходимые рынку, без штамповки копий. 2015 год должен стать знаковым для нас, чтобы мы вышли на новый уровень в Маркете, на уровень крупных игроков в этой сфере.
Кризис
2014 год также всем заполнился началом «кризиса». Мы также начали думать. Но вовремя мы одумались. Главный кризис всегда в головах. «Кризис» - хорошее слово для бизнеса. Можно легко оправдать свои промашки, задержки зарплат работникам и многое другое. На наш взгляд, кризис – самое время для развития и становления компании, что компания Сотбит и делает.
Новый Год
в Новом Году желает всем всего самого лучшего! Стремитесь к лучшему! Достигайте большего! В любом случае новый год будет лучше и полезнее предыдущего!
Уже было несколько попыток перевести агенты на крон. В одной попытке не затрагивались периодические, в другой попытке подмешивалась еще и отправка почты. В этой попытке мы остановимся исключительно на всех агентах.
Немного ликбеза. Что такое агент в терминологии Битрикс? Это метод или функция, который выполняет определенную функцию по расписанию. Например, импорт/экспорт, очистка данных, либо еще какие-то действия. Если такие агенты не переводить на крон (планировщик), то они будут выполняться на хитах пользователя. Это означает, что последний будет ждать выполнения агента, что увеличит время выполнения страницы, и отрицательно скажется на отношении пользователя к сайту. Поэтому, данная инструкция обязательна к применению.
Итак, порядок действий:
1. Из /bitrix/php_interface/dbconn.php убрать любые упоминания:
CAgent::CheckAgents() вызывается два раза специально, чтобы выполнить как периодические агенты, так и не периодические. Если вам требуется, чтобы данный файл отвечал еще и за бекап, откомментируйте последнюю строчку.
В следующих статьях мы рассмотрим как добавлять задачу крон на исполнение данного файла в различных панелях управления.