Принимаем вопросы от населения
Trustmaster |
|
---|---|
1. Нет, по-другому. Общее ядро (файлы), разные БД, админка, плагины (можно одинаковые) и темы. 2. Несколько вебсерверов за одним балансировщиком или реверсивным прокси. May the Source be with you!
|
|
This post was edited by Trustmaster (2012-09-19 17:48, 12 years ago) |
Nik Samokhvalov |
|
---|---|
#35506 Trustmaster: Какие плюсы из этого могут быть (я пока вижу только удобность в обновлении, да и то, в чём-то и не совсем удобно)? Sorry for my English.
|
Macik |
|
---|---|
Изучаю код обработки параметров плагина при их изменении в Админке, в разделе «плагин» → конфигурация. Смотрю код admin.config.php if ($a == 'update' && !empty($_POST)) { // Update only those options which have been changed $overriden = array(); $sql = $db->query("SELECT config_name FROM $db_config WHERE config_owner = ? AND config_cat= ? $where_cat", array_merge(array($o, $p), $sub_param)); while ($row = $sql->fetch()) { $cfg_value = trim(cot_import($row['config_name'], 'P', 'NOC')); if ($o == 'core' && $p == 'users' && ($cfg_name == 'av_maxsize' || $cfg_name == 'sig_maxsize' || $cfg_name == 'ph_maxsize')) { $cfg_value = min($cfg_value, cot_get_uploadmax() * 1024); } $db->update($db_config, array('config_value' => $cfg_value), "config_name = ? AND config_owner = ? AND config_cat = ? $where_cat", array_merge(array($row['config_name'], $o, $p), $sub_param)); $overriden[] = $row['config_name']; } $sql->closeCursor(); И не понимаю смысла комментария, который вроде бы гласит «записываем только те параметры, которые были изменены». А при этом, судя по коду, $db->update срабатывает в цикле по всем параметрам без разбора. Прокомментируйте, пожалуйста. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Trustmaster |
|
---|---|
Видимо, с тех пор, как был написан этот комментарий, код изменился. Или это был план, который никто не осуществил. May the Source be with you!
|
Benderoki |
|
---|---|
Подскажите, есть какая-нибудь функция ответсвенная за дату? Есть которая отвечает за системную дату, вставляет время серверное, а другие какие-нибудь? Чтоб вставить менюшку с выбором времени и потом её красивенько вывести |
Moool13 |
|
---|---|
date() - http://www.php.su/functions/?date Котовская функция - cot_date() (берет в учет временную зону юзера) |
Benderoki |
|
---|---|
#36104 Moool13: Спасибо, а поподробней про cot_date() где-нибудь можно почитать?
Added 48 minutes later: И ещё такой вопросик, можно ли как-нибудь сделать что стартовая страница для зарегистрированных пользователей одна, а для незарегистрированных другая? |
|
This post was edited by Benderoki (2012-11-04 12:34, 12 years ago) |
Moool13 |
|
---|---|
В принципе ничего особо отличительного от date()
Проверка на id юзера и редирект. Добавлено 4 часа спустя: Теперь у меня вопрос: Какой функцией можно подключить внешний css/js файл в plugin_name.php, чтобы он выводился на всех страницах, где используется плагин? Подключаю функцией cot_rc_link_file();, но выводится только на странице самого плагина. (пробовал через файл plugin_name.header.php с хуком header.first, но в этом случае выводится абсолютно на всех страницах) |
|
This post was edited by Moool13 (2012-11-04 18:27, 12 years ago) |
Macik |
|
---|---|
#36107 Moool13: Согласно последним тенденциям - надо созать файл plugin.rc.php, с хуком «Hooks=rc». Он выполняется внутри common.php. В файле делать проверку на входные параметры, для определения текущей страницы. Как пример: if (defined('COT_ADMIN') && (($_GET['n']=='edit' && $_GET['o']=='plug' && $_GET['m']=='config' && $_GET['p']==$plug_name) || ($_GET['pl']==$plug_name) )) { }
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Moool13 |
|
---|---|
Macik, спасибо. Это, я так понимаю, костыль? Получается, если юзер хочет отобразить плагин на других страницах, помимо хука, ему еще придется дополнительное условие добавлять. |
Trustmaster |
|
---|---|
Если ресурс надо включить на всех страницах, то никакие условия добавлять не надо. Посмотрите в качестве примера .rc.php файлы в стандартных плагинах. May the Source be with you!
|
Moool13 |
|
---|---|
Trustmaster, с тем, чтобы выводить ресурсы плагина абсолютно на всех страницах проблем нет, проблема в том, чтобы выводить ресурсы только на тех страницах, где используется плагин. Например, есть хук index.tags, значит на главной странице должны подключаться ресурсы. Но хука page.list.tags нет, значит на странице со списком статей подлючаться ресурсы не должны, однако если не создавать условие, то ресурсы будут подкдючаться и на этой странице тоже. |
|
This post was edited by Moool13 (2012-11-05 11:25, 12 years ago) |
Trustmaster |
|
---|---|
Пардон, не усмотрел вот что. В rc-файлах не следует использовать функцию cot_rc_link_file(), т.к. она не поддерживает консолидацию. В rc-файлах следует использовать функцию cot_rc_add_file(). Поскольку в описанном примере ресурс должен включаться не всегда, а только на некоторых страницах, то следует использовать cot_rc_link_file() с хуком global или header.first, либо любой хук с функцией cot_rc_link_footer(). При этом надо либо использовать те хуки, которые отрабатывают только в нужных страницах, либо добавлять "костыль" с условием. В оригинальном вопросе
явно содержится противоречие. Каким образом на страницах "используется плагин", если standalone и header-часть не подходят? May the Source be with you!
|
Moool13 |
|
---|---|
Я некорректно задал вопрос, имелось в виду следущее: помимо своей страницы (index.php?e=plugin_name), плагин выводится через тег на других страницах (index.php, index.php?e=forums, etc.), если поключены нужные хуки. И вопрос состоял в том, чтобы подключить ресурсы на страницах, где выводится плагин. (см. пример). |
Trustmaster |
|
---|---|
В таком случае лучше всего просто добавить в тот код, который включается в других страницах, вызов cot_rc_link_footer() безо всяких условий. May the Source be with you!
|