2013-03-28 3 views
0

Я полностью создал модуль (Admin) в рамках zend. Теперь я хочу начать работу в интерфейсе, чтобы я мог управлять всем своим сайтом из бэкэнд. Но я не могу получить решение для этого. Если я запускаю мою страницу на локальном хосте, то он автоматически вызывает CSS из серверной и тему бэкэндом с сообщением об ошибке «Исключение информации» Здесь я помещаю мой Application.ini код файлаFrontcontroller не работает должным образом в Zend Framework

[production] 
phpSettings.display_startup_errors = 0 
phpSettings.display_errors = 0 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 

admin.bootstrap.path = APPLICATION_PATH "/modules/admin/Bootstrap.php" 
admin.bootstrap.class = "Admin_Bootstrap" 

appnamespace = "Application" 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.frontController.params.displayExceptions = 1 

resources.session.name = "ZendSession" 
;resources.session.save_path = APPLICATION_PATH "/../data/session" 
resources.session.use_only_cookies = true 
resources.session.remember_me_seconds = 86400 

resources.layout.layout = "layout" 
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" 
admin.resources.layout.layout = "admin" 
admin.resources.layout.layoutPath = APPLICATION_PATH "/modules/admin/layouts/scripts" 


resources.view.encoding = "UTF-8" 
resources.view.basePath = APPLICATION_PATH "/views/" 
resources.view[] = 

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules[] = 
resources.view[] = 
admin.resources.view[] = 

resources.db.adapter = Pdo_Mysql 
resources.db.params.username = root 
resources.db.params.password = 
resources.db.params.dbname = myproject 
resources.db.isDefaultTableAdapter = true 

[staging : production] 


[testing : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
[development : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
resources.frontController.params.displayExceptions = 1 

В загрузочном файле я Безразлично «т иметь инициализацию любой функции или плагин

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
{ 


} 

я создал отдельный файл bootsrap.php для модуля администратора, как это: -

<?php 
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 
    /*protected function _initAppAutoload() 
    { 
     $autoloader = new Zend_Application_Module_Autoloader(array(
      'names pace' => 'admin', 
      'basePath' => APPLICATION_PATH . '/modules/admin/' 
     )); 
     return $autoloader; 
    }*/ 

    protected function _initDoctype() 
    { 
     global $adminModuleCssPath; 
     global $adminModuleJsPath; 
     $this->bootstrap('view'); 
     $view = $this->getResource('view'); 

     $view->headTitle('Projects for learning'); 
     $view->headScript()->appendFile($adminModuleJsPath.'jquery-1.7.2.js'); 
     $view->headScript()->appendFile($adminModuleJsPath.'jquery-ui.js');  
     $view->headScript()->appendFile($adminModuleJsPath.'tinybox.js'); 
     $view->headScript()->appendFile($adminModuleJsPath.'common.js'); 
     $view->headLink()->appendStylesheet($adminModuleCssPath.'jquery-ui.css'); 
     $view->headLink()->appendStylesheet($adminModuleCssPath.'style.css'); 
     $view->headLink()->appendStylesheet($adminModuleCssPath.'theme.css'); 
     $view->headLink()->appendStylesheet($adminModuleCssPath.'tinybox.css'); 
     $view->doctype('XHTML1_STRICT'); 
     //$view->navigation = $this->buildMenu(); 
    } 

    protected function _initLayoutPlugin() 
    { 
     $layout = Zend_Controller_Front::getInstance(); 
     $layout->registerPlugin(new Admin_Plugin_AdminLayout()); 

    } 

    protected function _initAuthPlugin() 
    { 
     $checkAuth = Zend_Controller_Front::getInstance(); 
     $checkAuth->registerPlugin(new Admin_Plugin_CheckAuth(Zend_Auth::getInstance())); 
    } 

    protected function _initRouter() 
    { 
     $frontController = Zend_Controller_Front::getInstance(); 
     $router = $frontController->getRouter(); 
     $route = new Zend_Controller_Router_Route(
       ':module/:controller/:action/*', 
       array('module' => 'admin') 
      ); 
     $router->addRoute('default', $route); 

     $usersRoute = new Zend_Controller_Router_Route_Regex(
         ':module/:controller/:action/(?:/page/(\d+)/?)?', 
         array(
          'module' => 'admin', 
          'controller' => 'users', 
          'action' => 'index', 
          'page' => 1, 
          ), 
         array(
           'page' => 1, 
          ) 
        ); 

     $router->addRoute('users-index', $usersRoute); 

    } 

    protected function _initActionHelpers() 
    { 
     Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . "/modules/admin/views/helpers"); 
     Zend_Controller_Action_HelperBroker::addPrefix('Admin_View_Helper'); 
    } 

    /*protected function _initAutoload() 
    { 
     $autoloader = new Zend_Loader_Autoloader_Resource(array(
      'namespace' => '', 
      'basePath' => APPLICATION_PATH."/modules/admin", 
      'resourceTypes' => array(
       'form' => array(
        'path' => 'forms', 
        'namespace' => 'Form', 
       ), 
       'model' => array(
        'path' => 'models', 
        'namespace' => 'Model', 
       ), 
      ) 
     )); 
     return $autoloader; 
    }*/ 

} 

Где я сделал ошибку, я не» я знаю, что я новичок в Zend Framework, пожалуйста, помогите мне решить мою проблему, поэтому я могу позвонить своим контроллерам и действиям на своем сайте и управлять им с помощью backend-модуля (admin)

ответ

1

Начальные классы для все модулей вызывается по каждому запросу.

Если вам нужно выполнить настройки, специфичные для модуля (например, для инициализации вашего вида), тогда зарегистрируйте плагин переднего контроллера с крюком routeShutdown(). В этот момент цикла отправки вы знаете, какой модуль вызывается, поэтому вы знаете, как вы хотите настроить свое представление.

Для получения дополнительной информации см. this answer и сообщение MWOP на странице ZF1 module bootstrapping.