Связка MODx Reevolution + LiveStreet

в 15:18, , рубрики: LiveStreet, livestreet cms, modx, modx revolution, ненормальное программирование, социальные сети, метки: , ,

Когда собирался писать свой топик, ломал голову куда же его писать? С одной стороны часть сайта написана на MODx, с другой стороны другая часть написана на LiveStreet, а с третьей стороны это такие костыли, что в пору в Ненормальное программирование писать. Оказалось, что Хабр готовился к такому повороту событий и сделал возможность писать сразу в несколько блогов, за что ему отдельный респект! :-)

Ну а теперь собственно к основному вопросу: В свое время я написал и запустил купонный сервис, само собой написанный на MODx Revolution (само собой, потому что я ярый любитель этого движка и что бы ни писал, всегда пишу именно на этом фреймворке).
Так вот, проект рос, развивался, много функционала было написано (благо MODx позволяет решить любую задачу), да вот только замыслилось мне на сайте еще и социалку-блог а-ля Хабрахабр запустить, да чтобы все наши пользователи там были, да чтобы отзывы по акциям туда же попадали, да чтобы отзывы были и в акциях, и в социалке, и чтобы и там и там их можно было комментировать и читать их в отдельной ветке все до кучи, и еще много-много чего… И когда я думал, сколько же мне понадобится времени, чтобы напрограммировать это все самому, я делался очень грусным...

Но вспомнил я про LiveStreet, о котором слышал давно-давно, и то, что он позиционируется как легкий и быстрый клон Хабра. И вот решил я отдельно социалку поднять на LS и увязать его с моим основным сайтом на MODx. LiveStreet установил и запустил за пару часов (это мое первое знакомство с этим движком).

Забегая немного вперед, даю совет: если решите повторить такое же, то когда разворачивать LS буде, таблицам дайте уникальный префикс, отталкиваясь от префикса таблиц MODx. К примеру, если у вас для MODx префикс modx_, то для LS дайте что-то типа modx_ls_, чтобы потом можно было дописать свой модуль под MODx и создать для него схему с учетом префикса, чтобы можно было без костылей работать с таблицами LS. Кстати, для этого вам может быть полезен вот этот топик.

Далее отредактировал шаблон регистрации пользователей, запретив в нем прямую регистрацию на сайте, указав пользователям, что регистрироваться надо на основном сайте, а не здесь. Для понимания обозначим, что MODx — это будет основной сайт pro-cent.ru, а LS — это forum.pro-cent.ruВ общем далее на MODx в таблицу modx_users добавляем ключик на табличку ls_users, чтобы потом средствами MODx легко можно было обратиться к пользователю LS через запись о пользователе MODx.

Честно сказать, я пока еще не супер знаю LiveStreet, и пока еще всерьез не рассматривал вариант единой таблицы пользователей сразу и для MODx и для LS, но в принципе у меня настроен вторичный ключ на таблицу с блокировкой при удалении, что обеспечивает целостность данных на уровне базы данных, и в целом проблем даже при отдельных таблицах пользователей не возникает.

В общем далее надо просто прописать свое API для взаимодействия MODx с LS. Кто-то возможно напишет его через require 'LS/public_html/index.php', у меня все через POST посредством CURL с передачей нужных параметров и ключем для защиты запросов, чтобы какой-нибудь робот не наплодил вам чего-нибудь :-)

Я не буду сейчас в даваться в подробности, как там все сделано, так как топик написан больше не как конкретный мануал, а так, для общего развития, но если кому-то идея понравится и кто-нибудь захочет провернуть и у себя такое, велкам, вопросы в студию, отвечу.

P.S. Забыл сказать, что на MODx еще и активность из социалки выводится. Если зайдете на главный сайт, увидите ее в правой колонке.

Автор: Fi1osof

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js