题
我试图找到一种方法来整合自己的网站,使用的Symfony我计费系统编码, WHMCS
我想的第一件事就是创建一个新的symfony模块调用WHMCS和模块中,我用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
是参数的阵列,以发送
此外可以发送跨域AJAX请求(如果您使用jQuery你只需设置$.ajax
选项dataType
到jsonp
),并且将只加载动作的内容部分(不包括样式表和Javascript角)