2012-04-12 10 views
0

Ich habe viele PHP-Anwendungen (und andere als PHP zu), die nicht sehr geeignet sind, auf CMS aufgrund der Komplexität der Anwendung oder Legacy-Implementierung zu bauen. Was wäre ein guter Weg, CMS-Funktionalität in die Anwendung zu bekommen? In der Vergangenheit habe ich HTML-Snippets auf Serverseite verwendet, die zu den Seiten gehören. Snippets werden über HTML-Tools wie Dreamweaver oder CushyCMS gepflegt. Das erlaubt mir einige Inhaltsbereiche, die der Administrator verwalten kann. Allerdings bin ich nicht sehr zufrieden mit CushyCMS (noch Standalone DW), da es begrenzt ist. Ich habe überlegt, Wordpress von ähnlichem zu verwenden, nur um Inhalt zu erhalten, der direkt zu den Seiten auf dem Server gehört. Aber die eigentliche Frage ist ... :)Integrieren von CMS zu PHP-Anwendung

Was wäre der gute Weg, CMS-Funktionalität zu bekommen, ohne ganze Seite mit CMS wie Wordpress oder ähnlichem zu bauen.

Antwort

1

Es gibt einen Grund, warum CMS komplex wird - Sie beginnen damit, einfache Artikelverwaltung hinzuzufügen, die in einer Datei oder sqlite gespeichert wird. Dann brauchen Sie mehrere Benutzer .. dann ein baumähnliches Menü, ein Berechtigungssystem, ein article locking oder version control .. dann wollen Sie eine bessere Leistung und Skalierbarkeit, also migrieren Sie auf echte DB .. Dann möchten Sie dynamische Daten wie Widgets oder Tabellen. Dann modulare Struktur. Ein Shop-Modul, Newsletter, etc. Und so enden Sie mit einer komplexen Engine, die nur Sie wissen, wie es funktioniert.

Wenn Sie also langfristig ein wartungsfreundliches CMS benötigen, sollten Sie vorhandene Opensource-Lösungen verwenden, auch wenn sie im Inneren wie Wordpress hässlich sind. Sie müssen möglicherweise eine in eine andere integrieren, wo Sie API auf beiden Seiten benötigen.

+0

Das Umschalten von vorhandener Software auf CMS ist nicht immer möglich, und ich mag es nicht, eigene CMS zu erstellen, also denke ich nur über verschiedene Optionen für dieses Problem nach. – tomtom

0

Nun, etwas, was Sie tun könnten, ist eine CMS-Erweiterung zu erstellen, die eine Route im CMS behandelt und dann das Ergebnis an die zugrunde liegende Anwendung delegiert.

Um Ihnen ein Beispiel zu geben, lassen Sie uns in Drupal 7 nachdenken. In diesem CMS können Sie ein Modul mit einem Ordner erstellen, der zwei Dateien enthält: eine für Daten über Ihr Modul und eine für den Modulcode.

my_module/my_module.info < -Modul Daten

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

my_module/my_module.module < - Moduls Code

<?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; 
    } 
} 
?> 

Mit diesem grundlegenden Code, den Sie "integrieren" Ihre Anwendungen können Drupal Alles, was Sie tun müssen, ist, es als Drupal-Modul zu installieren und dann auf htt: // your-cool-site/App zu gehen, um Ihre Anwendung auszuführen.

Weitere Informationen zum Erstellen von Drupal-Modulen here.

Ich hoffe, es hilft :)

Here ist ein Framework, das mit diesem Sinne funktioniert, ist es Bindungen zu Drupal (6, 7 und 8) und joomla.