Как/где отключить полную перезапись configuration.php
  • genya Апрель 2012
    Нужна помощь/подсказка. Собственно сабж, но прокомментирую детали.
    Суть проблемы (joostina-1.3.0.5-stable)
    Вношу свои изменения в configuration.php для одновременной работы
    джустины и в локалхосте, и на хостинге (все отлично везде работает)

    Но, как только начинаю что-либо менять в настройках "Глобальной конфигурации",
    то автоматом джустина, полностью перезаписывает configuration.php и удаляет!,
    все "мои записи настроек" подчистую (((

    Меняю его на сохраненный ранее мной configuration.php - все снова работает.

    Вопрос: Нельзя ли (и где/как) запретить полную перезапись configuration.php ?
    Либо, чтобы вносились только "новые" записи, не трогая и не удаляя "старые" ?
    И чтобы все записи "новые/старые" не меняли свое местоположение в configuration.php ?
    (т.е. логин к базе перезаписывается вначале текста, а пароль в конце и т.д.)

    Отредактированно genya в 2012-04-04 14:51:39
  • ArkadiyArkadiy Апрель 2012
    Нельзя записать файл по частям, только целиком.
  • genya Апрель 2012
    Это и ежу понятно - что нельзя)
    Вопрос в другом контексте.
    Что можно сделать, чтобы configuration.php не перезаписывался полностью,
    а только лишь те "новые" записи настроек, не трогая/не удаляя "старые" ?

    Или подскажите в каких файлах движка - эта "перезапись" configuration.php находится ?
    может получится отучить джустину от этой досадной "недоработки".
    Отредактированно genya в 2012-04-04 22:05:51
  • GoDrGoDr Апрель 2012
    Открывай файл admn.config.php

    файл формируется там. Конечная функция для формирования итогового файла это saveconfig()

    Ищи строки
    $config = "<?php \n";
    $config .= $row->getVarText();
    $config .= "setlocale (LC_TIME, \$mosConfig_locale);\n";
    $config .= '?>';

    Первая, как видно, начало файла. Последняя, конец файла.

    Вот что хочешь то и лепи туда
  • genya Апрель 2012
    Пробовал, бесполезно, джустина лепит все равно свое)
    мои настройки в игноре, даже не переносятся в конфиг.
    Придется по-старому - кидать туда-сюда configuration.php (

    Надеюсь что в Joostina 1.4 учтут этот неудобный нюанс,
    и разделят configuration.php на две части:
    1. Доступ (локалхост = хостинг + база)
    2. Общие глобальные настройки
  • mosgazmosgaz Апрель 2012
    А если у кого-то локаль, тестовый хостинг, и рабочий хостинг - то и на все три части?...и т.д.? Проще не обновлять configuration.php при заливке файлов, чтобы не путать локаль/хост.
    Конфиг у вас может не записываться только если файл защищен от записи или испорчен сам com_config. В данном случае, на мой взгляд, это не неудобный нюанс и не досадная "недоработка", а частная задача.
  • GoDrGoDr Апрель 2012
    @genya, прежде чем что-то громогласно говорить, покажите код, который вы написали. Это во-первых.

    Во вторых, зачем вам вообще залазить в основной файл конфигурации? его нужно один раз настроить, сделать не доступным (644) и забыть про него. Все ваши манипуляции с ним - это не безопасно

    ну и в-третьих, а не проще просто сделать свой файл и подгрузить его или в шаблоне или в .... в любом другом месте, например в мамботе?



    Отредактированно GoDr в 2012-04-05 04:43:43
  • genya Апрель 2012
    mosgaz
    configuration.php не защищен и не испорчен com_config.php
    и обновлять configuration.php приходится, т.к. сайт не готов.
    И это не частная задача, а облегчение работы с джустиной всем её пользователям.
    не нужно будет "лишних" движений, перенес на хостинг/локалхостинг и работай.

    GoDr
    Показывать код не буду, все дружно скописпастят и поймут как это здорово,
    и не нужно какждый раз заполнять/менять доступ к базе (хостинга/локалхостинга).
    И кажется придумал, как обойти "переброску" configuration.php с места на место.
    Но решение гораздо проще, чем предлагаете вы тут, не громогласно)

    Вообще спасибо за участие (Arkadiy, GoDr, mosgaz)
    Надеюсь что есть еще кто нибудь из других джустиноводов
    предложит способ - "как отключить полную перезапись configuration.php"
    с сохранением "своих" настроек.
    Отредактированно genya в 2012-04-05 11:04:46
  • ArkadiyArkadiy Апрель 2012
    В общем это никому не нужно, один раз настроил на локали, один на сайте. Все, больше ничего не надо, поменял что-то на локали - залей на сервер, но конфиг не трогай, вот и все простое правило.
  • GoDrGoDr Апрель 2012
    @genya, а я изобрёл вечный двигатель, только никому не скажу как его сделать, а то своруют и будут пользоваться :-))

    тему можно сказать закрыли, а то ни дай бог изобретём проще чем 1+1 :)

    PS
    я иногда делаю три конфига:
    - для локального Денвера
    - для локального OpenServer (держу на всякий случай, удобнее намного, но вот глючнее)
    - хостинга
    :)
  • mosgazmosgaz Апрель 2012
    GoDr, у меня обычно все(configuration.php, robots.txt, .htaccess) хранится в директории _server для каждого сайта и разложено по папкам main, test, test2 и т.д. для каждого поддомена сайта.

    genya, сомневаюсь что кто-нибудь станет "кописпастить" не работающий код, сомнительной утилитарности. Пишите в стол, если есть желание.
  • GoDrGoDr Апрель 2012
    mosgaz, да пробовал так делать. всё равно путаюсь :) Особенно когда их несколько десятков, локальные копии, хостинговые копии, да ещё копии на работе и дома.... иногда проще и быстрее залезть в конфиг да поменять две строчки :)
  • colors Апрель 2012
    > Показывать код не буду, все дружно скописпастят и поймут как это здорово,

    дивная тема :)
    @genya, у меня есть готовое решение, но показать код не могу, т.к. Вы скопипастите и будете пользоваться :)
    Отредактированно colors в 2012-04-06 12:59:09
  • genya Апрель 2012
    colors
    Тема актуальная и не новая), а дивный видимо ты сам, раз удивляешься этому)))
    Многие кто пользуется джустиной (все версии)
    "запоминают" или дублируют configuration.php... 100500 раз :D
    типа: этот для локалхоста, этот для хостинга и прочего хоста)
    А еще в первых версиях джустины - этот мультидоступ нужно было
    сразу взять на заметку и найти решение) тем более оно - ПРОСТОЕ!
    Джустина еще больше бы выиграла с этой возможностью по популярности.

    Почему решил не показывать) - так ведь показывать-та нечего :D
    одни сплошные комментарии: :)
    <?php<br />
    // hosting
    $mosConfig_absolute_path = '/home/joostina.ru/public_html/';
    $mosConfig_dbtype = 'mysql';
    $mosConfig_host = 'localhost';
    $mosConfig_user = 'hosting';
    $mosConfig_password = 'hosting';
    $mosConfig_db = 'dbjoostina';
    $mosConfig_dbprefix = 'jos_';
    $mosConfig_live_site = 'http://joostina.ru';
    // localhost
    #$mosConfig_absolute_path = 'E:\\localhost\\home';
    #$mosConfig_dbtype = 'mysql';
    #$mosConfig_host = 'localhost';
    #$mosConfig_user = 'root';
    #$mosConfig_password = 'root';
    #$mosConfig_db = 'dbjoostina';
    #$mosConfig_dbprefix = 'jos_';
    #$mosConfig_live_site = 'http://127.0.0.1';
    ...
    ?>
    Пользуйтесь и копипасте на здоровье, такого г.кода ни скока не жалко :D

    Предлагаю тему удалить, за ненадобностью в употреблении джустины
    Видимо и так всех устраивает и ничего в ней менять не надо)))



    Отредактированно genya в 2012-04-07 02:14:49
  • GoDrGoDr Апрель 2012
    круто написано :) @genya, маленький вопрос.. Ты действительно считаешь что лезть в код ядра, да и тем более в конфигурационные файлы безопаснее и легче чем просто иметь копию одного файла? :)

    И если честно, то так я и не понял, ты хочешь внести в конфиг настройки для локального хоста и в нужный момент их раскомментировать? или чтобы сайт сам понимал где он


  • genya Апрель 2012
    GoDr
    Код ядра останется не тронутым, нужно лишь добавить в него конструкцию выбора
    (mysql_connect) и с отображением этого в админ.панели в глоб.настройках
    А если этот выбор уже вбить в инсталляцию джустины, то проблема сама отпадет
    и не будет никакой "ручной" подстановки доступа и копирования (туда-сюда)
    configuration.php

    >>И если честно, то так я и не понял, ты хочешь внести в конфиг настройки для локального хоста и в нужный момент их раскомментировать? или чтобы сайт сам понимал где он

    GoDr >>или чтобы сайт сам понимал где он
    Именно так надо, хотелось бы ;)) "поставил и забыл"
    Т.е. вообще избавится от "разкомментов", надеюсь что понятно объяснил суть задачи
    Отредактированно genya в 2012-04-07 02:35:16
  • doctorgrifdoctorgrif Апрель 2012
    Мысли
    1. нам требуется наличие файла configuration.php, но нужны его "копии" локального пользования и "интернета"
    2. файл configuration.php переименовывать нельзя ибо нельзя
    3. значит надо сделать возможность считывания вариантов файла для разных сетевых интерфейсов (ну я утрирую)
    Вариант реализации
    1. в configuration.php стираем все, но пишем следующее

    <?php
    defined('_VALID_MOS') or die(); {
    if [условие для этих-ваших-интернетов]
    require_once 'configuration-net.php';
    } else {
    if [условие для локального шурования]
    require_once 'configuration-loc.php';
    ?>

    ps: код писан от балды, для показа логики, не применять на рабочем проекте!
    2. создаем эти configuration-loc.php и configuration-net.php в корне сайта, назначаем им права как у configuration.php, заполняем их строками из оригинального configuration.php (до издевательств)
    3. пробуем работать
    Отредактированно doctorgrif в 2012-04-07 02:47:06
  • genya Апрель 2012
    doctorgrif
    Мысли хорошие, и может я не прав, но нужно добавить еще скобку:


    <?php
    defined('_VALID_MOS') or die(); {
    if [условие для этих-ваших-интернетов]
    require_once 'configuration-net.php';
    } else {
    if [условие для локального шурования]
    require_once 'configuration-loc.php';
    }
    ?>


    Будем пробывать этот вариант. Спасибо.
    Отредактированно genya в 2012-04-07 06:34:35
  • doctorgrifdoctorgrif Апрель 2012
    ну я и писал
    ps: код писан от балды, для показа логики, не применять на рабочем проекте!
  • GoDrGoDr Апрель 2012
    :-))
    а нафига всё это?

    т.е. мы сделаем 2,3..5 файлов конфигурации, сделаем условии для каждого файла и будем подключать их по правилам, так?

    круто!!! Не проще просто конфиги не трогать при копировании сайтов из локалки на сервер и обратно? :)
  • GoDrGoDr Апрель 2012
    и мне интересно, как часто люди настраивают конфиг??? Я думал всегда что один раз :) Ну ещё можно пару раз зайти чтобы отключить сайт.. А больше там вообще делать нечего
  • doctorgrifdoctorgrif Апрель 2012
    нафига, нафига...
    genya надо - предложили решение
    GoDr не надо - отдыхаем :)
  • GoDrGoDr Апрель 2012
    Не, если уж фантазировать , то вот мой идеальный вариант :)

    Что у нас меняется в конфигурации? Подключение к базе да пути.

    Тогда мы делаем просто каталог, в который кидаем кучу файлов конфигурации для разных хостингов..

    Теперь, при первом запуске сайта на любом из хостингов проверяем наличие некого файла (о его сути позже).

    Видим что файла нет. Тогда поочерёдно подключаем все конфиги из папки конфигов.

    Подключаем и проверяем подключается ли база и верны и пути. Нет? подключаем следующий. Да? Ну тогда создаём тот самый тайный файл в котором указываем какой именно конфиг используется.

    Ну и что мы имеем... Мы имеем возможность одновременно использовать сайт на любом количестве хостингов не задумываясь о настройка. И всего-то нам нужно для настройки нового хостинга - удалить загадочный файлик из системы :)

    Как вам такое решение??

    PS
    даже самому понравилось :-D
  • genya Апрель 2012

    doctorgrif:

    нафига, нафига...
    genya надо - предложили решение
    GoDr не надо - отдыхаем

    Сто лет не нужно было, а счас вот понадобилось ;)

    Пока тестирую все извраты с конфигом

    GoDr:

    Тогда поочерёдно подключаем все конфиги из папки конфигов


    Тоже не плохое решение когда сайтов МНОГО
    нужно только забить в осн.конфиг скан этой папки
    на поиск и подстановку нужного конфига (только доступа!),
    и чтобы "полная перезапись" configuration.php
    не стирала этот "скан-код".

    Но это решение лучше применить на крайний случай
    когда все остальные способы будут невозможны.
    Отредактированно genya в 2012-04-07 06:52:07

Добро пожаловать!

Похоже, что Вы здесь впервые. Если хотите поучаствовать, нажмите на одну из этих кнопок!

Войти Зарегистрироваться

В теме отметились