Version 3.0.5

This commit is contained in:
Neo committed 2025-12-19 00:31:03 -08:00
1 parent 19b38c7c74
commit 1d4720f3e2
3755 files changed
+508378 -664541

No files matched your search

@@ -0,0 +1,511 @@
<?php
/**
* Invision Power Services
* IP.Board v3.0.5
* Attachments skin functions
* Last Updated: $LastChangedDate: 2009-06-24 23:14:22 -0400 (Wed, 24 Jun 2009) $
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @subpackage Forums
* @link http://www.iinvisionpower.com
* @since 14th May 2003
* @version $Rev: 4818 $
*/
class cp_skin_attachments extends output
{
/**
* Prevent our main destructor being called by this class
*
* @access public
* @return void
*/
public function __destruct()
{
}
/**
* Display attachment stats
*
* @access public
* @param array Overall stats
* @param array Last 5 attachments
* @param array Largest 5 attachments
* @param array Most viewed 5 attachments
* @return string HTML
*/
public function attachmentStats( $overall_stats, $last_5, $largest_5, $most_viewed_5 )
{
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['attach_stats_head']}</h2>
</div>
<div class='acp-box'>
<h3>{$this->lang->words['atc_overview']}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<td width='30%'>{$this->lang->words['atc_number']}</td>
<td width='20%'>{$overall_stats['total_attachments']}</td>
<td width='30%'>{$this->lang->words['atc_diskusage']}</td>
<td width='20%'>{$overall_stats['total_size']}</td>
</tr>
</table>
</div><br />
<form action='{$this->settings['base_url']}&amp;module=attachments&amp;section=search' method='post' name='theAdminForm' id='theAdminForm'>
<input type='hidden' name='do' value='attach_bulk_remove' />
<input type='hidden' name='return' value='stats' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$this->lang->words['atc_last5']}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<th style='width: 2%'>&nbsp;</th>
<th style='width: 20%'>{$this->lang->words['atc_attachment']}</th>
<th style='width: 11%'>{$this->lang->words['atc_size']}</th>
<th style='width: 15%'>{$this->lang->words['atc_author']}</th>
<th style='width: 25%'>{$this->lang->words['atc_topic']}</th>
<th style='width: 25%'>{$this->lang->words['atc_posted']}</th>
<th style='width: 2%'>&nbsp;</th>
</tr>
HTML;
foreach( $last_5 as $r )
{
$IPBHTML .= <<<HTML
<tr>
<td><img src='{$r['_icon']}' border='0' /></td>
<td><a href='{$this->settings['board_url']}/index.php?app=core&amp;module=attach&amp;section=attach&amp;attach_rel_module=post&amp;attach_id={$r['attach_id']}' target='_blank'>{$r['attach_file']}</a></td>
<td>{$r['attach_filesize']}</td>
<td>{$r['members_display_name']}</td>
<td>{$r['stitle']}</td>
<td>{$r['post_date']}</td>
<td><div align='center'><input type='checkbox' name='attach_{$r['attach_id']}' value='1' /></div></td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
</div><br />
<div class='acp-box'>
<h3>{$this->lang->words['atc_largest5']}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<th>&nbsp;</th>
<th>{$this->lang->words['atc_attachment']}</th>
<th>{$this->lang->words['atc_size']}</th>
<th>{$this->lang->words['atc_author']}</th>
<th>{$this->lang->words['atc_topic']}</th>
<th>{$this->lang->words['atc_posted']}</th>
<th>&nbsp;</td>
</tr>
HTML;
foreach( $largest_5 as $r )
{
$IPBHTML .= <<<HTML
<tr>
<td width='1%'><img src='{$r['_icon']}' border='0' /></td>
<td width='20%'><a href='{$this->settings['board_url']}/index.php?act=attach&type=post&id={$r['attach_id']}' target='_blank'>{$r['attach_file']}</a></td>
<td width='10%'>{$r['attach_filesize']}</td>
<td width='15%'>{$r['members_display_name']}</td>
<td width='25%'>{$r['stitle']}</td>
<td width='25%'>{$r['post_date']}</td>
<td width='1%'><div align='center'><input type='checkbox' name='attach_{$r['attach_id']}' value='1' /></div></td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
</div><br />
<div class='acp-box'>
<h3>{$this->lang->words['atc_top5']}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<th width='1%'>&nbsp;</th>
<th width='20%'>{$this->lang->words['atc_attachment']}</th>
<th width='10%'>{$this->lang->words['atc_viewed']}</th>
<th width='15%'>{$this->lang->words['atc_author']}</th>
<th width='25%'>{$this->lang->words['atc_topic']}</th>
<th width='25%'>{$this->lang->words['atc_posted']}</th>
<th width='1%'>&nbsp;</th>
</tr>
HTML;
foreach( $most_viewed_5 as $r )
{
$IPBHTML .= <<<HTML
<tr>
<td width='1%'><img src='{$r['_icon']}' border='0' /></td>
<td width='20%'<a href='{$this->settings['board_url']}/index.php?act=attach&type=post&id={$r['attach_id']}' target='_blank'>{$r['attach_file']}</a></td>
<td width='10%'{$r['attach_filesize']}</td>
<td width='15%'{$r['members_display_name']}</td>
<td width='25%'{$r['stitle']}</td>
<td width='25%'{$r['post_date']}</td>
<td width='1%'><div align='center'><input type='checkbox' name='attach_{$r['attach_id']}' value='1' /></div></td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
<div class='acp-actionbar'>
<div class='rightaction'>
<input type='submit' value='{$this->lang->words['atc_deletebutton']}' class='button primary'>
</div>
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Form to add/edit attachment types
*
* @access public
* @param string Title
* @param string Do action
* @param integer Editing attachment type id
* @param array Form fields
* @param string Button text
* @param string Based on attach type
* @return string HTML
*/
public function attachmentTypeForm( $title, $do, $id, $form, $button, $baseon='' ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['add_attachment_type_head']}</h2>
</div>
{$baseon}
<div class='acp-box'>
<h3>{$title}</h3>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
<input type='hidden' name='do' value='{$do}' />
<input type='hidden' name='id' value='{$id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<ul class="acp-form alternate_rows">
<li>
<label>{$this->lang->words['atc_fileext']} <span class='desctext'>{$this->lang->words['atc_fileext_info']}</span></label>
{$form['atype_extension']}
</li>
<li>
<label>{$this->lang->words['atc_mimetype']} <span class='desctext'>{$this->lang->words['atc_mimetype_info']}</span></label>
{$form['atype_mimetype']}
</li>
</li>
<li>
<label>{$this->lang->words['atc_inposts']}</label>
{$form['atype_post']}
</li>
<li>
<label>{$this->lang->words['atc_inavatars']}</label>
{$form['atype_photo']}
</li>
<li>
<label>{$this->lang->words['atc_miniimg']} <span class='desctext'>{$this->lang->words['atc_miniimg_info']}</span></label>
{$form['atype_img']}
</li>
</ul>
<div class="acp-actionbar"><input type='submit' value='{$button}' class='realbutton' accesskey='s'></div>
</form>
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Build the "based on" dropdown
*
* @access public
* @param string Dropdown HTML
* @return string HTML
*/
public function attachmentTypeBaseOn( $dd ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<form method='post' class='information-box' style='margin-bottom: 10px' action='{$this->settings['base_url']}{$this->form_code}&do=attach_add'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->getClass('adminFunctions')->_admin_auth_key}' />
<strong>{$this->lang->words['attach_baseon']}</strong> {$dd} &nbsp;<input type='submit' value='{$this->lang->words['atc_go']}' class='realbutton' />
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display attachment types
*
* @access public
* @param array attachment types
* @return string HTML
*/
public function attachmentTypeOverview( $rows ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['ty_title']}</h2>
<ul class='context_menu'>
<li><a href='{$this->settings['base_url']}{$this->form_code}&amp;do=attach_add' title=''><img src='{$this->settings['skin_acp_url']}/_newimages/icons/attach_add.png' alt='' /> {$this->lang->words['atc_add']}</a></li>
<li><a href='{$this->settings['base_url']}module=attachments&amp;section=types&amp;do=attach_export'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/cog.png' alt='' /> {$this->lang->words['atc_export']}</a></li>
</ul>
</div>
<div class="acp-box">
<h3>{$this->lang->words['atc_atttypes']}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<th width='1%'>&nbsp;</td>
<th width='20%'>{$this->lang->words['atc_extension']}</td>
<th width='40%'>{$this->lang->words['atc_mime_type']}</td>
<th width='10%' style='text-align: center'>{$this->lang->words['atc_post']}</td>
<th width='10%' style='text-align: center'>{$this->lang->words['atc_avatar']}</td>
<th width='5%'>{$this->lang->words['atc_options']}</td>
</tr>
HTML;
foreach( $rows as $row )
{
$IPBHTML .= <<<HTML
<tr>
<td><img src='{$this->settings['mime_img']}/{$row['atype_img']}' border='0' /></td>
<td>.<strong>{$row['atype_extension']}</strong></td>
<td>{$row['atype_mimetype']}</td>
<td style='text-align: center'>{$row['apost_checked']}</td>
<td style='text-align: center'>{$row['aphoto_checked']}</td>
<td style='text-align: center'>
<img class='ipbmenu' id="menu{$row['atype_id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='' />
<ul class='acp-menu' id='menu{$row['atype_id']}_menucontent'>
<li class='icon edit'><a href='{$this->settings['base_url']}{$this->form_code}do=attach_edit&amp;id={$row['atype_id']}'>{$this->lang->words['atc_edit']}</a></li>
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}{$this->form_code}do=attach_delete&amp;id={$row['atype_id']}");'>{$this->lang->words['atc_delete']}</a></li>
</ul>
</td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
<div class='acp-actionbar'>&nbsp;</div>
</div>
<br />
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='uploadform' enctype='multipart/form-data' id='uploadform'>
<input type='hidden' name='do' value='attach_import' />
<input type='hidden' name='MAX_FILE_SIZE' value='10000000000' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$this->lang->words['atc_import']}</h3>
<p align='center'>
{$this->lang->words['atc_uploadxml_info']}
<input class='textinput' type='file' size='30' name='FILE_UPLOAD'>
</p>
<div class='acp-actionbar'>
<input type='submit' value='{$this->lang->words['atc_importbutton']}' class="button primary" accesskey='s'>
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display attachment search form
*
* @access public
* @param array Form fields
* @return string HTML
*/
public function attachmentSearchForm( $form ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['se_search']}</h2>
</div>
<div class='acp-box'>
<h3>{$this->lang->words['se_search']}</h3>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
<input type='hidden' name='do' value='attach_search_complete' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<ul class="acp-form alternate_rows">
<li>
<label>{$this->lang->words['se_mext']}</label>
{$form['extension']}
</li>
<li>
<label>{$this->lang->words['se_msize']}</label>
{$form['filesize_gt']} {$form['filesize']}
</li>
<li>
<label>{$this->lang->words['se_mposted']}</label>
{$form['days_gt']} {$form['days']}{$this->lang->words['se_ago']}
</li>
<li>
<label>{$this->lang->words['se_mviewed']}</label>
{$form['hits_gt']} {$form['hits']}{$this->lang->words['se_times']}
</li>
<li>
<label>{$this->lang->words['se_mname']}</label>
{$form['filename']}
</li>
<li>
<label>{$this->lang->words['se_mauthor']}</label>
{$form['authorname']}
</li>
<li>
<label>{$this->lang->words['se_mimages']}</label>
{$form['onlyimage']}
</li>
<li>
<label>{$this->lang->words['se_morder']}</label>
{$form['orderby']} {$form['sort']}
</li>
<li>
<label>{$this->lang->words['se_showresults']}</label>
{$form['show']}
</li>
</ul>
<div class='acp-actionbar'><input type='submit' value='{$this->lang->words['se_searchbutton']}' class='realbutton' accesskey='s' /></div>
</form>
</div>
<script type='text/javascript'>
document.observe("dom:loaded", function(){
var search = new ipb.Autocomplete( $('authorname'), { multibox: false, url: acp.autocompleteUrl, templates: { wrap: acp.autocompleteWrap, item: acp.autocompleteItem } } );
});
</script>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Display attachment search results
*
* @access public
* @param string URL
* @param array Search results
* @return string HTML
*/
public function attachmentSearchResults( $url, $rows ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>
<input type='hidden' name='do' value='attach_bulk_remove' />
<input type='hidden' name='return' value='search' />
<input type='hidden' name='url' value='{$url}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class="acp-box">
<h3>{$this->lang->words['se_results']}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<th width='1%'>&nbsp;</tg>
<th width='20%'>{$this->lang->words['se_attachment']}</th>
<th width='10%'>{$this->lang->words['se_size']}</th>
<th width='15%'>{$this->lang->words['se_author']}</th>
<th width='25%'>{$this->lang->words['se_topic']}</th>
<th width='25%'>{$this->lang->words['se_posted']}</th>
<th width='1%'>&nbsp;</th>
</tr>
HTML;
foreach( $rows as $r )
{
$IPBHTML .= <<<HTML
<tr>
<td><img src='{$this->settings['board_url']}/public/{$this->caches['attachtypes'][ $r['attach_ext'] ]['atype_img']}' border='0' /></td>
<td><a href='{$this->settings['board_url']}/index.php?app=core&amp;module=attach&amp;type={$r['attach_rel_module']}&amp;attach_id={$r['attach_id']}'>{$r['attach_file']}</a></td>
<td>{$r['attach_filesize']}</td>
<td>{$r['members_display_name']}</td>
<td>{$r['stitle']}</td>
<td>{$r['attach_date']}</td>
<td><div align='center'><input type='checkbox' name='attach_{$r['attach_id']}' value='1' /></div></td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
<div class='acp-actionbar'>
<div class='rightaction'>
<input type='submit' value='{$this->lang->words['se_delete']}' class='button primary' />
</div>
</div>
</div>
</form>
<br />
HTML;
//--endhtml--//
return $IPBHTML;
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,306 @@
<?php
/**
* Invision Power Services
* IP.Board v3.0.5
* Group plugin skin functions
* Last Updated: $LastChangedDate: 2009-08-27 07:27:49 -0400 (Thu, 27 Aug 2009) $
*
* @author $Author: josh $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @subpackage Forums
* @link http://www.iinvisionpower.com
* @since 14th May 2003
* @version $Rev: 5049 $
*/
class cp_skin_group_form extends output
{
/**
* Prevent our main destructor being called by this class
*
* @access public
* @return void
*/
public function __destruct()
{
}
/**
* Show forums group form
*
* @access public
* @param array Group data
* @param string Tab ID
* @return string HTML
*/
public function acp_group_form_main( $group, $tabId ) {
$guest_legend = $group['g_id'] == $this->settings['guest_group'] ? $this->lang->words['g_applyguest'] : '';
$gbw_unit_type = array(
0 => array( 0, $this->lang->words['g_dd_apprp'] ),
1 => array( 1, $this->lang->words['g_dd_days'] ) );
$dd_topic_rate = array(
0 => array( 0, $this->lang->words['g_no'] ),
1 => array( 1, $this->lang->words['g_yes1'] ),
2 => array( 2, $this->lang->words['g_yes2'] )
);
$form = array();
$form['g_other_topics'] = $this->registry->output->formYesNo( "g_other_topics", $group['g_other_topics'] );
$form['g_post_new_topics'] = $this->registry->output->formYesNo( "g_post_new_topics", $group['g_post_new_topics'] );
$form['g_topic_rate_setting'] = $this->registry->output->formDropdown( "g_topic_rate_setting", $dd_topic_rate, $group['g_topic_rate_setting'] );
$form['g_reply_own_topics'] = $this->registry->output->formYesNo( "g_reply_own_topics", $group['g_reply_own_topics'] );
$form['g_reply_other_topics'] = $this->registry->output->formYesNo( "g_reply_other_topics", $group['g_reply_other_topics'] );
$form['g_edit_posts'] = $this->registry->output->formYesNo( "g_edit_posts", $group['g_edit_posts'] );
$form['g_edit_cutoff'] = $this->registry->output->formInput( "g_edit_cutoff", $group['g_edit_cutoff'] );
$form['g_append_edit'] = $this->registry->output->formYesNo( "g_append_edit", $group['g_append_edit'] );
$form['g_delete_own_posts'] = $this->registry->output->formYesNo( "g_delete_own_posts", $group['g_delete_own_posts'] );
$form['g_open_close_posts'] = $this->registry->output->formYesNo( "g_open_close_posts", $group['g_open_close_posts'] );
$form['g_edit_topic'] = $this->registry->output->formYesNo( "g_edit_topic", $group['g_edit_topic'] );
$form['g_delete_own_topics'] = $this->registry->output->formYesNo( "g_delete_own_topics", $group['g_delete_own_topics'] );
$form['g_post_polls'] = $this->registry->output->formYesNo( "g_post_polls", $group['g_post_polls'] );
$form['g_vote_polls'] = $this->registry->output->formYesNo( "g_vote_polls", $group['g_vote_polls'] );
$form['g_avoid_flood'] = $this->registry->output->formYesNo( "g_avoid_flood", $group['g_avoid_flood'] );
$form['g_avoid_q'] = $this->registry->output->formYesNo( "g_avoid_q", $group['g_avoid_q'] );
$form['g_post_closed'] = $this->registry->output->formYesNo( "g_post_closed", $group['g_post_closed'] );
$form['g_mod_preview'] = $this->registry->output->formYesNo( "g_mod_preview", $group['g_mod_preview'] );
$form['g_mod_post_unit'] = $this->registry->output->formSimpleInput( "g_mod_post_unit", $group['g_mod_post_unit'], 3 );
$form['gbw_mod_post_unit_type'] = $this->registry->output->formDropdown( "gbw_mod_post_unit_type", $gbw_unit_type, $group['gbw_mod_post_unit_type'] );
$form['g_ppd_limit'] = $this->registry->output->formSimpleInput( "g_ppd_limit", $group['g_ppd_limit'], 3 );
$form['g_ppd_unit'] = $this->registry->output->formSimpleInput( "g_ppd_unit", $group['g_ppd_unit'], 3 );
$form['gbw_ppd_unit_type'] = $this->registry->output->formDropdown( "gbw_ppd_unit_type", $gbw_unit_type, $group['gbw_ppd_unit_type'] );
$IPBHTML = "";
$IPBHTML .= <<<EOF
<div id='tabpane-GROUPS|{$tabId}'>
<div>
<table class='form_table alternate_rows double_pad' cellspacing='0'>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_rating']}</strong></th>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_topic_rate_setting']}</label>
</td>
<td>
{$form['g_topic_rate_setting']}
</td>
</tr>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_viewing']}</strong></th>
</tr>
<tr>
<td style='width: 40%'>
<label>{$this->lang->words['g_other_topics']}</label>
</td>
<td style='width: 60%'>
{$form['g_other_topics']}
</td>
</tr>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_posting']}</strong></th>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_post_new_topics']}</label>
</td>
<td>
{$form['g_post_new_topics']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_reply_own_topics']}</label>
</td>
<td>
{$form['g_reply_own_topics']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_reply_other_topics']}</label>
</td>
<td>
{$form['g_reply_other_topics']}
</td>
</tr>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_editing']}</strong></th>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_edit_posts']}</label>
</td>
<td>
{$form['g_edit_posts']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_edit_cutoff']}</label>
<span class='desctext'>{$this->lang->words['g_edit_cutoff_info']}</span>
</td>
<td>
{$form['g_edit_cutoff']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_append_edit']}</label>
</td>
<td>
{$form['g_append_edit']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_edit_topic']}</label>
</td>
<td>
{$form['g_edit_topic']}
</td>
</tr>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_deleting']}</strong></th>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_delete_own_posts']}</label>
</td>
<td>
{$form['g_delete_own_posts']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_delete_own_topics']}</label>
</td>
<td>
{$form['g_delete_own_topics']}
</td>
</tr>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_openclose']}</strong></th>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_open_close_posts']}</label>
</td>
<td>
{$form['g_open_close_posts']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_post_closed']}</label>
</td>
<td>
{$form['g_post_closed']}
</td>
</tr>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_polling']}</strong></th>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_post_polls']}</label>
</td>
<td>
{$form['g_post_polls']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_vote_polls']}</label>
</td>
<td>
{$form['g_vote_polls']}
</td>
</tr>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_avoidance']}</strong></th>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_avoid_flood']}</label>
</td>
<td>
{$form['g_avoid_flood']}
</td>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_avoid_q']}</label>
</td>
<td>
{$form['g_avoid_q']}
</td>
</tr>
<tr>
<th colspan='2' class='head'><strong>{$this->lang->words['gt_restrictions']}</strong></th>
</tr>
<tr>
<td>
<label>{$this->lang->words['g_mod_preview']}</label>
</td>
<td>
<p>{$form['g_mod_preview']} &nbsp; {$this->lang->words['g_until']} {$form['g_mod_post_unit']} {$form['gbw_mod_post_unit_type']}</p>
<p style='color:gray;font-size:0.8em'>{$this->lang->words['g_limit_dd']}</p>
</td>
</tr>
<tr>
<td>
<label>
{$this->lang->words['g_ppd_limit']}
<p style='color:gray;font-size:0.8em'>{$this->lang->words['g_limit_no']}</p>
</label>
</td>
<td>
<p>Максимум {$form['g_ppd_limit']} {$this->lang->words['g_ppd']} {$form['g_ppd_unit']} {$form['gbw_ppd_unit_type']}</p>
<p style='color:gray;font-size:0.8em'>{$this->lang->words['g_limit_dd']}</p>
</td>
</tr>
</table>
</div>
</div>
EOF;
return $IPBHTML;
}
/**
* Display forum group form tabs
*
* @access public
* @param array Group data
* @param string Tab id
* @return string HTML
*/
public function acp_group_form_tabs( $group, $tabId ) {
$IPBHTML = "";
$IPBHTML .= <<<EOF
<li id='tabtab-GROUPS|{$tabId}' class=''>{$this->lang->words['g_forperm']}</li>
EOF;
return $IPBHTML;
}
}
@@ -0,0 +1,383 @@
<?php
/**
* Invision Power Services
* IP.Board v3.0.5
* Forum member form plugin
* Last Updated: $LastChangedDate: 2009-08-28 17:15:27 -0400 (Fri, 28 Aug 2009) $
*
* @author $Author: rikki $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @subpackage Forums
* @link http://www.iinvisionpower.com
* @since 14th May 2003
* @version $Rev: 5062 $
*/
class cp_skin_member_form extends output
{
/**
* Prevent our main destructor being called by this class
*
* @access public
* @return void
*/
public function __destruct()
{
}
/**
* Display/change avatar
*
* @access public
* @param array Image data
* @return string HTML
*/
public function inline_avatar_images( $images=array() )
{
$IPBHTML = "";
$default_url = ($member['avatar_type'] == 'url') ? $member['avatar_location'] : '';
$IPBHTML .= <<<EOF
<select name='avatar_image' id='avatar_image' onChange='acp.members.updateAvatarPreview();'>
<option value=''>{$this->lang->words['m_selectav']}</option>
EOF;
foreach( $images as $image )
{
$IPBHTML .= "<option value='{$image}'>{$image}</option>";
}
$IPBHTML .= <<<EOF
</select>
EOF;
return $IPBHTML;
}
/**
* Ability to select an avatar from avatar galleries
*
* @access public
* @param array Member data
* @param array Avatar gallery categories
* @return string HTML
*/
public function inline_avatar_selector( $member, $categories=array() )
{
$IPBHTML = "";
$default_url = ($member['avatar_type'] == 'url') ? $member['avatar_location'] : '';
$IPBHTML .= <<<EOF
<form action='{$this->settings['_base_url']}&amp;app=forums&amp;module=tools&amp;section=tools&amp;do=new_avatar&amp;member_id={$member['member_id']}' method='post' enctype='multipart/form-data'>
<div class='acp-box'>
<h3>Изменить аватар</h3>
<div class='row1'>
<p class='information-box' style='margin: 6px;'>
{$this->lang->words['m_firstfield']}
</p>
</div>
<ul class='acp-form'>
<li><h4>{$this->lang->words['m_newav']}</h4></li>
<li style='padding-left: 20px'>
<input type='file' size='30' style='width: 95%' id='upload_avatar' name='upload_avatar' />
</li>
<li><h4>{$this->lang->words['m_avurl']}</h4></li>
<li>
<label for='avatar_url' style='font-weight: normal'>{$this->lang->words['m_avurl_label']}</label>
<input type='text' size='30' id='avatar_url' name='avatar_url' value='{$default_url}' />
</li>
EOF;
if( $this->settings['disable_ipbsize'] )
{
list($p_width, $p_height) = explode( "x", strtolower( $this->settings['avatar_dims'] ) );
$IPBHTML .= <<<EOF
<li><h4>{$this->lang->words['m_avdimen']}</h4></li>
<li>
<label for='avatar_url' style='font-weight: normal'>{$this->lang->words['m_avdimen']}</label>
{$this->lang->words['m_width']} <input type='text' size='6' id='man_width' name='man_width' value='{$p_width}' /> x {$this->lang->words['m_height']} <input type='text' size='6' id='man_height' name='man_height' value='{$p_height}' />
</li>
EOF;
}
if( count($categories) )
{
$IPBHTML .= <<<EOF
<li><h4>{$this->lang->words['m_localav']}</h4></li>
<li>
<div style='float:right;margin-right:4px;margin-top:4px;'>
<div style='border:1px solid #000;background:#FFF;width:auto; padding:2px;' id='avatarContainer'></div>
</div>
<select name='avatar_gallery' id='avatar_gallery'>
EOF;
foreach( $categories as $category )
{
$IPBHTML .= "<option value='{$category[0]}'>{$category[1]}</option>";
}
$IPBHTML .= <<<EOF
</select>
<span style='display:none;' id='avatarGalleryContainer'></span>
</li>
EOF;
}
$IPBHTML .= <<<EOF
</ul>
<div class='acp-actionbar' style='clear:both;'><input type='submit' value='{$this->lang->words['m_updateav']}' class='realbutton' /></div>
</div>
</form>
EOF;
return $IPBHTML;
}
/**
* Main ACP member form
*
* @access public
* @param array Member data
* @return string HTML
*/
public function acp_member_form_main( $member ) {
$masks = array();
ipsRegistry::DB()->build( array( 'select' => '*', 'from' => 'forum_perms', 'order' => 'perm_name' ) );
ipsRegistry::DB()->execute();
while( $data = ipsRegistry::DB()->fetch() )
{
$masks[] = array( $data['perm_id'], $data['perm_name'] );
}
$_restrict_tick = '';
$_restrict_timespan = '';
$_restrict_units = '';
$units = array( 0 => array( 'h', $this->lang->words['m_hours'] ), 1 => array( 'd', $this->lang->words['m_days'] ) );
if ( $member['restrict_post'] == 1 )
{
$_restrict_tick = 'checked="checked"';
}
elseif ($member['restrict_post'] > 0)
{
$mod_arr = IPSMember::processBanEntry( $member['restrict_post'] );
$hours = ceil( ( $mod_arr['date_end'] - time() ) / 3600 );
if( $hours < 0 )
{
$mod_arr['units'] = '';
$mod_arr['timespan'] = '';
}
else if ( $hours > 24 and ( ($hours / 24) == ceil($hours / 24) ) )
{
$mod_arr['units'] = 'd';
$mod_arr['timespan'] = $hours / 24;
}
else
{
$mod_arr['units'] = 'h';
$mod_arr['timespan'] = $hours;
}
}
$_restrict_timespan = ipsRegistry::getClass('output')->formSimpleInput('post_timespan', $mod_arr['timespan'] );
$_restrict_units = ipsRegistry::getClass('output')->formDropdown('post_units', $units, $mod_arr['units'] );
$_mod_tick = '';
$_mod_timespan = '';
$_mod_units = '';
if ( $member['mod_posts'] == 1 )
{
$_mod_tick = 'checked="checked"';
}
elseif ($member['mod_posts'] > 0)
{
$mod_arr = IPSMember::processBanEntry( $member['mod_posts'] );
$hours = ceil( ( $mod_arr['date_end'] - time() ) / 3600 );
if( $hours < 0 )
{
$mod_arr['units'] = '';
$mod_arr['timespan'] = '';
}
else if ( $hours > 24 and ( ($hours / 24) == ceil($hours / 24) ) )
{
$mod_arr['units'] = 'd';
$mod_arr['timespan'] = $hours / 24;
}
else
{
$mod_arr['units'] = 'h';
$mod_arr['timespan'] = $hours;
}
}
$_mod_timespan = ipsRegistry::getClass('output')->formSimpleInput('mod_timespan', $mod_arr['timespan'] );
$_mod_units = ipsRegistry::getClass('output')->formDropdown('mod_units', $units, $mod_arr['units'] );
$form_override_masks = ipsRegistry::getClass('output')->formMultiDropdown( "org_perm_id[]", $masks, explode( ",", $member['org_perm_id'] ), 8, 'org_perm_id' );
$form_posts = ipsRegistry::getClass('output')->formInput( "posts", $member['posts'] );
$form_view_avs = ipsRegistry::getClass('output')->formYesNo( "view_avs", $member['view_avs'] );
$form_view_img = ipsRegistry::getClass('output')->formYesNo( "view_img", $member['view_img'] );
$IPBHTML = "";
$IPBHTML .= <<<EOF
<div class='tablerow1' id='tabpane-MEMBERS|6'>
<table class='alternate_rows double_pad' cellspacing='0'>
<tr>
<th colspan='2'>{$this->lang->words['sm_settings']}</th>
</tr>
<tr>
<td><strong>Аватар</strong></td>
<td>
{$member['_avatar']}
<br /><br />
<input type='button' class='button' id='MF__avatarremove' value='{$this->lang->words['mem_remove_avatar']}' />
<input type='button' class='button' id='MF__avatarchange' value='{$this->lang->words['m_changeav']}' />
<script type='text/javascript'>
$('MF__avatarremove').observe('click', acp.members.removeAvatar.bindAsEventListener( this, {$member['member_id']} ) );
$('MF__avatarchange').observe('click', acp.members.changeAvatar.bindAsEventListener( this, "app=forums&amp;module=ajax&amp;section=member_editform&amp;do=show&amp;name=inline_avatar&amp;member_id={$member['member_id']}" ) );
</script>
</td>
</tr>
<tr>
<td><strong>{$this->lang->words['mem_posts']}</strong></td>
<td>
<span id='MF__posts'>{$form_posts}</span>
</td>
</tr>
<tr>
<td><strong>{$this->lang->words['m_viewavs']}</strong></td>
<td>
<span id='MF__view_avs'>{$form_view_avs}</span>
</td>
</tr>
<tr>
<td><strong>{$this->lang->words['m_viewimgs']}</strong></td>
<td>
<span id='MF__view_img'>{$form_view_img}</span>
</td>
</tr>
</table>
</div>
<div class='tablerow1' id='tabpane-MEMBERS|7'>
<table class='alternate_rows double_pad' cellspacing='0'>
<tr>
<th colspan='2'>{$this->lang->words['sm_access']}</th>
</tr>
<tr>
<td style='width: 35%'><strong>{$this->lang->words['m_overrride']}</strong></td>
<td>
<span id='MF__ogpm'>{$form_override_masks}</span>
</td>
</tr>
<tr>
<td><strong>{$this->lang->words['m_modprev']}</strong></td>
<td>
<input type='checkbox' name='mod_indef' id='mod_indef' value='1' {$_mod_tick}> {$this->lang->words['m_modindef']}
<br />
{$this->lang->words['m_orfor']}
{$_mod_timespan} {$_mod_units}
</td>
</tr>
<tr>
<td><strong>{$this->lang->words['m_restrict']}</strong></td>
<td>
<input type='checkbox' name='post_indef' id='post_indef' value='1' {$_restrict_tick}> {$this->lang->words['m_restrictindef']}
<br />
{$this->lang->words['m_orfor']}
{$_restrict_timespan} {$_restrict_units}
</td>
</tr>
</table>
</div>
EOF;
return $IPBHTML;
}
/**
* Forums member tabs
*
* @access public
* @param array Member data
* @return string HTML
*/
public function acp_member_form_tabs( $member ) {
$IPBHTML = "";
$IPBHTML .= <<<EOF
<li id='tabtab-MEMBERS|6' class=''>{$this->lang->words['m_details']}</li>
<li id='tabtab-MEMBERS|7' class=''>{$this->lang->words['m_permrestrict']}</li>
EOF;
return $IPBHTML;
}
/**
* Delete posts confirmation page
*
* @access public
* @param array Member data
* @param integer Number of topics
* @param integer Number of posts
* @return string HTML
*/
public function deletePostsStart( $member, $topics, $posts ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<EOF
<form action='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=deleteposts_process&amp;member_id={$member['member_id']}' method='POST'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->getClass('adminFunctions')->_admin_auth_key}' />
<div class='tableborder'>
<div class='tableheaderalt'>{$this->lang->words['mem_delete_posts_title']} {$member['members_display_name']}</div>
<table cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td class='tablerow1' width='90%'><strong>{$this->lang->words['mem_delete_delete_posts']}</strong><div class='desctext'>{$this->lang->words['mem_delete_delete_posts_desc']}</div></td>
<td class='tablerow2' width='10%'><input type='checkbox' value='1' name='dposts' /></td>
</tr>
<tr>
<td class='tablerow1' width='90%'><strong>{$this->lang->words['mem_delete_delete_topics']}</strong><div class='desctext'>{$this->lang->words['mem_delete_delete_topics_desc']}</div></td>
<td class='tablerow2' width='10%'><input type='checkbox' value='1' name='dtopics' /></td>
</tr>
<tr>
<td class='tablerow1' width='90%'><strong>{$this->lang->words['mem_delete_posts_trash']}</strong><div class='desctext'>{$this->lang->words['mem_delete_posts_trash_desc']}</div></td>
<td class='tablerow2' width='10%'><input type='checkbox' value='1' name='use_trash_can' /></td>
</tr>
<tr>
<td class='tablerow1' width='90%'><strong>{$this->lang->words['mem_delete_delete_pergo']}</strong><div class='desctext'>{$this->lang->words['mem_delete_delete_pergo_desc']}</div></td>
<td class='tablerow2' width='10%'><input type='input' value='50' size='3' name='dpergo' /></td>
</tr>
</table>
<div align='center' class='tablefooter'><input type='submit' class='realbutton' value='{$this->lang->words['mem_delete_process']}' /></div>
</div>
</form>
EOF;
//--endhtml--//
return $IPBHTML;
}
}
@@ -0,0 +1,208 @@
<?php
/**
* Invision Power Services
* IP.Board v3.0.5
* Multimods skin functions
* Last Updated: $LastChangedDate: 2009-04-27 12:22:53 -0400 (Mon, 27 Apr 2009) $
*
* @author $Author: rikki $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @subpackage Forums
* @link http://www.iinvisionpower.com
* @since 14th May 2003
* @version $Rev: 4557 $
*/
class cp_skin_multimods extends output
{
/**
* Prevent our main destructor being called by this class
*
* @access public
* @return void
*/
public function __destruct()
{
}
/**
* Form to add/edit multimods
*
* @access public
* @param integer MM ID
* @param string Action
* @param string Description
* @param array Form fields
* @param string Button text
* @return string HTML
*/
public function multiModerationForm( $id, $do, $description, $form, $button ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['mm_title']}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
<input type='hidden' name='id' value='{$id}' />
<input type='hidden' name='do' value='{$do}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<div class='acp-box'>
<h3>{$this->lang->words['mm_title']}</h3>
<ul class="acp-form alternate_rows">
<li><label class='head'>{$description}</label>
<li>
<label>{$this->lang->words['mm_titlefor']}</label>
{$form['mm_title']}
</li>
<li>
<label>{$this->lang->words['mm_activein']}<span class='desctext'>{$this->lang->words['mm_activein_desc']}</span></label>
{$form['forums']}
</tr>
<li>
<label class='head'>{$this->lang->words['mm_modoptions']}</label>
</li>
<li>
<label>{$this->lang->words['mm_start']}</label>
{$form['topic_title_st']}
</li>
<li>
<label>{$this->lang->words['mm_end']}</label>
{$form['topic_title_end']}
</li>
<li>
<label>{$this->lang->words['mm_state']}</label>
{$form['topic_state']}
</li>
<li>
<label>{$this->lang->words['mm_pinned']}</label>
{$form['topic_pin']}
</li>
<li>
<label>{$this->lang->words['mm_approved']}</label>
{$form['topic_approve']}
</li>
<li>
<label>{$this->lang->words['mm_move']}</label>
{$form['topic_move']}
</li>
<li>
<label>{$this->lang->words['mm_link']}</label>
{$form['topic_move_link']}
</li>
<li><label class='head'>{$this->lang->words['mm_postoptions']}</label></li>
<li>
<label>{$this->lang->words['mm_addreply']}<span class='desctext'>{$this->lang->words['mm_addreply_desc']}</span></label>
{$form['topic_reply']}<br />
{$form['topic_reply_content']}
</li>
<li>
<label>{$this->lang->words['mm_postcount']}</label>
{$form['topic_reply_postcount']}
</li>
</table>
<div class='acp-actionbar'>
<div class='centeraction'>
<input type='submit' value='{$button}' class='button primary' accesskey='s'>
</div>
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Show multimod overview page
*
* @access public
* @param array MM Rows
* @return string HTML
*/
public function multiModerationOverview( $rows ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['mm_title']}</h2>
<ul class='context_menu'>
<li>
<a href='{$this->settings['base_url']}{$this->form_code}do=new' title='{$this->lang->words['mm_addnew']}'>
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/lightning_add.png' alt='' />
{$this->lang->words['mm_addnew']}
</a>
</li>
</ul>
</div>
<div class='acp-box'>
<h3>{$this->lang->words['mm_current']}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<th width='95%'>{$this->lang->words['mm_wordtitle']}</th>
<th width='5%'>{$this->lang->words['a_options']}</th>
</tr>
HTML;
if( ! count( $rows ) )
{
$IPBHTML .= <<<HTML
<tr><td colspan='3'><center>{$this->lang->words['mm_none']}</center></td></tr>
HTML;
}
else
{
foreach( $rows as $r )
{
$IPBHTML .= <<<HTML
<tr>
<td><strong>{$r['mm_title']}</strong></td>
<td>
<img class='ipbmenu' id="menu{$r['mm_id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['a_options']}' />
<ul class='acp-menu' id='menu{$r['mm_id']}_menucontent'>
<li class='icon edit'><a href='{$this->settings['base_url']}{$this->form_code}do=edit&amp;id={$r['mm_id']}'>{$this->lang->words['mm_wordedit']}</a></li>
<li class='icon delete'><a href='{$this->settings['base_url']}{$this->form_code}do=delete&amp;id={$r['mm_id']}'>{$this->lang->words['mm_remove']}</a></li>
</ul>
</td>
</tr>
HTML;
}
}
$IPBHTML .= <<<HTML
</table>
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
}
@@ -0,0 +1,356 @@
<?php
/**
* Invision Power Services
* IP.Board v3.0.5
* Permissions masks skin functions
* Last Updated: $LastChangedDate: 2009-03-26 19:05:57 -0400 (Thu, 26 Mar 2009) $
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @subpackage Forums
* @link http://www.iinvisionpower.com
* @since 14th May 2003
* @version $Rev: 4324 $
*/
class cp_skin_permissions extends output
{
/**
* Prevent our main destructor being called by this class
*
* @access public
* @return void
*/
public function __destruct()
{
}
/**
* Preview forum permissions
*
* @access public
* @param integer Mask id
* @param string Mask title
* @param string HTML for type dropdown
* @param array Forum rows
* @param string Type human-understandable text
* @return string HTML
*/
public function previewForumPermissions( $id, $title, $type_drop, $rows, $human_type )
{
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='tableborder'>
<div class='tableheaderalt'>{$this->lang->words['per_preview']}{$title}</div>
<table width='100%' cellspacing='0' cellpadding='5' align='center' border='0'>
<tr>
<td class='tablesubheader' width='100%' align='center' colspan='2'>{$human_type}</td>
</tr>
<tr>
<td class='tablerow1' width='100%' valign='middle'>
HTML;
foreach( $rows as $r )
{
$IPBHTML .= <<<HTML
<span style='{$r['css']}'>{$r['name']}</span><br />
HTML;
}
$IPBHTML .= <<<HTML
</td>
</tr>
</table>
</div><br />
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
<input type='hidden' name='do' value='preview_forums' />
<input type='hidden' name='id' value='{$id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<div class='tableborder'>
<div class='tableheaderalt'>{$this->lang->words['per_legend']}</div>
<table width='100%' cellspacing='0' cellpadding='5' align='center' border='0'>
<tr>
<td class='tablerow1' width='60%' valign='middle'>{$this->lang->words['per_can']}{$human_type}</td>
<td class='tablerow2' width='40%' valign='middle'><input type='text' readonly='readonly' style='border:1px solid black;background-color:green;size=30px' name='blah'></td>
</tr>
<tr>
<td class='tablerow1' width='60%' valign='middle'>{$this->lang->words['per_cannot']}{$human_type}</td>
<td class='tablerow2' width='40%' valign='middle'><input type='text' readonly='readonly' style='border:1px solid gray;background-color:red;size=30px' name='blah'></td>
</tr>
<tr>
<td class='tablerow1' width='60%' valign='middle'>{$this->lang->words['per_category']}</td>
<td class='tablerow2' width='40%' valign='middle'><input type='text' readonly='readonly' style='border:1px solid gray;background-color:grey;size=30px' name='blah'></td>
</tr>
<tr>
<td class='tablerow1' width='60%' valign='middle'>{$this->lang->words['per_testwith']}</td>
<td class='tablerow2' width='40%' valign='middle'>{$type_drop}</select>
</td>
</tr>
<tr>
<td align='center' class='tablesubheader' colspan='2' ><input type='submit' value='{$this->lang->words['per_updatebutton']}' class='realbutton' accesskey='s'></td>
</tr>
</table>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Permissions editor
*
* @access public
* @param integer Mask id
* @param string Mask title
* @param array Rows
* @return string HTML
*/
public function permissionsForum( $id, $title, $rows ){
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['per_title_edit']}</h2>
</div>
<!-- RENAME PERMISSION SET -->
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='nameForm' id='nameForm'>
<input type='hidden' name='do' value='donameedit' />
<input type='hidden' name='id' value='{$id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<div class='tableborder'>
<div class='tableheaderalt'>{$this->lang->words['per_rename']}{$title}</div>
<table width='100%' cellspacing='0' cellpadding='5' align='center' border='0'>
<tr>
<td class='tablerow1' width='40%' valign='middle'>{$this->lang->words['per_setname']}</td>
<td class='tablerow2' width='60%' valign='middle'><input type='text' name='perm_name' id='perm_name' value='{$title}' size='30' class='textinput' /></td>
</tr>
<tr>
<td align='center' class='tablesubheader' colspan='2' ><input type='submit' value='{$this->lang->words['per_editbutton']}' class='realbutton' accesskey='s'></td>
</tr>
</table>
</div>
</form>
<br />
<!-- / RENAME PERMISSION SET -->
<!-- PERMISSION MATRIX -->
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
<input type='hidden' name='do' value='dofedit' />
<input type='hidden' name='id' value='{$id}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<div class='tableborder'>
<div class='tableheaderalt'>Доступы для {$title}</div>
<table width='100%' cellspacing='0' cellpadding='5' align='center' border='0'>
<tr>
<td class='tablesubheader' width='25%' align='center'>{$this->lang->words['per_forumname']}</td>
<td class='tablesubheader' width='10%' align='center'>{$this->lang->words['per_show_c']}<br /><input id='show' type='checkbox' onclick='checkcol("show", this.checked );' /></td>
<td class='tablesubheader' width='10%' align='center'>{$this->lang->words['per_read_c']}<br /><input id='read' type='checkbox' onclick='checkcol("read", this.checked );' /></td>
<td class='tablesubheader' width='10%' align='center'>{$this->lang->words['per_reply_c']}<br /><input id='reply' type='checkbox' onclick='checkcol("reply", this.checked );' /></td>
<td class='tablesubheader' width='10%' align='center'>{$this->lang->words['per_start_c']}<br /><input id='start' type='checkbox' onclick='checkcol("start", this.checked );' /></td>
<td class='tablesubheader' width='10%' align='center'>{$this->lang->words['per_upload_c']}<br /><input id='upload' type='checkbox' onclick='checkcol("upload", this.checked );' /></td>
<td class='tablesubheader' width='10%' align='center'>{$this->lang->words['per_download_c']}<br /><input id='download' type='checkbox' onclick='checkcol("download", this.checked );' /></td>
</tr>
HTML;
foreach( $rows as $r )
{
$IPBHTML .= <<<HTML
<tr>
<td class='{$r['css']}' width='25%' valign='middle'>
<div style='float:right;width:auto;'>
<input type='button' id='button' value='+' onclick='checkrow( {$row['id']},true )' />&nbsp;
<input type='button' id='button' value='-' onclick='checkrow( {$row['id']},false )' />
</div>
<b>{$r['depthed_name']}</b>
</td>
<td class='{$r['css']}' width='10%' valign='middle'><div style='background-color:#ecd5d8; padding:4px;'>{$this->_permission_check_box( $r['id'], 'view', $r['_perms'] )}</td>
<td class='{$r['css']}' width='10%' valign='middle'><div style='background-color:#dbe2de; padding:4px;'>{$this->_permission_check_box( $r['id'], 'read', $r['_perms'] )}</div></td>
<td class='{$r['css']}' width='10%' valign='middle'><div style='background-color:#dbe6ea; padding:4px;'>{$this->_permission_check_box( $r['id'], 'reply', $r['_perms'] )}</div></td>
<td class='{$r['css']}' width='10%' valign='middle'><div style='background-color:#d2d5f2; padding:4px;'>{$this->_permission_check_box( $r['id'], 'start', $r['_perms'] )}</div></td>
<td class='{$r['css']}' width='10%' valign='middle'><div style='background-color:#ece6d8; padding:4px;'>{$this->_permission_check_box( $r['id'], 'upload', $r['_perms'] )}</div></td>
<td class='{$r['css']}' width='10%' valign='middle'><div style='background-color:#dfdee9; padding:4px;'>{$this->_permission_check_box( $r['id'], 'download', $r['_perms'] )}</div></td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
<tr>
<td align='center' class='tablesubheader' colspan='7' ><input type='submit' value='{$this->lang->words['per_updatebutton']}' class='realbutton' accesskey='s'></td>
</tr>
</table>
</div>
</form>
<!-- / PERMISSION MATRIX -->
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Check box generator helper
*
* @access private
* @param integer Mask id
* @param array Mask data
* @param array Current selections
* @return string HTML
*/
private function _permission_check_box( $id, $perm, $r )
{
$IPBHTML = "";
//--starthtml--//
if( in_array( $r[ $perm ], array( $this->lang->words['per_global'], $this->lang->words['per_notused'] ) ) )
{
$IPBHTML .= <<<HTML
<center><i>{$r[$perm]}</i></center>
HTML;
}
else if( $r[ $perm ] == 'checked' )
{
$IPBHTML .= <<<HTML
<center><input type='checkbox' name='{$perm}[{$id}]' id='{$perm}_{$id}' onclick="obj_checked('{$perm}', {$id} );" value='1' checked></center>
HTML;
}
else
{
$IPBHTML .= <<<HTML
<center><input type='checkbox' name='{$perm}[{$id}]' id='{$perm}_{$id}' onclick="obj_checked('{$perm}', {$id} );" value='1'></center>
HTML;
}
//--endhtml--//
return $IPBHTML;
}
/**
* Perm mask splash page
*
* @access public
* @param array Mask rows
* @param string Dropdown list
* @return string HTML
*/
public function permissionsSplash( $rows, $dlist ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['per_title']}</h2>
</div>
<div class='tableborder'>
<div class='tableheaderalt'>{$this->lang->words['per_setname']}</div>
<table cellpadding='4' cellspacing='0' width='100%'>
<tr>
<td class='tablesubheader' width='20%'>{$this->lang->words['per_name']}</td>
<td class='tablesubheader' width='15%'>{$this->lang->words['per_usedgroups']}</td>
<td class='tablesubheader' width='20%' align='center'>{$this->lang->words['per_usedmembers']}</td>
<td class='tablesubheader' width='1%'>&nbsp;</td>
</tr>
HTML;
/* ROW */
foreach( $rows as $r )
{
$IPBHTML .= <<<HTML
<tr>
<td class='tablerow2'><strong>{$r['name']}</strong></td>
<td class='tablerow1'>{$r['groups']}</td>
<td class='tablerow1' align='center'>
HTML;
if ( $r['mems'] > 0 )
{
$IPBHTML .= <<<HTML
{$r['mems']} (<a href='#' onclick='return acp.openWindow("{$this->settings['base_url']}{$this->form_code_js}do=view_perm_users&amp;id={$r['id']}", "{$this->lang->words['per_user']}", "500","350");' title='{$this->lang->words['per_viewnames']}'>{$this->lang->words['per_view']}</a>)
HTML;
}
else
{
$IPBHTML .= <<<HTML
{$this->lang->words['per_nomember']}
HTML;
}
$IPBHTML .= <<<HTML
</td>
<td class='tablerow1' align='center'>
<img id="menu{$r['id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' border='0' alt='{$this->lang->words['per_options']}' class='ipbmenu' />
<ul class='acp-menu' id='menu{$r['id']}_menucontent'>
<li class='icon view'><a href='#' onclick='return acp.openWindow(\"{$this->settings['base_url']}{$this->form_code_js}do=preview_forums&amp;id={$r['id']}&amp;t=read\", \"{$this->lang->words['per_preview']}\", \"400\",\"350\");' title='{$this->lang->words['per_previewtext']}'>{$this->lang->words['per_previewset']}</a></li>
<li class='icon edit'><a href='{$this->settings['base_url']}{$this->form_code}do=fedit&amp;id={$r['id']}'>{$this->lang->words['per_editset']}</a></li>
HTML;
if ( ! $r['isactive'] )
{
$IPBHTML .= <<<HTML
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=pdelete&amp;id={$r['id']}");'>{$this->lang->words['per_deleteset']}</a></li>
HTML;
}
else
{
$IPBHTML .= <<<HTML
<li class='icon delete'>{$this->lang->words['per_inuse']}</li>
HTML;
}
$IPBHTML .= <<<HTML
</ul>
</td>
</tr>
HTML;
}
/* / ROW */
$IPBHTML .= <<<HTML
</table>
</div>
<br />
<form name='theAdminForm' id='adminform' action='{$this->settings['base_url']}{$this->form_code}&amp;do=dopermadd' method='post'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<div class='tableborder'>
<div class='tableheaderalt'>{$this->lang->words['per_createnew']}</div>
<table cellpadding='4' cellspacing='0' width='100%'>
<tr>
<td class='tablerow1'>{$this->lang->words['per_setname']}</td>
<td class='tablerow2'><input type='text' class='input' size='30' name='new_perm_name' /></td>
</tr>
<tr>
<td class='tablerow1'>{$this->lang->words['per_baseon']}</td>
<td class='tablerow2'><select name='new_perm_copy' class='dropdown'>{$dlist}</select></td>
</tr>
</table>
<div class='tablefooter' align='center'><input type='submit' value='{$this->lang->words['per_createbutton']}' class='realbutton' /></div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
}
@@ -0,0 +1,497 @@
<?php
/**
* Invision Power Services
* IP.Board v3.0.5
* RSS skin functions
* Last Updated: $LastChangedDate: 2009-03-27 11:41:38 -0400 (Fri, 27 Mar 2009) $
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @subpackage Forums
* @link http://www.iinvisionpower.com
* @since 14th May 2003
* @version $Rev: 4333 $
*/
class cp_skin_rss extends output {
/**
* Prevent our main destructor being called by this class
*
* @access public
* @return void
*/
public function __destruct()
{
}
/**
* Export overview page
*
* @access public
* @param string Rows html
* @param string Page links
* @return string HTML
*/
public function rssExportOverview( $content, $page_links ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['ex_title']}</h2>
</div>
HTML;
if( $page_links != "" )
{
$IPBHTML .= <<<HTML
{$page_links}
<br style='clear: both' />
HTML;
}
$IPBHTML .= <<<HTML
<div class='acp-box'>
<h3>{$this->lang->words['rss_ex_streams']}</h3>
<table class='alternate_rows double_pad' width='100%'>
<tr>
<th width='90%'>{$this->lang->words['rss_title']}</th>
<th width='5%' align='center'>{$this->lang->words['rss_enabled']}</th>
<th width='5%' align='right'>
<img id="menumainone" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' border='0' alt='{$this->lang->words['rss_options']}' class='ipbmenu' />
<ul class='acp-menu' id='menumainone_menucontent'>
<li class='icon add'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssexport_add'>{$this->lang->words['rss_ex_create']}</a></li>
<li class='icon refresh'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssexport_recache&amp;rss_export_id=all'>{$this->lang->words['rss_ex_update']}</a></li>
</ul>
</th>
</tr>
HTML;
foreach( $content as $data )
{
$IPBHTML .= <<<HTML
<tr>
<td>
<a target='_blank' href='{$this->settings['board_url']}/index.php?app=core&amp;module=global&amp;section=rss&amp;type=forums&amp;id={$data['rss_export_id']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/feed.png' border='0' alt='RSS' style='vertical-align:top' /></a>
<strong>{$data['rss_export_title']}</strong>
</td>
<td align='center'><img src='{$this->settings['skin_acp_url']}/images/{$data['_enabled_img']}' border='0' alt='YN' class='ipd' /></td>
<td align='right'>
<img id="menu{$data['rss_export_id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' border='0' alt='{$this->lang->words['rss_']}' class='ipbmenu' />
<ul class='acp-menu' id='menu{$data['rss_export_id']}_menucontent'>
<li class='icon edit'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssexport_edit&amp;rss_export_id={$data['rss_export_id']}'>{$this->lang->words['rss_ex_edit']}</a></li>
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssexport_delete&amp;rss_export_id={$data['rss_export_id']}");'>{$this->lang->words['rss_ex_delete']}</a></li>
<li class='icon refresh'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssexport_recache&amp;rss_export_id={$data['rss_export_id']}'>{$this->lang->words['rss_ex_recache']}</a></li>
</ul>
</td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
</div>
HTML;
if( $page_links != "" )
{
$IPBHTML .= <<<HTML
{$page_links}
<br style='clear: both' />
HTML;
}
//--endhtml--//
return $IPBHTML;
}
/**
* Export form
*
* @access public
* @param array Form fields
* @param string Title
* @param string Action code
* @param string Button text
* @param array RSS Stream info
* @return string HTML
*/
public function rssExportForm( $form, $title, $formcode, $button, $rssstream ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['ex_title']}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}&amp;do=$formcode&amp;rss_export_id={$rssstream['rss_export_id']}' method='post'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<div class='acp-box'>
<h3>$title</h3>
<ul class="acp-form alternate_rows">
<li>
<label>{$this->lang->words['rss_ex_title']}</label>
{$form['rss_export_title']}
</li>
<li>
<label>{$this->lang->words['rss_desc']}</label>
{$form['rss_export_desc']}
</li>
<li>
<label>{$this->lang->words['rss_ex_img']}<span class='desctext'>{$this->lang->words['rss_ex_img_info']}</span></label>
{$form['rss_export_image']}
</li>
<li>
<label>{$this->lang->words['rss_ex_enabled']}</label>
{$form['rss_export_enabled']}
</li>
<li>
<label>{$this->lang->words['rss_ex_firstpost']}</label>
{$form['rss_export_include_post']}
</li>
<li>
<label>{$this->lang->words['rss_ex_numitem']}<span class='desctext'>{$this->lang->words['rss_ex_numitem_info']}</span></label>
{$form['rss_export_count']}
</li>
<li>
<label>{$this->lang->words['rss_ex_order']}</label>
{$form['rss_export_order']}
</li>
<li>
<label>{$this->lang->words['rss_ex_sort']}</label>
{$form['rss_export_sort']}
</li>
<li>
<label>{$this->lang->words['rss_ex_forums']}<span class='desctext'>{$this->lang->words['rss_ex_forums_info']}</span></label>
<td width='60%' class='tablerow2'>{$form['rss_export_forums']}</td>
</li>
<li>
<label>{$this->lang->words['rss_ex_cache']}<span class='desctext'>{$this->lang->words['rss_ex_cache_info']}</span></label>
{$form['rss_export_cache_time']}
</li>
</ul>
</div>
<div class='acp-actionbar'>
<div class='rightaction'>
<input type='submit' class='button primary' value='{$button}' />
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Splash page for removing imported items
*
* @access public
* @param array RSS Record
* @param integer Remove article count
* @return string HTML
*/
public function rssImportRemoveArticlesForm( $rssstream, $article_count ) {
$article_count_text = sprintf( $this->lang->words['rss_im_articlecount'], $article_count );
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['im_title']}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}&amp;do=rssimport_remove_complete&amp;rss_import_id={$rssstream['rss_import_id']}' method='post'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<div class='acp-box'>
<h3>{$this->lang->words['rss_im_removetopics']} {$rssstream['rss_import_title']}</h3>
<ul class='acp-form alternate_rows'>
<li>
<label>{$article_count_text}</label>
</li>
<li>
<label>{$this->lang->words['rss_im_removelast']}<span class='desctext'>{$this->lang->words['rss_im_blankall']}</span></label>
<input type='text' name='remove_count' value='10' />
</li>
</ul>
<div class='acp-actionbar'>
<div class='rightaction'>
<input type='submit' class='button primary' value='{$this->lang->words['rss_im_removenoconf']}' />
</div>
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* RSS Import form
*
* @access public
* @param array Form fields
* @param string Title
* @param string Action code
* @param string Button text
* @param array RSS Record
* @return string HTML
*/
public function rssImportForm( $form, $title, $formcode, $button, $rssstream ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['im_title']}</h2>
</div>
<script type="text/javascript" src='{$this->settings['js_app_url']}acp.rss.js'></script>
<form id='rssimport_form' action='{$this->settings['base_url']}{$this->form_code}&amp;do={$formcode}&amp;rss_import_id={$rssstream['rss_import_id']}' method='post'>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<input id='rssimport_validate' type='hidden' name='rssimport_validate' value='0' />
<div class='acp-box'>
<h3>{$title}</h3>
<ul class='acp-form alternate_rows'>
<li><label class='head'>{$this->lang->words['rss_im_basics']}</label></li>
<li>
<label>{$this->lang->words['rss_im_title']}</label>
{$form['rss_import_title']}
</li>
<li>
<label>{$this->lang->words['rss_im_url']}<span class='desctext'>{$this->lang->words['rss_im_url_info']}</span></label>
{$form['rss_import_url']}
</li>
<li>
<label>{$this->lang->words['rss_im_charset']}<span class='desctext'>{$this->lang->words['rss_im_charset_info']}</span></label>
{$form['rss_import_charset']}
</li>
<li>
<label>{$this->lang->words['rss_im_enabled']}</label>
{$form['rss_import_enabled']}
</li>
<li><label class='head'>{$this->lang->words['rss_im_htaccess']}</label></li>
<li>
<label>{$this->lang->words['rss_im_ht_require']}<span class='desctext'>{$this->lang->words['rss_im_ht_info']}</span></label>
{$form['rss_import_auth']}
</li>
<span id='rss_import_auth_userinfo' {$form['rss_div_show']}>
<li>
<label>{$this->lang->words['rss_im_ht_user']}</label>
{$form['rss_import_auth_user']}
</li>
<li>
<label>{$this->lang->words['rss_im_ht_pass']}</label>
{$form['rss_import_auth_pass']}
</li>
</span>
<li><label class='head'>{$this->lang->words['rss_im_content']}</label></li>
<li>
<label>{$this->lang->words['rss_im_forum']}<span class='desctext'>{$this->lang->words['rss_im_forum_info']}</span></label>
{$form['rss_import_forum_id']}
</li>
<li>
<label>{$this->lang->words['rss_im_html']}<span class='desctext'>{$this->lang->words['rss_im_html_info']}</span></label>
{$form['rss_import_allow_html']}
</li>
<li>
<label>{$this->lang->words['rss_im_poster']}<span class='desctext'>{$this->lang->words['rss_im_poster_info']}</span></label>
{$form['rss_import_mid']}
</li>
<li>
<label>{$this->lang->words['rss_im_incpost']}<span class='desctext'>{$this->lang->words['rss_im_incpost_info']}</span></label>
{$form['rss_import_inc_pcount']}
</li>
<li>
<label>{$this->lang->words['rss_im_link']}<span class='desctext'>{$this->lang->words['rss_im_link_info']}</span></label>
{$form['rss_import_showlink']}
</li>
<li>
<label>{$this->lang->words['rss_im_open']}<span class='desctext'>{$this->lang->words['rss_im_open_info']}</span></label>
{$form['rss_import_topic_open']}
</li>
<li>
<label>{$this->lang->words['rss_im_hidden']}<span class='desctext'>{$this->lang->words['rss_im_hidden_info']}</span></label>
{$form['rss_import_topic_hide']}
</li>
<li>
<label>{$this->lang->words['rss_im_prefix']}<span class='desctext'>{$this->lang->words['rss_im_prefix_info']}</span></label>
{$form['rss_import_topic_pre']}
</li>
<li><label class='head'>{$this->lang->words['rss_im_settings']}</label></li>
<li>
<label>{$this->lang->words['rss_im_pergo']}<span class='desctext'>{$this->lang->words['rss_im_pergo_info']}</span></label>
{$form['rss_import_pergo']}
</li>
<li>
<label>{$this->lang->words['rss_im_refresh']}<span class='desctext'>{$this->lang->words['rss_im_refresh_info']}</span></label>
{$form['rss_import_time']}
</li>
</ul>
<div class='acp-actionbar'>
<div class='rightaction'>
<input type='submit' class='button primary' value='$button' /> &nbsp;&nbsp;&nbsp;
<input type='button' class='button primary' value='{$this->lang->words['rss_im_valbutton']}' onclick='ACPRss.validate();' /></div>
</div>
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* RSS Import stream overview
*
* @access public
* @param string HTML content
* @param string Page links
* @return string HTML
*/
public function rssImportOverview( $content, $page_links ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['im_title']}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}&amp;do=rssimport_validate' method='post'>
<div class='acp-box'>
<h3>{$this->lang->words['rss_im_quickval']}</h3>
<ul class='acp-form alternate_rows'>
<li>
<label>{$this->lang->words['rss_im_enturl']}</label>
<input type='text' size='50' name='rss_url' value='http://' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
</li>
</ul>
<div class='acp-actionbar'>
<div class='rightaction'>
<input type='submit' class='button primary' value='{$this->lang->words['rss_im_valbutton']}' />
</div>
</div>
</div>
</form>
<br />
{$page_links}
<br style='clear: both' />
<div class='acp-box'>
<h3>{$this->lang->words['rss_im_thefeeds']}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<th width='90%'>{$this->lang->words['rss_title']}</th>
<th width='5%' align='center'>{$this->lang->words['rss_enabled']}</th>
<th width='5%' align='right'>
<img id="menumainone" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' border='0' alt='{$this->lang->words['rss_options']}' class='ipbmenu' />
<ul class='acp-menu' id='menumainone_menucontent'>
<li class='icon add'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssimport_add'>{$this->lang->words['rss_im_create']}</a></li>
<li class='icon refresh'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssimport_recache&amp;rss_import_id=all'>{$this->lang->words['rss_im_updateall']}</a></li>
</ul>
</th>
</tr>
HTML;
foreach( $content as $data )
{
$IPBHTML .= <<<HTML
<tr>
<td>
<!--ACPNOTE: Missing rss.png -->
<a target='_blank' href='{$data['rss_import_url']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/feed.png' border='0' alt='{$this->lang->words['rss_rss']}' style='vertical-align:top' /></a>
<strong>{$data['rss_import_title']}</strong>
</td>
<td align='center'><img src='{$this->settings['skin_acp_url']}/images/{$data['_enabled_img']}' border='0' alt='***' class='ipd' /></td>
<td align='right'>
<img id="menu{$data['rss_import_id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' border='0' alt='{$this->lang->words['rss_options']}' class='ipbmenu' />
<ul class='acp-menu' id='menu{$data['rss_import_id']}_menucontent'>
<li class='icon edit'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssimport_edit&amp;rss_import_id={$data['rss_import_id']}'>{$this->lang->words['rss_im_edit']}</a></li>
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssimport_delete&amp;rss_import_id={$data['rss_import_id']}");'>{$this->lang->words['rss_im_delete']}</a></li>
<li class='icon delete'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssimport_remove&amp;rss_import_id={$data['rss_import_id']}'>{$this->lang->words['rss_im_remove']}</a></li>
<li class='icon refresh'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssimport_recache&amp;rss_import_id={$data['rss_import_id']}'>{$this->lang->words['rss_im_update']}</a></li>
<li class='icon manage'><a href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=rssimport_validate&amp;rss_id={$data['rss_import_id']}'>{$this->lang->words['rss_im_validate']}</a></li>
</ul>
</td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
</div>
{$page_links}
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Validation message
*
* @access public
* @param array Validation info
* @return string HTML
*/
public function rssValidateMsg( $info ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<EOF
<span class='{$info['class']}'>{$info['msg']}</span>
EOF;
//--endhtml--//
return $IPBHTML;
}
}
@@ -0,0 +1,159 @@
<?php
/**
* Invision Power Services
* IP.Board v3.0.5
* Stats skin functions
* Last Updated: $LastChangedDate: 2009-06-17 22:28:03 -0400 (Wed, 17 Jun 2009) $
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @subpackage Forums
* @link http://www.iinvisionpower.com
* @since 14th May 2003
* @version $Rev: 4785 $
*/
class cp_skin_stats extends output {
/**
* Prevent our main destructor being called by this class
*
* @access public
* @return void
*/
public function __destruct()
{
}
/**
* Show the stats results
*
* @access public
* @param string Title
* @param array Stats rows
* @param integer Total
* @return string HTML
*/
public function statResultsScreen( $title, $rows, $total ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['stats_title_results']}</h2>
</div>
<div class='acp-box'>
<h3>{$title}</h3>
<table class='alternate_rows' width='100%'>
<tr>
<th width='20%'>{$this->lang->words['stats_date']}</th>
<th width='70%'>{$this->lang->words['stats_results']}</th>
<th width='10%'>{$this->lang->words['stats_count']}</th>
</tr>
HTML;
foreach( $rows as $r )
{
$IPBHTML .= <<<HTML
<tr>
<td width='20%'>{$r['_name']}</td>
<td width='70%'>
<img src='{$this->settings['skin_acp_url']}/images/bar_left.gif' border='0' width='4' height='11' align='middle' alt=''><img src='{$this->settings['skin_acp_url']}/images/bar.gif' border='0' width='{$r['_width']}' height='11' align='middle' alt=''><img src='{$this->settings['skin_acp_url']}/images/bar_right.gif' border='0' width='4' height='11' align='middle' alt=''>
</td>
<td width='10%'><center>{$r['result_count']}</center></td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
<tr>
<td width='20%'>&nbsp;</td>
<td width='70%'><div align='right'>{$this->lang->words['stats_total']}</div></td>
<td width='10%'><center><b>{$total}</b></center></td>
</tr>
</table>
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Show the stats main screen
*
* @access public
* @param string Type
* @param string Title
* @param array Form fields
* @return string HTML
*/
public function statMainScreeen( $type, $title, $form ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['stats_title']}</h2>
</div>
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
<input type='hidden' name='do' value='{$type}' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div class='acp-box'>
<h3>{$title}</h3>
<ul class="acp-form alternate_rows">
<li>
<label>{$this->lang->words['stats_datefrom']}</label>
{$form['from_month']}&nbsp;&nbsp;{$form['from_day']}&nbsp;&nbsp;{$form['from_year']}
</li>
<li>
<label>{$this->lang->words['stats_dateto']}</label>
{$form['to_month']}&nbsp;&nbsp;{$form['to_day']}&nbsp;&nbsp;{$form['to_year']}
</li>
HTML;
//-----------------------------------------
// Time scale is irrelevant to topic views
//-----------------------------------------
if( $type != 'statsShowTopicViews' )
{
$IPBHTML .= <<<HTML
<li>
<label>{$this->lang->words['stats_timescale']}</label>
{$form['timescale']}
</li>
HTML;
}
$IPBHTML .= <<<HTML
<li>
<label>{$this->lang->words['stats_sorting']}</label>
{$form['sortby']}
</li>
</table>
<div class='acp-actionbar'>
<div class='centeraction'>
<input type='submit' value='{$this->lang->words['stats_show']}' class='button primary' accesskey='s'>
</div>
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
}
@@ -0,0 +1 @@
<html>␍<head><title>IP.Board - Bulletin Board System</title></head>␍<body>␍<h1>403: IP.Board -> Forbidden</h1>␍<hr>␍You have reached this page in error, please use your back button to return to the forum.␍<hr>␍<a href="http://www.invisionboard.com/">IP.Board</a>␍</body>␍</html>␍