1С-Битрикс: Управление сайтомНа главную страницу
Клиентам
Маркетплейс
Партнерам
Разработчикам
Интеграция с 1С
Идея?


Личный кабинет
Авторизоваться
Регистрация
(войти) Корзина
Логин:

Пароль:



Забыли свой пароль?
Регистрация
Войти как пользователь:
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
ВКонтакте
Мой Мир
Twitter
Facebook
Google
Livejournal
Яндекс
Rambler
Mail.Ru
Liveinternet
Blogger
OpenID
Используйте вашу учетную запись VKontakte.ru для входа на сайт.
Используйте вашу учетную запись Мой Мир@Mail.ru для входа на сайт.
Используйте вашу учетную запись на Twitter.com для входа на сайт.
Используйте вашу учетную запись на Facebook.com для входа на сайт.
Используйте вашу учетную запись Google для входа на сайт.
.livejournal.com
@yandex.ru
@rambler.ru
@mail.ru
http://www.liveinternet.ru/users/ /
.blogspot.com
OpenID:
  • Документация
    • Платформа PHP
    • Корпоративный портал
    • Платформа ASP.NET
    • Отраслевые решения
    • Marketplace
    • Аренда приложений (SaaS)
  • Обучение и сертификация
    • Онлайн-курсы и сертификация
    • Учебные центры
    • Мое обучение
    • Учебные видеоролики
  • Центр поддержки
    • Поддержка
    • FAQ
    • Мои обращения
  • Сообщество
    • Блоги Битрикс
    • Блоги веб-разработчиков
    • Общие форумы
    • Веб-разработчики
      • Моя страница
      • Мои сообщения
      • Группы
      • Найти коллег
  • Cтатьи
    • Архив
Главная / Общение / Блоги / oracle

Публикация новостей с контроллера на подключенных сайтах.

  • Блоги
  •  » 
  • oracle

Публикация новостей с контроллера на подключенных сайтах.

0
Максим Смирнов
18.01.201015:4718.01.2010 15:47:51
Идея публикации новостей заключается в формировании на контроллере xml файла, передаче его на подключенные к контроллеру сайты и импорте метаданных инфоблока и значений полей/свойств элемента.

Как это работает в картинках:


0. Начальные условия.
Установленный битрикс 8.6.0 с модулями контроллера, инфоблоков и бизнес процессов.
Подключенный сайт 8.6.0 с модулем инфоблоков.



И на контроллере и на подключенных сайтах в настройках модуля инфоблоков (по крайней мере на время) надо установить флажок отображения кода загрузки из внешних источников.



1. Настройка инфоблока на контроллере.
Во-первых надо указать внешний код - именно по нему будет выполняться синхронизация элементов.
Во-вторых инфоблок надо перевести в режим бизнеспроцессов.
И нажать кнопку "Применить".



На появившейся вкладке "Шаблоны бизнес-процессов" надо отметить автозапуск БП синхронизации и сохранить изменения настроек инфоблока.



2. На подключенном сайте надо создать инфоблок с таким же значением внешнего кода. Разместить и настроить в публичной части компонент отображения новостей.

Кроме привязки к сайту, названия и внешнего кода



необходимо настроить и права доступа к инфоблоку.



Создаем страницу



Размещаем настраиваем на ней компонент news.



3. На сайте контроллера добавляем новость







4. На подключенном сайте нажав на "Обновить" видим новость.

Максим Смирнов
18.01.201015:4718.01.2010 15:47:51
Просмотров:3499 Комментариев:33 0
Теги: Контроллер, Инфоблоки
*
 
Незарегистрированным пользователям запрещена вставка ссылок. Зарегистрируйтесь или авторизуйтесь.
*
Добавить комментарий
0
Иван
19.01.2010 14:23:47
интересно
Ответить Ссылка 0
0
Иван
19.01.2010 14:27:13
На подключенном сайте модуль документооборота/бизнеспроцессов стоять не должен?
Ответить Ссылка 0
0
Максим Смирнов
19.01.2010 15:39:50
Нет, не должен.
Предполагается только наличие главного модуля и модуля инфоблоков.
Ответить Родитель Ссылка 0
0
Черепанов Сергей
19.01.2010 14:32:51
Максим, а в обратную сторону робит? Ну скажем нам необходимо собирать информацию с подчиненных сайтов. Есть некий инфоблок на каждом из *дцати подчиненных сайтов редакции от Старта до Бизнеса + КП, инфоблоки все один в один и по свойствам и по прочим настройкам, за исключением ID разумеется. Сейчас всю инфу собираем с подчиненных сайтов через csv экспорт, грузим в "контроллирующий" портал через csv-импорт, а потом общую базу экспортируем в csv для импорта на подчиненных сайтах.
Бизнес позволяет делать это автоматически штатным функционалом, в младших редакциях делаем вручную.

Возможна ли такая модель двухсторонней синхронизции?
Ответить Ссылка 0
0
Максим Смирнов
19.01.2010 15:43:18
В теории да.
На практике надо скопировать controllerremoteiblockactivity в скажем controlleruploadiblockactivity.
Чутка его поправить (5-10) строк кода.
И в дизайнере "нарисовать" БП с участием этой активити.
Ответить Родитель Ссылка 0
0
Черепанов Сергей
19.01.2010 15:48:59
Максим, сразу предлагаю сделать штатным. Уверен пройдет совсем немного времени, когда появится спрос на такую обратную синхронизацию.
Я могу оплатить своему штатному программеру 2кРубля за пару часов работы, но... опять костыль, который в один прекрасный момент после обновлений станет не нужным.
Можете решить на этой неделе "будет - не будет". Пока не жмет. Если в план разработки встанет - подождем, если скажете, что ждать бессмысленно - будем костылить.
Ответить Родитель Ссылка 0
0
Максим Смирнов
19.01.2010 16:44:51
Костыльте.

Если это и будет реализовано, то ой как не скоро.
Ответить Родитель Ссылка 0
0
Тыртов Владимир
04.02.2010 23:23:59
Да - у нас тоже эта задача стоит. С подчиненного сайта забирать новости и показывать на внутреннем портале.
Правда пока похоже ограничимся RSS лентой smile:) благо в КП есть функционал...
Ответить Родитель Ссылка 0
0
Карпович Игорь
19.01.2010 14:53:32
Еще вопрос, что будет, если в момент добавления новости пройдет некий лаг между контроллером и подчиненным сайтом? Новость просто не добавится? Или есть некая очередь команд?
Ответить Ссылка 0
0
Максим Смирнов
19.01.2010 15:44:42
Если на контроллере установлен модуль дизайна БП, то можно изменить параметры синхронизации.
В том числе и выполнение ее немедленно или через очередь.
Ответить Родитель Ссылка 0
0
Иван
19.01.2010 15:02:56
У меня не получается добавить сайт в контроллере, есть мануал по этому поводу?
Ответить Ссылка 0
0
Иван
19.01.2010 15:29:59
Вот такая фигня:

Ошибка сохранения
Код
Результат ответа сервера имеет некорректный формат: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Сообщение об ошибке</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<STYLE id=L_default_1>A {
Ответить Родитель Ссылка 0
0
Максим Смирнов
19.01.2010 15:45:37
Убедитесь, что версии главного модуля на контроллере и подключаемом не меньше 860.
Ответить Родитель Ссылка 0
0
Иван
19.01.2010 21:46:37
Так специально все бетки поставил, контроллер использую на КП.
Ответить Родитель Ссылка 0
0
Максим Смирнов
20.01.2010 12:44:22
Иван, покажите скрин /bitrix/admin/controller_member_edit.php?lang=ru с ошибкой.
Или создайте обращение в ТП (с админским доступом к админке контроллера) с категорией "Платформа приложений".
Ответить Родитель Ссылка 0
0
Новожилов Кирилл
20.01.2010 12:28:20
Отлично работает. Спасибо. Очень удобно, особенно когда на саппорте несколько сайтов.

Оффтоп: FF под KDE4? smile:)
Ответить Ссылка 0
0
Максим Смирнов
20.01.2010 12:39:13
kubuntu 9.10
Ответить Родитель Ссылка 0
0
Новожилов Кирилл
20.01.2010 12:46:01
Собственно так и подумал smile:)
Ответить Родитель Ссылка 0
0
Тыртов Владимир
04.02.2010 23:25:50
Максим - сделал обновление КП. Там есть шаблоны бизнес-процессов другие,
как можно подключить (где взять) шаблоны для обновления инфоблоков?
Ответить Ссылка 0
0
Максим Смирнов
05.02.2010 10:55:54
Если нет дизайнера БП, то:
1 Идем в настройки инфоблока.
Удаляем все связанные с ним БП (вкладка Шаблоны бизнес-процессов, ссылка Список шаблонов бизнес-процессов).

2 Отключаем БП для иблока (Участвует в документообороте или бизнес процессах - нет + кнопка Применить)

3 Включаем БП для иблока (Участвует в документообороте или бизнес процессах - бизнес процессы + кнопка Применить)
Ответить Родитель Ссылка 0
0
Тыртов Владимир
05.02.2010 11:45:55
Спасибо!

Еще вопрос - планируется ли штатный БП для забора веб-форм (результатов) с сайтов?
Ответить Родитель Ссылка 0
0
Максим Смирнов
05.02.2010 14:32:30
Вы первый кто спросил.
Интересная мысль и может быть поставлена в план. Бум думать.
Ответить Родитель Ссылка 0
0
Тыртов Владимир
05.02.2010 16:16:17
Нам для "Портала органа власти" очень нужно - обработка обращений граждан. Делать ее на стороне сайта можно, но в случае внедрение КП - надо делать в портале.
Ответить Родитель Ссылка 0
0
Острецова Татьяна
23.12.2010 11:44:46
А если после этих действий всё-равно не появился нужный БП? В техподдержку?
Ответить Родитель Ссылка 0
0
Максим Смирнов
23.12.2010 15:49:50
да
Ответить Родитель Ссылка 0
0
skynet
21.02.2010 01:10:13
Максим, скажите пожалуйста, а как быть в данной ситуации:

Есть два инфоблока с на КП: первый с элементами, которые нужно будет реплицировать на подчиненный сайт, и эти же элементы привязаны к разделам второго инфоблока (свойство привязки к разделам инфоблока). Чтобы было понятнее - Элементы первого инфоблока - Семинары, у них есть привязка к городам, в которых они проходят. Города - это разделы во втором инфоблоке (элементы второго инфоблока это конкретные адреса в городе, но это не важно). Так вот - семинары добавляются на контроллере и должны быть реплицированы на подчиненный сайт. На подчиненном сайте так же есть два инфоблока с семинарами и городами. Так вот, вопрос - сам семинар, добавленный на контроллере, понятное дело появится на подчиненном сайте, но что будет с привязкой этого элемента ко второму инфоблоку, ведь на подчиненном сайте ID инфоблока с городами да и айдишники самих разделов (Городов) не такие как на контроллере...

Возможно ли сделать так, чтобы семинары не теряли привязки на подчиненном сайте?
Спасибо заранее...
Ответить Ссылка 0
0
Максим Смирнов
24.02.2010 12:19:25
Для этого достаточного совпадения внешних кодов (xml_id) разделов "городов" на контроллере и подчиненном.

Выполните xml экспорт городов на контроллере и импортируйте этот файл на подчиненном.
Ответить Родитель Ссылка 0
0
skynet
24.02.2010 16:19:45
Спасибо большое!!!!
Ответить Ссылка 0
0
Alexander Neupokoev
02.09.2010 15:03:26
Подскажите - а если на Контроллере добавляется новое Свойство инфоблока - будет ли оно при обмене автоматически создано на подчиненном сайте?
Ответить Ссылка 0
0
Максим Смирнов
03.09.2010 13:08:23
Да.
Ответить Родитель Ссылка 0
0
Гринев Роман
17.11.2011 03:01:33
Максим, подскажите. Как будет вести себя элемент, опубликованный на подчиненном сайте, при снятии его с публикации на контроллере? 
Нам нужно сделать, чтобы при снятии публикации элемента он автоматически удалялся или снимался с публикации на подчиненных сайтах. Это возможно?
Ответить Ссылка 0
0
Максим Смирнов
18.11.2011 00:28:34
Роман, снимите галочку активности элемента и БП на изменение элемента деактивирует его на подключенных сайтах.
Снятие с публикации не тестировал, но оно и не должно работать без доработки с нашей стороны.
На удаление элемента мы пока не умеем запускать БП.
PS в принципе можно написать обработсчик события OnBeforeElementDelete запускающий процесс удаления на подключенных сайтах через CControllerMember::RunCommandWithLog например.
Ответить Родитель Ссылка 0
0
Гринев Роман
18.11.2011 07:54:41
Спасибо! Сейчас внедряем. Будем пробовать.
Ответить Родитель Ссылка 0

Добавить комментарий
 
Технологии Эрмитаж
BitrixMobile
Автокеширование
SiteUpdate
Производительность Виртуальная машина
Веб-окружение
Результаты тестов
Выбрать хостинг
Веб-кластер
Безопасность Проактивная защита
Веб-антивирус
Аутентификация

Контакты Поиск Карта сайта
Телефон: +7 (495) 229-14-41
Оставайтесь с нами: Facebook Twitter Habrahabr VKontakte Developers Google 1+
Как распознать QR код?Контакты QR


© 2001-2012 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом.
Английская версия Немецкая версия