MODx Revolution + LiveStreetをバンドル

トピックを書くとき、どこでそれを書くのだろうかと考えました。 一方で、サイトの一部はMODxで記述され、他方では、LiveStreetで記述されます。そして、第三に、異常なプログラミングを記述する時が来たので、松葉杖です。 Habrはこのようなイベントの準備を進めており、いくつかのブログに一度に書くことができるようになったことがわかりました。 :-)



さて、主な質問です:かつて、MODx Revolution自体に書かれたクーポンサービスを書いて立ち上げました(私はこのエンジンの熱心な愛好家であり、私が書くものに関係なく、私は常にこのフレームワークに書いています)。

そのため、プロジェクトは成長、開発され、多くの機能が記述されました(MODxの利点により問題を解決できます)が、サイト上でHabrahabrのようなソーシャルブログを立ち上げ、すべてのユーザーがそこにいるようにしたかったので、共有では、彼らもそこに着いたので、レビューは共有とソーシャルネットワークにあり、そこにコメントして、別のブランチで読んで、ヒープにすべて、そしてはるかに...自分ですべてプログラムするのにどれくらい時間がかかりますか、とても悲しくなりました m ...



しかし、私はずっと前に聞いたLiveStreetと、それがHabrの簡単で高速なクローンとして位置付けられているという事実を思い出しました。 そのため、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手段に簡単にアクセスできるようにします。 MODxユーザーレコードを介したLSユーザーへ。



正直なところ、私はまだSuperStreet superを知らず、MODxおよびLSの単一ユーザーテーブルのオプションをすぐに真剣に検討していませんが、原則として、削除ロックでテーブルに設定されたセカンダリキーを持っています。データベース、および一般に個々のユーザーテーブルでも問題はありません。



一般的に、MODxとLSの相互作用のためにAPIを登録するだけです。 誰かが「LS / public_html / index.php」を必要とすることでそれを書くかもしれません、私は必要なパラメータとリクエストを保護するためのキーの転送でCURLを介してPOSTを通してすべてを持っているので、いくつかのロボットはあなたに何かを与えません:-)



トピックは特定のマニュアルとして書かれていないため、ここでは詳細を説明しませんが、一般的な開発用ですが、誰かがアイデアを気に入って、誰かがそれを好転させたい場合は、 、スタジオへの質問、私は答えます。



PS MODxでは、ソーシャルネットワークのアクティビティも表示されることを忘れていました。 メインサイトにアクセスすると、右側の列に表示されます。



PPSここで、技術的側面をさらに詳細に説明する必要があるという苦情がありました。 いいね メインサイトLSとのやり取りに使用した一般的なAPIスキームについて説明します。



LSはかなりオリジナルのエンジンであり、キャッシュの基礎としてnoSQLを非常に積極的に使用しているため、ソーシャルデータベースを直接操作することはお勧めしませんが、そのアクションを介して作業することはお勧めしません(ここではLiveStreetマスタークラスを記述しませんあなた自身をマスターする必要があります)。



他のすべての空白として、トピックを作成し、メインサイトからのリクエストを使用してコメントする手順を説明します。

最初に、LSでアクションを追加し、それを通してリクエストを呼び出します。 これを行うには、独自の設定モジュール、たとえばconfig / modules / modx(すべてのリクエストで後で必要になります)を作成し、その中にconfig.route.phpファイルを作成します。 エンジンのURLを登録するために必要になります。

$config['page']['modxtopic'] = 'ActionModxTopic';

$config['page']['modxblog'] = 'ActionModxBlog';

return $config;








エンジンは、URLから実行するアクションを決定するためにこの設定が必要になります。 この場合、 URL / modxtopic/ modxblogがあります。 これらのURLにアクセスすると、クラス/classes/actions/ActionModxTopic.class.phpおよび/classes/actions/ActionModxBlog.class.phpのアクションがそれぞれ呼び出されます。

もちろん、画像と肖像に必要なクラスを作成する必要があります。さらに、原則/テンプレートフォルダー(通常は/テンプレート/スキン/サイトのスキン)/アクション/アクション(この場合、ActionModxTopicまたはActionModxBlogによるテンプレートファイルも作成する必要があります)/index.tplまたはaction.tpl

一般に、3行で説明することはできないため、実際にはこのすべてを勉強する必要があります。



LS自体はそのようなアクションのAPIを提供しないため、LSの基本クラスをオーバーロードするようにこれらのクラスを自分で考えました。また、基本的な機能はユーザーが許可され、外部からユーザーをオーバーロードできないように設計されているためです 同時に、多くの余分なコードを記述したり、キャッシュシステムなどを理解したりする必要はありません。

通常、トピックを追加します。 トピックの操作は/classes/actions/ActionTopic.class.phpを介して行われ、/ classes / actions / ActionBlog.class.phpを介してコメントを付けますたとえば、BlogクラスのSubmitComment()はコメントを保存します。



残念ながら、ここではハイフンでゴミが発生しているので、通常はクラスの200行のコードを挿入できません。すべてのコードが書き留められているので、自分で理解する必要があります。 ここに投稿されたクラスコードを含む実際のファイル。 余分なものがあるかもしれませんが、一般的には理解することが可能です。 コメントがあります。



実際、一般的に言えば、すべてが完了しています。



All Articles