Включение / отключение модулей
#21
Posted 19 May 2009 - 01:59 AM
У вас последняя версия фреймворка? И где именно вы пытаетесь обратиться к классу CMap? в каком файле?
#22
Posted 19 May 2009 - 02:04 AM
Версия у меня 1.0.3, а обратится хочу именно в том который и указал в ошибке, хотя я пытался его в корень вынести - все аналогично.
#25
Posted 20 May 2009 - 01:23 PM
<?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.*',
)
)
);
#27
Posted 22 May 2009 - 02:16 AM
Тогда еще и индекс надо где ты передаешь путь к этому файлу.
Ты в крейтэпликэйшин передаеш путь к конфигу?
Ты в крейтэпликэйшин передаеш путь к конфигу?
#28
Posted 22 May 2009 - 03:13 AM
<?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();
#30
Posted 22 May 2009 - 04:17 AM
Ага, вроде бы помогло, ошибок никаких нет, но ощущение, что что-то не так, модуля как будто нет.
Я тут думаю, что есть проблема - я же передаю config в CreateWebApplication а дополнительные просто подключаю. Получается приложение их и не видит?
Просто я пытаюсь зайти на страницу модуля, а мне 404, т.е. его не видно.
Получается, что я единый массив все таки не получу, даже если делать так:
foreach($modules['conf'] as $module)
{
$config = require_once(dirname(__FILE__).'/protected/modules/' . $module . '/conf_' . $module . '.php');
}
а как же мне быть?
Я тут думаю, что есть проблема - я же передаю config в CreateWebApplication а дополнительные просто подключаю. Получается приложение их и не видит?
Просто я пытаюсь зайти на страницу модуля, а мне 404, т.е. его не видно.
Получается, что я единый массив все таки не получу, даже если делать так:
foreach($modules['conf'] as $module)
{
$config = require_once(dirname(__FILE__).'/protected/modules/' . $module . '/conf_' . $module . '.php');
}
а как же мне быть?
#31
Posted 22 May 2009 - 05:14 AM
Quote
$config = require_once(dirname(__FILE__).'/protected/modules/' . $module . '/conf_' . $module . '.php');
так делать нельзя.
#35
Posted 23 May 2009 - 02:24 PM
Я тут наверное всех достал, но все же. Пробую еще один вариант:
Собственно вопрос в том, как эти подключенные массивы объединить с конф_хард, если мы заранее не знаем сколько их будет?
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;
Собственно вопрос в том, как эти подключенные массивы объединить с конф_хард, если мы заранее не знаем сколько их будет?

Help













