Login   Register  
PHP Classes
elePHPant
Icontem

File: get_banner_data.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Olaf Lederer  >  Import templates  >  get_banner_data.php  >  Download  
File: get_banner_data.php
Role: Application script
Content type: text/plain
Description: example file to handle TM data for banners
Class: Import templates
Import data about TemplateMonster.com templates
Author: By
Last change:
Date: 2005-08-15 03:00
Size: 8,318 bytes
 

Contents

Class file image Download
<?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], 0strpos($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->idtrue)) $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();
        
$sqlsprintf("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']) == || $_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")."&nbsp;</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($time4".""")." 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>