Forums / National / Russian / Тех. поддержка / Запросы документации

<<<1...5...891011121314>>>

Принимаем вопросы от населения

Trustmaster
#151 2012-09-19 16:02

1. Нет, по-другому. Общее ядро (файлы), разные БД, админка, плагины (можно одинаковые) и темы.

2. Несколько вебсерверов за одним балансировщиком или реверсивным прокси.

May the Source be with you!
This post was edited by Trustmaster (2012-09-19 17:48, 11 years ago)
Nik Samokhvalov
#152 2012-09-20 04:31
#35506 Trustmaster:

1. Нет, по-другому. Общее ядро (файлы), разные БД, админка, плагины (можно одинаковые) и темы.

Какие плюсы из этого могут быть (я пока вижу только удобность в обновлении, да и то, в чём-то и не совсем удобно)?

Sorry for my English.
Macik
#153 2012-09-24 21:54

Изучаю код обработки параметров плагина при их изменении в Админке, в разделе «плагин» → конфигурация.

Смотрю код 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
#154 2012-09-25 07:59

Видимо, с тех пор, как был написан этот комментарий, код изменился. Или это был план, который никто не осуществил.

May the Source be with you!
Benderoki
#155 2012-11-04 11:15

Подскажите, есть какая-нибудь функция ответсвенная за дату? Есть которая отвечает за системную дату, вставляет время серверное, а другие какие-нибудь? Чтоб вставить менюшку с выбором времени и потом её красивенько вывести

Moool13
#156 2012-11-04 11:30

date() - http://www.php.su/functions/?date

Котовская функция - cot_date()  (берет в учет временную зону юзера)

Benderoki
#157 2012-11-04 11:46
#36104 Moool13:

date() - http://www.php.su/functions/?date

Котовская функция - cot_date()  (берет в учет временную зону юзера)

Спасибо, а поподробней про cot_date() где-нибудь можно почитать?

 

Added 48 minutes later:

И ещё такой вопросик, можно ли как-нибудь сделать что стартовая страница для зарегистрированных пользователей одна, а для незарегистрированных другая?

This post was edited by Benderoki (2012-11-04 12:34, 11 years ago)
Moool13
#158 2012-11-04 13:19

Спасибо, а поподробней про cot_date() где-нибудь можно почитать?

В принципе ничего особо отличительного от 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, 11 years ago)
Macik
#159 2012-11-04 21:24
#36107 Moool13:

Какой функцией можно подключить внешний css/js файл в plugin_name.php, чтобы он выводился на всех страницах, где используется плагин? Подключаю функцией cot_rc_link_file();, но выводится только на странице самого плагина. (пробовал через файл plugin_name.header.php с хуком header.first, но в этом случае выводится абсолютно на всех страницах)

Согласно последним тенденциям - надо созать файл 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
#160 2012-11-05 07:53

Macik, спасибо.

Это, я так понимаю, костыль? Получается, если юзер хочет отобразить плагин на других страницах, помимо хука, ему еще придется дополнительное условие добавлять.

Trustmaster
#161 2012-11-05 10:53

Если ресурс надо включить на всех страницах, то никакие условия добавлять не надо. Посмотрите в качестве примера .rc.php файлы в стандартных плагинах.

May the Source be with you!
Moool13
#162 2012-11-05 11:18

Trustmaster, с тем, чтобы выводить ресурсы плагина абсолютно на всех страницах проблем нет, проблема в том, чтобы выводить ресурсы только на тех страницах, где используется плагин.

Например, есть хук index.tags, значит на главной странице должны подключаться ресурсы. Но хука page.list.tags нет, значит на странице со списком статей подлючаться ресурсы не должны, однако если не создавать условие, то ресурсы будут подкдючаться и на этой странице тоже.

This post was edited by Moool13 (2012-11-05 11:25, 11 years ago)
Trustmaster
#163 2012-11-05 13:14

Пардон, не усмотрел вот что. В rc-файлах не следует использовать функцию cot_rc_link_file(), т.к. она не поддерживает консолидацию. В rc-файлах следует использовать функцию cot_rc_add_file(). Поскольку в описанном примере ресурс должен включаться не всегда, а только на некоторых страницах, то следует использовать cot_rc_link_file() с хуком global или header.first, либо любой хук с функцией cot_rc_link_footer(). При этом надо либо использовать те хуки, которые отрабатывают только в нужных страницах, либо добавлять "костыль" с условием.

В оригинальном вопросе

Какой функцией можно подключить внешний css/js файл в plugin_name.php, чтобы он выводился на всех страницах, где используется плагин? Подключаю функцией cot_rc_link_file();, но выводится только на странице самого плагина. (пробовал через файл plugin_name.header.php с хуком header.first, но в этом случае выводится абсолютно на всех страницах)

явно содержится противоречие. Каким образом на страницах "используется плагин", если standalone и header-часть не подходят?

May the Source be with you!
Moool13
#164 2012-11-05 14:13

Каким образом на страницах "используется плагин", если standalone и header-часть не подходят?

Я некорректно задал вопрос, имелось в виду следущее: помимо своей страницы (index.php?e=plugin_name), плагин выводится через тег на других страницах (index.php, index.php?e=forums, etc.), если поключены нужные хуки. И вопрос состоял в том, чтобы подключить ресурсы на страницах, где выводится плагин. (см. пример).

Trustmaster
#165 2012-11-05 15:39

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

May the Source be with you!

<<<1...5...891011121314>>>