форум vBSupport.ru > vBulletin > vBulletin 4.0.x-4.1.х > Внешний вид 4.0.x-4.1.х
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
Hitsi
Специалист
 
Hitsi's Avatar
Default Руководство по редактированию шаблонов
32

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

Написано для версии 4.0 и выше
Для понимания всего написаного нужны хотябы основные знания html

1) как найти нужный шаблон, чтобы его исправить

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

Решение:
Для начала нам надо определить где вообще это все находится. Открывам любую тему в браузере и заглядываем в код (все браузеры имеют опцию просмотра исходного кода страницы). Далее ищем в html названия кнопок "отправить сообщение" и "расширенный режим". Первое у нас попадается часто, а вот второе только в одном месте.

Code:
<div class="blockfoot actionbuttons">
        <div class="group">
            <input type="submit" class="button" value="Отправить сообщение" accesskey="s" title="(Alt + S)" name="sbutton" tabindex="1" id="qr_submit" onclick="clickedelm = this.value" />
            <input type="submit" class="button" value="Расширенный режим" accesskey="x" title="(Alt + X)" name="preview" tabindex="1" id="qr_preview" onclick="clickedelm = this.value" />
            <input type="reset" id="qr_cancelbutton" class="button" style="display:none;" value="Отмена" accesskey="c" title="(Alt + C)" name="cancel" tabindex="4" onclick="qr_reset();" />
        </div>
    </div>
Находим "предложение" которое для этого места может быть уникальным

Code:
name="sbutton" tabindex="1" id="qr_submit"
И производим поиск в шаблонах. В результате мы находим один (если повезет) или несколько шаблонов где это встречается. Из котоых выбираем нужный нам. Круг можно сузить сделав несколько разных запросов и сравнив полученные списки шаблонов.

Вариант второй это поиск по фразе. Заходим в Языки и фразы - поиск во фразах и ищем там "Расширенный режим". Так узнаем какой перемнной принадлежит данная фраза. В нашем случае это "go_advanced". Ищем в шаблонах "{vb:rawphrase go_advanced" и получаем список шаблонов который можно сократить сделав другие запросы.

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

Code:
<div class="blockfoot actionbuttons">
на
Code:
<div class="blockfoot" style="text-align:center">
2) принцип построения шаблонов
В 4-ой версии все сделали на div отказавшись от таблиц, я попытаюсь описать основные моменты и отличия данного типа верстки. Дизайнер из меня никудышный, так что как получится
Во первых после тегов <div> и <hr> по умолчанию идет перевод строки и поэтому в таблице стилей для всех этих тегов прописано float:left. В этом случае следующий див или другой элемент или текст будут обтекать этот блок справа. Если вам необходимо всеже перевести строку, то используйте <div class="clear"></div>
Ширина в процентном соотношении учитывается от "родительского блока" (от вышестоящего)
Например
Code:
<div style="width:100px;background-color:#CCCCCC;height:100px;float:left">
    <div style="width:10%;background-color:#777777;height:50px">text</div>
</div>
второй блок будет в ширину 10px, и текст не будет увеличивать блок, он будет поверх него. Если мы укажем ширину больше чем у родительского, то это не увеличит родительский блок, а просто наложит поверх него.
Следующий блок будет накладываться поверх имеющихся, если в "иерархии" он стоит выше
Code:
<div style="width:100px;background-color:#CCCCCC;height:100px;float:left">
    <div style="width:200px;background-color:#777777;height:50px">text</div>
</div>
<div style="width:100px;background-color:#555500;height:100px;float:left">
    text1
</div>
3) Синтаксис шаблонов
Переменные {vb:raw название}
Пример {vb:raw text}

Фразы {vb:rawphrase фраза, ключ1, ключ2}
ключи передавать не обязательно, во фразах это {1}, {2}
Пример
фраза klass="Классный движок {1}"
В шаблоне: {vb:rawphrase klass,'vBulletin'}

Массив {vb:raw массив.элемент} или {vb:raw массив[элемент]} (лучше первый вариант)
Пример {vb:raw post.postid}

Организация цикла
Code:
<vb:each from="массив" key="ключ" value="значение">
</vb:each>
ключ необязателен. Пример:
Фразы:
Code:
Title="Заголовок: <a href='{1}' target='_blank'>{2}</a><br>"
Date="Дата: {1}<br>"
Description="Текст: {1}<br>"
Шаблон:
Code:
<vb:each from="rss" key="rssid" value="rss_value">
{vb:rawphrase Title,{vb:raw rss_value.link},{vb:raw rss_value.title}}
{vb:rawphrase Date,{vb:raw rss_value.date}}
{vb:rawphrase Description,{vb:raw rss_value.description}}
</vb:each>
Условия
Code:
<vb:if condition="условие">
<vb:elseif condition="второе условие" />
<vb:else />
</vb:if>
В условии переменные имеют вид как в php скрипте, т.е. $post[postid], в условии можно пользоваться функциями пхп:in_array, is_array, is_numeric, isset, empty, defined, array
И функциями описанными в движке
boolean is_browser (string $browser, [float $version = 0]) проверяет браузер пользователя
string exec_switch_bg ([integer $alternate = 0]) возвращает имя класса CSS

Пример
Code:
<vb:if condition="!is_browser('ie',6) and is_array($post)">
у нас не IE6 и переменная $post - массив
<vb:elseif condition="!is_browser('ie',6)" />
У нас всеравно не IE
<vb:else />
Блин, у меня не браузер а ослик
</vb:if>
Основные "переменные"
stylevar - содержит массив переменных стиля (список можно посмотреть в таблице stylevar БД)
Может вызываться как {vb:stylevar переменная} или $stylevar[переменная] (последнее в усливях)

vboptions - массив опций форума (список можно посмотреть в таблице settings БД)
Может вызываться как {vb:raw vboptions.опция} или $vboptions[опция] (последнее в усливях)

bbuserinfo - массив с данными о пользователе который смотрит страницу

Генерация ссылок
{vb:link forum, аргумент1, аргумент2, аргумент3, аргумент4} - создает ссылку на страницы форума forumdisplay.php
аргумент1 должен содержать массив в котором есть поля forumid и title
аргумент2 содержит массив из опций передаваемых странице (его можно не указывать или написать null) такие как sort, order
аргумент3 указывает какое поле использовать вместо forumid (не обязателен)
аргумент4 указывает какое поле использовать вместо title (не обязателен)

{vb:link thread, аргумент1, аргумент2, аргумент3, аргумент4} - создает ссылку на страницы форума showthread.php
аргумент1 должен содержать массив в котором есть поля threadid и title
аргумент2 содержит массив из опций передаваемых странице (его можно не указывать или написать null) такие как p, viewfull
аргумент3 указывает какое поле использовать вместо threadid (не обязателен)
аргумент4 указывает какое поле использовать вместо title (не обязателен)

{vb:link member, аргумент1, аргумент2, аргумент3, аргумент4} - создает ссылку на страницe форума member.php
аргумент1 должен содержать массив в котором есть поля username и userid
аргумент2 содержит массив из опций передаваемых странице (его можно не указывать или написать null)
аргумент3 указывает какое поле использовать вместо userid (не обязателен)
аргумент4 указывает какое поле использовать вместо username (не обязателен)

Шаблон в шаблоне подгружается как переменная
Пример {vb:raw headinclude} - подгрузит шаблон headinclude, но если только эта переменная передавалась конкретно этому шаблону

4) переменные и шаблоны в php скриптах

$templater = vB_Template::create('polloption'); - создаем "запрос" к шаблону
$templater->register('option', $option); - регистрируем для этого шаблона переменную names и передаем ей значение
$pollbits = $templater->render(); обрабатываем шаблон
Если надо добавить свою переменную, то находим нужный пхп файл, находим в нем место где формируется нужный шаблон и добавляем туда строчку с регистрацией нужной переменной.
Тут думаю для тех кто знает php понятно что к чему, а кто не знает, то им в общем-то и не надо )

Last edited by Hitsi : 06-12-2010 at 03:55 PM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
ser
Продвинутый
Default
0

Не понял как скрыть текст или переменную для определенной группы
 
 
Hitsi
Специалист
 
Hitsi's Avatar
Default
1

скрываем текст для 6 группы
Code:
<vb:if condition="$bbuserinfo[usergroupid]!=6">текст</vb:if>
ЗЫ: переменная $bbuserinfo хранит информацию о пользователе который смотри страницу... сейчас добавлю в первый пост )
 
 
TSka
Простоузер
Default
0

Quote:
Originally Posted by Hitsi View Post
$templater = vB_Template::create('polloption'); - создаем "запрос" к шаблону
$templater->register('option', $option); - регистрируем для этого шаблона переменную names и передаем ей значение
$pollbits = $templater->render(); обрабатываем шаблон
Если надо добавить свою переменную, то находим нужный пхп файл, находим в нем место где формируется нужный шаблон и добавляем туда строчку с регистрацией нужной переменной.
А не подскажете, как добавить переменную в шаблон в 3.8.x ветке?

Upd:разобрался сам. Оказалось, что просто переменная пустая передавалась.

Last edited by TSka : 09-27-2010 at 05:39 PM.
 
 
a_n_d_y
Знаток
 
a_n_d_y's Avatar
Default
0

TSka, а не судьба в соответствующей ветке об этом узнать? 3.8.х уже по мельчайшим частям разобрали...
 
 
dmnangel
Простоузер
Default
0

У меня два вопроса:
1) Допустим я создаю отдельную html странцу, как мне подцепить базу что бы моя страница понимала данные перемены булки
2) Как мне написать условия что бы различный текст отображался в различных разделах С подразделами.
Пример: Я хочу отображать определенную инфу для определенных разделов (включая подразделы, если они еть) в шаблоне postbit_l


PS если вопрос не актуален в этой теме, прошу переместить куда следует :( Но тут меня интересуют именно переменные для условия
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 01:16 PM.


Powered by vBulletin® Version 3.0.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.