Frage

Ich versuche einen Weg zu finden, zu integrieren my website, codiert mit Symfony mit meinem billing-system, WHMCS.

Das erste, was ich ausprobiert habe, war das erstellen einer neuen symfony-Modul namens whmcs und in das Modul, ich war mit ob_start/require_once/ob_get_contents zum abrufen der Seite, aber es hielt was eine leere Seite, ohne Fehlermeldung in den logs oder sonst irgendwo.Da dies eine navigation Alptraum jedenfalls gab ich auf diese Idee.

Meine zweite Idee war, um die Vorteile der WHMCS-Haken-system.So weit, es hat geklappt bis auf eine Sache.Ich habe keine Ahnung, wie meine layout.php Datei.Hier ist meine aktuellen code:

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

Mein Problem hier ist, dass, während der header nicht laden, es gibt keine meta -, kein css, kein javascript.Diese Einstellungen werden gespeichert, aus meiner Sicht.yml-Datei und partials nicht, laden Sie die Datei.

Ich muss einen Weg finden, etwas zu tun wie echo get_layout("layout"); oder echo get_methodaction("whmcs", "index");

Es ist wahrscheinlich etwas dummes, aber ich habe gehen durch wikis, Foren und meine symfony-Buch und ich finde nicht den code, den ich verwenden müssen.

War es hilfreich?

Lösung

In Ihrer Aktionsmethode, Verwendung:

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

Das wird die Ausgabe des angegebenen Moduls und Aktion in $output machen; finden Sie unter http://www.symfony-project.org/api/1_2/sfController #method_getpresentationfor Details

Andere Tipps

Versuchen Sie, sich zu kräuseln nutzen

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

Der obige code sendet eine curl-Anforderung an die url $url

$query_string die Daten, die Sie gehen, um die post, um die Seite wenn benötigt

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

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

wo $postfields ist ein array der Parameter zu senden Darüber hinaus können Sie senden eine cross-domain-ajax-Anfrage (wenn Sie jQuery man muss nur die $.ajax option dataType zu jsonp) und das laden würde nur der inhaltliche Teil der Aktion (stylesheets und javascripts sind nicht im Lieferumfang enthalten)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top