2011-01-28 2 views
0

Я не могу заставить ZendX_JQuery работать. Вспомогательный путь просто не загружается, и поэтому плагин не регистрируется. Я пробовал все, добавили его в загрузочном файле, добавляется в конфигурации и т.д. Bootstrap:Не удается зарегистрировать плагин JQuery в Zend_Framework

protected function _initJqueryLoad() 
    { 

     $view = new Zend_View(); 
$view->addHelperPath('ZendX/JQuery/View/Helper', 'ZendX_JQuery_View_Helper'); 
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); 
$viewRenderer->setView($view); 
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); 
//return $view; 
    } 

My Config:

phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

phpSettings.date.timezone = "GMT+2" 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
autoloaderNamespaces[] = "JP_" 
autoloaderNamespaces[] = "ZendX_" 


resources.view.helperPath.JP_View_Helper = "JP/View/Helper" 
resources.view.helperPath.ZendX_JQuery_View_Helper = "ZendX/JQuery/View/Helper" 
autoloaderNamespaces[] = "Sozfo_" 


resources.session.save_path = APPLICATION_PATH "/data/sessions" 
resources.session.gc_maxlifetime = 18000 
resources.session.remember_me_seconds = 18000 

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules = "" 

Сообщение об ошибке:

Message: Plugin by name 'JQuery' was not found in the registry; used paths: JP_View_Helper_: JP/View/Helper/ JP_Controller_Helper_: JP/Controller/Helper/ Sozfo_View_Helper_: Sozfo/View/Helper/ : C:\Zend\Apache2\htdocs\LTSSP\application/helpers/ Zend_View_Helper_: Zend/View/Helper/ 
Stack trace: 

#0 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\View\Abstract.php(1174): Zend_Loader_PluginLoader->load('JQuery') 
#1 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\View\Abstract.php(610): Zend_View_Abstract->_getPlugin('helper', 'jQuery') 
#2 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\View\Abstract.php(336): Zend_View_Abstract->getHelper('jQuery') 
#3 C:\Zend\Apache2\htdocs\LTSSP\application\layouts\baklans.phtml(23): Zend_View_Abstract->__call('jQuery', Array) 
#4 C:\Zend\Apache2\htdocs\LTSSP\application\layouts\baklans.phtml(23): Zend_View->jQuery() 
#5 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\View.php(108): include('C:\Zend\Apache2...') 
#6 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\View\Abstract.php(880): Zend_View->_run('C:\Zend\Apache2...') 
#7 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\Layout.php(796): Zend_View_Abstract->render('baklans.phtml') 
#8 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\Layout\Controller\Plugin\Layout.php(143): Zend_Layout->render() 
#9 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\Controller\Plugin\Broker.php(331): Zend_Layout_Controller_Plugin_Layout->postDispatch(Object(Zend_Controller_Request_Http)) 
#10 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\Controller\Front.php(965): Zend_Controller_Plugin_Broker->postDispatch(Object(Zend_Controller_Request_Http)) 
#11 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch() 
#12 C:\Zend\Apache2\htdocs\LTSSP\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() 
#13 C:\Zend\Apache2\htdocs\LTSSP\public\index.php(51): Zend_Application->run() 

ответ

0

Что решил это для меня, чтобы поставить вспомогательный путь в "" вместо '';

protected function _initJqueryLoad() 
{ 

    $view = new Zend_View(); 

    $view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper"); 
    $view->jQuery()->addStylesheet('/js/jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css') 
    ->setLocalPath('/js/jquery/jquery.php') 
    ->setUiLocalPath('/js/jquery-ui-1.7.3.custom.min.js'); 
    $view->jQuery()->enable(); 
ZendX_JQuery::enableView($view); 
return $view; 
} 

Отчасти из-за сбоя. Должен опубликовать это как ошибку.

+0

В предыдущем коде вы создали новый 'ViewRenderer', с другим экземпляром' View'. Это не имеет ничего общего с двойными или одинарными кавычками. – takeshin

+0

Да, это правда, но даже без другого ViewRenderer это не сработало. –

0

Предполагая, что ваш ZendX в библиотеке forlder, я думаю, вы могли бы зарегистрировать помощник JQuery в следующем виде в вашем Bootstrap.php:

protected function _initJsqueryLoad() { 
    $this->bootstrap('view'); 
    $view = $this->getResource('view'); 
    $view->addHelperPath(APPLICATION_PATH . '/../library/ZendX/JQuery/View/Helper',  'ZendX_JQuery_View_Helper'); 
} 

Тогда в вашей конфигурации не потребуется. Надеюсь, это сработает для вас.

+0

Не работает. В сообщении об ошибке ничего не изменилось. –

+0

@Janis Peisenieks. Вы пробовали без всякой информации о ZendX, JQuery в вашем приложении application.ini. – Marcin

+0

Yup, Но я только что нашел ответ. Добавлено сейчас. –

1

используемые пути: JP_View_Helper_: JP/View/Helper/JP_Controller_Helper_: JP/Controller/Helper/Sozfo_View_Helper_: Sozfo/View/Helper /: C: \ Zend \ Apache2 \ HTDOCS \ LTSSP \ Application/хелперы/Zend_View_Helper_ : Zend/View/Helper/

Основываясь на этом, вы можете видеть, что каталог ZendX не проверяется.

  1. Зарегистрируйте путь с помощью брокера помощников
  2. Добавьте путь к автозагрузчик (например, скопировать файлы из архива рамки исходного Zend или добавить путь к ZendX к include_path)

В application.ini:

resources.view.helperPath.ZendX_JQuery_View_Helper = "ZendX/JQuery/View/Helper" 

В index.php:

set_include_path(implode(PATH_SEPARATOR, array(
    '/home/user/www/library/ZendFramework/1.11.2/library', // Zend dir is here 
    '/home/user/www/library/ZendFramework/1.11.2/extras/library', // ZendX dir is here 
    '/home/user/www/library/misc', 
    get_include_path(), 
))); 

Ввиду:

$this->jQuery()->enable(); 
Смежные вопросы