2010-02-26 6 views
0

Я пытаюсь найти способ интегрировать свой сайт, закодированный с помощью Symfony с моей биллинговой системой, WHMCS.Как интегрировать веб-сайт symfony с whmcs

Первое, что я попробовал - создать новый модуль symfony под названием whmcs и в этом модуле, я использовал ob_start/require_once/ob_get_contents, чтобы восстановить страницу, но она продолжала приводить к пустой странице без ошибок в журналах или где-нибудь еще. Так как это все равно было навигационным кошмаром, я отказался от этой идеи.

Моя вторая идея состояла в том, чтобы использовать WHMCS hooks system. Пока это работало, за исключением одного. Я не знаю, как вызвать файл layout.php. Вот мой текущий код:

function getSymfonyLayout() 
{ 
    require_once($_SERVER['DOCUMENT_ROOT'].'/../config/ProjectConfiguration.class.php'); 
    $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', true); 
    $context = sfContext::createInstance($configuration); 
    $context->getRequest()->setRelativeUrlRoot(''); 
    $context->getInstance()->getConfiguration()->loadHelpers('Partial'); 
    echo get_partial("global/header"); 
} 

add_hook("ClientAreaPage",1,"getSymfonyLayout"); 

Моя проблема в том, что, в то время как заголовок делает нагрузки, нет мета, ни CSS, не JavaScript. Эти настройки сохраняются в моем файле view.yml, а частичные файлы не загружают этот файл.

мне нужно найти способ, чтобы сделать что-то вроде echo get_layout("layout"); или echo get_methodaction("whmcs", "index");

Это, вероятно, что-то глупо, но я шел через вики, форумы и моей симфони книги, и я просто не могу найти код мне нужно использовать.

ответ

3

Попробуйте использовать локон

$url = 'your symfony url'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
$data = curl_exec($ch); 
echo $data; 

Код выше посылает локон запрос на URL $url

$query_string это данные, которые вы собираетесь размещать на странице, если это необходимо

$query_string = ""; 
foreach ($postfields AS $k => $v) 
    $query_string .= "$k=" . urlencode($v) . "&"; 

$query_string = trim($query_string, '&'); 

где $postfields - массив параметров для отправки Addit ionally вы можете отправить запрос AJAX междоменного (если вы используете JQuery вы просто установите $.ajax вариант dataType к jsonp) и что будет загружать только содержательную часть действия (таблицы стилей и JavaScripts не включены)

+0

Только что попробовал помогать :) –