форум vBSupport.ru > vBulletin > Вопрос — Ответ
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'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
Лео
В Черном списке
 
Лео's Avatar
Default [FAQ] vBulletin Продукты своими руками
8

Уважаемые Гуру и другие члены форума, хотелось бы понять как пишутся плагины (хаки, продукты). С подробным описанием если не сложно... что, как и почему...
Рассматривал на примере welcome_panel modified by kerk.
Вот что мне удалось сообразить:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
XML
encoding
Code:
<product productid="welcome_panel" title="Welcome Panel" description="modified by kerk." version="1.0.0" active="1">
product - говорит форуму что данный файл является продуктом
productid="название продуктана буржуйском" - Идентификатор продукта (системная необходимость)
title="название продукта" - в установленных продуктах отображается
/admincp/plugin.php?do=product

description="описание продукта" - в установленных продуктах отображается version="1.0.0" - версия продукта
active="1" - продукт активен (включен)

Лео добавил 05.07.2008 в 06:18
Code:
<url />
    <versioncheckurl />
    <dependencies>
    </dependencies>
    <codes>
    </codes>
Ничего не знаю... прошу разжевать.. я поправлю пост....

Code:
<templates>
        <template name="forumhome_welcomepanel" templatetype="template" date="1127431399" username="kerk" version="3.5.0 Gold"><![CDATA[<if condition="$bbuserinfo[userid]">      
   КОД ШАБЛОНА      
   </if>]]></template>
</templates>
<templates>смотрите ниже пример шаблона</templates> - "тег" отделяющий шаблоны от плагинов (об этом ниже) Изменяет шаблоны форума при импорте продукта.
<template>Код внутри шаблона</template> - тег шаблона
Применяются следующие параметры для тега <template>:
name="forumhome_welcomepanel" - имя шаблона
templatetype="template" - тип шаблона насколько я понял (хотелось бы уточнить на какие виды они делятся)
date="1127431399" - дата создания/редактирования шаблона (не понимаю, если не сложно расшифруйте как переводить в нормальный формат)
username="kerk" - Имя юзверя создавшего шаблон (при изменении редактируемого шаблона меняется на это *поседний раз редактировалось*)
version="3.5.0 Gold" - версия форума для которой написан шаблон (при импорте есть галочка *игнорировать версию форума*)
![CDATA - сокращение от character data что в переводе с английского обозначает «символьные данные.» Используется для разных, но связных между собой целей в языках разметки SGML и XML. CDATA показывает, что определённая часть документа представляет собой символьные данные, в отличие от несимвольных или символьных, но особым образом структурированных данных. подробнее...
<if condition="$bbuserinfo[userid]"></if> - if (если) condition (условие) $bbuserinfo[userid] (загадка для меня) - тег выполняющий условие
пример "if else"
пример шаблона

по поводу ниже приведенного тоже ничего сказать не могу
<plugins>
</plugins>
<phrases>
</phrases>
<options>
</options>
<helptopics>
</helptopics>
<cronentries>
</cronentries>
<faqentries>
</faqentries>

Пример шаблона zCarot]

Last edited by Лео : 07-05-2008 at 07:43 AM. Reason: Добавлено сообщение
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
kerk
k0t
 
kerk's Avatar
Default
6

не по порядку, а по мере составления ответа на вопрос:
вопрос:
Quote:
Originally Posted by Лео View Post
как пишутся плагины (хаки, продукты)
я уже где то описывал очень подробно, но нужно поискать, давно было...
ответ:
1. в менеджере продуктов добавить новый продукт
2. там в полях прописать переменную (идентификатор продукта), описание, ссылку на тему продукта (если есть) и т.д.... добавить...
3. создаешь новую группу настроек в основных настройках (если в хаке используются свои настройки), произвольная переменная, но лучше делать, что бы было все на своих местах, открой любой один из недавних моих продуктов (не переделку), там везде стоит префикс - "kr_" + "product_id" + "free_var"
4. когда добавляешь новую настройку к хаку, то указываешь идентификатор продукта (хак)
5. когда добавляешь новый шаблон (если в хаке используются шаблоны), то указываешь идентификатор продукта (хак)
6. когда добавляешь новый плагин (если в хаке используются плагины), то указываешь идентификатор продукта (хак), указываешь хук (hook), которым этот плагин будешь цеплять, активен/нет, добавить....
вопрос:
Quote:
Originally Posted by Лео View Post
date="1127431399" - дата создания/редактирования шаблона
ответ:
UNIX Timestamp - юникс время от 01.01.1970 г
PHP Code:
// запрос в БД в табл. table_name
$result $vbulletin->db->query_read("
                                  SELECT table_name.*,
                                  FROM " 
TABLE_PREFIX "table_name AS table_name
                            WHERE table_name.userid = " 
intval($vbulletin->userinfo['userid']) . "
                            ORDER BY table_name.date ASC
                      "
);
$var $vbulletin->db->fetch_array($result); // массив данных из табл table_name, где date == 1127431399

$var['date'] = vbdate("H:i d.m.Y"$var['date'], false);

print 
$var['date']; // результат: 00:23 23.09.2005
print $var['userid']; // результат: 1 (к примеру)
print $var['username']; // результат: kerk (к примеру) 
вопрос:
Quote:
Originally Posted by Лео View Post
<plugins>
</plugins>
<phrases>
</phrases>
<options>
</options>
<helptopics>
</helptopics>
<cronentries>
</cronentries>
<faqentries>
</faqentries>
ответ:
плагины,
фразы,
настройки,
помощь, если есть (не обязательно),
выполнение кода по расписанию, если есть в хаке (не обязательно),
текст FAQ если есть (не обязательно)

так же в продукте может быть код установки/удаления, может быть разным, например создание/удаление своих таблиц в БД и/или добавление/удаление новых полей в уже существующие таблицы

когда продукт готов - экспорт продукта из менеджера
===
вот собсно как то так, если коротко, а если все подробно, то это не одна страница текста будет и не один день работы
 
 
Лео
В Черном списке
 
Лео's Avatar
Default
1

Quote:
Originally Posted by kerk View Post
3. создаешь новую группу настроек в основных настройках (если в хаке используются свои настройки), произвольная переменная, но лучше делать, что бы было все на своих местах, открой любой один из недавних моих продуктов (не переделку), там везде стоит префикс - "kr_" + "product_id" + "free_var"
не совсем понятно...как добавлять новую группу настроек? Продукт создал... а где остальное заполнять? и что за "kr_" + "product_id" + "free_var"?

при нажатии Добавить новый модуль 2 строку Местоположение модуля существует возможность выбора только от хака БЛАГОДАРНОСТИ ЗА СООБЩЕНИЕ

Что касается времени, нашел удобную вещ по твоей ссылке Unix time конвертор

Как дописывать код в шаблоны при помощи хака?
Например в шаблон headinclud мне нужно добавить JS

Last edited by Лео : 07-05-2008 at 11:25 AM. Reason: Добавлено сообщение
 
 
kerk
k0t
 
kerk's Avatar
Default
8

Quote:
Originally Posted by Лео View Post
Например в шаблон headinclud мне нужно добавить JS
можно добавить прямо в шаблон, если это ссылка на файл скрипта, либо подключить код скрипта как шаблон плагином, например:
1 вариант - у тебя уже есть шаблон с именем tamplate_name, нужно в шаблоне воблы найти код, который от версии к версии не меняется, например в версии 3.7.2 в шаблоне headinclude есть такая строка <!-- / CSS Stylesheet -->, мы можем использовать ее для нужных нам целей, без правки шаблона вручную, добавляем плагин с кодом:

PHP Code:
$search '<!-- / CSS Stylesheet -->';
$vbulletin->templatecache['headinclude'] = str_replace($search$search.fetch_template('tamplate_name'), $vbulletin->templatecache['headinclude']); 
и подключаем этот плагин хуком global_start
сам код нашего шаблона может выглядеть так:
HTML Code:
<script type="text/javascript" src="clientscript/your_js.js"></script>
или если это не ссылка на файл, а сам код яваскрипта, то и в шаблоне соотв. код JS

Quote:
Originally Posted by Лео View Post
"kr_" + "product_id" + "free_var"?
как пример, хак vBGarage:
<product productid="kr_vbgarage" active="1">
где kr_ - префикс и vbgarage - идентификатор продукта, по этому префиксу я быстро нахожу свои продукты/плагины/шаблоны
и далее на примере шаблона:
<template name="vbgarage_addgarage" templatetype="template" date="1211514258" username="kerk" version="3.8.1">
где vbgarage - идентификатор продукта и addgarage - что бы самому понятней было, за что отвечает шаблон, в данном случае, это добавление авто в гараж

Quote:
Originally Posted by Лео View Post
не совсем понятно...как добавлять новую группу настроек?
это можно сделать только в отладочном режиме (debug mode)



 
 
андэд
Продвинутый
 
андэд's Avatar
Default
0

kerk, а как можно добавить группу настроек в форму создания/редактирования разделов?
Attached Thumbnails
screen_2008.07.29_13-08-49.jpg  
 
 
kerk
k0t
 
kerk's Avatar
Default
1

это можно сделать только редактированием файла forum.php в админке
смотри структуру файла
 
 
Лео
В Черном списке
 
Лео's Avatar
Default
0

1. Возможна ли вставка ссылок в RSS ленту без правки файлов?
2. Как расписать правильно условия для следующего меню в коде модуля?
Code:
<select name=\"setting[$setting[varname]]\" tabindex=\"1\" class=\"bginput\">
<option value=\"0\" " . iif($setting['value']=='0','selected="selected"') . ">cp1251</option>
<option value=\"1\" " . iif($setting['value']=='1','selected="selected"') . ">utf8</option>
</select>
код взят как пример из хака "кто скачивал"

3. Где лучше прописывать "ВЫКЛЮЧЕНИЕ" в шаблонах или модулях?
Code:
<if condition="$vboptions[xxx]==1">
бла бла бла
</if>

Last edited by Лео : 07-27-2009 at 06:19 AM.
 
 
GiveMeABreak
Эксперт
 
GiveMeABreak's Avatar
Default
2

Quote:
Originally Posted by Лео View Post
. Где лучше прописывать "ВЫКЛЮЧЕНИЕ" в шаблонах или модулях?
если хах без плагинов - в шаблонах
если хак с плагинами - в плагинах

Quote:
Originally Posted by Лео View Post
Как расписать правильно условия для следующего меню в коде модуля? Код: cp1251 utf8
В вобле 3.7 и выше, сделали, чтобы не прописывать эти селекты вот такого рода код:

HTML Code:
select:piped
0|no
1|yes
2|yes_but_disable_moderators
появляется вот такой выбор
Click image for larger version

Name:	Безымянный.JPG
Views:	112
Size:	5.7 KB
ID:	17877
они пишутся так:
HTML Code:
select:piped
значение|фраза, или обычный текст
 
 
Лео
В Черном списке
 
Лео's Avatar
Default
0

Quote:
Originally Posted by GiveMeABreak View Post
В вобле 3.7 и выше, сделали, чтобы не прописывать эти селекты вот такого рода код:
Меня интересует не то что внедрили, а как мне привязать мой код в настройках к плагину для выбора пользователем кодировки его скрипта.

Лео добавил 28.07.2009 в 06:03
Где можно в админке добавить данные для этой строки?
<phrasetype name="Название группы фраз" fieldname="Префикс фразы">

Last edited by Лео : 07-28-2009 at 07:03 AM. Reason: Добавлено сообщение
 
 
Лео
В Черном списке
 
Лео's Avatar
Question
0

Очередное "КАК?"))
Задача:

Велосипед
Прошу помощи в более компактной и правильной реализации
 

Tags
faq, utf-8, xml, кодировка, продукт


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 12:58 PM.


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