Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/applications/forums/skin_cp/cp_skin_forums.php
Строк: 1465
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* Forums skin functions
* Last Updated: $LastChangedDate: 2013-03-21 11:03:13 -0400 (Thu, 21 Mar 2013) $
* </pre>
*
* @author $Author: mmecham $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Forums
* @link http://www.invisionpower.com
* @since 14th May 2003
* @version $Rev: 12100 $
*/
class cp_skin_forums
{
/**
* Registry Object Shortcuts
*
* @var $registry
* @var $DB
* @var $settings
* @var $request
* @var $lang
* @var $member
* @var $memberData
* @var $cache
* @var $caches
*/
protected $registry;
protected $DB;
protected $settings;
protected $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
protected $caches;
/**
* Constructor
*
* @param object $registry Registry object
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
$this->registry = $registry;
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->member = $this->registry->member();
$this->memberData =& $this->registry->member()->fetchMemberData();
$this->cache = $this->registry->cache();
$this->caches =& $this->registry->cache()->fetchCaches();
$this->lang = $this->registry->class_localization;
}
/**
* Forum wrapper
*
* @param string Content
* @param array Forum data
* @return string HTML
*/
public function forumWrapper( $content, $r ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div id='cat_{$r['id']}' class='isDraggable parentCat'>
<div class='root_item item category clearfix ipsControlRow parent'>
<div class='col_buttons right' style='white-space: nowrap'>
<ul class='ipsControlStrip'>
<li class='i_add'>
<a href='{$this->settings['base_url']}{$this->form_code}do=forum_add&p={$r['id']}' title='{$this->lang->words['frm_newforum']}'>{$this->lang->words['frm_newforum']}</a>
</li>
<li class='i_edit'>
<a href='{$this->settings['base_url']}{$this->form_code}do=edit&f={$r['id']}' title='{$this->lang->words['frm_editsettings']}'>{$this->lang->words['frm_editsettings']}</a>
</li>
<li class='ipsControlStrip_more ipbmenu' id="menum-{$r['id']}">
<a href='#'>{$this->lang->words['frm_options']}</a>
</li>
</ul>
<ul class='acp-menu' id='menum-{$r['id']}_menucontent' style='display: none'>
<li class='icon info'><a href='{$this->settings['base_url']}{$this->form_code}do=pedit&f={$r['id']}'>{$this->lang->words['frm_permissions']}</a></li>
<li class='icon delete'><a href='{$this->settings['base_url']}{$this->form_code}do=delete&f={$r['id']}'>{$this->lang->words['frm_deletecat']}</a></li>
<li class='icon edit'><a href='{$this->settings['base_url']}{$this->form_code}do=edit&f={$r['id']}&nocat=1'>{$this->lang->words['cat_to_forum']}</a></li>
<li class='icon view'><a href='{$this->settings['base_url']}{$this->form_code}do=skinedit&f={$r['id']}'>{$this->lang->words['frm_skinopt']}</a></li>
</ul>
</div>
<a href='#' class='toggle'>Toggle</a>
<div class='draghandle'> </div>
<div class='item_info'>
<img src='{$this->settings['skin_acp_url']}/images/icons/folder.png' />
<strong class='larger_text'>{$r['name']}</strong>
</div>
</div>
<div id='cat_wrap_{$r['id']}' class='item_wrap'>
{$content}
</div>
</div>
<script type="text/javascript">
dropItLikeItsHot{$r['id']} = function( draggableObject, mouseObject )
{
var options = {
method : 'post',
parameters : Sortable.serialize( 'cat_wrap_{$r['id']}', { tag: 'div', name: 'forums' } )
};
new Ajax.Request( "{$this->settings['base_url']}{$this->form_code_js}&do=doreorder&md5check={$this->registry->adminFunctions->getSecurityKey()}".replace( /&/g, '&' ), options );
return false;
};
Sortable.create( 'cat_wrap_{$r['id']}', { tag: 'div', only: 'isDraggable', revert: true, format: 'forum_([0-9]+)', onUpdate: dropItLikeItsHot{$r['id']}, handle: 'draghandle' } );
</script>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display forum header
*
* @return string HTML
*/
public function renderForumHeader() {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['for_title']}</h2>
<ul class='context_menu'>
<li>
<a href='{$this->settings['base_url']}{$this->form_code}module=forums&do=forum_add&forum_id={$this->request['f']}&type=forum'>
<img src='{$this->settings['skin_acp_url']}/images/icons/add.png' alt='' />
{$this->lang->words['forums_context_add_forum']}
</a>
</li>
<li>
<a href='{$this->settings['base_url']}{$this->form_code}module=forums&do=forum_add&forum_id={$this->request['f']}&type=category'>
<img src='{$this->settings['skin_acp_url']}/images/icons/folder_add.png' alt='' />
{$this->lang->words['forums_context_add_category']}
</a>
</li>
</ul>
</div>
<script type='text/javascript' src='{$this->settings['js_app_url']}acp.forums.js'></script>
<div class='acp-box'>
<h3>{$this->lang->words['for_forumscap']}</h3>
<div class='ipsExpandable' id='forum_wrapper'>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display single forum moderator entry
*
* @param array Moderator data
* @param integer Forum ID
* @return string HTML
*/
public function renderModeratorEntry( $data=array() ) {
$return_id = intval( $this->request['f'] );
$IPBHTML = "";
//--starthtml--//
//print_r( $data );
if( count( $data ) )
{
$c = count( $data );
$IPBHTML .= <<<HTML
<ul class='multi_menu' id='modmenu{$data[0]['randId']}'>
<li>
<a href='#' class='ipsBadge badge_green'>{$c} {$this->lang->words['frm_moderators']}</a>
<ul class='acp-menu'>
HTML;
foreach( $data as $i => $d )
{
$IPBHTML .= <<<HTML
<li>
<span class='clickable'>{$d['_fullname']}</span>
<ul class='acp-menu'>
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}section=moderator&act=mod&do=remove&mid={$d['mid']}&fid=all");'>{$this->lang->words['frm_modremoveall']}</a></li>
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}section=moderator&act=mod&do=remove&mid={$d['mid']}&fid={$d['forum_id']}");'>{$this->lang->words['frm_modremove']}</a></li>
<li class='icon edit'><a href='{$this->settings['base_url']}section=moderator&act=mod&do=edit&mid={$d['mid']}&return_id={$this->registry->class_forums->forum_by_id[ $d['forum_id'] ]['parent_id']}'>{$this->lang->words['frm_modedit']}</a></li>
</ul>
</li>
HTML;
}
$IPBHTML .= <<<HTML
</ul>
</li>
</ul>
<script type='text/javascript'>
jQ("#modmenu{$data[0]['randId']}").ipsMultiMenu();
</script>
HTML;
}
//--endhtml--//
return $IPBHTML;
}
/**
* Display forum footer
*
* @return string HTML
*/
public function renderForumFooter() {
$return_id = intval( $this->request['f'] );
//-----------------------------------------
// Member groups menu
//-----------------------------------------
$mem_group = "<select name='group' class='dropdown'>";
foreach( $this->caches['group_cache'] as $r )
{
$mem_group .= "<option value='{$r['g_id']}'>{$r['g_title']}</option>n";
}
$mem_group .= "</select>";
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
</div>
<form method='post' action='{$this->settings['base_url']}module=forums&section=moderator&do=add' onsubmit='return ACPForums.submitModForm()'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<input type='hidden' name='modforumids' id='modforumids' />
<input type='hidden' name='return_id' value='{$return_id}' />
<div class='acp-actionbar rightaction'>
{$this->lang->words['frm_modname']} <input class='input_text' type='text' name='name' id='modUserName' size='20' value='' /> {$this->lang->words['frm_modorgroup']} {$mem_group}
<input type='submit' class='realbutton' value='{$this->lang->words['frm_modaddtxt']}' />
</div>
</form>
</div>
<script type="text/javascript">
dropItLikeItsHot = function( draggableObject, mouseObject )
{
var options = {
method : 'post',
parameters : Sortable.serialize( 'forum_wrapper', { tag: 'div', name: 'forums' } )
};
new Ajax.Request( "{$this->settings['base_url']}&{$this->form_code_js}&do=doreorder&md5check={$this->registry->adminFunctions->getSecurityKey()}".replace( /&/g, '&' ), options );
return false;
};
Sortable.create( 'forum_wrapper', { tag: 'div', only: 'isDraggable', revert: true, format: 'cat_([0-9]+)', onUpdate: dropItLikeItsHot, handle: 'draghandle' } );
</script>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Render a forum row
*
* @param string Description
* @param array Forum data
* @param string Depth guide
* @param string Skin used
* @return string HTML
*/
public function renderForumRow( $desc, $r, $depth_guide, $skin ) {
$IPBHTML = "";
//--starthtml--//
if( $depth_guide )
{
$IPBHTML .= <<<HTML
<div class='item parent ipsControlRow isDraggable' id='forum_{$r['id']}'>
HTML;
}
else
{
$IPBHTML .= <<<HTML
<div class='item ipsControlRow isDraggable' id='forum_{$r['id']}'>
HTML;
}
$IPBHTML .= <<<HTML
<table style='width: 100%'>
<tr>
<td style='width: 20px !important; vertical-align: top;'>
<div class='draghandle'> </div>
</td>
<td style=''>
<div class='item_info'>
<strong class='forum_name'>{$r['name']}</strong>
<br />
<span class='desctext'>{$desc}</span>
</div>
</td>
<td style='width: 120px; text-align: left; vertical-align: top;'>
{$r['_modstring']}
</td>
<td style='width: 120px; vertical-align: top;'>
<input class='right' type='checkbox' title='{$this->lang->words['frm_modcheck']}' id='id_{$r['id']}' value='1' />
<div class='col_buttons right'>
<ul class='ipsControlStrip'>
<li class='i_edit'>
<a href='{$this->settings['base_url']}&{$this->form_code}&do=edit&f={$r['id']}'>{$this->lang->words['frm_editsettings']}</a>
</li>
<li class='ipsControlStrip_more ipbmenu' id="menu{$r['id']}">
<a href='#'>{$this->lang->words['frm_options']}</a>
</li>
</ul>
<ul class='acp-menu' id='menu{$r['id']}_menucontent' style='display: none'>
<li class='icon info'><a href='{$this->settings['base_url']}&{$this->form_code}&do=pedit&f={$r['id']}'>{$this->lang->words['frm_permissions']}</a></li>
<li class='icon delete'><a href='{$this->settings['base_url']}&{$this->form_code}&do=empty&f={$r['id']}'>{$this->lang->words['frm_emptyforum']}</a></li>
<li class='icon delete'><a href='{$this->settings['base_url']}&{$this->form_code}&do=delete&f={$r['id']}'>{$this->lang->words['frm_deleteforum']}</a></li>
<li class='icon edit'><a href='{$this->settings['base_url']}&{$this->form_code}&do=frules&f={$r['id']}'>{$this->lang->words['frm_forumrules']}</a></li>
<li class='icon manage'><a href='{$this->settings['base_url']}&module=tools&section=tools&do=clearforumsubs&f={$r['id']}'>{$this->lang->words['m_clearsubs']}</a></li>
<li class='icon view'><a href='{$this->settings['base_url']}&{$this->form_code}&do=skinedit&f={$r['id']}'>{$this->lang->words['frm_skinopt']}</a></li>
<li class='icon manage'><a href='{$this->settings['base_url']}&{$this->form_code}&do=forum_add&duplicate=1&f={$r['id']}'>{$this->lang->words['forum_duplicate']}</a></li>
<li class='icon refresh'><a href='{$this->settings['base_url']}&{$this->form_code}&do=recount&f={$r['id']}'>{$this->lang->words['frm_resync']}</a></li>
</ul>
</div>
</td>
</tr>
</table>
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display "no forums" row
*
* @param integer Parent ID
* @return string HTML
*/
public function renderNoForums( $parent_id ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='item parent ipsControlRow' id='forum_none{$parent_id}'>
<strong style='font-size:11px;color:red;'>{$this->lang->words['frm_noforums']}</strong>
<div><a href='{$this->settings['base_url']}{$this->form_code}&do=forum_add&p={$parent_id}'>{$this->lang->words['frm_noforumslink']}</a></div>
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display forum permissions matrix
*
* @param array Forum data
* @param array Relative links
* @param string Matrix HTML
* @param array ..of Forum Data
* @return string HTML
*/
public function forumPermissionForm( $forum, $relative, $perm_matrix, $forumData=array(), $forumCopyDropDown ) {
$IPBHTML = "";
//--starthtml--//
$title = urlencode($forum['name']);
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['head_forum_permissions']} {$forumData['name']}</h2>
</div>
<form name='permCopyForm' id='permCopyForm' class='information-box' style='margin-bottom:10px;' action='{$this->settings['base_url']}&{$this->form_code}&do=pedit&f={$this->request['f']}' method='post'>
{$this->lang->words['copy_perms_from']} {$forumCopyDropDown}
<input type='submit' name='submit' value='{$this->lang->words['copy_perms_go']}' class='button primary' />
</form>
<form name='adminform' id='adminform' action='{$this->settings['base_url']}&{$this->form_code}&do=pdoedit&f={$this->request['f']}&name={$title}&nextid={$relative['next']}&previd={$relative['previous']}' method='post'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
{$perm_matrix }
<div class='acp-box'>
<div class='acp-actionbar'>
HTML;
if ( $relative['next'] > 0 )
{
$IPBHTML .= <<<HTML
<input type='submit' name='donext' value='{$this->lang->words['frm_savenext']}' class='button primary' />
HTML;
}
$IPBHTML .= <<<HTML
<input type='submit' value='{$this->lang->words['frm_saveonly']}' class='button primary' />
<input type='submit' name='reload' value='{$this->lang->words['frm_savereload']}' class='button primary' />
HTML;
if ( $relative['next'] > 0 )
{
$IPBHTML .= <<<HTML
<input type='submit' name='doprevious' value='{$this->lang->words['frm_saveprev']}' class='button primary' />
HTML;
}
$IPBHTML .= <<<HTML
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display forum rules form
*
* @param integer Forum ID
* @param array Forum data
* @return string HTML
*/
public function forumRulesForm( $id, $data )
{
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['frm_rulessetup']}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>
<input type='hidden' name='do' value='dorules' />
<input type='hidden' name='f' value='{$id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$this->lang->words['forum_rules_head']} {$data['name']}</h3>
<table class='ipsTable double_pad'>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_rulesdisplay']}</strong>
</td>
<td class='field_field'>
{$data['_show_rules']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_rulestitle']}</strong>
</td>
<td class='field_field'>
{$data['_title']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_rulestext']}</strong>
</td>
<td class='field_field'>
{$data['_editor']}
</td>
</tr>
</table>
<div class='acp-actionbar'>
<input type='submit' value='{$this->lang->words['frm_rulesbutton']}' class='button primary' accesskey='s' />
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display forum skin options form
*
* @param integer Forum id
* @param array Forum data
* @return string HTML
*/
public function forumSkinOptions( $id, $data )
{
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['modify_skin_head']}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>
<input type='hidden' name='do' value='doskinedit' />
<input type='hidden' name='f' value='{$id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$this->lang->words['frm_skinchoice']} {$data['name']}</h3>
<table class='ipsTable double_pad'>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_skinapply']}</strong>
</td>
<td class='field_field'>
{$data['fsid']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_skinsub']}</strong>
</td>
<td class='field_field'>
{$data['apply_to_children']}
</td>
</tr>
</table>
<div class='acp-actionbar'>
<input type='submit' value='{$this->lang->words['frm_skinbutton']}' class='button primary' accesskey='s' />
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display form to empty a forum
*
* @param array Forum data
* @return string HTML
*/
public function forumEmptyForum( $forum )
{
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['frm_emptytitle']}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>
<input type='hidden' name='do' value='doempty' />
<input type='hidden' name='f' value='{$forum['id']}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$this->lang->words['frm_emptysubtitle']} {$forum['name']}</h3>
<table class='ipsTable double_pad'>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_emptywhich']}</strong>
</td>
<td class='field_field'>
{$forum['name']}
</td>
</tr>
</table>
<div class='acp-actionbar'>
<input type='submit' value='{$this->lang->words['frm_emptybutton']}' class='button primary' accesskey='s' />
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display form to delete a forum
*
* @param integer Forum ID
* @param string Name
* @param string Options HTML for move to dropdown
* @param integer [Category=1|Forum=0]
* @param string Options HTML for move subforums to dropdown
* @return string HTML
*/
public function forumDeleteForm( $id, $name, $move, $is_cat, $subs )
{
$IPBHTML = "";
//--starthtml--//
$text = $is_cat ? $this->lang->words['for_iscat_y'] : $this->lang->words['for_iscat_n'];
$title = sprintf( $this->lang->words['for_removing'], $text, $name );
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$title}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>
<input type='hidden' name='do' value='dodelete' />
<input type='hidden' name='f' value='{$id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$this->lang->words['frm_deletetitle']} {$name}</h3>
<table class='ipsTable double_pad'>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_deletewhich']}</strong>
</td>
<td class='field_field'>
{$name}
</td>
</tr>
HTML;
if( $move )
{
$IPBHTML .= <<<HTML
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_deletemove']}</strong>
</td>
<td class='field_field'>
{$move}
</td>
</tr>
HTML;
}
if( $subs )
{
$IPBHTML .= <<<HTML
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_moveparent']}</strong>
</td>
<td class='field_field'>
{$subs}
</td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
<div class='acp-actionbar'>
<input type='submit' value='{$this->lang->words['frm_deletebutton']}' class='button primary' accesskey='s' />
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display form to add/edit a forum
*
* @param array Form fields
* @param string Button text
* @param string Action code
* @param string Title
* @param array Forum data
* @param string Permissions matrix
* @param string Default tab to open
* @return string HTML
*/
public function forumForm( $form, $button, $code, $title, $forum, $perm_matrix, $firsttab='' ) {
$IPBHTML = "";
//--starthtml--//
$_forUrl = urlencode($forum['name']);
$IPBHTML .= <<<HTML
<script type='text/javascript' src='{$this->settings['js_app_url']}acp.forums.js'></script>
<div class='section_title'>
<h2>{$title}</h2>
</div>
HTML;
if( $code == 'donew'){
$IPBHTML .= "<div class='ipsSteps_wrap'>";
}
$IPBHTML .= <<<HTML
<form name='adminform' data-form-type="forum" id='adminform' action='{$this->settings['base_url']}&{$this->form_code}&do={$code}&f={$this->request['f']}&name={$_forUrl}' method='post' enctype='multipart/form-data'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<input type='hidden' name='convert' id='convert' value='0' />
<input type='hidden' name='type' value='{$this->request['type']}' />
HTML;
//---------------------------------------------
// If we're adding a new forum, show the wizard
//---------------------------------------------
if( $code == 'donew' )
{
$steps = 1;
// Basic settings
$IPBHTML .= <<<HTML
<div class='ipsSteps clearfix' id='steps_bar'>
<ul>
<li class='steps_active' id='step_basic'>
<strong class='steps_title'>{$this->lang->words['admin_step']} {$steps}</strong>
<span class='steps_desc'>{$this->lang->words['frm_f_basic']}</span>
<span class='steps_arrow'> </span>
</li>
HTML;
$steps++;
// Postable forum settings
if( $form['addnew_type'] != 'category' )
{
$IPBHTML .= <<<HTML
<li id='step_postable'>
<strong class='steps_title'>{$this->lang->words['admin_step']} {$steps}</strong>
<span class='steps_desc'>{$this->lang->words['from_f_postable_settings']}</span>
<span class='steps_arrow'> </span>
</li>
HTML;
$steps++;
}
if( $form['tabStrip'] && $form['tabContent'] )
{
//print_r( $form );
$IPBHTML .= <<<HTML
<li id='step_additional'>
<strong class='steps_title'>{$this->lang->words['admin_step']} {$steps}</strong>
<span class='steps_desc'>{$this->lang->words['forum_tab_3rd_party']}</a>
<span class='steps_arrow'> </span>
</li>
HTML;
$steps++;
}
//Permission matrix
if( $perm_matrix )
{
$IPBHTML .= <<<HTML
<li id='step_perms'>
<strong class='steps_title'>{$this->lang->words['admin_step']} {$steps}</strong>
<span class='steps_desc'>{$this->lang->words['from_f_perms']}</span>
<span class='steps_arrow'> </span>
</li>
HTML;
$steps++;
}
$IPBHTML .= <<<HTML
</ul>
</div>
HTML;
}
$IPBHTML .= <<<HTML
<div class='acp-box'>
HTML;
if( $code != 'donew' && ( ( $forum['parent_id'] == 'root' && ! empty($form['tabStrip']) ) or $forum['parent_id'] != 'root' or $this->request['nocat'] ) )
{
$IPBHTML .= <<<HTML
<h3>{$this->lang->words['frm_settings']}</h3>
<div class='ipsTabBar with_left with_right' id='tabstrip_forums'>
<span class='tab_left'>«</span>
<span class='tab_right'>»</span>
<ul>
<li id='tab_basic'>{$this->lang->words['frm_f_basic']}</li>
HTML;
if( $form['addnew_type'] != 'category' && ( $forum['parent_id'] != 'root' or $this->request['nocat'] ) )
{
if( !$form['sub_can_post'] ){
$IPBHTML .= "<li id='tab_postable' style='display: none'>{$this->lang->words['from_f_postable_settings']}</li> ";
} else {
$IPBHTML .= "<li id='tab_postable'>{$this->lang->words['from_f_postable_settings']}</li> ";
}
}
if( $perm_matrix )
{
$IPBHTML .= "<li id='tab_perms'>{$this->lang->words['from_f_perms']}</li> ";
}
if( $form['tabStrip'] )
{
$IPBHTML .= $form['tabStrip'];
}
$IPBHTML .= <<<HTML
</ul>
</div>
<div class='ipsTabBar_content' id='tabstrip_forums_content'>
HTML;
}
if( $code == 'donew' )
{
$IPBHTML .= <<<HTML
<div class='ipsSteps_wrapper' id='ipsSteps_wrapper'>
<div id='step_basic_content' class='steps_content'>
<div class='acp-box'>
<h3>{$this->lang->words['frm_f_basic']}</h3>
HTML;
}
else
{
$_firstTab = $firsttab ? $firsttab : 'basic';
$IPBHTML .= <<<HTML
<div id='tab_basic_content'>
HTML;
}
$IPBHTML .= <<<HTML
<table class='ipsTable double_pad'>
HTML;
if( $form['addnew_type'] != 'category' && ( $forum['parent_id'] != 'root' or $this->request['nocat'] ) )
{
$checked_standard = '';
$checked_cat = '';
$checked_redirect = '';
if( $code != 'donew' )
{
if( $forum['parent_id'] == 'root' || (!$forum['sub_can_post'] && !$forum['redirect_url']) )
{
$checked_cat = " checked='checked'";
}
else if( $forum['redirect_url'] )
{
$checked_redirect = " checked='checked'";
}
else
{
$checked_standard = " checked='checked'";
}
}
else
{
$checked_standard = " checked='checked'";
}
$IPBHTML .= <<<HTML
<tr>
<th colspan='2'>{$this->lang->words['frm_type_header']}</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_type']}</strong>
</td>
<td class='field_field'>
<table id='forum_type_chooser'>
<tr>
<td style='width: 25px'>
<input type='radio' name='forum_type' id='type_standard' value='standard'{$checked_standard} />
</td>
<td>
<strong><label for='type_standard'>{$this->lang->words['frm_type_stand']}</label></strong><br />
<span class='desctext'>{$this->lang->words['frm_type_stand_d']}</span>
</td>
</tr>
<tr>
<td>
<input type='radio' name='forum_type' id='type_category' value='category'{$checked_cat} />
</td>
<td>
<strong><label for='type_category'>{$this->lang->words['frm_type_cat']}</label></strong><br />
<span class='desctext'>{$this->lang->words['frm_type_cat_d']}</span>
</td>
</tr>
<tr>
<td>
<input type='radio' name='forum_type' id='type_redirect' value='redirect'{$checked_redirect} />
</td>
<td>
<strong><label for='type_redirect'>{$this->lang->words['frm_type_redirect']}</label></strong><br />
<span class='desctext'>{$this->lang->words['frm_type_redirect_d']}</span>
</td>
</tr>
</table>
</td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
<tr>
<th colspan='2'>{$this->lang->words['frm_settings']}</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_name_' . $form['addnew_type'] ]}</strong>
</td>
<td class='field_field'>
{$form['name']}
</td>
</tr>
HTML;
if( $form['addnew_type'] != 'category' && ( $forum['parent_id'] != 'root' or $this->request['nocat'] ) )
{
$IPBHTML .= <<<HTML
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_desc']}</strong>
</td>
<td class='field_field'>
{$form['description']}<br />
<span class='desctext'>{$this->lang->words['frm_f_desc_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_parent']}</strong>
</td>
<td class='field_field'>
{$form['parent_id']}
</td>
</tr>
<tr>
<td class='field_title'><strong class='title'>{$this->lang->words['sitemap_forum_priority']}</strong></td>
<td class='field_field'>
{$form['ipseo_priority']}<br />
<span class='desctext'>{$this->lang->words['sitemap_forum_priority_desc']}</span>
</td>
</tr>
HTML;
if ( $this->settings['viglink_enabled'] )
{
$IPBHTML .= <<<HTML
<tr>
<td class='field_title'><strong class='title'>{$this->lang->words['viglink_forum']}</strong></td>
<td class='field_field'>
{$form['viglink']}
</td>
</tr>
HTML;
}
$bw_enable_answers_member_checked = '';
if ( $_POST['bw_enable_answers_member'] == 1 OR $forum['bw_enable_answers_member'] == 1 )
{
$bw_enable_answers_member_checked = 'checked="checked"';
}
$IPBHTML .= <<<HTML
<tbody id='forum_redirect' style='display: none'>
<tr>
<th colspan='2'>
{$this->lang->words['frm_f_redirect']}
</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_redirect_url']}</strong>
</td>
<td class='field_field'>
{$form['redirect_url']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_redirect_num']}</strong>
</td>
<td class='field_field'>
{$form['redirect_hits']}
</td>
</tr>
</tbody>
<tbody id='forum_perms' style='display: none'>
<tr>
<th colspan='2'>
{$this->lang->words['frm_f_perm_title']}
</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['enable_answers']}</strong>
</td>
<td class='field_field'>
{$form['bw_enable_answers']}<br /><br />
<input type='checkbox' name='bw_enable_answers_member' value='1' {$bw_enable_answers_member_checked} /> <span class='desctext'>{$this->lang->words['bw_enable_answers_member']}</span>
<br /><br /><span class='desctext'>{$this->lang->words['enable_answers_desc']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['disable_sharelinks']}</strong>
</td>
<td class='field_field'>
{$form['disable_sharelinks']}<br />
<span class='desctext'>{$this->lang->words['disable_sharelinks_desc']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_perm_hide']}</strong>
</td>
<td class='field_field'>
{$form['hide_last_info']}<br />
<span class='desctext'>{$this->lang->words['frm_f_perm_hide_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_perm_list']}</strong>
</td>
<td class='field_field'>
{$form['permission_showtopic']}<br />
<span class='desctext'>{$this->lang->words['frm_f_perm_list_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_perm_cust']}</strong>
</td>
<td class='field_field'>
{$form['permission_custom_error']}<br />
<span class='desctext'>{$this->lang->words['frm_f_perm_cust_info']}</span>
</td>
</tr>
</tbody>
<tbody id='forum_password' style='display: none'>
<tr>
<th colspan='2'>
{$this->lang->words['frm_f_password']}
</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_mod_pass']}</strong>
</td>
<td class='field_field'>
{$form['password']}<br />
<span class='desctext'>{$this->lang->words['frm_f_mod_pass_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_mod_exempt']}</strong>
</td>
<td class='field_field'>
{$form['password_override']}<br />
<span class='desctext'>{$this->lang->words['frm_f_mod_exempt_info']}</span>
</td>
</tr>
</tbody>
HTML;
}
$IPBHTML .= <<<HTML
</table>
<input type='hidden' name='sub_can_post' value='0' />
<input type='hidden' name='redirect_on' value='0' />
<script type='text/javascript'>
updateForumForm();
jQ("input[name=forum_type]:radio").click( function(e){
updateForumForm();
});
HTML;
if( $code != 'donew' )
{
$IPBHTML .= <<<HTML
jQ(document).ready(function() {
updateForumForm();
});
HTML;
}
$IPBHTML .= <<<HTML
function updateForumForm()
{
var curVal = jQ("input[name=forum_type]:checked").val();
switch( curVal ){
case "standard":
jQ("input:hidden[name=sub_can_post]").val(1);
jQ("input:hidden[name=redirect_on]").val(0);
jQ("#forum_redirect").hide();
jQ("#forum_perms").show();
jQ("#forum_password").show();
jQ("#step_postable").removeClass('steps_disabled').addClass('clickable');
jQ("#tab_postable").show();
break;
case "category":
jQ("input:hidden[name=sub_can_post]").val(0);
jQ("input:hidden[name=redirect_on]").val(0);
jQ("#forum_redirect").hide();
jQ("#forum_perms").hide();
jQ("#forum_password").show();
jQ("#step_postable").addClass('steps_disabled').removeClass('clickable');
jQ("#tab_postable").hide();
break;
case "redirect":
jQ("input:hidden[name=sub_can_post]").val(0);
jQ("input:hidden[name=redirect_on]").val(1);
jQ("#forum_redirect").show();
jQ("#forum_perms").hide();
jQ("#forum_password").hide();
jQ("#step_postable").addClass('steps_disabled').removeClass('clickable');
jQ("#tab_postable").hide();
break;
}
}
</script>
</div>
HTML;
if( $code == 'donew' ){
$IPBHTML .= <<<HTML
</div>
HTML;
if( $form['addnew_type'] != 'category' && ( $forum['parent_id'] != 'root' or $this->request['nocat'] ) )
{
$IPBHTML .= <<<HTML
<div id='step_postable_content' style='display: none'>
<div class='acp-box'>
<h3>{$this->lang->words['from_f_postable_settings']}</h3>
HTML;
}
}
elseif( $form['addnew_type'] != 'category' && ( $forum['parent_id'] != 'root' or $this->request['nocat'] ) )
{
$IPBHTML .= <<<HTML
<div id='tab_postable_content'>
HTML;
}
if( $form['addnew_type'] != 'category' && ( $forum['parent_id'] != 'root' or $this->request['nocat'] ) )
{
$IPBHTML .= <<<HTML
<table class='ipsTable double_pad'>
<tr>
<th colspan='2'>
{$this->lang->words['frm_f_post_title']}
</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_post_html']}</strong>
</td>
<td class='field_field'>
{$form['use_html']}<br />
<span class='desctext'>{$this->lang->words['frm_f_post_html_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_post_bb']}</strong>
</td>
<td class='field_field'>
{$form['use_ibc']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_post_poll']}</strong>
</td>
<td class='field_field'>
{$form['allow_poll']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_post_bump']}</strong>
</td>
<td class='field_field'>
{$form['allow_pollbump']}<br />
<span class='desctext'>{$this->lang->words['frm_f_post_bump_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_post_rate']}</strong>
</td>
<td class='field_field'>
{$form['forum_allow_rating']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_post_inc']}</strong>
</td>
<td class='field_field'>
{$form['inc_postcount']}<br />
<span class='desctext'>{$this->lang->words['frm_f_post_inc_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_min_posts_post']}</strong>
</td>
<td class='field_field'>
{$form['min_posts_post']}<br />
<span class='desctext'>{$this->lang->words['frm_f_min_posts_post_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_min_posts_view']}</strong>
</td>
<td class='field_field'>
{$form['min_posts_view']}<br />
<span class='desctext'>{$this->lang->words['frm_f_min_posts_view_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_canviewothers']}</strong>
</td>
<td class='field_field'>
{$form['can_view_others']}
</td>
</tr>
<tr>
<th colspan='2'>
{$this->lang->words['frm_f_mod_title']}
</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_mod_en']}</strong>
</td>
<td class='field_field'>
{$form['preview_posts']}<br />
<span class='desctext'>{$this->lang->words['frm_f_mod_en_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_mod_email']}</strong>
</td>
<td class='field_field'>
{$form['notify_modq_emails']}<br />
<span class='desctext'>{$this->lang->words['frm_f_mod_email_info']}</span>
</td>
</tr>
<tr>
<th colspan='2'>
{$this->lang->words['frm_f_sort_title']}
</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_sort_cutoff']}</strong>
</td>
<td class='field_field'>
{$form['prune']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_sort_key']}</strong>
</td>
<td class='field_field'>
{$form['sort_key']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_sort_order']}</strong>
</td>
<td class='field_field'>
{$form['sort_order']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_f_sort_filter']}</strong>
</td>
<td class='field_field'>
{$form['topicfilter']}
</td>
</tr>
<tr>
<th colspan='2'>
{$this->lang->words['frm_f_tagging_title']}
</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['bw_disable_tagging']}</strong>
</td>
<td class='field_field'>
{$form['bw_disable_tagging']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['bw_disable_prefixes']}</strong>
</td>
<td class='field_field'>
{$form['bw_disable_prefixes']}<br />
<span class="desctext">{$this->lang->words['bw_disable_prefixes_desc']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['tag_predefined']}</strong>
</td>
<td class='field_field'>
{$form['tag_predefined']}<br />
<span class="desctext">{$this->lang->words['tag_predefined_desc']}</span>
</td>
</tr>
</table>
HTML;
if( $code == 'donew' )
{
$IPBHTML .= <<<HTML
</div>
</div>
HTML;
}
else
{
$IPBHTML .= <<<HTML
</div>
HTML;
}
}
if( $form['tabContent'] )
{
if( $code == 'donew' )
{
$IPBHTML .= <<<HTML
<div id='step_additional_content' style='display: none'>
<h3>{$this->lang->words['forum_tab_3rd_party_settings']}</h3>
<div class='ipsTabBar with_left with_right' id='tabstrip_3rdparty'>
<span class='tab_left'>«</span>
<span class='tab_right'>»</span>
<ul>
{$form['tabStrip']}
</ul>
</div>
<div id='tabstrip_3rdparty_content' class='ipsTabBar_content'>
{$form['tabContent']}
</div>
<script type='text/javascript'>
jQ("#tabstrip_3rdparty").ipsTabBar({ tabWrap: "#tabstrip_3rdparty_content" });
</script>
</div>
HTML;
}
else
{
$IPBHTML .= <<<HTML
{$form['tabContent']}
HTML;
}
}
if ( $perm_matrix )
{
if( $code == 'donew' )
{
$IPBHTML .= <<<HTML
<div id='step_perms_content' style='display: none'>
<div class='acp-box'>
{$perm_matrix}
</div>
</div>
HTML;
}
else
{
$IPBHTML .= <<<HTML
<div id='tab_perms_content'>
{$perm_matrix}
</div>
HTML;
}
}
if( $form['addnew_type'] == 'category' )
{
$IPBHTML .= <<<HTML
<input type='hidden' name='parent_id' value='-1' />
<input type='hidden' name='sub_can_post' value='0' />
<input type='hidden' name='permission_showtopic' value='1' />
HTML;
}
$IPBHTML .= <<<HTML
</div>
HTML;
if( $code == 'donew' )
{
$_lang = $this->request['type'] == 'category' ? $this->lang->words['frm_savecat'] : $this->lang->words['frm_save'];
$IPBHTML .= <<<HTML
<div id='steps_navigation' class='clearfix' style='margin-top: 10px;'>
<input type='button' class='realbutton left' value='{$this->lang->words['wiz_prev']}' id='prev' />
<input type='button' class='realbutton right' value='{$this->lang->words['wiz_next']}' id='next' />
<p class='right' id='finish' style='display: none'>
<input type='submit' class='realbutton' value='{$_lang}' />
</p>
</div>
<script type='text/javascript'>
jQ("#steps_bar").ipsWizard( { allowJumping: true, allowGoBack: false } );
</script>
HTML;
}
else
{
$IPBHTML .= <<<HTML
<div class='acp-actionbar'>
<input type='submit' class='realbutton' value='{$this->lang->words['frm_save']}' />
</div>
<script type='text/javascript'>
jQ("#tabstrip_forums").ipsTabBar({ tabWrap: "#tabstrip_forums_content", defaultTab: "tab_{$_firstTab}" });
</script>
HTML;
}
$IPBHTML .= <<<HTML
</form>
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Select a moderator gateway page
*
* @param integer Forum ID
* @param string Dropdown options of members
* @return string HTML
*/
public function moderatorSelectForm( $fid, $member_drop ) {
$return_id = intval( $this->request['return_id'] );
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>
<input type='hidden' name='do' value='add_final' />
<input type='hidden' name='fid' value='{$fid}' />
<input type='hidden' name='return_id' value='{$return_id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$this->lang->words['frm_m_search']}</h3>
<table class='ipsTable double_pad'>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_choose']}</strong>
</td>
<td class='field_field'>
{$member_drop}
</td>
</tr>
</table>
<div class='acp-actionbar'>
<input type='submit' value='{$this->lang->words['frm_m_choosebutton']}' class='button primary' accesskey='s' />
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display moderator add/edit form
*
* @param array Form fields
* @param string Action code
* @param integer Member ID
* @param string Searched member text
* @param string Type
* @param integer Group ID
* @param string Group name
* @param string Button text
* @return string HTML
*/
public function moderatorPermissionForm( $form, $form_code, $mid, $mem, $type, $gid, $gname, $button ) {
$return_id = intval( $this->request['return_id'] );
$IPBHTML = "";
//--starthtml--//
if( $form_code == 'doedit' )
{
$title = $this->lang->words['mod_edit'];
}
else if ( $this->request['group'] )
{
$title = $this->lang->words['mod_addgroup'];
}
else
{
$title = $this->lang->words['mod_add'];
}
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$title}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>
<input type='hidden' name='do' value='{$form_code}' />
<input type='hidden' name='mid' value='{$mid}' />
<input type='hidden' name='mem' value='{$mem}' />
<input type='hidden' name='mod_type' value='{$type}' />
<input type='hidden' name='gid' value='{$gid}' />
<input type='hidden' name='gname' value='{$gname}' />
<input type='hidden' name='return_id' value='{$return_id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$this->lang->words['frm_m_genset']}</h3>
<table class='ipsTable double_pad'>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_mod_forums']}</strong>
</td>
<td class='field_field'>
{$form['forums']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_edit']}</strong>
</td>
<td class='field_field'>
{$form['edit_post']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_topic']}</strong>
</td>
<td class='field_field'>
{$form['edit_topic']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_delete']}</strong>
</td>
<td class='field_field'>
{$form['delete_post']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_deletetop']}</strong>
</td>
<td class='field_field'>
{$form['delete_topic']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['gf_bw_soft_delete']}</strong>
</td>
<td class='field_field'>
{$form['bw_mod_soft_delete']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['gf_bw_un_soft_delete']}</strong>
</td>
<td class='field_field'>
{$form['bw_mod_un_soft_delete']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['gf_bw_soft_delete_see']}</strong>
</td>
<td class='field_field'>
{$form['bw_mod_soft_delete_see']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_ip']}</strong>
</td>
<td class='field_field'>
{$form['view_ip']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_open']}</strong>
</td>
<td class='field_field'>
{$form['open_topic']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_close']}</strong>
</td>
<td class='field_field'>
{$form['close_topic']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_move']}</strong>
</td>
<td class='field_field'>
{$form['move_topic']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_pin']}</strong>
</td>
<td class='field_field'>
{$form['pin_topic']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_unpin']}</strong>
</td>
<td class='field_field'>
{$form['unpin_topic']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_split']}</strong>
</td>
<td class='field_field'>
{$form['split_merge']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_opentime']}</strong>
</td>
<td class='field_field'>
{$form['mod_can_set_open_time']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_closetime']}</strong>
</td>
<td class='field_field'>
{$form['mod_can_set_close_time']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['bw_can_toggle_answered_post']}</strong>
</td>
<td class='field_field'>
{$form['bw_can_toggle_answered_post']}
</td>
</tr>
<tr>
<th colspan='2'>{$this->lang->words['frm_m_msettings']}</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_massmove']}</strong>
</td>
<td class='field_field'>
{$form['mass_move']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_massprune']}</strong>
</td>
<td class='field_field'>
{$form['mass_prune']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_visible']}</strong>
</td>
<td class='field_field'>
{$form['topic_q']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_visiblepost']}</strong>
</td>
<td class='field_field'>
{$form['post_q']}
</td>
</tr>
<tr>
<th colspan='2'>{$this->lang->words['frm_m_asettings']}</th>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_warn']}</strong>
</td>
<td class='field_field'>
{$form['allow_warn']}<br />
<span class='desctext'>{$this->lang->words['frm_m_warn_info']}</span>
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_spam']}</strong>
</td>
<td class='field_field'>
{$form['bw_flag_spammers']}
</td>
</tr>
<tr>
<td class='field_title'>
<strong class='title'>{$this->lang->words['frm_m_mm']}</strong>
</td>
<td class='field_field'>
{$form['can_mm']}<br />
<span class='desctext'>( <a href='#' onClick="window.open('{$this->settings['_base_url']}app=core&module=help&id=mod_mmod','Help','width=450,height=400,resizable=yes,scrollbars=yes'); return false;">{$this->lang->words['frm_m_mm_info']}</a> )</span>
</td>
</tr>
</table>
<div class='acp-actionbar'>
<input type='submit' value='{$button}' class='button primary' accesskey='s' />
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Add a moderator when we already have records for some of the selected forums
*
* @param string 'name' or 'group'
* @param array Data for member or group
* @param array Selected forums which we are already a member of
* @param array Selected forums which we are not already a member of
* @param array A multi-dimensional array specifying the forums we are already a moderator of by the database record
* @return string HTML
*/
public function moderatorDuplicateForm( $type, $data, $alreadyAMod, $notCurrentlyAMod, $alreadyAModByRecord ) {
if ( $type == 'name' )
{
$formattedName = sprintf( $this->lang->words['mod_member_is'], $data['members_display_name'] );
$moderatorWord = $this->lang->words['mod_mods_singluar'];
$qs = "member_id={$data['member_id']}";
}
else
{
$formattedName = sprintf( $this->lang->words['mod_group_are'], $data['g_title'] );
$moderatorWord = $this->lang->words['mod_mods_plural'];
$qs = "group={$data['g_id']}";
}
$intro = sprintf( $this->lang->words['mod_already_exists'], $formattedName, $moderatorWord, $this->implodeWithProperGrammar( $alreadyAMod ) );
$implodedIds = implode( ',', array_keys( $notCurrentlyAMod ) );
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['mod_add']}</h2>
<div class='information-box'>
{$intro}
</div>
<br />
HTML;
foreach ( $alreadyAModByRecord as $recordId => $_fs )
{
$message = sprintf( $this->lang->words['mod_add_with_same_perms'], ( $type == 'name' ) ? $data['members_display_name'] : $data['g_title'], $moderatorWord, $this->implodeWithProperGrammar( $notCurrentlyAMod ), $this->implodeWithProperGrammar( $_fs ) );
$IPBHTML .= <<<HTML
<div class='redirector'>
<div class='info'><a href='{$this->settings['base_url']}app=forums&module=forums&section=moderator&do=add_forum_to_set&mid={$recordId}&forums={$implodedIds}'>{$message}</a></div>
</div>
<br /><br />
HTML;
}
$otherMessage = sprintf( $this->lang->words['mod_add_with_new_perms'], ( $type == 'name' ) ? $data['members_display_name'] : $data['g_title'], $moderatorWord, $this->implodeWithProperGrammar( $notCurrentlyAMod ) );
$IPBHTML .= <<<HTML
<div class='redirector'>
<div class='info'><a href='{$this->settings['base_url']}app=forums&module=forums&section=moderator&do=add_final&{$qs}&fid={$implodedIds}'>{$otherMessage}</a></div>
</div>
<br /><br />
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
private function implodeWithProperGrammar( $array )
{
$imploded = implode( ', ', $array );
if ( count( $array ) > 1 )
{
$imploded = substr_replace( $imploded, $this->lang->words['mod_and'], strrpos( $imploded, ', ' ), 2 );
}
return $imploded;
}
}