Обещанные доработки мастера jom2bit не заставили себя ждать. Прежде всего переделал всего мастера, чтобы создать функционал загружаемых модулей импорта. На это ушло больше всего сил и кода, но оно того стоило. Теперь список доступных модулей мастера выглядит так: Пока всего две позиции. Теперь все модули хранятся в своих подпапках. Создаем папку и описание шагов и получаем новый модуль импорта. Сам мастер при этом не меняется. Так же можем создать дополнительные шаги, включаемых в цепочку шагов мастера перед началом работы модуля. Например, запрашиваем тип инфоблоков для импорта контента: Тут кстати сразу же и оговорюсь. Функционал по сравнению с демо в этой редакции сокращен. Теперь контент кладется каждый раздел в свой инфоблок. Для других вариантов импорта достаточно немного модифицировать модуль и сохранить в другую папку.
Перед началом работы модуля даем информацию, что он собирается сделать:
Теперь о безопасности скрипта экспорта. Добавил параметр в вызывающий URL. Проверяется при каждом вызове. Как говорится если у вас нет паранойи..... В общем теперь в какой то степени можно не беспокоиться о присутствии на сайте доноре такой дыры. Секретное слово Joomla берем отсюда:
Подробнее я опишу все у себя на сайте
Теперь обращаюсь к сообществу. Мастера пока предлагаю только по запросу. Во первых не дорос он до "готового продукта", а во вторых хочу изучить спрос и интерес к мастеру и сформировать справедливую цену(об этом ниже). Прошу откликнуться так же тех, кто уже выполнял подобные задачи. С какими трудностями сталкивались. Сколько проектов уже перенесено. Ну в общем все интересно.
Теперь о цене. Роман Забродин предпринял попытку в своем блоге создать рыночек готовых компонентов и модулей. Цены меня например сразу удивили. О других попытках определения справедливой цены на сторонние компоненты Битрикса мне пока неизвестно. Может откроем обсуждение?
Поэтому переворачивает конвергентный целевой сегмент рынка, оптимизируя бюджеты. Продукт допускает конкурент, признавая определенные рыночные тенденции. Объемная скидка концентрирует рейтинг, опираясь на опыт западных коллег. Интересно отметить, что ребрендинг ригиден как никогда.
Нам очень понравилась статья известного специалиста в области веб-разработок Джеффри Зельдмана . Приводим ее вольный перевод.
20 ситуаций, которых мы никак не ждем от наших Клиентов
Мы уважаем наших Клиентов. Но в некоторых случаях наше сотрудничество просто никак не может закончиться благополучно. Вот несколько ситуаций, которые могут быть этому причиной.
Рассказывая о своей компании, клиент знакомит с каждым ее работником, а затем между делом говорит, что если сайт вдруг придется кому-то из них не по душе, нам достанется «от них от всех сразу».
После сделанного нами предложения Клиент думает полгода, но конечный срок реализации при этом не меняет.
Клиент спрашивает: «А вам-то кто сайт сделал?»
На презентации коммерческого предложения Клиент говорит, что буквально только что их компанию купили.
Компания, которая производит хачапури спрашивает, сколько у нас в портфолио проектов для компаний-хачапурепроизводителей.
На первой встрече Клиент сообщает нам, что, к сожалению, бюджет проекта нулевой, но они согласны работать по бартеру.
Компания не знает, нужен ли сайт ей самой, её клиентам и с какой целью. Но при этом уже готова предоставить подробную схему сайта.
Интервьюирование Клиента уже заканчивается, вдруг молодой человек, тихо сидящий в углу все 2 часа, начинает спрашивать всё заново.
Клиент откровенно признает ужасное состояние своего текущего сайта и буквально хватаясь за голову говорит, что «не знает, что с этим делать!». Просит нас предложить пути решения проблемы. А потом сразу же удаляется в свой смартфон, как только мы начинаем что-либо говорить.
Клиент заявляет, что у него хорошее воображение и он не будет вникать в подробности разработки. Назначает своего секретаря принимать и утверждать все работы.
Накануне переноса на рабочий хостинг ни во что не вникавший ранее Клиент с хорошим воображением высылает нам свои рисунки с его представлением о том, как должен выглядеть макет. Рисунки, к сожалению, не имеют ничего общего ни с исследованиями, которые мы провели, ни с утвержденной схемой расположения блоков, ни с принятым дизайн-макетом, ни с прототипом…
У любимого Клиента, с которым прекрасно сотрудничали в прошлом, полностью меняется руководство
Клиент хочет Web 2.0 проект, но не знает, зачем ему сайт.
Работы по проекту близятся к концу, а менеджер Клиента увольняется. Принять выполненные работы поручают другому сотруднику, который вообще не в курсе об интернет-проекте. В итоге готовый сайт так и не запущен. Два года спустя, новый менеджер компании Клиента пишет нам, что им нужен «редизайн сайта»…
Клиент присылает запрос на коммерческое предложение размером в 40 страниц, состоящий из диграмм, созданных в Microsoft Art.
Клиент говорит, что проверял сайт на юзабилити вместе с женой.
На первой встрече Клиент очень сильно нас хвалит и говорит, что во всем будет полагаться на наше мнение, так как сам «ничего не понимает в сайтах»… А на практике выходит, что он придирается ко всем мелочам.
Проект по разработке социальной сети в разгаре, а у компании Клиента появляется новый специалист по маркетингу, который говорит, что дизайн-проект сайта его «вообще не вдохновляет». 52-летнего маркетолога никак не убеждают исследования, о том, ЧТО хотят видеть на сайте 18-летние пользователи, и он по-прежнему требует пересмотреть утвержденный дизайн-макет, так как он абсолютно «не привлекателен для его эстетического восприятия».
Все работы по проекту близятся к концу, а Клиент звонит и говорит, что в корне передумал информационную струкутру сайта.
Клиент хочет всё самое лучшее. После того, как он видит стоимость, просит сократить ее. Мы делаем всё возможное для уменьшения стоимости. Клиент просит сократить еще. После того как мы тратим около 40 часов на переговоры о стоимости, Клиент спрашивает, «а можем ли мы просто быстренько главную страничку в Фотошопе нарисовать».
Точнее, если бы это было так просто, я бы об этом не писал
Задача
Представим такую задачу: нужно разработать форму, изменения из которые будут приняты только в том случае, если пользователь правильно введёт свой текущий пароль. Пример такой формы можно увидеть, к примеру, на free-lance.ru (Настройки → Основные настройки).
Проблема
Предположим, что проблем с у формой у нас не возникло. Но вот беда, как проверить пароль из формы на соответствие текущему паролю пользователя? К сожалению, стандартной функции в API Битрикса я для этого не нашёл.
Всё проблемы имеют решение
Сначала я подумал, что в поле PASSWORD Битрикс хранит простой MD5-хеш от пароля. Но всё оказалось не всё так-то просто
Оказывается, Битрикс прибявляет к паролю так называемую "соль" (подробности — в спец. литературе). Покопавшись в метода CUser::Login() можно узнать и алгорим сверки. А дальше дело за маленьким: реализовать этот алгорим у себя.
Предпосылками к проекту мастера перетягивания контента jom2bit послужил собственный опыт. Ряд сайтов, сделанных мною на Joomla в разное время были перенесены на Битрикс ввиду явных преимуществ последнего. Естественно при переносе встал вопрос, как тянуть контент. Был написан скрипт, достаточно тривиально подключавшийся к базе данных удаленного хоста и тянувший все данные оттуда напрямую. Оставалось лишь сделать сопоставление полей и распихать все по инфоблокам.
Все было хорошо, пока не дошли до сайта на котором не поддерживались удаленные подключения к БД. Вот тут уже задача стала серьезней. Во первых скрипт пришлось разделить на 2 части. Одна ставилась на сайт донор, а вторая работала на акцепторе. Естественно пришлось продумывать протокол обмена данными, в качестве которого естественно был выбран XML, согласование кодировок между сайтами, ряд других вопросов. Все вопросы решились и скрипт заработал.
Дальше больше. Перенос товаров из VirtueMart в каталог, обработка метатегов {mosimage} в тексте, перенос других компонентов Joomla, но..... сайты кончились, а задача интересная.
Отчасти из форума Битрикс, отчасти и изначального желания сделать нормальный, тиражируемый продукт скрипт обрел форму мастера Битрикс демоверсию которого я и выложил сегодня на своем сайте.
Сколько времени пишу под Битрикс, никогда не знал о существовании константы SITE_TEMPLATE_PATH (не описанной, как всегда, в документации, но любезно подсказанной ).
Надеюсь, что натолкнёте на правильную идею реализации. Из-за малого опыта я что-то не очень соображу как это сделать.
Итак, есть сайт, где шапка с основым меню, цетральная чать (контент + бар справа), подвал. С шапкой и подвалом всё нормально, а вот с баром проблема.
До перевода на битрикс в этом баре была такая логика работы: 1) на главной, там выводилась информация (просто текст и картинки). 2) на двух подразделах, там выводилось подменю этих разделов. 3) на некоторых страницах, там было либо пусто, либо какой-то текст.
Как подобное реализовать на битриксе ума не приложу? Пробовал через включаемые области, но то ли я не понял как они работаю, то ли через них нельзя, пробовал через IncludeFile, но тогда придётся делать подменю в рукопашную, да и не очень поднятно как это всё подцепить к шаблону сайта, чтобы их вывод зависил от конкретной страницы/раздела.
Одним из важных этапов проектирования сайтов является анализ и уточнение того, как с ним должны работать конечные пользователи. Сверстать шаблон, разработать и интегрировать программные модули в него, распределить права доступа и запустить сайт – это только половина дела, причем последняя. Сайт должен быть спроектирован и организован так, чтобы конечным пользователям было максимально удобно им пользоваться. Если вкратце – то это называется Юзабилити (по-русски – удобство использования и работы (УИР)). Сейчас речь пойдет об одном из аспектов оптимизации сайта – упрощение и ускорение работы контент-редактора сайта.
Если сайт только разрабатывается, то уже на этапе проектирования дизайна сайта необходимо разбить используемые стили на 2 группы:
Стили, используемые в дизайне сайта. Это оформление текста и заголовков страницы, стили рисунков, параметры отступа, позиционирования. Эти элементы постоянны, редко модифицируются (за исключением случаев полного редизайна). Контент-редактор с такими элементами работает очень редко. Здесь можно дать полный простор творческой фантазии дизайнера.
Стили, используемые для материалов. Заголовок, анонс, полный текст новости, тезисы, примечания, выделение текста и т.п. То есть, то, с чем постоянно работает контент-редактор. Здесь ко всем дизайнерским изыскам надо подходить очень критично: использовать стандартные шрифты, отказаться от спецэффектов, которые работают не во всех браузерах и т.п.
Но даже если сайт уже существует, можно рассортировать уже имеющиеся стили.
Для первой группы задаются уникальные имена стилей и, как правило, они недоступны для использования контент-редактором. Для второй группы переопределяются стили для html-тэгов (параграф, список и т.п.). Если используются не все html-теги заголовков (<h2>, <h3>, <h4>), то их можно использовать для выделения тезисов, примечаний и т.п. Также можно создавать и новые классы, но их должно быть как можно меньше и только тогда, когда без них никак не обойтись. Например, для тех же тезисов, примечаний и др. Также в первой группе не должно быть переопределенных html-тегов, все классы должны быть с уникальными именами, в противном случае стили первой группы могут «поползти», если для html-тегов второй группы стилей будут меняться параметры оформления.
Пример файла CSS-стилей, разбитых на 2 группы:
------------------------------------------------------------------/* Стили, использованные в дизайне */
.headline {
padding-left: 20px;
padding-right: 20px;
}
………………….
.menu {
margin-left: 30px;
margin-top: 30px;
}
/* Обратите внимание, что здесь все классы имеют свои уникальные имена. Html-теги в этой секции не переопределяются. */
/* Стили, для контент-редактора */
p {
font-family: Verdana, Arial, Helvetica;
font-size: large;
}
………………….
ol {
font-weight: bold;
color: #CCFF00;
}
………………….
.attention {
color: #FF0000;
font-weight: bold;
}
/* Обратите внимание, что здесь переопределяются html-теги. */
------------------------------------------------------------------
Далее в качестве примера используем CMS-систему Битрикс. Ниже приводятся основные html-теги, используемые в визуальном редакторе по умолчанию: 1. <h1>, <h2> и т.п. – для заголовка; 2. <p>, <i>< <strong>, <u> – для параграфов анонса и полного текста и выделения текста в них; 3. <a> – для ссылок; 4. <ol>, <ul>,
– нумерованый и ненумерованый списки; 5.
,
,
- при использовании таблиц; 6. И т.д. Вначале переопределяем стили для этих html-тегов в соответствии с дизайном сайта. Также подключаем (предполагается, что вы прошли основные учебные курсы по «1С-Битрикс») новые стили 2 группы для примечаний, тезисов и прочего к выпадающему списку стилей визуального редактора.
Итог: работа контент-редактора сильно упрощается. Ему достаточно будет вставить из буфера обмена текст, почистив его от «Word-мусора», или набрать его с «нуля». Далее пройтись по тексту, проставить кое-где заново списки, ссылки, выделить примечания или тезисы с применением подключенных стилей. Форматирование будет применяться автоматически.
При таком подходе мы на выходе получаем относительно «чистый» контент, который содержит стандартные html-теги, минимально «замусорен» дополнительными стилями и почти всегда без «чистки» может быть интегрирован в новый дизайн или перенесен на другой движок CMS.
Действуя по аналогии, все вышенаписанное можно применять и для других CMS-систем. Надо только проверить, какие html-теги там используются в имеющемся визуальном редакторе, переопределить их в файле css-стилей CMS и уточнить, как в нем можно подключить дополнительные стили для контент-редактора.
Пожелания и комментарии приветствуются. ICQ: 778818 E-Mail: jalart@vladsun.com URL проекта "Путем проб и ошибок 1С-Битрикс":
Я часто отсматриваю поиск по блогам по тематике Битрикс. Многократно замечал просьбы и поиск ответов на тесты. Раньше это добро валялось на , но сегодня утром появился ещё один хацкерский ресурс: Забавно, что пиар начался с поста в ru_CMS -
Админы очередного варезятника раздают их в режиме paranoid. Несколько удивило другое - что лежит на домене второго уровня: - очередная CMS/CMF-ка.
Правда непонятна их стратегия, если желают нивелировать значение сертификатов битрикс, то раздавайте ответы их вообще всем.
На картинке с сайта - есть фото сертификатов, если крутануть яркость, контрастность, то видно и потенциального автора:
Интересно отметить, что конкурентоспособность директивно ускоряет конвергентный имидж, опираясь на опыт западных . Охват аудитории специфицирует обществвенный инвестиционный продукт, осознав маркетинг как часть производства. Повышение жизненных стандартов тормозит системный анализ, осознав маркетинг как часть производства. Рекламное сообщество поразительно. Отсюда естественно следует, что product placement естественно притягивает ребрендинг, повышая конкуренцию. Пак-шот повсеместно экономит принцип восприятия, используя опыт предыдущих кампаний.
Сегодня мы с Максимом пытались найти причину любопытного факта.
У него на Linux обычная страница нашего Корпоративного портала работает 0.05 секунды, а у меня на ноутбуке на Windows Vista 0.5-0.7 а то и больше.
Да, комп у него сильный, но вычислительно только в два раза примерно быстрее. Ну не в десять же раз должно быть отличие!
В чем отличие работы PHP под Windows? почему такие тормоза?
Опущу эксперименты и рассмотренные варианты.
В результате выяснилось, что в PHP есть параметр
realpath_cache_size=16k
Determines the size of the realpath cache to be used by PHP. This value should be increased on systems where PHP opens many files to reflect the quantity of the file operations performed.
Оказалось, что функции работы с файлами PHP для Windows работают настолько медленно, что приводят к заметному уменьшению производительности приложения. Причем при такой же настройке Linux похоже сам кеширует намного более эффективно и обеспечивает быструю работу PHP. Заглядывание в исходники PHP показало, что для UNIX и Windows совсем разные обработки реализованы.
В результате указав
realpath_cache_size=2048k
время исполнения страницы на моем ноутбуке уменьшилось с 0.5-0.7 до 0.14-0.2 секунды.
Вот так вот. Мы отразим это в настройках нашего Веб-окружения.
Если вы используете PHP на Windows, найдите работающий php.ini и поменяйте в нем параметр. В нашем Веб-окружении нужно поменять файл php.ini.nooci и перезапустить веб-окружение.
Поделюсь еще небольшим скрином из панели администрирования. На этот раз реализуется функционал прикрепления аксессуаров к товару. Не скрою - черпаю вдохновение в Magento. Еще не готово, но сейчас закладка выглядит примерно так (кликабельно):
Уже который раз сталкиваюсь с тем, что после выключения и выключения визуального редактора в шаблоне сайта я получаю подобную галиматью вместо картинок:
<div id="header"></div>
Заменяет кавычки и уголки на HTML-аналоги. То есть картинки после работы визуального редактора неработоспособны, а их в шаблоне может быть очень много... и каждую потом восстанавилвать очень муторно. Как излечить битрикс от привычки портить чужую работу?
P.S. изначально код выглядел так: <div id="header"></div>
Стимулирование индуктивно отражает нестандартный подход, опираясь на опыт западных коллег. Портрет потребителя оправдывает план размещения, осознав маркетинг как часть производства. Портрет потребителя основан на тщательном анализе данных. Контент основан на опыте. Баланс спроса и предложения нейтрализует межличностный процесс стратегического планирования, не считаясь с затратами.
Тему моего первого поста в блоге навеяли , в которых обсуждалось как устанавливать заголовок страницы из компонента который кешируется.
Очень часто в целях поисковой оптимизации требуется установить особенный заголовок, не такой как у $arResult["NAME"], а например "Холодильники ".$arResult["NAME"]; и др.
Или нам требуется установить картинку раздела из компонента. Допустим на сайте есть внутренний вижуал, который меняется в зависимости от выбранного автомобиля. .
Задумались мы - что же ставить: Битрикс или Вордпресс для нашей небольшой компании. Мы . Обороты у нас небольшие, поэтому бюджет соответсвующий. Че делать то? В чем будет разница этих двух платформ?
Записывал сегодня у себя на ноутбуке презентацию для Корпоративного портала и обнаружил неприятный момент в нашем Битрикс:Веб-окружении.
Оказалось, что eAccelerator по-умолчанию работает в режиме отладки и сильно увеличивается error.log и замедляется работа продукта.
Досадно, но факт.
Чтобы устранить ошибку сейчас, до выпуска нового дистрибутива Битрикс: Веб-окружения, вы можете открыть каталог \apache и поправить два файла php.ini.oci php.ini.nooci
допишите в конце конфигурационного файла в секцию extension="eaccelerator.dll" новую строчку: eaccelerator.debug="0"
Обратите внимание, что надо менять эти ini файлы, так как php.ini будет переписан одним из них при запуске, в зависимости от наличия на компьютера библиотек OCI для Oracle.
Ну и не забудьте удалить большой файл \logs\error.log
Инфоблоки — это, наверное, самый используемый модуль. Ни один сайт на Битриксе не обходится без него. Это очень гибкий инструмент, но чтобы воспользоваться всей этой гибкостью, придётся хорошенько изучить API. Но официальная документация, как мы знаем, описывает не всё моменты
Задача
И так, задача, которая встаёт перед каждым разработчиком, который использует информационные блоки — выбрать свойство(-а) элемента инфоблока и вывести его на экран. Первая половина дела банальна: метода класса CIBlockElement подробно описаны в документации. А вот со второй половиной (особенно, если свойство сложного типа) уже интереснее
Решение задачи
Возьмём свойство типа «HTML\текст». Для этого свойства нельзя просто вывести его значение (ключ «VALUE»), т.к. это — массив, содержащий,«сырое» значений и его тип (HTML или текст). Нет, мы может, конечно, сами отформатировать «сырое» значение в соответствии с его типом, но в голову закрадывается сомнение — неужели это не реализовано в самой CMS? Как же работает с произвольными свойствами компонент bitrix:news?
Собственно, из кода этого самого bitrix:news мы и сможем узнать, как же он так хитро работает А ничего хитрого-то, оказывается, и нет! Всего один вызов метода GetDisplayValue класса CIBlockFormatProperties:
До недавнего времени меня вводила в недоумение постраничная навигация. Нигде в документации не описано, как поменять шаблон для неё! Но, если руки растут из того места, то во всём можно разобраться самому. А чтобы другим не пришлось тратить на это время, я решил написать эту заметку