1C-BitrixからMODx Revolutionへの情報ブロックのインポート

3日目に、彼らはタスクを設定しました-BitrixからMODxに移行するスクリプトを作成します。 このタスクは、特にBitrixを実際に使用したことがないので、面白そうに見えました。







システム自体については何も書くことができません。なぜなら、管理パネルにも行かなかったからです。データベースでしか機能しませんでした。 ちなみに、これらはMODxの68に対して322テーブルです。





もちろん、すべてを完全に転送するという話はありませんでした。タスクは、特定の情報ブロック(記事とニュース)の内容を、著者といくつかのプロパティ(写真、公開日)とともにインポートすることでした。

そしてもちろん、すべてのURLを検索エンジンで適切にインデックス付けしてください。



熱意があれば、このスクリプトはJoomlaやDrupalなどの他のCMSで動作するように仕上げることができると思います。



トピックの最後にダウンロード用のアーカイブがありますが、今のところは、スクリプトの仕組みについて少し説明します。



3ファイル:





構成



作業に必要なすべてのデータが配列に追加されます。

'table_prefix' => 'bitrix_' ,'blocks' => array( 'articles' => array( 'id' => 3 ,'cat_tpl' => 3 ,'tpl' => 3 ,'uri_override' => 1 ,'preview_picture' => 'preview_picture' ,'detail_picture' => 'detail_picture' )
      
      





ブロック配列には、特定の情報ブロックのインポート設定が含まれています。



設定は、Bitrixテーブルのプレフィックスも示します。 MODxテーブルと同じデータベースにあると思います。



利用可能な方法



ここで、proccess.phpファイルを調べる必要があります。



MODx自体が接続されており、インポートクラスとインポートに必要なメソッドが呼び出されます。





一般に、ほとんどすべてのメソッドはimportBlockで動作するように記述されています。

起動すると、セクションプロパティが取得され、そのサブカテゴリが作成され、リソースがそれらにインポートされ、画像がTVボックスに保存されます。



ウリページ



最も重要なことは、もちろん次のプラグインを使用する場合、すべてのuriが機能することです。

 <?php if ($modx->event->name == 'OnPageNotFound') { $uri = parse_url(substr($_SERVER['REQUEST_URI'],1)); $query = explode('&', $uri['query']); $num1 = count($query); $query = array_unique($query); $num2 = count($query); if ($num1 != $num2) { $modx->sendRedirect($modx->getOption('site_url').$uri['path'].'?'.implode('&', $query)); } else if ($res = $modx->getObject('modResource', array('uri' => $uri['path'].'?'.$query[0]))) { $modx->sendForward($res->get('id')); } }
      
      





Bitrixでは(常に、または私の場合のみわからない)アドレスはnews / detail.php?News = 6868であるため、Webサーバーにサイトのルートにあるindex.phpに送信するように強制する必要もあります。 つまり、そのようなフレンドリーなURLが出てくるようです。



プラグインは、ページネーションをgetPageで動作させます。 つまり、news / detail.php?News = 6868&page = 5-正しく動作します。



おわりに



私はスクリプトを可能な限り多目的に使用しようとしましたが、主な作業を犠牲にすることはしませんでした。 いずれにせよ、BitrixからMODxに移行したい人は、今から何かを始めることができます。



5000個のリソースをインポートし、TVパラメーターを介して相互にリンクするには、通常の家庭用コンピューターで約4〜5分かかります。 リンクは私の特定のタスクです。他の誰かが役に立つかどうかはわかりません。





このスクリプトを追加、変更、および開発しません。別のサイトをBitrixからRevoに転送するように求められた場合のみです。 一般に、私はそれをそのまま返します。



最後に、簡単に:

  1. MODx Revoをインストールします。
  2. インポート用のコンテナを作成し、写真にテレビを割り当てます。
  3. Bitrixデータベースのダンプを埋めます。
  4. アーカイブダウンロードして 、サイトのルートに解凍します。
  5. config.inc.phpを設定し、情報ブロックのテーブルプレフィックスと設定を指定します。
  6. コンソールからprocess.phpの情報ブロックのインポートを開始します-任意の起動の可能性があります。
  7. 何かが間違っている場合-コードを掘り下げて自分で編集してください。




「世界最高のCMS」をテーマに定期的なホリバーを展開しないでください。



PS ウェブマスターエージェンシーのメンバーが注文、支払い、共有を許可されました



UPD。 役に立たないので、投稿やカルマで短所を得るのは良くありません。 誰かが退会する場合-あなたに合わないものは何ですか?



All Articles