Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Модификация нескольких BBcode

Опубликовано:

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

 

а именно требуется:

тезменить тег Изображания чтобы он работал так же как в трекер движке.

привер:

[img=right] и [img=left]

и чтобы размер изображения размещенного на форуме через url тег изменялся а при нажатии на него увеличивался до оригинального размера.

 

тег spoiler внешним видом вот таким:

750a0eb01347.jpg

тег даного споилега выглядит следующим образом:

 [spoiler]
		 вот такой спойлер нужен
[spoiler="Название spoiler-a"]
		 вместо "скрытый текст" можно вписать свое название
[/spoiler]
[/spoiler]

 

одним можно ли сделать теги img и spoiler такие как на трекере?

 

за ранее спасибо!

Рекомендованные сообщения

Опубликовано:

Здраствуйте, форум Версия:IP.Board 3.2.3.

Суть проблемы, после ряда действий описаных выше у нас получилось следующее, кнопка осталась, пока на неё ненажмёшь там надпись spoiler_show, после последующих нажатий надпись меняется на undefined и так и остаётся.(смотрите прикреплённые рисунки)

Где мы допустили ошибку и как её исправить?

Заранее благодарен за ответ!

post-49919-0-37674900-1334418320_thumb.jpg

post-49919-0-36942400-1334418337_thumb.jpg

post-49919-0-99634500-1334418348_thumb.jpg

Опубликовано:

На второй странице, здесь же: http://ipbskins.ru/forum/topic5640.html/page__view__findpost__p__55234

 

И не факт, что при очередном обновлении опять что то править не понадобится. Лучше, имхо, ограничиться модификацией шаблона замены и css. http://ipbskins.ru/forum/topic9596.html/page__view__findpost__p__63429

Или, если этого недостаточно, сделать отдельный бб-код действительно.

Опубликовано:

На второй странице, здесь же: http://ipbskins.ru/forum/topic5640.html/page__view__findpost__p__55234

эти пункты тож были сделаны, только что опять уже наверное раз 10 перепроверил

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

post-49919-0-72226700-1334422713_thumb.jpg

Опубликовано:

Переменная вылезла по тому, видимо, что вы сделали её обязательной, но не присвоили значения по умолчанию. Нужно в настройках бб-кода "option обязательно?" поставить "нет". По второй части вопроса вам туда -> http://htmlbook.ru Справочники по html и css обязательно помогут.

Опубликовано:

Переменная вылезла по тому, видимо, что вы сделали её обязательной, но не присвоили значения по умолчанию. Нужно в настройках бб-кода "option обязательно?" поставить "нет". По второй части вопроса вам туда -> http://htmlbook.ru Справочники по html и css обязательно помогут.

переменная option, вылезла не случайно:) она кокраз то и нужна:)лишние только квадратик и +- и обрывок слова. Ели кто знает как исправить напишите пожалусто, со своей стороны я углублюсь тож в изучение HTML и CSS

Опубликовано:

Ritsuka

Пытаюсь тут еще немного доработать ваш спойлер, сделал такую конструкцию:

<div class='bbc_spoiler'>
   <input type='button' class='bbc_spoiler_show' value='Показать' /><span class='spoiler_title'>{option}</span>
   <div class='bbc_spoiler_wrapper'><div class='bbc_spoiler_content' style="display:none;">{content}<div class='bbc_spoiler_clear' align="center">Скрыть</div></div></div>
</div>

div.bbc_spoiler    {  background: #daa520 url({style_images_url}/ips_button.png) repeat-x; border: 1px solid #7b8da6; border-radius: 4px; margin: 10px 0; padding: 0;  }
div.bbc_spoiler span     {  color: #000; font-weight: bold;  text-align: left; width: auto; padding-left: 8px; }
div.bbc_spoiler_wrapper    {}
div.bbc_spoiler_content  {  border-top: 1px solid #7b8da6; background: #eee; padding: 5px; }
input.bbc_spoiler_show   {  cursor: pointer; background: #daa520 url({style_images_url}/ips_button.png) repeat-x; color: #900000; border: 2px solid #ffdead; border-style: outset; border-radius: 3px; font-size: 85%; width: auto; padding: 2px; }
.bbc_spoiler_show:hover   {   font-weight: bold; }
div.bbc_spoiler_clear {  cursor: pointer; color: #900000; font-size: 85%;  }
.bbc_spoiler_clear:hover   {  background: #ffebcd; font-weight: bold; }

В ipb.js, после "ipb.delegate.register('.bbc_spoiler_show', ipb.global.toggleSpoiler);" добавил:

ipb.delegate.register('.bbc_spoiler_clear', function(e, label){$(label).up().down('.bbc_spoiler_show').click()} );

Но чего то ему не хватает, не транслируется клик с bbc_spoiler_clear. Хотя с классом spoiler_title функция работает. Помогите разобраться, пожалуйсто.

Изменено пользователем Dmitriy427

Опубликовано:

В общем пока следующее выяснил - клик возвращает ошибку только если элемент bbc_spoiler_clear расположен внутри блока bbc_spoiler_content, что мне как раз и требуется. Текст ошибки:

Event thread: click
Uncaught exception: TypeError: Cannot convert '$(label).up().down('.bbc_spoiler_show')' to object
Error thrown at line 118, column 184 in <anonymous function>(value, index) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&g=js:
   throw $break;
called from line 110, column 388 in <anonymous function>(value) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&g=js:
   iterator.call(context,value,index++);
called from line 110, column 302 in each(iterator, context) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&g=js:
   this._each(function(value){iterator.call(context,value,index++);});
called from line 118, column 45 in detect(iterator, context) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&g=js:
   this.each(function(value,index){if(iterator.call(context,value,index)){result=value;throw $break;}});
called from line 41, column 32 in <anonymous function: initialize>(e) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&charset=utf-8&f=public/js/ipb.js,cache/lang_cache/1/ipb.lang.js,public/js/ips.hovercard.js,public/js/ips.quickpm.js,public/js/ips.sharelinks.js,public/js/ips.textEditor.js,public/js/ips.topic.js,public/js/ips.rating.js,public/js/ips.like.js:
   var target=ipb.delegate.store.find(function(item){elem=e.findElement(item['selector']);if(elem){handler=item;return true;}else{return false;}});
called via Function.prototype.call() from unknown location in <anonymous function: responder>(event) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&g=js:
   /* no source available */
Error initially occurred at line 208, column 638 in <anonymous function: initEvents>(e, label) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&charset=utf-8&f=public/js/ipb.js,cache/lang_cache/1/ipb.lang.js,public/js/ips.hovercard.js,public/js/ips.quickpm.js,public/js/ips.sharelinks.js,public/js/ips.textEditor.js,public/js/ips.topic.js,public/js/ips.rating.js,public/js/ips.like.js:
   $(label).up().down('.bbc_spoiler_show').click()
called from line 43, column 66 in <anonymous function: initialize>(e) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&charset=utf-8&f=public/js/ipb.js,cache/lang_cache/1/ipb.lang.js,public/js/ips.hovercard.js,public/js/ips.quickpm.js,public/js/ips.sharelinks.js,public/js/ips.textEditor.js,public/js/ips.topic.js,public/js/ips.rating.js,public/js/ips.like.js:
   handler['callback'](e,elem,handler['params']);
called via Function.prototype.call() from unknown location in <anonymous function: responder>(event) in http://test.emule-rus.net/public/min/index.php?ipbv=32006&g=js:
   /* no source available */

Может кто нибудь подсказать решение?

Изменено пользователем Dmitriy427

Опубликовано:

$(label).up().down('.bbc_spoiler_show')

на

$(label).up().up().down('.bbc_spoiler_show')

или на

$(label).up('.bbc_spoiler').down('.bbc_spoiler_show')

Опубликовано:

Да второй вариант работает, большое спасибо. Но тут же встал вопрос - как после клика передать фокус на элемент bbc_spoiler_show?

 

p.s. Разобрался самостоятельно. Еще раз спасибо, хорошая фича получилась. :)

Изменено пользователем Dmitriy427

  • 2 месяца спустя...
Опубликовано:

Как сделать тег code, что бы в нём отображались строчки как тут

1d708e6d93d3.png

 

P.S Если же код в одну строчку, то без нумирации. Нумерация должна начинаться, если в коде более одной строчки

Изменено пользователем Nicolayka

Опубликовано:

Добавить нумерацаю просто. Найти в ipb_common.css строку

pre.prettyprint  { padding: 5px; background: #FFF; border: 1px solid #7b8da6; overflow: auto; margin-left: 10px; font-size: 11px; line-height: 140%; }

Заменить на что то, вроде:

pre.prettyprint  { padding: 5px; background: #FFF; border: 1px solid #7b8da6; overflow: auto; margin-left: 10px; font-size: 11px; line-height: 140%; list-style-type: decimal; }

Вот с дифференцированным, в зависимости от количества строк, оформлением, без модификации скрипта не обойтись... Зачем оно вам?)

Изменено пользователем Dmitriy427

Опубликовано:

Нумерация не добавилась. Только текст ужался.

Опубликовано:

Угу. Ну нескольо сложнее все, чем мне думалось. Нужно prettify.js сурьёзно калечить похоже. Проще будет готовый скрипт, типа syntaxhighlighter, интегрировать и бб-коды переписать. http://test.emule-rus.net/index.php?showtopic=52011

Опубликовано:

хм. А поподробнее можно?

Опубликовано:
А поподробнее можно?
Можно.

 

- Качаете скрипт с офсайта.

 

- Зливаете содержимое архива на сервер, в /public/js/3rd_party/syntaxhighlighter/, допустим.

 

- В globalTemplate, перед тегом "</head>" добавляете:

<!-- ::: SyntaxHighlighter CSS and Scripts ::: -->
<link type="text/css" rel="stylesheet" href="{$this->settings['js_base_url']}js/3rd_party/syntaxhighlighter/styles/shCore.css" />
<link type="text/css" rel="stylesheet" href="{$this->settings['js_base_url']}js/3rd_party/syntaxhighlighter/styles/shThemeDefault.css" />
<script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/syntaxhighlighter/scripts/shBrushXml.js"></script>
<script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/syntaxhighlighter/scripts/shBrushSql.js"></script>
<script type="text/javascript">  
SyntaxHighlighter.all();  
</script>

Вместо shThemeDefault.css можно выбрать любой стиль из папки /public/js/3rd_party/syntaxhighlighter/styles/.

Вместо или дополнительно к shBrushXml.js и shBrushSql.js добавляете загрузку скриптов с нужным синтаксисом из папки /public/js/3rd_party/syntaxhighlighter/scripts/.

 

- В АЦ -> Внешний вид -> BB-коды открываете для редактирования "XML код". Отмечаете возле пункта меню "Удалить кеш всех n объектов?" чекбокс "Да". Шаблон замены BB-кода меняете на такой:

<pre class="brush: xml">
{content}
</pre>

Сохраняете изменения.

Аналогично редактируете HTML и SQL коды, изменяя class="brush: xml" на class="brush: html" и class="brush: sql" соответственно. Для подсветки синтаксиса других языков создаете бб-коды по тому же принципу.

Изменено пользователем Dmitriy427

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.