2013-04-22 4 views
0

У меня небольшая проблема. У меня есть настраиваемый файл конфигурации для загрузки. Я хочу загрузить настройки без их переопределения.Codeigniter load custom upload config

Хорошо, моя конфигурация выглядеть следующим образом:

config.php

$config['upload_path'] = 'tmp/'; 
$config['allowed_types'] = 'zip'; 
$config['file_name'] = ''; 
$config['max_size'] = ''; 
$config['encrypt_name'] = false; 
$config['remove_spaces'] = true; 

Контроллер

// Here is my problem $config[] 
// How to load settings from config.php without again defining $config array 

$config['upload_path'] = $this->config->item('upload_path'); 
$config['allowed_types'] = $this->config->item('allowed_types'); 
$config['file_name'] =  $this->config->item('file_name'); 
$config['max_size'] =  $this->config->item('max_size'); 
$config['encrypt_name'] = $this->config->item('encrypt_name'); 
$config['remove_spaces'] = $this->config->item('remove_spaces'); 

$this->load->library('upload',$config); 

if(!$this->upload->do_upload()) 
{ 
    $this->session->set_flashdata('error', $this->upload->display_errors()); 
    redirect('extension/'); 
} 

Я хочу, чтобы обойти переопределение $ конфиге [ 'тест ] = $ this-> config-> item ('test');

Это невозможно?

ответ

0

Я не уверен, что мне что-то не хватает, но просто не помещайте строки в контроллер. Это будет эффективно не обновлять его?

+0

И как загрузить декларацию из config в $ this-> load-> library ('upload', WHAT NOW HERE); – Ivan

+0

Вы просто вызываете конфигурационный файл upload.php и помещаете его в свою конфигурационную папку. Класс загрузки автоматически загрузит элементы конфигурации, объявленные в этом настраиваемом файле. Нет необходимости инициализировать его. См. Здесь: http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html, найдите «Настройка предпочтений в файле конфигурации» –

+0

Да, но в настройках настроек он определяет $ config array в одном файле. Но мои данные конфигурации хранятся в другом файле /config/upload.php. Я пытаюсь сказать, что вы говорите и не работаете. – Ivan

0

http://ellislab.com/codeigniter/user-guide/libraries/config.html описывает, как загрузить пользовательские элементы конфигурации. Я бы рекомендовал создать настраиваемый файл конфигурации, как предлагает веб-сайт CI, и просто загружать этот настраиваемый файл конфигурации там, где вы хотите.

Итак, у вас будет что-то вроде $this->config->load('custom_upload_settings', FALSE, TRUE);, и в этом файле у вас будут настройки, которые вы хотите переопределить.

// загружает конфигурационный файл с именем custom_upload_settings.php и присваивает его индекс с именем «blog_settings» $this->config->load('custom_upload_settings', TRUE);

// Извлечение конфигурации элемента с именем SITE_NAME, содержащийся в массиве custom_upload_settings $site_name = $this->config->item('site_name', 'custom_upload_settings');

+0

Человек, который у меня есть в моем constuctor, я не кладу весь код bcs в большой. // Загрузить конфигурацию $ this-> load-> config ('extension', FALSE, TRUE); – Ivan

+0

Я не знаю, что вы имеете в виду? '$ this-> config-> load ('custom_upload_settings', FALSE, TRUE);' будет загружать новый файл, который вам нужно создать (поэтому он должен быть пустым, пока вы не добавите строки 'set_item()). – Justin

+0

Да, я не знаю, что я имею в виду. Моя проблема не в конфигурации и загрузке config ... Моя проблема - загрузить библиотеку, как уловить настройки из моей настраиваемой конфигурации, не указав это снова. – Ivan