
Originally Posted by
DrByte
Just FYI ... while we'd hoped to release v1.5.5 sometime in the past 3 days, in some of our testing today we ran into some bugs that will cause SQL query errors in the latest MySQL versions ... and there are still a few mobile-related CSS things we want to tidy up.
We'd rather not release it with known bugs like that, so we'll try again for tomorrow and thru the weekend.
It'll be released as soon as we can.
In the meantime, we want to wish you all a Happy New Year!
Happy New Year ... back at you! Since I've got the chance, I figured that I'd request just a few:
more notifiers:
/includes/classes/order.php:
Code:
function create_add_products($zf_insert_id, $zf_mode = false) {
global $db, $currencies, $order_total_modules, $order_totals;
// initialized for the email confirmation
$this->products_ordered = '';
$this->products_ordered_html = '';
$this->subtotal = 0;
$this->total_tax = 0;
// lowstock email report
$this->email_low_stock='';
for ($i=0, $n=sizeof($this->products); $i<$n; $i++) {
$custom_insertable_text = '';
$this->notify ('NOTIFY_ORDER_CREATE_ADD_PRODUCTS_BEGIN', array ( 'i' => $i)); //-products_options_stock-lat9 *** 1 of 2 ***
$this->doStockDecrement = (STOCK_LIMITED == 'true');
$this->notify('NOTIFY_ORDER_PROCESSING_STOCK_DECREMENT_INIT', array(), $this->products[$i], $i);
// Stock Update - Joao Correia
if ($this->doStockDecrement) {
Code:
$this->notify('NOTIFY_ORDER_PROCESSING_STOCK_DECREMENT_END', $i);
$sql_data_array = array('orders_id' => $zf_insert_id,
'products_id' => zen_get_prid($this->products[$i]['id']),
'products_model' => $this->products[$i]['model'],
'products_name' => $this->products[$i]['name'],
'products_price' => $this->products[$i]['price'],
'final_price' => $this->products[$i]['final_price'],
'onetime_charges' => $this->products[$i]['onetime_charges'],
'products_tax' => $this->products[$i]['tax'],
'products_quantity' => $this->products[$i]['qty'],
'products_priced_by_attribute' => $this->products[$i]['products_priced_by_attribute'],
'product_is_free' => $this->products[$i]['product_is_free'],
'products_discount_type' => $this->products[$i]['products_discount_type'],
'products_discount_type_from' => $this->products[$i]['products_discount_type_from'],
'products_prid' => $this->products[$i]['id']);
zen_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
$order_products_id = $db->Insert_ID();
$this->notify('NOTIFY_ORDER_DURING_CREATE_ADDED_PRODUCT_LINE_ITEM', array_merge(array('orders_products_id' => $order_products_id, 'i' => $i), $sql_data_array), $order_products_id); //-products_options_stock-lat9 *** 2 of 2 ***
$this->notify('NOTIFY_ORDER_PROCESSING_CREDIT_ACCOUNT_UPDATE_BEGIN');
$order_total_modules->update_credit_account($i);//ICW ADDED FOR CREDIT CLASS SYSTEM
Code:
//comments area
if ($this->info['comments']) {
$email_order .= zen_db_output($this->info['comments']) . "\n\n";
$html_msg['ORDER_COMMENTS'] = nl2br(zen_db_output($this->info['comments']));
} else {
$html_msg['ORDER_COMMENTS'] = '';
}
//-bof-multiship-lat9 *** 1 of 2 ***
$this->notify('NOTIFY_ORDER_EMAIL_BEFORE_PRODUCTS', array(), $email_order, $html_msg);
//-eof-multiship-lat9 *** 1 of 2 ***
//products area
$email_order .= EMAIL_TEXT_PRODUCTS . "\n" .
EMAIL_SEPARATOR . "\n" .
$this->products_ordered .
Code:
$html_msg['EMAIL_FIRST_NAME'] = $this->customer['firstname'];
$html_msg['EMAIL_LAST_NAME'] = $this->customer['lastname'];
// $html_msg['EMAIL_TEXT_HEADER'] = EMAIL_TEXT_HEADER;
$html_msg['EXTRA_INFO'] = '';
$this->notify('NOTIFY_ORDER_INVOICE_CONTENT_READY_TO_SEND', array('zf_insert_id' => $zf_insert_id, 'text_email' => $email_order, 'html_email' => $html_msg), $email_order, $html_msg);
//-bof-multiship-lat9 *** 2 of 2 ***
$this->notify('NOTIFY_ORDER_INVOICE_CONTENT_READY_TO_SEND2', array('zf_insert_id' => $zf_insert_id), $email_order, $html_msg);
//-eof-multiship-lat9 *** 2 of 2 ***
/includes/modules/attributes.php:
Code:
$tmp_attributes_image = '';
$tmp_attributes_image_row = 0;
$show_attributes_qty_prices_icon = 'false';
//-bof-attribute_image_swatch-lat9 *** 1 of 4 ***
$zco_notifier->notify('NOTIFY_ATTRIBUTES_MODULE_START_OPTION', $products_options_names->fields);
//-eof-attribute_image_swatch-lat9 *** 1 of 4 ***
while (!$products_options->EOF) {
// reset
$products_options_display_price='';
$new_attributes_price= '';
$price_onetime = '';
$products_options_array[] = array('id' => $products_options->fields['products_options_values_id'],
'text' => $products_options->fields['products_options_values_name']);
//-bof-posm_price_weight-lat9 *** 1 of 1 ***
$zco_notifier->notify ('NOTIFY_ATTRIBUTES_MODULE_START_OPTIONS_LOOP', array (), $products_options->fields);
//-eof-posm_price_weight-lat9 *** 1 of 1 ***
Code:
}
$tmp_html .= $products_options_details;
}
//-bof-attribute_image_swatch-lat9 *** 2 of 4 ***
$zco_notifier->notify('NOTIFY_ATTRIBUTES_MODULE_FORMAT_VALUE', $products_options->fields);
//-eof-attribute_image_swatch-lat9 *** 2 of 4 ***
// collect attribute image if it exists and to be drawn in table below
if ($products_options_names->fields['products_options_images_style'] == '0' or ($products_options_names->fields['products_options_type'] == PRODUCTS_OPTIONS_TYPE_FILE or $products_options_names->fields['products_options_type'] == PRODUCTS_OPTIONS_TYPE_TEXT or $products_options_names->fields['products_options_type'] == '0') ) {
if ($products_options->fields['attributes_image'] != '') {
Code:
}
$options_html_id[] = 'drp-attrib-' . $products_options_names->fields['products_options_id'];
$options_menu[] = zen_draw_radio_field('id[' . $products_options_names->fields['products_options_id'] . ']', $products_options_value_id, 'selected', 'id="' . 'attrib-' . $products_options_names->fields['products_options_id'] . '-' . $products_options_value_id . '"') . '<label class="attribsRadioButton" for="' . 'attrib-' . $products_options_names->fields['products_options_id'] . '-' . $products_options_value_id . '">' . $products_options_details . '</label>' . "\n";
$options_comment[] = $products_options_names->fields['products_options_comment'];
$options_comment_position[] = ($products_options_names->fields['products_options_comment_position'] == '1' ? '1' : '0');
break;
//-bof-attribute_image_swatch-lat9 *** 3 of 4 ***
case ($products_options_names->fields['products_options_type'] == PRODUCTS_OPTIONS_TYPE_SELECT): // Was default:
//-eof-attribute_image_swatch-lat9 *** 3 of 4 ***
// normal dropdown menu display
if (isset($_SESSION['cart']->contents[$prod_id]['attributes'][$products_options_names->fields['products_options_id']])) {
Code:
$options_html_id[] = 'drp-attrib-' . $products_options_names->fields['products_options_id'];
$options_menu[] = zen_draw_pull_down_menu('id[' . $products_options_names->fields['products_options_id'] . ']', $products_options_array, $selected_attribute, 'id="' . 'attrib-' . $products_options_names->fields['products_options_id'] . '"') . "\n";
$options_comment[] = $products_options_names->fields['products_options_comment'];
$options_comment_position[] = ($products_options_names->fields['products_options_comment_position'] == '1' ? '1' : '0');
break;
//-bof-attribute_image_swatch-lat9 *** 4 of 4 ***
default:
$zco_notifier->notify('NOTIFY_ATTRIBUTES_MODULE_DEFAULT_SWITCH', $products_options_names->fields, $options_name, $options_menu, $options_comment, $options_comment_position, $options_html_id);
break;
//-eof-attribute_image_swatch-lat9 *** 4 of 4 ***
/YOUR_ADMIN/attributes_controller.php
Code:
case 'delete_attribute':
// demo active test
if (zen_admin_demo()) {
$_GET['action']= '';
$messageStack->add_session(ERROR_ADMIN_DEMO, 'caution');
zen_redirect(zen_href_link(FILENAME_ATTRIBUTES_CONTROLLER, $_SESSION['page_info'] . '¤t_category_id=' . $_POST['current_category_id']));
}
if (isset($_POST['delete_attribute_id']))
{
$attribute_id = zen_db_prepare_input($_POST['delete_attribute_id']);
//-bof-options_stock-lat9 *** 1 of 3 ***
$zco_notifier->notify ('NOTIFY_ATTRIBUTE_CONTROLLER_DELETE_ATTRIBUTE', array ( 'attribute_id' => $attribute_id));
//-eof-options_stock-lat9 *** 1 of 3 ***
$db->Execute("delete from " . TABLE_PRODUCTS_ATTRIBUTES . "
where products_attributes_id = '" . (int)$attribute_id . "'");
// added for DOWNLOAD_ENABLED. Always try to remove attributes, even if downloads are no longer enabled
$db->Execute("delete from " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . "
where products_attributes_id = '" . (int)$attribute_id . "'");
// reset products_price_sorter for searches etc.
zen_update_products_price_sorter($products_filter);
zen_redirect(zen_href_link(FILENAME_ATTRIBUTES_CONTROLLER, $_SESSION['page_info'] . '¤t_category_id=' . $_POST['current_category_id']));
}
break;
// delete all attributes
case 'delete_all_attributes':
//-bof-options_stock-lat9 *** 2 of 3 ***
$zco_notifier->notify ('NOTIFY_ATTRIBUTE_CONTROLLER_DELETE_ALL', array ( 'pID' => $_POST['products_filter']));
//-eof-options_stock-lat9 *** 2 of 3 ***
zen_delete_products_attributes($_POST['products_filter']);
$messageStack->add_session(SUCCESS_ATTRIBUTES_DELETED . ' ID#' . $products_filter, 'success');
$action='';
$products_filter = (int)$_POST['products_filter'];
// reset products_price_sorter for searches etc.
zen_update_products_price_sorter($products_filter);
zen_redirect(zen_href_link(FILENAME_ATTRIBUTES_CONTROLLER, 'products_filter=' . $products_filter . '¤t_category_id=' . $_POST['current_category_id']));
break;
case 'delete_option_name_values':
//-bof-options_stock-lat9 *** 3 of 3 ***
$zco_notifier->notify ('NOTIFY_ATTRIBUTE_CONTROLLER_DELETE_OPTION_NAME_VALUES', array ( 'pID' => $_POST['products_filter'], 'options_id' => $_POST['products_options_id_all'] ));
//-eof-options_stock-lat9 *** 3 of 3 ***
$delete_attributes_options_id = $db->Execute("select * from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id='" . $_POST['products_filter'] . "' and options_id='" . $_POST['products_options_id_all'] . "'");
while (!$delete_attributes_options_id->EOF) {
// remove any attached downloads
$remove_downloads = $db->Execute("delete from " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " where products_attributes_id= '" . $delete_attributes_options_id->fields['products_attributes_id'] . "'");
// remove all option values
/YOUR_ADMIN/options_values_manager.php
Code:
case 'delete_value':
// demo active test
if (zen_admin_demo()) {
$_GET['action']= '';
$messageStack->add_session(ERROR_ADMIN_DEMO, 'caution');
zen_redirect(zen_href_link(FILENAME_OPTIONS_VALUES_MANAGER, $_SESSION['page_info']));
}
$value_id = zen_db_prepare_input($_GET['value_id']);
//-bof-options_stock-lat9 *** 1 of 1 ***
$zco_notifier->notify ('OPTIONS_VALUES_MANAGER_DELETE_VALUE', array ( 'value_id' => $value_id ));
//-eof-options_stock-lat9 *** 1 of 1 ***
/YOUR_ADMIN/includes/classes/order.php
Code:
class order extends base { //-products_options_stock-lat9 (Added 'extends base') *** 1 of 2 ***
var $info, $totals, $products, $customer, $delivery;
and, at the very end of the file:
Code:
//-bof-products_options_stock-lat9 *** 2 of 2 ***
$this->notify ('ORDER_QUERY_ADMIN_COMPLETE', array ('orders_id' => $order_id));
//-eof-products_options_stock-lat9 *** 2 of 2 ***
}
}
Bookmarks