All pastes #136597 Raw Edit

Stuff

public php v1 · immutable
#136597 ·published 2006-08-17 19:55 UTC
rendered paste body
<?phpdefine ('ROOT',"./");define ('PUN_DEBUG',"1");define ('SCREENSHOTS_FOLDER', "./sshots/");require ROOT."functions.php";include ROOT."include/common.php";$version = "1.0";$xml_file_location = "t_info.xml";$tm_config["debug"]=false;$tm_config['local_screenshots']=false;//downloads file with http if remote locationif (substr($xml_file_location, 0, 4)=='http'){   get_file1($xml_file_location,"./","t_info.zip");   $xml_file_location="./t_info.zip";}//unzip file if is zipif (substr($xml_file_location, -3)=='zip'){   $xml_file_location= extract_here($xml_file_location);}//makes a SimpleXML object with xml stringif (file_exists($xml_file_location)) {//   $xml = simplexml_load_file($xmlfile);   $tmp = file_get_contents($xml_file_location);   $tmp = str_replace('encoding="utf-8"', 'encoding="ISO-8859-15"', $tmp);   $xml = new SimpleXMLElement($tmp);} else {   exit('Failure openning the file : '.$xml_file_location.'.');}//update categoriesupdate_cats();//update authorsupdate_authors();//update stylesupdate_styles();//makes an array with existent templates$tms = array();$res = $db->query("SELECT id_tm FROM tm_index LIMIT 0,20000");while ($data = $db->fetch_assoc($res))   $tms[] = $data['id_tm'];//makes an array with existant keywords$kws = array();$res = $db->query("SELECT id_keyword, label_en FROM tm_keywords_index LIMIT 0,20000");while ($data = $db->fetch_assoc($res))   $kws[$data['label_en']] = $data['id_keyword'];//loops on one template's xml dataforeach ($xml->template as $tm){   //if templates doesn't exist in the database   if (!in_array($tm->id, $tms)) //insert it      $action = "INSERT INTO";   else //update it   {      $action = "UPDATE";      $condition = "WHERE `id_tm` = '".$tm->id."'";   }         //template insert sql query string   $insert_tm = $action." `tm_index` SET    `id_tm`='".$tm->id."',   `state`='".$tm->state."',   `is_hosting`='".$tm->is_hosting."',   `is_flash`='".$tm->is_flash."',   `is_unique`='".$tm->is_unique."',   `is_non_unique`='".$tm->is_non_unique."',   `is_unique_corporate`='".$tm->is_unique_corporate."',   `is_full_site`='".$tm->is_full_site."',   `is_real_size`='".$tm->is_real_size."',   `id_author`='".$tm->author->author_id."',   `id_type`='".$tm->template_type->type_id."',   `price`='".$tm->price."' ".$condition.";";   //sql query   $db->query($insert_tm) or error('Impossible to insert template<br />'.$insert_tm.mysql_error(), __FILE__, __LINE__, $db->error());       //template details insert sql query string   $insert_tm_details = $action." `tm_details` SET   `id_tm`='".$db->insert_id()."',   `exc_price`='".$tm->exc_price."',   `downloads`='".$tm->downloads."',   `inserted_date`='".$tm->inserted_date."',   `software_required`='".$tm->is_non_unique."' ".$condition.";";   //sql query   $db->query($insert_tm_details) or error('Impossible to insert template details<br />'.$insert_tm_details.mysql_error(), __FILE__, __LINE__, $db->error());       //makes an array with template's keywords   $tm_kw = explode(" ", $tm->keywords);   //loops on template's key array   foreach ($tm_kw as $kw)   {            $kw = str_ireplace("\n", " ", trim($db->escape($kw)));      if ($kw == "realtor\nhorizontalmenu")         echo 'cla';      //if keywords exists in database, inserts the template/keyword link      if (array_key_exists($kw,$kws))      {         $sql = "INSERT INTO tm_keywords SET id_tm = ".$tm->id.", id_keyword = ".$kws[$kw];         $db->query($sql) or die ($sql.mysql_error());      }      //or create the keyword_index and insert link      else      {         $sql = "INSERT INTO tm_keywords_index SET label_en = '".$kw."'";         $db->query($sql) or die ($sql.mysql_error());         $kwid = $db->insert_id();         $sql = "INSERT INTO tm_keywords SET id_tm = ".$tm->id.", id_keyword = '".$kwid."'";         $db->query($sql) or die ($sql.mysql_error());         //adds keyword to cached keywords         $kws[$kw] = $kwid;         //insert translation task here      }   }       //if template does not exist   if ($action == "INSERT INTO")   {            //adds style links      foreach ($tm->styles->style as $style)          tm_add_style($style->style_id, $tm->id);      //adds category links      foreach ($tm->categories->category as $cat)          tm_add_cat($cat->category_id, $tm->id);        // don't blame me blame because there is redundant information in xml please !      //basically, we are making one array of all templates screenshots      $screenshots = array();      foreach ($tm->screenshots_list->screenshot as $screenshoot)      {         $rel_uri = trim(str_ireplace('http://images.templatemonster.com/screenshots/','',$screenshoot->uri));         $screenshots[$rel_uri]['filemtime'] = mktimestamp($screenshoot->filemtime);         $screenshots[$rel_uri]['id_page'] = 0;         $screenshots[$rel_uri]['uri'] = $rel_uri;      }      foreach ($tm->pages->page as $page)      {         //get page id to use         $sql = "SELECT id_page, label_en FROM tm_pages WHERE label_en='".$db->escape($page->name)."'";         $res_pages = $db->query($sql) or error('Impossible to fetch pages'.$sql, __FILE__, __LINE__, $db->error());         if ($db->num_rows($res_pages)<1)         {            $db->query("INSERT INTO tm_pages SET label_en='".$db->escape($page->name)."'") or die(mysql_error()."<br>"."INSERT INTO tm_pages SET label_en='".$db->escape($page->name)."'");            $id_page = $db->insert_id();         }         else         {            $local_tmp = $db->fetch_assoc($res_pages);            $id_page = $local_tmp['id_page'];         }         //got page id         foreach($page->screenshots->scr as $scr)         {            $rel_uri = trim(str_ireplace('http://images.templatemonster.com/screenshots/','',$scr->uri));            $screenshots[$rel_uri]['id_tm'] = $tm->id;            $screenshots[$rel_uri]['id_page'] = $id_page;            $screenshots[$rel_uri]['description'] = strtolower($scr->description);            $screenshots[$rel_uri]['scr_type_id'] = $scr->scr_type_id;            $screenshots[$rel_uri]['width'] = $scr->width;            $screenshots[$rel_uri]['height'] = $scr->height;            $screenshots[$rel_uri]['href'] = $scr->href;            $screenshots[$rel_uri]['uri'] = $rel_uri;         }      }      //Finally, we got these redundant information sorted, painfull isn't it ?            //loops in screenshots array :      foreach($screenshots as $sshot)      {         //makes screenshot insertion sql query script         $order = "INSERT INTO `tm_screenshots`";         $id_page = ($sshot['id_page']>0)?"`id_page` = '".$sshot['id_page']."', ":"";         $sql = $order.' SET         '.$id_page.'         `id_tm` = "'.$tm->id.'",         `scr_type_id` = "'.$sshot['scr_type_id'].'",         `width` = "'.$sshot['width'].'",         `height` = "'.$sshot['height'].'",         `uri` = "'.$sshot['uri'].'",         `filemtime` = "'.$sshot['filemtime'].'",         `href` = "'.$sshot['href'].'",         `description` = "'.$sshot['description'].'";';         //queries for insertion         $db->query($sql) or die ($sql."<br>".mysql_error());                  if ($tm_config['local_screenshots'])         {            //make folders and downloads screenshot            $uri = array();            $uri = explode("/", $sshot['uri']);            mkdir(SCREENSHOTS_FOLDER.$uri[0]);            get_file1("http://images.templatemonster.com/screenshots/".$sshot['uri'],SCREENSHOTS_FOLDER.$uri[0]."/",$uri[1]);         }      }   }    $i++;}echo $num_templates."<br />";$db->end_transaction();