S

solitario84

чем больше узнаю,тем больше понимаю что ни фига не знаю..
+53
Репутация
26
Рейтинг
#1 Instantcms 2 фотогалерея. Улучшения. 17 января 2015 в 20:23
совсем уже запутался в архивах...)))
#2 Стена групп InstantCMS 2 13 января 2015 в 21:57
извиняюсь, пока не совсем работает, будем думать…
#3 Стена групп InstantCMS 2 13 января 2015 в 21:25
Незнаю насколько такое решение правильное, но у меня вроде работает
  1. <body onload="return icms.wall.replies(<?php echo $entry['id']; ?>)">
  2. <?php if ($entry['replies_count']){ ?>
  3. <a href="#wall-replies" class="get_replies"><?php echo html_spellcount($entry['replies_count'], LANG_REPLY_SPELLCOUNT); ?></a>
  4. <?php } ?>
  5. </body>
это код вставляем вместо
  1. <?php if ($entry['replies_count']){ ?>
  2. <a href="#wall-replies" class="get_replies" onclick="return icms.wall.replies(<?php echo $entry['id']; ?>)"><?php echo html_spellcount($entry['replies_count'], LANG_REPLY_SPELLCOUNT); ?></a>
  3. <?php } ?>
в файле \templates\default\controllers\wall\entry.tpl примерно 54 строка
#4 Звук при получении сообщения и/или уведомления в icms 2 10 декабря 2014 в 23:41


Есть небольшой апгрейд

PIN

это крутой апгрейд!.. Вы очень оперативны!.. спасибо огромное!.. правда не дал пока ладу фавиконка не выскакивает, может есть нюансы?
#5 Проблема.Альтернативный файл стилей 8 декабря 2014 в 22:20


Работает потому что в конструкторе конфига

  1.  
  2. public function __construct($cfg_file='config.php'){
  3. $this->data = $this->load($cfg_file);
  4. $this->set('cfg_time_zone', $this->data['time_zone']);
  5. if (isset($_SESSION['user']['time_zone'])){
  6. $this->data['time_zone'] = $_SESSION['user']['time_zone'];
  7. }
  8.  
  9. $this->set('root_path', ROOT . $this->root);
  10. $this->set('system_path', $this->root_path . 'system/');
  11. $this->set('upload_path', ROOT . $this->upload_root);
  12. $this->set('cache_path', ROOT . $this->cache_root);
  13.  
  14. }
Эта строка
  1. $this->set('root_path', ROOT . $this->root);
Будет устанавливать root_path из константы ROOT=$_SERVER['DOCUMENT_ROOT'], и ключа массива 'root' (файла config.php ) содержащего этот искомый слеш
  1. 'root' => '/',
В итоге при использовании перед template слеш ненужен, так как он уже определен в
  1. $this->path = $config->root_path
Тоесть root_path содержит путь к корневой директории сервера + слеш который определен в файле конфигурации.

Геннадий Иванович

о да!.. большое спасибо за доходчивое объяснение, я на секунды даже забыл что ни фига не понимаю в php и показалось что я что то понял… rofl
может вы подскажите правильным ли будет такое подключение
  1. <link rel="alternate stylesheet" href="/templates/default/css/black_style.css" media="screen" title="black" />
применимо к instantcms 2/// или нужно как то иначе...?
#6 Проблема.Альтернативный файл стилей 8 декабря 2014 в 00:51


а почему такое подключение работает без слеша?

А таким знатокам как мы с вами надо знать почему? laugh
Нам надо знать как лечить...
если правильно понимаю, то система формирует в этом случае абсолютный путь к файлу

Олег Васильевич я

вот… и я думаю что правильней было бы докапаться до этого "->addMainCSS", но без разработчиков здесь не обойтись по ходу… может отзовутся, немного подожду… а так в принципе, работает, вам спасибо!..
#7 Проблема.Альтернативный файл стилей 8 декабря 2014 в 00:26


при заходе в подкатегорию, стили слетают

если так подключаете:
то слеш перед templates добавьте

Олег Васильевич я
хм… все так просто… спасибо, работает… а почему
  1. <?php $this->addMainCSS("templates/{$this->name}/css/black.css"); ?>
такое подключение работает без слеша?
#8 Проблема.Альтернативный файл стилей 7 декабря 2014 в 23:23


Любой код добавленный в маин.тпл должен отображаться на всех страницах ( исключая страницы ошибок)

Atid — Gorec

теоретически… а на практике, я вижу совсем другое… кстати, работает не только на главной, но и во всех типах контента на коневой категории, при заходе в подкатегорию, стили слетают… например: статьи-стили есть, астрономия-стилей нет…
#9 Проблема.Альтернативный файл стилей 7 декабря 2014 в 21:56


solitario84, странно, а какая разница, как подключать? Тут проблем не должно быть. Может, что-то не так со скриптом, отвечающим за смену подключаемой каскадной таблицы? Можете код скрипта привести?

Вячеслав Леонов

  1. function setActiveStyleSheet(title) {
  2. var i, a, main;
  3. for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
  4. if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
  5. a.disabled = true;
  6. if(a.getAttribute("title") == title) a.disabled = false;
  7. }
  8. }
  9. }
  10.  
  11. function getActiveStyleSheet() {
  12. var i, a;
  13. for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
  14. if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  15. }
  16. return null;
  17. }
  18.  
  19. function getPreferredStyleSheet() {
  20. var i, a;
  21. for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
  22. if(a.getAttribute("rel").indexOf("style") != -1
  23. && a.getAttribute("rel").indexOf("alt") == -1
  24. && a.getAttribute("title")
  25. ) return a.getAttribute("title");
  26. }
  27. return null;
  28. }
  29.  
  30. function createCookie(name,value,days) {
  31. if (days) {
  32. var date = new Date();
  33. date.setTime(date.getTime()+(days*24*60*60*1000));
  34. var expires = "; expires="+date.toGMTString();
  35. }
  36. else expires = "";
  37. document.cookie = name+"="+value+expires+"; path=/";
  38. }
  39.  
  40. function readCookie(name) {
  41. var nameEQ = name + "=";
  42. var ca = document.cookie.split(';');
  43. for(var i=0;i < ca.length;i++) {
  44. var c = ca[i];
  45. while (c.charAt(0)==' ') c = c.substring(1,c.length);
  46. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  47. }
  48. return null;
  49. }
  50.  
  51. window.onload = function(e) {
  52. var cookie = readCookie("style");
  53. var title = cookie ? cookie : getPreferredStyleSheet();
  54. setActiveStyleSheet(title);
  55. }
  56.  
  57. window.onunload = function(e) {
  58. var title = getActiveStyleSheet();
  59. createCookie("style", title, 365);
  60. }
  61.  
  62. var cookie = readCookie("style");
  63. var title = cookie ? cookie : getPreferredStyleSheet();
  64. setActiveStyleSheet(title);
вроде все с ним в порядке, уже мозг кипит.не пойму в чем проблема.На главной он то отрабатывает
#10 Проблема.Альтернативный файл стилей 7 декабря 2014 в 21:13


addMainCSS не панацея, "alternate stylesheet" в API ICMS2 нет, прямая ссылка должна работать, если вы конечно все правильно в head положили. Проверьте ее наличие в загруженной странице через исходный текст, часто F12 помогает туда попасть.

PIN

  1. <link rel="alternate stylesheet" href="templates/default/css/black_style.css" media="screen" title="black" />
вот так я подключаю… как еще?
#11 Проблема.Альтернативный файл стилей 7 декабря 2014 в 20:35
->addMainCSS
, я так понимаю, и есть подключение определенного списка стилей и это надо где то подправить… не силен я в php… здесь вопрос наверное скорей к разработчикам
#12 Проблема.Альтернативный файл стилей 7 декабря 2014 в 20:30


solitario84, вопрос, уже опосля моего ответа ), понял, но подобной реализации не встречал.
и даже вставка в main.tpl.php не помогает?

PIN
  1. <link rel="
  2. alternate stylesheet
  3. " href="templates/default/css/black_style.css" media="screen" title="black" />
вставляю именно в main.tpl.php, и подключение работает только на главной, а чтобы оно работало везде, как я понимаю, нужно в
  1. <?php $this->addMainCSS("templates/{$this->name}/css/black.css"); ?>
каким то образом добавить "alternate stylesheet"
#13 Проблема.Альтернативный файл стилей 7 декабря 2014 в 19:52


вот например, первая ссылка в выдаче гугла zver-master.ru/building-of-sites/javascript/61-pereklyuchenie-mezhdu-css.html там все досконально описано

Вячеслав Леонов

при таком подключении вида
  1. <link rel="
    Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
    "
    href="templates/default/css/black_style.css" media="screen" title="black" />
оно работает только на главной странице сайта, нужно как то в
  1. <?php $this->addMainCSS("templates/{$this->name}/css/black.css"); ?>
добавить "alternate stylesheet"
#14 Проблема.Альтернативный файл стилей 7 декабря 2014 в 18:32
версия движка естественно 2.1.2, шаблон на основе default, нужно реализовать выбор цветовой схемы на сайте, а для этого нужно по клику на ссылку подключить альтернативный файл стилей.Подключение вида
  1. <?php $this->addMainCSS("templates/{$this->name}/css/black.css"); ?>
, базовое, а мне нужно альтернативное
#15 Проблема.Альтернативный файл стилей 7 декабря 2014 в 18:27
спасибо за попытки, может я неправильно ставлю вопрос… в моей проблеме ключевые слова "alternate stylesheet" вы понимаетие о чем я?
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.