Version 3.0.5
This commit is contained in:
1 parent
19b38c7c74
commit
1d4720f3e2
3755 files changed
+508378
-664541
No files matched your search
@@ -0,0 +1,268 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Admin log skin file
|
||||
* Last Updated: $Date: 2009-09-24 16:56:42 -0400 (Thu, 24 Sep 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 5154 $
|
||||
*/
|
||||
|
||||
class cp_skin_adminlogs extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the splash screen for the logs
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function logSplashScreen() {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['choose_splash']}</h3>
|
||||
|
||||
<table width='100%' class='alternate_rows'>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=logs&section=errorlogs'>{$this->lang->words['error_log_thelogs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=logs&section=adminlogs'>{$this->lang->words['alog_adminlogs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=logs&section=modlogs'>{$this->lang->words['mlog_modlogs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=logs&section=emaillogs'>{$this->lang->words['elog_emaillogs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=logs&section=emailerrorlogs'>{$this->lang->words['elog_email_err_logs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=logs&section=spiderlogs'>{$this->lang->words['slog_spider_logs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=logs&section=warnlogs'>{$this->lang->words['wlog_warn_logs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=tools&section=api&do=log_list'>{$this->lang->words['api_error_logs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=system&section=taskmanager&do=task_logs'>{$this->lang->words['sched_error_logs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=system&section=loginlog&do=show'>{$this->lang->words['al_error_logs']}</a></td></tr>
|
||||
<tr><td><a href='{$this->settings['base_url']}&module=logs&section=spamlogs&do=show'>{$this->lang->words['slog_spamlogs']}</a></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the splash screen for the admin logs
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @param array Admins
|
||||
* @return string HTML
|
||||
*/
|
||||
public function adminlogsWrapper( $rows, $admins ) {
|
||||
|
||||
$form_array = array(
|
||||
0 => array( 'member_id' , $this->lang->words['alog_id'] ),
|
||||
1 => array( 'note' , $this->lang->words['alog_performed'] ),
|
||||
2 => array( 'ip_address' , $this->lang->words['alog_ip'] ),
|
||||
3 => array( 'appcomponent' , $this->lang->words['alog_app'] ),
|
||||
4 => array( 'module' , $this->lang->words['alog_mod'] ),
|
||||
5 => array( 'section' , $this->lang->words['alog_sec'] ),
|
||||
6 => array( 'do' , $this->lang->words['alog_do'] ),
|
||||
);
|
||||
$form = array();
|
||||
|
||||
$form['search_for'] = $this->registry->output->formInput( "search_string" );
|
||||
$form['search_in'] = $this->registry->output->formDropdown( "search_type", $form_array );
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['alog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['alog_last5']}</h3>
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<tr>
|
||||
<th width='20%'>{$this->lang->words['alog_member']}</th>
|
||||
<th width='40%'>{$this->lang->words['alog_performed']}</th>
|
||||
<th width='20%'>{$this->lang->words['alog_date']}</th>
|
||||
<th width='20%'>{$this->lang->words['alog_ip']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['members_display_name']}</td>
|
||||
<td><span style='color:{$row['color']}'>{$row['note']}</span></td>
|
||||
<td>{$row['_time']}</td>
|
||||
<td>{$row['ip_address']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='4' align='center'>{$this->lang->words['alog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['alog_saved']}</h3>
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<tr>
|
||||
<th width='30%'>{$this->lang->words['alog_member']}</th>
|
||||
<th width='20%'>{$this->lang->words['alog_performed']}</th>
|
||||
<th width='20%'>{$this->lang->words['alog_viewall']}</th>
|
||||
<th width='30%'>{$this->lang->words['alog_removeall']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($admins) AND is_array($admins) )
|
||||
{
|
||||
foreach( $admins as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['members_display_name']}</td>
|
||||
<td>{$row['act_count']}</td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=view&mid={$row['member_id']}'>{$this->lang->words['alog_view']}</a></td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=remove&mid={$row['member_id']}'>{$this->lang->words['alog_remove']}</a></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='4' align='center'>{$this->lang->words['alog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='view' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['alog_search']}</h3>
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['alog_searchfor']}</label>
|
||||
{$form['search_for']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['alog_searchin']}</label>
|
||||
{$form['search_in']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class="acp-actionbar">
|
||||
<input value="{$this->lang->words['alog_searchbutton']}" class="button primary" accesskey="s" type="submit" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* View an individual admin's logs
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function adminlogsView( $rows, $pages ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['alog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['alog_saved']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='20%'>{$this->lang->words['alog_member']}</th>
|
||||
<th width='40%'>{$this->lang->words['alog_performed']}</th>
|
||||
<th width='20%'>{$this->lang->words['alog_date']}</th>
|
||||
<th width='20%'>{$this->lang->words['alog_ip']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['members_display_name']}</td>
|
||||
<td><span style='color:{$row['color']}'>{$row['note']}</span></td>
|
||||
<td>{$row['_time']}</td>
|
||||
<td>{$row['ip_address']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='4' align='center'>{$this->lang->words['alog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class="leftaction">{$pages}</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,343 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* API users skin file
|
||||
* Last Updated: $Date: 2009-08-18 16:46:02 -0400 (Tue, 18 Aug 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 5027 $
|
||||
*/
|
||||
|
||||
class cp_skin_api extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* View api log details
|
||||
*
|
||||
* @access public
|
||||
* @param array Log record
|
||||
* @return string HTML
|
||||
*/
|
||||
public function api_log_detail( $log ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['a_detail']}</h3>
|
||||
<table class='alternate_rows'>
|
||||
<tr>
|
||||
<td>
|
||||
<fieldset>
|
||||
<legend>{$this->lang->words['a_basics']}</legend>
|
||||
<table width='100%' cellpadding='4' cellspacing='0'>
|
||||
<tr>
|
||||
<td width='30%' class='tablerow1'>{$this->lang->words['a_key']}</td>
|
||||
<td width='70%' class='tablerow1'><strong>{$log['api_log_key']}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='tablerow1'>{$this->lang->words['a_ip']}</td>
|
||||
<td class='tablerow1'>{$log['api_log_ip']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='tablerow1'>{$this->lang->words['a_time']}</td>
|
||||
<td class='tablerow1'>{$log['_api_log_date']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='tablerow1'>{$this->lang->words['a_success']}</td>
|
||||
<td class='tablerow1'><img src='{$this->settings['skin_acp_url']}/images/{$log['_api_log_allowed']}' border='0' alt='-' class='ipd' /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
<br />
|
||||
<fieldset>
|
||||
<legend>{$this->lang->words['a_formdata']}</legend>
|
||||
<div style='border:1px solid black;background-color:#FFF;padding:4px;white-space:pre;height:400px;overflow:auto'>
|
||||
{$log['_api_log_query']}
|
||||
</div>
|
||||
</fieldset>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* View API login logs
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function api_login_view( $logs, $links ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['a_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['a_requestlog']}</h3>
|
||||
<table class='alternate_rows'>
|
||||
<tr>
|
||||
<th width='1%'> </th>
|
||||
<th width='30%'>{$this->lang->words['a_key']}</th>
|
||||
<th width='20%'>{$this->lang->words['a_ip']}</th>
|
||||
<th width='44%' align='center'>{$this->lang->words['a_date']}</th>
|
||||
<th width='5%' align='center'>{$this->lang->words['a_status']}</th>
|
||||
<th width='5%' align='center'>{$this->lang->words['a_log']}</th>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
if ( is_array( $logs ) AND count( $logs ) )
|
||||
{
|
||||
foreach( $logs as $r )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td width='1' valign='middle'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/folder_components/xmlrpc/log_row.png' border='0' alt='-' class='ipd' />
|
||||
</td>
|
||||
<td><strong>{$r['api_log_key']}</strong></td>
|
||||
<td><div class='desctext'>{$r['api_log_ip']}</div></td>
|
||||
<td>{$r['_api_log_date']}</td>
|
||||
<td><img src='{$this->settings['skin_acp_url']}/images/{$r['_api_log_allowed']}' border='0' alt='-' class='ipd' /></td>
|
||||
<td width='1' valign='middle'>
|
||||
<a href='#' onclick="return acp.openWindow('{$this->settings['base_url']}{$this->form_code}&do=log_view_detail&api_log_id={$r['api_log_id']}', 800, 600)" title='{$this->lang->words['a_viewdetails']}'><img src='{$this->settings['skin_acp_url']}/images/folder_components/index/view.png' border='0' alt='-' class='ipd' /></a>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
$IPBHTML .= <<<EOF
|
||||
</table>
|
||||
<div class='acp-actionbar'>$links</div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* List the api users
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @return string HTML
|
||||
*/
|
||||
public function api_list( $api_users ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['a_users']}</h2>
|
||||
|
||||
<ul class='context_menu'>
|
||||
<li><a href='{$this->settings['base_url']}&{$this->form_code}&do=api_add' style='text-decoration:none'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/add.png' alt='' /> {$this->lang->words['a_create']}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['a_users']}</h3>
|
||||
|
||||
<table class='alternate_rows'>
|
||||
<tr>
|
||||
<th width='1%'> </th>
|
||||
<th width='40%'>{$this->lang->words['a_user']}</th>
|
||||
<th width='30%'>{$this->lang->words['a_key']}</th>
|
||||
<th width='20%'>{$this->lang->words['a_ip']}</th>
|
||||
<th width='5%'>{$this->lang->words['a_options']}</th>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
if ( count( $api_users ) )
|
||||
{
|
||||
foreach( $api_users as $user )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td><img src='{$this->settings['skin_acp_url']}/images/folder_components/xmlrpc/api_user.png' class='ipb' /></td>
|
||||
<td><strong>{$user['api_user_name']}</strong>
|
||||
<td><strong style='font-size:14px'>{$user['api_user_key']}</strong>
|
||||
<td><strong>{$user['api_user_ip']}</strong>
|
||||
<td width='5%'>
|
||||
<img class='ipbmenu' id="menu_{$user['api_user_id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['a_options']}' />
|
||||
<ul class='acp-menu' id='menu_{$user['api_user_id']}_menucontent'>
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}&{$this->form_code}&do=api_edit&api_user_id={$user['api_user_id']}'>{$this->lang->words['a_edit']}</a></li>
|
||||
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&{$this->form_code}&do=api_remove&api_user_id={$user['api_user_id']}");'>{$this->lang->words['a_remove']}</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td colspan='5' align='center'>{$this->lang->words['a_nousers']}<br /><a href='{$this->settings['base_url']}&{$this->form_code}&do=api_add'>{$this->lang->words['a_createone']}</a></td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form to add/edit an API user
|
||||
*
|
||||
* @access public
|
||||
* @param array Form elements
|
||||
* @param string Form title
|
||||
* @param string Action code
|
||||
* @param string Button text
|
||||
* @param array API user record
|
||||
* @param string Type (add|edit)
|
||||
* @param array Permission types
|
||||
* @return string HTML
|
||||
*/
|
||||
public function api_form( $form, $title, $formcode, $button, $api_user, $type, $permissions ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
|
||||
<form id='mainform' action='{$this->settings['base_url']}&{$this->form_code}&do=$formcode&api_user_id={$api_user['api_user_id']}' method='post'>
|
||||
<div class='acp-box'>
|
||||
<h3>$title</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li><label class='head'>{$this->lang->words['a_userbasics']}</label></li>
|
||||
EOF;
|
||||
if ( $type == 'add' )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<label>{$this->lang->words['a_userkey']}<span class='desctext'>{$this->lang->words['a_key_info']}</span></label>
|
||||
<input type='hidden' name='api_user_key' value='{$form['_api_user_key']}' />
|
||||
{$form['_api_user_key']}
|
||||
</li>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<label>{$this->lang->words['a_usertitle']}<span class='desctext'>{$this->lang->words['a_usertitle_info']}</span></label>
|
||||
{$form['api_user_name']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['a_restrictip']}<span class='desctext'>{$this->lang->words['a_restrictip_info']}</span></label>
|
||||
{$form['api_user_ip']}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br />
|
||||
<div class='acp-box'>
|
||||
<ul id='tabstrip_apiperms' class='tab_bar no_title'>
|
||||
EOF;
|
||||
|
||||
if ( is_array( $permissions ) AND count( $permissions ) )
|
||||
{
|
||||
foreach( $permissions as $key => $data )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li id='tabtab-{$key}'>{$data['title']}</li>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</ul>
|
||||
|
||||
<script type="text/javascript" defer="defer">
|
||||
//<![CDATA[
|
||||
document.observe("dom:loaded",function()
|
||||
{
|
||||
ipbAcpTabStrips.register('tabstrip_apiperms');
|
||||
ipbAcpTabStrips.doToggle($('tabtab-ipb'));
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
EOF;
|
||||
|
||||
if ( is_array( $permissions ) AND count( $permissions ) )
|
||||
{
|
||||
foreach( $permissions as $key => $data )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<div id='tabpane-{$key}'>
|
||||
<ul class='acp-form alternate_rows'>
|
||||
EOF;
|
||||
if ( is_array( $permissions[ $key ]['form_perms'] ) AND ( $permissions[ $key ]['form_perms'] ) )
|
||||
{
|
||||
foreach( $permissions[ $key ]['form_perms'] as $perm => $_data )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<label>{$this->lang->words['a_allowaccess']} {$_data['title']}</label>
|
||||
{$_data['form']}
|
||||
</li>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
$IPBHTML .= <<<EOF
|
||||
</ul>
|
||||
</div>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
|
||||
<div class='acp-actionbar'>
|
||||
<div class='centeraction'>
|
||||
<input type='submit' value=' $button ' class='button primary' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,197 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Badwords skin file
|
||||
* Last Updated: $Date: 2009-05-26 18:02:08 -0400 (Tue, 26 May 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4690 $
|
||||
*/
|
||||
|
||||
class cp_skin_badwords extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit badwords
|
||||
*
|
||||
* @access public
|
||||
* @param int ID
|
||||
* @param array Form elements
|
||||
* @return string HTML
|
||||
*/
|
||||
public function badwordEditForm( $id, $form ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['bwl_title']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='badword_doedit' />
|
||||
<input type='hidden' name='id' value='{$id}' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['bwl_edit_filter']}</h3>
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['bwl_before']}</label>
|
||||
{$form['before']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bwl_after']}</label>
|
||||
{$form['after']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bwl_method']}</label>
|
||||
{$form['match']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class="acp-actionbar">
|
||||
<input type='submit' value='{$this->lang->words['bwl_edit_filter']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Badwords wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param array Badword rows
|
||||
* @return string HTML
|
||||
*/
|
||||
public function badwordsWrapper( $rows ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['bwl_title']}</h2>
|
||||
<ul class='context_menu'>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}&{$this->form_code}&do=badword_export'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/exclamation_go.png' alt='' />
|
||||
{$this->lang->words['bwl_export']}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='badword_add' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['bwl_current']}</h3>
|
||||
<table class="alternate_rows">
|
||||
<tr>
|
||||
<th width='40%'>{$this->lang->words['bwl_before']}</th>
|
||||
<th width='40%'>{$this->lang->words['bwl_after']}</th>
|
||||
<th width='15%'>{$this->lang->words['bwl_method']}</th>
|
||||
<th width='5%'>{$this->lang->words['bwl_options']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['type']}</td>
|
||||
<td>{$row['replace']}</td>
|
||||
<td>{$row['method']}</td>
|
||||
<td style='text-align: center'>
|
||||
<img class='ipbmenu' id="menu_{$row['wid']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['bwl_options']}' />
|
||||
<ul class='acp-menu' id='menu_{$row['wid']}_menucontent'>
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}&{$this->form_code}&do=badword_edit&id={$row['wid']}'>{$this->lang->words['bwl_filter_edit']}</a></li>
|
||||
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&{$this->form_code}&do=badword_remove&id={$row['wid']}");'>{$this->lang->words['bwl_filter_remove']}</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['bwl_filter_add']}</h3>
|
||||
<table class="alternate_rows">
|
||||
<tr>
|
||||
<th width="40%">{$this->lang->words['bwl_before']}</th>
|
||||
<th width="40%">{$this->lang->words['bwl_after']}</th>
|
||||
<th width="20%">{$this->lang->words['bwl_method']}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%"><input name="before" value="" size="30" class="textinput" type="text"></td>
|
||||
<td width="40%"><input name="after" value="" size="30" class="textinput" type="text"></td>
|
||||
<td width="20%">
|
||||
<select name="match" class="dropdown">
|
||||
<option value="1">{$this->lang->words['bwl_exact']}</option>
|
||||
<option value="0">{$this->lang->words['bwl_loose']}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="acp-actionbar">
|
||||
<input value="{$this->lang->words['bwl_filter_add']}" class="button primary" accesskey="s" type="submit">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<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='badword_import' />
|
||||
<input type='hidden' name='MAX_FILE_SIZE' value='10000000000' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['bwl_import']}</h3>
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['bwl_import_upload']}<span class="desctext">{$this->lang->words['bwl_import_info']}</span></label>
|
||||
<input class='textinput' type='file' size='30' name='FILE_UPLOAD'>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="acp-actionbar">
|
||||
<input type='submit' value='{$this->lang->words['bwl_import']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,537 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* BBcode skin file
|
||||
* Last Updated: $Date: 2009-07-09 22:20:10 -0400 (Thu, 09 Jul 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4864 $
|
||||
*/
|
||||
|
||||
class cp_skin_bbcode extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* BBCode wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param string Content (compiled HTML rows)
|
||||
* @return string HTML
|
||||
*/
|
||||
public function bbcodeWrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
|
||||
<style type="text/css">
|
||||
@import url('{$this->settings['public_dir']}style_css/prettify.css');
|
||||
</style>
|
||||
<script type="text/javascript" src="{$this->settings['public_dir']}js/3rd_party/prettify/prettify.js"></script>
|
||||
<!-- By default we load generic code, php, css, sql and xml/html; load others here if desired -->
|
||||
<script type="text/javascript">
|
||||
Event.observe( window, 'load', function(e){ prettyPrint() });
|
||||
</script>
|
||||
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['bbcode_header']}</h2>
|
||||
<ul class='context_menu'>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}&{$this->form_code}&do=bbcode_add'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/style_add.png' alt='' />
|
||||
{$this->lang->words['addnew_bbcode']}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}&{$this->form_code}&do=bbcode_export'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/style_go.png' alt='' />
|
||||
{$this->lang->words['export_bbcode']}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}&{$this->form_code}&do=bbcode_import_all'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/style_add.png' alt='' />
|
||||
{$this->lang->words['import_bbcode_all']}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}&{$this->form_code}&do=bbcode_export_all'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/style_go.png' alt='' />
|
||||
{$this->lang->words['export_bbcode_all']}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['your_bbcodes']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='45%'>{$this->lang->words['bbcode_title']}</th>
|
||||
<th width='50%'>{$this->lang->words['bbcode_tag']}</th>
|
||||
<th width='5%'>{$this->lang->words['bbcode_options']}</th>
|
||||
</tr>
|
||||
{$content}
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do=bbcode_test' method='post'>
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['test_parse']}</h3>
|
||||
<p align="center"><textarea name='bbtest' rows='10' cols='70'>
|
||||
EOF;
|
||||
|
||||
$IPBHTML .= isset($_POST['bbtest']) ? $_POST['bbtest'] : $this->lang->words['enter_test_parse'];
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</textarea>
|
||||
</p>
|
||||
<div class="acp-actionbar">
|
||||
<input type='submit' value='{$this->lang->words['test_parse']}' class="button primary"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do=bbcode_import' method='post' enctype='multipart/form-data'>
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['import_new_bbcode']}</h3>
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['upload_bbcode_xml']}<span class='desctext'>{$this->lang->words['upload_bbcode_dupe']}</span></label>
|
||||
<input type='file' name='FILE_UPLOAD' />
|
||||
</li>
|
||||
<ul>
|
||||
<div class="acp-actionbar">
|
||||
<input type='submit' value='{$this->lang->words['bbcode_import']}' class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* BBCode record
|
||||
*
|
||||
* @access public
|
||||
* @param array BBCode info
|
||||
* @return string HTML
|
||||
*/
|
||||
public function bbcodeRow( $row ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td>{$row['bbcode_title']}</td>
|
||||
<td><pre>{$row['bbcode_fulltag']}</pre></td>
|
||||
<td style='text-align: center'>
|
||||
<img class='ipbmenu' id="menu_{$row['bbcode_id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['bbcode_options']}' />
|
||||
<ul class='acp-menu' id='menu_{$row['bbcode_id']}_menucontent'>
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}&{$this->form_code}&do=bbcode_edit&id={$row['bbcode_id']}'>{$this->lang->words['edit_bbcode']}</a></li>
|
||||
<li class='icon export'><a href='{$this->settings['base_url']}&{$this->form_code}&do=bbcode_export&id={$row['bbcode_id']}'>{$this->lang->words['export_bbcode']}</a></li>
|
||||
EOF;
|
||||
|
||||
if( IN_DEV OR !$row['bbcode_protected'] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&{$this->form_code}&do=bbcode_delete&id={$row['bbcode_id']}");'>{$this->lang->words['delete_bbcode']}</a></li>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* BBCode add/edit form
|
||||
*
|
||||
* @access public
|
||||
* @param string Type (add|edit)
|
||||
* @param array BBcode info
|
||||
* @param array Sections to edit in
|
||||
* @return string HTML
|
||||
*/
|
||||
public function bbcodeForm( $type, $bbcode, $sections ) {
|
||||
|
||||
//-----------------------------------------
|
||||
// Set some of the form variables
|
||||
//-----------------------------------------
|
||||
|
||||
$form_code = $type == 'edit' ? 'bbcode_doedit' : 'bbcode_doadd';
|
||||
$button = $type == 'edit' ? $this->lang->words['edit_bbcode'] : $this->lang->words['addnew_bbcode'];
|
||||
$secure_key = ipsRegistry::getClass('adminFunctions')->getSecurityKey();
|
||||
|
||||
$all_groups = array( 0 => array ( 'all', $this->lang->words['all_groups'] ) );
|
||||
|
||||
foreach( $this->cache->getCache('group_cache') as $group_data )
|
||||
{
|
||||
$all_groups[] = array( $group_data['g_id'], $group_data['g_title'] );
|
||||
}
|
||||
|
||||
$ss_dropdown = array( 0 => array ( 'all', $this->lang->words['available_sections'] ) );
|
||||
|
||||
if( is_array($sections) AND count($sections) )
|
||||
{
|
||||
foreach( $sections as $sect_key => $sect_value )
|
||||
{
|
||||
$ss_dropdown[] = array( $sect_key, $sect_value );
|
||||
}
|
||||
}
|
||||
|
||||
$form = array();
|
||||
$form['bbcode_title'] = $this->registry->output->formInput( 'bbcode_title', $this->request['bbcode_title'] ? $this->request['bbcode_title'] : $bbcode['bbcode_title'] );
|
||||
$form['bbcode_desc'] = $this->registry->output->formTextarea( 'bbcode_desc', $this->request['bbcode_desc'] ? $this->request['bbcode_desc'] : $bbcode['bbcode_desc'] );
|
||||
$form['bbcode_example'] = $this->registry->output->formTextarea( 'bbcode_example', $this->request['bbcode_example'] ? $this->request['bbcode_example'] : $bbcode['bbcode_example'] );
|
||||
$form['bbcode_tag'] = '[ ' . $this->registry->output->formSimpleInput( 'bbcode_tag', $this->request['bbcode_tag'] ? $this->request['bbcode_tag'] : $bbcode['bbcode_tag'], 10) . ' ]';
|
||||
$form['bbcode_useoption'] = $this->registry->output->formYesNo( 'bbcode_useoption', $this->request['bbcode_useoption'] ? $this->request['bbcode_useoption'] : $bbcode['bbcode_useoption'] );
|
||||
$form['bbcode_switch_option'] = $this->registry->output->formYesNo( 'bbcode_switch_option', $this->request['bbcode_switch_option'] ? $this->request['bbcode_switch_option'] : $bbcode['bbcode_switch_option'] );
|
||||
$form['bbcode_replace'] = $this->registry->output->formTextarea( 'bbcode_replace', htmlspecialchars($_POST['bbcode_replace'] ? $_POST['bbcode_replace'] : $bbcode['bbcode_replace']) );
|
||||
$form['bbcode_menu_option_text'] = $this->registry->output->formSimpleInput( 'bbcode_menu_option_text', $this->request['bbcode_menu_option_text'] ? $this->request['bbcode_menu_option_text'] : $bbcode['bbcode_menu_option_text'], 50);
|
||||
$form['bbcode_menu_content_text'] = $this->registry->output->formSimpleInput( 'bbcode_menu_content_text', $this->request['bbcode_menu_content_text'] ? $this->request['bbcode_menu_content_text'] : $bbcode['bbcode_menu_content_text'], 50);
|
||||
$form['bbcode_single_tag'] = $this->registry->output->formYesNo( 'bbcode_single_tag', $this->request['bbcode_single_tag'] ? $this->request['bbcode_single_tag'] : $bbcode['bbcode_single_tag'] );
|
||||
$form['bbcode_groups'] = $this->registry->output->formMultiDropdown( "bbcode_groups[]", $all_groups, $this->request['bbcode_groups'] ? $this->request['bbcode_groups'] : explode( ",", $bbcode['bbcode_groups'] ) );
|
||||
$form['bbcode_sections'] = $this->registry->output->formMultiDropdown( "bbcode_sections[]", $ss_dropdown, $this->request['bbcode_sections'] ? $this->request['bbcode_sections'] : explode( ",", $bbcode['bbcode_sections'] ) );
|
||||
$form['bbcode_php_plugin'] = $this->registry->output->formInput( 'bbcode_php_plugin', $this->request['bbcode_php_plugin'] ? $this->request['bbcode_php_plugin'] : $bbcode['bbcode_php_plugin'] );
|
||||
$form['bbcode_no_parsing'] = $this->registry->output->formYesNo( 'bbcode_no_parsing', $this->request['bbcode_no_parsing'] ? $this->request['bbcode_no_parsing'] : $bbcode['bbcode_no_parsing'] );
|
||||
$form['bbcode_protected'] = $this->registry->output->formYesNo( 'bbcode_protected', $this->request['bbcode_protected'] ? $this->request['bbcode_protected'] : $bbcode['bbcode_protected'] );
|
||||
$form['bbcode_strip_search'] = $this->registry->output->formYesNo( 'bbcode_strip_search', $this->request['bbcode_strip_search'] ? $this->request['bbcode_strip_search'] : $bbcode['bbcode_strip_search'] );
|
||||
|
||||
$apps = array();
|
||||
|
||||
/* Application drop down options */
|
||||
foreach( ipsRegistry::$applications as $app_dir => $app_data )
|
||||
{
|
||||
$apps[] = array( $app_dir, $app_data['app_title'] );
|
||||
}
|
||||
|
||||
$form['bbcode_app'] = $this->registry->output->formDropdown( 'bbcode_app', $apps, $this->request['bbcode_app'] ? $this->request['bbcode_app'] : $bbcode['bbcode_app'] );
|
||||
|
||||
$form['bbcode_optional_option'] = $this->registry->output->formYesNo( 'bbcode_optional_option', $this->request['bbcode_optional_option'] ? $this->request['bbcode_optional_option'] : $bbcode['bbcode_optional_option'] );
|
||||
$form['bbcode_aliases'] = $this->registry->output->formTextarea( 'bbcode_aliases', $this->request['bbcode_aliases'] ? $this->request['bbcode_aliases'] : $bbcode['bbcode_aliases'] );
|
||||
$form['bbcode_image'] = $this->registry->output->formInput( 'bbcode_image', $this->request['bbcode_image'] ? $this->request['bbcode_image'] : $bbcode['bbcode_image'] );
|
||||
|
||||
/* Content cache is enabled? */
|
||||
if ( $type == 'edit' AND IPSContentCache::isEnabled() )
|
||||
{
|
||||
$_cacheCount = IPSContentCache::count();
|
||||
$form['drop_cache'] = $this->registry->output->formYesNo( 'drop_cache', $this->request['drop_cache'] );
|
||||
|
||||
$this->lang->words['bbcache_action'] = sprintf( $this->lang->words['bbcache_action'], $_cacheCount );
|
||||
}
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['custom_bbcode_head']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do={$form_code}&secure_key={$secure_key}' method='post'>
|
||||
<input type='hidden' name='id' value='{$bbcode['bbcode_id']}' />
|
||||
EOF;
|
||||
|
||||
if ( $form['drop_cache'] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='warning'>
|
||||
<h4>{$this->lang->words['bbcache_title']}</h4>
|
||||
{$this->lang->words['bbcache_desc']}
|
||||
<p><strong>{$this->lang->words['bbcache_action']}</strong> {$form['drop_cache']}</p>
|
||||
</div>
|
||||
<br />
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class="acp-box">
|
||||
<h3>{$button}</h3>
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_title']}</label>
|
||||
{$form['bbcode_title']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_description']}<span class='desctext'>{$this->lang->words['bbcode_usedinguide']}</span></label>
|
||||
{$form['bbcode_desc']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_example']}<span class='desctext'>{$this->lang->words['bbcode_usedinguide']}<br />{$this->lang->words['bbcode_example_info']}</span></label>
|
||||
{$form['bbcode_example']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_tag']}<span class='desctext'>{$this->lang->words['bbcode_tag_info']}</span></label>
|
||||
{$form['bbcode_tag']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_aliases']}<span class='desctext'>{$this->lang->words['bbcode_aliases_info']}</span></label>
|
||||
{$form['bbcode_aliases']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_singletag']}<span class='desctext'>{$this->lang->words['bbcode_singletag_info']}</span></label>
|
||||
{$form['bbcode_single_tag']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_useoption']}<span class='desctext'>{$this->lang->words['bbcode_useoption_info']}</span></label>
|
||||
{$form['bbcode_useoption']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_optional']}<span class='desctext'>{$this->lang->words['bbcode_optional_info']}</span></label>
|
||||
{$form['bbcode_optional_option']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_switch']}<span class='desctext'>{$this->lang->words['bbcode_switch_info']}</span></label>
|
||||
{$form['bbcode_switch_option']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_noparse']}<span class='desctext'>{$this->lang->words['bbcode_noparse_info']}</span></label>
|
||||
{$form['bbcode_no_parsing']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_stripsearch']}<span class='desctext'>{$this->lang->words['bbcode_stripsearch_info']}</span></label>
|
||||
{$form['bbcode_strip_search']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_replace']}<span class='desctext'>{$this->lang->words['bbcode_replace_info']}</span></label>
|
||||
{$form['bbcode_replace']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_php']}<span class='desctext'>{$this->lang->words['bbcode_php_info']}</span></label>
|
||||
{$form['bbcode_php_plugin']}<br />
|
||||
{$this->lang->words['bbcode_php_info_loc']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_groups']}<span class='desctext'>{$this->lang->words['bbcode_groups_info']}</span></label>
|
||||
{$form['bbcode_groups']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_whereused']}<span class='desctext'>{$this->lang->words['bbcode_whereused_info']}</span></label>
|
||||
{$form['bbcode_sections']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_assoc_app']}</label>
|
||||
{$form['bbcode_app']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_image']}<span class='desctext'>{$this->lang->words['bbcode_image_info']}</span></label>
|
||||
{$form['bbcode_image']}<br />
|
||||
{$this->lang->words['bbcode_image_info_loc']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_optdial']}<span class='desctext'>{$this->lang->words['bbcode_optdial_info']}</span></label>
|
||||
{$form['bbcode_menu_option_text']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_contdial']}<span class='desctext'>{$this->lang->words['bbcode_contdial_infp']}</span></label>
|
||||
{$form['bbcode_menu_content_text']}
|
||||
</li>
|
||||
EOF;
|
||||
|
||||
if( IN_DEV )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<label>{$this->lang->words['bbcode_protected']}<span class='desctext'>{$this->lang->words['bbcode_protected_info']}</span></label>
|
||||
{$form['bbcode_protected']}
|
||||
</li>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</ul>
|
||||
<div class="acp-actionbar">
|
||||
<input type='submit' value=' {$button} ' class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Media tag add/edit form
|
||||
*
|
||||
* @access public
|
||||
* @param string Type (add|edit)
|
||||
* @param array Tag info
|
||||
* @param array Errors
|
||||
* @return string HTML
|
||||
*/
|
||||
public function mediaTagForm( $type, $data, $errors=array() ) {
|
||||
|
||||
//-----------------------------------------
|
||||
// Set some of the form variables
|
||||
//-----------------------------------------
|
||||
|
||||
$form_code = $type == 'edit' ? 'domediatagedit' : 'domediatagadd';
|
||||
$button = $type == 'edit' ? $this->lang->words['media_edit'] : $this->lang->words['media_add'];
|
||||
$title = $type == 'edit' ? $this->lang->words['media_edit_replace'] : $this->lang->words['media_add_replace'];
|
||||
$secure_key = ipsRegistry::getClass('adminFunctions')->getSecurityKey();
|
||||
|
||||
$form = array();
|
||||
$form['mediatag_name'] = $this->registry->output->formInput( 'mediatag_name', $data['mediatag_name'], 'mediatag_name', 50 );
|
||||
$form['mediatag_match'] = $this->registry->output->formInput( 'mediatag_match', $data['mediatag_match'], 'mediatag_match', 50 );
|
||||
$form['mediatag_replace'] = $this->registry->output->formTextarea( 'mediatag_replace', $data['mediatag_replace'] );
|
||||
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
if( is_array($errors) AND count($errors) )
|
||||
{
|
||||
$error_string = implode( '', $errors );
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='warning'><h4>{$this->lang->words['media_error']}</h4><ul>{$error_string}</ul></div><br />
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do={$form_code}&secure_key={$secure_key}' method='post'>
|
||||
<input type='hidden' name='id' value='{$data['mediatag_id']}' />
|
||||
<div class="acp-box">
|
||||
<h3>{$title}</h3>
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['media_title']}<span class='desctext'>{$this->lang->words['media_title_info']}</span></label>
|
||||
{$form['mediatag_name']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['media_match']}<span class='desctext'>{$this->lang->words['media_match_info']}</span></label>
|
||||
{$form['mediatag_match']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['media_html']}<span class='desctext'>{$this->lang->words['media_html_info']}</span></label>
|
||||
{$form['mediatag_replace']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' {$button} ' class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Media tags wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param string Content (compiled HTML rows)
|
||||
* @return string HTML
|
||||
*/
|
||||
public function mediaTagWrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['media_tag_title']}</h2>
|
||||
|
||||
<ul class='context_menu'>
|
||||
<li><a href='{$this->settings['base_url']}&{$this->form_code}&do=form_add'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/add.png' alt='' /> {$this->lang->words['media_add']}</a></li>
|
||||
<li><a href='{$this->settings['base_url']}&{$this->form_code}&do=mediatag_export'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/arrow_switch.png' alt='' /> {$this->lang->words['media_exports']}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['media_current']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='95%'>{$this->lang->words['media_name']}</th>
|
||||
<th width='5%'>{$this->lang->words['bbcode_options']}</th>
|
||||
</tr>
|
||||
{$content}
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do=mediatag_import' method='post' enctype='multipart/form-data'>
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['media_import']}</h3>
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['media_upload']}<span class='desctext'>{$this->lang->words['media_upload_desc']}</span></label>
|
||||
<input type='file' name='FILE_UPLOAD' />
|
||||
</li>
|
||||
</ul>
|
||||
<div class="acp-actionbar">
|
||||
<input type='submit' value='{$this->lang->words['media_import_button']}' class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Media tag record
|
||||
*
|
||||
* @access public
|
||||
* @param array Row
|
||||
* @return string HTML
|
||||
*/
|
||||
public function mediaTagRow( $row ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td>{$row['mediatag_name']}</td>
|
||||
<td align='right'>
|
||||
<img class="ipbmenu" id="menu{$row['mediatag_id']}" src="{$this->settings['skin_acp_url']}/_newimages/menu_open.png" alt="">
|
||||
<ul style="position: absolute; display: none; z-index: 9999;" class="acp-menu" id='menu{$row['mediatag_id']}_menucontent'>
|
||||
<li style="z-index: 10000;" class='icon edit'><a style="z-index: 10000;" href='{$this->settings['base_url']}&{$this->form_code}&do=form_edit&id={$row['mediatag_id']}'>{$this->lang->words['media_edit']}</a></li>
|
||||
<li style="z-index: 10000;" class='icon export'><a style="z-index: 10000;" href='{$this->settings['base_url']}&{$this->form_code}&do=mediatag_export&id={$row['mediatag_id']}'>{$this->lang->words['media_export']}</a></li>
|
||||
<li style="z-index: 10000;" class='icon delete'><a style="z-index: 10000;" href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&{$this->form_code}&do=do_del&id={$row['mediatag_id']}")'>{$this->lang->words['media_delete']}</a></li>
|
||||
</ul>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,895 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Diagnostics skin file
|
||||
* Last Updated: $Date: 2009-10-01 10:02:08 -0400 (Thu, 01 Oct 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 5190 $
|
||||
*/
|
||||
|
||||
class cp_skin_diagnostics extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* DB Index checker
|
||||
*
|
||||
* @access public
|
||||
* @param array Errors
|
||||
* @param array Tables
|
||||
* @return string HTML
|
||||
*/
|
||||
public function indexChecker( $errors=array(), $tables=array() ) {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['d_ititle']}</h2>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
if( count( $errors ) )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box alternate_rows'>
|
||||
<h3>{$app}</h3>
|
||||
<table width='100%'>
|
||||
<th>{$this->lang->words['d_ierrors']}</th>
|
||||
<tr>
|
||||
<td><span class='rss-feed-invalid'>{$this->lang->words['d_ifixall']}<a href='{$this->settings['base_url']}{$this->form_code}&section=diagnostics&do=dbindex&fix=all'>{$this->lang->words['d_ifixall_link']}</a></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><br />
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box alternate_rows'>
|
||||
<h3>{$this->lang->words['d_dnav']}</h3>
|
||||
|
||||
<table width='100%'>
|
||||
<tr>
|
||||
<th>{$this->lang->words['chckr_table']}</th>
|
||||
<th>{$this->lang->words['chckr_status']}</th>
|
||||
<th>{$this->lang->words['chckr_fix']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( is_array( $tables ) && count( $tables ) )
|
||||
{
|
||||
$i = 0;
|
||||
foreach( $tables as $app_title => $_tables )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<th colspan='3'>{$app_title}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
foreach( $_tables as $r )
|
||||
{
|
||||
if( $r['status'] == 'ok' )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td><span style='color:green'>{$r['table']}</span></td>
|
||||
<td>
|
||||
<span style='color:green'>
|
||||
<ul class='bullets'>
|
||||
<li>
|
||||
HTML;
|
||||
|
||||
$IPBHTML .= implode( "</li><li>", $r['index'] );
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td><span style='color:red'>{$r['table']}</span></td>
|
||||
<td>
|
||||
<ul class='bullets'>
|
||||
HTML;
|
||||
|
||||
foreach( $r['index'] as $index )
|
||||
{
|
||||
if( in_array( $index, $r['missing'] ) )
|
||||
{
|
||||
$IPBHTML .= "<li><span style='color:red'>Отсутствует индекс: {$index}</span></li>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= "<li><span style='color:green'>{$index}</li>";
|
||||
}
|
||||
}
|
||||
$IPBHTML .= <<<HTML
|
||||
</ul>
|
||||
</td>
|
||||
<td>
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}&section=diagnostics&do=dbindex&fix={$r['table']}'>{$this->lang->words['d_inauto']}</a>{$this->lang->words['d_iman']}
|
||||
<div>
|
||||
<ul class='bullets'>
|
||||
<li>
|
||||
HTML;
|
||||
|
||||
$IPBHTML .= implode( "</li><li>", $r['fixsql'] );
|
||||
$IPBHTML .= <<<HTML
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* DB checker
|
||||
*
|
||||
* @access public
|
||||
* @param array Errors
|
||||
* @param array Tables
|
||||
* @return string HTML
|
||||
*/
|
||||
public function dbChecker( $errors=array(), $tables=array() ) {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['d_dtitle']}</h2>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
if( count( $errors ) )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box alternate_rows'>
|
||||
<h3>{$app}</h3>
|
||||
<table width='100%'>
|
||||
<th>{$this->lang->words['d_ierrors']}</th>
|
||||
<tr>
|
||||
<td><span class='rss-feed-invalid'>{$this->lang->words['d_ifixall']}<a href='{$this->settings['base_url']}{$this->form_code}&section=diagnostics&do=dbchecker&fix=all'>{$this->lang->words['d_ifixall_link']}</a></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><br />
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box alternate_rows'>
|
||||
<h3>{$this->lang->words['d_dnav']}</h3>
|
||||
|
||||
<table width='100%'>
|
||||
<tr>
|
||||
<th>{$this->lang->words['d_dtbl']}</th>
|
||||
<th>{$this->lang->words['d_dstatus']}</th>
|
||||
<th>{$this->lang->words['d_dfix']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count( $tables ) )
|
||||
{
|
||||
$i = 0;
|
||||
foreach( $tables as $app_title => $_tables )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<th colspan='3'>{$app_title}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
if( !is_array($_tables) OR !count($_tables) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach( $_tables as $r )
|
||||
{
|
||||
$_column = '';
|
||||
|
||||
if( $r['column'] )
|
||||
{
|
||||
$_column = ' (' . $r['column'] . ')';
|
||||
}
|
||||
|
||||
if( $r['status'] == 'ok' )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td><span style='color:green'>{$r['table']}{$_column}</span></td>
|
||||
<td><img src='{$this->settings['skin_acp_url']}/images/aff_tick.png' border='0' alt='YN' class='ipd' /></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td><span style='color:red'>{$r['table']}</span></td>
|
||||
<td><img src='{$this->settings['skin_acp_url']}/images/aff_cross.png' border='0' alt='YN' class='ipd' /></td>
|
||||
<td>
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}&section=diagnostics&do=dbchecker&fix={$r['key']}'>{$this->lang->words['d_iauto']}</a>{$this->lang->words['d_iman']}
|
||||
<div>
|
||||
<ul class='bullets'>
|
||||
<li>
|
||||
HTML;
|
||||
|
||||
$IPBHTML .= implode( "</li><li>", $r['fixsql'] );
|
||||
$IPBHTML .= <<<HTML
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Version history record
|
||||
*
|
||||
* @access public
|
||||
* @param array Version info
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_version_history_row( $r ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class='tablerow1'>{$r['upgrade_version_human']} ({$r['upgrade_version_id']})</td>
|
||||
<td class='tablerow2'>{$r['_date']}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Version history wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_version_history_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<a name='versions'></a>
|
||||
<div class='tableborder'>
|
||||
<div class='tableheaderalt'>{$this->lang->words['last_5_version_history']}</div>
|
||||
<table width='100%' cellpadding='4' cellspacing='0'>
|
||||
{$content}
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostics overview
|
||||
*
|
||||
* @access public
|
||||
* @param array Data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function diagnosticsOverview( $data=array() ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['d_atitle']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['sys_system_overview']}</h3>
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_ipboard_version']}</strong></td>
|
||||
<td>{$data['version']} (ID:{$data['version_full']})</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{$data['driver_type']} {$this->lang->words['sys_version']}</strong></td>
|
||||
<td>{$data['version_sql']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_php_version']}</strong></td>
|
||||
<td>{$data['version_php']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_disabled_funcs']}</strong></td>
|
||||
<td>{$data['disabled']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_loaded_ext']}</strong></td>
|
||||
<td>{$data['extensions']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_safe_mod']}</strong></td>
|
||||
<td>{$data['safe_mode']}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
if ( defined( 'IPS_TOPICMARKERS_DEBUG' ) and IPS_TOPICMARKERS_DEBUG === TRUE )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td><strong>Отслеживание прочитанности тем</strong></td>
|
||||
<td>ON ( <a href='{$this->settings['base_url']}{$this->form_code}&do=tm_index'>Просмотр журнала</a> )</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_sys_software']}</strong></td>
|
||||
<td>{$data['server']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_current_load']}</strong></td>
|
||||
<td>{$data['load']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_total_mem']}</strong></td>
|
||||
<td>{$data['total_memory']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{$this->lang->words['sys_avail_mem']}</strong></td>
|
||||
<td>{$data['avail_memory']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
<div class="tableborder">
|
||||
<div class="tableheaderalt">{$this->lang->words['system_processes']}</div>
|
||||
<table cellpadding='0' cellspacing='0' width='100%'>
|
||||
<tr>
|
||||
<td class='tablerow1' width='100%'>{$data['tasks']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Version checker
|
||||
*
|
||||
* @access public
|
||||
* @param array Versions
|
||||
* @param string History info
|
||||
* @param array Results
|
||||
* @return string HTML
|
||||
*/
|
||||
public function versionCheckerResults( $versions=array(), $history='', $results=array() ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['d_vtitle']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['d_vinfo']}</h3>
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<tr>
|
||||
<td class='tablerow1' width='30%'>{$this->lang->words['sys_ipboard_version']}</td>
|
||||
<td class='tablerow2' width='70%'>{$versions['version']} (ID:{$versions['version_full']})</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
if( !$history )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class='tablerow1' width='30%'>История обновлений</td>
|
||||
<td class='tablerow2' width='70%'><i>Обновлений не было или история отсутствует</i></td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= $history;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['d_vnav']}</h3>
|
||||
<table class='alternate_rows' width='100%'>
|
||||
EOF;
|
||||
|
||||
if( count($results) AND is_array($results) )
|
||||
{
|
||||
foreach( $results as $file => $version )
|
||||
{
|
||||
if( trim($version) == $versions['version'] )
|
||||
{
|
||||
$version = "<span style='color:green;'>{$version}</span>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$version = "<span style='font-weight:bold; color:red;'>{$version}</span>";
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td width="90%">{$file}</td>
|
||||
<td>{$version}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Permission checker results
|
||||
*
|
||||
* @access public
|
||||
* @param array Results from permission checking
|
||||
* @return string HTML
|
||||
*/
|
||||
public function permissionsResults( $results=array() ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['d_ptitle']}</h2>
|
||||
</div>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['perm_check_results']}</h3>
|
||||
<table class='alternate_rows'>
|
||||
EOF;
|
||||
|
||||
if( count($results) AND is_array($results) )
|
||||
{
|
||||
foreach( $results as $result )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td>{$result}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whitespace checker
|
||||
*
|
||||
* @access public
|
||||
* @param array Results from checking for whitespace
|
||||
* @return string HTML
|
||||
*/
|
||||
public function whitespaceResults( $results=array() ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['d_wtitle']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['d_wnav']}</h3>
|
||||
<table class='alternate_rows'>
|
||||
EOF;
|
||||
|
||||
if( count($results) AND is_array($results) )
|
||||
{
|
||||
foreach( $results as $result )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td>{$result} {$this->lang->words['d_wfound']}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td>{$this->lang->words['d_wclear']}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* view log entry in pop-up window
|
||||
*/
|
||||
function topicMarkers_viewLog( $data ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='acp-box'>
|
||||
<h3>{$data['marker_message']} - ID пользователя: {$data['marker_member_id']}</h3>
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width='15%'>Ключ</th>
|
||||
<th width='85%'>Значение</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Время</strong></td>
|
||||
<td>{$data['_marker_timestamp']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>URL</strong></td>
|
||||
<td>{$data['marker_url']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Сессия</strong></td>
|
||||
<td>{$data['marker_session_key']}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
foreach( array( 1,2,3,4,5 ) as $n )
|
||||
{
|
||||
if ( $data['marker_data_' . $n ] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td valign='top'><strong>marker_data_{$n}</strong></td>
|
||||
<td>{$this->topicMarkers_arrayLoop($data['marker_data_' . $n ])}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
foreach( array( 'storage', 'memory', 'freezer' ) as $n )
|
||||
{
|
||||
if ( $data['marker_data_' . $n ] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td valign='top' onclick="$('tm__{$n}').toggle();"><strong><a href='javascript:void(0)' title='Скрыть/Показать'>marker_data_{$n}</a></strong></td>
|
||||
<td id='tm__{$n}'>{$this->topicMarkers_arrayLoop($data['marker_data_' . $n ])}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .=<<<EOF
|
||||
<tbody>
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Topic marker array loop
|
||||
*
|
||||
* @access public
|
||||
* @param array Results
|
||||
* @return string HTML
|
||||
*/
|
||||
/**
|
||||
* view log entry in pop-up window
|
||||
*/
|
||||
function topicMarkers_arrayLoop( $data ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
if ( ! is_array( $data ) AND substr( $data, 0, 2 ) == 'a:' )
|
||||
{
|
||||
$data = unserialize( $data );
|
||||
}
|
||||
|
||||
$this->_indexLoop++;
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width='20%'>Ключ</th>
|
||||
<th width='80%'>Значение</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
EOF;
|
||||
if ( is_array( $data ) AND count( $data ) )
|
||||
{
|
||||
foreach( $data as $k => $v )
|
||||
{
|
||||
if ( ! is_array( $v ) AND substr( $v, 0, 2 ) == 'a:' )
|
||||
{
|
||||
$v = unserialize( $v );
|
||||
}
|
||||
|
||||
if ( is_array( $v ) and count( $v ) )
|
||||
{
|
||||
$_key = md5( $k . serialize( $v ) . '__' . $this->_indexLoop );
|
||||
|
||||
$IPBHTML .= "
|
||||
<tr>
|
||||
<td valign='top' onclick=\"$('tmi__{$_key}').toggle();\"><strong><a href='javascript:void(0)' title='Скрыть/Показать'>{$k}</a></strong></td>
|
||||
<td id='tmi__{$_key}'>" . $this->topicMarkers_arrayLoop( $v ) . "</td>
|
||||
</tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( is_int( $v ) AND strlen( $v ) == 10 )
|
||||
{
|
||||
$_t = $this->registry->class_localization->getDate( $v, 'long' );
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td valign='top'><strong>{$k}</strong></td>
|
||||
<td><span title='$_t'>{$v}</span></td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
}
|
||||
$IPBHTML .=<<<EOF
|
||||
<tbody>
|
||||
</table>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
/**
|
||||
* Topic marker main index
|
||||
*
|
||||
* @access public
|
||||
* @param array Results
|
||||
* @return string HTML
|
||||
*/
|
||||
public function topicMarkers_membersIndex( $member, $markers, $pages ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$pages}
|
||||
<br style='clear: both' />
|
||||
<div class='section_title'>
|
||||
<h2><img src='{$member['pp_thumb_photo']}' style='width: 30px; height: 30px; border: 1px solid #d8d8d8' /> Прочитанные темы: {$member['members_display_name']}'s logs</h2>
|
||||
</div>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Прочитанные темы</h3>
|
||||
<table class='alternate_rows'>
|
||||
<tr>
|
||||
<th style='width: 5%'></th>
|
||||
<th style='width: 20%'>Сообщение</th>
|
||||
<th style='width: 30%'>Вермя</th>
|
||||
<th style='width: 45%'>URL</th>
|
||||
<th style='width: 20%'>Действия</th>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
if( count($markers) AND is_array($markers) )
|
||||
{
|
||||
$lastSessionKey = '';
|
||||
|
||||
foreach( $markers as $marker )
|
||||
{
|
||||
$style = ( $lastSessionKey AND $lastSessionKey != $marker['marker_session_key'] ) ? 'border-top:1px dotted #999' : '';
|
||||
$time = $this->registry->class_localization->getDate( $marker['marker_timestamp'], 'long' );
|
||||
$url = str_replace( str_replace( 'http://', '', $this->settings['_original_base_url'] ), '', $marker['marker_url'] );
|
||||
$_key = base64_encode( $marker['marker_microtime'] );
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr style='$style'>
|
||||
<td><img src='{$this->settings['skin_acp_url']}/_newimages/icons/disk.png' alt='' /></td>
|
||||
<td><strong>{$marker['marker_message']}</strong></td>
|
||||
<td>{$time}</td>
|
||||
<td><span style='font-size:0.9em;color:gray'>{$url}</span></td>
|
||||
<td>
|
||||
<img class='ipbmenu' id="menu-{$_key}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['a_options']}' />
|
||||
<ul class='acp-menu' id='menu-{$_key}_menucontent'>
|
||||
<li class='icon view'><a href='{$this->settings['base_url']}{$this->form_code}&do=tm_memberindex&member_id={$marker['marker_member_id']}&marker_session_key={$marker['marker_session_key']}'>Просмотр сессий</a></li>
|
||||
<li class='icon view'><a href='#' onclick="return acp.openWindow('{$this->settings['base_url']}{$this->form_code}&do=tm_viewLog&member_id={$marker['marker_member_id']}&_id={$_key}', 800, 800, 'log-{$_key}');">Просмотр всего журнала</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
$lastSessionKey = $marker['marker_session_key'];
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</table>
|
||||
</div>
|
||||
<br style='clear: both' />
|
||||
{$pages}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Topic marker main index
|
||||
*
|
||||
* @access public
|
||||
* @param array Results
|
||||
* @return string HTML
|
||||
*/
|
||||
public function topicMarkers_index( $results=array() ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>Отметка прочтенности тем</h2>
|
||||
</div>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Сессии</h3>
|
||||
<table class='alternate_rows'>
|
||||
EOF;
|
||||
|
||||
if( count($results) AND is_array($results) )
|
||||
{
|
||||
foreach( $results as $result )
|
||||
{
|
||||
$time = $this->registry->class_localization->getDate( $result['max_ts'], 'short' );
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td width='5%'>
|
||||
<a href='{$this->settings['base_url']}&module=members&section=members&do=viewmember&member_id={$result['_memberData']['member_id']}'><img src='{$result['_memberData']['pp_thumb_photo']}' style='width: 30px; height: 30px; border: 1px solid #d8d8d8' /></a>
|
||||
</td>
|
||||
<td width='40%' class='member_name'>
|
||||
<a href='{$this->settings['base_url']}&module=members&section=members&do=viewmember&member_id={$result['_memberData']['member_id']}'>{$result['_memberData']['members_display_name']}</a>
|
||||
<div style='font-weight:normal'>{$result['_memberData']['_group_formatted']}</div>
|
||||
</td>
|
||||
<td width='30%'>Последнее: {$time}</td>
|
||||
<td width='25%' align='right'><a href='{$this->settings['base_url']}{$this->form_code}&do=tm_memberindex&member_id={$result['_memberData']['member_id']}'>Записи журнала ({$result['count']})</a></td>
|
||||
</tr>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* phpinfo() output
|
||||
*
|
||||
* @access public
|
||||
* @param string Content from running phpinfo()
|
||||
* @return string HTML
|
||||
*/
|
||||
public function phpInfo( $content ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<style type='text/css'>
|
||||
.center {text-align: center;}
|
||||
.center table { margin-left: auto; margin-right: auto; text-align: left; }
|
||||
.center th { text-align: center; }
|
||||
h1 {font-size: 150%;}
|
||||
h2 {font-size: 125%;}
|
||||
.p {text-align: left;}
|
||||
.e {background-color: #ccccff; font-weight: bold;}
|
||||
.h {background-color: #9999cc; font-weight: bold;}
|
||||
.v {background-color: #cccccc; white-space: normal;}
|
||||
</style>
|
||||
|
||||
{$content}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Email error logs
|
||||
* Last Updated: $Date: 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4333 $
|
||||
*/
|
||||
|
||||
class cp_skin_emailerrorlogs extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the splash screen for the email error logs
|
||||
*
|
||||
* @access public
|
||||
* @param array Records
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function emailerrorlogsWrapper( $rows, $links ) {
|
||||
|
||||
$form_array = array(
|
||||
0 => array( 'subject' , $this->lang->words['erlog_subject']),
|
||||
2 => array( 'email_from', $this->lang->words['erlog_fromemail'] ),
|
||||
3 => array( 'email_to' , $this->lang->words['erlog_toemail'] ),
|
||||
4 => array( 'error' , $this->lang->words['erlog_error'] ),
|
||||
);
|
||||
$type_array = array(
|
||||
0 => array( 'exact' , $this->lang->words['erlog_exact'] ),
|
||||
1 => array( 'loose' , $this->lang->words['erlog_loose'] ),
|
||||
);
|
||||
$form = array();
|
||||
|
||||
$form['type'] = $this->registry->output->formDropdown( "type" , $form_array, $this->request['type'] );
|
||||
$form['match'] = $this->registry->output->formDropdown( "match", $type_array, $this->request['match'] );
|
||||
$form['string'] = $this->registry->output->formInput( "string", $this->request['string'] );
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<script type='text/javascript' src='{$this->settings['js_main_url']}acp.forms.js'></script>
|
||||
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['erlog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='remove' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['erlog_thelogs']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='25%'>{$this->lang->words['erlog_to']}</th>
|
||||
<th width='25%'>{$this->lang->words['erlog_subject']}</th>
|
||||
<th width='27%'>{$this->lang->words['erlog_error']}</th>
|
||||
<th width='20%'>{$this->lang->words['erlog_date']}</th>
|
||||
<th width='3%'><input type='checkbox' title="{$this->lang->words['my_checkall']}" id='checkAll' /></th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['mlog_to']}</td>
|
||||
<td><a href='#' onclick='return acp.openWindow("{$this->settings['base_url']}&{$this->form_code_js}&do=viewemail&id={$row['mlog_id']}",400,350,"{$row['mlog_id']}")' title='{$this->lang->words['erlog_reademail']}'>{$row['mlog_subject']}</a></td>
|
||||
<td>{$row['mlog_msg']}<br />{$row['mlog_code']} {$row['mlog_smtp_msg']}</td>
|
||||
<td>{$row['_date']}</td>
|
||||
<td><input type='checkbox' name='id_{$row['mlog_id']}' value='1' class='checkAll' /></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='5' align='center'>{$this->lang->words['erlog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class="acp-actionbar">
|
||||
<div class="leftaction">{$links}</div>
|
||||
<div class="rightaction">
|
||||
<input type="checkbox" id="checkbox" name="type" value="all" /> {$this->lang->words['erlog_removeall']} <input type="submit" value="{$this->lang->words['erlog_removechecked']}" class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='list' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['erlog_search']}</h3>
|
||||
<p align="center">{$this->lang->words['erlog_searchwhere']} {$form['type']} {$form['match']} {$form['string']}</p>
|
||||
<div class="acp-actionbar">
|
||||
<input value="{$this->lang->words['erlog_searchbutton']}" class="button primary" accesskey="s" type="submit" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Record for an email error log entry
|
||||
*
|
||||
* @access public
|
||||
* @param array Email error log record
|
||||
* @return string HTML
|
||||
*/
|
||||
public function emailerrorlogsEmail( $row ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class="acp-box">
|
||||
<h3>{$row['mlog_subject']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['erlog_log_from']}</td>
|
||||
<td><{$row['mlog_from']}></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['erlog_log_to']}</td>
|
||||
<td><{$row['mlog_to']}></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['erlog_log_sent']}</td>
|
||||
<td>{$row['_date']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['erlog_log_subject']}</td>
|
||||
<td>{$row['_subject']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2'>{$row['mlog_content']}...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2'>{$this->lang->words['erlog_ipberror']} {$row['mlog_msg']}
|
||||
<br />{$this->lang->words['erlog_smtpcode']} {$row['mlog_code']}
|
||||
<br />{$this->lang->words['erlog_smtperror']} {$row['mlog_smtp_error']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Email logs skin file
|
||||
* Last Updated: $Date: 2009-05-28 13:24:24 -0400 (Thu, 28 May 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4699 $
|
||||
*/
|
||||
|
||||
class cp_skin_emaillogs extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Email logs wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param array Email log rows
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function emaillogsWrapper( $rows, $links ) {
|
||||
|
||||
$form_array = array(
|
||||
0 => array( 'subject' , $this->lang->words['elog_subject'] ),
|
||||
1 => array( 'content' , $this->lang->words['elog_body'] ),
|
||||
2 => array( 'email_from' , $this->lang->words['elog_from'] ),
|
||||
3 => array( 'email_to' , $this->lang->words['elog_to'] ),
|
||||
4 => array( 'name_from' , $this->lang->words['elog_from_name'] ),
|
||||
5 => array( 'name_to' , $this->lang->words['elog_to_name'] ),
|
||||
);
|
||||
|
||||
$type_array = array(
|
||||
0 => array( 'exact' , $this->lang->words['elog_exactly'] ),
|
||||
1 => array( 'loose' , $this->lang->words['elog_loose'] ),
|
||||
);
|
||||
$form = array();
|
||||
|
||||
$form['type'] = $this->registry->output->formDropdown( "type" , $form_array, $this->request['type'] );
|
||||
$form['match'] = $this->registry->output->formDropdown( "match", $type_array, $this->request['match'] );
|
||||
$form['string'] = $this->registry->output->formInput( "string", $this->request['string'] );
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<script type='text/javascript' src='{$this->settings['js_main_url']}acp.forms.js'></script>
|
||||
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['elog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='remove' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['elog_theemails']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='25%'>{$this->lang->words['elog_from_name']}</th>
|
||||
<th width='25%'>{$this->lang->words['elog_subject']}</th>
|
||||
<th width='27%'>{$this->lang->words['elog_to_name']}</th>
|
||||
<th width='20%'>{$this->lang->words['elog_date']}</th>
|
||||
<th width='3%'><input type='checkbox' title="{$this->lang->words['my_checkall']}" id='checkAll' /></th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<!--ACPNOTE: Missing acp_search.gif -->
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=list&type=fromid&id={$row['member_id']}' title='{$this->lang->words['elog_show_title']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/view.png' border='0' alt='{$this->lang->words['elog_byid']}'></a> <b><a href='{$this->settings['board_url']}/index.{$this->settings['php_ext']}?showuser={$row['member_id']}' title='{$this->lang->words['elog_profile']}' target='_blank'>{$row['members_display_name']}</a></b></td>
|
||||
<td><a href='#' onclick='return acp.openWindow("{$this->settings['base_url']}&{$this->form_code_js}&do=viewemail&id={$row['email_id']}",400,350,"{$row['email_id']}")' title='{$this->lang->words['elog_read']}'>{$row['email_subject']}</a></td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=list&type=toid&id={$row['to_id']}' title='{$this->lang->words['elog_show_title']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/view.png' border='0' alt='{$this->lang->words['elog_byid']}'></a> <b><a href='{$this->settings['board_url']}/index.{$this->settings['php_ext']}?showuser={$row['to_id']}' title='{$this->lang->words['elog_profile']}' target='_blank'>{$row['to_name']}</a></b></td>
|
||||
<td>{$row['_date']}</td>
|
||||
<td><input type='checkbox' name='id_{$row['email_id']}' value='1' class='checkAll' /></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='5' align='center'>{$this->lang->words['elog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class="acp-actionbar">
|
||||
<div class="leftaction">{$links}</div>
|
||||
<div class="rightaction">
|
||||
<input type="checkbox" id="checkbox" name="type" value="all" /> {$this->lang->words['elog_removeall']} <input type="submit" value="{$this->lang->words['elog_removechecked']}" class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='list' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['elog_search']}</h3>
|
||||
<p align="center">{$this->lang->words['elog_searchwhere']} {$form['type']} {$form['match']} {$form['string']}</p>
|
||||
<div class="acp-actionbar">
|
||||
<input value="{$this->lang->words['elog_searchbutton']}" class="button primary" accesskey="s" type="submit" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Email log entry
|
||||
*
|
||||
* @access public
|
||||
* @param array Email log entry
|
||||
* @return string HTML
|
||||
*/
|
||||
public function emaillogsEmail( $row ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class="acp-box">
|
||||
<h3>{$row['email_subject']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['elog_log_from']}</td>
|
||||
<td>{$row['members_display_name']} <{$row['from_email_address']}></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['elog_log_to']}</td>
|
||||
<td>{$row['to_name']} <{$row['to_email_address']}></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['elog_log_sent']}</td>
|
||||
<td>{$row['_date']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['elog_log_ip']}</td>
|
||||
<td>{$row['from_ip_address']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['elog_log_subject']}</td>
|
||||
<td>{$row['email_subject']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2'>{$row['email_content']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,453 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Emoticon manager skin file
|
||||
* Last Updated: $Date: 2009-07-08 21:23:44 -0400 (Wed, 08 Jul 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4856 $
|
||||
*/
|
||||
|
||||
class cp_skin_emoticons extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Emoticon pack splash page
|
||||
*
|
||||
* @access public
|
||||
* @param array Form elements
|
||||
* @return string HTML
|
||||
*/
|
||||
public function emoticonsPackSplash( $form )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['emo_title']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='emo_packexport' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['emote_export']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['emote_export_which']}<span class='desctext'>{$this->lang->words['emote_xml_pack']}</span></label>
|
||||
{$form['emo_set']}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class='acp-actionbar'>
|
||||
<div class='centeraction'>
|
||||
<input type='submit' value='{$this->lang->words['emote_export_button']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form><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='emo_packimport' />
|
||||
<input type='hidden' name='MAX_FILE_SIZE' value='10000000000' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['emote_import']}</h3>
|
||||
|
||||
<table width='100%' class='alternate_rows'>
|
||||
<tr>
|
||||
<td width='60%' valign='middle'>
|
||||
{$this->lang->words['emote_import_which']}<br />
|
||||
<span class='desctext'>{$this->lang->words['emote_xml_export']}</span>
|
||||
</td>
|
||||
<td width='40%' valign='middle'>{$form['emo_set']}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td width='60%' valign='middle'>
|
||||
{$this->lang->words['emote_import_newgroup']}<br />
|
||||
<span class='desctext'>{$this->lang->words['emote_import_name']}</span>
|
||||
</td>
|
||||
<td width='40%' valign='middle'>{$form['new_emo_set']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='60%' valign='middle'>
|
||||
{$this->lang->words['emote_import_over']}<br />
|
||||
<span class='desctext'>{$this->lang->words['emote_import_replace']}</span>
|
||||
</td>
|
||||
<td width='40%' valign='middle'>{$form['overwrite']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='60%' valign='middle'>{$this->lang->words['emote_import_upload']}<br /><span class='desctext'>{$this->lang->words['emote_import_browse']}</span></td>
|
||||
<td width='40%' valign='middle'><input class='textinput' type='file' size='30' name='FILE_UPLOAD'></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class='centeraction'>
|
||||
<input type='submit' value='{$this->lang->words['emote_import_button']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the splash screen for the logs
|
||||
*
|
||||
* @access public
|
||||
* @param array Db records
|
||||
* @param array File records
|
||||
* @param string Width for table cells
|
||||
* @param int Number of emoticons per row
|
||||
* @return string HTML
|
||||
*/
|
||||
public function emoticonsDirectoryManagement( $db_rows, $file_rows, $td_width, $per_row )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['emo_control']}</h2>
|
||||
</div>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['emote_assigned']}'{$this->request['id']}'</h3>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}do=emo_doedit&id={$this->request['id']}' method='post'>
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
|
||||
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<tr align='center'>
|
||||
HTML;
|
||||
|
||||
/* Loop through the database emoticons */
|
||||
$count = 0;
|
||||
|
||||
foreach( $db_rows as $r )
|
||||
{
|
||||
$count++;
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<td width='{$td_width}%' align='center'>
|
||||
<fieldset>
|
||||
<legend><strong>{$r['image']}</strong></legend>
|
||||
|
||||
<input type='hidden' name='emo_id_{$r['id']}' value='{$r['id']}' />
|
||||
<img src='../public/style_emoticons/{$this->request['id']}/{$r['image']}' border='0' />
|
||||
HTML;
|
||||
if( $this->request['id'] == 'default' )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}do=emo_remove&eid={$r['id']}&id={$this->request['id']}' title='{$this->lang->words['emote_delete_title']}'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/emo_delete.gif' border='0' alt='{$this->lang->words['emote_delete_title']}' />
|
||||
</a>
|
||||
<br />
|
||||
<input type='textinput' class='realbutton' size='10' name='emo_type_{$r['id']}' value='{$r['typed']}' />
|
||||
HTML;
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<br /><br /><span style='font-family:Verdana,Arial;font-size:10px;font-weight:bold;'>{$r['typed']}</span>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<br /><br />{$this->lang->words['emote_clickable']} <input type='checkbox' name='emo_click_{$r['id']}' value='1' {$r['_click']} />
|
||||
</fieldset>
|
||||
</td>
|
||||
HTML;
|
||||
|
||||
if( $count == $per_row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
|
||||
<tr align='center'>
|
||||
HTML;
|
||||
$count = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Finish off a row in progress */
|
||||
if( $count > 0 and $count != $per_row )
|
||||
{
|
||||
for( $i = $count ; $i < $per_row ; ++$i )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<td> </td>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class='centeraction'>
|
||||
<input type='submit' class='button primary' value='{$this->lang->words['emote_update_button']}' />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div><br />
|
||||
HTML;
|
||||
|
||||
/* Display unassigned emoticons */
|
||||
if( is_array( $file_rows ) && count( $file_rows ) )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['emote_unassigned']}'{$this->request['id']}'</h3>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}do=emo_doadd&id={$this->request['id']}' method='post'>
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
|
||||
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<tr>
|
||||
HTML;
|
||||
|
||||
/* Loop through the unassigned emoticons */
|
||||
$master_count = 0;
|
||||
$count = 0;
|
||||
|
||||
foreach( $file_rows as $r )
|
||||
{
|
||||
$master_count++;
|
||||
$count++;
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<td width='{$td_width}%' align='center'>
|
||||
<fieldset>
|
||||
<legend><strong>{$r['image']}</strong></legend>
|
||||
<img src='../public/style_emoticons/{$this->request['id']}/{$r['image']}' border='0' />
|
||||
{$this->lang->words['emote_add']}<input name='emo_add_{$master_count}' type='checkbox' value='1' /><br />
|
||||
{$this->lang->words['emote_text']}<input type='textinput' class='realbutton' size='10' name='emo_type_{$master_count}' value='{$r['poss_name']}' /><br /><br />
|
||||
{$this->lang->words['emote_clickable']} <input type='checkbox' name='emo_click_{$master_count}' value='1' />
|
||||
<input type='hidden' name='emo_image_{$master_count}' value='{$r['image']}' />
|
||||
</fieldset>
|
||||
</td>
|
||||
HTML;
|
||||
|
||||
if( $count == $per_row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
|
||||
<tr align='center'>
|
||||
HTML;
|
||||
$count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Finish off a row in progress */
|
||||
if( $count > 0 and $count != $per_row )
|
||||
{
|
||||
for( $i = $count ; $i < $per_row ; ++$i )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<td> </td>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
|
||||
<div class='acp-actionbar'>
|
||||
<div class='centeraction'>
|
||||
<input type='submit' class='button primary' value='{$this->lang->words['emote_add_button']}' />
|
||||
<input type='submit' name='addall' class='button primary' value='{$this->lang->words['emote_addall_button']}' />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
}
|
||||
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overview of emoticon packs
|
||||
*
|
||||
* @access public
|
||||
* @param array Records
|
||||
* @return string HTML
|
||||
*/
|
||||
public function emoticonsOverview( $rows )
|
||||
{
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<script type="text/javascript" src="{$this->settings['js_main_url']}acp.emoticons.js"></script>
|
||||
<script type='text/javascript'>
|
||||
|
||||
ipb.templates['emo_manage'] = new Template( "<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>" +
|
||||
"<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />" +
|
||||
"<input type='hidden' name='do' value='#{form_do}' />" +
|
||||
"<input type='hidden' name='id' value='#{form_id}' />" +
|
||||
"<div class='acp-box'><h3>{$this->lang->words['emoticon_folder']}</h3><ul class='acp-form'><li><label for='name_#{form_id}'>{$this->lang->words['emoticon_folder_name']}</label><input type='text' size='30' class='input_text' id='name_#{form_id}' value='#{folder_name}' name='emoset'></li></ul><div class='acp-actionbar'><input type='submit' value='#{form_value}' class='realbutton' id='save_folder_#{id}' /></div></div>" +
|
||||
"</form>" );
|
||||
|
||||
ipb.lang['emoticons'] = [];
|
||||
ipb.lang['emoticons']['add'] = "{$this->lang->words['emote_addfolder']}";
|
||||
ipb.lang['emoticons']['edit'] = "{$this->lang->words['emote_editfolder']}";
|
||||
|
||||
</script>
|
||||
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['emo_control']}</h2>
|
||||
<ul class='context_menu'>
|
||||
<li><a href='#' id='folder_edit_0' return false;'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/table_add.png' alt='' /> {$this->lang->words['emote_createnew']}</a></li>
|
||||
</ul>
|
||||
<script type='text/javascript'>
|
||||
$('folder_edit_0').observe('click', acp.emoticons.folder.bindAsEventListener( this, 0 ) );
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='uploadform' enctype='multipart/form-data' id='uploadform'>
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
|
||||
<input type='hidden' name='do' value='emo_upload'>
|
||||
<input type='hidden' name='MAX_FILE_SIZE' value='10000000000'>
|
||||
<input type='hidden' name='dir_default' value='1'>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['emote_current']}</h3>
|
||||
|
||||
<table width='100%' class='alternate_rows'>
|
||||
<tr>
|
||||
<th width='50%' align='center'>{$this->lang->words['emote_emofolder']}</th>
|
||||
<th width='5%' align='center'>{$this->lang->words['emote_upload']}</th>
|
||||
<th width='20%' align='center'>{$this->lang->words['emote_num_disk']}</th>
|
||||
<th width='20%' align='center'>{$this->lang->words['emote_num_group']}</th>
|
||||
<th width='5%' align='center'>{$this->lang->words['emote_options']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
foreach( $rows as $data )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td valign='middle'>
|
||||
<div style='width:auto;float:right;'><img src='{$this->settings['skin_acp_url']}/images/{$data['icon']}' title='{$data['title']}' alt='{$data['icon']}' /></div>
|
||||
{$data['line_image']}<img src='{$this->settings['skin_acp_url']}/images/emoticon_folder.gif' border='0'>
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}do=emo_manage&id={$data['dir']}' title='{$this->lang->words['emote_manageset']}'><b>{$data['dir']}</b></a>
|
||||
</td>
|
||||
|
||||
<td valign='middle'><center>{$data['checkbox']}</center></td>
|
||||
<td valign='middle'><center>{$data['count']}</center></td>
|
||||
<td valign='middle'><center>{$data['dir_count']}</td>
|
||||
<td align='right'>
|
||||
<img class="ipbmenu" id="menu{$data['dir']}" src="{$this->settings['skin_acp_url']}/_newimages/menu_open.png" alt="">
|
||||
<ul style="position: absolute; display: none; z-index: 9999;" class="acp-menu" id='menu{$data['dir']}_menucontent'>
|
||||
<li style="z-index: 10000;" class='icon view'><a style="z-index: 10000;" href='{$this->settings['base_url']}{$this->form_code_js}do=emo_manage&id={$data['dir']}'>{$data['link_text']}</a></li>
|
||||
HTML;
|
||||
|
||||
if( $data['dir'] != 'default' OR IN_DEV == 1 )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<li style="z-index: 10000;" class='icon edit'>
|
||||
<a style="z-index: 10000;" href='#' id="folder_edit_{$data['dir']}">{$this->lang->words['emote_editfolder']}</a>
|
||||
<script type='text/javascript'>
|
||||
$("folder_edit_{$data['dir']}").observe('click', acp.emoticons.folder.bindAsEventListener( this, "{$data['dir']}" ) );
|
||||
</script>
|
||||
</li>
|
||||
<li style="z-index: 10000;" class='icon delete'><a style="z-index: 10000;" href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}{$this->form_code_js}do=emo_setremove&id={$data['dir']}");'>{$this->lang->words['emote_deletefolder']}</a></li>
|
||||
HTML;
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<li style="z-index: 10000;" class='icon delete'>{$this->lang->words['emote_dontdeletedef']}</li>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div><br />
|
||||
HTML;
|
||||
|
||||
if( SAFE_MODE_ON )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
</form>
|
||||
HTML;
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['emote_uploademos']}</h3>
|
||||
|
||||
<table width='100%' class='alternate_rows'>
|
||||
<tr>
|
||||
<td width='50%' align='center'><input type='file' value='' class='realbutton' name='upload_1' size='30' /></td>
|
||||
<td width='50%' align='center'><input type='file' class='realbutton' name='upload_2' size='30' /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='50%' align='center'><input type='file' class='realbutton' name='upload_3' size='30' /></td>
|
||||
<td width='50%' align='center'><input type='file' class='realbutton' name='upload_4' size='30' /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class='acp-actionbar'>
|
||||
<div class='centeraction'>
|
||||
<input type='submit' value='{$this->lang->words['emote_uploadtofolders']}' class='button primary' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
}
|
||||
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Error log skin file
|
||||
* Last Updated: $Date: 2009-05-28 13:24:24 -0400 (Thu, 28 May 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4699 $
|
||||
*/
|
||||
|
||||
class cp_skin_errorlogs extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Error log wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function errorlogsWrapper( $rows, $links ) {
|
||||
|
||||
$form_array = array(
|
||||
0 => array( 'log_error' , $this->lang->words['error_log_error']),
|
||||
2 => array( 'log_error_code' , $this->lang->words['error_log_code'] ),
|
||||
3 => array( 'log_request_uri', $this->lang->words['error_log_uri'] ),
|
||||
4 => array( 'members_display_name', $this->lang->words['error_log_member'] ),
|
||||
);
|
||||
$type_array = array(
|
||||
0 => array( 'exact' , $this->lang->words['erlog_exact'] ),
|
||||
1 => array( 'loose' , $this->lang->words['erlog_loose'] ),
|
||||
);
|
||||
$form = array();
|
||||
|
||||
$form['type'] = $this->registry->output->formDropdown( "type" , $form_array, $this->request['type'] );
|
||||
$form['match'] = $this->registry->output->formDropdown( "match", $type_array, $this->request['match'] );
|
||||
$form['string'] = $this->registry->output->formInput( "string", $this->request['string'] );
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<script type='text/javascript' src='{$this->settings['js_main_url']}acp.forms.js'></script>
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='remove' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['error_log_thelogs']}</h3>
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<tr>
|
||||
<th width='10%'>{$this->lang->words['error_log_code']}</th>
|
||||
<th width='30%'>{$this->lang->words['error_log_error']}</th>
|
||||
<th width='15%'>{$this->lang->words['error_log_ip']}</th>
|
||||
<th width='20%'>{$this->lang->words['error_log_uri']}</th>
|
||||
<th width='10%'>{$this->lang->words['error_log_member']}</th>
|
||||
<th width='10%'>{$this->lang->words['error_log_date']}</th>
|
||||
<th width='3%'><input type='checkbox' title="{$this->lang->words['my_checkall']}" id='checkAll' /></th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count( $rows ) AND is_array( $rows ) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['log_error_code']}</td>
|
||||
<td>{$row['log_error']}</td>
|
||||
<td>{$row['log_ip_address']}</td>
|
||||
<td>{$row['log_request_uri']}</td>
|
||||
<td>{$row['members_display_name']}</td>
|
||||
<td>{$row['_date']}</td>
|
||||
<td><input type='checkbox' name='id_{$row['log_id']}' value='1' class='checkAll' /></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='7' align='center'>{$this->lang->words['error_log_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class='leftaction'>
|
||||
{$links}
|
||||
</div>
|
||||
<div class='rightaction'>
|
||||
<input type="checkbox" id="checkbox" name="type" value="all" /> {$this->lang->words['erlog_removeall']} <input type="submit" value="{$this->lang->words['erlog_removechecked']}" class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='list' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['error_log_search']}</h3>
|
||||
<p align="center">
|
||||
<label>{$this->lang->words['erlog_searchwhere']}</label>
|
||||
{$form['type']} {$form['match']} {$form['string']}
|
||||
</p>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input value="{$this->lang->words['erlog_searchbutton']}" class="button primary" accesskey="s" type="submit" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Manage help files skin file
|
||||
* Last Updated: $Date: 2009-09-24 16:56:42 -0400 (Thu, 24 Sep 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 5154 $
|
||||
*/
|
||||
|
||||
class cp_skin_help_files extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Form to add/edit a help file
|
||||
*
|
||||
* @access public
|
||||
* @param string Action
|
||||
* @param int ID
|
||||
* @param array Form elements
|
||||
* @param string Button text
|
||||
* @return string HTML
|
||||
*/
|
||||
public function helpFileForm( $do, $id, $form, $button )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['h_title']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='postingform'>
|
||||
<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->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$button}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['h_filetitle']}</label>
|
||||
{$form['title']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['h_filedesc']}</label>
|
||||
{$form['description']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['h_fileapp']}</label>
|
||||
{$form['appDir']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['h_filetext']}</label>
|
||||
<div class='clear'><textarea id='editor_main' name='editor_main' style='width: 100%; height: 500px;'>{$form['text']}</textarea></div>
|
||||
</li>
|
||||
</ul>
|
||||
<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;
|
||||
}
|
||||
|
||||
/**
|
||||
* List the current help files
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @return string HTML
|
||||
*/
|
||||
public function helpFilesList( $rows )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['h_title']}</h2>
|
||||
<ul class='context_menu'>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}&do=new' title='{$this->lang->words['h_addnew']}'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/help_add.png' alt='' />
|
||||
{$this->lang->words['h_addnew']}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}&do=exportXml' title='{$this->lang->words['h_export']}'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/export.png' alt='' />
|
||||
{$this->lang->words['h_export']}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}&do=importXml' title='{$this->lang->words['h_import']}'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/import.png' alt='' />
|
||||
{$this->lang->words['h_import']}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
window.onload = function() {
|
||||
Sortable.create( 'sortable_handle', { revert: true, format: 'faq_([0-9]+)', onUpdate: dropItLikeItsHot, handle: 'draghandle' } );
|
||||
};
|
||||
|
||||
dropItLikeItsHot = function( draggableObject, mouseObject )
|
||||
{
|
||||
var options = {
|
||||
method : 'post',
|
||||
parameters : Sortable.serialize( 'sortable_handle', { tag: 'li', name: 'faq' } )
|
||||
};
|
||||
|
||||
new Ajax.Request( "{$this->settings['base_url']}&{$this->form_code_js}&do=doreorder&md5check={$this->registry->adminFunctions->getSecurityKey()}".replace( /&/g, '&' ), options );
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['h_current']}</h3>
|
||||
|
||||
<ul id='sortable_handle' class='alternate_rows'>
|
||||
HTML;
|
||||
|
||||
foreach( $rows as $r )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<li id='faq_{$r['id']}'>
|
||||
<table style='width: 100%'>
|
||||
<tr>
|
||||
<td style='width: 3%'>
|
||||
<div class='draghandle'><img src='{$this->settings['skin_acp_url']}/_newimages/drag_icon.png' alt=''></div>
|
||||
</td>
|
||||
<td style='width: 93%'>
|
||||
<strong><a href='{$this->settings['base_url']}{$this->form_code}&do=edit&id={$r['id']}'>{$r['title']}</a></strong><br />
|
||||
<span class='desctext'>{$r['description']}</span>
|
||||
</td>
|
||||
<td style='width: 4%'>
|
||||
<img class='ipbmenu' id="menu-{$r['id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['a_options']}' />
|
||||
<ul class='acp-menu' id='menu-{$r['id']}_menucontent'>
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}{$this->form_code}&do=edit&id={$r['id']}'>{$this->lang->words['h_edit']}</a></li>
|
||||
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}{$this->form_code}&do=remove&id={$r['id']}");'>{$this->lang->words['h_remove']}</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,637 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Hooks export skin file
|
||||
* Last Updated: $Date: 2009-03-29 22:18:15 -0400 (Sun, 29 Mar 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4343 $
|
||||
*/
|
||||
|
||||
class cp_skin_hooks_export extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Inline settings dhtml box
|
||||
*
|
||||
* @access public
|
||||
* @param array Hook data
|
||||
* @param array Form elements
|
||||
* @return string HTML
|
||||
*/
|
||||
public function inline_settings( $hook, $form=array() )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__settings'] = {};
|
||||
acp.hooks.fields['MF__settings']['fields'] = $A(['setting_groups', 'settings']);
|
||||
acp.hooks.fields['MF__settings']['url'] = "app=core&module=ajax&section=hooks&do=save&name=settings&id={$hook['hook_id']}";
|
||||
acp.hooks.fields['MF__settings']['callback'] = function( t, json ){
|
||||
$('MF__settings').innerHTML = json['message'];
|
||||
new Effect.Pulsate( $('MF__settings'), { pulses: 3 } );
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Добавление настроек</h3>
|
||||
<ul class='acp-form'>
|
||||
<li>
|
||||
Выберите одну или несколько групп настроек для экспорта. Все настройки этих групп будут полностью сохранены
|
||||
</li>
|
||||
<li style='padding-left: 15px'>
|
||||
{$form['groups']}
|
||||
</li>
|
||||
<li>
|
||||
Выберите индивидуальную настройку для экспорта. Все необходимые значения настройки будут сохранены
|
||||
</li>
|
||||
<li style='padding-left: 15px'>
|
||||
{$form['settings']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' Сохранить ' class='realbutton' id='MF__settings_save' />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline modules dhtml box
|
||||
*
|
||||
* @access public
|
||||
* @param array Hook data
|
||||
* @param array Form elements
|
||||
* @return string HTML
|
||||
*/
|
||||
public function inline_modules( $hook, $form=array() )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__modules'] = {};
|
||||
acp.hooks.fields['MF__modules']['fields'] = $A(['modules']);
|
||||
acp.hooks.fields['MF__modules']['url'] = "app=core&module=ajax&section=hooks&do=save&name=modules&id={$hook['hook_id']}";
|
||||
acp.hooks.fields['MF__modules']['callback'] = function( t, json ){
|
||||
$('MF__modules').innerHTML = json['message'];
|
||||
new Effect.Pulsate( $('MF__modules'), { pulses: 3 } );
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Добавление модулей</h3>
|
||||
<ul class='acp-form'>
|
||||
<li>
|
||||
Выберите один или несколько модулей для экспорта
|
||||
</li>
|
||||
<li style='padding-left: 15px'>
|
||||
{$form['modules']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' Сохранить ' class='realbutton' id='MF__modules_save' />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline custom script dhtml box
|
||||
*
|
||||
* @access public
|
||||
* @param array Hook data
|
||||
* @param array Form elements
|
||||
* @return string HTML
|
||||
*/
|
||||
public function inline_custom( $hook, $form=array() )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__custom'] = {};
|
||||
acp.hooks.fields['MF__custom']['fields'] = $A(['custom']);
|
||||
acp.hooks.fields['MF__custom']['url'] = "app=core&module=ajax&section=hooks&do=save&name=custom&id={$hook['hook_id']}";
|
||||
acp.hooks.fields['MF__custom']['callback'] = function( t, json ){
|
||||
$('MF__custom').innerHTML = json['message'];
|
||||
new Effect.Pulsate( $('MF__custom'), { pulses: 3 } );
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Добавление установочных скриптов</h3>
|
||||
<ul class='acp-form'>
|
||||
<li>
|
||||
Введите имя файла, содержащего скрипт установки/удаления. Файл должен иметь префикс "install_" в имени и находится в директории hooks/. Префикс перед именем файла вы можете не указывать
|
||||
</li>
|
||||
<li style='padding-left: 15px'>
|
||||
install_ {$form['custom']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' Сохранить ' class='realbutton' id='MF__custom_save' />
|
||||
</div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline help files dhtml box
|
||||
*
|
||||
* @access public
|
||||
* @param array Hook data
|
||||
* @param array Form elements
|
||||
* @return string HTML
|
||||
*/
|
||||
public function inline_help( $hook, $form=array() )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__help'] = {};
|
||||
acp.hooks.fields['MF__help']['fields'] = $A(['help']);
|
||||
acp.hooks.fields['MF__help']['url'] = "app=core&module=ajax&section=hooks&do=save&name=help&id={$hook['hook_id']}";
|
||||
acp.hooks.fields['MF__help']['callback'] = function( t, json ){
|
||||
$('MF__help').innerHTML = json['message'];
|
||||
new Effect.Pulsate( $('MF__help'), { pulses: 3 } );
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Добавление разделов помощи</h3>
|
||||
<ul class='acp-form'>
|
||||
<li>
|
||||
Выберите один или несколько разделов помощи для экспорта
|
||||
</li>
|
||||
<li style='padding-left: 15px'>
|
||||
{$form['help']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' Сохранить ' class='realbutton' id='MF__help_save' />
|
||||
</div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline tasks dhtml box
|
||||
*
|
||||
* @access public
|
||||
* @param array Hook data
|
||||
* @param array Form elements
|
||||
* @return string HTML
|
||||
*/
|
||||
public function inline_tasks( $hook, $form=array() )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__tasks'] = {};
|
||||
acp.hooks.fields['MF__tasks']['fields'] = $A(['tasks']);
|
||||
acp.hooks.fields['MF__tasks']['url'] = "app=core&module=ajax&section=hooks&do=save&name=tasks&id={$hook['hook_id']}";
|
||||
acp.hooks.fields['MF__tasks']['callback'] = function( t, json ){
|
||||
$('MF__tasks').innerHTML = json['message'];
|
||||
new Effect.Pulsate( $('MF__tasks'), { pulses: 3 } );
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Добавление задач</h3>
|
||||
<ul class='acp-form'>
|
||||
<li>
|
||||
Выберите одну или несколько задач для экспорта (не забудьте приложить PHP файлы задач к модификации)
|
||||
</li>
|
||||
<li style='padding-left: 15px'>
|
||||
{$form['tasks']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' Сохранить ' class='realbutton' id='MF__tasks_save' />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline language bits dhtml box
|
||||
*
|
||||
* @access public
|
||||
* @param array Hook data
|
||||
* @param array Form elements
|
||||
* @param int Current index
|
||||
* @return string HTML
|
||||
*/
|
||||
public function inline_languages( $hook, $form=array(), $i=0 )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__language'] = {};
|
||||
acp.hooks.fields['MF__language']['fields'] = $A([]);
|
||||
acp.hooks.fields['MF__language']['url'] = "app=core&module=ajax&section=hooks&do=save&name=language&id={$hook['hook_id']}";
|
||||
acp.hooks.fields['MF__language']['callback'] = function( t, json ){
|
||||
$('MF__language').innerHTML = json['message'];
|
||||
new Effect.Pulsate( $('MF__language'), { pulses: 3 } );
|
||||
}
|
||||
|
||||
ipb.templates['lang_row'] = new Template("<li><table width='100%' cellpadding='0' cellspacing='0'><tr><td style='width: 30%; vertical-align: top;'>#{control}<br /><span class='desctext langdesc' id='container_desc_#{containerid}' style='display: none'>Выберите языковые строки для добавления →</span></td><td style='vertical-align: top;'><div id='container_#{containerid}' style='display: none'></div></td></tr></table></li>");
|
||||
|
||||
acp.hooks.languageMax = $i;
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
.langdesc {
|
||||
font-size: 13px;
|
||||
padding: 5px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Добавление языковых конструкций</h3>
|
||||
<div style='max-height: 350px; overflow: auto'>
|
||||
<ul class='acp-form alternate_rows sep_rows' id='language_wrap'>
|
||||
EOF;
|
||||
if( $i )
|
||||
{
|
||||
for( $k=1; $k<$i; $k++ )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<table width='100%' cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td style='width: 30%; vertical-align: top;'>
|
||||
{$form['language_file_' . $k ]}<br />
|
||||
<span class='desctext langdesc' id='container_desc_{$k}'>Выберите языковые строки для добавления →</span>
|
||||
</td>
|
||||
<td style='vertical-align: top;'>
|
||||
<div id='container_{$k}'>
|
||||
{$form['language_strings_' . $k ]}
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__language']['fields'].push("language_{$k}");
|
||||
acp.hooks.fields['MF__language']['fields'].push("strings_{$k}");
|
||||
</script>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<table width='100%' cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td style='width: 30%; vertical-align: top;'>
|
||||
{$form['language_file_' . $i ]}<br />
|
||||
<span class='desctext langdesc' id='container_desc_{$i}' style='display: none'>Выберите языковые строки для добавления→</span>
|
||||
</td>
|
||||
<td style='vertical-align: top;'>
|
||||
<div id='container_{$i}' style='display: none'>
|
||||
{$form['language_strings_' . $i ]}
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__language']['fields'].push("language_{$i}");
|
||||
acp.hooks.fields['MF__language']['fields'].push("strings_{$i}");
|
||||
</script>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='Добавить еще' class='realbutton' id='addLanguage' /> <input type='submit' value=' Сохранить ' class='realbutton' id='MF__language_save' />
|
||||
<script type='text/javascript'>
|
||||
$('addLanguage').observe('click', acp.hooks.addAnotherLanguage);
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline skin bits dhtml box
|
||||
*
|
||||
* @access public
|
||||
* @param array Hook data
|
||||
* @param array Form elements
|
||||
* @param int Current index
|
||||
* @return string HTML
|
||||
*/
|
||||
public function inline_skins( $hook, $form=array(), $i=0 )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__templates'] = {};
|
||||
acp.hooks.fields['MF__templates']['fields'] = $A([]);
|
||||
acp.hooks.fields['MF__templates']['url'] = "app=core&module=ajax&section=hooks&do=save&name=skins&id={$hook['hook_id']}";
|
||||
acp.hooks.fields['MF__templates']['callback'] = function( t, json ){
|
||||
$('MF__templates').innerHTML = json['message'];
|
||||
new Effect.Pulsate( $('MF__templates'), { pulses: 3 } );
|
||||
}
|
||||
|
||||
ipb.templates['skin_row'] = new Template("<li><table width='100%' cellpadding='0' cellspacing='0'><tr><td style='width: 35%; vertical-align: top;'>#{control}<br /><span class='desctext skindesc' id='s_container_desc_#{containerid}' style='display: none'>Выберите шаблоны для добавления →</span></td><td style='vertical-align: top;'><div id='s_container_#{containerid}' style='display: none'></div></td></tr></table></li>");
|
||||
|
||||
acp.hooks.skinMax = $i;
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
.skindesc {
|
||||
font-size: 13px;
|
||||
padding: 5px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Добавление шаблонов</h3>
|
||||
<div style='max-height: 350px; overflow: auto'>
|
||||
<ul class='acp-form alternate_rows sep_rows' id='skin_wrap'>
|
||||
EOF;
|
||||
|
||||
if( $i )
|
||||
{
|
||||
for( $k=1; $k<$i; $k++ )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<table width='100%' cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td style='width: 35%; vertical-align: top;'>
|
||||
{$form['skin_file_' . $k ]}<br />
|
||||
<span class='desctext skindesc' id='s_container_desc_{$k}'>Выберите шаблоны для добавления →</span>
|
||||
</td>
|
||||
<td style='vertical-align: top;'>
|
||||
<div id='s_container_{$k}'>
|
||||
{$form['skin_method_' . $k ]}
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__templates']['fields'].push("templates_{$k}");
|
||||
acp.hooks.fields['MF__templates']['fields'].push("skin_{$k}");
|
||||
</script>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<table width='100%' cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td style='width: 35%; vertical-align: top;'>
|
||||
{$form['skin_file_' . $i ]}<br />
|
||||
<span class='desctext skindesc' id='s_container_desc_{$i}' style='display: none'>Выберите шаблоны для добавления →</span>
|
||||
</td>
|
||||
<td style='vertical-align: top;'>
|
||||
<div id='s_container_{$i}' style='display: none'>
|
||||
{$form['language_strings_' . $i ]}
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__templates']['fields'].push("templates_{$i}");
|
||||
acp.hooks.fields['MF__templates']['fields'].push("skin_{$i}");
|
||||
</script>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='Добавить еще' class='realbutton' id='addTemplates' /> <input type='submit' value=' Сохранить
|
||||
' class='realbutton' id='MF__templates_save' />
|
||||
<script type='text/javascript'>
|
||||
$('addTemplates').observe('click', acp.hooks.addAnotherTemplate);
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline database changes dhtml box
|
||||
*
|
||||
* @access public
|
||||
* @param array Hook data
|
||||
* @param array Form elements
|
||||
* @param int Current index
|
||||
* @return string HTML
|
||||
*/
|
||||
public function inline_database( $hook, $form=array(), $i=0 )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__database'] = {};
|
||||
acp.hooks.fields['MF__database']['fields'] = $A([]);
|
||||
acp.hooks.fields['MF__database']['url'] = "app=core&module=ajax&section=hooks&do=save&name=database&id={$hook['hook_id']}";
|
||||
acp.hooks.fields['MF__database']['callback'] = function( t, json ){
|
||||
$('MF__database').innerHTML = json['message'];
|
||||
new Effect.Pulsate( $('MF__database'), { pulses: 3 } );
|
||||
}
|
||||
|
||||
ipb.templates['db_row'] = new Template("<li><table width='100%' cellpadding='0' cellspacing='0'><tr><td style='width: 35%; vertical-align: top;'><select name='type_#{id}' onchange='acp.hooks.generateFields(#{id});' id='type_#{id}' class='dropdown'><option value='0'>Выберите</option><option value='create'>Создать таблицу</option><option value='alter'>Изменить таблицу</option><option value='update'>Обновить данные</option><option value='insert'>Добавить данные</option></select><br /><span class='desctext dbdesc' id='d_container_desc_#{id}' style='display: none'>Выберите строчки для добавления →</span></td><td style='vertical-align: top;'><div id='d_container_#{id}' style='display: none' class='dbcontainer'></div></td></tr></table></li>");
|
||||
|
||||
ipb.templates['db_create'] = new Template("Укажите имя таблицы (без префикса)<br /><input name='name_#{id}' id='name_#{id}' type='input' /><br /><br />Укажите индексы таблицы, так же как они идут в SQL запросе для создания таблицы<br /><textarea name='fields_#{id}' id='fields_#{id}'></textarea><br /><br />Укажите тип таблицы (напр-р, myisam или innodb)<br /><input name='tabletype_#{id}' id='tabletype_#{id}' type='input' />");
|
||||
|
||||
ipb.templates['db_alter'] = new Template("Укажите тип изменения таблицы<br /><select name='altertype_#{id}' id='altertype_#{id}'><option value='add'>Добавление поля</option><option value='change'>Изменение поля</option><option value='remove'>Удаление поля</option></select><br /><br />Укажите имя таблицы (без префикса)<br /><input name='table_#{id}' id='table_#{id}' type='text' /><br /><br />Укажите имя поля<br /><input name='field_#{id}' id='field_#{id}' type='text'><br /><br />(Только для изменения поля) укажите новое имя поля<br /><input name='newfield_#{id}' id='newfield_#{id}' type='text'><br /><br />Укажите тип поля (напр-р, varchar(255))<br /><input name='fieldtype_#{id}' id='fieldtype_#{id}' type='text'><br /><br />Укажите значение по-умолчанию<br /><input name='default_#{id}' id='default_#{id}' type='text' />");
|
||||
|
||||
ipb.templates['db_update'] = new Template("Укажите имя таблицы (без префикса)<br /><input name='table_#{id}' id='table_#{id}' type='text'><br /><br />Укажите имя поля<br /><input name='field_#{id}' id='field_#{id}' type='text'><br /><br />Укажите новое значение<br /><input name='newvalue_#{id}' id='newvalue_#{id}' type='text'><br /><br />Укажите старое значени (полезно для операции удаления модификации)<br /><input name='oldvalue_#{id}' id='oldvalue_#{id}' type='text'><br /><br />Укажите дополнительное значение для WHERE<br /><input name='where_#{id}' id='where_#{id}' type='text'>");
|
||||
|
||||
ipb.templates['db_insert'] = new Template("Укажите имя таблицы (без префикса)<br /><input name='table_#{id}' id='table_#{id}' type='text' /><br /><br />Укажите данные для добавления в формате column=value, column=value<br /><textarea name='updates_#{id}' id='updates_#{id}'></textarea><br /><br />Укажите пару column=value для совпадения при удалении<br /><input name='fordelete_#{id}' id='fordelete_#{id}' type='text' />");
|
||||
|
||||
acp.hooks.dbMax = $i;
|
||||
</script>
|
||||
|
||||
<style type='text/css'>
|
||||
.dbdesc {
|
||||
font-size: 13px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.dbcontainer input,
|
||||
.dbcontainer select,
|
||||
.dbcontainer textarea {
|
||||
margin: 4px 0px 4px 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>Добавление изменений БД</h3>
|
||||
<div style='max-height: 350px; overflow: auto'>
|
||||
<ul class='acp-form alternate_rows sep_rows' id='database_wrap'>
|
||||
EOF;
|
||||
|
||||
if( $i )
|
||||
{
|
||||
for( $k=1; $k<$i; $k++ )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<table width='100%' cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td style='width: 35%; vertical-align: top;'>
|
||||
{$form['type_' . $k ]}<br />
|
||||
<span class='desctext dbdesc' id='d_container_desc_{$k}'>Укажите параметры →</span>
|
||||
</td>
|
||||
<td style='vertical-align: top;'>
|
||||
<div id='d_container_{$k}' class='dbcontainer'>
|
||||
EOF;
|
||||
if( $form['field_1_' . $k ] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
{$form['description_1_' . $k ]}<br />
|
||||
{$form['field_1_' . $k ]}<br /><br />
|
||||
EOF;
|
||||
}
|
||||
|
||||
if( $form['field_2_' . $k ] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
{$form['description_2_' . $k ]}<br />
|
||||
{$form['field_2_' . $k ]}<br /><br />
|
||||
EOF;
|
||||
}
|
||||
|
||||
if( $form['field_3_' . $k ] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
{$form['description_3_' . $k ]}<br />
|
||||
{$form['field_3_' . $k ]}<br /><br />
|
||||
EOF;
|
||||
}
|
||||
|
||||
if( $form['field_4_' . $k ] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
{$form['description_4_' . $k ]}<br />
|
||||
{$form['field_4_' . $k ]}<br /><br />
|
||||
EOF;
|
||||
}
|
||||
|
||||
if( $form['field_5_' . $k ] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
{$form['description_5_' . $k ]}<br />
|
||||
{$form['field_5_' . $k ]}<br /><br />
|
||||
EOF;
|
||||
}
|
||||
|
||||
if( $form['field_6_' . $k ] )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
{$form['description_6_' . $k ]}<br />
|
||||
{$form['field_6_' . $k ]}<br /><br />
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__database']['fields'].push( "type_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "name_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "fields_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "tabletype_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "altertype_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "table_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "field_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "newfield_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "fieldtype_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "default_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "where_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "newvalue_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "oldvalue_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "updates_{$k}" );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "fordelete_{$k}" );
|
||||
|
||||
acp.hooks.dbMax = {$k};
|
||||
</script>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<table width='100%' cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td style='width: 35%; vertical-align: top;'>
|
||||
{$form['type_' . $i ]}<br />
|
||||
<span class='desctext dbdesc' id='d_container_desc_{$i}' style='display: none'>Укажите параметры →</span>
|
||||
</td>
|
||||
<td style='vertical-align: top;'>
|
||||
<div id='d_container_{$i}' style='display: none' class='dbcontainer'>
|
||||
{$form['language_strings_' . $i ]}
|
||||
<script type='text/javascript'>
|
||||
acp.hooks.fields['MF__database']['fields'].push("type_{$i}");
|
||||
</script>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='Добавить еще' class='realbutton' id='addDB' /> <input type='submit' value=' Сохранить ' class='realbutton' id='MF__database_save' />
|
||||
<script type='text/javascript'>
|
||||
$('addDB').observe('click', acp.hooks.addAnotherDB);
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* ACP live search skin file
|
||||
* Last Updated: $Date: 2009-06-15 20:38:43 -0400 (Mon, 15 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4777 $
|
||||
*/
|
||||
|
||||
class cp_skin_livesearch extends output
|
||||
{
|
||||
/**
|
||||
* Currently hiding settings
|
||||
*
|
||||
* @access private
|
||||
* @var bool
|
||||
*/
|
||||
private $startedHideSettings = false;
|
||||
|
||||
/**
|
||||
* Currently hiding page links
|
||||
*
|
||||
* @access private
|
||||
* @var bool
|
||||
*/
|
||||
private $startedHidePages = false;
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the live search results
|
||||
*
|
||||
* @access public
|
||||
* @param array Results
|
||||
* @param string Current search term
|
||||
* @return string HTML
|
||||
*/
|
||||
public function liveSearchDisplay( $results, $search_term ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
$IPBHTML .= <<<EOF
|
||||
<ul>
|
||||
EOF;
|
||||
|
||||
if( count($results) )
|
||||
{
|
||||
foreach( $results as $key => $output )
|
||||
{
|
||||
if( $key == 'settings' )
|
||||
{
|
||||
$text = $this->lang->words['ls_settings'];
|
||||
}
|
||||
else if( $key == 'location' )
|
||||
{
|
||||
$text = $this->lang->words['ls_acppages'];
|
||||
}
|
||||
|
||||
if( !$output )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<span class='section'>{$text} <img src='{$this->settings['skin_acp_url']}/_newimages/icons_livesearch/{$key}.png' alt='{$this->lang->words['icon']}' /></span>
|
||||
<ol>
|
||||
{$output}
|
||||
</ol>
|
||||
EOF;
|
||||
|
||||
// If we started hidding settings, we need to stop hiding them now...
|
||||
if( $key == 'settings' AND $this->startedHideSettings )
|
||||
{
|
||||
$this->startedHideSettings = false;
|
||||
$IPBHTML .= <<<EOF
|
||||
</div>
|
||||
<div style='text-align: center;' id='hideSettingsShow'>
|
||||
<a href='#' onclick="$('hideSettingsShow').hide();$('hideSettings').show();clearTimeout( ACPLiveSearch.searchTimer['hide'] );return false;">{$this->lang->words['ls_view_more_settings']}</a>
|
||||
</div>
|
||||
EOF;
|
||||
}
|
||||
// If we started hidding pages, we need to stop hiding them now...
|
||||
else if( $key == 'location' AND $this->startedHidePages )
|
||||
{
|
||||
$this->startedHidePages = false;
|
||||
$IPBHTML .= <<<EOF
|
||||
</div>
|
||||
<div style='text-align: center;' id='hidePagesShow'>
|
||||
<a href='#' onclick="$('hidePagesShow').hide();$('hidePages').show();clearTimeout( ACPLiveSearch.searchTimer['hide'] );return false;">{$this->lang->words['ls_view_more_acp']}</a>
|
||||
</div>
|
||||
EOF;
|
||||
}
|
||||
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</li>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li><em>No results</em></li>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</ul>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Result for settings
|
||||
*
|
||||
* @access public
|
||||
* @param array Result
|
||||
* @param int Total count
|
||||
* @param int Section count
|
||||
* @return string HTML
|
||||
*/
|
||||
public function searchRowSetting( $r, $count, $secCount ) {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
if( $secCount > 10 )
|
||||
{
|
||||
if( !$this->startedHideSettings )
|
||||
{
|
||||
$this->startedHideSettings = true;
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</ol>
|
||||
<div id='hideSettings' style='display:none;'>
|
||||
<ol style='margin-top:0px;'>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
$IPBHTML .= <<<EOF
|
||||
<li><a href='{$this->settings['_base_url']}&app=core&module=tools&section=settings&do=setting_view&conf_group={$r['conf_group']}&search={$this->request['search_term']}'>{$r['conf_title']}</a></li>
|
||||
EOF;
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Result for acp pages
|
||||
*
|
||||
* @access public
|
||||
* @param array Result
|
||||
* @param int Total count
|
||||
* @param int Section count
|
||||
* @return string HTML
|
||||
*/
|
||||
public function searchRowLocation( $r, $count, $secCount ) {
|
||||
$IPBHTML = "";
|
||||
|
||||
if( $secCount > 10 )
|
||||
{
|
||||
if( !$this->startedHidePages )
|
||||
{
|
||||
$this->startedHidePages = true;
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</ol>
|
||||
<div id='hidePages' style='display:none;'>
|
||||
<ol style='margin-top:0px;'>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
|
||||
//--starthtml--//
|
||||
$IPBHTML .= <<<EOF
|
||||
<li><a href='{$this->settings['_base_url']}{$r['fullurl']}'>{$r['title']}</a></li>
|
||||
EOF;
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Live search template
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function liveSearchTemplate() {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
$IPBHTML .= <<<EOF
|
||||
<div id='search_stem'></div>
|
||||
<div id='search_inner'>
|
||||
<h3 class='bar'>{$this->lang->words['ls_quick_search']}</h3>
|
||||
<div id='ajax_result'></div>
|
||||
</div>
|
||||
EOF;
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,243 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Moderator log skin file
|
||||
* Last Updated: $Date: 2009-09-22 11:55:32 -0400 (Tue, 22 Sep 2009) $
|
||||
*
|
||||
* @author $Author: matt $
|
||||
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
|
||||
* @license http://www.iinvisionpower.com/community/board/license.html
|
||||
* @package Invision Power Board
|
||||
* @subpackage Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 5139 $
|
||||
*/
|
||||
|
||||
class cp_skin_modlogs extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Moderator logs wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @param array Moderators
|
||||
* @return string HTML
|
||||
*/
|
||||
public function modlogsWrapper( $rows, $admins ) {
|
||||
|
||||
$form_array = array(
|
||||
0 => array( 'topic_title' , $this->lang->words['mlog_topictitle'] ),
|
||||
1 => array( 'ip_address' , $this->lang->words['mlog_ip'] ),
|
||||
2 => array( 'member_name' , $this->lang->words['mlog_name'] ),
|
||||
3 => array( 'topic_id' , $this->lang->words['mlog_tid'] ),
|
||||
4 => array( 'forum_id' , $this->lang->words['mlog_fid'] ),
|
||||
5 => array( 'action' , $this->lang->words['mlog_action'] )
|
||||
);
|
||||
$form = array();
|
||||
|
||||
$form['search_for'] = $this->registry->output->formInput( "search_string" );
|
||||
$form['search_in'] = $this->registry->output->formDropdown( "search_type", $form_array );
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['mlog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['mlog_last5']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='15%'>{$this->lang->words['mlog_member']}</th>
|
||||
<th width='15%'>{$this->lang->words['mlog_action']}</th>
|
||||
<th width='15%'>{$this->lang->words['mlog_forum']}</th>
|
||||
<th width='25%'>{$this->lang->words['mlog_topictitle']}</th>
|
||||
<th width='20%'>{$this->lang->words['mlog_date']}</th>
|
||||
<th width='10%'>{$this->lang->words['mlog_ip']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['members_display_name']}</td>
|
||||
<td><span style='font-weight:bold;color:red'>{$row['action']}</span></td>
|
||||
<td><b>{$row['name']}</b></td>
|
||||
<td>{$row['topic_title']}{$row['topic']}</td>
|
||||
<td>{$row['_time']}</td>
|
||||
<td>{$row['ip_address']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='6' align='center'>{$this->lang->words['mlog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['mlog_thelogs']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='30%'>{$this->lang->words['mlog_member']}</th>
|
||||
<th width='20%'>{$this->lang->words['mlog_action']}</th>
|
||||
<th width='20%'>{$this->lang->words['mlog_viewall']}</th>
|
||||
<th width='30%'>{$this->lang->words['mlog_removeall']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($admins) AND is_array($admins) )
|
||||
{
|
||||
foreach( $admins as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['members_display_name']}</td>
|
||||
<td>{$row['act_count']}</td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=view&mid={$row['member_id']}'>{$this->lang->words['mlog_view']}</a></td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=remove&mid={$row['member_id']}'>{$this->lang->words['mlog_remove']}</a></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='4' align='center'>{$this->lang->words['mlog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='view' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['mlog_search']}</h3>
|
||||
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['mlog_searchfor']}</label>
|
||||
{$form['search_for']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['mlog_searchin']}</label>
|
||||
{$form['search_in']}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="acp-actionbar">
|
||||
<input value="{$this->lang->words['mlog_searchbutton']}" class="button primary" accesskey="s" type="submit" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* View a single moderator log entry
|
||||
*
|
||||
* @access public
|
||||
* @param array Records
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function modlogsView( $rows, $pages ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['mlog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['mlog_thelogs']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='15%'>{$this->lang->words['mlog_member']}</th>
|
||||
<th width='15%'>{$this->lang->words['mlog_action']}</th>
|
||||
<th width='15%'>{$this->lang->words['mlog_forum']}</th>
|
||||
<th width='25%'>{$this->lang->words['mlog_topictitle']}</th>
|
||||
<th width='20%'>{$this->lang->words['mlog_date']}</th>
|
||||
<th width='10%'>{$this->lang->words['mlog_ip']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['members_display_name']}</td>
|
||||
<td><span style='font-weight:bold;color:red'>{$row['action']}</span></td>
|
||||
<td><b>{$row['name']}</b></td>
|
||||
<td>{$row['topic_title']}{$row['topic']}</td>
|
||||
<td>{$row['_time']}</td>
|
||||
<td>{$row['ip_address']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='6' align='center'>{$this->lang->words['mlog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class="leftaction">{$pages}</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,993 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Dashboard skin file
|
||||
* Last Updated: $Date: 2009-10-23 21:23:07 -0400 (Fri, 23 Oct 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 5283 $
|
||||
*/
|
||||
|
||||
class cp_skin_mycp extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Main dashboard template
|
||||
*
|
||||
* @access public
|
||||
* @param array Content blocks
|
||||
* @param array Forums
|
||||
* @param array Groups
|
||||
* @param array URLs
|
||||
* @return string HTML
|
||||
*/
|
||||
public function mainTemplate( $content, $forums, $groups, $urls=array() ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['cp_welcomeipb3']}</h2>
|
||||
</div>
|
||||
<!--in_dev_notes-->
|
||||
<!--in_dev_check-->
|
||||
<!--warningconverter-->
|
||||
<!--warninginstaller-->
|
||||
<!--warningupgrade-->
|
||||
<!--boardoffline-->
|
||||
<!--fulltext-->
|
||||
<div id='dashboard'>
|
||||
<div id='quick_start'>
|
||||
<table width='100%' cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=members&module=members&section=members' title='{$this->lang->words['cp_managemembers']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/user_edit.png' border='0' alt='{$this->lang->words['cp_managemembers']}' /> {$this->lang->words['cp_managemembers']}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=core&module=tools&section=settings&do=settingsview' title='{$this->lang->words['cp_editsettings']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/cog_edit.png' border='0' alt='{$this->lang->words['cp_editsettings']}' /> {$this->lang->words['cp_editsettings']}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=core&module=templates&section=skinsets' title='{$this->lang->words['cp_skinmanager']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/folder_palette.png' border='0' alt='{$this->lang->words['cp_skinmanager']}' /> {$this->lang->words['cp_skinmanager']}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=members&module=groups&section=groups&do=groups_overview' title='{$this->lang->words['cp_managegroups']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/group.png' border='0' alt='{$this->lang->words['cp_managegroups']}' /> {$this->lang->words['cp_managegroups']}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=members&module=members&section=tools&do=validating' title='{$this->lang->words['cp_managevalidating']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/user_warn.png' border='0' alt='{$this->lang->words['cp_managevalidating']}' /> {$this->lang->words['cp_managevalidating']}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=core&module=languages&section=manage_languages' title='{$this->lang->words['cp_langmanager']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/book_next.png' border='0' alt='{$this->lang->words['cp_langmanager']}' /> {$this->lang->words['cp_langmanager']}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=forums&module=forums&section=forums' title='{$this->lang->words['cp_manageforums']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/comments.png' border='0' alt='{$this->lang->words['cp_manageforums']}' /> {$this->lang->words['cp_manageforums']}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=members&module=bulkmail&section=bulkmail&do=bulk_mail' title='{$this->lang->words['cp_bulkmailer']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/email_add.png' border='0' alt='{$this->lang->words['cp_bulkmailer']}' /> {$this->lang->words['cp_bulkmailer']}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href='{$this->settings['_base_url']}app=core&module=posts&section=emoticons' title='{$this->lang->words['cp_emoticonmanager']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/emoticon_grin.png' border='0' alt='{$this->lang->words['cp_emoticonmanager']}' /> {$this->lang->words['cp_emoticonmanager']}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div id='search_and_stats'>
|
||||
<div id='quick_search' class='acp-box'>
|
||||
<h3>{$this->lang->words['cp_quicksearch']}</h3>
|
||||
<table width='100%' cellpadding='0' cellspacing='0' border='0' class='alternate_rows'>
|
||||
<tr>
|
||||
<td style='width: 40%'>{$this->lang->words['cp_find']} <strong>{$this->lang->words['cp_members']}</strong>:</td>
|
||||
<td style='width: 60%'>
|
||||
<form action='{$this->settings['_base_url']}&app=members&module=members&section=members&do=members_list&__update=1&f_member_contains_type=contains&f_member_contains=members_display_name' method='post'><input type='text' size='20' class='textinput' id='members_display_name' name='f_member_contains_text' value='' /> <input type='submit' value='{$this->lang->words['cp_go']}' class='realbutton' onclick='return ACPHomepage.editMember()' /></form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$this->lang->words['cp_find']} <strong>{$this->lang->words['cp_systemsettings']}</strong>:</td>
|
||||
<td>
|
||||
<form name='settingform' id='settingform' action='{$this->settings['_base_url']}&app=core&module=tools&section=settings&do=setting_view' method='post'><input type='text' size='20' class='textinput' name='search' value='' /> <input type='submit' value='{$this->lang->words['cp_go']}' class='realbutton' /></form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$this->lang->words['cp_find']} <strong>{$this->lang->words['cp_ipaddresses']}</strong>:</td>
|
||||
<td>
|
||||
<form name='ipform' id='ipform' action='{$this->settings['_base_url']}&app=members&module=members&section=tools&do=learn_ip' method='post'><input type='text' size='20' class='textinput' name='ip' value='' /> <input type='submit' value='{$this->lang->words['cp_go']}' class='realbutton' /></form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$this->lang->words['cp_edit']} <strong>{$this->lang->words['cp_usergroup']}</strong>:</td>
|
||||
<td>
|
||||
<form name='newmem' id='newmem' action='{$this->settings['base_url']}&app=members&module=groups&section=groups&do=edit' method='post'><select name='id'>{$groups}</select> <input type='submit' value='{$this->lang->words['cp_go']}' class='realbutton' /></form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id='stats_overview' class='acp-box'>
|
||||
<h3>{$this->lang->words['cp_systemstats']}</h3>
|
||||
<table width='100%' cellpadding='0' cellspacing='0' class='alternate_rows'>
|
||||
{$content['stats']}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div id='notes_and_news'>
|
||||
|
||||
<div id='admin_notes' class='acp-box'>
|
||||
<h3>{$this->lang->words['cp_adminnotes']}</h3>
|
||||
<form action='{$this->settings['base_url']}&app=core&module=mycp&section=dashboard&save=1' method='post'>
|
||||
<table width='100%' cellpadding='0' cellspacing='0' border='0'>
|
||||
{$content['ad_notes']}
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- Version Check -->
|
||||
<div id='ips_update_wrapper' style='display:none'>
|
||||
<!-- Security Update -->
|
||||
<div id='ips_update_security' class='acp-box' style='display:none'>
|
||||
<h3>{$this->lang->words['cp_securityupdate']}</h3>
|
||||
<p style='text-align:center'>
|
||||
{$this->lang->words['cp_version']} <strong><span id='acp-version-security'></span></strong> {$this->lang->words['cp_securityupdate']}!
|
||||
<br />
|
||||
<input type='button' onclick='upgradeMoreInfo()' class='button' value='{$this->lang->words['cp_moreinformation']}' />
|
||||
<input type='button' onclick='resetContinue()' class='button' value='{$this->lang->words['cp_resetwarning']}' />
|
||||
</p>
|
||||
</div>
|
||||
<!-- Normal Version Upgrade -->
|
||||
<div id='ips_update_update' class='acp-box' style='display:none'>
|
||||
<h3>{$this->lang->words['cp_newversion']}</h3>
|
||||
<p style='text-align:center'>
|
||||
{$this->lang->words['cp_version']} <strong><span id='acp-version-update'></span></strong> {$this->lang->words['cp_updateavailable']}!
|
||||
<br />
|
||||
<input type='button' onclick='upgradeMoreInfo()' class='button' value='{$this->lang->words['cp_moreinformation']}' />
|
||||
</p>
|
||||
</div>
|
||||
<!-- Normal Version Upgrade -->
|
||||
<div id='ips_update_normal' class='acp-box' style='display:none'>
|
||||
<h3>{$this->lang->words['cp_newversion']}</h3>
|
||||
<p style='text-align:center'>
|
||||
{$this->lang->words['cp_version']} <strong><span id='acp-version-normal'></span></strong> {$this->lang->words['cp_availablenow']}!
|
||||
<br />
|
||||
<input type='button' onclick='upgradeMoreInfo()' class='button' value='{$this->lang->words['cp_moreinformation']}' />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--IPS WIDGETS-->
|
||||
<div id='ips_news' class='acp-box'>
|
||||
<h3>{$this->lang->words['cp_ipslatestnews']}</h3>
|
||||
<div id='ips_news_content'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id='blog_and_bulletin'>
|
||||
<div id='ips_blog' class='acp-box'>
|
||||
<h3>{$this->lang->words['cp_ipsblogs']}</h3>
|
||||
<div id='ips_blog_content'></div>
|
||||
</div>
|
||||
|
||||
<div id='ips_supportbox' class='acp-box'>
|
||||
<h3>{$this->lang->words['cp_ipsbulletin']}</h3>
|
||||
<p id='ips_supportbox_content'></p>
|
||||
</div>
|
||||
<!--IPS WIDGETS-->
|
||||
</div>
|
||||
|
||||
<div id='admin_boxes'>
|
||||
<div id='active_admins' class='acp-box'>
|
||||
<h3>{$this->lang->words['cp_activeadmins']}</h3>
|
||||
{$content['acp_online']}
|
||||
</div>
|
||||
<!--acplogins-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<script type="text/javascript" src='{$this->settings['js_app_url']}acp.homepage.js'></script>
|
||||
|
||||
<!-- HIDDEN "INFORMATION" DIV -->
|
||||
<div id='acp-update-info-wrapper' style='display:none'>
|
||||
<h3>{$this->lang->words['cp_noticeupdate']}</h3>
|
||||
<div class='acp-box'>
|
||||
<p style='text-align: center;padding:6px;padding-top:24px'>
|
||||
{$this->lang->words['cp_update_info']}
|
||||
<br />
|
||||
<br />
|
||||
<input type='button' value='{$this->lang->words['cp_visitcc']}' onclick='upgradeContinue()' class='button' />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- / HIDDEN "INFORMATION" DIV -->
|
||||
|
||||
|
||||
<script type='text/javascript'>
|
||||
function upgradeMoreInfo()
|
||||
{
|
||||
curPop = new ipb.Popup( 'acpVersionInfo', {
|
||||
type: 'pane',
|
||||
modal: true,
|
||||
initial: $('acp-update-info-wrapper').innerHTML,
|
||||
hideAtStart: false,
|
||||
w: '400px',
|
||||
h: '150px'
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function upgradeContinue()
|
||||
{
|
||||
acp.openWindow( IPSSERVER_download_link, 800, 600 );
|
||||
}
|
||||
|
||||
/* Warning CONTINUE / CANCEL */
|
||||
function resetContinue()
|
||||
{
|
||||
if ( confirm( "{$this->lang->words['cp_wannareset']}" ) )
|
||||
{
|
||||
acp.redirect( ipb.vars['base_url'] + "&app=core&module=mycp&section=dashboard&reset_security_flag=1&new_build=" + IPSSERVER_download_ve + "&new_reason=" + IPSSERVER_download_vt, 1 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Set up global vars */
|
||||
var _newsFeed = null;
|
||||
var _blogFeed = null;
|
||||
var _versionCheck = null;
|
||||
var _keithFeed = null;
|
||||
/* ---------------------- */
|
||||
/* ONLOAD: IPS widgets */
|
||||
/* ---------------------- */
|
||||
|
||||
function onload_ips_widgets()
|
||||
{
|
||||
var head = $$('head')[0];
|
||||
|
||||
/* Grab files */
|
||||
head.insert( new Element('script', { src: "{$urls['news']}", 'type': 'text/javascript' } ) );
|
||||
head.insert( new Element('script', { src: "{$urls['blogs']}", 'type': 'text/javascript' } ) );
|
||||
head.insert( new Element('script', { src: "{$urls['version_check']}", 'type': 'text/javascript' } ) );
|
||||
head.insert( new Element('script', { src: "{$urls['keiths_bits']}", 'type': 'text/javascript' } ) );
|
||||
|
||||
/* ---------------------- */
|
||||
/* Feeds */
|
||||
/* ---------------------- */
|
||||
|
||||
_newsFeed = setTimeout( '_newsFeedFunction()', 1000 );
|
||||
_blogFeed = setTimeout( '_blogFeedFunction()', 1000 );
|
||||
|
||||
/* ---------------------- */
|
||||
/* Update boxes */
|
||||
/* ---------------------- */
|
||||
|
||||
_versionCheck = setTimeout( '_versionCheckFunction()', 1000 );
|
||||
|
||||
/* ---------------------- */
|
||||
/* Load Keith */
|
||||
/* ---------------------- */
|
||||
|
||||
_keithFeed = setTimeout( '_keithFeedFunction()', 1000 );
|
||||
}
|
||||
|
||||
/* ---------------------- */
|
||||
/* Keith Feed YumYum */
|
||||
/* ---------------------- */
|
||||
|
||||
function _keithFeedFunction()
|
||||
{
|
||||
if ( typeof( IPS_KEITH_CONTENT ) != 'undefined' )
|
||||
{
|
||||
clearTimeout( _keithFeed );
|
||||
|
||||
if ( IPS_KEITH_CONTENT && IPS_KEITH_CONTENT != 'none' )
|
||||
{
|
||||
/* Show version numbers */
|
||||
$( 'ips_supportbox_content' ).innerHTML = IPS_KEITH_CONTENT.replace( /'/g, "'" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_keithFeed = setTimeout( '_keithFeedFunction()', 1000 );
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------- */
|
||||
/* Version Check */
|
||||
/* ---------------------- */
|
||||
|
||||
function _versionCheckFunction()
|
||||
{
|
||||
if ( typeof( IPSSERVER_update_type ) != 'undefined' )
|
||||
{
|
||||
clearTimeout( _versionCheck );
|
||||
|
||||
if ( IPSSERVER_update_type && IPSSERVER_update_type != 'none' )
|
||||
{
|
||||
var _show = '';
|
||||
var _text = '';
|
||||
|
||||
switch( IPSSERVER_update_type )
|
||||
{
|
||||
case 'security':
|
||||
_show = 'ips_update_security';
|
||||
_text = 'acp-version-security';
|
||||
break;
|
||||
case 'update':
|
||||
_show = 'ips_update_update';
|
||||
_text = 'acp-version-update';
|
||||
break;
|
||||
case 'normal':
|
||||
_show = 'ips_update_normal'
|
||||
_text = 'acp-version-normal';
|
||||
break;
|
||||
}
|
||||
$( _show ).style.display = '';
|
||||
$( 'ips_update_wrapper' ).style.display = '';
|
||||
|
||||
/* Show version numbers */
|
||||
$( _text ).innerHTML = IPSSERVER_download_vh;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_versionCheck = setTimeout( '_versionCheckFunction()', 1000 );
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------- */
|
||||
/* BLOG FEED */
|
||||
/* ---------------------- */
|
||||
|
||||
function _blogFeedFunction()
|
||||
{
|
||||
if ( typeof( ipsBlogFeed ) != 'undefined' )
|
||||
{
|
||||
clearTimeout( _blogFeed );
|
||||
|
||||
eval( ipsBlogFeed );
|
||||
var finalString = '';
|
||||
var _len = ipsBlogFeed['items'].length;
|
||||
|
||||
if( typeof( ipsBlogFeed['error'] ) == 'undefined' )
|
||||
{
|
||||
for( i = 0; i < _len; i++ )
|
||||
{
|
||||
var _style = ( i + 1 < _len ) ? 'padding:2px;border-bottom:1px dotted black' : 'padding:2px';
|
||||
var _title = ( ipsBlogFeed['items'][i]['title'].length > 50 ) ? ipsBlogFeed['items'][i]['title'].substr( 0, 47 ) + '...' : ipsBlogFeed['items'][i]['title'];
|
||||
finalString += "<div style='" + _style + "'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/ipsnews_item.gif' border='0' /> <a href='" + ipsBlogFeed['items'][i]['link'] + "' target='_blank' style='text-decoration:none'title='" + ipsBlogFeed['items'][i]['title'] + "'>" + _title + "</a></div>\\n";
|
||||
}
|
||||
}
|
||||
|
||||
if ( finalString )
|
||||
{
|
||||
$( 'ips_blog_content' ).innerHTML = finalString;
|
||||
}
|
||||
else
|
||||
{
|
||||
$( 'ips_blog' ).style.display = 'none';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_blogFeed = setTimeout( '_blogFeedFunction()', 1000 );
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------- */
|
||||
/* NEWS FEED */
|
||||
/* ---------------------- */
|
||||
|
||||
function _newsFeedFunction()
|
||||
{
|
||||
if ( typeof( ipsNewsFeed ) != 'undefined' )
|
||||
{
|
||||
clearTimeout( _newsFeed );
|
||||
|
||||
eval( ipsNewsFeed );
|
||||
var finalString = '';
|
||||
var _len = ipsNewsFeed['items'].length;
|
||||
|
||||
if( typeof( ipsNewsFeed['error'] ) == 'undefined' )
|
||||
{
|
||||
for( i = 0; i < _len; i++ )
|
||||
{
|
||||
var _style = ( i + 1 < _len ) ? 'padding:2px;border-bottom:1px dotted black' : 'padding:2px';
|
||||
var _title = ( ipsNewsFeed['items'][i]['title'].length > 50 ) ? ipsNewsFeed['items'][i]['title'].substr( 0, 47 ) + '...' : ipsNewsFeed['items'][i]['title'];
|
||||
finalString += "<div style='" + _style + "'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/ipsnews_item.gif' border='0' /> <a href='" + ipsNewsFeed['items'][i]['link'] + "' target='_blank' style='text-decoration:none' title='" + ipsNewsFeed['items'][i]['title'] + "'>" + _title + "</a></div>\\n";
|
||||
}
|
||||
}
|
||||
|
||||
if ( finalString )
|
||||
{
|
||||
$( 'ips_news_content' ).innerHTML = finalString;
|
||||
}
|
||||
else
|
||||
{
|
||||
$( 'ips_news' ).style.display = 'none';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_newsFeed = setTimeout( '_newsFeedFunction()', 1000 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Set up onload event */
|
||||
Event.observe( window, 'load', onload_ips_widgets );
|
||||
//]]>
|
||||
</script>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Wrapper for validating users
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_validating_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='dashboard_border'>
|
||||
<div class='dashboard_header'>{$this->lang->words['cp_adminvalidationqueue']}</div>
|
||||
{$content}
|
||||
<div align='right'>
|
||||
<a href='{$this->settings['base_url']}&app=members&module=members&section=tools&do=validating' style='text-decoration:none'>{$this->lang->words['cp_more']} »</a>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validating users row
|
||||
*
|
||||
* @access public
|
||||
* @param array Data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_validating_block( $data ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$data['url'] = $this->registry->output->buildSEOUrl( $this->settings['board_url'] . '/index.php?showuser=' . $data['member_id'], 'none', $data['members_seo_name'], 'showuser' );
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='dashboard_sub_row_alt'>
|
||||
<div style='float:right;'>
|
||||
<a href='{$this->settings['_base_url']}&app=members&module=members&section=tools&do=domod&_admin_auth_key={$this->registry->getClass('adminFunctions')->_admin_auth_key}&mid_{$data['member_id']}=1&type=approve'><img src='{$this->settings['skin_acp_url']}/images/aff_tick.png' alt='{$this->lang->words['cp_yes']}' class='ipd' /></a>
|
||||
<a href='{$this->settings['_base_url']}&app=members&module=members&section=tools&do=domod&_admin_auth_key={$this->registry->getClass('adminFunctions')->_admin_auth_key}&mid_{$data['member_id']}=1&type=delete'><img src='{$this->settings['skin_acp_url']}/images/aff_cross.png' alt='{$this->lang->words['cp_no']}' class='ipd' /></a>
|
||||
</div>
|
||||
<div>
|
||||
<strong><a href='{$data['url']}' target='_blank'>{$data['members_display_name']}</a></strong>{$data['_coppa']}<br />
|
||||
{$data['email']}</a><br />
|
||||
<div class='desctext'> {$this->lang->words['cp_ip']}: <a href='{$this->settings['base_url']}&app=members&module=members&section=toolsdo=learn_ip&ip={$data['ip_address']}'>{$data['ip_address']}</a></div>
|
||||
<div class='desctext'> {$this->lang->words['cp_registered']} {$data['_entry']}</div>
|
||||
</div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show warning that converter is still present
|
||||
*
|
||||
* @access public
|
||||
* @param int Converter flag
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warning_converter( $converter ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$this->lang->words['cp_warning_converter'] = sprintf( $this->lang->words['cp_warning_converter'], $this->settings['_base_url'] );
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$this->lang->words['cp_warning_converter']}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the ACP notes block
|
||||
*
|
||||
* @access public
|
||||
* @param string Current notes
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_notes($notes) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class='notes acp-row-on'>
|
||||
<textarea name='notes' class="dashboard_notes" rows='8' cols='25'>{$notes}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['cp_savenotes']}' class='realbutton' />
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a latest login record
|
||||
*
|
||||
* @access public
|
||||
* @param array Record
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_last_logins_row( $r ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td width='1' valign='middle'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/{$r['_admin_img']}' border='0' alt='-' class='ipd' />
|
||||
</td>
|
||||
<td class=''>
|
||||
<strong>{$r['admin_username']}</strong>
|
||||
<div class='desctext'>
|
||||
{$r['_admin_time']}
|
||||
</div>
|
||||
</td>
|
||||
<td class=''>
|
||||
<a href='#' onclick="return acp.openWindow('{$this->settings['base_url']}module=system&section=loginlog&do=view_detail&detail={$r['admin_id']}', 400, 400)" title='Подробнее'><img src='{$this->settings['skin_acp_url']}/images/folder_components/index/view.png' border='0' alt='-' class='ipd' title='{$this->lang->words['cp_view']}' /></a>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for latest ACP logins
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_last_logins_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div id='admin_logins' class="acp-box">
|
||||
<h3>{$this->lang->words['cp_latestadminlogins']}</h3>
|
||||
<table cellspacing='0' cellpadding='0' border='0' width='100%'>
|
||||
{$content}
|
||||
</table>
|
||||
<div class="more">
|
||||
<a href='{$this->settings['base_url']}&app=core&module=system&section=loginlog' style='text-decoration:none'>{$this->lang->words['cp_more']} »</a>
|
||||
</div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the admins online record
|
||||
*
|
||||
* @access public
|
||||
* @param array Record
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_onlineadmin_row( $r ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$r['url'] = $this->registry->output->buildSEOUrl( $this->settings['board_url'] . '/index.php?showuser=' . $r['session_member_id'], 'none', $r['members_seo_name'], 'showuser' );
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class=''>
|
||||
<strong style='font-size:12px'><a href='{$r['url']}' target='_blank'>{$r['members_display_name']}</a></strong>
|
||||
<div class='desctext'>{$r['session_location']} (IP: {$r['session_ip_address']})</div>
|
||||
</td>
|
||||
<td class=''>
|
||||
<img src='{$r['pp_thumb_photo']}' width='{$r['pp_thumb_width']}' height='{$r['pp_thumb_height']}' />
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Admins online wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_onlineadmin_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<table width='100%' cellpadding='4' cellspacing='0'>
|
||||
{$content}
|
||||
</table>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show latest actions record
|
||||
*
|
||||
* @access public
|
||||
* @param array Record
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_lastactions_row( $rowb ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class='tablerow1' width='1' valign='middle'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/folder_components/index/user.png' border='0' alt='-' class='ipd' />
|
||||
</td>
|
||||
<td class='tablerow1'>
|
||||
<b>{$rowb['members_display_name']}</b>
|
||||
<div class='desctext'>{$this->lang->words['cp_ip']}: {$rowb['ip_address']}</div>
|
||||
</td>
|
||||
<td class='tablerow2'>{$rowb['_ctime']}</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Latest actions wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_lastactions_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='tableborder'>
|
||||
<div class='tableheaderalt'>{$this->lang->words['cp_lastacpactions']}</div>
|
||||
<table width='100%' cellpadding='4' cellspacing='0'>
|
||||
<tr>
|
||||
<td class='tablesubheader' width='1%'> </td>
|
||||
<td class='tablesubheader' width='44'>{$this->lang->words['cp_membername']}</td>
|
||||
<td class='tablesubheader' width='55%'>{$this->lang->words['cp_timeofaction']}</td>
|
||||
</tr>
|
||||
$content
|
||||
</table>
|
||||
<div class='tablefooter' align='right'>
|
||||
<a href='{$this->settings['base_url']}&app=core&module=logs&section=adminlogs' style='text-decoration:none'>{$this->lang->words['cp_more']} »</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ACP Statistics wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param array Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_stats_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{$this->lang->words['cp_totalmembers']}</strong>
|
||||
<div class='sub desctext'>
|
||||
{$this->lang->words['cp_onlinenow']}<br />
|
||||
{$this->lang->words['cp_awaitingvalidation']}<br />
|
||||
{$this->lang->words['cp_lockedaccounts']}<br />
|
||||
{$this->lang->words['cp_coppaaccounts']}<br />
|
||||
{$this->lang->words['cp_spammeraccounts']}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
{$content['members']}
|
||||
<div class='desctext'>
|
||||
<a href='{$this->settings['board_url']}/index.php?app=members&section=online&module=online' target='_blank' title='{$this->lang->words['cp_onlinenow_info']}'>{$this->lang->words['cp_view']}</a> ({$content['sessions']})<br />
|
||||
<a href='{$this->settings['base_url']}&app=members&module=members&section=tools&do=validating'>{$this->lang->words['cp_manage']}</a> ({$content['validate']})<br />
|
||||
<a href='{$this->settings['base_url']}&app=members&module=members&section=tools&do=locked'>{$this->lang->words['cp_manage']}</a> ({$content['locked']})<br />
|
||||
<a href='{$this->settings['base_url']}&app=members&module=members&section=tools&do=validating&filter=coppa'>{$this->lang->words['cp_manage']}</a> ({$content['coppa']})<br />
|
||||
<a href='{$this->settings['base_url']}&app=members&module=members&section=tools&do=spam'>{$this->lang->words['cp_manage']}</a> ({$content['spammer'][0]})
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{$this->lang->words['cp_topics']}</strong>
|
||||
<div class='sub desctext'>
|
||||
{$this->lang->words['cp_awaitingmoderation']}
|
||||
</div>
|
||||
</td>
|
||||
<td>{$content['topics']}<br /><span class='desctext'>{$content['topics_mod']}</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{$this->lang->words['cp_posts']}</strong>
|
||||
<div class='sub desctext'>
|
||||
{$this->lang->words['cp_awaitingmoderation']}
|
||||
</div>
|
||||
</td>
|
||||
<td>{$content['replies']}<br /><span class='desctext'>{$content['posts_mod']}</span></td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a warning about the PHP version
|
||||
*
|
||||
* @access public
|
||||
* @param string PHP version
|
||||
* @return string HTML
|
||||
*/
|
||||
public function acp_php_version_warning( $phpversion ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$this->lang->words['cp_php_warning']}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a warning box
|
||||
*
|
||||
* @access public
|
||||
* @param string Title
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warning_box($title, $content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='warning'>
|
||||
<h4><img src='{$this->settings['skin_acp_url']}/_newimages/icons/bullet_error.png' border='0' alt='{$this->lang->words['cp_error']}' /> {$title}</h4>
|
||||
{$content}
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show warning that unlocked installer is present
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warning_unlocked_installer() {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$this->lang->words['cp_unlocked_warning']}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show unfinished upgrade warning
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warning_upgrade() {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$this->lang->words['cp_upgrade_warning']}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show locked installer present warning
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warning_installer() {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$this->lang->words['cp_installer_warning']}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a warning that an emergency skin rebuild has occurred
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
* @deprecated Don't think this is done/called anymore
|
||||
*/
|
||||
public function warning_rebuild_emergency() {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$this->lang->words['cp_emergency']}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a warning that the rebuild following the upgrade hasn't been completed
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warning_rebuild_upgrade() {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$this->lang->words['cp_warning_rebuild']}
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show form to change details
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function showChangeForm() {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form id='mainform' action='{$this->settings['base_url']}&module=mycp&section=details&do=save' method='post'>
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['mycp_change_details']}</h3>
|
||||
|
||||
<ul class='acp-form'>
|
||||
<li class='head'><label>{$this->lang->words['change_email_details']}</label></li>
|
||||
<li class='acp-row-on'>
|
||||
<label>{$this->lang->words['change__email']}</label>
|
||||
<input class='textinput' type='text' name='email' size='30' />
|
||||
</li>
|
||||
<li class='acp-row-off'>
|
||||
<label>{$this->lang->words['change__email_confirm']}</label>
|
||||
<input class='textinput' type='text' name='email_confirm' size='30' />
|
||||
</li>
|
||||
|
||||
<li class='head'><label>{$this->lang->words['change_pass_details']}</label></li>
|
||||
<li class='acp-row-on'>
|
||||
<label>{$this->lang->words['change__pass']}<span class='desctext'>{$this->lang->words['pw_will_logout']}</span></label>
|
||||
<input class='textinput' type='password' name='password' size='30' />
|
||||
</li>
|
||||
<li class='acp-row-off'>
|
||||
<label>{$this->lang->words['change__pass_confirm']}</label>
|
||||
<input class='textinput' type='password' name='password_confirm' size='30' />
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class='acp-actionbar'>
|
||||
<div class='centeraction'>
|
||||
<input type='submit' value=' {$this->lang->words['change__confirm']} ' class='button primary' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Performance mode skin file
|
||||
* Last Updated: $Date: 2009-04-14 08:05:32 -0400 (Tue, 14 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4455 $
|
||||
*/
|
||||
|
||||
class cp_skin_performance extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the results from toggling the mode
|
||||
*
|
||||
* @access public
|
||||
* @param bool Currently on or off
|
||||
* @param array Actions that were taken
|
||||
* @return string HTML
|
||||
*/
|
||||
public function toggleResults( $current, $actions=array() )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$text = $current ? "<div style='font-weight: bold; color: red; font-size: 22px;'>" . $this->lang->words['perf_on'] . "</div>" : "<div style='font-weight: bold; color: green; font-size: 22px;'>" . $this->lang->words['perf_off'] . "</div>";
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['perf_help_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class='section_info'>
|
||||
{$this->lang->words['perf_help_information']}
|
||||
</div>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['perf_current']}</h3>
|
||||
|
||||
<div class='acp-row_off' style='padding: 10px;'>
|
||||
{$text}
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
if( count($actions) )
|
||||
{
|
||||
$IPBHTML .= "<ul style='list-style: disc; margin-left: 40px'>";
|
||||
foreach( $actions as $action )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<li style='padding: 3px 5px'>
|
||||
{$action}
|
||||
</li>
|
||||
HTML;
|
||||
}
|
||||
$IPBHTML .= "</ul>";
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-actionbar' style='padding-top: 12px'><a href='{$this->settings['base_url']}&{$this->form_code}&do=toggle' class='button'>{$this->lang->words['perf_toggle']}</a></div>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the overview page
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function overview( $current )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$text = $current ? "<div style='font-weight: bold; color: red; font-size: 22px;'>" . $this->lang->words['perf_on'] . "</div>" : "<div style='font-weight: bold; color: green; font-size: 22px;'>" . $this->lang->words['perf_off'] . "</div>";
|
||||
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['perf_help_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class='section_info'>
|
||||
{$this->lang->words['perf_help_information']}
|
||||
</div>
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['perf_current']}</h3>
|
||||
|
||||
<div class='acp-row_off' style='padding: 10px;'>
|
||||
{$text}
|
||||
</div>
|
||||
|
||||
<div class='acp-actionbar' style='padding-top: 12px'><a href='{$this->settings['base_url']}&{$this->form_code}&do=toggle' class='button'>{$this->lang->words['perf_toggle']}</a></div>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Question and answer skin file
|
||||
* Last Updated: $Date: 2009-04-02 11:17:56 -0400 (Thu, 02 Apr 2009) $
|
||||
*
|
||||
* @author $Author: matt $
|
||||
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
|
||||
* @license http://www.iinvisionpower.com/community/board/license.html
|
||||
* @package Invision Power Board
|
||||
* @subpackage Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4393 $
|
||||
*/
|
||||
|
||||
class cp_skin_qanda extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the q&a form
|
||||
*
|
||||
* @access public
|
||||
* @param string Action
|
||||
* @param int ID
|
||||
* @param array Form elements
|
||||
* @param string Button text
|
||||
* @return string HTML
|
||||
*/
|
||||
public function showForm( $do, $id, $form, $button )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['qa_help_title']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='postingform'>
|
||||
<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->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$button}</h3>
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['qa_form_question']}</label>
|
||||
{$form['question']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['qa_form_answers']}</label>
|
||||
{$form['answers']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$button}' class='realbutton' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the overview page
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @return string HTML
|
||||
*/
|
||||
public function overview( $rows )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['qa_help_title']}</h2>
|
||||
<ul class='context_menu'>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}&do=new' title='{$this->lang->words['qa_addlink']}'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/help_add.png' alt='' />
|
||||
{$this->lang->words['qa_addlink']}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
if ( count( $rows ) AND ! $this->settings['registration_qanda'] )
|
||||
{
|
||||
$this->lang->words['qa_not_on_desc'] = sprintf( $this->lang->words['qa_not_on_desc'], $this->settings['base_url'] . $this->form_code .'&do=switchOn' );
|
||||
|
||||
$IPBHTML .= $this->registry->output->global_template->warning_box( $this->lang->words['qa_not_on_title'], $this->lang->words['qa_not_on_desc'] ) . "<br />";
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['qa_current']}</h3>
|
||||
<table class='alternate_rows'>
|
||||
HTML;
|
||||
|
||||
if( count($rows) )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<th width='95%'>{$this->lang->words['qa_form_question']}</th>
|
||||
<th width='5%'>{$this->lang->words['qa_options']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
foreach( $rows as $r )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$r['qa_question']}</td>
|
||||
<td>
|
||||
<img class='ipbmenu' id="menu-{$r['qa_id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['a_options']}' />
|
||||
<ul class='acp-menu' id='menu-{$r['qa_id']}_menucontent'>
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}{$this->form_code}&do=edit&id={$r['qa_id']}'>{$this->lang->words['qa_edit']}</a></li>
|
||||
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}{$this->form_code}&do=remove&id={$r['qa_id']}");'>{$this->lang->words['qa_delete']}</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr><td>{$this->lang->words['qa_none']}</td></tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,506 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Cleanup and rebuild tools skin file
|
||||
* Last Updated: $Date: 2009-11-16 12:37:20 -0500 (Mon, 16 Nov 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 5414 $
|
||||
*/
|
||||
|
||||
class cp_skin_rebuild extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Splash screen of available tools
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function toolsSplashScreen()
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['re_230to300']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='300pms' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_300pms']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>{$this->lang->words['re_300pms_info']}</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_runtool']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['re_20to21']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='210tool_settings' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_dupe2']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>{$this->lang->words['re_dupe2_info']}</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_runtool']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='210calevents' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_events']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>{$this->lang->words['re_events_info']}</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_runtool']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='210polls' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_polls']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>{$this->lang->words['re_polls_info']}</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_runtool']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['re_1xto20']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='tool_settings' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_dupe1']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>{$this->lang->words['re_dupe1_info']}</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_runtool']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='tool_converge' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_converge']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>{$this->lang->words['re_converge_info']}</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_runtool']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='tool_bansettings' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_ban']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>{$this->lang->words['re_ban_info']}</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_runtool']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml//
|
||||
return $IPBHTML;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Rebuild content splash screen
|
||||
*
|
||||
* @access public
|
||||
* @param array Form elements
|
||||
* @param array Sections we can rebuild
|
||||
* @param array Sections we have rebuilt
|
||||
* @return string HTML
|
||||
*/
|
||||
public function rebuildSplashScreen( $form, $rebuildSections, $rebuiltSections )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['re_title']}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='docount' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_stats']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['re_s_total']}</label>
|
||||
{$form['posts']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['re_s_members']}</label>
|
||||
{$form['members']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['re_s_last']}</label>
|
||||
{$form['lastreg']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['re_s_most']}</label>
|
||||
{$form['online']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_stats']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='doresynctopics' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_topics']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_topics']}<span class='desctext'>{$this->lang->words['re_topics_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_topics']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='doresyncforums' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_forums']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_forums']}<span class='desctext'>{$this->lang->words['re_forums_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_forums']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
HTML;
|
||||
|
||||
if( count($rebuildSections) )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='doposts' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_rebuild']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_rebuildbutton']}<span class='desctext'>{$this->lang->words['re_rebuild_info']}</span></label>
|
||||
<div style='overflow:auto'>
|
||||
<ul>
|
||||
<li><input type='radio' name='type' id='type_none' checked='checked' value='0' /> <label style='float:none;' for='type_none'>{$this->lang->words['remenu_none']}</label></li>
|
||||
HTML;
|
||||
|
||||
foreach( $rebuildSections as $section )
|
||||
{
|
||||
$description = '';
|
||||
|
||||
if( in_array( $section[0], $rebuiltSections ) )
|
||||
{
|
||||
$description = "<div class='desctext' style='color:red; margin-left: 28px;'>{$this->lang->words['noneed_rebuild_again']}</div>";
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<li><input type='radio' name='type' id='type_{$section[0]}' value='{$section[0]}' /> <label style='float:none;' for='type_{$section[0]}'>{$section[1]}</label>{$description}</li>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</ul> {$form['pergo']} {$this->lang->words['re_percycle']}</div>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_rebuildbutton']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='dopostnames' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_user']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_user']}<span class='desctext'>{$this->lang->words['re_user_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_user']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='doseousernames' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_seouser']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_seouser']}<span class='desctext'>{$this->lang->words['re_seouser_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_seouser']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='domsgcounts' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_msgcount']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_msgcount']}<span class='desctext'>{$this->lang->words['re_msgcount_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_msgcount']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='dopostcounts' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_count']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_count']}<span class='desctext'>{$this->lang->words['re_count_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_count']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='dophotos' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_pphoto']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_pphoto']}<span class='desctext'>{$this->lang->words['re_pphoto_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_pphoto']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='dothumbnails' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_thumb']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_thumb']}<span class='desctext'>{$this->lang->words['re_thumb_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_thumb']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='doattachdata' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_data']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_data']}<span class='desctext'>{$this->lang->words['re_data_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_data']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='cleanattachments' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_orph']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_orph']}<span class='desctext'>{$this->lang->words['re_orph_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_orph']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='cleanavatars' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_av']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_av']}<span class='desctext'>{$this->lang->words['re_av_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_av']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form><br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='cleanphotos' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['re_uphoto']}</h3>
|
||||
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['re_uphoto']}<span class='desctext'>{$this->lang->words['re_uphoto_info']}</span></label>
|
||||
{$form['pergo']} {$this->lang->words['re_percycle']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['re_uphoto']}' class='button primary' accesskey='s'>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,616 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Report center skin file
|
||||
* Last Updated: $Date: 2009-05-21 16:47:25 -0400 (Thu, 21 May 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4682 $
|
||||
*/
|
||||
|
||||
class cp_skin_reports extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the plugins overview page
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function report_plugin_overview($content) {
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['r_plugmanager']}</h2>
|
||||
<ul class='context_menu'>
|
||||
<li>
|
||||
<a href='{$this->settings['base_url']}&{$this->form_code}&code=create_plugin' title='{$this->lang->words['r_regnew']}'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/plugin_add.png' alt='' />
|
||||
{$this->lang->words['r_regnew']}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['r_regplugins']}</h3>
|
||||
<table class="alternate_rows">
|
||||
<tr>
|
||||
<th width='35%'>{$this->lang->words['r_name']}</th>
|
||||
<th width='20%'>{$this->lang->words['r_author']}</th>
|
||||
<th width='5%' style='text-align: center'>{$this->lang->words['r_enabled']}</th>
|
||||
<th width='5%' style='text-align: center'>{$this->lang->words['r_options']}</th>
|
||||
</tr>
|
||||
{$content}
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a report plugin row
|
||||
*
|
||||
* @access public
|
||||
* @param array Data for the plugin record
|
||||
* @return string HTML
|
||||
*/
|
||||
public function report_plugin_row( $data ) {
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td><strong>{$data['class_title']}
|
||||
EOF;
|
||||
if( $data['pversion'] )
|
||||
{
|
||||
$IPBHTML .= ' ' . $data['pversion'];
|
||||
}
|
||||
$IPBHTML .= <<<EOF
|
||||
</strong><div class='desctext'>{$data['class_desc']}</td>
|
||||
<td>
|
||||
EOF;
|
||||
if( $data['author_url'] != '' )
|
||||
{
|
||||
$IPBHTML .= "<a href=\"{$data['author_url']}\" target=\"_blank\">{$data['author']}</a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= $data['author'];
|
||||
}
|
||||
$IPBHTML .= <<<EOF
|
||||
</td>
|
||||
<td style='text-align: center'>
|
||||
<a href="{$this->settings['base_url']}&{$this->form_code}&code=plugin_toggle&plugin_id={$data['com_id']}" title='{$this->lang->words['r_toggleendis']}'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/{$data['_enabled_img']}' border='0' alt='YN' class='ipd' /></a>
|
||||
</td>
|
||||
<td style='text-align: center'>
|
||||
<img class='ipbmenu' id="menu{$data['com_id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['r_options']}' />
|
||||
<ul class='acp-menu' id='menu{$data['com_id']}_menucontent'>
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}&{$this->form_code}&code=edit_plugin&com_id={$data['com_id']}'>{$this->lang->words['r_editsettings']}</a></li>
|
||||
EOF;
|
||||
if( $data['lockd'] != 1 || IN_DEV == 1 )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}&{$this->form_code}&code=change_plugin&com_id={$data['com_id']}'>{$this->lang->words['r_plugindetails']}</a></li>
|
||||
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&{$this->form_code}&code=remove_plugin&com_id={$data['com_id']}");'>{$this->lang->words['r_removeplugin']}</a></li>
|
||||
EOF;
|
||||
}
|
||||
$IPBHTML .= <<<EOF
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the status overview page
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function report_status_overview($content) {
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type="text/javascript">
|
||||
window.onload = function() {
|
||||
Sortable.create( 'sortable_handle', { revert: true, format: 'status_([0-9]+)', onUpdate: dropItLikeItsHot, handle: 'draghandle' } );
|
||||
};
|
||||
|
||||
dropItLikeItsHot = function( draggableObject, mouseObject )
|
||||
{
|
||||
var options = {
|
||||
method : 'post',
|
||||
parameters : Sortable.serialize( 'sortable_handle', { tag: 'li', name: 'status' } )
|
||||
};
|
||||
|
||||
new Ajax.Request( "{$this->settings['base_url']}&{$this->form_code_js}&do=reorder&md5check={$this->registry->adminFunctions->getSecurityKey()}".replace( /&/g, '&' ), options );
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['r_statmanager']}</h2>
|
||||
|
||||
<ul class='context_menu'>
|
||||
<li><a href='{$this->settings['base_url']}&{$this->form_code}&code=create_status'><img src='{$this->settings['skin_acp_url']}/_newimages/icons/page_add.png' alt=''>{$this->lang->words['r_createnew']}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['r_repstatsev']}</h3>
|
||||
<ul id='sortable_handle'>
|
||||
{$content}
|
||||
</ul>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a status row
|
||||
*
|
||||
* @access public
|
||||
* @param array Status data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function report_status_row( $data ) {
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<li id='status_{$data['status']}'>
|
||||
<table width='100%' cellpadding='0' cellspacing='0' border='0' class='hierarchy double_pad'>
|
||||
<tr class='parent'>
|
||||
<td style='width: 2%; text-align: center'>
|
||||
<div class='draghandle'><img src='{$this->settings['skin_acp_url']}/_newimages/drag_icon.png' alt='' /></div>
|
||||
</td>
|
||||
<td style='width: 61%'>
|
||||
<strong>{$data['title']}</strong>
|
||||
</td>
|
||||
<td style='width: 34%; text-align: right'>
|
||||
<a href="{$this->settings['base_url']}&{$this->form_code}&code=set_status&status=new&id={$data['status']}" title="{$this->lang->words['r_new_report']}"><img src='{$this->settings['skin_acp_url']}/_newimages/report_new_{$data['_is_new']}.png' border='0' alt='{$this->lang->words['r_new_report']}' /></a>
|
||||
<a href="{$this->settings['base_url']}&{$this->form_code}&code=set_status&status=complete&id={$data['status']}" title="{$this->lang->words['r_complete_report']}"><img src='{$this->settings['skin_acp_url']}/_newimages/report_complete_{$data['_is_complete']}.png' border='0' alt='{$this->lang->words['r_complete_report']}' /></a>
|
||||
<a href="{$this->settings['base_url']}&{$this->form_code}&code=set_status&status=active&id={$data['status']}" title="{$this->lang->words['r_active_report']}"><img src='{$this->settings['skin_acp_url']}/_newimages/report_active_{$data['_is_active']}.png' border='0' alt='{$this->lang->words['r_active_report']}' /></a>
|
||||
</td>
|
||||
<td style='width: 3%'>
|
||||
<img class='ipbmenu' id="stat_menu{$data['status']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['a_options']}' />
|
||||
<ul class='acp-menu' id='stat_menu{$data['status']}_menucontent'>
|
||||
<li class='icon add'><a href='{$this->settings['base_url']}&{$this->form_code}&code=add_image&id={$data['status']}'>{$this->lang->words['r_addimg']}</a></li>
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}&{$this->form_code}&code=edit_status&id={$data['status']}'>{$this->lang->words['r_editstatus']}</a></li>
|
||||
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&{$this->form_code}&code=remove_status&id={$data['status']}");'>{$this->lang->words['r_removestatus']}</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
{$data['status_images']}
|
||||
</table>
|
||||
</li>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a report status image
|
||||
*
|
||||
* @access public
|
||||
* @param array Status image data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function report_status_image( $data ) {
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr class='child'>
|
||||
<td> </td>
|
||||
<td style='padding-left: 20px;' colspan='3'>
|
||||
<img class='ipbmenu' id="statimg{$data['id']}" src='{$this->settings['skin_acp_url']}/_newimages/menu_open.png' alt='{$this->lang->words['a_options']}' />
|
||||
<img src='{$this->settings['public_dir']}{$data['img']}' border='0' alt='{$data['points']}' title="{$data['points']}{$this->lang->words['r_points_sufix']}" width="{$data['width']}" height="{$data['height']}" /> {$data['points']} баллов
|
||||
<ul class='acp-menu' id='statimg{$data['id']}_menucontent'>
|
||||
<li class='icon edit'><a href='{$this->settings['base_url']}&{$this->form_code}&code=edit_image&id={$data['id']}'>{$this->lang->words['r_editimg']}</a></li>
|
||||
<li class='icon delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&{$this->form_code}&code=remove_image&id={$data['id']}");'>{$this->lang->words['r_removeimg']}</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the main overview template
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function overview_main_template($content) {
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['r_overview_title']}</h2>
|
||||
<ul class='context_menu'>
|
||||
<li>
|
||||
<a href='{$this->settings['_base_url']}&app=core&module=tools&section=settings&do=setting_view&conf_title_keyword=warnsetup'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/cog.png' alt='' />
|
||||
{$this->lang->words['config_rc_settings']}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['r_overview']}</h3>
|
||||
<table class="alternate_rows">
|
||||
<tr>
|
||||
<td class='tablerow1' width='40%'>{$this->lang->words['r_totalreports']}</td>
|
||||
<td class='tablerow2'>{$content['reports_total']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='tablerow1'>{$this->lang->words['r_totalcomments']}</td>
|
||||
<td class='tablerow2'>{$content['comments_total']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='tablerow1'>{$this->lang->words['r_activeplugins']}</td>
|
||||
<td class='tablerow2'>{$content['active_plugins']} / {$content['total_plugins']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['r_graphstats']}</h3>
|
||||
<table class="alternate_rows">
|
||||
<tr>
|
||||
<td>
|
||||
<img src='{$this->settings['base_url']}&{$this->form_code}&code=chart_report_stats' />
|
||||
<img src='{$this->settings['base_url']}&{$this->form_code}&code=chart_top_moderator' />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form to add/edit a plugin
|
||||
*
|
||||
* @access public
|
||||
* @param array Plugin data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function pluginForm( $plug_data=array() ) {
|
||||
|
||||
//-----------------------------------------
|
||||
// Set some of the form variables
|
||||
//-----------------------------------------
|
||||
|
||||
$secure_key = ipsRegistry::getClass('adminFunctions')->getSecurityKey();
|
||||
|
||||
if( $plug_data['pversion'] )
|
||||
{
|
||||
$plug_data['pversion'] = substr($plug_data['pversion'], 1);
|
||||
}
|
||||
|
||||
$code = 'create_plugin';
|
||||
|
||||
if( $plug_data['class_title'] )
|
||||
{
|
||||
$code = 'change_plugin';
|
||||
}
|
||||
|
||||
$plug_data = (is_array($plug_data) AND count($plug_data)) ? $plug_data : $this->request;
|
||||
|
||||
$form = array();
|
||||
$form['plugi_title'] = $this->registry->output->formInput('plugi_title', $plug_data['class_title']);
|
||||
$form['plugi_version'] = $this->registry->output->formInput('plugi_version', $plug_data['pversion']);
|
||||
$form['plugi_desc'] = $this->registry->output->formInput('plugi_desc', htmlspecialchars($plug_data['class_desc'], ENT_QUOTES));
|
||||
$form['plugi_author_url'] = $this->registry->output->formInput('plugi_author_url', $plug_data['author_url']);
|
||||
$form['plugi_author'] = $this->registry->output->formInput('plugi_author', $plug_data['author']);
|
||||
$form['plugi_file'] = $this->registry->output->formInput('plugi_file', ( $plug_data['my_class'] ? $plug_data['my_class'] : 'default' ));
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>Плагины системы жалоб</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do={$code}&secure_key={$secure_key}' method='post'>
|
||||
<input type='hidden' name='finish' value='1' />
|
||||
<input type='hidden' name='com_id' value='{$plug_data['com_id']}' />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['r_registernew']}</h3>
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_plugintitle']}<span class="desctext">{$this->lang->words['r_whatcall']}</span></label>
|
||||
{$form['plugi_title']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_version']}</label>
|
||||
{$form['plugi_version']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_description']}</label>
|
||||
{$form['plugi_desc']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_authorname']}</label>
|
||||
{$form['plugi_author']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_authorurl']}</label>
|
||||
{$form['plugi_author_url']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_pluginfile']}</label>
|
||||
/admin/applications/core/sources/reportPlugins/ {$form['plugi_file']} .php
|
||||
</li>
|
||||
</ul>
|
||||
<div class="acp-actionbar">
|
||||
<input type='submit' value=' {$this->lang->words['r_save']} ' class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a row
|
||||
*
|
||||
* @access public
|
||||
* @param string Title
|
||||
* @param string Description
|
||||
* @param string Form field
|
||||
* @return string HTML
|
||||
*/
|
||||
public function addRow( $title, $desc='', $form_field='' ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<label>{$title}
|
||||
EOF;
|
||||
|
||||
if( $desc )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<span class='desctext'>{$desc}</span>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</label>
|
||||
{$form_field}
|
||||
</li>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form to "finish" adding the plugin
|
||||
*
|
||||
* @access public
|
||||
* @param array Plugin data
|
||||
* @param array Groups that can report
|
||||
* @param array Groups that can moderate
|
||||
* @param string Extra form data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function finishPluginForm( $plug_data, $sel_can_report, $sel_group_perm, $extraForm ) {
|
||||
|
||||
//-----------------------------------------
|
||||
// Set some of the form variables
|
||||
//-----------------------------------------
|
||||
|
||||
$secure_key = ipsRegistry::getClass('adminFunctions')->getSecurityKey();
|
||||
|
||||
foreach( $this->cache->getCache('group_cache') as $g )
|
||||
{
|
||||
$groups[] = array( $g['g_id'], $g['g_title'] );
|
||||
}
|
||||
|
||||
$form = array();
|
||||
$form['plugi_can_report'] = $this->registry->output->formMultiDropdown('plugi_can_report[]', $groups, $sel_can_report );
|
||||
$form['plugi_gperm'] = $this->registry->output->formMultiDropdown('plugi_gperm[]', $groups, $sel_group_perm);
|
||||
$form['plugi_onoff'] = $this->registry->output->formYesNo('plugi_onoff', $plug_data['onoff']);
|
||||
$form['plugi_lockd'] = $this->registry->output->formYesNo('plugi_lockd', $plug_data['lockd']);
|
||||
$form['plugi_enabled'] = $this->registry->output->formYesNo('plugi_onoff', $plug_data['onoff']);
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do=edit_plugin&secure_key={$secure_key}&com_id={$plug_data['com_id']}' method='post'>
|
||||
<input type='hidden' name='finish' value='1' />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['r_editplugin']}</h3>
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_groups_submit']}<span class="desctext">{$this->lang->words['r_groups_submit_info']}</span></label>
|
||||
{$form['plugi_can_report']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_groups']}<span class="desctext">{$this->lang->words['r_groups_info']}</span></label>
|
||||
{$form['plugi_gperm']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_pluginenabled']}</label>
|
||||
{$form['plugi_enabled']}
|
||||
</li>
|
||||
EOF;
|
||||
|
||||
if( IN_DEV == 1 )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<li>
|
||||
<label>{$this->lang->words['r_safemode']}</label>
|
||||
{$form['plugi_lockd']}
|
||||
</li>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
{$extraForm}
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' {$this->lang->words['r_save']} ' class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form to add/edit a status image
|
||||
*
|
||||
* @access public
|
||||
* @param string Code
|
||||
* @param array Status record
|
||||
* @param array Image data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function imageForm( $code, $status, $image_data=array() ) {
|
||||
|
||||
//-----------------------------------------
|
||||
// Set some of the form variables
|
||||
//-----------------------------------------
|
||||
|
||||
$secure_key = ipsRegistry::getClass('adminFunctions')->getSecurityKey();
|
||||
|
||||
$image_data = ( is_array( $image_data ) && count( $image_data ) ) ? $image_data : $this->request;
|
||||
|
||||
$form = array();
|
||||
$form['img_filename'] = $this->registry->output->formInput('img_filename',str_replace("#", "#", $image_data['img'] ));
|
||||
$form['img_width'] = $this->registry->output->formInput('img_width',$image_data['width']);
|
||||
$form['img_height'] = $this->registry->output->formInput('img_height',$image_data['height']);
|
||||
$form['img_points'] = $this->registry->output->formInput('img_points', $image_data['points']);
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do={$code}&secure_key={$secure_key}' method='post'>
|
||||
<input type='hidden' name='finish' value='1' />
|
||||
<input type='hidden' name='id' value='{$image_data['id']}' />
|
||||
<div class="acp-box">
|
||||
<h3>{$status['title']} : {$this->lang->words['r_confimage']}</h3>
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_image']}<span class='desctext'>{$this->lang->words['r_image_info']}</span></label>
|
||||
{$form['img_filename']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_width']}</label>
|
||||
{$form['img_width']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_height']}</label>
|
||||
{$form['img_height']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_points']}<span class='desctext'>{$this->lang->words['r_points_info']}</span></label>
|
||||
{$form['img_points']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' {$this->lang->words['r_save']} ' class='button primary' />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form to add/edit a status
|
||||
*
|
||||
* @access public
|
||||
* @param string Code
|
||||
* @param array Status data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function statusForm( $code='create_status', $status=array() ) {
|
||||
|
||||
//-----------------------------------------
|
||||
// Set some of the form variables
|
||||
//-----------------------------------------
|
||||
|
||||
$secure_key = ipsRegistry::getClass('adminFunctions')->getSecurityKey();
|
||||
|
||||
$status = ( is_array( $status ) AND count( $status ) ) ? $status : $this->request;
|
||||
|
||||
$form = array();
|
||||
$form['stat_title'] = $this->registry->output->formInput( 'stat_title' ,$status['title'] );
|
||||
$form['stat_ppr'] = $this->registry->output->formInput( 'stat_ppr' ,$status['points_per_report'] );
|
||||
$form['stat_pph'] = $this->registry->output->formInput( 'stat_pph' ,$status['minutes_to_apoint'] );
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form action='{$this->settings['base_url']}&{$this->form_code}&do={$code}&secure_key={$secure_key}' method='post'>
|
||||
<input type='hidden' name='finish' value='1' />
|
||||
<input type='hidden' name='id' value='{$status['status']}' />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['r_' . $code ]}</h3>
|
||||
<ul class='acp-form alternate_rows'>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_name']}<span class='desctext'>{$this->lang->words['r_name_info']}</span></label>
|
||||
{$form['stat_title']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_pointsper']}<span class='desctext'>{$this->lang->words['r_pointsper_info']}</span></label>
|
||||
{$form['stat_ppr']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['r_minutes']}<span class='desctext'>{$this->lang->words['r_minutes_info']}</span></label>
|
||||
{$form['stat_pph']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value=' {$this->lang->words['r_save']} ' class="button primary"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,654 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Security skin file
|
||||
* Last Updated: $Date: 2009-05-21 16:47:25 -0400 (Thu, 21 May 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4682 $
|
||||
*/
|
||||
|
||||
class cp_skin_security extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* List administrators
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @return string HTML
|
||||
*/
|
||||
public function list_admin_overview($rows) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['skin_header_admins']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='20%'>{$this->lang->words['skin_th_name']}</th>
|
||||
<th width='15%'>{$this->lang->words['skin_th_primary_group']}</th>
|
||||
<th width='15%'>{$this->lang->words['skin_th_secondary_group']}</th>
|
||||
<th width='15%'>{$this->lang->words['skin_th_ip']}</th>
|
||||
<th width='20%'>{$this->lang->words['skin_th_email']}</th>
|
||||
<th width='10%'>{$this->lang->words['skin_th_posts']}</th>
|
||||
<th width='5%'> </th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count( $rows ) AND is_array( $rows ) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td><strong>{$row['members_display_name']}</strong><div class='desctext'>{$row['_joined']}</div></td>
|
||||
<td>{$row['_mgroup']}</td>
|
||||
<td>{$row['_mgroup_others']} </td>
|
||||
<td><div class='desctext'>{$row['ip_address']}</div></td>
|
||||
<td>{$row['email']}</td>
|
||||
<td>{$row['posts']}</td>
|
||||
<td><a href='{$this->settings['_base_url']}&app=members&module=members&section=members&do=viewmember&member_id={$row['member_id']}'>{$this->lang->words['skin_edit_member']}</a></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='7' align='center'>{$this->lang->words['skin_log_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Row for list administrator
|
||||
*
|
||||
* @access public
|
||||
* @param array Member data
|
||||
* @return string HTML
|
||||
* @deprecated Seems this is handled by list_admin_overview, maybe?
|
||||
*/
|
||||
public function list_admin_row( $member ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class='tablerow1'>
|
||||
<strong>{$member['members_display_name']}</strong>
|
||||
<div class='desctext'>{$member['_joined']}</div>
|
||||
</td>
|
||||
<td class='tablerow1'>
|
||||
{$member['_mgroup']}
|
||||
</td>
|
||||
<td class='tablerow2'>
|
||||
{$member['_mgroup_others']}
|
||||
</td>
|
||||
<td class='tablerow1'>
|
||||
<div class='desctext'>{$member['ip_address']}</div>
|
||||
</td>
|
||||
<td class='tablerow2'>
|
||||
{$member['email']}
|
||||
</td>
|
||||
<td class='tablerow2'>
|
||||
{$member['posts']}
|
||||
</td>
|
||||
<td class='tablerow1'>
|
||||
<a href='{$this->settings['_base_url']}&app=members&module=members&section=members&do=viewmember&member_id={$member['member_id']}'>{$this->lang->words['skin_edit_member']}</a>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Wrapper to show files checked for anti-virus
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function anti_virus_checked_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<br />
|
||||
<div class='tableborder'>
|
||||
<div class='tableheaderalt'>{$this->lang->words['skin_header_virus']}</div>
|
||||
<table cellpadding='0' cellspacing='0' width='100%'>
|
||||
$content
|
||||
</table>
|
||||
<div align='center' class='tablefooter'> </div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Anti-virus checked file row
|
||||
*
|
||||
* @access public
|
||||
* @param string Path to file
|
||||
* @return string HTML
|
||||
*/
|
||||
public function anti_virus_checked_row( $file_path ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class='tablerow1'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/folder_components/security/checked_folder.png' border='0' alt='-' class='ipd' />
|
||||
$file_path
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Wrapper for bad files from AV checker
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function anti_virus_bad_files_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='tableborder'>
|
||||
<div class='tableheaderalt'>{$this->lang->words['skin_suspicious_files']}</div>
|
||||
<div class='tablesubheader' style='padding-right:0px'>
|
||||
<div align='right' style='padding-right:10px'>
|
||||
{$this->lang->words['skin_th_filesize']}
|
||||
</div>
|
||||
</div>
|
||||
<table cellpadding='0' cellspacing='0' width='100%'>
|
||||
$content
|
||||
</table>
|
||||
<div align='center' class='tablefooter'> </div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Row for bad files in AV checker
|
||||
*
|
||||
* @access public
|
||||
* @param string File path
|
||||
* @param string File name
|
||||
* @param array Data about the file
|
||||
* @return string HTML
|
||||
*/
|
||||
public function anti_virus_bad_files_row( $file_path, $file_name, $data ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class='tablerow1'>
|
||||
<div style='float:right'>
|
||||
<div class='desctext'>({$data['human']}k) {$data['mtime']}</div>
|
||||
</div>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/folder_components/security/bad_file.png' border='0' alt='-' class='ipd' />
|
||||
<span style='border:1px solid #555;background-color:#FFFFFF'>
|
||||
<span style='width:{$data['left_width']}px;background-color:{$data['color']}'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/blank.gif' height='20' width='{$data['left_width']}' alt='' />
|
||||
</span>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/blank.gif' height='20' width='{$data['right_width']}' alt='' />
|
||||
</span>
|
||||
<span class='desctext'>[ {$data['score']} ]</span> <a target='_blank' href='{$this->settings['board_url']}/{$file_path}'>{$file_name}</a>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for files from deep scan
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function deep_scan_bad_files_wrapper($content) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}&do=deep_scan' method='POST'>
|
||||
<div style='padding-bottom:10px'>{$this->lang->words['sec_show']}:
|
||||
<select name='filter'>
|
||||
<option value='all'>{$this->lang->words['sec_show_all']}</option>
|
||||
<option value='score-5'>{$this->lang->words['sec_score_5_or_more']}</option>
|
||||
<option value='score-6'>{$this->lang->words['sec_score_6_or_more']}</option>
|
||||
<option value='score-7'>{$this->lang->words['sec_score_7_or_more']}</option>
|
||||
<option value='score-8'>{$this->lang->words['sec_score_8_or_more']}</option>
|
||||
<option value='score-9'>{$this->lang->words['sec_score_9_or_more']}</option>
|
||||
<option value='large'>{$this->lang->words['sec_files_55k_or_larger']}</option>
|
||||
<option value='recent'>{$this->lang->words['sec_modified_in_the_past_30_days']}</option>
|
||||
</select>
|
||||
<input type='submit' value=' Фильтровать ' />
|
||||
</div>
|
||||
</form>
|
||||
<div class='tableborder'>
|
||||
<div class='tableheaderalt'>{$this->lang->words['sec_executable_files']}</div>
|
||||
<div class='tablesubheader' style='padding-right:0px'>
|
||||
<div align='right' style='padding-right:10px'>
|
||||
{$this->lang->words['sec_file_size']} {$this->lang->words['sec_last_modified']}
|
||||
</div>
|
||||
</div>
|
||||
<table cellpadding='0' cellspacing='0' width='100%'>
|
||||
$content
|
||||
</table>
|
||||
<div align='center' class='tablefooter'> </div>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the row for the bad file from deep scan
|
||||
*
|
||||
* @access public
|
||||
* @param string File path
|
||||
* @param string File name
|
||||
* @param array Data about the bad file record
|
||||
* @return string HTML
|
||||
*/
|
||||
public function deep_scan_bad_files_row( $file_path, $file_name, $data ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td class='tablerow1'>
|
||||
<div style='float:right'>
|
||||
<div class='desctext'>({$data['human']}k) {$data['mtime']}</div>
|
||||
</div>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/folder_components/security/bad_file.png' border='0' alt='-' class='ipd' />
|
||||
<span style='border:1px solid #555;background-color:#FFFFFF'>
|
||||
<span style='width:{$data['left_width']}px;background-color:{$data['color']}'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/blank.gif' height='20' width='{$data['left_width']}' alt='' />
|
||||
</span>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/blank.gif' height='20' width='{$data['right_width']}' alt='' />
|
||||
</span>
|
||||
<span class='desctext'>[ {$data['score']} ]</span> <a target='_blank' href='{$this->settings['board_url']}/{$file_path}'>$file_path</a>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Security tools overview page
|
||||
*
|
||||
* @access public
|
||||
* @param string Content
|
||||
* @return string HTML
|
||||
*/
|
||||
public function securityOverview( $content ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['sec_ipboard_security_center']}</h2>
|
||||
</div>
|
||||
<div class='information-box'>
|
||||
{$this->lang->words['sec_the_security_center_is_a_centr']}<br />
|
||||
{$this->lang->words['sec_your_installation_is_checked_a']}
|
||||
</div>
|
||||
<br />
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['h3_title_security']}</h3>
|
||||
<table cellpadding='0' cellspacing='0' border='0' class='alternate_rows triple_pad'>
|
||||
{$content['bad']}
|
||||
{$content['ok']}
|
||||
{$content['good']}
|
||||
</table>
|
||||
</div>
|
||||
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* "Bad" security item
|
||||
*
|
||||
* @access public
|
||||
* @param string Title
|
||||
* @param string Description
|
||||
* @param string Button text
|
||||
* @param string URL
|
||||
* @param string Unique key
|
||||
* @return string HTML
|
||||
*/
|
||||
public function security_item_bad( $title, $desc, $button, $url, $key ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td style='width: 3%'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/exclamation.png' alt='{$this->lang->words['sec_information']}' />
|
||||
</td>
|
||||
<td style='width: 77%'>
|
||||
<strong>{$title}</strong><br />
|
||||
<span class='desctext'>{$desc}</span>
|
||||
</td>
|
||||
<td style='width: 20%'>
|
||||
<a href='{$this->settings['base_url']}&$url' class='realbutton'>$button</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* "Good" security item
|
||||
*
|
||||
* @access public
|
||||
* @param string Title
|
||||
* @param string Description
|
||||
* @param string Button text
|
||||
* @param string URL
|
||||
* @param string Unique key
|
||||
* @return string HTML
|
||||
*/
|
||||
public function security_item_good( $title, $desc, $button, $url, $key ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td style='width: 3%'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/accept.png' alt='{$this->lang->words['sec_information']}' />
|
||||
</td>
|
||||
<td style='width: 77%'>
|
||||
<strong>{$title}</strong><br />
|
||||
<span class='desctext'>{$desc}</span>
|
||||
</td>
|
||||
<td style='width: 20%'>
|
||||
<a href='{$this->settings['base_url']}&$url' class='realbutton'>$button</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* "Ok" security item
|
||||
*
|
||||
* @access public
|
||||
* @param string Title
|
||||
* @param string Description
|
||||
* @param string Button text
|
||||
* @param string URL
|
||||
* @param string Unique key
|
||||
* @return string HTML
|
||||
*/
|
||||
public function security_item_ok( $title, $desc, $button, $url, $key ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<tr>
|
||||
<td style='width: 3%'>
|
||||
<img src='{$this->settings['skin_acp_url']}/_newimages/icons/warning.png' alt='{$this->lang->words['sec_information']}' />
|
||||
</td>
|
||||
<td style='width: 77%'>
|
||||
<strong>{$title}</strong><br />
|
||||
<span class='desctext'>{$desc}</span>
|
||||
</td>
|
||||
<td style='width: 20%'>
|
||||
<a href='{$this->settings['base_url']}&$url' class='realbutton'>$button</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form to add the htaccess file
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function htaccess_form() {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form id='mainform' method='post' action='{$this->settings['base_url']}&{$this->form_code}&do=acphtaccess_do'>
|
||||
<div class='information-box'>
|
||||
<table cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td width='1%' valign='top'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/folder_components/security/id_card_ok.png' alt='{$this->lang->words['sec_information']}' />
|
||||
</td>
|
||||
<td width='100%' valig='top' style='padding-left:10px'>
|
||||
<h2 style='margin:0px'>{$this->lang->words['sec_acp_htaccess_protection']}</h2>
|
||||
<p style='margin:0px'>
|
||||
<br />
|
||||
{$this->lang->words['sec_invision_power_board_can_write']}
|
||||
<br />
|
||||
<br />
|
||||
<strong>{$this->lang->words['sec_please_note']}</strong>
|
||||
<br />
|
||||
{$this->lang->words['sec_using_this_tool_will_overwrite']}
|
||||
<br />
|
||||
<br />
|
||||
<fieldset>
|
||||
<legend><strong>{$this->lang->words['sec_username']}</strong></legend>
|
||||
<input type='text' name='name' size='40' value='{$_POST['name']}' />
|
||||
</fieldset>
|
||||
<br />
|
||||
<fieldset>
|
||||
<legend><strong>{$this->lang->words['sec_password']}</strong></legend>
|
||||
<input type='password' name='pass' size='40' value='{$_POST['pass']}' />
|
||||
</fieldset>
|
||||
<br />
|
||||
<input type='submit' value=' {$this->lang->words['sec_proceed']} ' />
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show details to manually set htaccess file
|
||||
*
|
||||
* @access public
|
||||
* @param string .htaccess password
|
||||
* @param string .htaccess auth
|
||||
* @return string HTML
|
||||
*/
|
||||
public function htaccess_data( $htaccess_pw, $htaccess_auth ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form id='mainform'>
|
||||
<div class='information-box'>
|
||||
<table cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td width='1%' valign='top'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/folder_components/security/id_card_ok.png' alt='information' />
|
||||
</td>
|
||||
<td width='100%' valig='top' style='padding-left:10px'>
|
||||
<h2 style='margin:0px'>{$this->lang->words['sec_cp_htaccess_protection']}</h2>
|
||||
<p style='margin:0px'>
|
||||
<br />
|
||||
<strong>{$this->lang->words['sec_ipboard_is_unable_to_write_int']}</strong>
|
||||
<br />
|
||||
<br />
|
||||
{$this->lang->words['sec_please_create_a_file_called_ht']}
|
||||
<br />
|
||||
<textarea rows='5' cols='70' style='width:98%;height:100px'>$htaccess_pw</textarea>
|
||||
<br />
|
||||
<br />
|
||||
{$this->lang->words['sec_please_create_a_file_called_ht_1']}
|
||||
<br />
|
||||
<textarea rows='5' cols='70' style='width:98%;height:100px'>$htaccess_auth</textarea>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename admin directory details
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function rename_admin_dir() {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form id='mainform'>
|
||||
<div class='information-box'>
|
||||
<table cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td width='1%' valign='top'>
|
||||
<img src='{$this->settings['skin_acp_url']}/images/folder_components/security/id_card_ok.png' alt='{$this->lang->words['sec_information']}' />
|
||||
</td>
|
||||
<td width='100%' valig='top' style='padding-left:10px'>
|
||||
<h2 style='margin:0px'>{$this->lang->words['sec_renaming_the_cp_sitecontrol_di']}</h2>
|
||||
<p style='margin:0px'>
|
||||
<br />
|
||||
{$this->lang->words['sec_ipboard_has_a_dedicated_direct']}
|
||||
<br />
|
||||
<br />
|
||||
<strong>{$this->lang->words['sec_step_1']}</strong>
|
||||
<br />
|
||||
{$this->lang->words['sec_first_youll_need_to_physically']}
|
||||
<br/ >
|
||||
{$this->lang->words['sec_locate_the_admin_directory_cho']}
|
||||
<br />
|
||||
<br />
|
||||
<strong>Step 2:</strong>
|
||||
{$this->lang->words['sec_locate_the_initdataphp_file_th']}
|
||||
<br />{$this->lang->words['sec_near_the_top_of_this_file_youl']}
|
||||
<br />
|
||||
<pre>//--------------------------------------------------------------------------
|
||||
// USER CONFIGURABLE ELEMENTS: PATHS & FOLDER NAMES
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* CP_DIRECTORY
|
||||
*
|
||||
* The name of the CP directory
|
||||
* @since 2.0.0.2005-01-01
|
||||
*/
|
||||
define( 'CP_DIRECTORY', 'admin' );</pre>
|
||||
|
||||
<br />
|
||||
{$this->lang->words['sec_change_the_line_define_cp_dire']}
|
||||
<br />
|
||||
<br />
|
||||
<strong>{$this->lang->words['sec_your_cp_directory_has_now_been']}</strong>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,256 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Setup skin file
|
||||
* Last Updated: $Date: 2009-06-18 19:43:48 -0400 (Thu, 18 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4790 $
|
||||
*/
|
||||
|
||||
class cp_skin_setup extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect screen for app setup
|
||||
*
|
||||
* @access public
|
||||
* @param array Output pieces
|
||||
* @param array Error pieces
|
||||
* @param string Next URL to redirect to
|
||||
* @return string HTML
|
||||
*/
|
||||
public function setup_redirectScreen( $output, $errors, $next_url ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$text = ( strtolower($this->request['type']) == 'install' ) ? $this->lang->words['type__installation'] : $this->lang->words['type__upgradet'];
|
||||
|
||||
$this->lang->words['type__text'] = sprintf( $this->lang->words['type__text'], $text );
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='information-box'>
|
||||
<h2>{$this->lang->words['ipboard_setup_title']}</h2>
|
||||
<p style='font-size:12px'>
|
||||
<br />
|
||||
<strong>{$this->lang->words['ipboard_welcome_setup']}</strong>
|
||||
<br />
|
||||
{$this->lang->words['type__text']}
|
||||
<br />
|
||||
<br />
|
||||
EOF;
|
||||
if ( is_array( $errors ) AND count( $errors ) )
|
||||
{
|
||||
$IPBHTML .= "<strong>{$this->lang->words['error__display']}</strong><br /><br />";
|
||||
|
||||
foreach( $errors as $msg )
|
||||
{
|
||||
$IPBHTML .= "<span style='color:red'>· " . $msg . "</span><br />";
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='input-ok-content' style='margin-left:60px;padding:15px;width:300px'>
|
||||
<strong><a href='{$next_url}'>{$this->lang->words['error__continue']}</a></strong>
|
||||
</div>
|
||||
EOF;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( is_array( $output ) AND count( $output ) )
|
||||
{
|
||||
$IPBHTML .= "<strong>{$this->lang->words['progress_report']}</strong><br /><br />";
|
||||
|
||||
foreach( $output as $msg )
|
||||
{
|
||||
$IPBHTML .= "<span style='color:green'>· " . $msg . "</span><br />";
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<script type='text/javascript'>
|
||||
|
||||
setTimeout("redirect()",1500);
|
||||
|
||||
function redirect()
|
||||
{
|
||||
var url_bit = "{$next_url}";
|
||||
acp.redirect( url_bit.replace( new RegExp( "&", "g" ) , '&' ), true );
|
||||
}
|
||||
|
||||
//>
|
||||
</script>
|
||||
<div class='input-ok-content' style='margin-left:60px;padding:15px;width:300px'>
|
||||
<strong><a href='$next_url'>{$this->lang->words['redir__continue']}</a></strong>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the finished screen for app setup
|
||||
*
|
||||
* @access public
|
||||
* @param array Data
|
||||
* @param string Type of setup
|
||||
* @return string HTML
|
||||
*/
|
||||
public function setup_completed_screen( $data, $type ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$text = ( $type == 'install' ) ? $this->lang->words['type__installation'] : $this->lang->words['type__upgradet'];
|
||||
$lang = sprintf( $this->lang->words['type__text_finished'], $text );
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='information-box'>
|
||||
<h2>{$data['title']} {$text}</h2>
|
||||
<p style='font-size:12px'>
|
||||
<br />
|
||||
<strong>{$this->lang->words['ipboard_welcome_setup']}</strong>
|
||||
<br />
|
||||
{$lang}
|
||||
<br /><br />
|
||||
<a href='{$this->settings['base_url']}app=core&module=applications'><b>{$this->lang->words['return_to_overview']}</b></a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the splash start screen for app setup
|
||||
*
|
||||
* @access public
|
||||
* @param array Data
|
||||
* @param array Errors
|
||||
* @param string Setup type
|
||||
* @return string HTML
|
||||
*/
|
||||
public function setup_splash_screen( $data, $errors, $type ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
$has_errors = 0;
|
||||
$text = ( $type == 'install' ) ? $this->lang->words['install_latest'] : $this->lang->words['upgrade_latest'];
|
||||
$prefix = ( $type == 'install' ) ? $this->lang->words['type__install'] : $this->lang->words['type__upgrade'];
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['ipboard_setup_title']}</h2>
|
||||
</div>
|
||||
|
||||
EOF;
|
||||
|
||||
if ( is_array( $errors ) AND count( $errors ) )
|
||||
{
|
||||
$has_errors = 1;
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='warning'>
|
||||
<h4>{$this->lang->words['please_correct_errors']}</h4>
|
||||
EOF;
|
||||
|
||||
foreach( $errors as $msg )
|
||||
{
|
||||
$IPBHTML .= $msg . "<br />";
|
||||
}
|
||||
|
||||
$IPBHTML .= "</div><br />";
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
<form action="{$this->settings['base_url']}&{$this->form_code}&do=sql&app_directory={$data['app_directory']}&type={$type}&version={$data['next_version']}" method='post'>
|
||||
<div class='acp-box'>
|
||||
<h3>{$prefix} {$data['title']} {$this->lang->words['applications_title']}</h3>
|
||||
<table class='form_table alternate_rows double_pad'>
|
||||
<tr>
|
||||
<td style='width: 40%'>
|
||||
<strong>{$this->lang->words['current_version']}</strong>
|
||||
</td>
|
||||
<td style='width: 60%'>
|
||||
{$data['current_version']}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{$prefix} {$this->lang->words['version_suffix']}</strong>
|
||||
</td>
|
||||
<td>
|
||||
{$data['latest_version']}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{$this->lang->words['author_suffix']}</strong>
|
||||
</td>
|
||||
<td>
|
||||
{$data['author']}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{$this->lang->words['duplicate_tables']}</strong>
|
||||
</td>
|
||||
<td>
|
||||
<select name='dupe_tables' id='dupeTables'>
|
||||
<option value='skip'>{$this->lang->words['dup__skip']}</option>
|
||||
<option value='drop'>{$this->lang->words['dup__drop']}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
EOF;
|
||||
if( !$has_errors )
|
||||
{
|
||||
$IPBHTML .= <<<EOF
|
||||
<div class='acp-actionbar'>
|
||||
<input type='submit' value='{$this->lang->words['continue_button']}' class='realbutton' />
|
||||
</div>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<EOF
|
||||
</div>
|
||||
</form>
|
||||
EOF;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Error log skin file
|
||||
* Last Updated: $Date$
|
||||
*
|
||||
* @author $Author$
|
||||
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
|
||||
* @license http://www.iinvisionpower.com/community/board/license.html
|
||||
* @package Invision Power Board
|
||||
* @subpackage Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision$
|
||||
*/
|
||||
|
||||
class cp_skin_spamlogs extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
public function spamServiceTest( $result )
|
||||
{
|
||||
$IPBHTML = "";
|
||||
|
||||
if( $result == 'DEBUG_MODE_SUCCESFUL_API_TEST' )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='information-box'>
|
||||
<b>{$this->lang->words['slog_api_connected']}</b>
|
||||
</div>
|
||||
HTML;
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='information-box warning'>
|
||||
<b>{$this->lang->words['slog_api_failed']}: {$result}</b>
|
||||
</div>
|
||||
HTML;
|
||||
}
|
||||
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Spam log wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function spamlogsWrapper( $rows, $links ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<script type='text/javascript' src='{$this->settings['js_main_url']}acp.forms.js'></script>
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='remove' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['slog_spamlogs']}</h3>
|
||||
<table class='alternate_rows' width='100%'>
|
||||
<tr>
|
||||
<th width='5%'>{$this->lang->words['slog_list_id']}</th>
|
||||
<th width='25%'>{$this->lang->words['slog_list_date']}</th>
|
||||
<th width='15%'>{$this->lang->words['slog_list_code']}</th>
|
||||
<th width='25%'>{$this->lang->words['slog_list_msg']}</th>
|
||||
<th width='15%'>{$this->lang->words['slog_list_email']}</th>
|
||||
<th width='10%'>{$this->lang->words['slog_list_ip']}</th>
|
||||
<th width='3%'><input type='checkbox' title="{$this->lang->words['my_checkall']}" id='checkAll' /></th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count( $rows ) AND is_array( $rows ) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['id']}</td>
|
||||
<td>{$row['_time']}</td>
|
||||
<td>{$row['log_code']}: {$this->lang->words['slog_response_'.$row['log_code']]}</td>
|
||||
<td>{$row['log_msg']}</td>
|
||||
<td>{$row['email_address']}</td>
|
||||
<td>{$row['ip_address']}</td>
|
||||
<td><input type='checkbox' name='id_{$row['id']}' value='1' class='checkAll' /></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='7' align='center'>{$this->lang->words['slog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class='leftaction'>
|
||||
{$links}
|
||||
</div>
|
||||
<div class='rightaction'>
|
||||
<input type="checkbox" id="checkbox" name="type" value="all" /> {$this->lang->words['erlog_removeall']} <input type="submit" value="{$this->lang->words['erlog_removechecked']}" class="button primary" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Spiderlogs skin file
|
||||
* Last Updated: $Date: 2009-02-04 15:03:36 -0500 (Wed, 04 Feb 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 3887 $
|
||||
*/
|
||||
|
||||
class cp_skin_spiderlogs extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Spider logs wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param array Spider log rows
|
||||
* @return string HTML
|
||||
*/
|
||||
public function spiderlogsWrapper( $rows ) {
|
||||
|
||||
$form = array();
|
||||
|
||||
$form['search_for'] = $this->registry->output->formInput( "search_string" );
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['slog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['slog_thelogs']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='20%'>{$this->lang->words['slog_botname']}</th>
|
||||
<th width='20%'>{$this->lang->words['slog_hits']}</th>
|
||||
<th width='20%'>{$this->lang->words['slog_last']}</th>
|
||||
<th width='20%'>{$this->lang->words['slog_viewall']}</th>
|
||||
<th width='20%'>{$this->lang->words['slog_removeall']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['_bot_name']}</td>
|
||||
<td>{$row['cnt']}</td>
|
||||
<td>{$row['_time']}</td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=view&bid={$row['_bot_url']}'>{$this->lang->words['slog_view']}</a></td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=remove&bid={$row['_bot_url']}'>{$this->lang->words['slog_remove']}</a></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='6' align='center'>{$this->lang->words['slog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='view' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['slog_search']}</h3>
|
||||
<p align="center">{$this->lang->words['slog_searchfor']} {$form['search_for']}{$this->lang->words['slog_searchquery']}</p>
|
||||
<div class="acp-actionbar">
|
||||
<input value="{$this->lang->words['slog_searchbutton']}" class="button primary" accesskey="s" type="submit" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* View a single spider's log entry
|
||||
*
|
||||
* @access public
|
||||
* @param array Rows
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function spiderlogsView( $rows, $pages ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['slog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['slog_thelogs']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='25%'>{$this->lang->words['slog_botname']}</th>
|
||||
<th width='25%'>{$this->lang->words['slog_querystring']}</th>
|
||||
<th width='25%'>{$this->lang->words['slog_time']}</th>
|
||||
<th width='25%'>{$this->lang->words['slog_ip']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['_bot_name']}</td>
|
||||
<td>{$row['_query_string']}</td>
|
||||
<td>{$row['_time']}</td>
|
||||
<td>{$row['ip_address']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='6' align='center'>{$this->lang->words['slog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class="actionleft">{$pages}</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,451 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* SQL Toolbox skin file
|
||||
* Last Updated: $Date: 2009-05-20 21:25:47 -0400 (Wed, 20 May 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4680 $
|
||||
*/
|
||||
|
||||
class cp_skin_sql extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Search index splash page
|
||||
*
|
||||
* @access public
|
||||
* @param array Table data
|
||||
* @param array Searchable applications
|
||||
* @return string HTML
|
||||
*/
|
||||
public function sqlSearchIndex( $table_data, $searchable_apps ){
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['my_si_data']}</h3>
|
||||
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['my_si_rows']}</label>
|
||||
{$table_data['Rows']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['my_si_datasize']}</label>
|
||||
{$table_data['Data_length']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['my_si_indexsize']}</label>
|
||||
{$table_data['Index_length']}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br />
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['my_si_searchable']}</h3>
|
||||
|
||||
<ul class="acp-form alternate_rows">
|
||||
HTML;
|
||||
|
||||
foreach( $searchable_apps as $key => $data )
|
||||
{
|
||||
$data['entries'] = intval($data['entries']);
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<li>
|
||||
<label>{$data['title']} <span class='desctext'>{$data['entries']} {$this->lang->words['my_si_entries']}</span></label>
|
||||
<a href='{$this->settings['base_url']}{$this->form_code}&do=rebuild_app_search_index&app_key={$key}'>{$this->lang->words['my_si_clickrebuild']}</a>
|
||||
</li>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</ul>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Result from running an SQL tool
|
||||
*
|
||||
* @access public
|
||||
* @param string Page title
|
||||
* @param array Columns
|
||||
* @param array Rows
|
||||
* @return string HTML
|
||||
*/
|
||||
public function sqlToolResult( $title, $columns, $rows ) {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='acp-box'>
|
||||
<h3>{$title}</h3>
|
||||
|
||||
<table class='alternate_rows real-table'>
|
||||
<tr>
|
||||
HTML;
|
||||
|
||||
foreach( $columns as $r )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<th width='*'>{$r}</th>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
HTML;
|
||||
|
||||
foreach( $rows as $r )
|
||||
{
|
||||
$num = $num == 1 ? 2 : 1;
|
||||
$IPBHTML .= <<<HTML
|
||||
<td>{$r}</td>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the header for an SQL tool result
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function sqlToolResultHeader() {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$title = sprintf( $this->lang->words['my_title'], $this->true_version );
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$title}</h2>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Splash screen to create an SQL backup
|
||||
*
|
||||
* @access public
|
||||
* @return string HTML
|
||||
*/
|
||||
public function sqlSafeBackupSplashScreen() {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$title = sprintf( $this->lang->words['my_backuptitle'], $this->true_version );
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$title}</h2>
|
||||
</div>
|
||||
|
||||
<div class='acp-box with_bg'>
|
||||
<h3>{$this->lang->words['my_simple_backup']}</h3>
|
||||
|
||||
<p>{$this->lang->words['my_simple_backup']}</p>
|
||||
<p>{$this->lang->words['my_simple_text']}</p>
|
||||
<p><b><a href='{$this->settings['base_url']}{$this->form_code}&do=dosafebackup&create_tbl={$this->request['create_tbl']}&addticks={$this->request['addticks']}&skip={$this->request['skip']}&enable_gzip={$this->request['enable_gzip']}'>{$this->lang->words['my_start_backup']}</a></b></p>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form to create an SQL backup
|
||||
*
|
||||
* @access public
|
||||
* @param array Form elements
|
||||
* @return string HTML
|
||||
*/
|
||||
public function sqlBackupForm( $form ) {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$title = sprintf( $this->lang->words['my_backuptitle'], $this->true_version );
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$title}</h2>
|
||||
</div>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='safebackup' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['my_simple_backup']}</h3>
|
||||
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['my_createtable']}</label>
|
||||
{$form['create_tbl']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['my_backticks']} <span class='desctext'>{$this->lang->words['my_iferror']}</span></label>
|
||||
<input type='checkbox' name='addticks' value='1' />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['my_skinnoness']} <span class='desctext'>{$this->lang->words['my_skinnoness_notes']}</span></label>
|
||||
{$form['skip']}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{$this->lang->words['my_gzipcontent']} <span class='desctext'>{$this->lang->words['my_gzipnotes']}</span></label>
|
||||
{$form['enable_gzip']}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="acp-actionbar"><input type='submit' value='{$this->lang->words['my_start_backup']}' class='realbutton' accesskey='s' /></div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* View results from executing an SQL query
|
||||
*
|
||||
* @access public
|
||||
* @param array Queries
|
||||
* @param array Headers for the queries
|
||||
* @param array Rows from the queries
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function sqlViewResults( $queries, $headers, $rows, $pages ) {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$query = implode( ";\n", $queries );
|
||||
|
||||
$title = sprintf( $this->lang->words['my_title'], $this->true_version );
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$title}</h2>
|
||||
</div>
|
||||
HTML;
|
||||
|
||||
//-----------------------------------------
|
||||
// When coming from db checker/index checker, won't be set
|
||||
//-----------------------------------------
|
||||
|
||||
if( $this->form_code )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='runsql' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box with_bg'>
|
||||
<h3>{$this->lang->words['my_run']}</h3>
|
||||
<textarea name='query' cols='40' rows='5'>{$query}</textarea>
|
||||
<div class='acp-actionbar'><input type='submit' value='{$this->lang->words['my_runnew']}' class='realbutton' accesskey='s' /></div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
HTML;
|
||||
}
|
||||
|
||||
foreach( $queries as $index => $aQuery )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<div>{$pages}</div>
|
||||
|
||||
<div class='acp-box clear'>
|
||||
<h3>{$this->lang->words['my_results']}</h3>
|
||||
|
||||
<table class='alternate_rows real-table'>
|
||||
<tr>
|
||||
HTML;
|
||||
|
||||
if( count($headers[ $index ]) )
|
||||
{
|
||||
foreach( $headers[ $index ] as $r )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<th width='*'>{$r}</th>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows[ $index ]) )
|
||||
{
|
||||
foreach( $rows[ $index ] as $r )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
HTML;
|
||||
|
||||
foreach( $r as $_r )
|
||||
{
|
||||
$num = ( $num == 1 ) ? 2 : 1;
|
||||
$IPBHTML .= <<<HTML
|
||||
<td>{$_r}</td>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style='margin-top: 2px;'>{$pages}</div>
|
||||
<br />
|
||||
HTML;
|
||||
}
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the database tables (SQL Toolbox homepage)
|
||||
*
|
||||
* @access public
|
||||
* @param array Tables
|
||||
* @return string HTML
|
||||
*/
|
||||
public function sqlListTables( $rows ) {
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$title = sprintf( $this->lang->words['my_title'], $this->true_version );
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$title}</h2>
|
||||
</div>
|
||||
|
||||
<script type='text/javascript' src='{$this->settings['js_main_url']}acp.forms.js'></script>
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theForm' id='theForm'>
|
||||
<input type='hidden' name='do' value='dotool' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['my_tables']}</h3>
|
||||
|
||||
<table class='alternate_rows'>
|
||||
<tr>
|
||||
<th width='20%'>{$this->lang->words['my_table']}</th>
|
||||
<th width='10%'>{$this->lang->words['my_rows']}</th>
|
||||
<th width='10%'>{$this->lang->words['my_export']}</th>
|
||||
<th width='10%'><input id='checkAll' type="checkbox" title="{$this->lang->words['my_checkall']}" /></th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
foreach( $rows as $r )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>
|
||||
<b><span style='font-size:12px'><a href='{$this->settings['base_url']}{$this->form_code}&do=runsql&query={$r['query']}'>{$r['table']}</a></span></b>
|
||||
</td>
|
||||
<td>{$r['rows']}</td>
|
||||
<td><a href='{$this->settings['base_url']}{$this->form_code}&do=export_tbl&tbl={$r['table']}'>{$this->lang->words['my_export']}</a></b></td>
|
||||
<td><input name="tbl_{$r['table']}" value='1' type='checkbox' class='checkAll' /></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class='rightaction'>
|
||||
<select name='tool'>
|
||||
<option value='optimize'>{$this->lang->words['my_optimize']}</option>
|
||||
<option value='repair'>{$this->lang->words['my_repair']}</option>
|
||||
<option value='check'>{$this->lang->words['my_check']}</option>
|
||||
<option value='analyze'>{$this->lang->words['my_analyze']}</option>
|
||||
</select>
|
||||
<input type='submit' value='{$this->lang->words['my_go']}' class='realbutton' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='runsql' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class='acp-box'>
|
||||
<h3>{$this->lang->words['my_run']}</h3>
|
||||
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['my_manadvanced']}</label>
|
||||
<textarea name='query' cols='40' rows='5'></textarea>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class='acp-actionbar'><input type='submit' value='{$this->lang->words['my_run']}' class='realbutton' accesskey='s' /></div>
|
||||
</div>
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,325 @@
|
||||
<?php
|
||||
/**
|
||||
* Invision Power Services
|
||||
* IP.Board v3.0.5
|
||||
* Warn log skin file
|
||||
* Last Updated: $Date: 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 Core
|
||||
* @link http://www.iinvisionpower.com
|
||||
* @since Friday 19th May 2006 17:33
|
||||
* @version $Revision: 4333 $
|
||||
*/
|
||||
|
||||
class cp_skin_warnlogs extends output
|
||||
{
|
||||
|
||||
/**
|
||||
* Prevent our main destructor being called by this class
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Warn logs wrapper
|
||||
*
|
||||
* @access public
|
||||
* @param array Records
|
||||
* @param array Members
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warnlogsWrapper( $rows, $members ) {
|
||||
|
||||
$form_array = array(
|
||||
0 => array( 'notes' , $this->lang->words['wlog_notes'] ),
|
||||
1 => array( 'contact' , $this->lang->words['wlog_emailpm'] ),
|
||||
);
|
||||
$form = array();
|
||||
|
||||
$form['search_for'] = $this->registry->output->formInput( "search_string" );
|
||||
$form['search_in'] = $this->registry->output->formDropdown( "search_type", $form_array );
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['wlog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['wlog_last10']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='10%'>{$this->lang->words['wlog_type']}</th>
|
||||
<th width='25%'>{$this->lang->words['wlog_warned']}</th>
|
||||
<th width='15%' style='text-align: center'>{$this->lang->words['wlog_wascontacted']}</th>
|
||||
<th width='25%'>{$this->lang->words['wlog_date']}</th>
|
||||
<th width='25%'>{$this->lang->words['wlog_warnedby']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['_type']}</td>
|
||||
<td>{$row['_a_name']}</td>
|
||||
<td style='text-align: center'>{$row['_cont']}</td>
|
||||
<td>{$row['_date']}</td>
|
||||
<td>{$row['p_name']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='6' align='center'>{$this->lang->words['wlog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['wlog_thelogs']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='30%'>{$this->lang->words['wlog_member']}</th>
|
||||
<th width='20%'>{$this->lang->words['wlog_times']}</th>
|
||||
<th width='20%'>{$this->lang->words['wlog_viewall']}</th>
|
||||
<th width='30%'>{$this->lang->words['wlog_removeall']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($members) AND is_array($members) )
|
||||
{
|
||||
foreach( $members as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['members_display_name']}</td>
|
||||
<td>{$row['act_count']}</td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=view&mid={$row['wlog_mid']}'>{$this->lang->words['wlog_viewlog']}</a></td>
|
||||
<td><a href='{$this->settings['base_url']}&{$this->form_code}&do=remove&mid={$row['wlog_mid']}'>{$this->lang->words['wlog_remove']}</a></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='4' align='center'>{$this->lang->words['wlog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<form action='{$this->settings['base_url']}{$this->form_code}' method='post' name='theAdminForm' id='theAdminForm'>
|
||||
<input type='hidden' name='do' value='view' />
|
||||
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->generated_acp_hash}' />
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['wlog_search']}</h3>
|
||||
<ul class="acp-form alternate_rows">
|
||||
<li>
|
||||
<label>{$this->lang->words['wlog_searchfor']}</label>
|
||||
{$form['search_for']}
|
||||
</li>
|
||||
<li>
|
||||
<label>{$this->lang->words['wlog_searchin']}</label>
|
||||
{$form['search_in']}
|
||||
</li>
|
||||
</ul>
|
||||
<div class="acp-actionbar">
|
||||
<input value="{$this->lang->words['wlog_searchbutton']}" class="button primary" accesskey="s" type="submit" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* View an individual member's log
|
||||
*
|
||||
* @access public
|
||||
* @param array Log rows
|
||||
* @param string Page links
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warnlogsView( $rows, $pages ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class='section_title'>
|
||||
<h2>{$this->lang->words['wlog_title']}</h2>
|
||||
</div>
|
||||
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['wlog_thelogs']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<th width='5%'>{$this->lang->words['wlog_type']}</th>
|
||||
<th width='15%'>{$this->lang->words['wlog_member']}</th>
|
||||
<th width='10%'>{$this->lang->words['wlog_wascontacted']}</th>
|
||||
<th width='10%'>{$this->lang->words['wlog_modq']}</th>
|
||||
<th width='10%'>{$this->lang->words['wlog_susp']}</th>
|
||||
<th width='10%'>{$this->lang->words['wlog_nopost']}</th>
|
||||
<th width='15%'>{$this->lang->words['wlog_date']}</th>
|
||||
<th width='15%'>{$this->lang->words['wlog_warnedby']}</th>
|
||||
<th width='10%'>{$this->lang->words['wlog_viewnotes']}</th>
|
||||
</tr>
|
||||
HTML;
|
||||
|
||||
if( count($rows) AND is_array($rows) )
|
||||
{
|
||||
foreach( $rows as $row )
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td>{$row['_type']}</td>
|
||||
<td>{$row['_a_name']}</td>
|
||||
<td>{$row['_cont']}</td>
|
||||
<td>{$row['_mod']}</td>
|
||||
<td>{$row['_susp']}</td>
|
||||
<td>{$row['_post']}</td>
|
||||
<td>{$row['_date']}</td>
|
||||
<td>{$row['p_name']}</td>
|
||||
<td><a href='#' onclick='return acp.openWindow("{$this->settings['base_url']}&{$this->form_code}&do=viewnote&id={$row['wlog_id']}",400,400,"{$this->lang->words['wlog_log']}"); return false;'>{$this->lang->words['wlog_viewlog']}</a></td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$IPBHTML .= <<<HTML
|
||||
<tr>
|
||||
<td colspan='9' align='center'>{$this->lang->words['wlog_noresults']}</td>
|
||||
</tr>
|
||||
HTML;
|
||||
}
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
</table>
|
||||
<div class='acp-actionbar'>
|
||||
<div class="leftaction">{$pages}</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* View a member's warn log note
|
||||
*
|
||||
* @access public
|
||||
* @param array Note data
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warnlogsNote( $row ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class="acp-box">
|
||||
<h3>{$this->lang->words['wlog_warnnotes']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['wlog_log_from']}</td>
|
||||
<td>{$row['p_name']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['wlog_log_to']}</td>
|
||||
<td>{$row['a_name']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['wlog_log_sent']}</td>
|
||||
<td>{$row['_date']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2'>{$row['_text']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
HTML;
|
||||
|
||||
//--endhtml--//
|
||||
return $IPBHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* View contact information for a warn log
|
||||
*
|
||||
* @access public
|
||||
* @param array Warn log details
|
||||
* @return string HTML
|
||||
*/
|
||||
public function warnlogsContact( $row ) {
|
||||
|
||||
$IPBHTML = "";
|
||||
//--starthtml--//
|
||||
|
||||
$IPBHTML .= <<<HTML
|
||||
<div class="acp-box">
|
||||
<h3>{$row['_type']}: {$row['_subject']}</h3>
|
||||
<table class="alternate_rows" width='100%'>
|
||||
<tr>
|
||||
<td width='15%'><strong>{$this->lang->words['wlog_log_from']}</strong></td>
|
||||
<td>{$row['p_name']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['wlog_log_to']}</td>
|
||||
<td>{$row['a_name']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['wlog_log_sent']}</td>
|
||||
<td>{$row['_date']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='15%'>{$this->lang->words['wlog_log_subject']}</td>
|
||||
<td>{$row['_subject']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2'>{$row['_text']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
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>␍
|
||||
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* IPS Template Skin Diff Thingy
|
||||
* (c) Invision Power Services, Inc
|
||||
* @author Matt Mecham
|
||||
*/
|
||||
|
||||
|
||||
/* Log Tray */
|
||||
#diffLowDrawInner
|
||||
{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
background-color: #FFFFFF;
|
||||
background-repeat: repeat-x;
|
||||
border: 1px solid #5b5b5b;
|
||||
width: 500px;
|
||||
}
|
||||
#diffLowDrawInner table
|
||||
{
|
||||
height: 120px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#diffDone
|
||||
{
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
font-weight:bold;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#diffLogText
|
||||
{
|
||||
width: 96%;
|
||||
height: 45px;
|
||||
padding:10px;
|
||||
font-size:22px;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
font-weight:bold;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/* Progress Bar */
|
||||
#diffLogProgressBar
|
||||
{
|
||||
border: 1px solid #5b5b5b;
|
||||
background-color: #2B2B2B;
|
||||
width: 200px;
|
||||
height: 15px;
|
||||
padding-top:0px;
|
||||
padding-bottom:2px;
|
||||
padding-right:5px;
|
||||
padding-left:0px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
|
||||
#diffLogProgressBarInner
|
||||
{
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
height:14px;
|
||||
width:68%;
|
||||
background-image: url("images/icon_components/templates/diff/progressbar.gif");
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
#diffStatusImage
|
||||
{
|
||||
float:left;
|
||||
margin-top: -4px;
|
||||
margin-left: 115px;
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* IPS Template Skin Search And Replace Thingy
|
||||
* (c) Invision Power Services, Inc
|
||||
* @author Matt Mecham
|
||||
*/
|
||||
|
||||
|
||||
/* Log Tray */
|
||||
#SandRLowDrawInner
|
||||
{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
background-color: #FFFFFF;
|
||||
background-repeat: repeat-x;
|
||||
border: 1px solid #5b5b5b;
|
||||
width: 500px;
|
||||
}
|
||||
#SandRLowDrawInner table
|
||||
{
|
||||
height: 120px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#SandRDone
|
||||
{
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
font-weight:bold;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#SandRLogText
|
||||
{
|
||||
width: 96%;
|
||||
height: 45px;
|
||||
padding:10px;
|
||||
font-size:22px;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
font-weight:bold;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/* Progress Bar */
|
||||
#SandRLogProgressBar
|
||||
{
|
||||
border: 1px solid #5b5b5b;
|
||||
background-color: #2B2B2B;
|
||||
width: 200px;
|
||||
height: 15px;
|
||||
padding-top:0px;
|
||||
padding-bottom:2px;
|
||||
padding-right:5px;
|
||||
padding-left:0px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
|
||||
#SandRLogProgressBarInner
|
||||
{
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
height:14px;
|
||||
width:68%;
|
||||
background-image: url("images/icon_components/templates/sandr/progressbar.gif");
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
#SandRStatusImage
|
||||
{
|
||||
float:left;
|
||||
margin-top: -4px;
|
||||
margin-left: 115px;
|
||||
}
|
||||
Reference in new issue
Block a user