• Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Yuri_G  
Сообщество uCoz » Мастерская uCoz » Дизайн: управление шаблонами » Повтор кода одной строкой
Повтор кода одной строкой
Alex_Spacon
Сообщений: 26
Репутация: 19

Сообщение # 1 | 07:34:11
Простите, не знаю как сформулировать вопрос, ибо в терминологии путаюсь. Попытаюсь своими словами.
делаю на нескольких страницах код со случайным показом картинок из каталога. Всё работает.

Код
<!-- <Случайная картинка из каталога> -->
<div align="center">
<table border="1">
<tr>
       <td>
       <Script Language="JavaScript">
       var imagesarr = new Array(
        "http://st-78.ru/ForSite/RndIMG/1.jpg",
        "http://st-78.ru/ForSite/RndIMG/2.jpg",
        "http://st-78.ru/ForSite/RndIMG/3.jpg",
        "http://st-78.ru/ForSite/RndIMG/4.jpg",
        "http://st-78.ru/ForSite/RndIMG/5.jpg");
</Script>
</head>
<Body>
<Script Language="JavaScript">
  var los = Math.floor(Math.random() * imagesarr.length)
  document.write ("<Img Src='"+imagesarr[los]+"'>");
</Script>
</td></tr></table></div>
<!-- </Случайная картинка из каталога> -->

Но этот код надо разместить в нескольких шаблонах. Поэтому редактировать его надо так же по всем шаблонам.
А нельзя ли сделать так, что этот код в одном месте, а в нужных местах только ссылка на него или оператор какой-то? Не знаю как обозвать. Но что бы редактировать его один раз, а он автоматом раскинулся куда надо?
Да еще, в коде можно отключить таблицу и прикрутить к картинке Border=1?

Виталий98
Сообщений: 142
Репутация: 10

Сообщение # 2 | 09:30:03
Alex_Spacon, если я Вас правильно понял, то код в разных шаблонах будет идентичным. В таком случае можно создать глобальный блок: Панель управления -> Управление дизайном -> Глобальные блоки (справа сверху) -> Добавит блок. Задаёте ему название, после чего вставляете в него нужный код. А во всех шаблонах, где нужен этот код, вставляете код глобального блока: $GLOBAL_Ваше_название$.
Alex_Spacon
Сообщений: 26
Репутация: 19

Сообщение # 3 | 10:52:09
Всё получилось! Большое человеческое спасибо. Оказывается всё так просто!
Только один маленький гадский червячок точит. Почему-то на всех страницах всё отображается, а если этот же блок ставлю на главную, ТИШИНА! Млжет в настройках где-то?

Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 4 | 10:58:32
Alex_Spacon, как именно вставляете? В каком месте?
И ссылку на сайт, пожалуйста.

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
Alex_Spacon
Сообщений: 26
Репутация: 19

Сообщение # 5 | 11:13:08
Глобальный блок $GLOBAL_RNDIMAGE$

Код
<!-- <Случайная картинка из каталога> -->
<hr>
<div align="center">

<table border="1">
  <tr>
  <td>
  <Script Language="JavaScript">
  var imagesarr = new Array(
  "http://st-78.ru/ForSite/RndIMG/1.jpg",
  "http://st-78.ru/ForSite/RndIMG/2.jpg",
  "http://st-78.ru/ForSite/RndIMG/3.jpg",
  "http://st-78.ru/ForSite/RndIMG/4.jpg",
  "http://st-78.ru/ForSite/RndIMG/5.jpg",
  "http://st-78.ru/ForSite/RndIMG/6.jpg",
  "http://st-78.ru/ForSite/RndIMG/7.jpg",
  "http://st-78.ru/ForSite/RndIMG/8.jpg");
</Script>
</head>
<Body>
<Script Language="JavaScript">
  var los = Math.floor(Math.random() * imagesarr.length)
  document.write ("<Img Src='"+imagesarr[los]+"'>");
</Script>
  </td>
  </tr>
</table>

  </div>

<!-- </Случайная картинка из каталога> -->


Потом просто в нужное место вставляю $GLOBAL_RNDIMAGE$
Сайт http://st-78.ru/

Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 6 | 11:31:54
Во-первых уберите из кода
Код
</head>
<Body>

и </div>, который в конце

Вы заходите в управление шаблоном "Страницы сайта" и в шаблоне вставляете глобальный блок?

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
Alex_Spacon
Сообщений: 26
Репутация: 19

Сообщение # 7 | 11:38:39
</head> и <Body> убрал, </div> который в конце надо тогда убирать с открытым Дивом в начале, иначе разваливается страница. Убрал.
Глобальный блок в читальном зале да, так вставляю, через управление шаблонами, а первая страница редактируется прямо с сайта, не через шаблоны.

Получил:

Код
<!-- <Случайная картинка из каталога> -->
<hr>
<table border="1">
  <tr>
  <td>
  <Script Language="JavaScript">
  var imagesarr = new Array(
  "http://st-78.ru/ForSite/RndIMG/1.jpg",
  "http://st-78.ru/ForSite/RndIMG/2.jpg",
  "http://st-78.ru/ForSite/RndIMG/3.jpg",
  "http://st-78.ru/ForSite/RndIMG/4.jpg",
  "http://st-78.ru/ForSite/RndIMG/5.jpg",
  "http://st-78.ru/ForSite/RndIMG/6.jpg",
  "http://st-78.ru/ForSite/RndIMG/7.jpg",
  "http://st-78.ru/ForSite/RndIMG/8.jpg");
</Script>
<Script Language="JavaScript">
  var los = Math.floor(Math.random() * imagesarr.length)
  document.write ("<Img Src='"+imagesarr[los]+"'>");
</Script>
  </td>
  </tr>
</table>
<!-- </Случайная картинка из каталога> -->

Сообщение отредактировал Alex_Spacon - Пятница, 20 Мар 2015, 11:39:43
Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 8 | 11:45:17
Цитата Alex_Spacon ()
</div> который в конце надо тогда убирать с открытым Дивом в начале, иначе разваливается страница. Убрал.

Я что-то пропустил что там есть открывающий, если этот центрирующий див вам нужен, то верните конечно.

Цитата Alex_Spacon ()
а первая страница редактируется прямо с сайта, не через шаблоны.

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

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
Alex_Spacon
Сообщений: 26
Репутация: 19

Сообщение # 9 | 11:57:05
Всё, с этим разобрался!!! Значит глобальный блок надо было запихивать в Управление дизайном » Редактирование шаблонов и там в Страницы сайта.
Тогда на всех страницах появится этот блок с картинками. Ага. Но не на библиотеке и прочих. а на страницах... Я говорю, что терминологию путаю. Ну как собака — понимаю, а сказать не могу ;-)
А теперь и на прайсе http://st-78.ru/index/0-2 картинки появились. Надо что-то под главную страничку персональное создать? Ну что бы на главной было, а на других нет...

Виталий98
Сообщений: 142
Репутация: 10

Сообщение # 10 | 12:03:10
Alex_Spacon, <?if($URI_ID$='page1')?>$GLOBAL_RNDIMAGE$ <?endif?> - в шаблон "Редактора страниц" вставить можно. С данным условием должен выставить на главную страницу. Должно получиться.
Alex_Spacon
Сообщений: 26
Репутация: 19

Сообщение # 11 | 12:09:42
Виталий98, ОНО САМОЕ ТО!!! ok С вашим вариантом только на первой страничке и появилось. А если развернуть тему? Дальше если что еще раз условие втюхать в этом же шаблоне, только PAGE смотреть по ссылке или как? Например для этой - http://st-78.ru/index/0-2

Виталий98
Сообщений: 142
Репутация: 10

Сообщение # 12 | 12:21:13
Alex_Spacon, смотрим значение в панели администратора на сайте: Констркутор -> Список переменных страницы. В данном случае я использовал системный код $URI_ID$ (первая строчка). Если нужно этот блок для двух страниц одного модуля ставить, можно отредактировать условие:
<?if($URI_ID$='page1' or $URI_ID$='page2')?>$GLOBAL_RNDIMAGE$ <?endif?>

Добавлено (20 Мар 2015, 12:21:13)
---------------------------------------------
В данном случае этот глобальный блок будет отображаться на главной странице и на странице с прайсом.

Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 13 | 12:21:38
Alex_Spacon, в правах вашей группы должна стоять галочка "Редактировать дизайн сайта".
Авторизируйтесь как администратор, в админ-баре вверху будет кнопочка "Дизайн", далее - Переменные страницы.
На каждой странице будут отображается свои переменные.

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 14 | 12:23:24
Цитата Виталий98 ()
Констркутор -> Список переменных страницы.

Да, всё верно. Либо Конструктор - Список переменных страницы, либо Дизайн - Список переменных страницы.

В зависимости от настроек.

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
Alex_Spacon
Сообщений: 26
Репутация: 19

Сообщение # 15 | 12:40:57
Вы правы, «Век живи - век учись!»
А почему код в таком виде не стал работать?Код<?if($URI_ID$='page1')?>$GLOBAL_RNDIMAGE$ <?endif?>
<?if($URI_ID$='page2')?>$GLOBAL_RNDIMAGE$ <?endif?>
Это разве не аналог:
Код<?if($URI_ID$='page1' or $URI_ID$='page2')?>$GLOBAL_RNDIMAGE$ <?endif?>
Эдак работает! СПАСИБЫ всем оптом и в розницу!!!
И... Вы обратили внимание, что я загнал картинку в рамку из таблицы. А как к этому участку кода:
Кодdocument.write ("<Img Src='"+imagesarr[los]+"'>");
Прикрутить рамку типа border="1"

Сообщество uCoz » Мастерская uCoz » Дизайн: управление шаблонами » Повтор кода одной строкой
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: