У вас последняя версия фреймворка? И где именно вы пытаетесь обратиться к классу 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;
Собственно вопрос в том, как эти подключенные массивы объединить с конф_хард, если мы заранее не знаем сколько их будет?