WHMCS ile symfony web sitesi nasıl entegre

2 Cevap php

Benim faturalandırma sistemi ile Symfony kullanarak kodlanmış web siteme, WHMCS entegre etmenin bir yolunu bulmaya çalışıyorum.

Denedim ilk şey whmcs adında yeni symfony modül oluşturma ve bu modülde, ben sayfa Getirme için / Require_once / ob_get_contents ob_start kullanıyordum ama günlüklerinde herhangi bir hata olmadan veya başka bir yerde, boş bir sayfa elde tuttu. Bu zaten bir navigasyon kabus olacaktı beri, ben bu fikri üzerine vazgeçti.

Benim ikinci bir fikir WHMCS hooks system yararlanmak oldu. Şimdiye kadar, bir şey hariç çalıştı. Benim layout.php dosyayı aramak için nasıl hiçbir fikrim yok. İşte benim geçerli kod:

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");

Benim buradaki konu başlığı yükü yapar iken, meta, hayır css, javascript, orada olmasıdır. Bu ayarlar benim view.yml dosya ve partials kaydedilir bu dosyayı yüklemeyin.

I echo get_layout("layout"); veya echo get_methodaction("whmcs", "index"); gibi bir şey yapmak için bir yol bulmak gerekiyor

Muhtemelen aptalca bir şey ama ben wiki, forum ve benim symfony kitap aracılığıyla devam ettik ve ben sadece kullanmanız gereken kod bulamıyorum.

2 Cevap

Lütfen eylem yöntemi kullanın:

$output = $this->getController()->getPresentationFor("module", "action");

Bu $output içine belirtilen modül ve eylem çıkışını sağlayacak; http://www.symfony-project.org/api/1_2/sfController#method_getpresentationfor ayrıntılar için bkz

Curl kullanmayı deneyin

$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;

Yukarıdaki kod url bir kıvrılma istek gönderir $url

$query_string Eğer gerekirse sayfasına göndermek için gidiyoruz veri

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

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

where $postfields is an array of the parameters to send Additionally you can send a cross domain ajax request (if you're using jQuery you just set the $.ajax option dataType to jsonp) and that would load only the content part of the action (stylesheets and javascripts are not included)