<?php 
 
include($_SERVER['DOCUMENT_ROOT']."/classes/import_templates/import_templates.php"); 
 
 
function microtime_float() { 
 
   list($usec, $sec) = explode(" ", microtime()); 
 
   return ((float)$usec + (float)$sec); 
 
} 
 
$time_start = microtime_float();
 
 
class Banner_builder extends Import_templates {
 
    
 
    var $thumbs = array();
 
    var $num_records;
 
    
 
    function get_latest_template_id() {
 
        $last = $this->last_template_id();
 
        $this->settings['delim'] = DELIMITER;
 
        $this->settings['order'] = "desc";
 
        $this->settings['from'] = $last - 1;
 
        $options = $this->build_options($this->settings);
 
        if ($this->get_records(REMOTE_HOST."templates_screenshots4.php".$options)) {
 
            $tpl_num = substr($this->all_data[0], 0, strpos($this->all_data[0], DELIMITER));
 
            unset($this->all_data); 
 
            return $tpl_num;
 
        } else {
 
            $this->messages[] = $this->error_list(20);
 
            return;
 
        }
 
    }
 
    // filter = 1 (website templates only) check the webapi specs for more info
 
    function get_banner_thumbdata($start, $end = "", $filter = 1) {
 
        $this->settings['delim'] = DELIMITER;
 
        $this->settings['from'] = $start;
 
        if ($end != "") $this->settings['to'] = $end;
 
        $this->settings['filter'] = $filter;
 
        $this->settings['list_begin'] = LIST_BEGIN;
 
        $this->settings['list_delim'] = LIST_DELIM;
 
        $this->settings['list_end'] = LIST_END;
 
        $this->settings['full_path'] = "false";
 
        $this->settings['currency'] = CURRENCY;
 
        $this->import_data(SS_TABLE, "templates_screenshots4.php", "yes");
 
    }
 
    function copy_banner_thumbs($first) {
 
        $last = $this->last_template_id();
 
        $tpl_ids = $this->get_new_tpl_ids($first, $last);
 
        if (mysql_num_rows($tpl_ids) > 0) {
 
            $counter = 0;
 
            while ($tpl = mysql_fetch_object($tpl_ids)) {
 
                if (!$this->copy_thumbs($tpl->id, true)) $counter++;
 
            }
 
            if ($counter == 0) {
 
                $this->messages[] = $this->error_list(50);
 
            } else {
 
                $this->messages[] = $this->error_list(24, $counter);
 
            }
 
        }
 
    }
 
    function get_rand_thumb_ids($limit) {
 
        $thumb_ids = array();
 
        $sql= sprintf("SELECT id FROM %s ORDER BY RAND()", SS_TABLE);
 
        $result = mysql_query($sql);
 
        while ($obj = mysql_fetch_object($result)) {
 
            $thumb_ids[] = $obj->id;
 
        }
 
        $thumb_rand_array = array_rand($thumb_ids, $limit);
 
        $id_string = "";
 
        foreach ($thumb_rand_array as $val) {
 
            $id_string .= "'".$thumb_ids[$val]."', ";
 
        }
 
        $id_string = rtrim($id_string, ", ");
 
        return $id_string;
 
    }
 
    function create_thumb_data($limit = 3) {
 
        $search_in = $this->get_rand_thumb_ids($limit);
 
        $sql = sprintf("SELECT id, price FROM %s WHERE id IN (%s) ORDER BY date_added", SS_TABLE, $search_in);
 
        $result = mysql_query($sql);
 
        if (!$result) {
 
            $this->messages[] = $this->error_list(13);
 
        } else {
 
            $this->num_records = mysql_num_rows($result);
 
            while($obj = mysql_fetch_object($result)) {
 
                $this->thumbs['thumb'][] = $obj->id."-m.jpg";
 
                $this->thumbs['price'][] = $obj->price;
 
                $this->thumbs['id'][] = $obj->id;
 
            }
 
            mysql_free_result($result);
 
        }
 
    }
 
}
 
 
$test_banner = new Banner_builder;
 
$max_records = 20;
 
$last_id = $test_banner->get_latest_template_id();
 
if (isset($_POST['Submit'])) {
 
    if (intval($_POST['start_num']) == 0 || $_POST['start_num'] > $last_id) {
 
        $test_banner->messages[] = "The value in the field <b>Starting template ID</b> is not valid.";
 
    } else {
 
        if (intval($_POST['end_num'] > 0) && $_POST['end_num'] < $last_id) {
 
            if ($_POST['end_num'] > $_POST['start_num']) {
 
                if (($_POST['end_num'] - $_POST['start_num']) <= $max_records) {
 
                    $start = $_POST['start_num'];
 
                    $end = $_POST['end_num'];
 
                    $test_banner->get_banner_thumbdata($start, $end); // use this function to update the template data
 
                    $test_banner->delete_old_thumbs(); // first remove the old thumbs
 
                    $test_banner->copy_banner_thumbs($start); // this function will copy the thumbbails. 
 
                } else {
 
                    $test_banner->messages[] = "You're above the maximum of templates that the script at once.";
 
                }
 
            } else {
 
                $test_banner->messages[] = "The ending ID must be smaller the starting ID number.";
 
            }
 
        } elseif ($_POST['end_num'] == "") {
 
            $start = $_POST['start_num'];
 
            $end = "";
 
            $test_banner->get_banner_thumbdata($start, $end);
 
            $test_banner->delete_old_thumbs(); // first remove the old thumbs
 
            $test_banner->copy_banner_thumbs($start); 
 
        } else {
 
            $test_banner->messages[] = "The value in the field <b>Ending template ID</b> is not valid.";
 
        }
 
    }
 
}                
 
    
 
$test_banner->create_thumb_data(4); // create 4 thumbnails
 
 
$time_end = microtime_float();
 
$time = $time_end - $time_start;
 
?>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
<title>Example page: Build banners with data from templateMonster.com</title>
 
<style type="text/css">
 
<!--
 
body {
 
    font:0.9em Verdana, Arial, Helvetica, sans-serif;
 
    margin:10px;
 
    text-align:center;
 
}
 
#thumb {
 
    width: 160px;
 
    height:200px;
 
    border: 1px solid #333333;
 
    padding:0;
 
    float: left;
 
    margin-right:10px;
 
    text-align:center;
 
}
 
#thumb p {
 
    background-color:#CCCCCC;
 
    border-bottom:2px solid #333333;
 
    margin:0 0 10px 0;
 
    line-height:25px;
 
}
 
#container {
 
    width: 740px;
 
    margin:0 auto;
 
    text-align:left;
 
    border:1px solid #999999;
 
    padding:10px;
 
}
 
label {
 
    display:block;
 
    float:left;
 
    width:155px;
 
    text-align:right;
 
    margin-right:5px;
 
}
 
-->
 
</style>
 
<script type="text/javascript">
 
<!--
 
function window_open(page, name, x, y) {
 
    newWindow = window.open(page,name,'scrollbars=yes,width='+x+',height='+y+',left=50,top=100');
 
    newWindow.focus();     
 
}
 
if (opener.location.href == document.referrer) { 
 
    window.resizeTo(800,800);
 
}
 
-->
 
</script>
 
</head>
 
 
<body>
 
<div id="container">
 
<h2 style="margin-top:15px;">Processing template data for a random banner</h2>
 
<p>This example show some random templates based on some selected templates stored in the database. <br>
 
The thumbnail location is local and the preview data is on a remote location. </p>
 
<p><i>Use this form to update some template data. </i><br>
 
Enter a template ID as start number and an end number, the end number must be smaller then the start number and the the last one. <br>
 
The maximum number of templates which can be handled by executing this script is: <b><?php echo $max_records; ?></b> templates</p>
 
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 
  <p><label>Starting template ID</label>
 
  <input name="start_num" type="text" size="5" value="<?php if (isset($_POST['start_num'])) echo $_POST['start_num']; ?>"></p>
 
  <p><label>Ending template ID</label>
 
  <input name="end_num" type="text" size="5" value="<?php if (isset($_POST['end_num'])) echo $_POST['end_num']; ?>">
 
  <input type="submit" name="Submit" value="Submit"> 
 
  (last template ID is <b><?php echo $last_id; ?></b>)</p>
 
</form>
 
<?php 
 
echo "<p style=\"color:red;\">".$test_banner->show_messages("<br>\n")." </p>\n"; 
 
if (isset($test_banner->num_records)) {
 
    echo "<h3>Example output:</h3>\n";
 
    for ($i = 0; $i < $test_banner->num_records; $i++) {
 
        $image = THUMB_FOLDER.$test_banner->thumbs['thumb'][$i];
 
        $img_size = getimagesize($_SERVER['DOCUMENT_ROOT'].$image);
 
        $tpl_price = $test_banner->thumbs['price'][$i];
 
        $tpl_id = $test_banner->thumbs['id'][$i];
 
        $url = htmlspecialchars("http://www.templatehelp.com/aff/preview.php?aff=olaf&apr=yes&src=yes&nt=yes&help=yes&sample=yes&faq=yes&nmg=yes&auth=yes&down=yes&hide_flash=0&i=".$tpl_id);
 
        echo "
 
        <div id=\"thumb\">
 
          <p><b>Price: $".$tpl_price."</b></p>
 
          <a href=\"#\" onClick=\"window_open('".$url."', 'preview', 780, 540)\"><img src=\"".$image."\" ".$img_size[3]." border=\"0\"></a>
 
        </div>\n";
 
    }
 
} // end output example
 
echo "<br clear=\"all\">\n";
 
echo "<p><br><br>The script's execution time was ".number_format($time, 4, ".", "")." seconds...<br></p>\n";
 
?>
 
<p><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Refresh this page!</a> (to notice the random effect)</p>
 
</div>
 
<p style="margin-top:20px;">More classes and scripts on: <a href="http://www.finalwebsites.com/snippets.php">www.finalwebsites.com</a></p>
 
 
</body>
 
</html>
 
 
 |