2012-04-12 2 views
0

응용 프로그램 또는 레거시 구현의 복잡성으로 인해 CMS 위에 구축하기에 적합하지 않은 많은 PHP 응용 프로그램 (PHP 제외)이 있습니다. 응용 프로그램에 CMS 기능을 추가하는 좋은 방법은 무엇입니까? 과거에는 Dreamweaver 또는 CushyCMS와 같은 HTML 도구를 통해 유지 관리되는 페이지에 포함 된 서버 쪽에서 HTML 조각을 사용했습니다. 따라서 관리자가 관리 할 수있는 몇 가지 컨텐츠 영역을 가질 수 있습니다. 그러나 제한된 기능이므로 CushyCMS (독립형 DW)에 만족하지 않습니다. 나는 서버의 페이지에 직접 포함 된 내용을 유지하기 위해 유사하게 Wordpress를 사용하고 있다고 생각 해왔다. 하지만 실제 질문은 ... :)CMS를 PHP 응용 프로그램에 통합

Wordpress 또는 이와 유사한 CMS와 전체 사이트를 구축하지 않고 CMS 기능을 얻는 좋은 방법은 무엇입니까?

답변

1

CMS가 복잡 해지는 이유가 있습니다. 간단한 문서 관리를 파일 또는 sqlite에 저장하는 것으로 시작하면 여러 사용자가 필요합니다. 그런 다음 트리와 같은 메뉴, 권한 시스템, 기사 잠금 또는 버전 관리 .. 그럼 당신은 더 나은 성능과 확장 성을 원하므로 실제 DB로 마이그레이션하십시오. 그런 다음 위젯이나 테이블 같은 동적 데이터를 원합니다. 그런 다음 모듈러 구조. 상점 모듈, 뉴스 레터 등. 그래서 당신 만이 그것을 어떻게 작동 하는지를 알 수있는 복잡한 엔진으로 힘을 얻습니다.

장기간에 유지 관리가 가능한 CMS를 원할 경우 Wordpress와 같이 내부에 추악한 경우에도 기존의 오픈 소스 솔루션을 사용하십시오. 서로 통합해야 할 수도 있습니다. 양측에 API가 필요한 곳입니다.

+0

CMS 위에 기존 소프트웨어를 전환하는 것이 항상 옵션이 아니며 나 자신의 CMS를 만드는 것을 좋아하지 않으므로이 문제에 대한 다른 옵션에 대해 생각하고 있습니다. – tomtom

0

글쎄, 할 수있는 일은 CMS의 경로를 처리하고 그 결과를 기본 응용 프로그램에 위임하는 CMS 확장을 만드는 것입니다.

예를 들면, drupal 7에서 생각해 볼 수 있습니다.이 CMS에서는 모듈에 대한 데이터와 모듈의 코드에 대한 두 개의 파일이 들어있는 폴더로 모듈을 만들 수 있습니다.

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 < - 당신이 응용 프로그램 드루팔을 "통합"수도 기본 코드와 모듈의 코드

<?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는이 점을 가지고, 그것은 드루팔 (6, 7, 8)와 줌라에 바인딩이 작동하는 프레임 워크입니다 바랍니다.

관련 문제