Техническая поддержка сервиса Quadro.Boards

Объявление

Новости сервиса

О форуме

Quadro.Support – это форум технической поддержки различных проектов и сервисов Quadro.Systems LLC, на котором грамотные технические специалисты всегда смогут помочь вам в решении проблем, или же подсказать ответы на самые сложные вопросы. Так же на форуме собрана обширная база знаний по различным аспектам наших сервисов. Не забывайте пользоваться поиском ;)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Техническая поддержка сервиса Quadro.Boards » Скрипты и дополнения » Смена стиля кнопками. Deff


Смена стиля кнопками. Deff

Сообщений 21 страница 40 из 60

1

http://uploads.ru/t/j/a/X/jaXJ4.gif

В Начало HTML верх:

<script type="text/javascript">
var linkStyles='<link rel="stylesheet" type="text/css" href="';
function setcookie(a,b,c) {if(c){var d = new Date();d.setDate(d.getDate()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;}
function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;}
function clearSet(L){if(L){setcookie("changeStyle",L,30);$("link[rel='stylesheet']:first").replaceWith(linkStyles+L+'"/>')}};var Lmem=getcookie("changeStyle");clearSet(Lmem);
</script>

Сразу следом, - ставим наши кнопки:

<style>#changeStyle img{border:solid 2px transparent;}
.STYLselect {border-color:red!important;}
</style>
<div id="changeStyle" style="top:0; left: 3px; position:fixed!important;">
<img src="http://www.10pix.ru/img1/3444/5439522.jpg" alt="http://forum.mybb.ru/style/Mybb_Strange_Vision/Mybb_Strange_Vision.css"/>
<br>
<img src="http://www.10pix.ru/img1/3492/5439523.jpg" alt="http://forum.mybb.ru/style/Mybb_Space/Mybb_Space.css"/>
<br>
<img src="http://www.10pix.ru/img1/3492/5439523.jpg" alt="http://forum.mybb.ru/style/Mybb_Sloven/Mybb_Sloven.css"/>
<br>
</div>

<script>$("#changeStyle img[alt='"+Lmem+"']").addClass("STYLselect");$('#changeStyle img[alt]').click(function(){L=$(this).attr("alt");$('#changeStyle img[alt]').removeClass("STYLselect");$(this).addClass("STYLselect");clearSet(L)});</script>

Пояснения:
Красным - ссылки на картинки соответствующих кнопок
Коричневым жирным  - ссылки на файлы стиля для этой кнопки
Синим жирным - стиль кнопки после нажатия

-----------------------------
Дополнения:

Дополнительные Контейнеры для HTML контента,
подключаемые только к Определенному выбираемому Стилю

Иногда необходимо поставить к каждому стилю свою картинку в Объявлении(или вообще сменить объявлении или заменить скрипт( к примеру: скрипт установки "Cвоя Картинка к каждой категории", или убрать-поставить: сайдбар, или Инфопанель от Duka, или слайдер, либо обрамление чего-то в рамку )

Для начала делаем добавку красным в  скрипт, стоящий ниже кнопок (см. Ссылку Выше:
(проще заменить весь скрипт целиком отсюда)

<script>$("#changeStyle img[alt='"+Lmem+"']").addClass("STYLselect");$('#changeStyle img[alt]').click(function(){L=$(this).attr("alt");$('#changeStyle img[alt]').removeClass("STYLselect");$(this).addClass("STYLselect");clearSet(L);window.location=document.URL.replace(/#.\d+$/img,"");});</script>

А, в том же месте, где и стоял HTML-код для нужного дизайна(html и cкрипты, кроме сss) - просто обрамляем его в выделенное жирным,
Красным - жирным - ссылка на Стиль - к которому данный кусок Вашего кода будет подключаться
(контейнеров для каждого стиля может быть несколько.

<style alt="http://forum.mybb.ru/style/Mybb_Bend/Mybb_Bend.css" class=OnlyThisStyle>/*

Тут Обрамляемый Код (*cкрипты и HTML  для стиля по ссылке Красным,)

*/</style>
<script>var L=$("link[rel='stylesheet']:first").attr('href');var V=$("style.OnlyThisStyle[alt='"+L+"']");if(V.html()!=null){var V1=V.html().replace(/^\/\*([\s\S]*)\*\//img,"$1");V.replaceWith(V1);}</script>

Ps:Контейнер не позволяет вставлять код css. Дополнительные Коды css добавляем в  конец Первого Окна стиля(если используем его), либо в конец загружаемого файла данного Стиля.

Зы2: При комбинации с дополнительным css в переключаемых стилях, дефолтный стиль часто удобно прописывать в Первом Окне стиля чисто ссылкой на внешний, загружаемый файл этого Стиля, поскольку ссылка на данный файл не меняется, в отличии от ссылок на Окна стиля...

Т.е прописываем тогда единственный Оператор в первом Окне на странице Стиля:

/*************************************************************
A - SETUP
**************************************************************/

/* A0 Import default Style
-------------------------------------------------------------*/

/* A0.1 */
  @import url(Ccылка на файл Стиля по умолчанию);

-----------------------------

(Ссылки на файлы стиля можно брать со своего тестовика или заливать на хостинг, к примеру этот > http://www.nextmail.ru/

Для получения Ссылки на стиль Со Своего Тестовика:
Cтавите: Временно,на данном форуме  в HTML низ, самый низ Кнопку получения Стиля
(Кнопка будет в самом низу слево

<!--Кнопка получения Стиля-->
<script type="text/javascript">
var L2='',L='<p style="float:left;"><button id="lnkCss">Ccылка на сss</button></p>';
$(document).ready(function(){$("#pun-about .container").append(L);
$("#lnkCss").click(function (){L=$("link[rel='stylesheet']").attr("href");
L2=L.replace(/style\.(\d*)\.css$/i,"style_cs.$1.css");
if(L2==L){L2=L.replace(/\/([^\/]*)\.css$/i,"/$1_cs.css")};
alert("Ссылка на первое Окно стиля >\n\n"+L+"\n")
alert("Ссылка на Второе Окно стиля >\n\n"+L2+"\n");});});
</script>

При первом Клике - Получаете ссылку на Первое Окно стиля
При втором клике - Получаем Ссылку на Второе Окно стиля
При использовании стиля прямо с тестовика - первой ссылки достаточно для вставки в  одну кнопку скрипта смены стиля
---
Для Заливки же - Объединённого  файла Стиля на хостинг хранения (*и использования уже этой ссылки -залитого объединенного файла) необходимо удалить  целиком в Первом Окне пункт  /* A1.1 */

/* A1.1 */
@import url(Ла Ла Ла);

Второе Окно Стиля ставим в любом текстовом редакторе впереди первого и сохраняем объединенный стиль с расширением .css

Итоговый файл, с расширением  .css заливаем на хостинг хранения(см выше), ccылку вставляем в код соответствующей кнопки.

автор: Deff
ссылка на оригинал
демо: hostjs-mybb2011.narod.ru

Теги: Скрипты и дополнения, Главная страница,свой стиль,смена стиля

+1

21

Переключённый стиль не сохраняется при переходе на другую страницу форума, загружается "дефолтный".
Помогите, пожалуйста, разобраться, что не так и устранить проблему.

http://lordoftherings.f-rpg.ru/

0

22

aulennatar
Попробуйте поменять скрипт, ибо имя функции совпадает с сервисной:
СМЕНА дизайна(или стиля) кнопочками

http://savepic.org/2188755m.gif

Поглядеть Живьём >http://hostjs-mybb2011.narod.ru/ChangeStyle.htm

В Начало HTML верх:

Код:
<script type="text/javascript">
var linkStyles='<link rel="stylesheet" type="text/css" href="';
function setcOOkie(a,b,c) {if(c){var d = new Date();d.setDate(d.getDate()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;}
function getcOOkie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;}
function clearSet(L){if(L){setcOOkie("changeStyle",L,30);$("link[rel='stylesheet']:first").replaceWith(linkStyles+L+'"/>')}};var Lmem=getcOOkie("changeStyle");clearSet(Lmem);
</script>

Сразу следом, - ставим наши кнопки

<style>#changeStyle img{border:solid 2px transparent;}
.STYLselect {border-color:red!important;}
</style>
<div id="changeStyle" style="top:0; left: 3px; position:fixed!important;">
<img src="http://www.10pix.ru/img1/3444/5439522.jpg" alt="http://forum.mybb.ru/style/Mybb_Strange_Vision/Mybb_Strange_Vision.css"/>
<br>
<img src="http://www.10pix.ru/img1/3492/5439523.jpg" alt="http://forum.mybb.ru/style/Mybb_Space/Mybb_Space.css"/>
<br>
<img src="http://www.10pix.ru/img1/3492/5439523.jpg" alt="http://forum.mybb.ru/style/Mybb_Sloven/Mybb_Sloven.css"/>
<br>
</div>

<script>$("#changeStyle img[alt='"+Lmem+"']").addClass("STYLselect");$('#changeStyle img[alt]').click(function(){L=$(this).attr("alt");$('#changeStyle img[alt]').removeClass("STYLselect");$(this).addClass("STYLselect");clearSet(L)});</script>

Пояснения:
Красным - ссылки на картинки соответствующих кнопок
Коричневым жирным  - ссылки на файлы стиля для этой кнопки
Синим жирным - стиль кнопки после нажатия


Дополнения:


(Ссылки на файлы стиля можно брать со своего тестовика или заливать в Админке  22 октября 2011г.: Решение для хранения файлов скриптов и дизайна

Для получения Ссылки на стиль Со Своего Тестовика:
Cтавите: Временно,на данном форуме  в HTML низ, самый низ Кнопку получения Стиля
(Кнопка будет в самом низу слево

Код:
<!--Кнопка получения Стиля-->
<script type="text/javascript">
var L2='',L='<p style="float:left;"><button id="lnkCss">Ccылка на сss</button></p>';
$(document).ready(function(){$("#pun-about .container").append(L);
$("#lnkCss").click(function (){L=$("link[rel='stylesheet']").attr("href");
L2=L.replace(/style\.(\d*)\.css$/i,"style_cs.$1.css");
if(L2==L){L2=L.replace(/\/([^\/]*)\.css$/i,"/$1_cs.css")};
alert("Ссылка на первое Окно стиля >\n\n"+L+"\n")
alert("Ссылка на Второе Окно стиля >\n\n"+L2+"\n");});});
</script>

При первом Клике - Получаете ссылку на Первое Окно стиля
При втором клике - Получаем Ссылку на Второе Окно стиля
При использовании стиля прямо с тестовика - первой ссылки достаточно для вставки в  одну кнопку скрипта смены стиля
----------
Для Заливки же - Объединённого  файла Стиля в админке (*и использования уже этой ссылки -залитого объединенного файла) необходимо удалить целиком в Первом Окне пункт  /* A1.1 */

/* A1.1 */
@import url(Ла Ла Ла);

Второе Окно Стиля ставим в любом текстовом редакторе впереди первого и сохраняем объединенный стиль с расширением .css

Итоговый файл, с расширением  .css заливаем в админке(см выше), ccылку вставляем в код соответствующей кнопки

Отредактировано Deff (15.01.2015 23:05:53)

+1

23

Deff
Спасибо большое! Всё заработало как надо.

0

24

доброго времени суток,

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

0

25

таис афинская
Проблема не у вас, так на всех форумах со сменой дизайна. Вот форум человека, который отписался выше вас: http://fivearmies.ru/
Та же ситуация. Таков скрипт.

0

26

summer
и возможности обойти или исправить это попросту не существует, верно я вас понимаю?

0

27

summer написал(а):

Проблема не у вас, так на всех форумах со сменой дизайна. Вот форум человека, который отписался выше вас: http://fivearmies.ru/Та же ситуация. Таков скрипт.

Проблема не в скрипте, а в долгозагрузке скриптов от QuadroSystems распоженных между линком на собственный дефолтный стиль форума и скриптом смены стиля
На форумах без таких партнёрских скриптов такого эффекта нет.
Ну в качестве костыля, можно поставить некую начальную фоновую картинку или цвет на HTML {} через тег <style> в начало HTML верх:
Минусы - оно будет идентичным началом на любом подключенном стиле.
============================
Ну или пользоваться партнёрками или центральным сервисом без скриптов от русфф
============================
Собственно более полутора лет несколько раз рекомендовал Duke для ускорения загрузки и выкидывания сервисов для отдачи статического контента скриптов
1. Закешировать сервис скрипты партнёрки через localStorage клиента
2. Продвинуть задачу Админу сервиса: Установить вызов скриптов  для любых парнёрок вызовом единой функции сразу после #pun-main
Такого плана:
<script>FORUM.PartnerScript()</script>
Изначально функция пуста и прописана в переменных в хидере:
FORUM.PartnerScript = function(){}
При нужде, переопределяется партнёром
Подобные решения позволили бы и мгновенную загрузку контента скриптов от партнёрки и их исполнение ранее скриптов пользователя в HTML низ ( К примеру меню награды и уведомление возникали бы ранее скриптов замены их на картинки ну и другие нюансы конфликтов с юзер-скриптами)

Отредактировано Deff (05.11.2015 05:14:09)

0

28

Deff
Тот же самый эффект здесь http://hostjs-mybb2011.narod.ru/ChangeStyle.htm и на любых других форумах. Невозможно приделать вместо ног костыли и заставить бегать на олимпийских играх в надежде выиграть.
И дело даже близко не лежало возле скриптов сервиса, которые в случае, если сервер со статикой отвечает нормально, грузятся асинхронно.

Ну или пользоваться партнёрками или центральным сервисом без скриптов от русфф

Надо создать идеальный сервис для скриптов Deff'a. Очевидно, что скрипты первичны, по отношению к остальному функционалу.

+1

29

sadhaka написал(а):

Тот же самый эффект здесь http://hostjs-mybb2011.narod.ru/ChangeStyle.htm и на любых других форумах

Уверяю тебя, что на чистом форуме(к примеру на центральном сервисе) нет подобного,
В указанной демке эффект из-за установленных скриптов рекламы в начале body, до HTML верх. Ранее, до переноса сайтов яндекс народ на укоз, переключение в демке - мгновенное
Протестируй на чистом форуме .mybb.ru
Скрипт создавался именно из задачи мгновенного(невидимого) переключения стиля, ибо уже был ранее скрипт от rps переключения стиля с данной проблемой. И именно она и исправлялась данным скриптом.

"Эффект" на русфф именно из-за того, что до строк смены cтиля в HTML верх стоит задержка от загрузки скриптов партнёрки
У меня Подгрузка скриптов от сервиса(до кодов в HTML верх) на текущем форуме ТП занимает 0,480 cекунды. Именно из-за этого и мелькание
Имея бы уже подгруженный развернуый контент скриптов в localStorage(Даже без пункта 2 в моём сообщении) и запуске, как и сейчас через $(document).ready(function(){, - эффекта бы не наблюдалось
====================================
Простейший выход, подгружать скрипты партнёрки ассинхронно(через $.getScript("Ссылка") ) ибо один фиг их запуск по $(document).ready(function(){
Тогда и замедленный отпуск статики от русфф меньше влиял бы на скорость подгрузки форумов(недавняя проблема)

Отредактировано Deff (05.11.2015 16:58:43)

0

30

sadhaka написал(а):

Надо создать идеальный сервис для скриптов Deff'a. Очевидно, что скрипты первичны, по отношению к остальному функционалу.

Ну 80% скриптов от Deff'a. Не думаю что Ваши функции по важности превышают 10-20% в общих востребованных кодах.(Да и зачастую они заменяются скриптами аналогами, зачастую более удобными(ибо фичи партнёрки постепенно устаревают)). Пока  уникальность сервиса  в Уведомлениях...
 
Пора создавать функционал с неощутимым(или отключаемым) воздействием на любые прибамбасы пользователя ибо такие возможности и ресурсы есть у партнёрки. Ибо хватает проблем и от центрального сервиса. Дабы вероятность проблем не суммировалась.
Ибо с увеличением проблем от подобного функционала народ уходит с форумов. По крайне мере с теми же недавними проблемами зависания при загрузке скриптов партнёрки я лично видел пару форумов ушедших на 2х2 (видно было, что это была последняя капля в терпении)

Отредактировано Deff (05.11.2015 16:03:33)

0

31

Deff написал(а):

Уверяю тебя, что на чистом форуме(к примеру на центральном сервисе) нет подобного,

http://danu.mybb.ru/
Только что создал, поставил только скрипт смены имиджа из первого сообщения этой темы. Есть этот эффект, не надо ляля.

0

32

summer
У меня эффекта - нет, возможно Вы тестировали когда был сегодня сбой отдачи кодов с  http://st0.bbcorp.ru/ (скрипты и стили в хидере)
Имеется ввиду эффект при загрузке страницы с уже выбранным стилем (в момент переключения стиля подобный эффект есть и убрать его невозможно, но действия редко-однократные)

Отредактировано Deff (05.11.2015 22:49:56)

0

33

Deff
Речь всё время шла про этот эффект, при переключении. Он есть независимо оттого, на какой площадке форум.

0

34

summer
Если про момент загрузки страницы, то в данный момент у меня его нет, он возможен при

Deff написал(а):

сбой отдачи кодов с  http://st0.bbcorp.ru/

Попробуйте через анонимайзер => http://on2da.mjrgg33soaxhe5i.cmle.ru/
Время сейчас для тестирования - демонстрации - неважное (ибо есть тормоза с сервиса)

0

35

Deff
Я сейчас тестирую и у меня исчезают стили на мгновенье при переключении. Это никак не связано со сбоем, это особенности работы скрипта.

0

36

summer
При переключениях скрипта я не заморачивался, ибо действие - однократное
Упор на загрузку или переходу по страницам с уже выбранным стилем
(Ксать стоит поправить линки на кнопки переключения, чтобы не подторможивали, хотя картинки грузятся ассинхронно)

Отредактировано Deff (05.11.2015 23:06:55)

0

37

Deff
Ну так пользователь спрашивал именно про этот момент, о нём мы и говорили.

0

38

summer
Ну ждём юзера, разрешить ситуёвину (ибо эффект есть при загрузке переходе по страницам именно из-за долгозагрузки скриптов от русфф)

таис афинская написал(а):

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

Отредактировано Deff (05.11.2015 23:27:27)

0

39

Deff
Опять что-ли? Я ведь показал, что такой эффект наблюдает и на голом майббовском форуме. Не решить эту проблему, если вы не собираетесь переписывать скрипт

0

40

summer
У меня, при переходе по страницам, с уже выбранном стилем ничего не мелькает, с вашего линка для теста
Если у Вас мелькает, возможно неудачное время для теста (ибо сейчас отдача страницы центральным сервисом подтормаживает, если еще задержку вносит провайдер будет еще хуже)
У меня нет никаких проблем при переходе ао страницам http://danu.mybb.ru/ с уже выбранным стилем!

0


Вы здесь » Техническая поддержка сервиса Quadro.Boards » Скрипты и дополнения » Смена стиля кнопками. Deff


Рейтинг форумов | Создать форум бесплатно