PHP - Script Modifying Float Values Gives Integer
I know I may sound like a nab, but here I go:
Code: [Select] $ric=10; $price=$price+($price/$ric); Basically I want to add a 10% to the price value this is inside a "for", and price values is taken from a csv file. Said value is for example: $price=4,36 after the script takes place, the value goes to: $price=4796 While i aimed to obtain 4,80 (a 2 precision float). Can anyone help me? It's the first time I mess with float numbers. EDIT: Or at least direct me to a more efficient way to apply % on doubles, while preserving the original precision Similar TutorialsHi there, I am working on an associative array: The array is: $currentIds //when we do print_r($currentIds); //it returns value 41 and 42. Array ( [0] => [1] => 41 [2] => 42 [3] => ) Which is OK but I have to use these two values in an SQL query but they are in Array forms. I need to convert them to integer to be able to use them in SQL query. Please let me know how I can convert this Array to Integer so that i can use the integer values for my SQL statement. Thank you All comments and feedback are always welcomed Cheers! Hey, If i have a string which contains numbers and symbols... such as 1:2:4 (its not always : for the symbol it changes) Is there a function that can convert the numbers that are 9 or less to have a 0 infront of them such as: 01:02:04 (also this is not timestamp format - just normal strings) I need help modifying this script. I wanna add a "File Size" to it. So it will check file sized and set a maximum. Thanks. Code: [Select] <?php //Windows way $uploadLocation = "C:\\www\\upload\\"; //Unix, Linux way //$uploadLocation = "\tmp"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html> <head> <title>X-NET File Uploader</title> <link href="style/style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="main"> <div id="caption">UPLOAD FILE</div> <div id="icon"> </div> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="fileForm" id="fileForm" enctype="multipart/form-data"> File to upload:<center> <table> <tr><td><input name="upfile" type="file" size="36"></td></tr> <tr><td align="center"><br/><input class="text" type="submit" name="submitBtn" value="Upload"></td></tr> </table></center> </form> <?php if (isset($_POST['submitBtn'])){ ?> <div id="caption">RESULT</div> <div id="icon2"> </div> <div id="result"> <table width="100%"> <?php $target_path = $uploadLocation . basename( $_FILES['upfile']['name']); if(move_uploaded_file($_FILES['upfile']['tmp_name'], $target_path)) { echo "The file: ". basename( $_FILES['upfile']['name']). " has been uploaded!"; } else{ echo "There was an error uploading the file, please try again!"; } ?> </table> </div> <?php } ?> <div> </body> Is there a quick an easy way to test my php scripts without creating an html form and specifying values that I post to my php script? Maybe a firefox plugin or some tool that can be used to do it quicker? In the long haul, quicker, not just one time Hi, I got this form which passes hidden values as well as a select menu. The only thing is, it doesnt seem to post the form data to the script.
Here is the form
echo '<form action="regsale.php" method="POST">'; echo '<input type="hidden" name="username" value="<?php echo $username ?>"'; echo '<input type="hidden" name="listing_title" value="<?php echo $listing_title ?>"'; echo '<input type="hidden" name="speciesCommon" value="<?php echo $speciesCommon ?>"'; echo '<input type="hidden" name="cost" value="<?php echo $cost ?>"'; echo '<input type="hidden" name="business" value="<?php echo $business ?>"'; echo '<input type="hidden" name="postage_cost" value="<?php echo $postage_cost ?>"'; echo '<input type="hidden" name="multipostage" value="<?php echo $multipostage ?>"'; echo "<ul class='results'>"; echo '<li>Quantity:</li>'; echo '<select name="quantity">'; echo "<option value='$quantity'>Maximum of $quantity available</option>"; for ($q=1; $q<=$quantity; $q++) { echo "<option value='$q'>$q</option>"; } echo '</select>'; echo' </ul><br>'; echo '<div align="center">'; echo '<br>'; echo '<input type="submit" value="Confirm Purchase"><br>'; echo '</form><br>';And here is the script that the form is posted to <?php include 'init.php'; include 'includes/overall/header.php'; include 'includes/logo.php'; if (!isset($_SESSION['loggedin'])) { die("You must be logged in to submit care guides"); //this causes to script to stop executing and lets the user know there is a problem /* Note: instead of the die() function, you could use the echo() function and provide an HTML link back to the login page, or use the header() function to just redirect users to the login page without any message. It is up to you to decide what your application should behave. */ } //else { //logged in elseif (isset($_SESSION['loggedin']) ){ //logged in $username = $_SESSION['loggedinuser']; if (isset($_POST['listing_title'], $_POST['speciesCommon'], $_POST['cost'], $_POST['business'], $_POST['postage_cost'], $_POST['multipostage'], $_POST['quantity'] ) ) { if( $_POST['listing_title'] == "" ) { echo "Error: Please go back and try again"; } elseif( $_POST['speciesCommon'] == "" ) { echo "Error: Please go back and try again"; } elseif( $_POST['cost'] == "" ) { echo "Error: Please go back and try again"; } elseif( $_POST['business'] == "" ) { echo "Error: Please go back and try again"; } elseif( $_POST['postage_cost'] == "" ) { echo "Error: Please go back and try again"; } elseif( $_POST['multipostage'] == "" ) { echo "Error: Please go back and try again"; } elseif( $_POST['quantity'] == "" ) { echo "Error: Please go back and try again"; } else { $listing_title = mysqli_real_escape_string($con, $_POST['listing_title']); $speciesCommon = mysqli_real_escape_string($con, $_POST['speciesCommon']); $cost = mysqli_real_escape_string($con, $_POST['cost']); $business = mysqli_real_escape_string($con, $_POST['business']); $postage_cost = mysqli_real_escape_string($con, $_POST['postage_cost']); $multipostage = mysqli_real_escape_string($con, $_POST['multipostage'] ); $quantity = mysqli_real_escape_string($con, $_POST['quantity'] ); if( $multipostage == "per item" ) { $postage_cost = $quantity * $postage_cost; } elseif( $multipostage == "Combined Postage" ) { $postage_cost; } $total = $cost + $postage_costage; // Writes customer_sales information to the MySQL database $sqlCustomerSales = "INSERT INTO customer_sales(username, listing_title, speciesCommon, total, business, postage_cost, multipostage ) VALUES ( '". $username ."', '". $listing_title ."', '". $speciesCommon ."', '". $total ."', '". $business ."', '". $postage_cost ."', '". $multipostage."' )"; $result1 = mysqli_query($con, $sqlCustomerSales); // This writes the transaction to the MySQL database $memo = $listing_title; $datetime = date("Y-m-d H:i:s"); $regCustomerTransaction = "INSERT INTO customer_transactions(username, datetime, cost, postage_cost, memo) VALUES ( '". $username ."', '". $datetime ."', '". $cost ."', '". $postage_cost ."', '". $memo."' )"; // Query the database $result2 = mysqli_query($con, $regCustomerTransaction); } // This writes the user_stats to the MySQL database $total_items_sold = $quantity; $regUserStats = "INSERT INTO user_stats(username, datetime, total, items_listed, bonus_credits, last_credit_purchase, total_care_guides, total_items_sold, total_currently_listed_items, total_items_purchased, total_diary_entries, feedback ) VALUES ( '". $username ."', '". $datetime ."', '". $total ."', '". $quantity ."', '". $subtotal ."', '". $last_credit_purchase ."', '". $total_care_guides ."', '". $total_items_sold ."', '". $total_currently_listed_items ."', '". $total_items_purchased ."', '". $total_diary_entries ."', '". $feedback."' )"; // Query the database $result3 = mysqli_query($con, $regUserStats); } ?> <h1>Payment to <?php echo $username ?></h1><br> <?php echo '<strong>Thank you for confirming you would like to purchase $speciesCommon; </strong>'; echo '<br>'; echo '<strong>Your payment comes to a total of $total; </strong></h2>'; echo '<br>'; echo '<br>'; echo 'Please complete payment using the PayPal button<br>'; echo '<br>'; echo '<br>'; ?> <form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_xclick"> <input type="hidden" name="shipping" value="<?php echo $postage_cost ?>"> <input type="hidden" name="business" value="<?php echo $business ?>"> <input type="hidden" name="currency_code" value="GBP"> <input type="hidden" name="item_name" value="<?php echo $speciesCommon ?>"> <input type="hidden" name="amount" value="<?php echo $cost ?>"> <input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" onclick="OnButton1(); OnButton2();" alt="PayPal – The safer, easier way to pay online." > <img alt="" align="center" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1"></form> <?php } else { echo 'Sorry we were unable to process your listing. Please contact <a href="mailto:helpdesk@aquapetcentre.com?Subject=Listing%20error">helpdesk@aquapetcentre.com'; die(); include('includes/overall/footer.php'); } // Close the connection mysqli_close($con); ?><h1>Payment to <?php echo $username ?></h1><br> works, but I think that is because it is passed in the SESSION. Any other $variable such as those below echo '<strong>Thank you for confirming you would like to purchase $speciesCommon; </strong>'; echo '<br>'; echo '<strong>Your payment comes to a total of $total; </strong></h2>';does not work. Why is the form not posting the values to the database. Just in case it helps, the form gets its values from the database, and the values are displayed in the sales page on which the form is contained. Here is the page containing the form. <?php include 'init.php'; include 'includes/overall/header.php'; include 'includes/logo.php'; if (!isset($_SESSION['loggedin'])) { die("You must be logged in to view this page!"); //this causes to script to stop executing and lets the user know there is a problem /* Note: instead of the die() function, you could use the echo() function and provide an HTML link back to the login page, or use the header() function to just redirect users to the login page without any message. It is up to you to decide what your application should behave. */ } //else { //logged in elseif (isset($_SESSION['loggedin']) ){ //logged in $username = $_SESSION['loggedinuser']; $results = $con->query("SELECT * FROM user WHERE username = '$username';"); while($row = $results->fetch_array()) { $business = $row['paypal_email']; $user_id = $_GET['user_id']; $results1 = $con->query("SELECT * FROM live_sales WHERE user_id = '$user_id';"); while($row = $results1->fetch_array()) { $username = $row['username']; $fishtype = $row['fishtype']; $speciesCommon = $row['speciesCommon']; $speciesScientific = $row['speciesScientific']; $listing_title = $row['listing_title']; $age = $row['age']; $quantity = $row['quantity']; $origin = $row['origin']; $size = $row['size']; $environment = $row['environment']; $waterChemistry = $row['waterChemistry']; $temperature = $row['temperature']; $feeding = $row['feeding']; $sexing = $row['sexing']; $compatability = $row['compatability']; $temperament = $row['temperament']; $breeding = $row['breeding']; $comments = $row['comments']; $postage_type = $row['postage_type']; $postage_cost = $row['postage_cost']; $multipostage = $row['multipostage']; $cost = $row['cost']; echo "<div class='result'>"; echo "<h3>$speciesCommon</h3>"; echo "<h2>$listing_title</h2>"; echo "<ul class='results'>"; echo "<li>Species</li>" . str_replace("_"," "," $fishtype") . "<br>"; echo "<li>Common Name:</li> $speciesCommon<br>"; echo "<li>Scientific Name:</li> $speciesScientific<br>"; echo "<li>Age:</li> $age<br>"; echo "<li>Quantity:</li> $quantity<br>"; echo "<li>Price per item:</li> £$cost<br>"; echo "<li>Origin:</li> $origin<br>"; echo "<li>Size:</li>$size<br>"; echo "<li>Environment:</li> $environment<br>"; echo "<li>Water Chemistry</li> $waterChemistry<br>"; echo "<li>Temperatu </li> $temperature<br>"; echo "<li>Feeding:</li> $feeding<br>"; echo "<li>Sexing:</li> $sexing<br>"; echo "<li>Compatability:</li> $compatability<br>"; echo "<li>Temperament:</li> $temperament<br>"; echo "<li>Breeding:</li>$breeding<br>"; echo "<li>Comments:</li> $comments<br>"; echo "<li>Postage Type:</li>$postage_type<br>"; echo "<li>Postage Cost:</li> £$postage_cost $multipostage<br>"; echo '<form action="regsale.php" method="POST">'; echo '<input type="hidden" name="username" value="<?php echo $username ?>"'; echo '<input type="hidden" name="listing_title" value="<?php echo $listing_title ?>"'; echo '<input type="hidden" name="speciesCommon" value="<?php echo $speciesCommon ?>"'; echo '<input type="hidden" name="cost" value="<?php echo $cost ?>"'; echo '<input type="hidden" name="business" value="<?php echo $business ?>"'; echo '<input type="hidden" name="postage_cost" value="<?php echo $postage_cost ?>"'; echo '<input type="hidden" name="multipostage" value="<?php echo $multipostage ?>"'; echo "<ul class='results'>"; echo '<li>Quantity:</li>'; echo '<select name="quantity">'; echo "<option value='$quantity'>Maximum of $quantity available</option>"; for ($q=1; $q<=$quantity; $q++) { echo "<option value='$q'>$q</option>"; } echo '</select>'; echo' </ul><br>'; echo '<div align="center">'; echo '<br>'; echo '<input type="submit" value="Confirm Purchase"><br>'; echo '</form><br>'; echo '<br><br> </div>'; exit(); } } echo 'Sorry but we could not find any results.'; } include 'includes/overall/footer.php'; ?>Any help is always appreciated. aquaman Hi, I have a database with numbers/dates etc stored. I am creating a multilingual site, in both English and Burmese/Myanmar. Burmese/Myanmar has a different alphabet - a bit like Chinese/Thai. The database is set up nicely to allow text translations, but I am having a problem with numbers. How would I go about printing a number/date in Burmese script from a datebase stored as numeric values - i.e.int?? Database etc. is all utf8. Thanks. Hey guys,
I'm using the following pagination script from a website I found. I'ts basically a pagination script that takes data from a MySQL database and displays a certain number of sets before placing the next set on a new page.
This script works great if I substitute a static value for the data I want returned but If the request is stored in a $POST variable like from an HTML form the data refuses to paginate. It will render the first set of data but will not paginate the rest and only shows blank pages
I'm thinking it has something to do with the $POST variable not being set or carrying over to each page but I'm not sure.
I truly appreciate the help!
<?php /* Place code to connect to your DB here. */ include('config.php'); // include your code to connect to DB. $tbl_name=""; //your table name // How many adjacent pages should be shown on each side? $adjacents = 3; /* First get total number of rows in data table. If you have a WHERE clause in your query, make sure you mirror it here. */ $query = "SELECT COUNT(*) as num FROM $tbl_name"; $total_pages = mysql_fetch_array(mysql_query($query)); $total_pages = $total_pages[num]; /* Setup vars for query. */ $targetpage = "filename.php"; //your file name (the name of this file) $limit = 2; //how many items to show per page $page = $_GET['page']; if($page) $start = ($page - 1) * $limit; //first item to display on this page else $start = 0; //if no page var is given, set start to 0 /* Get data. */ $sql = "SELECT column_name FROM $tbl_name LIMIT $start, $limit"; $result = mysql_query($sql); /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is page - 1 $next = $page + 1; //next page is page + 1 $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up. $lpm1 = $lastpage - 1; //last page minus 1 /* Now we apply our rules and draw the pagination object. We're actually saving the code to a variable in case we want to draw it more than once. */ $pagination = ""; if($lastpage > 1) { $pagination .= "<div class=\"pagination\">"; //previous button if ($page > 1) $pagination.= "<a href=\"$targetpage?page=$prev\">� previous</a>"; else $pagination.= "<span class=\"disabled\">� previous</span>"; //pages if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>"; $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; $pagination.= "..."; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>"; $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>"; } //close to end; only hide early pages else { $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; $pagination.= "..."; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } } } //next button if ($page < $counter - 1) $pagination.= "<a href=\"$targetpage?page=$next\">next �</a>"; else $pagination.= "<span class=\"disabled\">next �</span>"; $pagination.= "</div>\n"; } ?> <?php while($row = mysql_fetch_array($result)) { // Your while loop here } ?> <?=$pagination?> مرحبا من فضلك مساعدة ماذا يفتقر هذا الرمز للعمل؟ مطلوب عدم تكرار الحقل في ملف نصي يرجى تعديل الكود <?php if(isset($_POST['send'])){ $b1 = $_POST['b1']; $b2 = $_POST['b2']; $file = fopen("xm.txt", "a+"); for($i = 0; $i < count($file); $i++){ $read = explode("||" ,$file[$i]); if($read[0] == $b1 ){ echo 'Duplicate'; } else { fwrite($random_file,$b1.'||'.$b2."\r\n"); fclose($random_file); } } } ?> Edited May 13, 2020 by k7l2010 0 down vote favorite Hi Guys! I have a method that get's all devices that share a specific ID. Foreach of those device UID's, I am trying to send a APN (Apple Push Notification) using the easyAPN's class. The method that is having the problem is $apns->newMessage($id); It seems to think I am not passing a valid integer for $id. The $id is an array like so Array ( => 1 ) I have also tried passing just the value of the array like so $apns->newMessage($id[0]). No matter what I do.. I keep getting this error... "Notice: TO id was not an integer. 1) Messages_model::send_apns -> File: sendMessage.php (line 28) 2) APNS::queueMessage -> File: messages_model.php (line 195) 3) APNS::_triggerError -> File: class_APNS.php (line 599)" Here is my method... please let me know where I've gone wrong with the $id. function send_apns($data) { include 'apn_classes/class_DbConnect.php'; include 'apn_classes/class_APNS.php'; $message = new Messages_model(); $db = new DbConnect(); $db->show_errors(); $apns = new APNS($db); //get uid's for aid $sql = "SELECT `devices`.`uid` FROM `devices` WHERE `devices`.`aid` = '".$data['target']."'"; //echo $sql; $query = mysql_query($sql); if(mysql_num_rows($query)) { while($uid_data = mysql_fetch_array($query)) $uids[] = array( "uid" => $uid_data['uid'] ); } //make sure there is a uid if(!empty($uids)) { //check the device apn pid foreach($uids as $uid) { $sql = "SELECT `apns_devices`.`pid` FROM `apns_devices` WHERE `apns_devices`.`deviceuid` = '".$uid['uid']."'"; //echo "$sql"; $query = mysql_query($sql); if(mysql_num_rows($query) > 0) { while($pid_data = mysql_fetch_array($query)) { $pids[] = array( "pid" => $pid_data['pid'], ); if(!empty($pids)) { foreach ($pids as $pid) { $id = array($pid['pid']); print_r($id); //Send APN $apns->newMessage($id[0]); $apns->addMessageBadge(128); $apns->addMessageAlert($data['message']); $apns->addMessageSound('chime'); //$apns->addMessageCustom('acme2'); $apns->queueMessage(); $apns->processQueue(); } } } } } } else { echo "Device Does not Exist"; } } So I am trying to take a string value of dollars (posted from a form) and times it by 100 to get the cents Integer value of the dollars. For some reason if I do this with something like 278.53 I end up with 27852. Same concept for 278.59 ends up as 27858. I don't understand why or how to make it work. I've tried many things and nothing has made it work. $price = '278.53'; // posted from the form $cents = $price * 100; // converting to cents. end_result = (int)$cents // This will end up being 27852 not 27853.
Hey, I have this brainstorm whether I should store id's as integers or text? I mean in my database, since my IDs start from like 1319129364 which is a rather large number, I was thinking if it would be better to save it as text? Which case requires less memory ? I want to round off an integer vaule to 10-6 grd from 52.71666666 to 52716666 0.926888888 to 926888 does anyone know a simple way to do this? Hi i'm trying to get out a sub string from multiple pages where i'm using a start point string that looks like this "(integer)" where "integer is different every time. Is there any way I can tell it that its just an integer there so if its "(3)" on one page and "(10)" on another page it will start from the same spot? Ive got a simple function that's counting percentages of the results, and what I want is when the first line does $variable / 100 - to go on 2 decimals(ex. 0.72142141 what I want is to write 0.72). Code: [Select] function postotak(){ $p = $bodovi / 100; $postotak = $p * 100; This topic has been moved to Third Party PHP Scripts. http://www.phpfreaks.com/forums/index.php?topic=306573.0 Hello All,
Apologies if i am going about this the incorrect way, but after over 8 hours of coding and not being able to solve my problem i am forced to seek help on forums for the first time.
I have a wordpress website and have installed a third party plugin that allows me to enter item details and display them front end to users who can then filter by category.
You can see the working example here and a screenshot highlighting the different sections here.
The plugin works fine, displaying products based on the category and sub category they are assigned to, however the layout becomes distorted when the screen size is reduced. Images have been included below:
Larger screen size
Smaller screen size
I have been doing some reading and i think that rather than using multiple <div> tags (as the plugin creator has done), i have instead tried to use 3 separate tables. (one for the sidebar, one for the main section, and then a table with two columns to hold each)
My plan is shown here.
I have successfully managed to re-code the sidebar on the left into a table, however i am struggling to modify the main section.
Unfortunately i cannot explain much about the code as it was not written by me, i can tell you that three are 3 different layouts available: Thumb, List and Detail.
I am only using Detail.
I have attempted to modify the code multiple times, but i cannot get the main table and list table to work correctly.
I have included the modified code where i have only changed the sidebar. I have kept the rest as standard to show you all what i am working with to begin with.
Points of interest:
I have been applying the main table at line 431 and ending it at 437.
I have been applying the list table at line 423.
The list table items (rows) begin at 558
<?php /* The function that creates the HTML on the front-end, based on the parameters * supplied in the product-catalog shortcode */ function Insert_Product_Catalog($atts) { // Include the required global variables, and create a few new ones global $wpdb, $categories_table_name, $subcategories_table_name, $tags_table_name, $tagged_items_table_name, $catalogues_table_name, $catalogue_items_table_name, $items_table_name; global $ReturnString, $ProdCats, $ProdSubCats, $ProdTags, $ProdCatString, $ProdSubCatString, $ProdTagString, $Catalogue_ID, $Catalogue_Layout_Format, $Catalogue_Sidebar, $Full_Version; $ReturnString = ""; $Filter = get_option("UPCP_Filter_Type"); $Color = get_option("UPCP_Color_Scheme"); $Links = get_option("UPCP_Product_Links"); $Detail_Image = get_option("UPCP_Details_Image"); $Pretty_Links = get_option("UPCP_Pretty_Links"); $Mobile_Style = get_option("UPCP_Mobile_SS"); $Pagination_Location = get_option("UPCP_Pagination_Location"); $CaseInsensitiveSearch = get_option("UPCP_Case_Insensitive_Search"); $Maintain_Filtering = get_option("UPCP_Maintain_Filtering"); $Products_Per_Page = get_option("UPCP_Products_Per_Page"); $ProductSearch = get_option("UPCP_Product_Search"); $Products_Pagination_Label = get_option("UPCP_Products_Pagination_Label"); $Product_Name_Search_Label = get_option("UPCP_Product_Name_Search_Label"); $No_Results_Found_Label = get_option("UPCP_No_Results_Found_Label"); if ($Products_Pagination_Label != "") {$Products_Pagination_Text = $Products_Pagination_Label;} else {$Products_Pagination_Text = __(' products', 'UPCP');} if ($Product_Search_Text_Label != "") {$Product_Name_Text = $Product_Name_Search_Label;} else { if ($ProductSearch == "namedesc" or $ProductSearch == "namedesccust") {$Product_Name_Text = __("Search...", 'UPCP');} else {$Product_Name_Text = __("Name...", 'UPCP');} } // Get the attributes passed by the shortcode, and store them in new variables for processing extract( shortcode_atts( array( "id" => "1", "excluded_layouts" => "None", "starting_layout" => "", "products_per_page" => "", "current_page" => 1, "sidebar" => "Yes", "only_inner" => "No", "ajax_reload" => "No", "ajax_url" => "", "request_count" => 0, "category" => "", "subcategory" => "", "tags" => "", "prod_name" => ""), $atts ) ); // Select the catalogue information from the database $Catalogue = $wpdb->get_row("SELECT * FROM $catalogues_table_name WHERE Catalogue_ID=" . $id); $CatalogueItems = $wpdb->get_results("SELECT * FROM $catalogue_items_table_name WHERE Catalogue_ID=" . $id . " ORDER BY Position"); // Add any additional CSS in-line if ($Catalogue->Catalogue_Custom_CSS != "") { $HeaderBar .= "<style type='text/css'>"; $HeaderBar .= $Catalogue->Catalogue_Custom_CSS; $HeaderBar .= "</style>"; } if ($Detail_Image != "") { $HeaderBar .= "<style type='text/css'>"; $HeaderBar .= ".upcp-thumb-details-link, .upcp-list-details-link, .upcp-detail-details-link {"; $HeaderBar .= "background: url('" . $Detail_Image . "');"; $HeaderBar .= "}"; $HeaderBar .= "</style>"; } $Top_JS .= "<script language='JavaScript' type='text/javascript'>"; if ($Maintain_Filtering == "Yes") {$Top_JS .= "var maintain_filtering = 'Yes';";} else {$Top_JS .= "var maintain_filtering = 'No';";} $Top_JS .= "</script>"; $HeaderBar .= $Top_JS; $HeaderBar .= "<form id='upcp-hidden-filtering-form' method='post'>"; $HeaderBar .= "<input type='hidden' id='upcp-selected-categories' name='categories' value='" . $_POST['categories'] . "' />"; $HeaderBar .= "<input type='hidden' id='upcp-selected-subcategories' name='subcategories' value='" . $_POST['subcategories'] . "' />"; $HeaderBar .= "<input type='hidden' id='upcp-selected-tags' name='tags' value='" . $_POST['tags'] . "' />"; $HeaderBar .= "<input type='hidden' id='upcp-selected-prod-name' name='prod_name' value='" . $_POST['prod_name'] . "' />"; $HeaderBar .= "</form>"; if (get_query_var('single_product') != "" or $_GET['SingleProduct'] != "") { $ReturnString .= $HeaderBar; $ReturnString .= SingleProductPage(); return $ReturnString; } $Catalogue_ID = $id; $Catalogue_Sidebar = $sidebar; $Starting_Layout = ucfirst($starting_layout); if ($excluded_layouts != "None") {$Excluded_Layouts = explode(",", $excluded_layouts);} else {$Excluded_Layouts = array();} if (isset($_GET['categories'])) {$category = explode(",", $_GET['categories']);} elseif (isset($_POST['categories']) and $_POST['categories'] != "") {$category = explode(",", $_POST['categories']);} elseif ($category == "") {$category = array();} else {$category = explode(",", $category);} if (isset($_GET['sub-categories'])) {$subcategory = explode(",", $_GET['sub-categories']);} elseif (isset($_POST['subcategories']) and $_POST['subcategories'] != "") {$subcategory = explode(",", $_POST['subcategories']);} elseif ($subcategory == "") {$subcategory = array();} else {$subcategory = explode(",", $subcategory);} if (isset($_GET['tags'])) {$tags = explode(",", $_GET['tags']);} elseif (isset($_POST['tags']) and $_POST['tags'] != "") {$tags = explode(",", $_POST['tags']);} elseif ($tags == "") {$tags = array();} else {$tags = explode(",", $tags);} if (isset($_POST['prod_name']) and $_POST['prod_name'] != "") {$prod_name = $_POST['prod_name'];} //Pagination early work if ($products_per_page == "") {$products_per_page = $Products_Per_Page;} if ($category != "" or $subcategory != "" or $tags != "" or $prod_name != "") {$Filtered = "Yes";} else {$Filtered = "No";} $ReturnString .= "<div class='upcp-Hide-Item' id='upcp-shortcode-atts'>"; $ReturnString .= "<div class='shortcode-attr' id='upcp-catalogue-id'>" . $id . "</div>"; $ReturnString .= "<div class='shortcode-attr' id='upcp-catalogue-sidebar'>" . $sidebar . "</div>"; $ReturnString .= "<div class='shortcode-attr' id='upcp-starting-layout'>" . $starting_layout . "</div>"; $ReturnString .= "<div class='shortcode-attr' id='upcp-current-layout'>" . $starting_layout . "</div>"; $ReturnString .= "<div class='shortcode-attr' id='upcp-exclude-layouts'>" . $excluded_layouts . "</div>"; $ReturnString .= "<div class='shortcode-attr' id='upcp-current-page'>" . $current_page . "</div>"; $ReturnString .= "<div class='shortcode-attr' id='upcp-default-search-text'>" . $Product_Name_Text . "</div>"; if ($ajax_reload == "Yes") {$ReturnString .= "<div class='shortcode-attr' id='upcp-base-url'>" . $ajax_url . "</div>";} else { $uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2); if ($uri_parts[0] != "/") {$ReturnString .= "<div class='shortcode-attr' id='upcp-base-url'>" . $uri_parts[0] . "</div>";} else {$ReturnString .= "<div class='shortcode-attr' id='upcp-base-url'>/?" . $uri_parts[1] . "</div>";} } $ReturnString .= "</div>"; if (sizeOf($Excluded_Layouts)>0) {for ($i=0; $i<sizeOf($Excluded_Layouts); $i++) {$ExcludedLayouts[$i] = ucfirst(trim($Excluded_Layouts[$i]));}} else {$ExcludedLayouts = array();} if ($Starting_Layout == "") { if (!in_array("Thumbnail", $Excluded_Layouts)) {$Starting_Layout = "Thumbnail";} elseif (!in_array("List", $Excluded_Layouts)) {$Starting_Layout = "List";} else {$Starting_Layout = "Detail";} } // Make sure that the layout is set if ($layout_format != "Thumbnail" and $layout_format != "List") { if ($Catalogue->Catalogue_Layout_Format != "") {$format = $Catalogue->Catalogue_Layout_Format;} else {$format = "Thumbnail";} } else {$format = $layout_format;} // Arrays to store what categories, sub-categories and tags are applied to the product in the catalogue $ProdCats = array(); $ProdSubCats = array(); $ProdTags = array(); $ProdThumbString .= "<div id='prod-cat-" . $id . "' class='prod-cat thumb-display "; if ($Starting_Layout != "Thumbnail") {$ProdThumbString .= "hidden-field";} $ProdThumbString .= "'>\n"; $ProdThumbString .= "%upcp_pagination_placeholder_top%"; $ProdListString .= "<div id='prod-cat-" . $id . "' class='prod-cat list-display "; if ($Starting_Layout != "List") {$ProdListString .= "hidden-field";} $ProdListString .= "'>\n"; $ProdListString .= "%upcp_pagination_placeholder_top%"; $ProdDetailString .= "<div id='prod-cat-" . $id . "' class='prod-cat detail-display "; if ($Starting_Layout != "Detail") {$ProdDetailString .= "hidden-field";} $ProdDetailString .= "'>\n"; $ProdDetailString .= "%upcp_pagination_placeholder_top%"; $Product_Count = 0; foreach ($CatalogueItems as $CatalogueItem) { // If the item is a product, then simply call the AddProduct function to add it to the code if ($CatalogueItem->Item_ID != "" and $CatalogueItem->Item_ID != 0) { $Product = $wpdb->get_row("SELECT * FROM $items_table_name WHERE Item_ID=" . $CatalogueItem->Item_ID); $ProdTagObj = $wpdb->get_results("SELECT Tag_ID FROM $tagged_items_table_name WHERE Item_ID=" . $CatalogueItem->Item_ID); $ProdTag = ObjectToArray($ProdTagObj); $NameSearchMatch = SearchProductName($Product->Item_ID, $Product->Item_Name, $Product->Item_Description, $prod_name, $CaseInsensitiveSearch, $ProductSearch); if (sizeOf($tags) == 0) {$Tag_Check = "Yes";} else {$Tag_Check = CheckTags($tags, $ProdTag, $Tag_Logic);} if ($products_per_page < 1000000) {$Pagination_Check = CheckPagination($Product_Count, $products_per_page, $current_page, $Filtered);} else {$Pagination_Check = "OK";} if ($NameSearchMatch == "Yes") { if ($Product->Item_Display_Status != "Hide") { if (sizeOf($category) == 0 or in_array($Product->Category_ID, $category)) { if (sizeOf($subcategory) == 0 or in_array($Product->SubCategory_ID, $subcategory)) { if ($Tag_Check == "Yes") { if ($Pagination_Check == "OK") { $HeaderBar .= "<a id='hidden_FB_link-" . $CatalogueItem->Item_ID . "' class='fancybox' href='#prod-cat-addt-details-" . $CatalogueItem->Item_ID . "'></a>"; if (!in_array("Thumbnail", $ExcludedLayouts)) {$ProdThumbString .= AddProduct("Thumbnail", $CatalogueItem->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} if (!in_array("List", $ExcludedLayouts)) {$ProdListString .= AddProduct("List", $CatalogueItem->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} if (!in_array("Detail", $ExcludedLayouts)) {$ProdDetailString .= AddProduct("Detail", $CatalogueItem->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} } $Product_Count++; }}}}} if ($ajax_reload == "No") {FilterCount($Product, $ProdTagObj);} unset($NameSearchMatch); } // If the item is a category, then add the appropriate extra HTML and call the AddProduct function // for each individual product in the category if ($CatalogueItem->Category_ID != "" and $CatalogueItem->Category_ID != 0) { if (sizeOf($category) == 0 or in_array($CatalogueItem->Category_ID, $category)) { $CatProdCount = 0; $Category = $wpdb->get_row("SELECT Category_Name FROM $categories_table_name WHERE Category_ID=" . $CatalogueItem->Category_ID); $ProdThumbString .= "<div id='prod-cat-category-" . $CatalogueItem->Category_ID . "' class='prod-cat-category upcp-thumb-category'>\n"; $ProdListString .= "<div id='prod-cat-category-" . $CatalogueItem->Category_ID . "' class='prod-cat-category upcp-list-category'>\n"; $ProdDetailString .= "<div id='prod-cat-category-" . $CatalogueItem->Category_ID . "' class='prod-cat-category upcp-detail-category'>\n"; $ProdThumbString .= "%Category_Label%"; $ProdListString .= "%Category_Label%"; $ProdDetailString .= "%Category_Label%"; $CatThumbHead = "<div id='prod-cat-category-label-" . $CatalogueItem->Category_ID . "' class='prod-cat-category-label upcp-thumb-category-label'>" . $Category->Category_Name ."</div>\n"; $CatListHead = "<div id='prod-cat-category-label-" . $CatalogueItem->Category_ID . "' class='prod-cat-category-label upcp-list-category-label'>" . $Category->Category_Name ."</div>\n"; $CatDetailHead = "<div id='prod-cat-category-label-" . $CatalogueItem->Category_ID . "' class='prod-cat-category-label upcp-detail-category-label'>" . $Category->Category_Name ."</div>\n"; $Products = $wpdb->get_results("SELECT * FROM $items_table_name WHERE Category_ID=" . $CatalogueItem->Category_ID); foreach ($Products as $Product) { $ProdTagObj = $wpdb->get_results("SELECT Tag_ID FROM $tagged_items_table_name WHERE Item_ID=" . $Product->Item_ID); $ProdTag = ObjectToArray($ProdTagObj); $NameSearchMatch = SearchProductName($Product->Item_ID, $Product->Item_Name, $Product->Item_Description, $prod_name, $CaseInsensitiveSearch, $ProductSearch); if (sizeOf($tags) == 0) {$Tag_Check = "Yes";} else {$Tag_Check = CheckTags($tags, $ProdTag, $Tag_Logic);} if ($products_per_page < 1000000) {$Pagination_Check = CheckPagination($Product_Count, $products_per_page, $current_page, $Filtered);} else {$Pagination_Check = "OK";} if ($NameSearchMatch == "Yes") { if ($Product->Item_Display_Status != "Hide") { if (sizeOf($subcategory) == 0 or in_array($Product->SubCategory_ID, $subcategory)) { if ($Tag_Check == "Yes") { if ($Pagination_Check == "OK") { $HeaderBar .= "<a id='hidden_FB_link-" . $Product->Item_ID . "' class='fancybox' href='#prod-cat-addt-details-" . $Product->Item_ID . "'></a>"; if (!in_array("Thumbnail", $ExcludedLayouts)) {$ProdThumbString .= AddProduct("Thumbnail", $Product->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} if (!in_array("List", $ExcludedLayouts)) {$ProdListString .= AddProduct("List", $Product->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} if (!in_array("Detail", $ExcludedLayouts)) {$ProdDetailString .= AddProduct("Detail", $Product->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} $CatProdCount++; } $Product_Count++; }}}} if ($ajax_reload == "No") {FilterCount($Product, $ProdTagObj);} unset($NameSearchMatch); } if ($CatProdCount > 0) { $ProdThumbString = str_replace("%Category_Label%", $CatThumbHead, $ProdThumbString); $ProdListString = str_replace("%Category_Label%", $CatListHead, $ProdListString); $ProdDetailString = str_replace("%Category_Label%", $CatDetailHead, $ProdDetailString); } else { $ProdThumbString = str_replace("%Category_Label%", "", $ProdThumbString); $ProdListString = str_replace("%Category_Label%", "", $ProdListString); $ProdDetailString = str_replace("%Category_Label%", "", $ProdDetailString); } $ProdThumbString .= "</div>"; $ProdListString .= "</div>"; $ProdDetailString .= "</div>"; }} // If the item is a sub-category, then add the appropriate extra HTML and call the AddProduct function // for each individual product in the sub-category if ($CatalogueItem->SubCategory_ID != "" and $CatalogueItem->SubCategory_ID != 0) { if (sizeOf($subcategory) == 0 or in_array($CatalogueItem->SubCategory_ID, $subcategory)) { $Products = $wpdb->get_results("SELECT * FROM $items_table_name WHERE SubCategory_ID=" . $CatalogueItem->SubCategory_ID); foreach ($Products as $Product) { $ProdTagObj = $wpdb->get_results("SELECT Tag_ID FROM $tagged_items_table_name WHERE Item_ID=" . $Product->Item_ID); $ProdTag = ObjectToArray($ProdTagObj); $NameSearchMatch = SearchProductName($Product->Item_ID, $Product->Item_Name, $Product->Item_Description, $prod_name, $CaseInsensitiveSearch, $ProductSearch); if (sizeOf($tags) == 0) {$Tag_Check = "Yes";} else {$Tag_Check = CheckTags($tags, $ProdTag, $Tag_Logic);} if ($products_per_page < 1000000) {$Pagination_Check = CheckPagination($Product_Count, $products_per_page, $current_page, $Filtered);} else {$Pagination_Check = "OK";} if ($NameSearchMatch == "Yes") { if ($Product->Item_Display_Status != "Hide") { if (sizeOf($category) == 0 or in_array($Product->Category_ID, $category)) { if ($Tag_Check == "Yes") { if ($Pagination_Check == "OK") { $HeaderBar .= "<a id='hidden_FB_link-" . $Product->Item_ID . "' class='fancybox' href='#prod-cat-addt-details-" . $Product->Item_ID . "'></a>"; if (!in_array("Thumbnail", $ExcludedLayouts)) {$ProdThumbString .= AddProduct("Thumbnail", $Product->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} if (!in_array("List", $ExcludedLayouts)) {$ProdListString .= AddProduct("List", $Product->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} if (!in_array("Detail", $ExcludedLayouts)) {$ProdDetailString .= AddProduct("Detail", $Product->Item_ID, $Product, $ProdTagObj, $ajax_reload, $ajax_url);} } $Product_Count++; }}}} if ($ajax_reload == "No") {FilterCount($Product, $ProdTagObj);} unset($NameSearchMatch); } }} //if ($Pagination_Check == "Over") {break;} } if ($Product_Count == 0) { $ProdThumbString .= $No_Results_Found_Label; $ProdListString .= $No_Results_Found_Label; $ProdDetailString .= $No_Results_Found_Label; } $ProdThumbString .= "<div class='upcp-clear'></div>\n"; $ProdListString .= "<div class='upcp-clear'></div>\n"; $ProdDetailString .= "<div class='upcp-clear'></div>\n"; if ($Pagination_Location == "Bottom" or $Pagination_Location == "Both") { $ProdThumbString .= "%upcp_pagination_placeholder_bottom%"; $ProdListString .= "%upcp_pagination_placeholder_bottom%"; $ProdDetailString .= "%upcp_pagination_placeholder_bottom%"; /*$ProdThumbString .= "<div class='upcp-clear'></div>\n"; $ProdListString .= "<div class='upcp-clear'></div>\n"; $ProdDetailString .= "<div class='upcp-clear'></div>\n";*/ } $ProdThumbString .= "</div>\n"; $ProdListString .= "</div>\n"; $ProdDetailString .= "</div>\n"; if (in_array("Thumbnail", $ExcludedLayouts)) {unset($ProdThumbString);} if (in_array("List", $ExcludedLayouts)) {unset($ProdListString);} if (in_array("Detail", $ExcludedLayouts)) {unset($ProdDetailString);} //Deal with creating the page counter, if pagination is neccessary if ($Filtered == "Yes") {$Total_Products = $Product_Count;} else {$Total_Products = $Catalogue->Catalogue_Item_Count;} if ($Total_Products > $products_per_page) { $Num_Pages = ceil($Total_Products / $products_per_page); $PrevPage = max($current_page - 1, 1); $NextPage = min($current_page + 1, $Num_Pages); $PaginationString .= "<div class='catalogue-nav'>"; $PaginationString .= "<span class='displaying-num'>" . $Total_Products . $Products_Pagination_Text . "</span>"; $PaginationString .= "<span class='pagination-links'>"; $PaginationString .= "<a class='first-page' title='Go to the first page' href='#' onclick='UPCP_DisplayPage(\"1\")'>«</a>"; $PaginationString .= "<a class='prev-page' title='Go to the previous page' href='#' onclick='UPCP_DisplayPage(\"" . $PrevPage . "\")'>‹</a>"; $PaginationString .= "<span class='paging-input'>" . $current_page . __(' of ', 'UPCP') . "<span class='total-pages'>" . $Num_Pages . "</span></span>"; $PaginationString .= "<a class='next-page' title='Go to the next page' href='#' onclick='UPCP_DisplayPage(\"" . $NextPage . "\")'>›</a>"; $PaginationString .= "<a class='last-page' title='Go to the last page' href='#' onclick='UPCP_DisplayPage(\"" . $Num_Pages . "\")'>»</a>"; $PaginationString .= "</span>"; $PaginationString .= "</div>"; if ($current_page == 1) {$PaginationString = str_replace("first-page", "first-page disabled", $PaginationString);} if ($current_page == 1) {$PaginationString = str_replace("prev-page", "prev-page disabled", $PaginationString);} if ($current_page == $Num_Pages) {$PaginationString = str_replace("next-page", "next-page disabled", $PaginationString);} if ($current_page == $Num_Pages) {$PaginationString = str_replace("last-page", "last-page disabled", $PaginationString);} /*if ($current_page != 1) {$PaginationString .= "<a href='#' onclick='UPCP_DisplayPage(\"1\")>" . __('First', 'UPCP') . "</a>";} if ($current_page != 1) {$PaginationString .= "<a href='#' onclick='UPCP_DisplayPage(\"" . $current_page - 1 . "\")>" . __('Previous', 'UPCP') . "</a>";} $PaginationString .= "<span class='paging-input'>" . $current_page . __(' of ', 'UPCP') . "<span class='total-pages'>" . $Num_Pages . "</span></span>"; if ($current_page != $Num_Pages) {$PaginationString .= "<a href='#' onclick='UPCP_DisplayPage(\"" . $current_page + 1 . "\")>" . __('Next', 'UPCP') . "</a>";} if ($current_page != $Num_Pages) {$PaginationString .= "<a href='#' onclick='UPCP_DisplayPage(\"" . $Num_Pages . "\")>" . __('Last', 'UPCP') . "</a>";}*/ } if ($Pagination_Location == "Bottom") { $ProdThumbString = str_replace("%upcp_pagination_placeholder_top%", "", $ProdThumbString); $ProdListString = str_replace("%upcp_pagination_placeholder_top%", "", $ProdListString); $ProdDetailString = str_replace("%upcp_pagination_placeholder_top%", "", $ProdDetailString); } if ($Pagination_Location == "Top") { $ProdThumbString = str_replace("%upcp_pagination_placeholder_bottom%", "", $ProdThumbString); $ProdListString = str_replace("%upcp_pagination_placeholder_bottom%", "", $ProdListString); $ProdDetailString = str_replace("%upcp_pagination_placeholder_bottom%", "", $ProdDetailString); } $ProdThumbString = str_replace("%upcp_pagination_placeholder_top%", $PaginationString, $ProdThumbString); $ProdListString = str_replace("%upcp_pagination_placeholder_top%", $PaginationString, $ProdListString); $ProdDetailString = str_replace("%upcp_pagination_placeholder_top%", $PaginationString, $ProdDetailString); $ProdThumbString = str_replace("%upcp_pagination_placeholder_bottom%", $PaginationString, $ProdThumbString); $ProdListString = str_replace("%upcp_pagination_placeholder_bottom%", $PaginationString, $ProdListString); $ProdDetailString = str_replace("%upcp_pagination_placeholder_bottom%", $PaginationString, $ProdDetailString); // Create string from the arrays, should use the implode function instead foreach ($ProdCats as $key=>$value) {$ProdCatString .= $key . ",";} $ProdCatString = trim($ProdCatString, " ,"); foreach ($ProdSubCats as $key=>$value) {$ProdSubCatString .= $key . ",";} $ProdSubCatString = trim($ProdSubCatString, " ,"); foreach ($ProdTags as $key=>$value) {$ProdTagString .= $key . ",";} $ProdTagString = trim($ProdTagString, " ,"); // If the sidebar is requested, add it if (($sidebar == "Yes" or $sidebar == "yes" or $sidebar == "YES") and $only_inner != "Yes") { $SidebarString = BuildSidebar($category, $subcategory, $tags, $prod_name); } if ($Mobile_Style == "Yes") { $MobileMenuString .= "<div id='prod-cat-mobile-menu' class='upcp-mobile-menu'>\n"; $MobileMenuString .= "<div id='prod-cat-mobile-search'>\n"; if ($Tag_Logic == "OR") {$MobileMenuString .= "<input type='text' id='upcp-mobile-search' class='jquery-prod-name-text mobile-search' name='Mobile_Search' value='" . __('Product Name', 'UPCP') . "...' onfocus='FieldFocus(this);' onblur='FieldBlur(this);' onkeyup='UPCP_Filer_Results_OR();'>\n";} else {$MobileMenuString .= "<input type='text' id='upcp-mobile-search' class='jquery-prod-name-text mobile-search' name='Mobile_Search' value='" . __('Product Name', 'UPCP') . "...' onfocus='FieldFocus(this);' onblur='FieldBlur(this);' onkeyup='UPCP_Filer_Results();'>\n";} $MobileMenuString .= "</div>"; $MobileMenuString .= "</div>"; } $HeaderBar .= "<div class='prod-cat-header-div " . $Color . "-prod-cat-header-div'>"; $HeaderBar .= "<div class='prod-cat-header-padding'></div>"; $HeaderBar .= "<div id='starting-layout' class='hidden-field'>" . $Starting_Layout . "</div>"; if (!in_array("Thumbnail", $ExcludedLayouts)) { $HeaderBar .= "<a href='#' onclick='ToggleView(\"Thumbnail\");return false;' title='Thumbnail'><div class='upcp-thumb-toggle-icon " . $Color . "-thumb-icon'></div></a>"; } if (!in_array("List", $ExcludedLayouts)) { $HeaderBar .= "<a href='#' onclick='ToggleView(\"List\"); return false;' title='List'><div class='upcp-list-toggle-icon " . $Color . "-list-icon'></div></a>"; } if (!in_array("Detail", $ExcludedLayouts)) { $HeaderBar .= "<a href='#' onclick='ToggleView(\"Detail\"); return false;' title='Detail'><div class='upcp-details-toggle-icon " . $Color . "-details-icon'></div></a>"; } $HeaderBar .= "<div class='upcp-clear'></div>"; $HeaderBar .= "</div>"; $Bottom_JS .= "<script language='JavaScript' type='text/javascript'>"; if (isset($_GET['Product_ID'])) {$Bottom_JS .= "jQuery(window).load(OpenProduct('" . $_GET['Product_ID'] . "'));";} $Bottom_JS .= "</script>"; $InnerString .= "<div class='prod-cat-inner'>" . $ProdThumbString . "<div class='upcp-clear'></div>" . $ProdListString . "<div class='upcp-clear'></div>" . $ProdDetailString . "<div class='upcp-clear'></div></div>"; if ($only_inner == "Yes") { $ReturnArray['request_count'] = $request_count; $ReturnArray['message'] = $InnerString; return json_encode($ReturnArray); } $ReturnString .= "<div class='prod-cat-container'>"; $ReturnString .= $HeaderBar; $ReturnString .= $MobileMenuString; $ReturnString .= $InnerString; $ReturnString .= $SidebarString; $ReturnString .= $Bottom_JS; $ReturnString .= "<div class='upcp-clear'></div></div>"; return $ReturnString; } /* Function to add the HTML for an individual product to the catalog */ function AddProduct($format, $Item_ID, $Product, $Tags, $AjaxReload = "No", $AjaxURL = "") { // Add the required global variables global $wpdb, $categories_table_name, $subcategories_table_name, $tags_table_name, $tagged_items_table_name, $catalogues_table_name, $catalogue_items_table_name, $items_table_name, $item_images_table_name; global $ProdCats, $ProdSubCats, $ProdTags, $ReturnString; $ReadMore = get_option("UPCP_Read_More"); $Links = get_option("UPCP_Product_Links"); $Pretty_Links = get_option("UPCP_Pretty_Links"); $Detail_Desc_Chars = get_option("UPCP_Desc_Chars"); $CF_Conversion = get_option("UPCP_CF_Conversion"); $Details_Label = get_option("UPCP_Details_Label"); if ($Details_Label != "") {$Details_Text = $Details_Label;} else {$Details_Text = __("Details", 'UPCP');} if ($Links == "New") {$NewWindow = true;} else {$NewWindow = false;} if ($CF_Conversion != "No") {$Description = ConvertCustomFields($Product->Item_Description);} else {$Description = $Product->Item_Description;} $Description = str_replace("[upcp-price]", $Product->Item_Price, $Description); //Select the product info, tags and images for the product $Item_Images = $wpdb->get_results("SELECT Item_Image_URL, Item_Image_ID FROM $item_images_table_name WHERE Item_ID=" . $Item_ID); $TagsString = ""; if ($Product->Item_Photo_URL != "" and strlen($Product->Item_Photo_URL) > 7 and substr($Product->Item_Photo_URL, 0, 7) != "http://") { $PhotoCode = $Product->Item_Photo_URL; $PhotoCode = do_shortcode($PhotoCode); } elseif ($Product->Item_Photo_URL != "" and strlen($Product->Item_Photo_URL) > 7) { $PhotoURL = htmlspecialchars($Product->Item_Photo_URL, ENT_QUOTES); $PhotoCode = "<img src='" . $PhotoURL . "' alt='" . $Product->Item_Name . " Image' id='prod-cat-thumb-" . $Product->Item_ID . "' class='prod-cat-thumb-image upcp-thumb-image'>"; } else { $PhotoURL = plugins_url('ultimate-product-catalogue/images/No-Photo-Available.jpg'); $PhotoCode = "<img src='" . $PhotoURL . "' alt='" . $Product->Item_Name . " Image' id='prod-cat-thumb-" . $Product->Item_ID . "' class='prod-cat-thumb-image upcp-thumb-image'>"; } //Create the tag string for filtering foreach ($Tags as $Tag) {$TagsString .= $Tag->Tag_ID . ", ";} $TagsString = trim($TagsString, " ,"); // Check whether the FancyBox for WordPress plugin is activated $plugin = "fancybox-for-wordpress/fancybox.php"; include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $FancyBox_Installed = is_plugin_active($plugin); $uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2); $FB_Perm_URL = $uri_parts[0] . "?" . $uri_parts[1]; if ($uri_parts[1] == "") {$FB_Perm_URL .= "Product_ID=" . $Product->Item_ID;} else {$FB_Perm_URL .= "&Product_ID=" . $Product->Item_ID;} if ($AjaxReload == "Yes") {$Base = $AjaxURL;} else {$Base = $uri_parts[0];} if ($Product->Item_Link != "") {$ItemLink = $Product->Item_Link;} elseif ($FancyBox_Installed) {$ItemLink = "#prod-cat-addt-details-" . $Product->Item_ID; $FancyBoxClass = true;} elseif ($Pretty_Links == "Yes") {$ItemLink = $Base . "product/" . $Product->Item_Slug . "/?" . $uri_parts[1];} else {$ItemLink = $Base . "?" . $uri_parts[1] . "&SingleProduct=" . $Product->Item_ID;} //Create the listing for the thumbnail layout display if ($format == "Thumbnail") { $ProductString .= "<div id='prod-cat-item-" . $Product->Item_ID . "' class='prod-cat-item upcp-thumb-item'>\n"; $ProductString .= "<div id='prod-cat-thumb-div-" . $Product->Item_ID . "' class='prod-cat-thumb-image-div upcp-thumb-image-div'>"; $ProductString .= "<a class='upcp-catalogue-link "; if ($FancyBoxClass and !$NewWindow) {$ProductString .= "fancybox";} $ProductString .= "' "; if ($NewWindow) {$ProductString .= "target='_blank'";} $ProductString .= " href='" . $ItemLink . "' onclick='RecordView(" . $Product->Item_ID . ");'>"; $ProductString .= $PhotoCode; $ProductString .= "</a>"; $ProductString .= "</div>\n"; $ProductString .= "<div id='prod-cat-title-" . $Product->Item_ID . "' class='prod-cat-title upcp-thumb-title'>"; $ProductString .= "<a class='upcp-catalogue-link "; if ($FancyBoxClass and !$NewWindow) {$ProductString .= "fancybox";} $ProductString .= " no-underline'"; if ($NewWindow) {$ProductString .= "target='_blank'";} $ProductString .= " href='" . $ItemLink . "' onclick='RecordView(" . $Product->Item_ID . ");'>" . $Product->Item_Name . "</a>"; $ProductString .= AddCustomFields($Product->Item_ID, "thumbs"); $ProductString .= "</div>\n"; $ProductString .= "<div id='prod-cat-price-" . $Product->Item_ID . "' class='prod-cat-price upcp-thumb-price'>" . $Product->Item_Price . "</div>\n"; $ProductString .= "<a class='upcp-catalogue-link "; if ($FancyBoxClass and !$NewWindow) {$ProductString .= "fancybox";} $ProductString .= "' "; if ($NewWindow) {$ProductString .= "target='_blank'";} $ProductString .= " href='" . $ItemLink . "' onclick='RecordView(" . $Product->Item_ID . ");'>"; $ProductString .= "<div id='prod-cat-details-link-" . $Product->Item_ID . "' class='prod-cat-details-link upcp-thumb-details-link'>" . $Details_Text . "</div>\n"; $ProductString .= "</a>"; } //Create the listing for the list layout display if ($format == "List") { $ProductString .= "<div id='prod-cat-item-" . $Product->Item_ID . "' class='prod-cat-item upcp-list-item'>\n"; $ProductString .= "<div id='prod-cat-title-" . $Product->Item_ID . "' class='prod-cat-title upcp-list-title' onclick='ToggleItem(" . $Product->Item_ID . ");'>" . $Product->Item_Name . "</div>\n"; $ProductString .= "<div id='prod-cat-price-" . $Product->Item_ID . "' class='prod-cat-price upcp-list-price' onclick='ToggleItem(" . $Product->Item_ID . ");'>" . $Product->Item_Price . "</div>\n"; $ProductString .= "<div id='prod-cat-details-" . $Product->Item_ID . "' class='prod-cat-details upcp-list-details hidden-field'>\n"; $ProductString .= "<div id='prod-cat-thumb-div-" . $Product->Item_ID . "' class='prod-cat-thumb-image-div upcp-list-image-div'>"; $ProductString .= "<a class='upcp-catalogue-link "; if ($FancyBoxClass and !$NewWindow) {$ProductString .= "fancybox";} $ProductString .= "' "; if ($NewWindow) {$ProductString .= "target='_blank'";} $ProductString .= " href='" . $ItemLink . "' onclick='RecordView(" . $Product->Item_ID . ");'>"; $ProductString .= $PhotoCode; $ProductString .= "</a>"; $ProductString .= "</div>\n"; $ProductString .= "<div id='prod-cat-desc-" . $Product->Item_ID . "' class='prod-cat-desc upcp-list-desc'>" . $Description . "</div>\n"; $ProductString .= "<a class='upcp-catalogue-link "; if ($FancyBoxClass and !$NewWindow) {$ProductString .= "fancybox";} $ProductString .= "' "; if ($NewWindow) {$ProductString .= "target='_blank'";} $ProductString .= " href='" . $ItemLink . "' onclick='RecordView(" . $Product->Item_ID . ");'>"; $ProductString .= "<div id='prod-cat-details-link-" . $Product->Item_ID . "' class='prod-cat-details-link upcp-list-details-link'>" . __("Images", 'UPCP') . "</div>\n"; $ProductString .= "</a>"; $ProductString .= "</div>"; } //Create the listing for the detail layout display if ($format == "Detail") { $ProductString .= "<div id='prod-cat-item-" . $Product->Item_ID . "' class='prod-cat-item upcp-detail-item'>\n"; $ProductString .= "<div id='prod-cat-detail-div-" . $Product->Item_ID . "' class='prod-cat-detail-image-div upcp-detail-image-div'>"; $ProductString .= "<a class='upcp-catalogue-link "; if ($FancyBoxClass and !$NewWindow) {$ProductString .= "fancybox";} $ProductString .= "' "; if ($NewWindow) {$ProductString .= "target='_blank'";} $ProductString .= " href='" . $ItemLink . "' onclick='RecordView(" . $Product->Item_ID . ");'>"; $ProductString .= $PhotoCode; $ProductString .= "</a>"; $ProductString .= "</div>\n"; $ProductString .= "<div id='prod-cat-mid-div-" . $Product->Item_ID . "' class='prod-cat-mid-detail-div upcp-mid-detail-div'>"; $ProductString .= "<div id='prod-cat-title-" . $Product->Item_ID . "' class='prod-cat-title upcp-detail-title'>" . $Product->Item_Name . "</div>\n"; if ($ReadMore == "Yes") {$ProductString .= "<div id='prod-cat-desc-" . $Product->Item_ID . "' class='prod-cat-desc upcp-detail-desc'>" . strip_tags(substr($Description, 0, $Detail_Desc_Chars));} else {$ProductString .= "<div id='prod-cat-desc-" . $Product->Item_ID . "' class='prod-cat-desc upcp-detail-desc'>" . strip_tags($Description);} if ($ReadMore == "Yes") { if (strlen($Description) > $Detail_Desc_Chars) { $ProductString .= "... <a class='upcp-catalogue-link "; if ($FancyBoxClass and !$NewWindow) {$ProductString .= "fancybox";} $ProductString .= "' "; if ($NewWindow) {$ProductString .= "target='_blank'";} $ProductString .= " href='" . $ItemLink . "' onclick='RecordView(" . $Product->Item_ID . ");'>" . __("Read More", 'UPCP') . "</a>"; } } $ProductString .= AddCustomFields($Product->Item_ID, "details"); $ProductString .= "</div>\n"; $ProductString .= "</div>"; $ProductString .= "<div id='prod-cat-end-div-" . $Product->Item_ID . "' class='prod-cat-end-detail-div upcp-end-detail-div'>"; $ProductString .= "<div id='prod-cat-price-" . $Product->Item_ID . "' class='prod-cat-price upcp-detail-price'>" . $Product->Item_Price . "</div>\n"; $ProductString .= "<a class='upcp-catalogue-link "; if ($FancyBoxClass and !$NewWindow) {$ProductString .= "fancybox";} $ProductString .= "' "; if ($NewWindow) {$ProductString .= "target='_blank'";} $ProductString .= " href='" . $ItemLink . "' onclick='RecordView(" . $Product->Item_ID . ");'>"; $ProductString .= "<div id='prod-cat-details-link-" . $Product->Item_ID . "' class='prod-cat-details-link upcp-detail-details-link'>" . $Details_Text . "</div>\n"; $ProductString .= "</a>"; $ProductString .= "</div>"; } if ($FancyBox_Installed) { $ProductString .= "<div style='display:none;' id='upcp-fb-" . $Product->Item_ID . "'>"; $ProductString .= "<div id='prod-cat-addt-details-" . $Product->Item_ID . "' class='prod-cat-addt-details'>"; $ProductString .= "<div id='prod-cat-addt-details-thumbs-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-thumbs-div'>"; $ProductString .= "<img src='" . $PhotoURL . "' id='prod-cat-addt-details-thumb-P". $Product->Item_ID . "' class='prod-cat-addt-details-thumb' onclick='ZoomImage(\"" . $Product->Item_ID . "\", \"0\");'>"; foreach ($Item_Images as $Image) {$ProductString .= "<img src='" . htmlspecialchars($Image->Item_Image_URL, ENT_QUOTES) . "' id='prod-cat-addt-details-thumb-". $Image->Item_Image_ID . "' class='prod-cat-addt-details-thumb' onclick='ZoomImage(\"" . $Product->Item_ID . "\", \"" . $Image->Item_Image_ID . "\");'>";} $ProductString .= "</div>"; $ProductString .= "<div id='prod-cat-addt-details-right-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-right-div'>"; $ProductString .= "<h2 class='prod-cat-addt-details-title'><a class='no-underline' href='http://" . $_SERVER['HTTP_HOST'] . $FB_Perm_URL . "'>" . $Product->Item_Name . "<img class='upcp-product-url-icon' src='" . get_bloginfo('wpurl') . "/wp-content/plugins/ultimate-product-catalogue/images/insert_link.png' /></a></h2>"; $ProductString .= "<div id='prod-cat-addt-details-main-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-main-div'>"; $ProductString .= "<a class='upcp-no-pointer' onclick='return false'>"; $ProductString .= "<img src='" . $PhotoURL . "' alt='" . $Product->Item_Name . " Image' id='prod-cat-addt-details-main-" . $Product->Item_ID . "' class='prod-cat-addt-details-main'>"; $ProductString .= "</a>"; $ProductString .= "</div>"; $ProductString .= "<div class='upcp-clear'></div>"; $ProductString .= "<div id='prod-cat-addt-details-desc-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-desc-div'>"; $ProductString .= $Description; $ProductString .= AddCustomFields($Product->Item_ID, "details"); $ProductString .= "</div>"; $ProductString .= "</div></div></div>"; //$ProductString .= "</div>"; } // Add hidden fields with the category, sub-category and tag ID's for each product $ProductString .= "<div id='prod-cat-category-jquery-" . $Product->Item_ID . "' class='prod-cat-category-jquery jquery-hidden'> " . $Product->Category_ID . ",</div>\n"; $ProductString .= "<div id='prod-cat-subcategory-jquery-" . $Product->Item_ID . "' class='prod-cat-subcategory-jquery jquery-hidden'> " . $Product->SubCategory_ID . ",</div>\n"; $ProductString .= "<div id='prod-cat-tag-jquery-" . $Product->Item_ID . "' class='prod-cat-tag-jquery jquery-hidden'> " . $TagsString . ",</div>\n"; $ProductString .= "<div id='prod-cat-title-jquery-" . $Product->Item_ID . "' class='prod-cat-title-jquery jquery-hidden'> " . $Product->Item_Name . ",</div>\n"; $ProductString .= "<div class='upcp-clear'></div>\n"; $ProductString .= "</div>\n"; return $ProductString; } function SingleProductPage() { global $wpdb, $items_table_name, $item_images_table_name, $fields_table_name, $fields_meta_table_name, $tagged_items_table_name, $tags_table_name; $Pretty_Links = get_option("UPCP_Pretty_Links"); $Filter_Title = get_option("UPCP_Filter_Title"); $Single_Page_Price = get_option("UPCP_Single_Page_Price"); $Custom_Product_Page = get_option("UPCP_Custom_Product_Page"); $Product_Page_Serialized = get_option("UPCP_Product_Page_Serialized"); $Mobile_Product_Page_Serialized = get_option("UPCP_Product_Page_Serialized_Mobile"); $PP_Grid_Width = get_option("UPCP_PP_Grid_Width"); $PP_Grid_Height = get_option("UPCP_PP_Grid_Height"); $Top_Bottom_Padding = get_option("UPCP_Top_Bottom_Padding"); $Left_Right_Padding = get_option("UPCP_Left_Right_Padding"); $CF_Conversion = get_option("UPCP_CF_Conversion"); $Back_To_Catalogue_Label = get_option("UPCP_Back_To_Catalogue_Label"); if ($Back_To_Catalogue_Label != "") {$Back_To_Catalogue_Text = $Back_To_Catalogue_Label;} else {$Back_To_Catalogue_Text = __("Back to Catalogue", 'UPCP');} if ($Pretty_Links == "Yes") {$Product = $wpdb->get_row("SELECT * FROM $items_table_name WHERE Item_Slug='" . trim(get_query_var('single_product'), "/? ") . "'");} else {$Product = $wpdb->get_row("SELECT * FROM $items_table_name WHERE Item_ID='" . $_GET['SingleProduct'] . "'");} $Item_Images = $wpdb->get_results("SELECT Item_Image_URL, Item_Image_ID FROM $item_images_table_name WHERE Item_ID=" . $Product->Item_ID); $Links = get_option("UPCP_Product_Links"); if ($CF_Conversion != "No") {$Description = ConvertCustomFields($Product->Item_Description);} else {$Description = $Product->Item_Description;} $Description = str_replace("[upcp-price]", $Product->Item_Price, $Description); $Description = do_shortcode($Description); //Edit the title if that option has been selected if ($Filter_Title == "Yes") { add_action( 'init', 'UPCP_Filter_Title', 20, $Product->Item_Name); } //Create the tag string for filtering $Tags = $wpdb->get_results("SELECT Tag_ID FROM $tagged_items_table_name WHERE Item_ID=" . $Product->Item_ID); if (is_array($Tags)) { foreach ($Tags as $Tag) { $TagInfo = $wpdb->get_row("SELECT Tag_Name FROM $tags_table_name WHERE Tag_ID=" . $Tag->Tag_ID); $TagsString .= $TagInfo->Tag_Name . ", "; } } $TagsString = trim($TagsString, " ,"); if ($Product->Item_Photo_URL != "" and strlen($Product->Item_Photo_URL) > 7 and substr($Product->Item_Photo_URL, 0, 7) != "http://") { $PhotoCode = $Product->Item_Photo_URL; $PhotoCode = do_shortcode($PhotoCode); } elseif ($Product->Item_Photo_URL != "" and strlen($Product->Item_Photo_URL) > 7) { $PhotoURL = htmlspecialchars($Product->Item_Photo_URL, ENT_QUOTES); $PhotoCode .= "<img src='" . $PhotoURL . "' alt='" . $Product->Item_Name . " Image' id='prod-cat-addt-details-main-" . $Product->Item_ID . "' class='prod-cat-addt-details-main'>"; $PhotoCodeMobile .= "<img src='" . $PhotoURL . "' alt='" . $Product->Item_Name . " Image' id='prod-cat-addt-details-main-mobile-" . $Product->Item_ID . "' class='prod-cat-addt-details-main'>"; } else { $PhotoURL = plugins_url('ultimate-product-catalogue/images/No-Photo-Available.jpg'); $PhotoCode .= "<img src='" . $PhotoURL . "' alt='" . $Product->Item_Name . " Image' id='prod-cat-addt-details-main-" . $Product->Item_ID . "' class='prod-cat-addt-details-main'>"; $PhotoCodeMobile .= "<img src='" . $PhotoURL . "' alt='" . $Product->Item_Name . " Image' id='prod-cat-addt-details-main-mobile-" . $Product->Item_ID . "' class='prod-cat-addt-details-main'>"; } $uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2); $SP_Perm_URL = $uri_parts[0] . "?" . $uri_parts[1]; $Return_URL = $uri_parts[0]; if ($Pretty_Links == "Yes") {$Return_URL = substr($uri_parts[0], 0, strrpos($uri_parts[0], "/", -2)-8) . "/?" . $uri_parts[1];} elseif ($uri_parts[0] == "/") {$Return_URL .= "?" . substr($uri_parts[1], 0, strpos($uri_parts[1], "&"));} if ($uri_parts[1] == "") {$SP_Perm_URL .= "Product_ID=" . $Product->Item_ID;} else {$SP_Perm_URL .= "&Product_ID=" . $Product->Item_ID;} if ($Custom_Product_Page == "No") { $ProductString .= "<div class='upcp-standard-product-page'>"; $ProductString .= "<div class='prod-cat-back-link'>"; $ProductString .= "<a class='upcp-catalogue-link' href='" . $Return_URL . "'>« " . $Back_To_Catalogue_Text . "</a>"; $ProductString .= "</div>"; $ProductString .= "<div id='prod-cat-addt-details-" . $Product->Item_ID . "' class='prod-cat-addt-details'>"; $ProductString .= "<div id='prod-cat-addt-details-thumbs-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-thumbs-div'>"; if (isset($PhotoURL)) {$ProductString .= "<img src='" . $PhotoURL . "' id='prod-cat-addt-details-thumb-P". $Product->Item_ID . "' class='prod-cat-addt-details-thumb' onclick='ZoomImage(\"" . $Product->Item_ID . "\", \"0\");'>";} foreach ($Item_Images as $Image) {$ProductString .= "<img src='" . htmlspecialchars($Image->Item_Image_URL, ENT_QUOTES) . "' id='prod-cat-addt-details-thumb-". $Image->Item_Image_ID . "' class='prod-cat-addt-details-thumb' onclick='ZoomImage(\"" . $Product->Item_ID . "\", \"" . $Image->Item_Image_ID . "\");'>";} $ProductString .= "</div>"; $ProductString .= "<div id='prod-cat-addt-details-right-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-right-div'>"; $ProductString .= "<h2 class='prod-cat-addt-details-title'><a class='no-underline' href='http://" . $_SERVER['HTTP_HOST'] . $SP_Perm_URL . "'>" . $Product->Item_Name . "<img class='upcp-product-url-icon' src='" . get_bloginfo('wpurl') . "/wp-content/plugins/ultimate-product-catalogue/images/insert_link.png' /></a></h2>"; if ($Single_Page_Price == "Yes") {$ProductString .= "<h3 class='prod-cat-addt-details-price'>" . $Product->Item_Price . "</h3>";} $ProductString .= "<div id='prod-cat-addt-details-main-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-main-div'>"; $ProductString .= $PhotoCode; $ProductString .= "</div>"; $ProductString .= "<div class='upcp-clear'></div>"; $ProductString .= "<div id='prod-cat-addt-details-desc-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-desc-div'>"; $ProductString .= $Description . "</div>"; $ProductString .= "<div class='upcp-clear'></div>\n"; $ProductString .= "</div>\n"; $ProductString .= "</div>\n"; $ProductString .= "</div>\n"; $ProductString .= "<div class='upcp-standard-product-page-mobile'>"; $ProductString .= "<div class='prod-cat-back-link'>"; $ProductString .= "<a class='upcp-catalogue-link' href='" . $Return_URL . "'>« " . $Back_To_Catalogue_Text . "</a>"; $ProductString .= "</div>"; $ProductString .= "<h2 class='prod-cat-addt-details-title'><a class='no-underline' href='http://" . $_SERVER['HTTP_HOST'] . $SP_Perm_URL . "'>" . $Product->Item_Name . "<img class='upcp-product-url-icon' src='" . get_bloginfo('wpurl') . "/wp-content/plugins/ultimate-product-catalogue/images/insert_link.png' /></a></h2>"; if ($Single_Page_Price == "Yes") {$ProductString .= "<h3 class='prod-cat-addt-details-price'>" . $Product->Item_Price . "</h3>";} $ProductString .= $PhotoCodeMobile; $ProductString .= "<div class='upcp-clear'></div>"; $ProductString .= "<div id='prod-cat-addt-details-" . $Product->Item_ID . "' class='prod-cat-addt-details'>"; $ProductString .= "<div id='prod-cat-addt-details-thumbs-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-thumbs-div'>"; if (isset($PhotoURL)) {$ProductString .= "<img src='" . $PhotoURL . "' id='prod-cat-addt-details-thumb-P". $Product->Item_ID . "' class='prod-cat-addt-details-thumb' onclick='ZoomImage(\"" . $Product->Item_ID . "\", \"0\");'>";} foreach ($Item_Images as $Image) {$ProductString .= "<img src='" . htmlspecialchars($Image->Item_Image_URL, ENT_QUOTES) . "' id='prod-cat-addt-details-thumb-". $Image->Item_Image_ID . "' class='prod-cat-addt-details-thumb' onclick='ZoomImage(\"" . $Product->Item_ID . "\", \"" . $Image->Item_Image_ID . "\");'>";} $ProductString .= "<div class='upcp-clear'></div>"; $ProductString .= "</div>"; $ProductString .= "<div id='prod-cat-addt-details-desc-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-desc-div'>"; $ProductString .= $Description . "</div>"; $ProductString .= "<div class='upcp-clear'></div>\n"; $ProductString .= "</div>\n"; $ProductString .= "</div>\n"; } else { if ($Custom_Product_Page == "Large" or $Mobile_Product_Page_Serialized != "") {$ProductString .= "<div class='upcp-custom-large-product-page'>";} echo "<script language='JavaScript' type='text/javascript'>"; echo "var pp_grid_width = " . $PP_Grid_Width . ";"; echo "var pp_grid_height = " . $PP_Grid_Height . ";"; echo "var pp_top_bottom_padding = " . $Top_Bottom_Padding . ";"; echo "var pp_left_right_padding = " . $Left_Right_Padding . ";"; echo "</script>"; $Gridster = json_decode(stripslashes($Product_Page_Serialized)); $ProductString .= "<div class='gridster'>"; $ProductString .= "<ul>"; $ProductString .= BuildGridster($Gridster, $Product, $Item_Images, $Description, $PhotoURL, $SP_Perm_URL, $Return_URL, $TagsString); $ProductString .= "</ul>"; $ProductString .= "</div>"; if ($Custom_Product_Page == "Large") { $ProductString .= "</div>"; $ProductString .= "<div class='upcp-standard-product-page-mobile'>"; $ProductString .= "<div class='prod-cat-back-link'>"; $ProductString .= "<a class='upcp-catalogue-link' href='" . $Return_URL . "'>« " . $Back_To_Catalogue_Text . "</a>"; $ProductString .= "</div>"; $ProductString .= "<h2 class='prod-cat-addt-details-title'><a class='no-underline' href='http://" . $_SERVER['HTTP_HOST'] . $SP_Perm_URL . "'>" . $Product->Item_Name . "<img class='upcp-product-url-icon' src='" . get_bloginfo('wpurl') . "/wp-content/plugins/ultimate-product-catalogue/images/insert_link.png' /></a></h2>"; if ($Single_Page_Price == "Yes") {$ProductString .= "<h3 class='prod-cat-addt-details-price'>" . $Product->Item_Price . "</h3>";} $ProductString .= $PhotoCodeMobile; $ProductString .= "<div class='upcp-clear'></div>"; $ProductString .= "<div id='prod-cat-addt-details-" . $Product->Item_ID . "' class='prod-cat-addt-details'>"; $ProductString .= "<div id='prod-cat-addt-details-thumbs-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-thumbs-div'>"; if (isset($PhotoURL)) {$ProductString .= "<img src='" . $PhotoURL . "' id='prod-cat-addt-details-thumb-P1-". $Product->Item_ID . "' class='prod-cat-addt-details-thumb' onclick='ZoomImage(\"" . $Product->Item_ID . "\", \"0\");'>";} foreach ($Item_Images as $Image) {$ProductString .= "<img src='" . htmlspecialchars($Image->Item_Image_URL, ENT_QUOTES) . "' id='prod-cat-addt-details-thumb-". $Image->Item_Image_ID . "' class='prod-cat-addt-details-thumb' onclick='ZoomImage(\"" . $Product->Item_ID . "\", \"" . $Image->Item_Image_ID . "\");'>";} $ProductString .= "<div class='upcp-clear'></div>"; $ProductString .= "</div>"; $ProductString .= "<div id='prod-cat-addt-details-desc-div-" . $Product->Item_ID . "' class='prod-cat-addt-details-desc-div'>"; $ProductString .= $Description . "</div>"; $ProductString .= "<div class='upcp-clear'></div>\n"; $ProductString .= "</div>\n"; $ProductString .= "</div>\n"; } elseif ($Mobile_Product_Page_Serialized != "") { $ProductString .= "</div>"; $ProductString .= "<div class='upcp-standard-product-page-mobile'>"; $Gridster = json_decode(stripslashes($Mobile_Product_Page_Serialized)); $ProductString .= "<div class='gridster-mobile'>"; $ProductString .= "<ul>"; $ProductString .= BuildGridster($Gridster, $Product, $Item_Images, $Description, $PhotoURL, $SP_Perm_URL, $Return_URL, $TagsString); $ProductString .= "</ul>"; $ProductString .= "</div>"; $ProductString .= "</div>\n"; } } return $ProductString; } function BuildSidebar($category, $subcategory, $tags, $prod_name) { global $wpdb, $Full_Version, $ProdCats, $ProdSubCats, $ProdTags, $ProdCatString, $ProdSubCatString, $ProdTagString; global $categories_table_name, $subcategories_table_name, $tags_table_name; $Color = get_option("UPCP_Color_Scheme"); $Tag_Logic = get_option("UPCP_Tag_Logic"); $ProductSearch = get_option("UPCP_Product_Search"); $Product_Sort = get_option("UPCP_Product_Sort"); $Sidebar_Order = get_option("UPCP_Sidebar_Order"); $Categories_Label = get_option("UPCP_Categories_Label"); $SubCategories_Label = get_option("UPCP_SubCategories_Label"); $Tags_Label = get_option("UPCP_Tags_Label"); $Sort_By_Label = get_option("UPCP_Sort_By_Label"); $Product_Name_Search_Label = get_option("UPCP_Product_Name_Search_Label"); $Product_Search_Text_Label = get_option("UPCP_Product_Name_Text_Label"); if ($Categories_Label != "") {$Categories_Text = $Categories_Label;} else {$Categories_Text = __("Categories:", 'UPCP');} if ($SubCategories_Label != "") {$SubCategories_Text = $SubCategories_Label;} else {$SubCategories_Text = __("Sub-Categories:", 'UPCP');} if ($Tags_Label != "") {$Tags_Text = $Tags_Label;} else {$Tags_Text = __("Tags:", 'UPCP');} if ($Sort_By_Label != "") {$Sort_Text = $Sort_By_Label;} else {$Sort_Text = __('Sort By:', 'UPCP');} if ($Product_Name_Search_Label != "") {$SearchLabel = $Product_Name_Search_Label;} else { if ($ProductSearch == "namedesc" or $ProductSearch == "namedesccust") {$SearchLabel = __("Product Search:", 'UPCP');} else {$SearchLabel = __("Product Name:", 'UPCP');} } if ($prod_name != "") {$Product_Name_Text = $prod_name;} elseif ($Product_Search_Text_Label != "") {$Product_Name_Text = $Product_Search_Text_Label; } else { if ($ProductSearch == "namedesc" or $ProductSearch == "namedesccust") {$Product_Name_Text = __("Search...", 'UPCP');} else {$Product_Name_Text = __("Name...", 'UPCP');} } // Get the categories, sub-categories and tags that apply to the products in the catalog if ($ProdCatString != "") {$Categories = $wpdb->get_results("SELECT Category_ID, Category_Name FROM $categories_table_name WHERE Category_ID in (" . $ProdCatString . ") ORDER BY Category_Name");} if ($ProdSubCatString != "") {$SubCategories = $wpdb->get_results("SELECT SubCategory_ID, SubCategory_Name, Category_ID FROM $subcategories_table_name WHERE SubCategory_ID in (" . $ProdSubCatString . ") ORDER BY SubCategory_Name");} if ($ProdTagString != "") {$Tags = $wpdb->get_results("SELECT Tag_ID, Tag_Name FROM $tags_table_name WHERE Tag_ID in (" . $ProdTagString . ") ORDER BY Tag_Date_Created");} else {$Tags = array();} // My code $SidebarString .= "<table><tbody>"; $SidebarString .= "<form onsubmit='return false;' name='Product_Catalog_Sidebar_Form'>\n"; $SidebarString .= "<tr><td>" . $SearchLabel . "</td></tr>"; $SidebarString .= "<tr><td>"; if ($Filter == "Javascript" and $Tag_Logic == "OR") { $SidebarString .= "<input type='text' id='upcp-name-search' class='jquery-prod-name-text' name='Text_Search' value='" . $Product_Name_Text . "' onfocus='FieldFocus(this);' onblur='FieldBlur(this);' onkeyup='UPCP_Filer_Results_OR();'>\n"; } elseif ($Filter == "Javascript") { $SidebarString .= "<input type='text' id='upcp-name-search' class='jquery-prod-name-text' name='Text_Search' value='" . $Product_Name_Text . "' onfocus='FieldFocus(this);' onblur='FieldBlur(this);' onkeyup='UPCP_Filer_Results();'>\n"; } else { $SidebarString .= "<input type='text' id='upcp-name-search' class='jquery-prod-name-text' name='Text_Search' value='" . $Product_Name_Text . "' onfocus='FieldFocus(this);' onblur='FieldBlur(this);' onkeyup='UPCP_DisplayPage(\"1\");'>\n"; } $SidebarString .= "</td></tr>"; if (sizeof($Categories) > 0) { foreach ($Categories as $key => $row) { $ID[$key] = $row->Category_ID; $Name[$key] = $row->Category_Name; } array_multisort($Name, SORT_ASC, $ID, SORT_DESC, $Categories); unset($ID); unset($Name); $SidebarString .= "<tr><td>" . $Categories_Text . "</td></tr>\n"; foreach ($Categories as $Category) { $SidebarString .= "<tr><td "; if (in_array($Category->Category_ID, $category)) {$SidebarString .= " highlightBlue";} $SidebarString .= "'>\n"; if ($Filter == "Javascript" and $Tag_Logic == "OR") { $SidebarString .= "<input type='checkbox' class='jquery-prod-cat-value' name='Category" . $Category->Category_ID . "' value='" . $Category->Category_ID . "' onclick='UPCP_Filer_Results_OR(); UPCPHighlight(this, \"" . $Color . "\");'>" . $Category->Category_Name . " (" . $ProdCats[$Category->Category_ID] . ")\n"; } elseif ($Filter == "Javascript") { $SidebarString .= "<input type='checkbox' class='jquery-prod-cat-value' name='Category" . $Category->Category_ID . "' value='" . $Category->Category_ID . "' onclick='UPCP_Filer_Results(); UPCPHighlight(this, \"" . $Color . "\");'>" . $Category->Category_Name . " (" . $ProdCats[$Category->Category_ID] . ")\n"; } else { $SidebarString .= "<input type='checkbox' name='Category" . $Category->Category_ID . "' value='" . $Category->Category_ID . "' onclick='UPCP_DisplayPage(\"1\"); UPCPHighlight(this, \"" . $Color . "\");' class='jquery-prod-cat-value'"; if (in_array($Category->Category_ID, $category)) { $SidebarString .= "checked=checked"; } $SidebarString .= "> " . $Category->Category_Name . " (" . $ProdCats[$Category->Category_ID] . ")\n"; } $SidebarString .= "</td></tr>"; if ($Sidebar_Order == "Hierarchical") { foreach ($SubCategories as $SubCategory) { if ($SubCategory->Category_ID == $Category->Category_ID) { $SidebarString .= "<tr><td "; if (in_array($SubCategory->SubCategory_ID, $subcategory)) { $SidebarString .= " highlightBlue"; } $SidebarString .= "'>\n"; if ($Filter == "Javascript" and $Tag_Logic == "OR") { $SidebarString .= "<input type='checkbox' class='jquery-prod-sub-cat-value' name='SubCategory[]' value='" . $SubCategory->SubCategory_ID . "' onclick='UPCP_Filer_Results_OR(); UPCPHighlight(this, \"" . $Color . "\");'> " . $SubCategory->SubCategory_Name . " (" . $ProdSubCats[$SubCategory->SubCategory_ID] . ")\n"; } elseif ($Filter == "Javascript") { $SidebarString .= "<input type='checkbox' class='jquery-prod-sub-cat-value' name='SubCategory[]' value='" . $SubCategory->SubCategory_ID . "' onclick='UPCP_Filer_Results(); UPCPHighlight(this, \"" . $Color . "\");'> " . $SubCategory->SubCategory_Name . " (" . $ProdSubCats[$SubCategory->SubCategory_ID] . ")\n"; } else { $SidebarString .= "<input type='checkbox' name='SubCategory[]' value='" . $SubCategory->SubCategory_ID . "' onclick='UPCP_DisplayPage(\"1\"); UPCPHighlight(this, \"" . $Color . "\");' class='jquery-prod-sub-cat-value'"; if (in_array($SubCategory->SubCategory_ID, $subcategory)) {$SidebarString .= "checked=checked";} $SidebarString .= "> " . $SubCategory->SubCategory_Name . " (" . $ProdSubCats[$SubCategory->SubCategory_ID] . ")\n"; } $SidebarString .= "</td></tr>"; } } } } } if (sizeof($Tags) > 0) { foreach ($Tags as $key => $row) { $ID[$key] = $row->Tag_ID; $Name[$key] = $row->Tag_Name; } array_multisort($Name, SORT_ASC, $ID, SORT_DESC, $Tags); unset($ID); unset($Name); $SidebarString .= "<tr><td>" . $Tags_Text . "</td></tr>"; foreach ($Tags as $Tag) { $SidebarString .= "<tr><td "; if (in_array($Tag->Tag_ID, $tags)) { $SidebarString .= " highlightBlue"; } $SidebarString .= "'>"; if ($Filter == "Javascript" and $Tag_Logic == "OR") { $SidebarString .= "<input type='checkbox' class='jquery-prod-tag-value' name='Tag[]' value='" . $Tag->Tag_ID . "' onclick='UPCP_Filer_Results_OR(); UPCPHighlight(this, \"" . $Color . "\");'>" . $Tag->Tag_Name . "\n"; } elseif ($Filter == "Javascript") { $SidebarString .= "<input type='checkbox' class='jquery-prod-tag-value' name='Tag[]' value='" . $Tag->Tag_ID . "' onclick='UPCP_Filer_Results(); UPCPHighlight(this, \"" . $Color . "\");'> " . $Tag->Tag_Name . "\n"; } else { $SidebarString .= "<input type='checkbox' name='Tag[]' value='" . $Tag->Tag_ID . "' onclick='UPCP_DisplayPage(\"1\"); UPCPHighlight(this, \"" . $Color . "\");' class='jquery-prod-tag-value'"; if (in_array($Tag->Tag_ID, $tags)) { $SidebarString .= "checked=checked"; } $SidebarString .= ">" . $Tag->Tag_Name . "\n"; } $SidebarString .= "</td></tr>"; } } $SidebarString .= "</form></tbody></table>\n"; return $SidebarString; } /*$SidebarString .= "<div id='prod-cat-sidebar-" . $id . "' class='prod-cat-sidebar'>\n"; //$SidebarString .= "<form action='#' name='Product_Catalog_Sidebar_Form'>\n"; $SidebarString .= "<form onsubmit='return false;' name='Product_Catalog_Sidebar_Form'>\n"; //Create the 'Sort By' select box if ($Full_Version == "Yes" and $Product_Sort != "None") { $SidebarString .= "<div id='prod-cat-sort-by' class='prod-cat-sort-by'>"; $SidebarString .= $Sort_Text . "<br>"; $SidebarString .= "<div class='styled-select styled-input'>"; $SidebarString .= "<select name='upcp-sort-by' id='upcp-sort-by' onchange='UPCP_Sort_By();'>"; $SidebarString .= "<option value=''></option>"; if ($Product_Sort == "Price" or $Product_Sort == "Price_Name") { $SidebarString .= "<option value='price_asc'>" . __('Price (Ascending)', 'UPCP') . "</option>"; $SidebarString .= "<option value='price_desc'>" . __('Price (Descending)', 'UPCP') . "</option>"; } if ($Product_Sort == "Name" or $Product_Sort == "Price_Name") { $SidebarString .= "<optio Hi Guys, I have an array that contains a few records from mysql. The array looks like so Array ( [0] => Array ( [id] => 1 [name] => New Product [url] => New-Product [title] => Title Used On Heading [description] => Write a 3 to 5 Paragraph summary of product [preview_image] => 0 [body_image] => 0 [status] => 1 ) [1] => Array ( [id] => 2 [name] => New Product [url] => New-Product [title] => Title Used On Heading [description] => Write a 3 to 5 Paragraph summary of product [preview_image] => 0 [body_image] => 0 [status] => 0 ) ) I am trying to modify the preview_image value on each of the arrays in this array like so; //modify the products array foreach($data['raw_products'] as $data['products']) { //set the preview image row $data['products']['preview_image'] = anchor('admin/list_products/#', "View IMG", array("onHover" => "admin.previewIMG('".$data['products']['preview_image']."')", "class" => "noLink")); //set the body image row $data['products']['body_image'] = anchor('admin/list_products/#', "View IMG", array("onHover" => "admin.bodyIMG('".$data['products']['body_image']."')", "class" => "noLink")); } It works fine for one record, but then when I print_r($data['products']) I only see one record. Any help would be greatly appreciated. Hi I need help adding $inputUri to the function checkURL($string) Hi can someone help me with this. I have a inputbox that displays a default text "Input ID Here...". I need to take $inputUri and check it against function checkUrl($string) to see if its still there. If the text hasn't been cleared then display the addError message Code: [Select] public function checkUrl($string) { $inputUri = 'Input ID Here...'; if(empty($string) || preg_match("#^([A-Z0-9][A-Z0-9_ -]*(?:.[A-Z0-9][A-Z0-9_ -]*)+):?(d+)?/?#i", $string))) { return true; } else { if( isset($this) ) { $this->addError("Error: Input Your ID"); } return false; } } Hi guys. First-timer here, please be gentle. =)
I have 2 files on my server that are virtually identical, except for a script that's only located in one of them. I will soon have to create more similar files with only small changes in each. I'll spare you the long and boring explanation of why, but I now realize that it would be easier if I had a single file with all the code in it, and included that in all the other files. Only problem is, I can't modify included text for unique situations.
Or can I?
It has been brought to my attention that I can fetch the entire thing via file_get_contents(), and modify certain parts of it via str_replace(); so problem solved, right? $content = file_get_contents("code.htm"); $content = str_replace("replace this line","with this line", $content); It works great for short strings, but what about long ones? What if I'm targeting a 100-line javascript function I want stricken on the fly, during the output? I mean I can't exactly just paste 100 lines of code between those quotation marks, can I? Could someone show me what the proper syntax to search/replace a large chunk of code on the fly would be? At first, I pictured something like this... $content = str_replace(" <script type=\"text/javascript\"> |