質問

私は、私の課金システムとのSymfonyを使用してコード化された、私のウェブサイトを統合する方法を見つけようとしている WHMCS

私が試した最初のものは、WHMCSと呼ばれる新しいsymfonyのモジュールを作成していたし、そのモジュールでは、私がページを盗んするためのob_start / require_onceを/ ob_get_contentsを使用していたが、それは空白のページが生じまま、ログやどこかで何らかのエラーなし他に。これはとにかくナビゲーション悪夢になる予定だったので、私はそのアイデアをあきらめます。

私の二アイデアは WHMCSフックシステムでの利点を活用することでした。これまでのところ、それは一つのことを除いて働きました。私は自分の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");ような何かをする方法を見つける必要があります。

それはおそらく愚かなものだが、私は、ウィキ、フォーラムを通して行くと、私のsymfonyブックと私はちょうど私が使用する必要があるコードを見つけることができませんしてきます。

役に立ちましたか?

解決

あなたのアクションメソッドでは、使用します:

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

これは$outputに指定されたモジュールとアクションの出力をレンダリングします。 http://www.symfony-project.org/api/1_2/sfController見ます#method_getpresentationfor詳細はこちら

他のヒント

カール

使用してみてください
$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を送信するためにパラメータの配列である

さらに、あなたは(あなたがjQueryのを使用している場合、あなただけの$.ajaxdataTypeオプションjsonpを設定)、クロスドメインAJAXリクエストを送信することができ、それは、アクションのコンテンツのみ一部をロードします(スタイルシートとJavaScriptのは含まれません)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top