Skin -> Templates pop up functions
| > Module written by Matt Mecham
| > Date started: 9th July 2002
|
| > Module Version Number: 1.0.0
+--------------------------------------------------------------------------
*/
if ( ! defined( 'IN_ACP' ) )
{
print "
Incorrect access
You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
exit();
}
$idx = new ad_settings();
class ad_settings {
var $base_url;
function ad_settings() {
global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
//---------------------------------------
// Kill globals - globals bad, Homer good.
//---------------------------------------
$tmp_in = array_merge( $_GET, $_POST, $_COOKIE );
foreach ( $tmp_in as $k => $v )
{
unset($$k);
}
//---------------------------------------
switch($IN['code'])
{
case 'preview':
$this->do_preview();
break;
case 'edit_bit':
$this->edit_bit();
break;
case 'macro_one':
$this->macro_one();
break;
case 'macro_two':
$this->macro_two();
break;
case 'compare':
$this->compare_frames();
break;
case 'dotop':
$this->print_compare_top();
break;
case 'donew':
$this->print_compare_new();
break;
//-----------------------------
case 'search':
$this->search_frames();
break;
case 'searchbox':
$this->print_search_box();
break;
case 'searchlinks':
$this->print_searchlinks();
break;
//-----------------------------
case 'css_search':
$this->css_search_frames();
break;
case 'csssearchlinks':
$this->print_css_searchlinks();
break;
case 'previewstate':
$this->do_message("Preview Window");
break;
//-------------------------
case 'css_preview':
$this->css_preview();
break;
default:
exit();
break;
}
}
//+---------------------------------------
function css_search_frames()
{
global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS;
print "
Search
";
exit();
}
//+---------------------------------------
function css_preview()
{
global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS;
//+---------------------------------------
// GET THE TEMPLATES THAT THIS CSS USES
//+---------------------------------------
$DB->query("SELECT css_text, css_name FROM ibf_css WHERE cssid='".$IN['id']."'");
if ( ! $set = $DB->fetch_row() )
{
$ADMIN->error("Cannot query the database using that information");
}
$DB->query("SELECT img_dir FROM ibf_skins WHERE css_id='".$IN['id']."'");
$skin = $DB->fetch_row();
$element = trim(stripslashes($HTTP_GET_VARS['element']));
list($type, $name) = explode( "|", $element );
$like = "class='{$name}'";
$first = '.';
if ($type == 'id')
{
$like = "id='{$name}'";
$first = '#';
}
preg_match( "/($first"."$name)\s{0,}\{(.+?)\}/s", $set['css_text'], $match );
//$definition = nl2br( str_replace( "\n\n", "\n", str_replace( "\r\n", "\n", $match[2]) ) );
//preg_match_all( "/(\S+?):(.+?);?/s", trim($match[2]), $defs );
$defs = explode( ";", str_replace( "\n\n", "\n", str_replace( "\r\n", "\n", trim($match[2]) ) ) );
$def_output = "";
foreach($defs as $bit)
{
list($type, $value) = explode( ":", trim($bit) );
$type = trim($type);
$value = trim($value);
if ($type != "" and $value != "")
{
$extra = "";
if ($type == 'color' or $type == 'background-color')
{
$extra = " ";
}
$def_output .= "
$type
$value $extra
\n";
}
}
$css = "\n";
$html = "
CSS Preview
$css
Preview CSS Element '$name' From style sheet '{$set['css_name']}'
Preview
Cozy Lummux Gives Smart Squid Who Asks For Job Pen ([Indeed!])
Formatted CSS Definition
$def_output
";
print $html;
exit();
}
//+---------------------------------------
//+---------------------------------------
function print_css_searchlinks()
{
global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS;
//+---------------------------------------
// GET THE TEMPLATES THAT THIS CSS USES
//+---------------------------------------
$DB->query("SELECT set_id FROM ibf_skins WHERE css_id='".$IN['id']."'");
if ( ! $set = $DB->fetch_row() )
{
$ADMIN->error("Cannot query the database using that information");
}
$element = trim(stripslashes($HTTP_GET_VARS['element']));
list($type, $name) = explode( "|", $element );
$like = "class=_{$name}";
if ($type == 'id')
{
$like = "id=_{$name}";
}
require './sources/Admin/skin_info.php';
//die("SELECT suid, set_id, group_name, func_name FROM ibf_skin_templates WHERE set_id='".$set['tmpl_id']."' AND section_content LIKE '%".$like."%' ORDER BY group_name");
$DB->query("SELECT suid, set_id, group_name, func_name FROM ibf_skin_templates WHERE set_id='".$set['set_id']."' AND section_content LIKE '%".$like."%' ORDER BY group_name");
if (! $DB->get_num_rows() )
{
$this->do_message("No matches for that string in template set ID {$set['set_id']}");
}
$results = array();
while ( $r = $DB->fetch_row() )
{
if ( ! isset($result[ $r['group_name'] ]) )
{
$result[ $r['group_name'] ] = array();
}
$result[ $r['group_name'] ][] = array( 'suid' => $r['suid'], 'func_name' => $r['func_name'] );
}
$ADMIN->html .= $SKIN->start_table();
$ADMIN->html .= $SKIN->add_td_row( array( "Search Results" ) , 'title' );
foreach( $result as $group_name => $sub_array )
{
if ( isset($skin_names[ $group_name ]) )
{
$group_name = $skin_names[ $group_name ][0];
}
$ADMIN->html .= $SKIN->add_td_row( array( "$group_name" ) , 'catrow' );
if (is_array($sub_array) and count($sub_array) > 0 )
{
foreach( $sub_array as $idx => $data )
{
$ADMIN->html .= $SKIN->add_td_row( array( "+ {$data['func_name']}" ) );
}
}
}
$ADMIN->html .= $SKIN->end_table();
$ADMIN->print_popup();
}
//+---------------------------------------
//+---------------------------------------
function print_searchlinks()
{
global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS;
if ($IN['bypass'] == 1)
{
$this->do_message("No Search Results");
}
$search_text = trim($this->unconvert_tags(stripslashes($HTTP_POST_VARS['search'])));
$search_text = str_replace( "\$", "\\$", $search_text);
$search_text = str_replace( "'" , "\\'", $search_text);
if ($search_text == "")
{
$this->do_message("Please enter a string to search");
}
require './sources/Admin/skin_info.php';
$DB->query("SELECT set_id FROM ibf_skin_templates WHERE suid='".$IN['suid']."'");
$set = $DB->fetch_row();
$DB->query("SELECT suid, set_id, group_name, func_name FROM ibf_skin_templates WHERE set_id='".$set['set_id']."' AND section_content LIKE '%$search_text%' ORDER BY group_name");
if (! $DB->get_num_rows() )
{
$this->do_message("No matches for that string");
}
$results = array();
while ( $r = $DB->fetch_row() )
{
if ( ! isset($result[ $r['group_name'] ]) )
{
$result[ $r['group_name'] ] = array();
}
$result[ $r['group_name'] ][] = array( 'suid' => $r['suid'], 'func_name' => $r['func_name'] );
}
$ADMIN->html .= $SKIN->start_table();
$ADMIN->html .= $SKIN->add_td_row( array( "Search Results" ) , 'title' );
foreach( $result as $group_name => $sub_array )
{
if ( isset($skin_names[ $group_name ]) )
{
$group_name = $skin_names[ $group_name ][0];
}
$ADMIN->html .= $SKIN->add_td_row( array( "$group_name" ) , 'catrow' );
if (is_array($sub_array) and count($sub_array) > 0 )
{
foreach( $sub_array as $idx => $data )
{
$ADMIN->html .= $SKIN->add_td_row( array( "+ {$data['func_name']}" ) );
}
}
}
$ADMIN->html .= $SKIN->end_table();
$ADMIN->print_popup();
}
//+---------------------------------------
function do_message($message="")
{
global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
$ADMIN->html = "