вторник, 3 марта 2009 г.

Cross app link

To create cross app link in symfony you can use plugins:
Добавить видео
omCrossAppUrlPlugin (for 1.2), pmCrossAppUrlPlugin (for 1.0), sfLinkCrossAppPlugin (for 1.1)

or just use this function:
function cross_app_link_to($app, $route, $args=null)
{
$host = sfContext::getInstance()->getRequest()->getHost() ;
$env = sfConfig::get('sf_environment');
$appRoutingFile = SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'routing.yml' ;
$route = substr($route, 1, strlen($route)) ;
if (file_exists($appRoutingFile)){
$yml = sfYaml::load($appRoutingFile) ;
$routeUrl = $yml[$route]['url'] ;
if ($args){
foreach ($args as $k => $v){
$routeUrl = str_replace(':'.$k, $v, $routeUrl) ;
}
}
if (strrpos($routeUrl, '*') == strlen($routeUrl)-1){
$routeUrl = substr($routeUrl, 0, strlen($routeUrl)-2) ;
}
}
if ($env == 'dev'){
$path = 'http://' . $host . '/' . $app . '_dev.php' . $routeUrl ;
}
else {
$path = 'http://' . $host . $routeUrl ;
}
return $path ;
}

put this code to the lib/helper/crossAppLinkHelper.php

Комментариев нет:

Отправить комментарий