У вас последняя версия фреймворка? И где именно вы пытаетесь обратиться к классу CMap? в каком файле?
У вас последняя версия фреймворка? И где именно вы пытаетесь обратиться к классу CMap? в каком файле?
Версия у меня 1.0.3, а обратится хочу именно в том который и указал в ошибке, хотя я пытался его в корень вынести - все аналогично.
пробовал на 1.0.5 безрезультатно
покажите conf_advertisements.php
<?php return CMap::mergeArray( require('../../config/hard_conf.php'), array( // Модули приложения 'modules' => array('advertisements'), // Переопределение путей 'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'rules'=>array( /** * Бесплатные объявления. */ // Главная страница с управлением категориями объявлений 'admin/advertisements/' => 'advertisements/admin', // Добавить (суб)категорию 'admin/advertisements/category_add/'=>'advertisements/admin/category_add', // Редактировать (суб)категорию 'admin/advertisements/category_edit/<id:d+>/'=>'advertisements/admin/category_edit', // Cписок субкатегорию 'admin/advertisements/<id:d+>/'=>'advertisements/admin', // Добавить субкатегорию 'admin/advertisements/category_add/<id:d+>/'=>'advertisements/admin/category_add', // Удалить (суб)категорию 'admin/advertisements/category_delete/<id:d+>/'=>'advertisements/admin/category_delete', // Лист с объявлениями 'admin/advertisements/advertisements_list/<id:d+>/'=>'advertisements/admin/advertisements_list', // Добавить объявление 'admin/advertisements/advertisement_add/<id:d+>/'=>'advertisements/admin/advertisement_add', // Редактировать объявление 'admin/advertisements/advertisement_edit/<id:d+>/'=>'advertisements/admin/advertisement_edit', // Удалить объявление 'admin/advertisements/advertisement_delete/<id:d+>/'=>'advertisements/admin/advertisement_delete', // Главная страница с управлением категориями товаров 'admin/advertisements_types/' => 'advertisements/admin/advertisements_types', // Добавить вид услуги 'admin/advertisements/type_add/'=>'advertisements/admin/type_add', // Редактировать вид услуги 'admin/advertisements/type_edit/<id:d+>/'=>'advertisements/admin/type_edit', // Удалить вид услуги 'admin/advertisements/type_delete/'=>'advertisements/admin/type_delete', // Одобрить объявление 'admin/advertisements/advertisement_confirm/<id:d+>/'=>'advertisements/admin/advertisement_confirm', 'advertisements/<id:d+>'=>'advertisements/guest/advertisements_tree', 'advertisements'=>'advertisements/guest/advertisements_tree', 'advertisements/advertisement_add/<id:d+>/' => 'advertisements/guest/advertisement_add', ), ), // Автозагрузка моделей и компонентов 'import'=>array( // Модульные компоненты и модели 'application.modules.advertisements.models.*', ) ) );
м?
Тогда еще и индекс надо где ты передаешь путь к этому файлу.
Ты в крейтэпликэйшин передаеш путь к конфигу?
<?php // Решаем проблему с кодировкой локально header("Content-Type: text/html; charset=UTF-8"); // Выводить сообщения об ошибках defined('YII_DEBUG') or define('YII_DEBUG', TRUE); // Расположение основных файлов // $yii = '../_frameworks/1.0.4/yii.php'; $yii = '../framework/yii.php'; $config = dirname(__FILE__).'/protected/config/conf_hard.php'; // Подключаем вспомогательную либу и обходим папку модулей на предмет их конфигов require_once(dirname(__FILE__).'/protected/components/CommonTools.php'); $modules = CommonTools::findModules(); foreach($modules['conf'] as $module) { require_once(dirname(__FILE__).'/protected/modules/' . $module . '/conf_' . $module . '.php'); } // Запуск приложения require_once($yii); Yii::createWebApplication($config)->run();
Подключение конфигов модулей делай после require_once($yii);
Ага, вроде бы помогло, ошибок никаких нет, но ощущение, что что-то не так, модуля как будто нет.
Я тут думаю, что есть проблема - я же передаю config в CreateWebApplication а дополнительные просто подключаю. Получается приложение их и не видит?
Просто я пытаюсь зайти на страницу модуля, а мне 404, т.е. его не видно.
Получается, что я единый массив все таки не получу, даже если делать так:
foreach($modules['conf'] as $module)
{
$config = require_once(dirname(__FILE__).'/protected/modules/' . $module . '/conf_' . $module . '.php');
}
а как же мне быть?
Quote
так делать нельзя.
Это я уже понял, но как тогда мне быть?
Перепробовал разные варианты… увы… все не то
Как можно решить мою задачу? Кто-нибудь знает?
Я тут наверное всех достал, но все же. Пробую еще один вариант:
require_once('./protected/components/CommonTools.php'); $modules = CommonTools::findModules(); foreach($modules['conf'] as $module) { require_once('./protected/modules/' . $module . '/conf_' . $module . '.php'); } $conf_hard = array(...); return $conf_hard;
Собственно вопрос в том, как эти подключенные массивы объединить с конф_хард, если мы заранее не знаем сколько их будет?