Виджет для вывода контента с другого сайта InstantCMS (через JSON API)

+23
2.5K
Приветствую,

Виджет умеет выводить список контента, который получен с другого сайта InstantCMS через JSON API (бесплатный компонент, который должен быть установлен на сайте источнике).

Сейчас он может получать записи из двойки, но если будет интерес в выводе записей из первой ветки — можно организовать (даже без внесения правок в этот виджет).



В отличии от RSS виджета, в котором просто указывается адрес канала, тут можно фильтровать записи по категории и наборам. И выводить поля, которые могут не попадать в RSS.

Поддерживает фильтр по категории, наборы, вывод иллюстраций и других полей.


Порядок работы:

1. Установить на сайте источнике компонент InstantCMS JSON API (он нужен для отправки контента на тот сайт, который будет его выводить)

2. В настройках InstantCMS JSON API создать ключ API. Если это чужой сайт и у вас нет к нему доступа, тогда запросить эти данные (если владелец сайта не против выводить свой контент у вас)

3. Добавить в нужное место шаблона виджет «Список контента (API)» — он находится на вкладке «Контент», рядом со стандартным виджетом «Список контента»

4. В настройках виджета указать домен и ключ сайта источника в формате "site.com:111222333" — где 111222333 это API ключ созданный на втором шаге.

5. При необходимости указать дополнительные фильтры (рубрику, набор) и настроить шаблон вывода.

Вы можете добавлять и использовать свои шаблоны от виджета «Список контента», но в этом случае нужно внести как минимум пару изменений (используя переменную $host, которая доступна из шаблона. В ней лежит домен сайта источника, который нужно добавить к ссылке):

1. Поправить значение переменной $url аналогии с шаблонами виджета (чтобы ссылки были абсолютные и ссылались на правильный домен — сайт источник)

2. Поправить ссылку на пользователя если в шаблоне выводится автор контента (чтобы ссылка была на сайт источник).

0
Dorimen Dorimen 6 лет назад #
Классно. Спасибо.
0
Евгений Евгений 6 лет назад #
Круто, то что нужно, спасибо!
0
Евгений Евгений 6 лет назад #
Неплохо бы еще и что-то вроде парсера аналогичного по api
0
SmartControl SmartControl 6 лет назад #
не понял, какого парсера? - есть официальное JSON API для двойки и есть этот виджет, который получает данные через него и выводит на экран в соответствии с настройками.

А где в этой схеме должен быть парсер?
0
vikont vikont 6 лет назад #
Зачем виджет, если делать парсер? В данном случае, это взаимоисключающие вещи.
Скорее всего имелась ввиду возможность работать с удаленным ресурсом как будто он находится на сайте.
0
SmartControl SmartControl 6 лет назад #
Так есть же RSS виджет, он как раз выводит rss поток с любого удаленного ресурса. А парсер пишется либо под конкретный ресурс с конкретной структурой, либо с универсальными настройками - и первое, и второе уже есть.

Я просто не понимаю фишку, зачем писать ещё один? - а виджет даёт более полный контроль над содержимым + позволяет фильтровать контент как угодно - по рубрике и набору.
0
Евгений Евгений 6 лет назад #
Сейчас поясню фишку, виджет как ниже уже упоминалось, позволяет связывать проекты между собой вроде виджета мультисайтовости. Такой же, но не виджет а APIпарсер между своими проектами, позволил бы допустим приобрести полноценный парсер на один домен,а с него раздавать на другие не связанные проекты по APIпарсеру по аналогии с виджетом(экономия средств на лицензиях), или допустим есть компонент инстант видео там замечательный парсер youtube, допустим на другие сайты нужно только видео с youtube без полноценного видео-портала, можно было бы парсить в выбранную категорию на сайте лицензии без публикования, но по api этот контент публиковался бы на другом своем сайте.
0
Евгений Евгений 6 лет назад #
Можно даже в этом виджете объединить эти функции поставить выбор подгружать контент с сайта источника(донора) или публиковать на новом своем сайте(реципиенте)
0
SmartControl SmartControl 6 лет назад #
Я понял про что вы, такой цели не стояло (нужно было только показать, а не постить у себя то, что есть на другом сайте). Про это надо думать отдельно..

А этот виджет не должен ничего публиковать, потому что он "виджет".. Это нужно реализовывать по-другому - например, компонентом, события которого будут запускаться по крону и что-то там делать - запрашивать и создавать.
+1
Asket Asket 6 лет назад #
Столь нужное дополнение функционала CMS до возможностей мультисайтовости.
И чего раньше никто не сделал… Получается, Вы гений…

Спасибо!
+1
vikont vikont 6 лет назад #
Виджет действительно интересный, но до мультисайтовости ему далеко. Он только выводит информацию с другого сайта в виде списка, но при клике по пункту списка вы все равно попадаете на сайт источник. При мультисайтовости, вы работаете с инфой с другого сайта как со своей.
0
Евгений Евгений 6 лет назад #
Подобная реализация мультисайтовости при помощи виджетов реализована на https://vtomske.ru, там все на главной подгружается при помощи аналогичных виджетов с других сайтов проекта, например новости на главной подгружаются с https://news.vtomske.ru и остальное форум, недвижимость, работа, объявления, гороскоп с других сайтов портала
0
Asket Asket 6 лет назад #
vikont:
Он только выводит информацию с другого сайта в виде списка, но при клике по пункту списка вы все равно попадаете на сайт источник.
Да, понимаю. Для моих целей, именно то, что нужно.
0
SmartControl SmartControl 6 лет назад #
При мультисайтовости, вы работаете с инфой с другого сайта как со своей.
а пример можно? - то есть контент на разных сайтах дублируется? - "используется как свой"..

Можно ведь и отображать на своем сайте записи, прилетевшие с другого (как, например, это делается в мобильном приложении). Но вопрос - зачем? - я пока не понимаю саму схему.
0
vikont vikont 6 лет назад #
а пример можно? - то есть контент на разных сайтах дублируется? - "используется как свой"..
При мультисайтинге идет прямая работа с удаленной базой данных! На самом деле, как правило, все находится на одном хостинге, но возможно работать и с реально удаленной базой.
Так работает CMS Drupal в режиме мультисайтинга. инстант этого пока не имеет.
0
Алексей Т Алексей Т 6 лет назад #
Есть головной сайт города. Называется допустим ( ГОРОДСКОЙ САЙТ ГОРОДА КУРСК) + в этом городе есть сайт Комитета культуры где только новости культуры этого города. Админ сайта ГОРОДСКОЙ САЙТ ГОРОДА КУРСК делает раздел на своем сайте где новости с сайта Комитета культуры показываются как свои. Плюс может полноценно показывать новости с узкоспециализированных сайтов этого города. Например афиша города, объявления, криминальные новости или с сайта школы какой нибудь. Это очень удобно для автозаполнения головного сайта. Где он будет транслировать новости с других проектов этого города.
0
SmartControl SmartControl 6 лет назад #
Админ сайта ГОРОДСКОЙ САЙТ ГОРОДА КУРСК делает раздел на своем сайте где новости с сайта Комитета культуры показываются как свои.
Пессимизации за дублированный контент нет? - или просто запрещает к индексации такие страницы?

Да, я понял, делать можно такое. Механизмы для этого есть.
0
Melon Melon 6 лет назад #
Мне скорее видится так: на поддоменах размещены тематические сайты (авто, работа, недвижимость и т.д.), а основной домен является новостником плюс на нем выводится инфа с поддоменов.
0
SmartControl SmartControl 6 лет назад #
Тогда вопрос в том, какой функционал должен быть на этом новостнике, когда он выводит контент тематического поддомена.

Просто показать запись? - или полноценно вывести тип контента "Авто" (например), с рубриками, фильтрами, наборами и кнопкой "добавить новый" - притом, что все операции должны производиться над базой данных поддомена. А новостник только для отображения
0
vikont vikont 6 лет назад #
Это решают владельцы сайтов!
Рассмотрим другой пример. Существует сайт "Дошколята Республики", который является головным для сайтов дошкольных учреждений! На головном сайте основные информационные базы, а на сайтах ДОУ информация о текущей жизни.
Что в данном случае интересно:
1. Сквозная авторизация или ее обход за счет перехода по сайтам внутри данной сети.
2. На головном сайте иметь новостную ленту событий с сайтов ДОУ, а так же сбор различной статистики с сайтов ДОУ.
3. На сайтах ДОУ интересно получение какого либо общего и единого ресурса с головного сайта и работа с ним как со своим собственным, то есть без перехода и авторизации. Например нормативная база, система рассылки внутренних документов, методические разработки, учебные материалы и пр...
Система рассылки - это единая база в которой к каждому документу можно указать для кого и какого ДОУ он предназначен, а на сайтах ДОУ видят только тот документ, который для них предназначен. Так же осуществляется обратная связь с управлением и другими ведомствами.
0
Melon Melon 6 лет назад #
Мне скорее видится так: на поддоменах размещены тематические сайты (авто, работа, недвижимость и т.д.), а основной домен является новостником плюс на нем выводится инфа с поддоменов.
0
Roman Roman 6 лет назад #
Классная штуковина + в карму)
0
482 482 5 лет назад #
Виджет классный! Работает отлично! Правда не смог самостоятельно разобраться вот с чем. При выводе фотоальбомов с сайта "Б", на сайте "А", ссылка на изображение формируется без домена
Код PHP:
  1. <img src="/upload/000/u2/6/f/bc0667b2.jpg" title="Fairy Tail" alt="Fairy Tail" />


Что мне в таком случае нужно сделать?

Еще от автора

Stylik - визуальный редактор CSS стилей
Всем привет, Это первый компонент из серии (Шаблон + Лендинг + Редактор). Он позволяет кастомизицировать любой шаблон под InstantCMS 2.
Smart Шаблон на Bootstrap 4, Первое знакомство
Приветствую. В этом шаблоне нет привычной заранее заданной схемы позиций. Любая схема создается вручную за пару минут.
Загрузка с Google Images и Релевантные видео Youtube
Приветствую, В этом посте расскажу сразу про две доработки.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.