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

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

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

Trustmaster
#151 19.09.2012 16:02

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

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

May the Source be with you!

Відредаговано: Trustmaster (19.09.2012 17:48, 12 років тому)
Nik Samokhvalov
#152 20.09.2012 04:31
#35506 Trustmaster:

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

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

Sorry for my English.
Macik
#153 24.09.2012 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 25.09.2012 07:59

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

May the Source be with you!
Benderoki
#155 04.11.2012 11:15

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

Moool13
#156 04.11.2012 11:30

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

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

Benderoki
#157 04.11.2012 11:46
#36104 Moool13:

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

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

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

 

Added 48 minutes later:

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


Відредаговано: Benderoki (04.11.2012 12:34, 12 років тому)
Moool13
#158 04.11.2012 13:19

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

В принципе ничего особо отличительного от date()

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

Проверка на id юзера и редирект.

Добавлено 4 часа спустя:

Теперь у меня вопрос:

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


Відредаговано: Moool13 (04.11.2012 18:27, 12 років тому)
Macik
#159 04.11.2012 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 05.11.2012 07:53

Macik, спасибо.

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

Trustmaster
#161 05.11.2012 10:53

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

May the Source be with you!
Moool13
#162 05.11.2012 11:18

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

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


Відредаговано: Moool13 (05.11.2012 11:25, 12 років тому)
Trustmaster
#163 05.11.2012 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 05.11.2012 14:13

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

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

Trustmaster
#165 05.11.2012 15:39

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

May the Source be with you!

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