На время проведения реконструкции сайт переведён в режим "ТОЛЬКО ЧТЕНИЕ" (Read only). Приносим свои извинения!
MaxHub
Полезности по Maxsite CMS

Как сделать общую папку uploads?

Вопросы-ответы / 1 мая 2015

Хочу сделать многоязычный сайт, установил 2 движка: один в корне, другой в подкаталоге.Вопросы:

  1. Можно ли сделать один общий каталог "uploads"?
  2. Можно ли использовать общий /system и другие?
Alex 3 3222
Комментариев: 3
  1. Никогда такого не делал, поэтому могу только теоретизировать. Так вот, теоретически, вторую задачу можно решить внеся некие правки в корневой файл index.php сайта, который вы расположили в подпапке. Там (в index.php) происходит определение констант, на основе которых потом вычисляются все пути. В частности, для папки system вас должен интересовать код:

    // Path to the system folder
    define('BASEPATH', str_replace("\\", "/", $system_path));
    // Path to the front controller (this file)
    define('FCPATH', str_replace(SELF, '', __FILE__));
    // Name of the "system folder"
    define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));

    С первой задачей, т.е. с папкой uploads ситуация немного сложнее, т.к. она появляется уже на прикладном уровне (т.е. уровне движка, а не фрейморка). Её первоначальное определение происходит в \application\libraries\maxsite_lib.php. Код:

    $this->config['uploads_dir'] = FCPATH . 'uploads/';

    Ключ uploads_dir принадлежит глобальной переменной $MSO. Можно попробовать переопределить его в файле \application\maxsite\mso_config.php. Там есть примеры в комментариях. Т.е. нужно прописать что-то типа такого кода:

    $MSO->config['uploads_dir'] = 'здесь свой путь до папки uploads';

    Буду благодарен, если попробуете и опишите здесь свои результаты.

  2. Спасибо!

    /system не стал трогать пару мегабайт погоды не делают, а в ядре я ничего менять не собираюсь.

    Было важным переназначить пути для /uploads, чтоб не плодить одинаковые файлы изображений.

    Также решил сделать общим /cache, чтоб можно было сбрасывать кэш всех языковых версий одновременно.

    Еще переназначил пути для /templates и /plugins, чтоб менять в одном месте. Используя общие /templates и /plugins нельзя будет сделать отдельный языковой файл для каждого шаблона/плагина, нужно будет все переводы хранить в одном файле в \application\maxsite\common\language\.

    Для переопределения переменных, как выше написал Илья, правил файл \application\maxsite\mso_config.php,

    переопределил следующие переменные:

    $MSO->config['uploads_url']
    $MSO->config['uploads_dir']
    $MSO->config['cache_dir']
    $MSO->config['templates_url']
    $MSO->config['templates_dir']
    $MSO->config['plugins_url']
    $MSO->config['plugins_dir']

    Пока что все работает как и хотелось, будут какие-то косяки напишу.

  3. Почему не сделать просто симлинки? В mc это всего один хоткей нажать. Я так с пяток своих сайтов перелинковывал. Плагины, движок и т.п. даже всякие там сапы.... Не вижу смысла вообще заморачиваться с путями для такой задачи. И обновление всех сайтов проходило довольно быстро.

    Единственное, где я с путями в конфигах ковырялся, это поменял расположение плагинов и тем. Ибо слишком длинные пути по умолчанию. Немного напрягали ) В сурсе можно гляунть - http://zenway.ru/