Mais je suggère la création d'une nouvelle action en assistant, qui est essentiellement une copie de helper de vue, mais vous pouvez le modifier pour l'adapter à vos besoins:
/**
* Generate URL of the current domain
*
*/classMy_Controller_Action_Helper_BaseUrlextendsZend_Controller_Action_Helper_Abstract{publicfunction direct($file =null, $full =true){return $this->baseUrl($file, $full);}/**
* BaseUrl
*
* @var string
*/protected $_baseUrl;/**
* Returns site's base url, or file with base url prepended
*
* $file is appended to the base url for simplicity
*
* @param string|null $file
* @return string
*/publicfunction baseUrl($file =null){//Get baseUrl
$baseUrl = $this->getBaseUrl();//Remove trailing slashesif(null!== $file){
$file ='/'. ltrim($file,'/\\');}return $baseUrl . $file;}/**
* Set BaseUrl
*
* @param string $base
* @return My_Controller_Action_Helper_BaseUrl
*/publicfunction setBaseUrl($base){
$this->_baseUrl = rtrim($base,'/\\');return $this;}/**
* Get BaseUrl
* @return string
*/publicfunction getBaseUrl(){if($this->_baseUrl ===null){/** @see Zend_Controller_Front */
require_once 'Zend/Controller/Front.php';
$baseUrl =Zend_Controller_Front::getInstance()->getBaseUrl();//Remove scriptname, eg. index.php from baseUrl
$baseUrl = $this->_removeScriptName($baseUrl);
$this->setBaseUrl($baseUrl);}return $this->_baseUrl;}/**
* Remove Script filename from baseurl
*
* @param string $url
* @return string
*/protectedfunction _removeScriptName($url){if(!isset($_SERVER['SCRIPT_NAME'])){//We can't do much now can we? (Well, we could parse out by ".")return $url;}if(($pos = strripos($url, basename($_SERVER['SCRIPT_NAME'])))!==false){
$url = substr($url,0, $pos);}return $url;}}
Il y a une chance que le point de vue ne sera pas initialisé encore, mais à partir d'un ActionHelper qui ne devrait pas être un problème. Vous pouvez également obtenir l'URL utilisée par le BaseUrl helper de vue avec:
Je ne suis pas en mesure de vérifier, mais je crois qu'une aide d'Action vont avoir accès au contrôleur via $this->getActionController() qui a un public $view donc:
$this->view->baseUrl()
devrait fonctionner.Mais je suggère la création d'une nouvelle action en assistant, qui est essentiellement une copie de helper de vue, mais vous pouvez le modifier pour l'adapter à vos besoins:
OriginalL'auteur takeshin
Vous pouvez obtenir une poignée à la vue de n'importe où dans votre application avec:
Il y a une chance que le point de vue ne sera pas initialisé encore, mais à partir d'un ActionHelper qui ne devrait pas être un problème. Vous pouvez également obtenir l'URL utilisée par le BaseUrl helper de vue avec:
OriginalL'auteur smack0007
Je ne suis pas en mesure de vérifier, mais je crois qu'une aide d'Action vont avoir accès au contrôleur via
$this->getActionController()
qui a unpublic $view
donc:OriginalL'auteur gnarf