Execute($query); if (!$result->RecordCount()) { oos_redirect_admin(oos_href_link_admin($aContents['forbiden'])); } } } } function oos_admin_check_boxes($filename, $boxes ='') { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $is_boxes = 1; if ($boxes == 'sub_boxes') { $is_boxes = 0; } $admin_filestable = $oostable['admin_files']; $query = "SELECT admin_files_id FROM $admin_filestable WHERE FIND_IN_SET( '" . intval($_SESSION['login_groups_id']) . "', admin_groups_id) AND admin_files_is_boxes = '" . intval($is_boxes) . "' AND admin_files_name = '" . oos_db_input($filename) . "'"; $result = $dbconn->Execute($query); $return_value = FALSE; if ($result->RecordCount()) { $return_value = TRUE; } return $return_value; } function oos_admin_files_boxes($filename, $parameters) { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $aContents = oos_get_content(); $admin_filestable = $oostable['admin_files']; $query = "SELECT admin_files_name FROM $admin_filestable WHERE FIND_IN_SET( '" . intval($_SESSION['login_groups_id']) . "', admin_groups_id) AND admin_files_is_boxes = '0' AND admin_files_name = '" . oos_db_input($filename) . "'"; $result = $dbconn->Execute($query); if ($result->RecordCount()) { return oos_href_link_admin($aContents[$filename], $parameters); } return; } function oos_selected_file($filename) { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $aContents = oos_get_content(); $randomize = 'admin_account'; $admin_filestable = $oostable['admin_files']; $query = "SELECT admin_files_id AS boxes_id FROM $admin_filestable WHERE FIND_IN_SET( '" . intval($_SESSION['login_groups_id']) . "', admin_groups_id) AND admin_files_is_boxes = '1' AND admin_files_name = '" . oos_db_input($filename) . "'"; $result = $dbconn->Execute($query); if ($result->RecordCount()) { $boxes_id = $result->fields; $admin_filestable = $oostable['admin_files']; $randomize_query = "SELECT admin_files_name FROM $admin_filestable WHERE FIND_IN_SET( '" . intval($_SESSION['login_groups_id']) . "', admin_groups_id) AND admin_files_is_boxes = '0' AND admin_files_to_boxes = '" . intval($boxes_id['boxes_id']) . "'"; $randomize_result = $dbconn->Execute($randomize_query); if ($randomize_result->RecordCount()) { $randomize = $randomize_result->fields['admin_files_name']; } } return $aContents[$randomize]; } /** * Redirect to another page or site * * @param $url */ function oos_redirect_admin($url) { if ( (strstr($url, "\n") != FALSE) || (strstr($url, "\r") != FALSE) ) { $aContents = oos_get_content(); oos_redirect_admin(oos_href_link_admin($aContents['default'], '', FALSE)); } if ( strpos($url, '&') !== FALSE ) { $url = str_replace('&', '&', $url); } header('Location: ' . $url); exit; } function oos_customers_name($customers_id) { $sName = ''; // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $customerstable = $oostable['customers']; $query = "SELECT customers_firstname, customers_lastname FROM $customerstable WHERE customers_id = '" . intval($customers_id) . "'"; $result = $dbconn->Execute($query); $sName = $result->fields['customers_firstname'] . ' ' . $result->fields['customers_lastname']; return $sName; } function oos_get_all_get_params($exclude_array = '') { GLOBAL $session; if ($exclude_array == '') $exclude_array = array(); $get_url = ''; reset($_GET); foreach ($_GET as $key => $value) { if (($key != $session->getName()) && ($key != 'error') && (!oos_in_array($key, $exclude_array))) $get_url .= $key . '=' . $value . '&'; } return $get_url; } /** * ready operating system output *
* Gets a variable, cleaning it up such that any attempts * to access files outside of the scope of the PostNuke * system is not allowed * @author PostNuke Content Management System * @copyright Copyright (C) 2001 by the Post-Nuke Development Team. * @version Revision: 2.0 - changed by Author: r23 on Date: 2004/01/12 06:02:08 * @access private * @param var variable to prepare * @param ... * @returns string/array * in, otherwise an array of prepared variables */ function oos_var_prep_for_os() { static $search = array('!\.\./!si', // .. (directory traversal) '!^.*://!si', // .*:// (start of URL) '!/!si', // Forward slash (directory traversal) '!\\\\!si'); // Backslash (directory traversal) static $replace = array('', '', '_', '_'); $resarray = array(); foreach (func_get_args() as $ourvar) { // Parse out bad things $ourvar = preg_replace($search, $replace, $ourvar); // Prepare var if (!get_magic_quotes_runtime()) { $ourvar = addslashes($ourvar); } // Add to array array_push($resarray, $ourvar); } // Return vars if (func_num_args() == 1) { return $resarray[0]; } else { return $resarray; } } function oos_get_content() { GLOBAL $aContents; return $aContents; } function oos_datetime_short($raw_datetime) { if ( ($raw_datetime == '0000-00-00 00:00:00') || ($raw_datetime == '') ) return FALSE; $year = (int)substr($raw_datetime, 0, 4); $month = (int)substr($raw_datetime, 5, 2); $day = (int)substr($raw_datetime, 8, 2); $hour = (int)substr($raw_datetime, 11, 2); $minute = (int)substr($raw_datetime, 14, 2); $second = (int)substr($raw_datetime, 17, 2); return strftime(DATE_TIME_FORMAT, mktime($hour, $minute, $second, $month, $day, $year)); } function oos_in_array($lookup_value, $lookup_array) { if (in_array($lookup_value, $lookup_array)) return TRUE; return FALSE; } function oos_break_string($string, $len, $break_char = '-') { $l = 0; $output = ''; for ($i = 0; $i < strlen($string); $i++) { $char = substr($string, $i, 1); if ($char != ' ') { $l++; } else { $l = 0; } if ($l > $len) { $l = 1; $output .= $break_char; } $output .= $char; } return $output; } function oos_browser_detect($component) { return stristr($_SERVER['HTTP_USER_AGENT'], $component); } /** * Parse and output a user submited value * * @param string $sStr The string to parse and output * @param array $aTranslate An array containing the characters to parse * @access public */ function oos_output_string($sStr, $aTranslate = null) { if (empty($aTranslate)) { $aTranslate = array('"' => '"'); } return strtr(trim($sStr), $aTranslate); } function oos_address_format($address_format_id, $address, $html, $boln, $eoln) { $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $address_formattable = $oostable['address_format']; $query = "SELECT address_format as format FROM $address_formattable WHERE address_format_id = '" . intval($address_format_id) . "'"; $result = $dbconn->Execute($query); $address_format = $result->fields; $company = addslashes($address['company']); $firstname = addslashes($address['firstname']); $lastname = addslashes($address['lastname']); $street = addslashes($address['street_address']); $city = addslashes($address['city']); $state = addslashes($address['state']); $country_id = $address['country_id']; $zone_id = $address['zone_id']; $postcode = addslashes($address['postcode']); $zip = $postcode; $country = oos_get_country_name($country_id); $state = oos_get_zone_code($country_id, $zone_id, $state); if ($html) { // HTML Mode $HR = '
'; $hr = '
'; if ( ($boln == '') && ($eoln == "\n") ) { // Values not specified, use rational defaults $CR = '
'; $cr = '
'; $eoln = $cr; } else { // Use values supplied $CR = $eoln . $boln; $cr = $CR; } } else { // Text Mode $CR = $eoln; $cr = $CR; $HR = '----------------------------------------'; $hr = '----------------------------------------'; } $statecomma = ''; $streets = $street; if ($firstname == '') $firstname = addslashes($address['name']); if ($country == '') $country = addslashes($address['country']); if ($state != '') $statecomma = $state . ', '; $fmt = $address_format['format']; eval("\$address = \"$fmt\";"); $address = stripslashes($address); if ( (ACCOUNT_COMPANY == 'true') && (oos_is_not_null($company)) ) { $address = $company . $cr . $address; } return $boln . $address . $eoln; } function oos_get_zone_code($country, $zone, $def_state) { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $zonestable = $oostable['zones']; $query = "SELECT zone_code FROM $zonestable WHERE zone_country_id = '" . intval($country) . "' AND zone_id = '" . intval($zone) . "'"; $result = $dbconn->Execute($query); if (!$result->RecordCount()) { $state_prov_code = $def_state; } else { $state_prov_values = $result->fields; $state_prov_code = $state_prov_values['zone_code']; } return $state_prov_code; } function oos_get_country_name($country_id) { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $countriestable = $oostable['countries']; $query = "SELECT countries_name FROM $countriestable WHERE countries_id = '" . $country_id . "'"; $result = $dbconn->Execute($query); if (!$result->RecordCount()) { return $country_id; } else { return $result->fields['countries_name']; } } function oos_get_uprid($prid, $params) { $uprid = $prid; if ( (is_array($params)) && (!strstr($prid, '{')) ) { foreach ($params as $option => $value) { $uprid = $uprid . '{' . $option . '}' . $value; } } return $uprid; } function oos_get_prid($uprid) { $pieces = explode ('{', $uprid); return $pieces[0]; } function oos_get_languages() { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $aLanguages = array(); $languagestable = $oostable['languages']; $query = "SELECT languages_id, name, iso_639_2, iso_639_1, iso_3166_1 FROM $languagestable WHERE status = '1' ORDER BY sort_order"; $result = $dbconn->Execute($query); while ($languages = $result->fields) { $aLanguages[] = array('id' => $languages['languages_id'], 'name' => $languages['name'], 'iso_639_2' => $languages['iso_639_2'], 'iso_639_1' => $languages['iso_639_1'], 'iso_3166_1' => $languages['iso_3166_1'] ); // Move that ADOdb pointer! $result->MoveNext(); } return $aLanguages; } /** * Return Products Name * * @param $product_id * @param $language * @return string */ function oos_get_products_name($product_id, $language_id = '') { if (empty($language_id) || !is_numeric($language_id)) $language_id = intval($_SESSION['language_id']); // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $products_descriptiontable = $oostable['products_description']; $query = "SELECT products_name FROM $products_descriptiontable WHERE products_id = '" . intval($product_id) . "' AND products_languages_id = '" . intval($language_id) . "'"; $result = $dbconn->Execute($query); $products_name = $result->fields['products_name']; return $products_name; } /** * Return Products Page Title for SEO * * @param $product_id * @param $language * @return string */ function oos_get_products_title($product_id, $language_id = '') { if (empty($language_id) || !is_numeric($language_id)) $language_id = intval($_SESSION['language_id']); // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $products_descriptiontable = $oostable['products_description']; $query = "SELECT products_title FROM $products_descriptiontable WHERE products_id = '" . intval($product_id) . "' AND products_languages_id = '" . intval($language_id) . "'"; $result = $dbconn->Execute($query); $products_title = $result->fields['products_title']; return $products_title; } function oos_get_countries($default = '') { $countries_array = array(); if ($default) { $countries_array[] = array('id' => '', 'text' => $default); } // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $countriestable = $oostable['countries']; $query = "SELECT countries_id, countries_name FROM $countriestable ORDER BY countries_name"; $result = $dbconn->Execute($query); while ($countries = $result->fields) { $countries_array[] = array('id' => $countries['countries_id'], 'text' => $countries['countries_name']); // Move that ADOdb pointer! $result->MoveNext(); } return $countries_array; } function oos_get_country_zones($country_id) { $zones_array = array(); // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $zonestable = $oostable['zones']; $query = "SELECT zone_id, zone_name FROM $zonestable WHERE zone_country_id = '" . intval($country_id) . "' ORDER BY zone_name"; $result = $dbconn->Execute($query); while ($zones = $result->fields) { $zones_array[] = array('id' => $zones['zone_id'], 'text' => $zones['zone_name']); // Move that ADOdb pointer! $result->MoveNext(); } return $zones_array; } function oos_prepare_country_zones_pull_down($country_id = '') { // preset the width of the drop-down for Netscape $pre = ''; if ( (!oos_browser_detect('MSIE')) && (oos_browser_detect('Mozilla/4')) ) { for ($i=0; $i<45; $i++) $pre .= ' '; } $zones = oos_get_country_zones($country_id); if (count($zones) > 0) { $zones_select = array(array('id' => '', 'text' => PLEASE_SELECT)); $zones = array_merge($zones_select, $zones); } else { $zones = array(array('id' => '', 'text' => TYPE_BELOW)); // create dummy options for Netscape to preset the height of the drop-down if ( (!oos_browser_detect('MSIE')) && (oos_browser_detect('Mozilla/4')) ) { for ($i=0; $i<9; $i++) { $zones[] = array('id' => '', 'text' => $pre); } } } return $zones; } function oos_get_uploaded_file($filename) { if (isset($_FILES[$filename])) { $uploaded_file = array('name' => $_FILES[$filename]['name'], 'type' => $_FILES[$filename]['type'], 'size' => $_FILES[$filename]['size'], 'tmp_name' => $_FILES[$filename]['tmp_name']); } return $uploaded_file; } function oos_get_copy_uploaded_file($filename, $target) { if (substr($target, -1) != '/') $target .= '/'; $target .= $filename['name']; move_uploaded_file($filename['tmp_name'], $target); @chmod($target, 0644); } function oos_remove_product($product_id) { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $productstable = $oostable['products']; $product_image_query = "SELECT products_image FROM $productstable WHERE products_id = '" . intval($product_id) . "'"; $product_image_result = $dbconn->Execute($product_image_query); $product_image = $product_image_result->fields; $productstable = $oostable['products']; $duplicate_query = "SELECT COUNT(*) AS total FROM $productstable WHERE products_image = '" . oos_db_input($product_image['products_image']) . "'"; $duplicate_result = $dbconn->Execute($duplicate_query); $duplicate_image = $duplicate_result->fields; if ($duplicate_image['total'] < 2) { if (file_exists(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/originals/' . $product_image['products_image'])) { @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/large/' . $product_image['products_image']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/medium/' . $product_image['products_image']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/medium_large/' . $product_image['products_image']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/small/' . $product_image['products_image']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/min/' . $product_image['products_image']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/originals/' . $product_image['products_image']); } } $products_imagestable = $oostable['products_images']; $product_image_query = "SELECT image_name FROM $products_imagestable WHERE products_id = '" . intval($product_id) . "'"; $products_image_result = $dbconn->Execute($product_image_query); while ($product_image = $products_image_result->fields) { $duplicate_query = "SELECT COUNT(*) AS total FROM $products_imagestable WHERE image_name = '" . oos_db_input($product_image['image_name']) . "'"; $duplicate_image_result = $dbconn->Execute($duplicate_query); $duplicate_image = $duplicate_image_result->fields; if ($duplicate_image['total'] < 2) { if (file_exists(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/originals/' . $product_image['image_name'])) { @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/large/' . $product_image['image_name']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/medium/' . $product_image['image_name']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/medium_large/' . $product_image['image_name']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/small/' . $product_image['image_name']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/min/' . $product_image['image_name']); @unlink(OOS_ABSOLUTE_PATH . OOS_IMAGES . 'product/originals/' . $product_image['image_name']); } } // Move that ADOdb pointer! $products_image_result->MoveNext(); } $dbconn->Execute("DELETE FROM " . $oostable['specials'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['products'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['products_to_categories'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['products_description'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['products_attributes'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['customers_basket'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['customers_basket_attributes'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['customers_wishlist'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['customers_wishlist_attributes'] . " WHERE products_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['products_to_master'] . " WHERE master_id = '" . intval($product_id) . "' OR slave_id = '" . intval($product_id) . "'"); $dbconn->Execute("DELETE FROM " . $oostable['products_images'] . " WHERE products_id = '" . intval($product_id) . "'"); $reviewstable = $oostable['reviews']; $reviews_query = "SELECT reviews_id FROM $reviewstable WHERE products_id = '" . intval($product_id) . "'"; $reviews_result = $dbconn->Execute($reviews_query); while ($product_reviews = $reviews_result->fields) { $dbconn->Execute("DELETE FROM " . $oostable['reviews_description'] . " WHERE reviews_id = '" . intval($product_reviews['reviews_id']) . "'"); // Move that ADOdb pointer! $reviews_result->MoveNext(); } $dbconn->Execute("DELETE FROM " . $oostable['reviews'] . " WHERE products_id = '" . intval($product_id) . "'"); } function oos_class_exits($class_name) { if (function_exists('class_exists')) { return class_exists($class_name); } else { return TRUE; } } function oos_remove($source) { GLOBAL $messageStack, $oos_remove_error; if (isset($oos_remove_error)) $oos_remove_error = FALSE; if (is_dir($source)) { $dir = dir($source); while ($file = $dir->read()) { if ( ($file != '.') && ($file != '..') ) { if (is_writeable($source . '/' . $file)) { oos_remove($source . '/' . $file); } else { $messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source . '/' . $file), 'error'); $oos_remove_error = TRUE; } } } $dir->close(); if (is_writeable($source)) { rmdir($source); } else { $messageStack->add(sprintf(ERROR_DIRECTORY_NOT_REMOVEABLE, $source), 'error'); $oos_remove_error = TRUE; } } else { if (is_writeable($source)) { unlink($source); } else { $messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source), 'error'); $oos_remove_error = TRUE; } } } /** * rounding the price */ function oos_round($number, $precision) { if (strpos($number, '.') && (strlen(substr($number, strpos($number, '.')+1)) > $precision)) { $number = substr($number, 0, strpos($number, '.') + 1 + $precision + 1); if (substr($number, -1) >= 5) { if ($precision > 1) { $number = substr($number, 0, -1) + ('0.' . str_repeat(0, $precision-1) . '1'); } elseif ($precision == 1) { $number = substr($number, 0, -1) + 0.1; } else { $number = substr($number, 0, -1) + 1; } } else { $number = substr($number, 0, -1); } } return $number; } function oos_get_tax_rate_value($class_id) { return oos_get_tax_rate($class_id, -1, -1); } function oos_display_tax_value($value, $padding = TAX_DECIMAL_PLACES) { if (strpos($value, '.')) { $loop = TRUE; while ($loop) { if (substr($value, -1) == '0') { $value = substr($value, 0, -1); } else { $loop = FALSE; if (substr($value, -1) == '.') { $value = substr($value, 0, -1); } } } } if ($padding > 0) { if ($decimal_pos = strpos($value, '.')) { $decimals = strlen(substr($value, ($decimal_pos+1))); for ($i=$decimals; $i<$padding; $i++) { $value .= '0'; } } else { $value .= '.'; for ($i=0; $i<$padding; $i++) { $value .= '0'; } } } return $value; } function oos_add_tax($price, $tax) { GLOBAL $currencies; if (DISPLAY_PRICE_WITH_TAX == 'true') { return round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']) + oos_calculate_tax($price, $tax); } else { return round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']); } } /** * Returns the tax rate for a zone / class * * @param $class_id * @param $country_id * @param $zone_id */ function oos_get_tax_rate($class_id, $country_id = -1, $zone_id = -1) { if ( ($country_id == -1) && ($zone_id == -1) ) { if (!isset($_SESSION['customer_id'])) { $country_id = STORE_COUNTRY; $zone_id = STORE_ZONE; } else { $country_id = $_SESSION['customer_country_id']; $zone_id = $_SESSION['customer_zone_id']; } } // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $tax_ratestable = $oostable['tax_rates']; $zones_to_geo_zonestable = $oostable['zones_to_geo_zones']; $geo_zonestable = $oostable['geo_zones']; $query = "SELECT SUM(tax_rate) AS tax_rate FROM $tax_ratestable tr LEFT JOIN $zones_to_geo_zonestable za ON (tr.tax_zone_id = za.geo_zone_id) LEFT JOIN $geo_zonestable tz ON (tz.geo_zone_id = tr.tax_zone_id) WHERE (za.zone_country_id IS null or za.zone_country_id = '0' OR za.zone_country_id = '" . intval($country_id) . "') AND (za.zone_id is null OR za.zone_id = '0' OR za.zone_id = '" . intval($zone_id) . "') AND tr.tax_class_id = '" . intval($class_id) . "' GROUP BY tr.tax_priority"; $result = $dbconn->Execute($query); if ($result->RecordCount()) { $tax_multiplier = 0; while ($tax = $result->fields) { $tax_multiplier += $tax['tax_rate']; // Move that ADOdb pointer! $result->MoveNext(); } return $tax_multiplier; } else { return 0; } } function oos_calculate_tax($price, $tax) { GLOBAL $currencies; return round($price * $tax / 100, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']); } function oos_call_function($function, $parameter, $object = '') { if ($object == '') { return call_user_func($function, $parameter); } else { return call_user_func(array($object, $function), $parameter); } } function oos_get_serialized_variable(&$serialization_data, $variable_name, $variable_type = 'string') { $serialized_variable = ''; switch ($variable_type) { case 'string': $start_position = strpos($serialization_data, $variable_name . '|s'); $serialized_variable = substr($serialization_data, strpos($serialization_data, '|', $start_position) + 1, strpos($serialization_data, '|', $start_position) - 1); break; case 'array': case 'object': if ($variable_type == 'array') { $start_position = strpos($serialization_data, $variable_name . '|a'); } else { $start_position = strpos($serialization_data, $variable_name . '|O'); } $tag = 0; for ($i=$start_position, $n=sizeof($serialization_data); $i<$n; $i++) { if ($serialization_data[$i] == '{') { $tag++; } elseif ($serialization_data[$i] == '}') { $tag--; } elseif ($tag < 1) { break; } } $serialized_variable = substr($serialization_data, strpos($serialization_data, '|', $start_position) + 1, $i - strpos($serialization_data, '|', $start_position) - 1); break; } return $serialized_variable; } function oos_prepare_input($string) { if (is_array ($string)) return $string; if (get_magic_quotes_gpc()) { $string = stripslashes($string); } $string = trim($string); return $string; } /** * Return File Extension * * @param $filename * @return string */ function oos_get_extension($filename) { $filename = strtolower($filename); $extension = explode("[/\\.]", $filename); $n = count($extension)-1; $extension = $extension[$n]; return $extension; } function oos_strtolower ($sStr) { $sStr = strtolower($sStr); // Strip non-alpha & non-numeric except ._-: return preg_replace ("/[^[:alnum:]]/", "", $sStr); } function oos_strtoupper ($sStr) { $sStr = strtoupper($sStr); // Strip non-alpha & non-numeric except ._-: return preg_replace ("/[^[:alnum:]]/", "", $sStr); } function oos_set_review_status($reviews_id, $status) { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $reviewstable = $oostable['reviews']; $query = "UPDATE $reviewstable SET reviews_status = '" . intval($status) . "' WHERE reviews_id = '" . intval($reviews_id) . "'"; $result = $dbconn->Execute($query); return; } /** * Parses a byte size from a size value (eg: 100M) for comparison. */ function parse_size($size) { $suffixes = array( '' => 1, 'k' => 1024, 'm' => 1048576, // 1024 * 1024 'g' => 1073741824, // 1024 * 1024 * 1024 ); if (preg_match('/([0-9]+)\s*(k|m|g)?(b?(ytes?)?)/i', $size, $match)) { return $match[1] * $suffixes[strtolower($match[2])]; } } /** * Mail function (uses phpMailer) */ function oos_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) { if (preg_match('~[\r\n]~', $to_name)) return FALSE; if (preg_match('~[\r\n]~', $to_email_address)) return FALSE; if (preg_match('~[\r\n]~', $email_subject)) return FALSE; if (preg_match('~[\r\n]~', $from_email_name)) return FALSE; if (preg_match('~[\r\n]~', $from_email_address)) return FALSE; $sLang = (isset($_SESSION['iso_639_1']) ? $_SESSION['iso_639_1'] : 'en'); // Instantiate a new mail object // (Re)create it, if it's gone missing if ( !is_object( $mail ) || !is_a( $mail, 'PHPMailer' ) ) { require_once MYOOS_INCLUDE_PATH . '/includes/lib/phpmailer/class.phpmailer.php'; require_once MYOOS_INCLUDE_PATH . '/includes/lib/phpmailer/class.smtp.php'; // Instantiate a new mail object $mail = new PHPMailer( TRUE ); } $mail->PluginDir = OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/'; $mail->SetLanguage( $sLang, OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/language/' ); $mail->CharSet = CHARSET; $mail->IsMail(); $mail->From = $from_email_address ? $from_email_address : STORE_OWNER_EMAIL_ADDRESS; $mail->FromName = $from_email_name ? $from_email_name : STORE_OWNER; $mail->Mailer = EMAIL_TRANSPORT; // Add smtp values if needed if ( EMAIL_TRANSPORT == 'smtp' ) { $mail->IsSMTP(); // set mailer to use SMTP $mail->SMTPAuth = OOS_SMTPAUTH; // turn on SMTP authentication $mail->Username = OOS_SMTPUSER; // SMTP username $mail->Password = OOS_SMTPPASS; // SMTP password $mail->Host = OOS_SMTPHOST; // specify main and backup server } else { // Set sendmail path if ( EMAIL_TRANSPORT == 'sendmail' ) { if (!oos_empty(OOS_SENDMAIL)) { $mail->Sendmail = OOS_SENDMAIL; $mail->IsSendmail(); } } } $mail->AddAddress($to_email_address, $to_name); $mail->Subject = $email_subject; // Build the text version $text = strip_tags($email_text); if (EMAIL_USE_HTML == 'true') { $mail->IsHTML(TRUE); $mail->Body = $email_text; $mail->AltBody = $text; } else { $mail->Body = $text; } // Send message $mail->Send(); }