Я хочу начать работу с jQuery в моем приложении Zend Framework, но не уверен, что это лучший способ начать работу. Я знаю, что я мог бы включить библиотеку jQuery так же, как и любую другую библиотеку javascript, но каковы преимущества использования ZendX_JQuery и каковы шаги, необходимые для ее использования в моем приложении Zend Framework 1.9?
Лучший способ начать использовать jQuery в приложении Zend Framework 1.9?
Ответ 1
Мне удалось запустить jQuery в моем проекте 1.9.4, выполнив следующие шаги:
Шаг 1: Скопируйте каталог ZendX в каталог библиотеки. ZendX можно найти в каталоге extras/library вашей загрузки Zend Framework.
Шаг 2: Загрузите jQuery и библиотеку пользовательского интерфейса jQuery из jqueryui.com. Я выбрал тему UI Lightness.
Шаг 3. Извлеките загрузку и переименуйте jquery-ui-1.7.2 в jquery и перейдите в каталог public/js.
Шаг 4. Добавьте эти строки в файл bootstrap:
protected function _initViewHelpers()
{
$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/js/jquery-1.3.2.min.js')
->setUiLocalPath('/js/jquery/js/jquery-ui-1.7.2.custom.min.js');
}
Шаг 5: Теперь добавьте помощник представления jQuery в ваш макет:
<head>
<?php echo $this->jQuery(); ?>
</head>
Шаг 6: Чтобы проверить, что у вас все работает, добавьте эту строку в один из сценариев просмотра:
Pick your Date: <?php echo $this->datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?>
Теперь, если вы откроете эту страницу в своем браузере, должно быть текстовое поле. Вы должны иметь возможность щелкнуть текстовое поле, которое автоматически отображает календарь, который был создан для темы UI Lightness.
Ответ 2
Один маленький полученный:
Вы должны добавить папку ZendX в каталог library - тот, у которого также есть каталог Zend.
[your/lib/path] | +-Zend | | | +-(the full thing) | +-ZendX | | | +-JQuery, Db, Console, ...
Если вы пропустите добавление ZendX в каталог библиотеки, вы получите много сообщений об ошибках, например:
Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'JQuery' was not found in the registry; used paths: ZendX_JQuery_View_Helper_: ZendX/JQuery/View/Helper/ Zend_View_Helper_: Zend/View/Helper/: .....
Еще одна маленькая gotcha:
В коде, представленном Эндрю выше, обратите внимание на важные слова, выделенные:
Now add the jQuery view helper to your layout file: <head> <? php echo $this->jQuery(); ?> </head> To test that you have everything working, add this line to one of your view scripts: <code> Pick your Date: <?php echo $this->datePicker("dp1", ..... </code>
В то время как $this->jQuery()
должен находиться в файле макет, чтобы все страницы получили jquery-функциональность, фактический код jQuery должен перейти в файл самого вида - application/views/scripts/yourcontroller/youraction.pthml
- он не работает в макете с помощью этого простого кода.
Ответ 3
Решение →
protected function _initView()
{
$view = new Zend_View();
$view->doctype('XHTML1_STRICT');
$view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
$view->headTitle()->setSeparator(' - ');
$view->headTitle('IMR - BI System');
$view->env = APPLICATION_ENV;
$view->baseUrl = Zend_Registry::get('config')->root_path;
$view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
$view->jQuery()->addStylesheet($view->baseUrl . '/js/jquery/css/south-street/jquery-ui-1.8.2.custom.css');
$view->jQuery()->setLocalPath($view->baseUrl . '/js/jquery/js/jquery-1.4.2.min.js');
$view->jQuery()->setUiLocalPath($view->baseUrl .'/js/jquery/js/jquery-ui-1.8.2.custom.min.js');
$view->jQuery()->enable();
$view->jQuery()->uiEnable();
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
$viewRenderer->setView($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
return $view;
}
Я просто переместил свой код с _initViewHelpers на _initView
и он работает для меня.
Ответ 4
Просто хотел добавить, что вам нужно (или, по крайней мере, мне пришлось) включить компоненты jquery и jquery в функции _initViewHelpers:
$view->jQuery()->enable() ->uiEnable();
Ответ 5
Как user117640 грустно,
Мне пришлось включить jQuery и пользовательский интерфейс, это можно сделать в:
bootstrap:
//it will enable for all views
$view->jQuery()->enable()->uiEnable();
controller:: someAction:
//JQ enabled for particular view)
$this->view->jQuery()->enable()->uiEnable();
просмотреть someAction.phtml:
//JQ enabled for particular view
<?php $this-jQuery()->enable()->uiEnable(); ?>
Ответ 6
включить это в файл начальной загрузки
$view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
$view->jQuery()->addStylesheet('/Your Public Path/js/jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css')
->setLocalPath('/Your Public Path/js/jquery/js/jquery-1.3.2.min.js')
->setUiLocalPath('/Your Public Path/js/jquery/js/jquery-ui-1.7.2.custom.min.js');
Добавьте это в макет ur
<head>
<?php echo $this->jQuery(); ?>
</head>
и использовать функции пользовательского интерфейса jQuery в файле просмотра ur: Выберите дату:
<?php echo $this->datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?>