• 123 Шаблон запроса для сбора информации в постах • 
Форма запросов - специальная форма постов
При создании темы о модах для двигателя форумов phpBB ветки 3.0.Х название темы должно начинаться с названия мода на английском, без указания версии, затем тире, затем короткое название мода на русском с маленькой буквы. Создание тем не о модах в данном подфоруме запрещено. Посторонние темы о двиге и посторонних проблемах для ветки 3.0.Х в соседнем подфоруме. И помните - Вам тут никто ничего не должен. При малейшем "приказном" тоне в сообщениях - бан на вечно.

    123 Шаблон запроса для сбора информации в постах

Сообщение Разместил Pthelovod 30 янв 2016, 16:41

Дор ФОРМА ЗАПРОСА для типа ЗНАКОМСТВ и ПОДОБНОГО в ответах
Форма запросов - специальная форма облегчающая создание постов типа "вопрос - ответ". Создать можно с любым количеством необходимых вопросов и ответов на них. На этом форуме использовалась как форма для знакомства. Довольно удобная штука для создания форм запросов на форумах с системой ответов на технические вопросы по железу и программам.

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  123 Шаблон запроса для сбора информации в постах

Сообщение Разместил Pthelovod 23 май 2016, 17:44

Как примерно это выглядит -

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  123 Шаблон запроса для сбора информации в постах

Сообщение Разместил Pthelovod 23 май 2016, 17:54

Стандартный набор правок для создание этой опции от автора Sheer -
Файлы для редактирования:posting.php, language/ru/common.php, includes/function_posting.php, styles/стиль/templates/posting_body.html
posting.php
Найти
Код: выделить все
case 'popup':

Перед вставить:
Код: выделить все
case 'pattern':
    $sql = '';
    generate_pattern();
break;

Найти
Код: выделить все
// Start assigning vars for main posting page ...         

Перед вставить:
Код: выделить все
$pattern_enable = 0;
$forum_pattern = array(13, 14, 15, 24, 16, 17, 23); // список id форумов, где шаблон будет работать
if (in_array($forum_id, $forum_pattern)) // в этом форуме шаблон будет работать?
{
    $pattern_enable = 1;
}

Тут array(13, 14, 15, 24, 16, 17, 23);ваш собственный список, если шаблон нужен везде, просто закомментруйте условие if
Найти
Код: выделить все
'S_POST_ACTION'            => $s_action,

Перед вставить:
Код: выделить все
'S_PATTERN'                => ($pattern_enable) ? true : false,

ncludes/function_posting.php
Найти
Код: выделить все
/**
* Fill smiley templates (or just the variables) with smilies, either in a window or inline
*/

Перед вставить:
Код: выделить все
function generate_pattern()
{
    global $user, $template;

    $user->setup('mods/pattern');
    page_header($user->lang['PATTERN']);

    $template->set_filenames(array(
        'body' => 'posting_pattern.html')
    );

    page_footer();
}

language/ru/common.php
Найти:
Код: выделить все
$lang = array_merge($lang, array(

После вставить
Код: выделить все
'PATTERN'            => ' Шаблон запроса ',

styles/стиль/templates/posting_body.html(тут для subsilver2, но для prosilver разница невелика, сами справитесь :) )
Найти
Код: выделить все
<td class="row2" width="78%"><input class="post" style="width:450px" type="text" name="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->60<!-- ELSE -->64<!-- ENDIF -->" tabindex="2" value="{SUBJECT}" />

После вставить
Код: выделить все
   <!-- IF S_PATTERN -->
      <input type="button" class="btnbbcode" value="{L_PATTERN}" onclick="window.open('posting.php?mode=pattern', '_pattern', 'HEIGHT=600,resizable=yes,scrollbars=yes,WIDTH=540'); return false;">
   <!-- ENDIF -->

Далее в папке language/ru создать папку mods (если ее еще нет), туда записать файл pattern.php примерно следующего содержания
Код: выделить все
<?php
if (!defined('IN_PHPBB'))
{
    exit;
}
if (empty($lang) || !is_array($lang))
{
    $lang = array();
}
$lang = array_merge($lang, array(
    'PATTERN'            => 'Шаблон запроса',
    'QUEST_1'            => 'Вопрос 1: ',
    'QUEST_2'            => 'Вопрос 2: ',
// и так далее...
    ));
?>

В папку styles/стиль/templates/ записать файл posting_pattern.html
Код: выделить все
<!-- INCLUDE simple_header.html -->

<script type="text/javascript">
<!--
   var form_name = 'postform';
   var text_name = 'message';

   var optionsNumber = 2;
   var optionsList = new Array(2);
   var optionsKeys = new Array(2);

   optionsList[0] = '{L_QUEST_1}';
   optionsKeys[0] = 'q_1';

   optionsList[1] = '{L_QUEST_2}';
   optionsKeys[1] = 'q_2';

   function put_pattern()
   {
      var r = 0, text = '';
      for (r = 0; r < optionsNumber; r++)
      {
         text += '[b]'+optionsList[r]+'[/b] '+document.forms['pattern'].elements[optionsKeys[r]].value+'\r\n';
      }
      insert_text(text, false, true);
   }

//-->
</script>
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>

<form id="pattern" method="post" action="" onsubmit="return checkForm(this);" name="pattern">
<div class="panel" id="patternbox">
   <table class="tablebg" width="95%" cellspacing="1" cellpadding="4" border="0">
      <tr>
         <th colspan="2">{L_PATTERN}</th>
      </tr>
      <tr>
         <td><div align="right"><b>{L_QUEST_1}</b></div></td>
         <td><input type="text" tabindex="1" name="q_1" id="0" size="25" value="" class="inputbox" /></td>
      </tr>
      <tr>
         <td><div align="right"><b>{L_QUEST_2}</b></div></td>
         <td><input type="text" tabindex="1" name="q_2" id="1" size="25" value="" class="inputbox" /></td>
      </tr>
      <tr>
         <td colspan="2" align="center" valign="middle" class="row1">
          <input type="submit" name="post" value="{L_SUBMIT}" class="btnmain" onclick="put_pattern();window.close();return false;" /><br />
         <br /><a class="nav" href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a></td>
      </tr>
   </table>
</div>
</form>
<!-- INCLUDE simple_footer.html -->

Обратите внимание! var optionsNumber = 2; Значение должно точно соответствовать количеству вопросов optionsList и optionsKeys, иначе работать не будет.
Почистить кеш. Не ставить на рабочий форум, сначала потестить на локалке!

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  123 Шаблон запроса для сбора информации в постах

Сообщение Разместил Pthelovod 23 май 2016, 18:01

Расписываю свой последний вариант на 6 вопросов "Шаблона запроса" переделанный в "Заполните форму ЗНАКОМСТВО, дабы предотвратить дальнейшие писания в ЛС с выдачей переделки от Sheer
posting.php
Найти:
Код: выделить все
   case 'popup':
      if ($forum_id)

Вставить перед:
Код: выделить все
   case 'pattern':
    $sql = '';
    generate_pattern();
   break;

Найти:
Код: выделить все
// Start assigning vars for main posting page

Вставить перед:
Код: выделить все
// Start formy shablon
$pattern_enable = 0;
$forum_pattern = array(0?, 0?, 0?); // список id форумов, где шаблон будет работать
if (in_array($forum_id, $forum_pattern)) // поиск в каких форумах нажен шаблон
{
    $pattern_enable = 1;
}
// End formy shablon

Тут array(0?, 0?, 0?); - ваш собственный список, если шаблон нужен везде, просто закомментbруйте условие if
Найти:
Код: выделить все
'S_POST_ACTION'

Вставить перед:
Код: выделить все
    'S_PATTERN'             => ($pattern_enable) ? true : false,

includes/function_posting.php
Найти:
Код: выделить все
/**
* Fill smiley templates (or just the variables) with smilies, either in a window or inline
*/

Вставить перед:
Код: выделить все
function generate_pattern()
{
    global $user, $template;

    $user->setup('mods/pattern');
    page_header($user->lang['PATTERN']);

    $template->set_filenames(array(
        'body' => 'posting_pattern.html')
    );

    page_footer();
}

language/ru/common.php
Найти:
Код: выделить все
   'PASSWORD'                   => 'Пароль',

Вставить после:
Код: выделить все
    'PATTERN'                           => 'Заполните форму ЗНАКОМСТВО при создании своего первого сообщения на форуме. Мы перенесем ее в соответствующую тему.',

Или что-то типа своего....
styles/стиль/templates/posting_editor.html
Найти:
Код: выделить все
   <div id="message-box-2">

Вставить перед:
Код: выделить все
   <!-- IF S_PATTERN -->
   <dl>
        <input type="button" class="button2" value="{L_PATTERN}" onclick="window.open('posting.php?mode=pattern', '_pattern', 'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=1100'); return false;">
    </dl>
    <!-- ENDIF -->

Создаем файл pattern.php и копируем его в папку language/ru/mods/
Содержимое - не панацея....
Код: выделить все
<?php
if (!defined('IN_PHPBB'))
{
    exit;
}
if (empty($lang) || !is_array($lang))
{
    $lang = array();
}
$lang = array_merge($lang, array(
    'PATTERN'            => 'Заполните форму <<ЗНАКОМСТВО>> при создании своего первого сообщения на форуме',
    'QUEST_1'            => 'Напишите свое настоящее имя или имя, которое Вы хотите видеть под своей аватарой. : ',
    'QUEST_2'            => 'Откуда Вы и Ваше настоящее место жительства (не обязательно)? Можно обобщенно. : ',
    'QUEST_3'            => 'Как Вы попали на наш форму и как давно это было в первый раз? Год, месяц, день назад? : ',
    'QUEST_4'            => 'Вы сразу зарегистрировались у нас или сначала немного просмотрели содержимое форума? : ',
    'QUEST_5'            => 'Как Вам далась регистрация у нас на форуме? Сразу справились? С нескольких попыток? : ',
    'QUEST_6'            => 'Сколько времени вы планируете посещать форум? Вам стало сразу интересно у нас? : ',

// и так далее...
    ));
?>

Создаем файл posting_pattern.html и копируем его в папку styles/стиль/templates/
Содержимое на шесть вопросов-ответов в цвете...цвет можно менять на свой...
Код: выделить все
<!-- INCLUDE simple_header.html -->
<script type="text/javascript">
<!--
   var form_name = 'postform';
   var text_name = 'message';

   var optionsNumber = 6;
   var optionsList = new Array(6);
   var optionsKeys = new Array(6);

   optionsList[0] = '{L_QUEST_1}';
   optionsKeys[0] = 'q_1';

   optionsList[1] = '{L_QUEST_2}';
   optionsKeys[1] = 'q_2';

   optionsList[2] = '{L_QUEST_3}';
   optionsKeys[2] = 'q_3';

    optionsList[3] = '{L_QUEST_4}';
   optionsKeys[3] = 'q_4';

    optionsList[4] = '{L_QUEST_5}';
   optionsKeys[4] = 'q_5';
   
    optionsList[5] = '{L_QUEST_6}';
   optionsKeys[5] = 'q_6';   
   
   function put_pattern()
   {
      var r = 0, text = '';
      for (r = 0; r < optionsNumber; r++)
      {
         text += '[b]'+'[color=#0040BF]'+optionsList[r]+'[/color]'+'[/b]'+'[color=#008000]'+document.forms['pattern'].elements[optionsKeys[r]].value+'[/color]'+'\r\n';
      }
      insert_text(text, false, true);
   }

//-->
</script>
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>

<form id="pattern" method="post" action="" onsubmit="return checkForm(this);" name="pattern">
<div class="panel" id="patternbox">
   <table class="tablebg" width="100%" cellspacing="1" cellpadding="4" border="0">
      <tr>
         <th colspan="2">{L_PATTERN}</th>
      </tr>
      <tr>
         <td><div align="right"><b><font size="2" color="red" face="Arial">{L_QUEST_1}</font></b></div></td>
         <td><input type="text" tabindex="1" name="q_1" id="0" size="40" value="" class="inputbox" /></td>
      </tr>
      <tr>
         <td><div align="right"><b><font size="2" color="red" face="Arial">{L_QUEST_2}</font></b></div></td>
         <td><input type="text" tabindex="1" name="q_2" id="1" size="40" value="" class="inputbox" /></td>
      </tr>
      <tr>
         <td><div align="right"><b><font size="2" color="red" face="Arial">{L_QUEST_3}</font></b></div></td>
         <td><input type="text" tabindex="1" name="q_3" id="2" size="40" value="" class="inputbox" /></td>
      </tr>
      <tr>
         <td><div align="right"><b><font size="2" color="red" face="Arial">{L_QUEST_4}</font></b></div></td>
         <td><input type="text" tabindex="1" name="q_4" id="3" size="40" value="" class="inputbox" /></td>
      </tr>
      <tr>
         <td><div align="right"><b><font size="2" color="red" face="Arial">{L_QUEST_5}</font></b></div></td>
         <td><input type="text" tabindex="1" name="q_5" id="4" size="40" value="" class="inputbox" /></td>
      </tr>
      <tr>
         <td><div align="right"><b><font size="2" color="red" face="Arial">{L_QUEST_6}</font></b></div></td>
         <td><input type="text" tabindex="1" name="q_6" id="5" size="40" value="" class="inputbox" /></td>
      </tr>
      <tr>
         <td colspan="2" align="center" valign="middle" class="row1">
          <input type="submit" name="post" value="{L_SUBMIT}" class="btnmain" onclick="put_pattern();window.close();return false;" /><br />
         <br /><a class="nav" href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a></td>
      </tr>
   </table>
</div>
</form>
<!-- INCLUDE simple_footer.html -->

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  123 Шаблон запроса для сбора информации в постах

Сообщение Разместил Pthelovod 23 май 2016, 18:02

Сама сборка с инструкцией -
ПОМНИТЕ!!!!
Скачивая и устанавливая вариант мода с файлами от этого форума вы рискуете!!!
Не имея знаний в вопросах правки и исправления глюков делать это не стоит!
1. Я не могу помнить всех нюансов и правок в моде и доработок его работы!
2. Обычно все файлы мода у меня тут максимально оптимизированы.
3. Переводы адаптированы именно под данный форум с правилами под "тошноту".
4. Файлы стиля имеют CSS классы, которые могут не подходить к классам ваших стилей.



Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

Вернуться в Коды и модификации для движка phpBB версий до 3.0.Х