[spoiler]
Курс доступен кроме он-лайна и в формате CHM, как обычно. Курс в течение пары недель будет дорабатываться по результатам работы над сайтами наших "первых ласточек". Поэтому, в первое время данные в файле CHM будут отставать от он-лайн версии.
На данный момент курс без теста, но это не надолго. Прохождение теста и получение сертификата будет необходимо для получения соответствующей компетенции. Сдача теста по этому курсу будет увязана с прохождением тестов курса Разработчик Bitrix Framework. Мы считаем, что освоение этой технологии - это своеобразный "высший пилотаж" для разработчиков. Поэтому и такая увязка.
Успехов вам в освоении новой технологии!
Коллеги, вопрос, никто не замечал глюков композитного сайта на кириллических доменах или быть может на каком-то железе, конфигарциях сайтов?
А то вроде в целом всё ОК:
- в шаблоны компонентов, которые должны использовать композитный сайт добавлен в начале (при подключении пролога) $this->setFrameMode(true);
- в шаблоны некоторых компонентов (например, баннерокрутилки) добавлен $this->createFrame()->begin('Загрузка'); (т.е. он ротируется случайным образом и в композит на первое время включать не думаю)
Но ни кнопка не появилась, ни лог не начал создаваться...Без лога все шаблоны компонентов проверять лениво, вот думаю я задом-наперёд читаю доку или это фишка-баг...
8)
как в доке...
Изменения удивили.
Во вкладке "композитный сайт" появилась возможность указания домена, но исчезла возможность указания САЙТА СИСТЕМЫ! А если у меня многосайтовость? Многосайтовость бывает и на одном домене! А бывает вообще когда смешанная.
по прежнему не работает, лог не пишется.
8)
Попробуйте зайти на сайт в приватном режиме браузера.
Группы не трогал. Для неакторизованных юзеров должно работать и так, как я понял из мануала. А за пол дня на сайт новых юзеров назаходил вагон. 0 файлов кеша, файл лога не создался даже.
Т.е. что-то очень низкоуровневое я делаю "не так".
то ли лыжи, то ли я...
Включил выключил - 0 эмоций.
Смущает то, что даже лог не пишется.
пойду мучить.
спасибо!
Из названия наконец появившейся папки /bitrix/html_pages/xn--80ahcjeib4ac4d.xn--p1ai/ стало очевидно, что в отличие от настроек сайтов в настроек композита домен необходимо указывать в ПИАНКОДЕ!
Я понимаю, что тест на администратора хорошо идет после контент-менеджера.
Композитный сайт после курса по разработке тоже логично.
Но как можно делать такую длинную цепочку контент-админ-программист-композитный сайт?
Может не надо требовать тест "Администрирование" перед "Разработчиком"?
------------
Раньше я давал программистам-стажерам задание "прочитать курс и сдать тест", а сейчас не могу.
Правда завязку КМ-Базовый и Разработчик Bitrix Framework-Композитный сайт хотелось бы сохранить.
Или есть какие-то другие идеи?
Насколько я понял, именно специальные скрипты подгружают большую часть информации при использовании новой технологии. А вопрос следующий: Технология "Композитный сайт" учитывает то, что не все поисковые роботы могут выполнять JavaScript? Или же всё гораздо сложнее, и все подобные нюансы учтены?
Пробую на денвере.
Я включил все
В файле dbconn
в bitrix/html_pages/ 2 файла:
- .config.php
- .enabled
Содержимое конфига:
Надо проверять в какие группы входит конкретный пользователь.
Технология создавалась для анонимных пользователей, не для показа сайтам админов. Особой проблемы в этом нет: открыть другой браузер и проверять в нём страницу незарегистрированным пользователем - не сложно.
будет ошибкой, причем она довольно сложно диагностируется... Сам напоролся когда тестировал наше типовое решение с композитным кешем, долго не мог понять причину...
Например, при включенном сжатии в главном модуле - для разных браузеров генерятся разные файлы стилей, следствие меняется контрольная сумма html файла и вызывается перезапись (но это надеюсь исправят обновлениями, запрос в тп создал)
если в логике компонентов использовать USER_AGENT, и генерировать, например на вывод разные стили для разных браузеров - опять может вызвать перезапись файла композитного кеша.
В тесте наткнулся на вариант ответа "JS не должен работать с динамической частью"
т.е. если у меня есть некий глобальный обработчик клика по блоку с определёнными параметрами
и в динамической части генерируется несколько таких блоков, получается, что js работает с динамической частью, или я что-то не так понял?
Это к нас была ошибка. Вопрос поправили.
И как использовать
BX.bitrix_sessid() -
Каптчу нужно ставить в динамику.
Подскажите про кнопку: могу ли я менять её стили? Например, убрать бордер-радиус и паддинги. Или это уже будет нарушением лицензионного соглашения?
Страницы в html_pages создаются, логи пустые, т.к. уже все компоненты голосуют "за". И страница не перезаписывается. В чем может быть дело?
Если пользователь входит хотя бы в одну группу, которая не указана в настройках, композит работать не будет. Скорее всего пользователь входит в несколько групп, одна из которых определена как группа "не для композита".
1. Приходит запрос
2. Отдается закэшированная часть
3. Параллельно идут запросы для получения динамичного контента
4. Замена контента при помощи JS
Возможно я где-то ошибся, поправьте.
Вопрос следующий(при условии что я все правильно понял): Как к этому отнесутся поисковики? Фактически будет одна страница, а уже после полной загрузки данные на странице поменяются, что не есть хорошо.
Получается так, что при заходе роботом выдается одна информация(HTML код из Кэша).
А при обработке браузером(подключается JS с AJAX запросами), выдается другая информация. Хоть и в мелких объемах, но изменения есть.
Насколько это критично - не могу сказать. Завтра уточню у наших SEO специалистов, и смогу дать более правильный ответ.
А еще гугл научился обрабатывать страницы с js. Поэтому для него точно это не проблема
Весь динамический вывод, там где это требовалось, сделан по гайду.
<?$frame = $this->createFrame()->begin();?>
...
<?$frame->end();?>
Там, где не требовалось отдавать контент динамически, компоненты были включены в композитный кэш.
Сайт стал очень быстро отдавать композитные страницы. Но вот что замечено. В пятницу пришли поисковики индексировать сайт. композитный кэш стал быстро расти. Квота установлена в 5 гигабайт. На момент вечера пятницы композитный кэш вырос до 1,2 ГБ и продолжал расти с индексацией сайта. Однако, в понедельник я увидел, что композитный кэш был сброшен. Сам. В понедельник его размер составлял 70 мегабайт, хотя с пятницы сайт никто из админов не трогал.
Вопросы:
1. Что могло привести к самостоятельному сбросу композитного кеша?
2. Если в композитную страницу включен компонент, который полностью композитно кэшируется (не выводится динамически), то могут ли настройки кэширования этого компонента влиять на срок жизни закэшировннной композитно страницы? Например, если вся страница целиком композитно кешируется, но у компонента новостей на этой странице указано в параметрах, что применяется кэширование и время кэширования 10 секунд, то посетитель, который пришел на 11-й секунде, заставит сайт стереть эту страницу из композитного кэша и создать ее заново?
Если контент останется прежним, т.е. хеш-сумма останется такой же, композитный кеш сброшен не будет.
Рассинхронизация счетчика может происходит из-за ручного (через файловую систему) удаления кеша в папке /bitrix/html_pages/.
Попробуйте очистить весь композитный кеш (через админку), счетчик сбросится в ноль.
После отдачи страницы сервер выполняет код страницы в фоновом режиме. Это нужно и для выдачи динамических данных и для создания нового файла страницы, сверки её со старым и замены, если вдруг есть в этом необходимость. Посмотрите
Самостоятельно вставить данные дин. области можно на вот этих событиях:
BX.addCustomEvent("onFrameDataReceivedBefore", function(json) {} ); - событие происходит перед началом цикла вставки дин. блоков
BX.addCustomEvent("onBeforeDynamicBlockUpdate", function( block, fromCache) {}); - событие происходит перед вставкой каждого блока. Если для конкретного блока в шаблоне компонента было указано $frame->setAutoUpdate(false), то вставка динамического блока не происходит.
BX.addCustomEvent("onFrameDataReceived", function(json) {}); - событие происходит после цикла вставки дин. блоков
где json - это все данные, которые пришли в композитном ajax-хите
block - это данные по конкретному блоки (id, контент и другие)
fromCache - равен true, когда данные вставляют из локальной SQL-базы.
Пример кода компонента, голосующего "против"
и
Пример кода шаблона, голосующего "против"
одинаковые.
Для таких сообщений можно не переходить в блог из курса. В низу каждой страницы есть форма для написания сообщения. Правда, нужно быть авторизованным.
Функция <?$APPLICATION->ShowHead();?> вставляет несколько скриптовых файлов:
<sc ript type="" src=""></sc ript><sc ript type="" src=""></sc ript><sc ript type="" src=""></sc ript><sc ript type="" src=""></sc ript><sc ript type="">BX.setCSSList(['/bitrix/js/main/core/css/core.css','/bitrix/js/main/core/css/core_popup.css','/bitrix/js/socialservices/css/ss.css']); </sc ript><sc ript type="">BX.setJSList(['/bitrix/js/main/core/core.js','/bitrix/js/main/core/core_ajax.js','/bitrix/js/main/json/json2.min.js','/bitrix/js/main/core/core_ls.js','/bitrix/js/main/core/core_fx.js','/bitrix/js/main/core/core_popup.js','/bitrix/js/main/session.js','/bitrix/js/main/core/core_window.js','/bitrix/js/main/utils.js','/bitrix/js/socialservices/ss.js']); </sc ript>
У некоторых из них рандомные цифры в конце, из за чего перезаписывается кеш файлы. Пробывал делать их динамичными, но этом случает так как это js скрипты, что то перестает работать...
Как можно решить эту задачу?
Как заставить композитный сайт работать без <?$APPLICATION->ShowHead();?> ?
Если числа изменяются, значит изменяются соответствующие файлы. Перезапись кеша в этом случае - нормальное поведение.
Если не перезаписывать кеш, то это может привести к ошибкам на странице. У вас может измениться CSS или JS, который будет не соответствовать содержимому на странице.
Что можно сделать в этом случае?
1. <sc ript type="text/javascript" src="/bitrix/cache/js/s1/site_name/kernel_pull/kernel_pull.js?141000167734886"></sc ript>
2. добавляеться этот скрипт '/bitrix/js/pull/pull.js' к BX.setJSList
3. <sc ript type="text/javascript">BX.bind(window, "load", function() { BX.PULL.start({'CHANNEL_ID':'41cb2737c8327ecb2f1c802a4adf69bb','LAST_ID':'0','CHANNEL_DT':'1409992139','PATH':'/bitrix/components/bitrix/pull.request/ajax.php?UPDATE_STATE','PATH_WS':'','METHOD':'PULL'}); });</sc ript>
Могут ли быть где нибудь настройки в Битриксе которые влияют на это?
Текущее решение - только отключение модуля.
Пользоваться так:
1) в dbconn.php отключаем стандарный механизм подключения - define("BX_PULL_SKIP_INIT", true);
2) В шаблоне сайта подключаем компонент - $APPLICATION->IncludeComponent("bitrix:pull.request", "composite");
/index.php?no_composite=Y но в других случаях работала в композитном. Пробывал маску исключения, но там можно передавать только раздел или файл.
Перерыл все курсы, но ничего подобного не нашел. Очень нужен этот функционал.
2) И работает ли технология для https? У меня пока работает только в http..
3) Проблему выше описанную Бегуновым Дмитрием тоже иногда встречаю.. только вижу не панель битрикса, а как будто режим правки, для обычного пользователя.
Т.е. предполагается композит для анонимов, но композитные файлы перезаписываются и из-под админа.
В чем может быть проблема?
Или например такое решение как ПОХОЖИЕ ТОВАРЫ - у меня они каждый раз выводятся в случайном порядке и тем самым создается новая html страница.
Оба варианта прописал в настройке сайта /bitrix/admin/site_edit.php?LID=s1&lang=ru
В чем может быть проблема?
При этом после этого включается блокировка, определенная в настройках контроля активности.
В чем проблема, почему генерируется такое количество запросов, разве это нормальный режим работы для композита? Как от этого избавиться, если только не увеличением количества хитов за единицу времени или отключением контроля активности вообще?
Придется изучать по новой.