Форум vBTorrents.org

Форум vBTorrents.org (https://vbtorrents.org/index.php)
-   Хаки, моды и скрипты для vBulletin (https://vbtorrents.org/forumdisplay.php?f=3)
-   -   Релиз-визард Lite (Release Wizard Lite) (https://vbtorrents.org/showthread.php?t=60)

Skald 23.08.2009 16:02

Релиз-визард Lite (Release Wizard Lite)
 
Вложений: 1
В продолжение темы "релиз-визарда" сделал упрощенную версию.
Демо на примере аниме шаблона можно посмотреть в этом разделе, или сразу демо создания релиза.

Функционал аналогичен торрент-пировскому.
Каждый визард настраивается в отдельном шаблоне, ограничений на количество шаблонов нет - достаточно добавить свой пользовательский шаблон и прописать его в настройках.

По пожеланию пользователей, оплативших лайт, выкладываю его в паблик (кодировка UTF-8)

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

Называться этот шаблон должен по типу yo_rw_* где * название визарда, т.е. типа yo_rw_anime yo_rw_video и т.д.

Шаблон разбит кондишенами (<if condition="....">) на части.

Между условиями секций не должно быть пробелов, переводов строки и т.д. Что бы все это не появилось в итоговом тексте сообщения.

Первая секция инициализация - в ней описывается какие поля будут в визарде, а именно первое условие <if condition="$yo_rw_tpl['mode']=='init'"> - это условие что это секция инициализации, вложенное условие - это обычное создание массива в php.
Код:

<if condition="$yo_rw_tpl['mode']=='init'">
<if condition="$yo_rw['var']=Array(
'tag' => Array('rname', 'oname', 'fposter', 'fquality', 'time', 'year', 'vspec', 'manga', 'type', 'epno', 'sample', 'genr','countr','prod','autoro','director'),
'atag' => Array('aspec' => 'aspec', 'lang' => 'aspec', 'langt' => 'aspec', 'sub' => 'sub', 'subt' => 'sub'),
'editor' => Array('info','eps')
)"></if></if>

тип 'tag' - это обычные поля ввода, 'editor' - расширенный редактор булки, 'atag' - мультистрочные поля, по типу субтитров и аудио дорожек в аниме визарде. Для atag-а названием ключа является название поля, а значением является название строки. Для atag-а желательно чтобы название первого поля в группе было названием группы:
'aspec' => 'aspec' и 'sub' => 'sub'

Следующие секции - это секции формы ввода
Код:

<if condition="$yo_rw_tpl['mode']=='form' AND $yo_rw_tpl['name']==''">
и
Код:

<if condition="$yo_rw_tpl['mode']=='form' AND $yo_rw_tpl['name']=='aspec'">
Где $yo_rw_tpl['mode']=='form' - это обозначение что это секция формы ввода, а $yo_rw_tpl['name'] - это название конкретной секции - или пусто для основной формы, или имя строки atag-а, для конкретной строки atag-а.
В секции основного шаблона обязательно должна присутствовать строка
Код HTML:

<input name="release" value="$vboptions[yo_rw]" type="hidden">
Следующие секции - это секции шаблонов получаемого сообщения на выходе
Код:

<if condition="$yo_rw_tpl['mode']=='post' AND $yo_rw_tpl['name']==''">
и
Код:

<if condition="$yo_rw_tpl['mode']=='post' AND $yo_rw_tpl['name']=='sub'">
Здесь полностью аналогично предыдущим секциям

Кажется все - этого по идее достаточно чтобы начать разбирать шаблон и пытаться сделать свой.

gM@X 25.08.2009 03:44

судя по примеру супер, а если кто-то захочет существенно больший функционал, с тех стричь мани-мани, если конечно будет время :)

вообщем в очередной раз респект

UnFeeLing 19.09.2009 13:17

поделитесь лайт версией :)

Aiser 19.09.2009 18:28

Хех. Я бы тоже принял бы в дар.

Azec 19.09.2009 22:50

Выглядит - клева!

Azec 20.09.2009 23:48

Есть несколько вопросов по поводу Release Wizard Lite
1. Скажите пожалуйста, а в Release Wizard Lite можно сделать так, что бы параметры собираемые формой визарда попали не только в код сообщения и заголовок, но так же и в префиксы и метки?
2. Есть ли там место для вставки своего кода обработки параметров? То есть если пользователь ввел например качество DVDRip, я могу это каким-то сложным-сложным образом преобразовал это в ссылку внутри сообщения релиза?
3. Если пользователь захочет отредактировать релиз, который он выложил он увидит обычное редактирование сообщения, или визард?
если просто сообщение, то планируется ли в следующих версиях сделать так что бы пользователь видел релиз визард?

Поясню, почему я спрашиваю пункт 3. Если все релизы будут иметь 100% стандартизированый вид, да еще и такой что его можно обратно отпарсить ( в визард ) то это значит что если бы я захотел написать скрипт, который поменял бы внешний вид всех уже существующих релизов, то я бы смог легко написать такой скрипт, так как все релизы "готовы" для обратного парсинга.
А если нет, то практически никакого шанса поменять дизайн уже выложеных релизов нету ( ручной не считаем ).

Azec 21.09.2009 00:14

Я тут подумал что пропарсить "обратно" очень просто, если помещать все значимое содержание в свои отдельные bb-коды.
Было бы клево, если бы можно было пользоваться визардом и при редактировании сообщений.

Я помню, что когда на torrents.ru что-то выкладывал, пришлось очень много времени лишнего потратить что бы отредактировать сообщение вручную и привести к стандартному виду.

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

Skald 21.09.2009 00:43

Цитата:

Сообщение от Azec (Сообщение 1027)
Было бы клево, если бы можно было пользоваться визардом и при редактировании сообщений.

В полной версии это есть с самого начала (но и установка и настройка полной - гемор еще тот). В лайт только создание ,но и установка на порядок проще

Skald 22.09.2009 17:38

Лайт версия выложена в паблик

gM@X 22.09.2009 18:58

респект, затестим сегодня вечером, как будут денежки лишние донейт сделаю :)

UnFeeLing 22.09.2009 20:40

в какой кодировке продукт?

UnFeeLing 22.09.2009 20:43

Вложений: 1
в utf8, вот вылаживаю в cp1251

gM@X 22.09.2009 21:00

utf рулит )

UnFeeLing 22.09.2009 21:09

Цитата:

Сообщение от gM@X (Сообщение 1063)
utf рулит )

аргументы?:)
ну что мультиязычность понятно...

Skald 22.09.2009 23:38

Цитата:

Сообщение от UnFeeLing (Сообщение 1064)
аргументы?:)
ну что мультиязычность понятно...

Это уже пошел оффтоп. Но выбор ставить утф или нет зависит полностью от задач. Для булки в некоторых случаях утф полезен, а иногда вреден.
Просьба тему не развивать... А то придется раздел для флуда делать.

Azec 23.09.2009 15:03

Установил - работает. Клава ))
Буду сегодня думать, как его проапгредить на то, что бы при редактировании тот-же визард использовался.

Добавлено через 1 час 35 минут
Пробую сделать свои шаблоны, возникает некоторая трудность.
1. Подскажите, как создавать новые шаблоны.
Я пытаюсь сделать новый шаблон, а он попадает в папку шаблонов стиля который у меня установлен, а мне хотелось бы что бы попал в папку - релиз-визарда.
2. как удалять шаблоны

у меня в интерфейсе нету опции удаления, а так же переноса из одной папки в другую.

Может есть какие-то плагины для VB что бы такие операции можно было делать?

Skald 23.09.2009 15:06

Цитата:

Сообщение от Azec (Сообщение 1072)
Буду сегодня думать, как его проапгредить на то, что бы при редактировании тот-же визард использовался.

Пробуйте. Мне будет интересно Ваше решение. Т.к. решение с ббкодами не самое оптимальное, но другого я не придумал (да и не только я)

Azec 23.09.2009 15:43

решения у меня есть, но я не спец по VB и PHP, я программирую на ASP.NET, а тут фактически первый раз пробую с этим что-то делать.

решение такое:
у нас есть форма, в результате ее действия она берет параметры из вводимых полей, и делает из них сообщение.

Так вот, надо добавлять в начало каждого места вывода одного параметра некоторый комментарий, и в конец комментарий.

Например: есть поле "режиссер"
Человек вводит туда например "Кустурица"
Выводим в сообщение

[b]режиссер[/b]: <!-- START REZISER -->Кустурица<!-- END REZISER -->

Таким образом мы всегда можем заполнить форму релиз-визарда по уже существующему сообщению.
Проходимся по всем полям и заполняем их парся соответсвующие им комментарии.

Для списков, например жанров все тоже самое, каждый отдельный жанр пишем в отдельный комментарий:
В результате у нас получется несколько комментариев типа <!-- START ЖАНР -->XXX<!-- END ЖАНР -->
Обычным регекспом из всех них получаем список.

orfo 23.09.2009 16:03

Azec тогда получается юзер должен иметь права для использования html в сообщении?

Azec 23.09.2009 16:24

ага, понятно.

тогда делаем так: вводим бб-код вида -

[rw-comment]XXX[/rw-comment]

и преобразуем его в коментарий вида

<!-- XXX -->


PS: или более точно так

[RW-START] и [RW-END]

можно, кстати сократить [RWS] и [RWE] ( RW - релиз визард )

и преобразуем соответственно в

<!-- XXX START --> и <!-- XXX END-->

или можно сделать bb-code с option и с возможностью использования бб-кодов внутри:
типа
[RW=Жанр]XXX[/RW]

и автоматически преобразуется к <!-- ЖАНР START -->XXX<!-- ЖАНР END-->

последний вариант видется мне самым клевым

Skald 23.09.2009 20:22

Azec, Почти так и сделано в полной версии, но как я уже говорил создавать столько ббкодов очень неудобно.

Azec 23.09.2009 22:31

Sklad, вы несовсем поняли мой способ.
В нем bb-код делается один!

[tw=Жанр]Пародия[/tw]
[tw=Качество]DVDRip[/tw]
[tw=Режиссер]Кустурица[/tw]

[tw=XX]YY[tw] означает что при загрузки в визард
в поле XX попадет YY.

Один bbcode на все поля.

При этом данный bb-коде трансформаируется в html следующим образом
[tw=XX]YY[tw] превращается просто в YY
а остальное - инфа для парсера

пример:
в релиз визарде в поле жанры введено "фантастика, комедия, молодежный"
на выходе имеем:



[b]Жанр:[/b] [url=search.php?query=фантастика][rw=Жанр]фантастика[/rw][/url],
[url=search.php?query=комедия][rw=Жанр]комедия[/rw][/url],
[url=search.php?query=молодежный][COLOR="DarkOrange"][rw=Жанр][/COLOR]молодежный[/rw][/url]



содержание query я несколько упростил что бы не загромождать пост

Добавлено через 1 час 55 минут
Вот совсем простой и короткий способ


[rw=CategoryName]Category[/rw]
пример
[rw=Жанр]Комедия[/rw]

преобразуем в

<a href="search.php?query=[rw=Жанр]Комедия[/rw]">Комедия</a>

ffx 23.09.2009 23:18

чет я не понял где настраивать всё

кроме настроек в основных настроек больше не че ненашол

Azec 23.09.2009 23:54

шаблоны настраиваются в шаблонах, там для них папочка специальная.

Skald 24.09.2009 00:00

ffx, Для примера идет 2 шаблона, дальше добавляем свой шаблон и добавляем его в настройках.
На днях напишу инструкцию по шаблону, т.к. он немного навороченный в одном шаблоне настройки инициализации, формы ввода и вывода.

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

Azec 24.09.2009 01:31

В bb коде, можно использовать опцию, как я знаю
формат такой
[qwerty=опция]XXX[/qwerty]
вот этой опции, достаточно,
ничего с нею делать не надо просто достаточно того что она есть

достаточно существующей функциональности bb кодов, и завести нужно всего один bb код

если есть скайп, могу в аудио объяснить

Добавлено через 1 час 0 минут
Так, минутка появилась. Пишу сюда полное объяснение.

1. Форма визарда состоит из полей ввода. Для простоты будем считать что все поля состоят из перечислений через запятую. Каджому полю ввода даем свое имя, пусть для примера это будет жанр и режиссер

2. Расмотрим пример с тем шаблоном, который ты для примера приложил к релиз визарду - аниме.

3. Предположим что пользователь ввел жанры: фантастика, боевик
И режиссера: Родригесс

4. То что мы получаем в тексте сообщения после нажатия "создать сообщение" в шаблоне релиз визарда

[b]жанр:[/b] [rw=Жанр]фантастика[\rw], [rw=Жанр]боевик[\rw]
[b]режиссер:[/b] [rw=Режжисер]Родригесс[\rw]


или более красивый и функциональный вариант со ссылками:


[b]жанр:[/b] [search][rw=Жанр]фантастика[\rw][/search], [search][rw=Жанр]боевик[\rw][/search]
[b]режиссер:[/b] [search][rw=Режжисер]Родригесс[\rw][/search]


5. bb код [rw=XX]YY[/rw]
возвращает просто YY без всего

6. bb код search возвращает
Код HTML:

<a href="search.php?query=YY">YY</a>
7. То есть нам надо всего два bb кода и никакой дополнительной работы с bb кодами

8. Понятно как из такого сообщения получить заполенную форму визарда

Skald 24.09.2009 14:36

а куда девать из текста сообщения [b]жанр:[/b] и [b]режиссер:[/b]
да. но есть еще одно - когда для каждого типа поля свой ббкод легко менять дизайн без пересохранения сообщения.
в принципе в полной версии я собирался уменьшить количество необходимых ббкодов за счет использования опции, но все равно сильно уменьшить количество ббкодов не получится.
Конечно можно использовать только предложенный вариант, и считываться будет нормально, но остается проблема при отображении в момент отключения хака - полностью пропадет форматирование.

как вариант можно написать хак который будет перехватывать определенный ббкод например [film] и в соответствии с настройками по шаблону на лету генерировать хтмл код красивого оформления, хотя внутри только
[tw=Жанр]Пародия[/tw]
[tw=Качество]DVDRip[/tw]
[tw=Режиссер]Кустурица[/tw]
Но опять получаем проблему непонятного отображения при быстром редактировании и при отключении хака, т.е. тогда на выходе получим только:
Пародия
DVDRip
Кустурица

Azec 24.09.2009 14:41

[b]жанр:[/b] и [b]режиссер:[/b]

с ними все просто:
их мы просто игнорируем, заполняем форму визарда мы только по содержанию внутри кодов [RW] а остальное содержание нас не интересует.

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

Azec 24.09.2009 14:51

подробнее.

проходимся по всем полям релиз визарда, и заполняем каждое поле по содержанию соответсвующих этому полю RW тагов.

То есть было у нас поле жанр:
в коде сообщения мы имеем

[b]жанр:[/b] [rw=Жанр]фантастика[\rw], [rw=Жанр]боевик[\rw]

парсим все [rw=Жанр](.*?)[\rw] и джойним их через запятую, ну и чекбоксы выставляем.
(регуляторное выражение это конечно несработает, но, думаю, понятно как написать правильное )

gM@X 24.09.2009 15:20

Azec
PHP код:

[b]жанр:[/b] [rw=Жанр]фантастика[\rw], [rw=Жанр]боевик[\rw

если включен хак то мы не увидим [rw=... и т .д. так?
а если мы отключим хак, то увидим
Цитата:

жанр: [rw=Жанр]фантастика[\rw], [rw=Жанр]боевик[\rw]
т.е. не просто выделенный жирным слово жанр и слово боевик, а все "лишние" теги яля rw
или нет?

и
Цитата:

Сообщение от Azec (Сообщение 1072)
Установил - работает. Клава ))
Пробую сделать свои шаблоны, возникает некоторая трудность.
1. Подскажите, как создавать новые шаблоны.
Я пытаюсь сделать новый шаблон, а он попадает в папку шаблонов стиля который у меня установлен, а мне хотелось бы что бы попал в папку - релиз-визарда.
2. как удалять шаблоны

хоть и оффтоп в какой-то мере, но всё таки... нашёл способ (перемещения в категорию релиз визарда и удаление)? :)

Skald
можно вопрос? в принципе с шаблонами вроде разобрался, но единственное на данный момен не понять одно, как можно сделать чтобы скриншоты которые заливаются при "Загрузить/просмотреть..." в итоге оказались под спойлером, это насколько помню реализовано на ua-torrent.com?

и ещё одна вещь в дефолтном шаблоне по аниме не жизневажненный косяк (багофича? :) ) заметил :)
поле Субтитры#:
если выбрать Отсутсвуют, то вторая графа (где подключаемые, отключаемые и т.п.) всё равно в итоге заполняется
в итоговой теме получаем
Субтитры: Отсутствуют, подключаемые
и т.д.

Azec 24.09.2009 15:35

дополнительные bb-коды делаются не хаком, а просто добавлением нового bb кода через админку.

и оно будет работать до тех пор пока ты не удалишь его через админку.
в коде сообений внезависимости от того установлен ли bb код или нет будет полюбому [rw=xx]YY[/wr]

если бб код не установлен то в выводе так и будет [rw=Жанр]Фантастика[/wr]

если установлен то мы будем видеть например: Фантастика или <b>Фантастика</b> или <a href="...">Фантастика</a>

Skald 24.09.2009 18:14

Azec, Могу сказать одно если ббкод не установлен, то парсить текст сообщения - удовольствие еще то... Придется полностью дублировать код парсинга ббкодов булки (изобретать велосипед), а кода там совсем не мало.

Добавлено через 59 минут
Добавил начало инструкции в первый пост. Немного позже будет продолжение

Azec 24.09.2009 20:03

Щас попробую с тобой по асе списаться.

Skald 25.09.2009 11:03

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

gM@X 26.09.2009 11:17

ещё по субтитрам
<option value="[null]нет[/null]">нет</option>
насколько понимаю должен быть сделан этот ббкод на форуме, ибо по умолчанию его нет :)

Skald 26.09.2009 15:27

Цитата:

Сообщение от gM@X (Сообщение 1129)
насколько понимаю должен быть сделан этот ббкод на форуме, ибо по умолчанию его нет :)

Это хвосты от полной версии. Править ведь можно как угодно.
У кого не спрашивал - всем нужны были различные вариации полей для одних и тех же визардов.
Я выложил продукт (с примером всего функционала) и уже задача админа сделать так чтобы было именно так как ему надо

gM@X 27.09.2009 03:23

понятно, просто пометка, претензий к данному не имею :)

но вот хотелось бы получить ответ по спойлеру...
Цитата:

Сообщение от gM@X (Сообщение 1110)
<...>
Skald
можно вопрос? в принципе с шаблонами вроде разобрался, но единственное на данный момен не понять одно, как можно сделать чтобы скриншоты которые заливаются при "Загрузить/просмотреть..." в итоге оказались под спойлером, это насколько помню реализовано на ua-torrent.com?
<...>

мне в голову (познаний очень мало) пока не приходит как это сделать (

Skald 27.09.2009 09:10

gM@X, Насчет скринов.
Если например это ссылки на фотохостинги, то тут нет проблем - просто в секции готового сообщения помещаем поле внутрь ббкода спойлера. Аналогично можно поступить с вложениями форума, по аналогии с постером - там можно глянуть весь код (html + js), но все равно придется потом в выходной форме выводить в ббкоде спойлера.

Если нужно именно так как на ua-torrent-е, то не получится - там стоит спец. хак расширенной заливки вложений, для каждого типа вложений (скрины, постеры и т.д.) отдельное поле с отдельными настройками + возможность отображения размеров картинки через js.

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

Azec 29.09.2009 15:59

Вложений: 1
Написал код парсинга.
Прилагаю его в архиве файла php.

Вот такой код парсинга
PHP код:

   echo 'результат парсинга:<br>';
   echo 
"<b>жанры:</b> " JoinR(ParseR('genr',$_POST['parse']))."<br>";
   echo 
"<b>режжисер:</b> "  JoinR(ParseR('rez',$_POST['parse']));

function 
ParseR($opt,$str// выдираем все таги RW с выставленной опцией $opt
{
    
preg_match_all("/\[rw=".$opt."\](.*?)\[\/rw\]/",$str,$result,PREG_SET_ORDER );
    return 
$result;
}

function 
JoinR($regs)  // собираем все выдранные таги, через запятую
{
    
$str='';
    for(
$i=0;$i<count($regs);$i++)
    {
        if(
$str=='')
            
$str $regs[$i][1];
        else
            
$str $str.", ".$regs[$i][1];
    }
    return 
$str;
}

// ------------------- КОНЕЦ КОДА ПАРСИНГА -----------------------------------

function MakeR($opt,$val)  // пишем таг RW c опцией $opt и значением $val
{
    return 
'[rw=' $opt ']'.$val.'[/rw]';


Что бы его интегрировать надо к шаблону Релиз Визарда добавить еще одну часть ( например в самый конец ) и в нее вставлять код парсинга для каждого шаблона.
Функции JoinR и ParseR можно в какую-нибудь библиотечку вставить.

Ну и, конечно, сделать что бы при редактировании верхнего поста вызывался Релиз Визард и в нем вызывался код парсинга.

PS: надо еще сделать так, что бы у скрипта парсинга был доступ к значением полей Релиз Визарда, что бы он иог их заполнить

Skald 29.09.2009 16:04

Azec, А как быть со вложенными ббкодами? с незакрытыми ббкодами? Как я и говорил, все не так просто при парсинге ббкодов и не зря желсофт целый набор функций для этого выделил (и совсем не маленьких)


Текущее время: 02:39. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4 Patch Level 6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot