2012-04-12 16 views
0

私は、アプリケーションや従来の実装の複雑さのために、CMSの上に構築するのにはあまり適していない多くのPHPアプリケーション(PHP以外も)を持っています。アプリケーションにCMS機能を追加するにはどうすればよいでしょうか?過去に私は、サーバー側でHTMLスニペットを使用していました。スニペットは、DreamweaverやCushyCMSのようなHTMLツールを介して管理されています。これにより管理者が維持できるいくつかのコンテンツ領域を持つことができます。しかし、私はそれが限られた能力を持っているので、CushyCMS(スタンドアロンDW)にはあまり満足していません。私は、Wordpressを使って、サーバー上のページに直接含まれているコンテンツを維持することを考えています。しかし、実際の質問は... :)CMSとPHPアプリケーションの統合

WordpressなどのCMSのようなサイト全体を構築することなくCMSの機能を利用するには、どのような方法が良いでしょうか。

答えて

1

CMSが複雑になる理由は、簡単な記事管理をファイルまたはsqliteに追加することから始まります。次に、いくつかのユーザーが必要です。次にツリー形式のメニュー、権限システム、記事のロックやバージョン管理..あなたはより良いパフォーマンスとスケーラビリティを望んでいるので、実際のDBに移行します。そしてウィジェットやテーブルのような動的なデータが必要です。モジュール構造。店のモジュール、ニュースレターなど。それで、あなたはそれがどのように動作するかを知っている複雑なエンジンでエンジョイします。

長期的にメンテナンス可能なCMSが必要な場合は、Wordpressのように内部に醜い場合でも、既存のオープンソースソリューションを使用してください。 1つを別のものに統合する必要があるかもしれません。両者にはAPIが必要です。

+0

CMSの上にある既存のソフトウェアを切り替えることは常にオプションではなく、自分のCMSを作成するのが嫌いです。この問題のさまざまなオプションについて考えています。 – tomtom

0

まあ、あなたができることは、CMS内のルートを処理し、その結果を基になるアプリケーションに委譲するCMS拡張を作成することです。

例を挙げると、drupal 7で考えることができます。このCMSでは、モジュールに関するデータとモジュールのコードの2つのファイルを含むフォルダを持つモジュールを作成できます。

my_module/my_module.info < -Moduleのデータ

name = My Module 
description = A description of what your module does. 
core = 7.x 

my_module/my_module.module < - あなたはあなたのアプリケーションのDrupalへの "統合" があり、この基本的なコードでモジュールのコード

<?php 
/** 
* Respond to a drupal's URL with a callback. 
*/ 
function my_module_menu() { 
    $menu = array(); 
    $menu["App"] = array(
     "page callback" => "my_module_run", 
     "access callback" => true, 
    ); 
    return $menu; 
} 

/* 
* Do the job 
*/ 
function my_module_run() { 
    ob_start(); 
    // Call your application by including it's index.php file or whatever 
    // operation needed..... 
    // Capture the result of the application. 
    $result = ob_get_clean(); 

    // If the request is ajax, echo the result. 
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) 
     && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
     echo $result; 
    } else { 
     //Otherwise, return it, so it is rendered as part of the 
     // CMS content. 
     return $result; 
    } 
} 
?> 

あなたがする必要があるのは、それをDrupalモジュールとしてインストールしてから、https:// your-cool-site/Appにアクセスしてアプリケーションを実行するだけです。

drupalモジュールオーサリングの詳細here

私はそれが役に立てば幸い:)

Hereを念頭に置いて、これを持つ作品のフレームワークである、それはdrupalのへのバインディング(6、7、8)とjoomlaのを持っています。

関連する問題