Форумы / National / Russian / Тех. поддержка / Параметры для cot_rc_link_footer

Есть ли возможность ?

Roffun
#1 05.10.2014 12:06

Добрый день, 

у меня вопрос к разработчикам по функциям   cot_rc_link_footer, cot_rc_embed_footer

Они выводят код обрамленный тегами, а есть ли возможность вставить свои атрибуты ?

или может быть есть альтернативные функции для вставки в футер из плагинов?

Например :

cot_rc_link_footer($cfg['plugins_dir'] . '/myplugin/js/myplugin.js');         выведет:     <script type="text/javascript" src="plugins/myplugin/js/myplugin.js"></script>

Допустим нужно добавить атрибут async , как лучше это сделать програмно?

Добавлено 24 минуты спустя:

Посмотрел функцию в системном файле, получается что можно использовать вставку в  {FOOTER_RC}  таким образом:

$out['footer_rc'] .= '<script src="*******" async></script>';

Есть ли еще варианты?

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Отредактировано: Roffun (27.12.2016 21:13, 7 лет назад)
Dr2005alex
#2 05.10.2014 16:10

Я не вижу других вариантов.

Можно создать свою функцию. ПРимер

function cot_rc_link_footer_custom($path,$param)
{
	global $out;
	$type = preg_match('#\.(js|css)$#i', $path, $m) ? strtolower($m[1]) : 'js';
	$out['footer_rc'] .= cot_rc("code_rc_{$type}_file", array('url' => $path,'param'=>$param));
}

а resources.php добавить $param..

$R['code_rc_js_file'] = '<script type="text/javascript" src="{$url}" {$param} ></script>';

И пользоваться...

WebKaa.ru - Cotonti Relax
Roffun
#3 05.10.2014 18:01

Алексей, благодарю, с ресурсами я еще не пробовал подключать, тем более видел в других плагинах, что ресурс пхп можно свой подключать

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Macik
#4 06.10.2014 12:59
#40044 Dr2005alex:

Я не вижу других вариантов.

Можно создать свою функцию. ПРимер

function cot_rc_link_footer_custom($path,$param)

а resources.php добавить $param..

$R['code_rc_js_file'] = '<script type="text/javascript" src="{$url}" {$param} ></script>';

И пользоваться...

Можно еще проще. Просто переопределить 

$R['code_rc_js_file']

в нужном месте (или единожды в файле `theme.php`) и сразу вставить туда все нужные атрибуты. 

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Roffun
#5 06.10.2014 15:49

Благодарю, это тоже вариант удобный.

А как насчет файлов **.rc.php ?   есть ли возможность менят порядок с учетом файлов стилей темы ?

order=N только между плагинами работает.  А если код посмотреть, то сначала выводятся файлы стилей плагинов, а потом файлы стилей шаблона. Этот порядок програмно можно менять?

Добавлено 12 минуты спустя:

Если учитывать что плагины в большинстве своем это вспомогательные элементы, то их стили логично загружать после стилей шаблона. Но при использовании хука rc  и  cot_rc_add_file  они автоматически попадают выше файлов стилей шаблона, в итоге имеем картину, когда сначала грузится файл css вспомогательного плагина,  и не одного, а потом уже шаблон. 

И есть ли возможность объединять файлы дополнительно, отдельно от основного объединения?      например при использовании $out['head_head'] .= "<***>";

этот вариант помогает вывести в head, как и  cot_rc_link_file()   , но он выводится отдельно, если их будет с 10 , лучше было бы их объединять.

Есть ли вариант объединения в обход cot_rc_add_file()  ?

Добавлено 17 минуты спустя:

 

 

Эту функцию можно использовать ?    

http://www.cotonti.com/reference/cotonti/package-functions.html#cot_rc_consolidate()

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Отредактировано: PRoHtml (06.10.2014 16:18, 9 лет назад)
Macik
#6 06.10.2014 20:32
  1. логика (последовательностьт загрузки) такая — системные скрипты/стили, файлы плагинов (они расширяют систему), затем файлы темы оформления, т.к. она может потребовать корректировки стилей под свое оформление. Разработчик плагинов не может и не должен проедполагать какие темы оформления будут установлены на конечной машине, поэтому именно разработчик темы должен об этом заюботится, если это необходимо. 
  2. Объединять файлы дополнительно к основной консолидации возможности нет (и тут вопрос для чего?). Общее правило подключения примерно такое (поправьте если ошибаюсь в своих рассуждениях) —
        вариант 1 (если сайт использует консолидацию файлов):
               а) - если скрипт предполагается к использованию на всех страницах сайта (или большей их части) или файл небольшого размера, то файл надо подключать через `cot_rc_add_file()` тогда он будет объединен и подключен внутри единого файла.
               б) - если скрипт «эпизодический» (т.е. подключается только на определенных страницах) или он досаточно велик, чтобы включать его в общий консолидированный файл, то надо использовать функции `cot_rc_link_file` (для подключения в заголовок) или `cot_rc_link_footer` (для подключения в конце страницы). При этом по возможности надо использовать подключение в конце страницы, т.к.это в некоторой степени ускоряет загрузку значимой части страницы.       вариант 2 (если сайт не использует консолидацию) — то действуем аналогично п. б).
    Если в плагине используется иная логика (и она не обусловлена функционалом плагина), то возможно причина просто в незнании плагинописателем внутренней «кухни» Siena для работы с подключаемыми файлами и(или) наследием Genoa/Seditio.  

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Roffun
#7 06.10.2014 20:48

Конечная цель - быстрый сайт, для этого нужно иметь возможность переопределить порядок загрузки стилей и скриптов.

А в нашем случае получается что нужно выбирать , или все в куче но через rc.php  или отдельно с возможностями применения условных операторов, но уже без rc.

Без использования дополнительных плагинов, в ****.rc.php можно манипулировать только $e   $usr  и $_SERVER  фактически.

Не каждый сможет делать соответствующие правки, а хотелось бы иметь возможность по дефолту это делать.

 

Добавлено 3 минуты спустя:

=================================

В общем по данной теме остался один вопрос:

Есть ли возможность применять условные операторы в файлах rc.php ? 

интересует $c  $env  в принципе, остальное нашел

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Alex300
#8 07.10.2014 06:28

rc.php не предусматривает хуков, и соответсвенно условий. Это видно из его кода.

На самом деле порядок загрузки рессурсов в пределах хедера или футера на скорость загрузки страницы никак не скажется. Хотите Вы этого или нет а  браузер при первом обращении все равно их запросит у сервера. Мало того, каждый файл - это отдельный запрос и ответ от сервера. Так что даже не парьтесь. Кроме того, браузер закеширует Ваши скрипты и при повторном обращении качать их сервера не станет, что только улучшит производительность.

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

cot_rc_link_file($path, TRUE)

Немного повтрюсь и постараюсь обощить: для добавления скриптов и стилей предусмотрено 3 функции (это не считая того, что Вы сами можете в своих темах что хотите ))) ).

cot_rc_add_file($path, $scope = 'global', $order = 50); 

Следует использовать для подключения файлов, которые должны загружаться всегда. Если включено кеширование и консолидация, то все файлы собираются в один минифицированный файл и разом отдаются в браузер.

Как видим - третий параметр влияет на порядок загрузки.

cot_rc_link_file($path, $prepend = false);
cot_rc_link_footer($path);

Служат для добавления JS/CSS файлов в хедер и футер без консолидации. Следует использовать для рессурсов, которые подключаются в зависимости от страницы, т.е. не везде.

Скрипты, которые отрабатывают исключительно по document.ready - стоит грузить в футер.

Правильность выбора порядка подключения файлов лежит на плагинописателе или авторе темы.

А вот если же в Вашей теме нужно подлючить что-то каким-то способом, который не предусмотрен системой, добавляйте код непосредственно в хедер или футер. Хотя большинство задач можно решить и без этого. Мне, к примеру, ни разу не пришлось так поступать долгое время.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Отредактировано: Alex300 (07.10.2014 06:39, 9 лет назад)
Sergey
#9 07.10.2014 07:07
#40057 Alex300:

На самом деле порядок загрузки рессурсов в пределах хедера или футера на скорость загрузки страницы никак не скажется. Хотите Вы этого или нет а  браузер при первом обращении все равно их запросит у сервера. Мало того, каждый файл - это отдельный запрос и ответ от сервера. Так что даже не парьтесь. Кроме того, браузер закеширует Ваши скрипты и при повторном обращении качать их сервера не станет, что только улучшит производительность.

...

Совершенно с вами согласен. Даже определенные тесты сайтов совершают две загрузки ресурса для определения действительного отзыва сайтов. Тут, на ветке о сайтах на котонти, идет обсуждение так называемых говоносайтов,   идет обсуждение без знания устройства современных браузеров и серверов. Только раз загрузить сайт, как все файлы css, скрипты уже в кэше браузера. Браузер сам заботится об обновлении этих файлов. Иногда, это пораждает самые настоящие проблемы: невозможно очистить такой кэш.Это происходит с файлами по умолчанию, например index.html.  Тот же порядок и на серверах. Просто время "жизни" может быть меньше. Никакого скачивания с диска не происходит, все кэшируется и моментально из памяти загружается. Поэтому, параметр, число занружаемых плагинов, выглядит в отрыве от реальности и, соврешенно, не может быть критерием качества сайта..

www.cotonti.mobi
Roffun
#10 07.10.2014 09:00
#40057 Alex300:

rc.php не предусматривает хуков, и соответсвенно условий. Это видно из его кода.

Согласен, поэтому и решил задать вопрос разработчикам, так как не нашел внутри возможности вызова нужных переменных.

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

cot_rc_link_file($path, TRUE)

Немного повтрюсь и постараюсь обощить: для добавления скриптов и стилей предусмотрено 3 функции (это не считая того, что Вы сами можете в своих темах что хотите ))) ).

cot_rc_add_file($path, $scope = 'global', $order = 50); 

Следует использовать для подключения файлов, которые должны загружаться всегда. Если включено кеширование и консолидация, то все файлы собираются в один минифицированный файл и разом отдаются в браузер.

Как видим - третий параметр влияет на порядок загрузки.

cot_rc_link_file($path, $prepend = false);
cot_rc_link_footer($path);

Служат для добавления JS/CSS файлов в хедер и футер без консолидации. Следует использовать для рессурсов, которые подключаются в зависимости от страницы, т.е. не везде. 

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

cot_rc_add_file($path, $scope = 'global', $order = 50);

Я не знал что можно в эту функцию добавлять параметры, использовал только $path.

Как раз интересовал вопрос с точки зрения написания плагина.

Еще раз благодарен всем ответившим в этой теме, почерпнул для себя много полезной информации.

 

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts