Help Control functions
| > Module written by Matt Mecham
| > Date started: 2nd April 2002
|
| > Module Version Number: 1.0.0
+--------------------------------------------------------------------------
*/
$idx = new ad_settings();
class ad_settings {
var $base_url;
function ad_settings() {
global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
switch($IN['code'])
{
case 'wrapper':
$this->list_wrappers();
break;
case 'add':
$this->do_form('add');
break;
case 'edit':
$this->do_form('edit');
break;
case 'doadd':
$this->save_wrapper('add');
break;
case 'doedit':
$this->save_wrapper('edit');
break;
case 'remove':
$this->remove();
break;
case 'export':
$this->export();
//-------------------------
default:
$this->list_wrappers();
break;
}
}
function export()
{
global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
if ($IN['id'] == "")
{
$ADMIN->error("You must specify an existing wrapper ID, go back and try again");
}
//+-------------------------------
$DB->query("SELECT * from ibf_templates WHERE tmid='".$IN['id']."'");
if ( ! $row = $DB->fetch_row() )
{
$ADMIN->error("Could not query the information from the database");
}
//+-------------------------------
$archive_dir = $INFO['base_dir']."/archive_out";
require $root_dir."sources/lib/tar.php";
if (!is_dir($archive_dir))
{
$ADMIN->error("Could not locate $archive_dir, is the directory there?");
}
if (!is_writeable($archive_dir))
{
$ADMIN->error("Cannot write in $archive_dir, CHMOD via FTP to 0755 or 0777 to enable this script to write into it. IBF cannot do this for you");
}
//+-------------------------------
// Attempt to copy the files to the
// working directory...
//+-------------------------------
$l_name = preg_replace( "/\s{1,}/", "_", $row['name'] );
$file_name = "wrap-".$l_name.".html";
$row['template'] = preg_replace("/\r/", "\n", $row['template'] );
$FH = fopen($archive_dir."/".$file_name, 'w');
fwrite($FH, $row['template'], strlen($row['template']));
fclose($FH);
$ADMIN->done_screen("Wrapper Export Created
You can download the html resource here", "Manage Board Wrappers", "act=wrap" );
}
//-------------------------------------------------------------
// REMOVE WRAPPERS
//-------------------------------------------------------------
function remove()
{
global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS;
//+-------------------------------
if ($IN['id'] == "")
{
$ADMIN->error("You must specify an existing wrapper ID, go back and try again");
}
$DB->query("DELETE FROM ibf_templates WHERE tmid='".$IN['id']."'");
$std->boink_it($SKIN->base_url."&act=wrap");
exit();
}
//-------------------------------------------------------------
// ADD / EDIT WRAPPERS
//-------------------------------------------------------------
function save_wrapper( $type='add' )
{
global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS;
//+-------------------------------
if ($type == 'edit')
{
if ($IN['id'] == "")
{
$ADMIN->error("You must specify an existing wrapper ID, go back and try again");
}
}
if ($IN['name'] == "")
{
$ADMIN->error("You must specify a name for this wrapper");
}
if ($IN['template'] == "")
{
$ADMIN->error("You can't have an empty template, can you?");
}
$tmpl = preg_replace( "!</textarea>!", "/textarea>", stripslashes($HTTP_POST_VARS['template']) );
if ( ! preg_match( "/<% BOARD %>/", $tmpl ) )
{
$ADMIN->error("You cannot remove the <% BOARD %> tag silly!");
}
if ( ! preg_match( "/<% COPYRIGHT %>/", $tmpl ) )
{
$ADMIN->error("You cannot remove the <% COPYRIGHT %> tag silly!");
}
$barney = array( 'name' => stripslashes($HTTP_POST_VARS['name']),
'template' => $tmpl
);
if ($type == 'add')
{
$db_string = $DB->compile_db_insert_string( $barney );
$DB->query("INSERT INTO ibf_templates (".$db_string['FIELD_NAMES'].") VALUES(".$db_string['FIELD_VALUES'].")");
$std->boink_it($SKIN->base_url."&act=wrap");
exit();
}
else
{
$db_string = $DB->compile_db_update_string( $barney );
$DB->query("UPDATE ibf_templates SET $db_string WHERE tmid='".$IN['id']."'");
$ADMIN->done_screen("Wrapper updated", "Manage Board Wrappers", "act=wrap" );
}
}
//-------------------------------------------------------------
// ADD / EDIT WRAPPERS
//-------------------------------------------------------------
function do_form( $type='add' )
{
global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
//+-------------------------------
if ($IN['id'] == "")
{
$ADMIN->error("You must specify an existing wrapper ID, go back and try again");
}
$DB->query("SELECT * from ibf_templates WHERE tmid='".$IN['id']."'");
if ( ! $row = $DB->fetch_row() )
{
$ADMIN->error("Could not query the information from the database");
}
if ($type == 'add')
{
$code = 'doadd';
$button = 'Create Wrapper';
$row['name'] = $row['name'].".2";
}
else
{
$code = 'doedit';
$button = 'Edit Wrapper';
}
//+-------------------------------
$ADMIN->page_detail = "You may use HTML fully when adding or editing wrappers.";
$ADMIN->page_title = "Manage Board Wrappers";
//+-------------------------------
$ADMIN->html .= $SKIN->js_no_specialchars();
$ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , $code ),
2 => array( 'act' , 'wrap' ),
3 => array( 'id' , $IN['id'] ),
), "theAdminForm", "onSubmit=\"return no_specialchars('wrapper')\"" );
//+-------------------------------
$SKIN->td_header[] = array( " " , "20%" );
$SKIN->td_header[] = array( " " , "80%" );
//+-------------------------------
$row['template'] = preg_replace( "/\/textarea>/", "</textarea>", $row['template'] ); // Stop html killing the text area
$ADMIN->html .= $SKIN->start_table( $button );
$ADMIN->html .= $SKIN->add_td_row( array(
"Wrapper Title",
$SKIN->form_input('name', $row['name']),
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"Content",
$SKIN->form_textarea('template', $row['template'], "60", "15"),
) );
$ADMIN->html .= $SKIN->end_form($button);
$ADMIN->html .= $SKIN->end_table();
//+-------------------------------
//+-------------------------------
$ADMIN->output();
}
//-------------------------------------------------------------
// SHOW WRAPPERS
//-------------------------------------------------------------
function list_wrappers()
{
global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
$form_array = array();
$ADMIN->page_detail = "You may add/edit and remove the board wrapper templates.
Board wrapper refers to the main board template which allows additional HTML to be added to the header and footer of the board";
$ADMIN->page_title = "Manage Board Wrappers";
//+-------------------------------
$SKIN->td_header[] = array( "Title" , "40%" );
$SKIN->td_header[] = array( "Allocation" , "30%" );
$SKIN->td_header[] = array( "Export" , "10%" );
$SKIN->td_header[] = array( "Edit" , "10%" );
$SKIN->td_header[] = array( "Remove" , "10%" );
//+-------------------------------
$DB->query("SELECT DISTINCT(w.tmid), w.name, s.sname from ibf_templates w, ibf_skins s WHERE s.tmpl_id=w.tmid ORDER BY w.name ASC");
$used_ids = array();
$show_array = array();
if ( $DB->get_num_rows() )
{
$ADMIN->html .= $SKIN->start_table( "Current Wrappers In Use" );
while ( $r = $DB->fetch_row() )
{
$show_array[ $r['tmid'] ] .= stripslashes($r['sname'])."
";
if ( in_array( $r['tmid'], $used_ids ) )
{
continue;
}
$ADMIN->html .= $SKIN->add_td_row( array( "".stripslashes($r['name'])."",
"<#X-{$r['tmid']}#>",
"