1. В phpmyadmin выполнить (если префикс таблиц не phpbb_ - заменить на свой):
Код: Выделить всё
ALTER TABLE `phpbb_forums`
ADD `forum_addfields` smallint(5) unsigned NOT NULL DEFAULT '0';
INSERT INTO `phpbb_config` (`config_name`, `config_value`, `is_dynamic`) VALUES
('ppkbb_addfields_pos', '0', 0),
('ppkbb_addfields_type', '0', 0);
Код: Выделить всё
CREATE TABLE `phpbb_tracker_afftpl` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`addfields` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_hlp` mediumtext COLLATE utf8_bin NOT NULL,
`addfields_br` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_br2` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_inall` tinyint(1) unsigned NOT NULL DEFAULT '0',
`addfields_ta` tinyint(1) unsigned NOT NULL DEFAULT '0',
`addfields_multi` tinyint(1) NOT NULL DEFAULT '0',
`addfields_bbcode` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_bbcodes` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_descr` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_enable` tinyint(1) unsigned NOT NULL DEFAULT '0',
`af_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`addfields_def` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_checkas` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_title` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
`addfields_alias` mediumtext COLLATE utf8_bin NOT NULL,
`addfields_skip` tinyint(1) unsigned NOT NULL DEFAULT '0',
`addfields_exists` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `addfields` (`addfields`),
KEY `addfields_enable` (`addfields_enable`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `phpbb_tracker_afsets` (
`id` mediumint(8) NOT NULL AUTO_INCREMENT,
`af_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`af_name` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '',
`af_count` tinyint(1) unsigned NOT NULL DEFAULT '0',
`af_order` smallint(3) unsigned NOT NULL DEFAULT '0',
`af_required` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `af_id` (`af_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `phpbb_tracker_aftpl` (
`id` smallint(5) NOT NULL AUTO_INCREMENT,
`af_name` varchar(64) COLLATE utf8_bin NOT NULL,
`af_descr` text COLLATE utf8_bin NOT NULL,
`af_subject` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
`af_data` text COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Код: Выделить всё
CREATE TABLE `phpbb_tracker_afftpl` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`addfields` varchar(64) binary NOT NULL DEFAULT '',
`addfields_hlp` mediumtext NOT NULL,
`addfields_br` varchar(255) binary NOT NULL DEFAULT '',
`addfields_br2` varchar(255) binary NOT NULL DEFAULT '',
`addfields_inall` tinyint(1) unsigned NOT NULL DEFAULT '0',
`addfields_ta` tinyint(1) unsigned NOT NULL DEFAULT '0',
`addfields_multi` tinyint(1) NOT NULL DEFAULT '0',
`addfields_bbcode` varchar(255) binary NOT NULL DEFAULT '',
`addfields_bbcodes` varchar(255) binary NOT NULL DEFAULT '',
`addfields_descr` varchar(128) binary NOT NULL DEFAULT '',
`addfields_enable` tinyint(1) unsigned NOT NULL DEFAULT '0',
`af_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`addfields_def` varchar(128) binary NOT NULL DEFAULT '',
`addfields_checkas` varchar(64) binary NOT NULL DEFAULT '',
`addfields_title` varchar(255) binary NOT NULL DEFAULT '',
`addfields_alias` mediumtext NOT NULL,
`addfields_skip` tinyint(1) unsigned NOT NULL DEFAULT '0',
`addfields_exists` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `addfields` (`addfields`),
KEY `addfields_enable` (`addfields_enable`)
) TYPE=MyISAM ;
CREATE TABLE `phpbb_tracker_afsets` (
`id` mediumint(8) NOT NULL AUTO_INCREMENT,
`af_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`af_name` varchar(32) binary NOT NULL DEFAULT '',
`af_count` tinyint(1) unsigned NOT NULL DEFAULT '0',
`af_order` smallint(3) unsigned NOT NULL DEFAULT '0',
`af_required` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `af_id` (`af_id`)
) TYPE=MyISAM ;
CREATE TABLE `phpbb_tracker_aftpl` (
`id` smallint(5) NOT NULL AUTO_INCREMENT,
`af_name` varchar(64) binary NOT NULL,
`af_descr` text NOT NULL,
`af_subject` varchar(255) binary NOT NULL DEFAULT '',
`af_data` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM ;
adm/style/acp_board.html перед
Код: Выделить всё
<!-- IF S_AUTH -->
<!-- BEGIN auth_tpl -->
Код: Выделить всё
<!-- IF S_ADDFIELDS_INC --><!-- INCLUDE acp_tracker_addfields.html --><!-- ENDIF -->
<!-- IF S_ADDFIELD_INC --><!-- INCLUDE acp_tracker_addfield.html --><!-- ENDIF -->
Код: Выделить всё
<!-- IF S_CAN_COPY_PERMISSIONS -->
<dl>
Код: Выделить всё
<dl>
<dt><label for="forum_addfields">{L_FORUM_ADDFIELDS}:</label><br /><span>{L_FORUM_ADDFIELDS_EXPLAIN}</span></dt>
<dd><select id="forum_addfields" name="forum_addfields"><option value="0">{L_NO_ADDFIELDS}</option>{S_ADDFIELDS_OPTIONS}</select></dd>
</dl>
Код: Выделить всё
case 'message':
$display_vars = array(
Код: Выделить всё
case 'addfields':
include_once("$phpbb_root_path/tracker/include/includes/acp/acp_board_add1_addfields.{$phpEx}");
break;
case 'addfield':
include_once("$phpbb_root_path/tracker/include/includes/acp/acp_board_add1_addfield.{$phpEx}");
break;
Код: Выделить всё
'legend2' => 'POSTING',
'bump_type' => false,
Код: Выделить всё
'ppkbb_addfields_type' => array('lang' => 'TRACKER_ADDFIELDS_TYPE', 'validate' => 'string', 'type' => 'text:1:1', 'method' => false, 'explain' => true,),
'ppkbb_addfields_pos' => array('lang' => 'TRACKER_ADDFIELDS_POS', 'validate' => 'int:0', 'type' => 'text:1:1', 'method' => false, 'explain' => true,),
Код: Выделить всё
'forum_password_confirm'=> request_var('forum_password_confirm', '', true),
'forum_password_unset' => request_var('forum_password_unset', false),
Код: Выделить всё
'forum_addfields' => request_var('forum_addfields', 0),
Код: Выделить всё
'forum_password' => '',
'forum_password_confirm'=> '',
Код: Выделить всё
'forum_addfields' => 0,
Код: Выделить всё
$template->assign_vars(array(
'S_EDIT_FORUM' => true,
Код: Выделить всё
$af_selects='';
$sql="SELECT * FROM ".TRACKER_ADDFIELDS_TPL."";
$result=$db->sql_query($sql);
while($row=$db->sql_fetchrow($result))
{
$af_select=@$forum_data['forum_addfields']==$row['id'] ? ' selected="selected"' : '';
$af_selects.='<option value="'.$row['id'].'"'.$af_select.'>'.$row['af_name'].'</option>';
}
$db->sql_freeresult($result);
Код: Выделить всё
'S_CAN_COPY_PERMISSIONS' => ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))) ? true : false,
Код: Выделить всё
'S_ADDFIELDS_OPTIONS' => $af_selects,
Код: Выделить всё
'load' => array('title' => 'ACP_LOAD_SETTINGS', 'auth' => 'acl_a_server', 'cat' => array('ACP_SERVER_CONFIGURATION')),
Код: Выделить всё
'addfields' => array('title' => 'ACP_ADDFIELDS_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_TRACKER')),
'addfield' => array('title' => 'ACP_ADDFIELD_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_TRACKER')),
Код: Выделить всё
// Additional tables
Код: Выделить всё
define('TRACKER_ADDFIELDS_TPL', $table_prefix . 'tracker_aftpl');
define('TRACKER_ADDFIELD_TPL', $table_prefix . 'tracker_afftpl');
define('TRACKER_ADDFIELDS_SETS', $table_prefix . 'tracker_afsets');
Код: Выделить всё
/**
* Determine whether we are approaching the maximum execution time. Should be called once
Код: Выделить всё
function get_forum_addfields($id, $forum_astracker=0)
{
global $db, $user, $torrent_addfield;
$lines=array();
$id=intval($id);
if($id)
{
$sql="SELECT afs.af_name, afs.af_required, afs.af_count, aft.af_descr, aft.af_subject FROM ".TRACKER_ADDFIELDS_SETS." afs, ".TRACKER_ADDFIELDS_TPL." aft WHERE afs.af_id='{$id}' AND afs.af_id=aft.id ORDER BY af_order";
$result=$db->sql_query($sql);
while($row=$db->sql_fetchrow($result))
{
$lines[]=$row['af_name'];
if($row['af_required'])
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_REQ'][$row['af_name']]=$row['af_required'];
}
if($row['af_count'])
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_COUNT'][$row['af_name']]=$row['af_count'];
}
if(!isset($torrent_addfield['TRACKER_FORUM_ADDFIELDS_DESCR']) && $row['af_descr']/* && $forum_astracker*/)
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_DESCR']=$row['af_descr'];
}
if(!isset($torrent_addfield['TRACKER_FORUM_ADDFIELDS_SUBJSTRING']) && $row['af_subject']/* && $forum_astracker*/)
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_SUBJSTRING']=$row['af_subject'];
}
}
$db->sql_freeresult($result);
}
if(/*$forum_astracker && */@$torrent_addfield['TRACKER_FORUM_ADDFIELDS_INALL'])
{
foreach($torrent_addfield['TRACKER_FORUM_ADDFIELDS_INALL'] as $k=>$v)
{
if($v && !in_array($k, $lines) && @$torrent_addfield['TRACKER_FORUM_ADDFIELDS'][$k])
{
$lines[]=$k;
}
}
}
isset($torrent_addfield['TRACKER_FORUM_ADDFIELDS_DESCR']) ? '' : $torrent_addfield['TRACKER_FORUM_ADDFIELDS_DESCR']='';
return $lines;
}
function get_torrent_addfield()
{
global $db, $user, $cache;
$torrent_addfield=array();
//$user->add_lang('mods/ppkbb3cker_addfields');
$torrent_addfield=$cache->get('_ppkbb3cker_addfield_cache');
if(!$torrent_addfield)
{
$sql='SELECT * FROM ' . TRACKER_ADDFIELD_TPL . " WHERE addfields_enable='1'";
$result=$db->sql_query($sql/*, 86400*/);
while($row=$db->sql_fetchrow($result))
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS'][$row['addfields']]=$row['addfields_descr'];
if($row['addfields_hlp']!='')
{
$addfields_hlp=array_map('trim', explode("\n", $row['addfields_hlp']));
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_HLP'][$row['addfields']]=sizeof($addfields_hlp) > 1 ? $addfields_hlp : trim($row['addfields_hlp']);
}
if($row['addfields_def']!='')
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_DEF'][$row['addfields']]=$row['addfields_def'];
}
if($row['addfields_br']!='')
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_BR'][$row['addfields']]=$row['addfields_br'];
}
if($row['addfields_br2']!='')
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_BR2'][$row['addfields']]=$row['addfields_br2'];
}
if($row['addfields_checkas']!='')
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_CHECKAS'][$row['addfields']]=$row['addfields_checkas'];
}
if($row['addfields_inall'])
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_INALL'][$row['addfields']]=$row['addfields_inall'];
}
if($row['addfields_ta'])
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_TA'][$row['addfields']]=$row['addfields_ta'];
}
if($row['addfields_multi'])
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_MULTI'][$row['addfields']]=$row['addfields_multi'];
}
if($row['addfields_bbcode']!='')
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_BBCODE'][$row['addfields']]=$row['addfields_bbcode'];
}
if($row['addfields_bbcodes']!='')
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_BBCODES'][$row['addfields']]=$row['addfields_bbcodes'];
}
if($row['addfields_title']!='')
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_TITLE'][$row['addfields']]=$row['addfields_title'];
}
if($row['addfields_alias']!='')
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_ALIAS'][$row['addfields']]=array_map('trim', explode("\n", $row['addfields_alias']));
}
if($row['addfields_skip'])
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_SKIP'][$row['addfields']]=$row['addfields_skip'];
}
if($row['addfields_exists'])
{
$torrent_addfield['TRACKER_FORUM_ADDFIELDS_EXISTS'][$row['addfields']]=$row['addfields_exists'];
}
}
$db->sql_freeresult($result);
}
$cache->put('_ppkbb3cker_addfield_cache', $torrent_addfield);
return $torrent_addfield;
}
Код: Выделить всё
function my_int_val($v=0)
Код: Выделить всё
function get_forum_addfields($id, $forum_astracker=0)
Код: Выделить всё
function my_int_val($v=0)
{
if(!$v || $v < 0)
{
return 0;
}
return @number_format($v+0, 0, '', '');
}
Код: Выделить всё
function my_float_val($v=0, $n=3)
Код: Выделить всё
function get_forum_addfields($id, $forum_astracker=0)
Код: Выделить всё
function my_float_val($v=0, $n=3)
{
if(!$v || $v < 0)
{
return "0.".str_repeat('0', $n);
}
return @number_format($v+0, $n, '.', '');
}
Код: Выделить всё
));
?>
Код: Выделить всё
'ACP_ADDFIELDS_SETTINGS' => 'Шаблоны дополнительных полей',
'ACP_ADDFIELD_SETTINGS' => 'Дополнительные поля',
'TRACKER_ADDFIELDS_TYPE' => 'Дополнительные поля',
'TRACKER_ADDFIELDS_TYPE_EXPLAIN' => 'Значение 0 - отображать дополнительные поля до формы сообщения, значение 1 - отображать дополнительные поля вместе с формой сообщения (<font color="#FF0000">при значении опции равным 1 будет невозможно определять дополнительные поля как обязательные для заполнения</font>)',
'TRACKER_ADDFIELDS_POS' => 'Положение дополнительных полей',
'TRACKER_ADDFIELDS_POS_EXPLAIN' => 'Значение 1 - добавлять значения дополнительных полей в конец сообщения, значение 0 - в начало сообщения (будет действовать только для вновь добавленных/отредактированных сообщений)',
Код: Выделить всё
));
?>
Код: Выделить всё
'FORUM_ADDFIELDS' => 'Дополнительные поля для форума',
'FORUM_ADDFIELDS_EXPLAIN' => 'Отображаются при добавлении новой темы',
'COPY_ADDFIELDS'=> 'Копировать дополнительные поля форума из',
'COPY_ADDFIELDS_EXPLAIN'=> 'Если вы выбрали копирование дополнительных полей, форуму будут присвоены те же дополнительные поля, что и выбранному здесь. Все ранее установленные дополнительные поля к этому форуму будут при этом заменены. Если форум не выбран, будут сохранены текущие дополнительные поля.',
'NO_ADDFIELDS'=> 'Без дополнительных полей',
'NO_ADDFIELDS2'=> 'Не копировать дополнительные поля',
Код: Выделить всё
));
?>
Код: Выделить всё
'TRACKER_ADDFIELDS' => 'Дополнительные поля',
'TRACKER_ADDFIELDS_EXAMPLE' => 'Пример',
Код: Выделить всё
));
?>
Код: Выделить всё
'ADDFIELDS_REQUIRED'=>'Заполните дополнительные поля',
'ADDFIELDS_REQUIRED_FIELD'=>'поле',
'ADDFIELDS_REQUIRED_EXISTS'=>'поле <u>%s</u> может содержать вариант только из предложенных',
'ADDFIELDS_REQUIRED_FIELDS'=>'<u>Подчёркнутые</u> поля являются обязательными для заполнения, для множественных полей в (скобках) указано минимально необходимое количество полей для заполнения',
'ADDFIELDS_REQUIRED_MIN'=>'минимум %s поля(ей) %s',
'ADDFIELDS_CHECK_FUNCTION' => 'ошибка заполнения поля <u>%s</u>',
'ADDFIELDS_MULTIHLP' => 'Для выбора более одного значения удерживайте нажатой клавишу <b>Ctrl</b>',
Код: Выделить всё
$draft_id = request_var('d', 0);
$lastclick = request_var('lastclick', 0);
Код: Выделить всё
$posting_page=1;
$array_addfields=array();
Код: Выделить всё
$result = $db->sql_query($sql);
$post_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
Код: Выделить всё
if(@$post_data['forum_addfields'])
{
$torrent_addfield=get_torrent_addfield();
$array_addfields=get_forum_addfields(@$post_data['forum_addfields'], 0);
}
Код: Выделить всё
if ($submit || $preview || $refresh)
{
Код: Выделить всё
if($mode == 'post' || ($mode == 'edit' && $post_id == $post_data['topic_first_post_id']))
{
if($array_addfields)
{
include_once($phpbb_root_path.'tracker/include/posting_addfields2_add1.'.$phpEx);
include_once($phpbb_root_path.'tracker/include/posting_addfields2_add2.'.$phpEx);
}
}
Код: Выделить всё
// Start assigning vars for main posting page ...
$template->assign_vars(array(
Код: Выделить всё
$addfields_type_switch=!$submit && !$preview/* && !$config['ppkbb_addfields_type']*/ && sizeof($array_addfields) && $mode=='post' && !request_var('message', '', true) ? true : false;
$addfields_inform_place=/*!$config['ppkbb_addfields_type'] && */$config['ppkbb_addfields_type'] ? true : false;
Код: Выделить всё
// Start assigning vars for main posting page ...
$template->assign_vars(array(
Код: Выделить всё
'ADDFIELDS_DESCR' => sizeof($array_addfields) ? $torrent_addfield['TRACKER_FORUM_ADDFIELDS_DESCR'] : '',
'ADDFIELDS_TYPE' => /*!$config['ppkbb_addfields_type'] && */$config['ppkbb_addfields_type'] ? true : (/*$config['ppkbb_addfields_type'][0] ? true : */false),
'ADDFIELDS_TYPE_SWITCH' => /*!$config['ppkbb_addfields_type'] && */$config['ppkbb_addfields_type'] ? false : $addfields_type_switch,
'ADDFIELDS_INFORM_PLACE' => $addfields_inform_place,
Код: Выделить всё
// Build custom bbcodes array
display_custom_bbcodes();
Код: Выделить всё
if($mode == 'post' || ($mode == 'edit' && $post_id == $post_data['topic_first_post_id']))
{
if($array_addfields)
{
include_once($phpbb_root_path.'tracker/include/posting_addfields2_add2.'.$phpEx);
}
}
Код: Выделить всё
var panels = new Array('options-panel', 'attach-panel', 'poll-panel'
Код: Выделить всё
<!-- IF FORUM_ADDFIELDS -->, 'addfields-panel'<!-- ENDIF -->
Код: Выделить всё
<!-- IF S_SHOW_POLL_BOX || S_POLL_DELETE --><li id="poll-panel-tab"><a href="#tabs" onclick="subPanels('poll-panel'); return false;"><span>{L_ADD_POLL}</span></a></li><!-- ENDIF -->
Код: Выделить всё
<!-- IF FORUM_ADDFIELDS and ADDFIELDS_TYPE --><li id="addfields-panel-tab"><a href="#tabs" onclick="subPanels('addfields-panel'); return false;"><span>{L_TRACKER_ADDFIELDS}</span></a></li><!-- ENDIF -->
Код: Выделить всё
<!-- IF S_DISPLAY_PREVIEW --><!-- INCLUDE posting_preview.html --><!-- ENDIF -->
Код: Выделить всё
<!-- IF ADDFIELDS_TYPE_SWITCH and FORUM_ADDFIELDS -->
<div class="panel bg3" id="addfields-panel">
<div class="inner"><span class="corners-top"><span></span></span>
<h3>{L_POST_A}</h3>
<!-- IF ADDFIELDS_DESCR -->
<p style="width:100%;">
<span>{ADDFIELDS_DESCR}</span>
</p>
<!-- ENDIF -->
<fieldset class="fields2">
<dl style="clear: left;">
<dt><b>{L_TRACKER_ADDFIELDS}</b>:</dt>
<dd><!-- IF not ADDFIELDS_INFORM_PLACE -->{L_ADDFIELDS_REQUIRED_FIELDS}<!-- ENDIF --></dd>
</dl>
<!-- BEGIN addfields_option -->
<dl>
<dt><b>{addfields_option.ADDFIELDS_NAME}</b><!-- IF addfields_option.ADDFIELDS_DESCR --> <a class="my_tt" title="{addfields_option.ADDFIELDS_DESCR}"><img src="{addfields_option.ADDFIELDS_DESCR_SRC_IMG}" /></a><!-- ENDIF -->:</dt>
<dd>
<!-- IF .addfields_option.fields -->
<!-- BEGIN fields -->
<!-- IF addfields_option.ADDFIELD_TYPE == 'TA' -->
[{addfields_option.fields.ADDFIELD_I}] <textarea id="af_{addfields_option.fields.ADDFIELD_KEY}" rows="3" cols="35" name="{addfields_option.fields.ADDFIELD_KEY}">{addfields_option.fields.ADDFIELD_VALUE}</textarea><!-- IF not addfields_option.fields.S_LAST_ROW --><br /><!-- ENDIF -->
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'T' -->
[{addfields_option.fields.ADDFIELD_I}] <input id="af_{addfields_option.fields.ADDFIELD_KEY}" size="45" type="text" name="{addfields_option.fields.ADDFIELD_KEY}" value="{addfields_option.fields.ADDFIELD_VALUE}" /><!-- IF not addfields_option.fields.S_LAST_ROW --><br /><!-- ENDIF --><!-- END fields -->
<!-- ENDIF -->
<!-- ELSE -->
<!-- IF addfields_option.ADDFIELD_TYPE == 'TA' -->
<textarea id="af_{addfields_option.ADDFIELD_KEY}" rows="3" cols="35" name="{addfields_option.ADDFIELD_KEY}">{addfields_option.ADDFIELD_VALUE}</textarea>
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'T' -->
<input id="af_{addfields_option.ADDFIELD_KEY}" size="45" type="text" name="{addfields_option.ADDFIELD_KEY}" value="{addfields_option.ADDFIELD_VALUE}" />
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'SEL' -->
<select name="{addfields_option.ADDFIELD_KEY}[]" multiple="multiple" style="width:300px;">{addfields_option.ADDFIELD_VALUE}</select>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- IF addfields_option.ADDFIELD_HELP -->
<br /><!-- IF addfields_option.ADDFIELD_HELP_TYPE != 'MLT' -->{L_TRACKER_ADDFIELDS_EXAMPLE}: <!-- ENDIF -->
<!-- IF addfields_option.ADDFIELD_HELP_TYPE == 'SEL' -->
<select name="ins_{addfields_option.ADDFIELD_HELP_KEY}" onchange="this.form.{addfields_option.ADDFIELD_HELP_KEY}.value=this.form.ins_{addfields_option.ADDFIELD_HELP_KEY}.value;">{addfields_option.ADDFIELD_HELP}</select>
<!-- ELSE -->
{addfields_option.ADDFIELD_HELP}
<!-- ENDIF -->
<!-- ENDIF -->
</dd>
</dl>
<!-- END addfields_option -->
</fieldset>
<span class="corners-bottom"><span></span></span></div>
</div>
<div class="panel bg2">
<div class="inner"><span class="corners-top"><span></span></span>
<fieldset class="submit-buttons">
<input type="hidden" name="addf_switch" value="1" />
{S_HIDDEN_ADDRESS_FIELD}
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" tabindex="5" id="pf_preview" name="preview" value="{L_PREVIEW}" class="button1"<!-- IF not S_PRIVMSGS --> onclick="document.getElementById('postform').action += '#preview';"<!-- ENDIF --> />
</fieldset>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- ELSE -->
Код: Выделить всё
<!-- IF S_SHOW_ATTACH_BOX --><!-- INCLUDE posting_attach_body.html --><!-- ENDIF -->
Код: Выделить всё
<!-- IF FORUM_ADDFIELDS and ADDFIELDS_TYPE -->
<div class="panel bg3" id="addfields-panel">
<div class="inner"><span class="corners-top"><span></span></span>
<!-- IF ADDFIELDS_DESCR -->
<p style="width:100%;">
<span>{ADDFIELDS_DESCR}</span>
</p>
<!-- ENDIF -->
<fieldset class="fields2">
<dl style="clear: left;">
<dt><b>{L_TRACKER_ADDFIELDS}</b>:</dt>
<dd><!-- IF not ADDFIELDS_INFORM_PLACE -->{L_ADDFIELDS_REQUIRED_FIELDS}<!-- ENDIF --></dd>
</dl>
<!-- BEGIN addfields_option -->
<dl>
<dt><b>{addfields_option.ADDFIELDS_NAME}</b><!-- IF addfields_option.ADDFIELDS_DESCR --> <a class="my_tt" title="{addfields_option.ADDFIELDS_DESCR}"><img src="{addfields_option.ADDFIELDS_DESCR_SRC_IMG}" /></a><!-- ENDIF -->:</dt>
<dd>
<!-- IF .addfields_option.fields -->
<!-- BEGIN fields -->
<!-- IF addfields_option.ADDFIELD_TYPE == 'TA' -->
[{addfields_option.fields.ADDFIELD_I}] <textarea id="af_{addfields_option.fields.ADDFIELD_KEY}" rows="3" cols="35" name="{addfields_option.fields.ADDFIELD_KEY}">{addfields_option.fields.ADDFIELD_VALUE}</textarea><!-- IF not addfields_option.fields.S_LAST_ROW --><br /><!-- ENDIF -->
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'T' -->
[{addfields_option.fields.ADDFIELD_I}] <input id="af_{addfields_option.fields.ADDFIELD_KEY}" size="45" type="text" name="{addfields_option.fields.ADDFIELD_KEY}" value="{addfields_option.fields.ADDFIELD_VALUE}" /><!-- IF not addfields_option.fields.S_LAST_ROW --><br /><!-- ENDIF --><!-- END fields -->
<!-- ENDIF -->
<!-- ELSE -->
<!-- IF addfields_option.ADDFIELD_TYPE == 'TA' -->
<textarea id="af_{addfields_option.ADDFIELD_KEY}" rows="3" cols="35" name="{addfields_option.ADDFIELD_KEY}">{addfields_option.ADDFIELD_VALUE}</textarea>
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'T' -->
<input id="af_{addfields_option.ADDFIELD_KEY}" size="45" type="text" name="{addfields_option.ADDFIELD_KEY}" value="{addfields_option.ADDFIELD_VALUE}" />
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'SEL' -->
<select name="{addfields_option.ADDFIELD_KEY}[]" multiple="multiple" style="width:300px;">{addfields_option.ADDFIELD_VALUE}</select>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- IF addfields_option.ADDFIELD_HELP -->
<br /><!-- IF addfields_option.ADDFIELD_HELP_TYPE != 'MLT' -->{L_TRACKER_ADDFIELDS_EXAMPLE}: <!-- ENDIF -->
<!-- IF addfields_option.ADDFIELD_HELP_TYPE == 'SEL' -->
<select name="ins_{addfields_option.ADDFIELD_HELP_KEY}" onchange="this.form.{addfields_option.ADDFIELD_HELP_KEY}.value=this.form.ins_{addfields_option.ADDFIELD_HELP_KEY}.value;">{addfields_option.ADDFIELD_HELP}</select>
<!-- ELSE -->
{addfields_option.ADDFIELD_HELP}
<!-- ENDIF -->
<!-- ENDIF -->
</dd>
</dl>
<!-- END addfields_option -->
</fieldset>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- ENDIF -->
Код: Выделить всё
<!-- ENDIF -->
<!-- IF not S_PRIVMSGS -->
Код: Выделить всё
<!-- ENDIF -->
Код: Выделить всё
<!-- IF S_SHOW_TOPIC_ICONS or S_SHOW_PM_ICONS -->
Код: Выделить всё
<!-- IF ADDFIELDS_TYPE_SWITCH and FORUM_ADDFIELDS -->
<!-- ELSE -->
Код: Выделить всё
<!-- IF not S_PRIVMSGS and S_DISPLAY_USERNAME -->
Код: Выделить всё
<!-- ENDIF -->
Код: Выделить всё
<tr>
<td class="row1" width="22%"><b class="genmed">{L_SUBJECT}:</b></td>
Код: Выделить всё
<!-- IF ADDFIELDS_TYPE_SWITCH and FORUM_ADDFIELDS -->
<tr>
<td colspan="2" class="row1">
<table cellpadding="1" width="100%">
<!-- IF ADDFIELDS_DESCR -->
<tr>
<td colspan="2" class="row1"><span>{ADDFIELDS_DESCR}</span></td>
</tr>
<!-- ENDIF -->
<tr>
<td class="row1" width="22%"><b>{L_TRACKER_ADDFIELDS}</b>:</td>
<td class="row2"><!-- IF not ADDFIELDS_INFORM_PLACE -->{L_ADDFIELDS_REQUIRED_FIELDS}<!-- ENDIF --></td>
</tr>
<!-- BEGIN addfields_option -->
<tr>
<td class="row1"><b>{addfields_option.ADDFIELDS_NAME}</b><!-- IF addfields_option.ADDFIELDS_DESCR --> <a class="my_tt" title="{addfields_option.ADDFIELDS_DESCR}"><img src="{addfields_option.ADDFIELDS_DESCR_SRC_IMG}" /></a><!-- ENDIF -->:</td>
<td class="row2">
<!-- IF .addfields_option.fields -->
<!-- BEGIN fields -->
<!-- IF addfields_option.ADDFIELD_TYPE == 'TA' -->
[{addfields_option.fields.ADDFIELD_I}] <textarea id="af_{addfields_option.fields.ADDFIELD_KEY}" rows="3" cols="35" name="{addfields_option.fields.ADDFIELD_KEY}">{addfields_option.fields.ADDFIELD_VALUE}</textarea><!-- IF not addfields_option.fields.S_LAST_ROW --><br /><!-- ENDIF -->
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'T' -->
[{addfields_option.fields.ADDFIELD_I}] <input id="af_{addfields_option.fields.ADDFIELD_KEY}" size="45" type="text" name="{addfields_option.fields.ADDFIELD_KEY}" value="{addfields_option.fields.ADDFIELD_VALUE}" /><!-- IF not addfields_option.fields.S_LAST_ROW --><br /><!-- ENDIF --><!-- END fields -->
<!-- ENDIF -->
<!-- ELSE -->
<!-- IF addfields_option.ADDFIELD_TYPE == 'TA' -->
<textarea id="af_{addfields_option.ADDFIELD_KEY}" rows="3" cols="35" name="{addfields_option.ADDFIELD_KEY}">{addfields_option.ADDFIELD_VALUE}</textarea>
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'T' -->
<input id="af_{addfields_option.ADDFIELD_KEY}" size="45" type="text" name="{addfields_option.ADDFIELD_KEY}" value="{addfields_option.ADDFIELD_VALUE}" />
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'SEL' -->
<select name="{addfields_option.ADDFIELD_KEY}[]" multiple="multiple" style="width:300px;">{addfields_option.ADDFIELD_VALUE}</select>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- IF addfields_option.ADDFIELD_HELP -->
<br /><!-- IF addfields_option.ADDFIELD_HELP_TYPE != 'MLT' -->{L_TRACKER_ADDFIELDS_EXAMPLE}: <!-- ENDIF -->
<!-- IF addfields_option.ADDFIELD_HELP_TYPE == 'SEL' -->
<select name="ins_{addfields_option.ADDFIELD_HELP_KEY}" onchange="this.form.{addfields_option.ADDFIELD_HELP_KEY}.value=this.form.ins_{addfields_option.ADDFIELD_HELP_KEY}.value;">{addfields_option.ADDFIELD_HELP}</select>
<!-- ELSE -->
{addfields_option.ADDFIELD_HELP}
<!-- ENDIF -->
<!-- ENDIF -->
</td>
</tr>
<!-- END addfields_option -->
</table>
</td>
</tr>
<tr>
<td class="cat" colspan="2" align="center">
<input type="hidden" name="addf_switch" value="1" />
<input class="btnlite" type="submit" tabindex="5" name="preview" value="{L_PREVIEW}" />
</td>
</tr>
<!-- ELSE -->
Код: Выделить всё
<!-- DEFINE $CAPTCHA_TAB_INDEX = 4 -->
<!-- INCLUDE {CAPTCHA_TEMPLATE} -->
<!-- ENDIF -->
Код: Выделить всё
<!-- IF FORUM_ADDFIELDS and ADDFIELDS_TYPE -->
<tr>
<th colspan="2">{L_TRACKER_ADDFIELDS}</th>
</tr>
<tr>
<td colspan="2" class="row1">
<table cellpadding="1" width="100%">
<!-- IF ADDFIELDS_DESCR -->
<tr>
<td colspan="2" class="row1"><span>{ADDFIELDS_DESCR}</span></td>
</tr>
<!-- ENDIF -->
<tr>
<td class="row1" width="22%"><b>{L_TRACKER_ADDFIELDS}</b>:</td>
<td class="row2"><!-- IF not ADDFIELDS_INFORM_PLACE -->{L_ADDFIELDS_REQUIRED_FIELDS}<!-- ENDIF --></td>
</tr>
<!-- BEGIN addfields_option -->
<tr>
<td class="row1"><b>{addfields_option.ADDFIELDS_NAME}</b><!-- IF addfields_option.ADDFIELDS_DESCR --> <a class="my_tt" title="{addfields_option.ADDFIELDS_DESCR}"><img src="{addfields_option.ADDFIELDS_DESCR_SRC_IMG}" /></a><!-- ENDIF -->:</td>
<td class="row2">
<!-- IF .addfields_option.fields -->
<!-- BEGIN fields -->
<!-- IF addfields_option.ADDFIELD_TYPE == 'TA' -->
[{addfields_option.fields.ADDFIELD_I}] <textarea id="af_{addfields_option.fields.ADDFIELD_KEY}" rows="3" cols="35" name="{addfields_option.fields.ADDFIELD_KEY}">{addfields_option.fields.ADDFIELD_VALUE}</textarea><!-- IF not addfields_option.fields.S_LAST_ROW --><br /><!-- ENDIF -->
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'T' -->
[{addfields_option.fields.ADDFIELD_I}] <input id="af_{addfields_option.fields.ADDFIELD_KEY}" size="45" type="text" name="{addfields_option.fields.ADDFIELD_KEY}" value="{addfields_option.fields.ADDFIELD_VALUE}" /><!-- IF not addfields_option.fields.S_LAST_ROW --><br /><!-- ENDIF --><!-- END fields -->
<!-- ENDIF -->
<!-- ELSE -->
<!-- IF addfields_option.ADDFIELD_TYPE == 'TA' -->
<textarea id="af_{addfields_option.ADDFIELD_KEY}" rows="3" cols="35" name="{addfields_option.ADDFIELD_KEY}">{addfields_option.ADDFIELD_VALUE}</textarea>
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'T' -->
<input id="af_{addfields_option.ADDFIELD_KEY}" size="45" type="text" name="{addfields_option.ADDFIELD_KEY}" value="{addfields_option.ADDFIELD_VALUE}" />
<!-- ELSEIF addfields_option.ADDFIELD_TYPE == 'SEL' -->
<select name="{addfields_option.ADDFIELD_KEY}[]" multiple="multiple" style="width:300px;">{addfields_option.ADDFIELD_VALUE}</select>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- IF addfields_option.ADDFIELD_HELP -->
<br /><!-- IF addfields_option.ADDFIELD_HELP_TYPE != 'MLT' -->{L_TRACKER_ADDFIELDS_EXAMPLE}: <!-- ENDIF -->
<!-- IF addfields_option.ADDFIELD_HELP_TYPE == 'SEL' -->
<select name="ins_{addfields_option.ADDFIELD_HELP_KEY}" onchange="this.form.{addfields_option.ADDFIELD_HELP_KEY}.value=this.form.ins_{addfields_option.ADDFIELD_HELP_KEY}.value;">{addfields_option.ADDFIELD_HELP}</select>
<!-- ELSE -->
{addfields_option.ADDFIELD_HELP}
<!-- ENDIF -->
<!-- ENDIF -->
</td>
</tr>
<!-- END addfields_option -->
</table>
</td>
</tr>
<!-- ENDIF -->
Код: Выделить всё
</table>
<!-- IF not S_PRIVMSGS -->
Код: Выделить всё
<!-- ENDIF -->
5. Настроить опции, адм. раздел - вкладка Общие - Размещение сообщений - Дополнительные поля/Положение дополнительных полей.
6. Установить модули:
6.1. Адм. раздел - вкладка Система - адм. раздел - ссылка Общие - ссылка Конфигурация - справа внизу ищем в форме напротив кнопки Добавить модуль: Управление конференцией [acp_board] -> Шаблоны дополнительных полей - жмём: Добавить модуль - Да - Вернуться на предыдущую страницу - напротив: Шаблоны дополнительных полей жмём ссылку: включить
6.2. Адм. раздел - вкладка Система - адм. раздел - ссылка Общие - ссылка Конфигурация - справа внизу ищем в форме напротив кнопки Добавить модуль: Управление конференцией [acp_board] -> Дополнительные поля - жмём: Добавить модуль - Да - Вернуться на предыдущую страницу - напротив: Дополнительные поля жмём ссылку: включить
--
Скриншоты:
Опция в адм. разделе
Шаблоны доп. полей
Поля в шаблоне
Выбор шаблона в форуме
Дополнительные поля
Опции дополнительного поля
Создание темы (доп. поля до формы сообщения)
Создание темы (доп. поля после формы сообщения)
Предпросмотр темы
Тема
--
Для пользователей ppkBB3cker - НЕ нужно устанавливать данный мод в трекер, он уже там установлен.