ForumD.ru - Дизайн для форумов, скрипты для форумов, техническая поддержка

Объявление

Акция! Дизайн «MyBB Technical Support»

Дизайн для форума MyBB в тематике компьютерных сообществ или технической поддержки
Стоимость при покупке эксклюзивно: 2000р 1200р
Скидка 40%. В стоимость входит настройка и корректировка дизайна.

Подробнее

Дизайн «Warlords of Draenor»

Детализированный rpg-дизайн для MyBB форума гильдии «Warlords of Draenor»
Стоимость при покупке эксклюзивно: 6300р
В стоимость входит настройка и корректировка дизайна под ваш проект.

Подробнее

Светлый дизайн в фентези стиле с аниме-графикой

Макет для светлого дизайна в фентези стиле с аниме-графикой.
Стоимость: 2600р*
Дизайн продается эксклюзивно (в одни руки).

Подробнее

Дизайн для MyBB форума гильдии WoW Exodar

Детализированный rpg-дизайн для mybb форума гильдии в тематике Экзодара.
Стоимость: 2150р*
В стоимость входит настройка и корректировка дизайна.

Подробнее

Поддержать проект

Если у вас есть желание помочь нам сделать наш проект лучше:
Финансовая помощьРеклама на сайте
Стать модераторомОтзывы

Предложения

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

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



Скрипт создания анкет и форм v2

Сообщений 1 страница 10 из 20

1

Скрипт анкет v2
Позволяет создавать анкеты с разными типами полей для заполнения пользователем. Есть много вариантов настроек.

http://gerda.moy.su/MyBB_files/FD/_scripts/ank_1.jpg

http://gerda.moy.su/MyBB_files/FD/_scripts/ank_2.jpg

http://gerda.moy.su/MyBB_files/FD/_scripts/ank_3.jpg

Автор мода: satsana
Автор скрипта: Alex_63
Скрипт создан по заказу администрации проекта ForumD.ru!
Платформа: MyBB
Демо: Сделать заказ (шаблон анкеты)
/БЕСПЛАТНО/ Дизайн mybb Романовы. Сюжеты русской истории. (итоговая анкета)

Описание:
1. Позволяет создавать нужные типы полей для ввода текста: input и textarea, select и checkbox с заранее заданными пунктами на выбор.
2. Позволяет автоматически задавать название анкет связанное с именем ника, либо с именем нового персонажа, вводимого юзером, либо постоянным именем для всех анкет, либо с именем полностью задаваемым заполнящим анкету. В добавку к заголовку можно вставить словосочетания-опции на выбор пользователя.
3. Позволяет создавать анкеты либо отдельной темой, либо присоединяемыми постами к шаблону анкеты. Можно создавать неограниченное число независимых шаблонов анкет в прописанных заранее форумах!
4. Позволяет помечать обязательность некоторых(или всех) полей для заполнения.
5. Позволяет пользователю вставлять в поле textarea BB-теги
6. Позволяет разбивать длинную анкету на несколько частей, последовательно открываемых по заполнении нужных полей

7.new "Составной" заголовок топика - теперь есть возможность добавлять к заголовкам ключевые слова по опциям, отмеченным пользователями.
8.new Исправлена проблема с вставкой тегов в code в формы textarea. Раньше анкеты с такими кодами просто не отправлялись. Теперь это возможно.
9.new Добавлено больше кнопок в форме textarea: код, скрытый текст, спойлеры и другие инструменты форматирования текста.
10.new Поля textarea теперь могут быть в режиме простого текста (обычное многострочное поле, заполняемое пользователем), скрытого текста (автоматически оборачивает введенное пользователем в теги hide=99999, чтобы читать могли только админы и модеры) и кода (автоматически оборачивает введенное пользователем в теги code)

коды для устрановки скрипта

В HTML верх

<!-- Скрипт для создания анкет © ForumD.ru -->
<script type="text/javascript">
var Questnr = {};
Questnr.groups = [1,2,12,6]; //Группы, которым разрешено создавать шаблоны для анкет
Questnr.forums = [5,80,6,19,96,2,97,44,22,108]; //Форумы с допуском к анкетированию
Questnr.title  = 'Заказ от '; //Начало заголовка темы с анкетой (по умолчанию)
Questnr.noedit = 1; //Запрет редактирования заполненной анкеты пользователем
</script><script type="text/javascript">
['viewforum','viewtopic','post','edit'].indexOf($('.punbb')[0].id.substr(4))!=-1&&
$().pun_mainReady(function(){var s='script',l='http://forumstatic.ru/files/0017/b3/fc/41332.js';
var f=$('#pun-viewforum').length?$('link[rel="alternate"]'):$('.crumbs a[href*="viewforum"]:last');
f=+f[0].href.match(/id=(\d+)$/)[1];Questnr.forums.indexOf(f)!=-1&&document.write('<'+s+' src="'+l+'"></'+s+'>')});
</script>
<script>
Questnr.allowReply = [+$('link[rel="alternate"]')[0].href.match(/id=(\d+)$/)[1]]; //текущая тема
</script>


Дополнение: Кнопки BB-тегов над многострочными полями в анкете
В HTML низ:

Код:
<!-- Анкета: Добавка кнопок BB-тегов к textarea -->
<style>
 .new[id=form-buttons] td{display: inline-block; height:24px;}
</style>
<script type="text/javascript">
 if(GroupID != 3)$(function() {var button_tbl = $('#post #form-buttons').clone().addClass('new');
  button_tbl.find('#button-image>img')[0].setAttribute('onclick','bbcode(\'['+'img]\',\'[/img]\')');
  button_tbl.find('td:not(#button-bold):not(#button-italic):not(#button-underline):not(#button-image):not(#button-strike):not(#button-left):not(#button-center):not(#button-right):not(#button-link):not(#button-spoiler):not(#button-hide):not(#button-code):not(#button-color)').remove();
  button_tbl.insertBefore('.questionary-post textarea');
    $('.new[id="form-buttons"]').on('mouseenter',function() {
    var area = $(this).next('textarea');if(!area.length){area = $(this).next().find('textarea');}
    $('.questionary-post').find('textarea').removeAttr('id');
    if(area[0].id!='main-reply')area.attr('id','main-reply');
     }).on('mouseleave',function(){$('.questionary-post textarea').removeAttr('id');});
  });
</script>

Дополнение: Разрешаем отправку ответов в некоторых темах в анкет-форумах
В HTML верх ниже основной части скрипта анкет:

<script>
Questnr.allowReply = [ 17,28 ];// ID тем в анкет-форумах, где разрешено отвечать юзерам
</script>

Если нужно вернуть форму ответа во всех темах анкет-форумов, код будет выглядеть так:

Код:
<script>
Questnr.allowReply = [+$('link[rel="alternate"]')[0].href.match(/id=(\d+)$/)[1]]; //текущая тема
</script>
СОЗДАНИЕ ШАБЛОНОВ АНКЕТ, ПОЯСНЕНИЯ

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


http://sf.uploads.ru/DzUlY.jpg


Начало работы происходит в левой части панели управления создания шаблона анкеты (элементы управления 1-3)
Элементы управления:
1. Радиокнопки переключения варианта создания анкет(создавать новую тему/добавлять пост в текущую)
2. Меню для выбора варианта создания заголовка анкеты
3. Кнопка вставки управляющего тега, определяемого ваш выбор элементов управления 1 и 2 (Где создавать анкету и формат заголовка)
PS: Простановка своего варианта начала названия темы в шаблоне анкеты:
[input topic-name=Анкета от ...]
В первом теге в шаблоне выставлено имя темы по умолчанию (см. пример выше), заменяем в очередном шаблоне на нужное


Если вы выбрали "создавать новую тему", то после выбора основного вида заголовка топиков с отправленным шаблонами, вы можете делать опции-добавки к названию:
http://gerda.moy.su/MyBB_files/FD/_scripts/ank-guide.jpg
ВНИМАНИЕ! Помните, что название топика ограничено! Опции с ключевыми словами должны быть краткими.
Пример выбора опций названия анкет: Сделать заказ
Опции можно поставить в любое место, обернуть вокруг них пояснения (см. пункт 10). Независимо от места в анкете, которое они занимают - они сработают на заголовок при выборе пользователем.


11. Заполните название (очередной) темы с шаблоном анкеты (К примеру шаблон анкеты к сюжету «Альфа и Омега»)


12. Форма ответа, создающая шаблон анкеты


Вставка тегов:  input и textarea, select и checkbox
4. Осуществляем выбор нужного элемента в выпадающем меню №4
5. Вписываем поясняющий текст, отображаемый внутри выбранного элемент, input под номером 5
6. Прописываем размеры выбранного элемента, поле (поля) под номером 6. Размеры прописываются числом, подразумеваются пикселы!
(Ширину можно также указывать в процентах.)
7. Флажок выбора обязательности заполнения вставленного элемента пользователем (Если обязательный элемент не заполнен - анкета не отправляется)
8. Кнопка вставки выбранного элемента в форму создания шаблона


При выборе поля textarea есть дополнительные опции отображения содержимого, заполненного пользователем:
http://forumstatic.ru/files/0019/a4/e9/55375.jpg
• Простой текст - простое поле textarea
• Скрытый текст - автоматически оборачивает введенное пользователем в теги hide=99999 (чтобы читать могли только админы и модеры)
• Код - автоматически оборачивает введенное пользователем в теги code


9. Разделитель анкеты на части.
Если применяем тег разделения [part], то его необходимо вставлять перед каждой частью анкеты, включая первую!


10. Вставка обрамляющих тегов пояснения (пояснения не включаются в отправляемую анкету, заполненную юзером)


P.S.: Все теги input и textarea, select и checkbox можно оборачивать в любые теги, кроме textarea


Скрипт анкет (старая версия)
Без опций для заголовков, вставки кодов в textarea и дополнительных тегов.

Автор: Alex_63
Платформа: MyBB

коды для устрановки скрипта

В HTML верх

<!-- Скрипт для создания анкет © Alex_63 -->
    <script type="text/javascript">
    var Questnr = {};
    Questnr.groups = [1,2]; //Группы, которым разрешено создавать шаблоны для анкет
    Questnr.forums = [1,4,26]; //Форумы с допуском к анкетированию
    Questnr.title  = 'Анкета от '; //Начало заголовка темы с анкетой (по умолчанию)
    Questnr.noedit = 1; //Запрет редактирования заполненной анкеты пользователем
    </script><script type="text/javascript">
    ['viewforum','viewtopic','post','edit'].indexOf($('.punbb')[0].id.substr(4))!=-1&&
    $().pun_mainReady(function(){var s='script',l='http://forumstatic.ru/files/0015/c4/3f/45857.js';
    var f=$('#pun-viewforum').length?$('link[rel="alternate"]'):$('.crumbs a[href*="viewforum"]:last');
    f=+f[0].href.match(/id=(\d+)$/)[1];Questnr.forums.indexOf(f)!=-1&&document.write('<'+s+' src="'+l+'"></'+s+'>')});
    </script>


Дополнение: Кнопки BB-тегов над многострочными полями в анкете
http://sg.uploads.ru/5lKMI.png
В HTML верх:

Код:
<!-- Анкета: Добавка кнопок BB-тегов к textarea -->
<style>
.new[id=form-buttons] td {display: inline-block !important; height:24px; width: 24px;}
</style>
<!-- Анкета: Добавка кнопок BB-тегов к textarea -->
<script type="text/javascript">
 if(GroupID != 3)$(function() {var button_tbl = $('#post #form-buttons').clone().addClass('new');
  button_tbl.find('#button-image>img')[0].setAttribute('onclick','bbcode(\'['+'img]\',\'[/img]\')');
  button_tbl.find('#button-spoiler>img')[0].setAttribute('onclick','bbcode(\'[spoiler="свернутый текст"]\',\'[/spoiler]\')');

  button_tbl.find('td:not(#button-bold):not(#button-italic):not(#button-underline):not(#button-image):not(#button-strike):not(#button-left):not(#button-center):not(#button-right):not(#button-link):not(#button-spoiler):not(#button-hide):not(#button-quote):not(#button-code)').remove();
  button_tbl.insertBefore('.questionary-post textarea');
    $('.new[id="form-buttons"]').on('mouseenter',function() {
    var area = $(this).next('textarea');if(!area.length){area = $(this).next().find('textarea');}
    $('.questionary-post').find('textarea').removeAttr('id');
    if(area[0].id!='main-reply')area.attr('id','main-reply');
     }).on('mouseleave',function(){$('.questionary-post textarea').removeAttr('id');});
  });
</script>

Дополнение: Разрешаем отправку ответов в некоторых темах в анкет-форумах
В HTML верх ниже основной части скрипта анкет:

<script>
Questnr.allowReply = [ 17,28 ];// ID тем в анкет-форумах, где разрешено отвечать юзерам
</script>

Если нужно вернуть форму ответа во всех темах анкет-форумов, код будет выглядеть так:

Код:
<script>
Questnr.allowReply = [+$('link[rel="alternate"]')[0].href.match(/id=(\d+)$/)[1]]; //текущая тема
</script>
СКРИНШОТЫ

Вид кнопки создания шаблона анкет в прописанных в скрипте форумах
http://s3.uploads.ru/8Nqxy.jpg

Вид панели управления создания шаблона анкеты
http://s2.uploads.ru/evoS4.jpg

Развернутый вид меню панели управления создания шаблона анкеты
http://sh.uploads.ru/T16dA.jpg

+3

2

АПД! вышла новая версия

0

3

Здравствуйте! Можно ли сделать так, чтобы в сообщении отправлялись только выбранные пользователем чекбоксы? А те, которые он не выбирал, чтобы не учитывались скриптом и, соответственно, не отправлялись в сообщении
Также хотела узнать, где в коде администратору можно заменить символы "✔, ✘" или и вовсе заменить их на свои значения?
заранее огромное спасибо)

Добавлено спустя 1 час 23 минуты 24 секунды:
мне нужно, чтобы отправлялись в сообщении пользователя только выбранные им чекбоксы, которые помечены галочкой, а те, которые он не отмечал при отправке сообщения не учитывались кодом и не появлялись в сообщении пользователя

Отредактировано Герда (02.08.2020 16:58:00)

0

4

Nasy, добрый день.
В кодах установки, в том куске, который ставится в html-верх, есть адрес самого скрипта, вот он: http://forumstatic.ru/files/0017/b3/fc/41332.js
Вам нужно открыть его в браузере, сохранить у себя на винте, потом открыть его блокнотиком и найти там вот такое место:

Код:
    source = source.replace(/\[checkbox[\s\S]*?\]/mgi, function(str, offset, s) {
    	var val = $post.find('input:checkbox').eq(i).prop('checked');
    	val = String.fromCharCode( val ? 10004 : 10008 );
    	i++;
    	return val
    });

Меняете этот код на такое вот:

Код:
    source = source.replace(/^([\s\S]*?)\[checkbox[\s\S]*?\]([\s\S]*?)$/mgi, function(str, offset, s, s1, s2) {
    	var val = $post.find('input:checkbox').eq(i).prop('checked');
    	val = val ? String.fromCharCode(10004) : '';
    	val = val == '' ? '' : (s1 + val + s2);
    	i++;
    	return val;
    });

Тут String.fromCharCode(10004) - та самая галочка. Можете заменить её на какой-нибудь другой символ из кода UTF-16 или на любую строку в кавычках, например: 'моя галочка'
После внесения изменений сохраняете их и заливаете получившийся файл к себе в файлы. Не забудьте заменить адрес скрипта в html-верх на тот, который у вас получится после заливки.
P.S. Правку писала на коленке, не тестировала. Протестируйте и напишите потом, удалось добиться нужного эффекта или нет.

+1

5

satsana
к сожалению, не сработал
отправленное сообщение выглядит вот так:
https://sun1-14.userapi.com/hvRomujHegxDfiQP8So8gWc_jCB7EOLQu_WciA/gjpam1Jis2Q.jpg
+ весь текст в анкете преобразовался в непонятные символы, а также кнопка "отправить" и "создать анкету"
https://sun1-87.userapi.com/luL3jsGtPL6n_NrCrvCVf1NgmLrlbM3SJXpnAw/watUmQktEF8.jpg
ссылка на код: http://forumstatic.ru/files/0018/53/d9/37904.js
галочку пока что не трогала)

Отредактировано Nasy (02.08.2020 19:42:14)

0

6

satsana
там у Nasy идея полностью переделать работу галочек:

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

сейчас у нас чекбокс вставляется так:

Код:
 [checkbox] текст чекбокса

при отправке [checkbox] превращается в галочку или крестик.

автор задумывает ставить чекбокс как-то так:

Код:
[checkbox]текст чекбокса[/checkbox]

если чекбокс отмечен содержимое отправляется в форму.
если не отмечен - не отправляется.

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

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

например, в форме заказов:
http://forumfiles.ru/uploads/0007/e3/f7/2/79736.jpg

Если юзер отметил "я готов внести предоплату", то следующая строчка:
1. появляется в анкете (по умолчанию, пока чекбокс не отмечен - она скрыта)
2. ее содержимое отправляется (по умолчаниб, если чекбокс не отмечен - никаких тирешек не вставляется)

в анкете это могло бы выглядеть так:

Код:
[checkbox2="текст чекбокса"]
Минимальный и максимальный бюджет:
[input autosize]Сколько вы готовы заплатить?[/input]
[/checkbox2]

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

а то при разработке первоначального скрипта учли, что анкеты могут быть длинными и добавили [part], но не учли насколько длинными могут быть ответы на длинные анкеты, и насколько неудобно эти ответы читать, если часть из них - незаполненные необязательные поля. опциональный кусок - гораздо круче деления на части.

+1

7

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

ссылка на код: http://forumstatic.ru/files/0018/53/d9/37904.js

"побились" русские букавки - это из-за неправильного сохранения файла (надо в формате utf-8)

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

+1

8

Герда написал(а):

"побились" русские букавки - это из-за неправильного сохранения файла (надо в формате utf-8)

спасибо большое, ошибка исчезла!

Герда написал(а):

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

хорошо, ждем)

0

9

Кажется, переменные расположила не в том порядке в реплейсе... А если вот так?

Код:
    source = source.replace(/^([\s\S]*?)\[checkbox[\s\S]*?\]([\s\S]*?)$/mgi, function(str, offset, s1, s2, s) {
    	var val = $post.find('input:checkbox').eq(i).prop('checked');
    	val = val ? String.fromCharCode(10004) : '';
    	val = val == '' ? '' : (s1 + val + s2);
    	i++;
    	return val;
    });
Герда написал(а):

часть из них - незаполненные необязательные поля

И перед большинством из них чекбоксов нет..

+1

10

satsana
сработало, спасибо!
единственно что, небольшая проблема: откуда-то берется 0 и 17 (в оригинале стоит [checkbox] один текстом) и галочка ставится позади текста
https://sun1-28.userapi.com/CTm9Ib3MKk5YwcbYkneJTjhO92MyzI3VoA_IRA/ZcKgwLwptZU.jpg

и вопрос насчет самой галочки

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

Тут String.fromCharCode(10004) - та самая галочка. Можете заменить её на какой-нибудь другой символ из кода UTF-16 или на любую строку в кавычках, например: 'моя галочка'

заменять или вставлять текст именно внутри скобок, верно? возможно ли оставить место просто пустым?

Отредактировано Nasy (02.08.2020 21:24:13)

0

Быстрый ответ

Напишите ваше сообщение и нажмите «Отправить»


ВНИМАНИЕ! При обращении за техподдержкой и вопросами по скриптам/оформлению, оставляйте ссылку на форум/сайт с проблемой! Специалист должен вживую видеть проблему, чтобы подсказать как ее решить.

ВНИМАНИЕ! Гости (не зарегистрированные на форуме) могут писать сообщения, но не могут вставлять прямые ссылки! Чтобы оставить сообщение со ссылкой на сайт, форум или скриншот удалите символы: "http://", "https://" или "www."