Esempio n. 1
0
 if (isset($_POST['categories_id'])) {
     $categories_id = zen_db_prepare_input($_POST['categories_id']);
     // create list of any subcategories in the selected category,
     $categories = zen_get_category_tree($categories_id, '', '0', '', true);
     zen_set_time_limit(600);
     // loop through this cat and subcats for delete-processing.
     for ($i = 0, $n = sizeof($categories); $i < $n; $i++) {
         $sql = "select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id='" . $categories[$i]['id'] . "'";
         $category_products = $db->Execute($sql);
         while (!$category_products->EOF) {
             $cascaded_prod_id_for_delete = $category_products->fields['products_id'];
             $cascaded_prod_cat_for_delete = array();
             $cascaded_prod_cat_for_delete[] = $categories[$i]['id'];
             //echo 'processing product_id: ' . $cascaded_prod_id_for_delete . ' in category: ' . $cascaded_prod_cat_for_delete . '<br>';
             // determine product-type-specific override script for this product
             $product_type = zen_get_products_type($category_products->fields['products_id']);
             // now loop thru the delete_product_confirm script for each product in the current category
             if (file_exists(DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php')) {
                 require DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php';
             } else {
                 require DIR_WS_MODULES . 'delete_product_confirm.php';
             }
             // THIS LINE COMMENTED BECAUSE IT'S DONE ALREADY DURING DELETE_PRODUCT_CONFIRM.PHP:
             //zen_remove_product($category_products->fields['products_id'], $delete_linked);
             $category_products->MoveNext();
         }
         zen_remove_category($categories[$i]['id']);
     }
     // end for loop
 }
 zen_redirect(zen_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath));
Esempio n. 2
0
 case 'setflag':
     if ($_GET['flag'] == '0' || $_GET['flag'] == '1') {
         if (isset($_GET['pID'])) {
             zen_set_product_status($_GET['pID'], $_GET['flag']);
         }
     }
     zen_redirect(zen_href_link(FILENAME_CATEGORIES, 'cPath=' . $_GET['cPath'] . '&pID=' . $_GET['pID'] . (isset($_GET['page']) ? '&page=' . $_GET['page'] : '')));
     break;
 case 'delete_product_confirm':
     $delete_linked = 'true';
     if ($_POST['delete_linked'] == 'delete_linked_no') {
         $delete_linked = 'false';
     } else {
         $delete_linked = 'true';
     }
     $product_type = zen_get_products_type($_POST['products_id']);
     if (file_exists(DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php')) {
         require DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php';
     } else {
         require DIR_WS_MODULES . 'delete_product_confirm.php';
     }
     break;
 case 'move_product_confirm':
     if (file_exists(DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/move_product_confirm.php')) {
         require DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/move_product_confirm.php';
     } else {
         require DIR_WS_MODULES . 'move_product_confirm.php';
     }
     break;
 case 'insert_product_meta_tags':
 case 'update_product_meta_tags':
        ?>
</td>
      </tr>

      <tr>
        <td colspan="2"><table border="1" cellspacing="2" cellpadding="4" align="left">
          <tr>
            <td colspan="7" class="main" align="center">
              <?php 
        echo TEXT_PRODUCTS_LISTING . TEXT_PRODUCTS_ID . $products_filter . TEXT_PRODUCT_IN_CATEGORY_NAME . zen_get_category_name(zen_get_products_category_id($products_filter), (int) $_SESSION['languages_id']) . '<br />' . zen_get_products_name($products_filter);
        ?>
            </td>
          </tr>
          <tr>
            <td class="smallText" align="center"><?php 
        echo '<a href="' . zen_href_link(FILENAME_CATEGORIES, 'action=new_product' . '&cPath=' . zen_get_product_path($products_filter) . '&pID=' . $products_filter . '&product_type=' . zen_get_products_type($products_filter)) . '">' . zen_image_button('button_edit_product.gif', IMAGE_EDIT_PRODUCT) . '<br />' . TEXT_PRODUCT_EDIT . '</a>';
        ?>
</td>
            <td class="smallText" align="center">
              <?php 
        if ($zc_products->get_allow_add_to_cart($products_filter) == "Y") {
            echo '<a href="' . zen_href_link(FILENAME_PRODUCTS_PRICE_MANAGER, '&products_filter=' . $products_filter . '&current_category_id=' . $current_category_id) . '">' . zen_image_button('button_products_price_manager.gif', IMAGE_PRODUCTS_PRICE_MANAGER) . '<br />' . TEXT_PRODUCTS_PRICE_MANAGER . '</a>';
        } else {
            echo TEXT_INFO_ALLOW_ADD_TO_CART_NO;
        }
        ?>
            </td>
<?php 
        if (zen_has_product_attributes($products_filter, 'false')) {
            ?>
            <td class="smallText" align="center"><?php 
Esempio n. 4
0
                    $specials_current_price = zen_get_products_base_price($sInfo->products_id);
                } else {
                    $specials_current_price = $sInfo->products_price;
                }
                $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_SPECIALS, 'page=' . $_GET['page'] . '&sID=' . $sInfo->specials_id . '&action=edit') . '">' . zen_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . zen_href_link(FILENAME_SPECIALS, 'page=' . $_GET['page'] . '&sID=' . $sInfo->specials_id . '&action=delete') . '">' . zen_image_button('button_delete.gif', IMAGE_DELETE) . '</a>');
                $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_PRODUCTS_PRICE_MANAGER, 'action=edit&products_filter=' . $sInfo->products_id) . '">' . zen_image_button('button_products_price_manager.gif', IMAGE_PRODUCTS_PRICE_MANAGER) . '</a>');
                $contents[] = array('text' => '<br>' . TEXT_INFO_DATE_ADDED . ' ' . zen_date_short($sInfo->specials_date_added));
                $contents[] = array('text' => '' . TEXT_INFO_LAST_MODIFIED . ' ' . zen_date_short($sInfo->specials_last_modified));
                $contents[] = array('align' => 'center', 'text' => '<br>' . zen_info_image($sInfo->products_image, $sInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT));
                $contents[] = array('text' => '<br>' . TEXT_INFO_ORIGINAL_PRICE . ' ' . $currencies->format($specials_current_price));
                $contents[] = array('text' => '' . TEXT_INFO_NEW_PRICE . ' ' . $currencies->format($sInfo->specials_new_products_price));
                $contents[] = array('text' => '' . TEXT_INFO_DISPLAY_PRICE . ' ' . zen_get_products_display_price($sInfo->products_id));
                $contents[] = array('text' => '<br>' . TEXT_INFO_AVAILABLE_DATE . ' <b>' . (($specials->fields['specials_date_available'] != '0001-01-01' and $specials->fields['specials_date_available'] != '') ? zen_date_short($specials->fields['specials_date_available']) : TEXT_NONE) . '</b>');
                $contents[] = array('text' => '<br>' . TEXT_INFO_EXPIRES_DATE . ' <b>' . (($specials->fields['expires_date'] != '0001-01-01' and $specials->fields['expires_date'] != '') ? zen_date_short($specials->fields['expires_date']) : TEXT_NONE) . '</b>');
                $contents[] = array('text' => '' . TEXT_INFO_STATUS_CHANGE . ' ' . zen_date_short($sInfo->date_status_change));
                $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_CATEGORIES, '&action=new_product' . '&cPath=' . zen_get_product_path($sInfo->products_id, 'override') . '&pID=' . $sInfo->products_id . '&product_type=' . zen_get_products_type($sInfo->products_id)) . '">' . zen_image_button('button_edit_product.gif', IMAGE_EDIT_PRODUCT) . '<br />' . TEXT_PRODUCT_EDIT . '</a>');
                $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_SPECIALS, 'action=pre_add') . '">' . zen_image_button('button_select.gif', IMAGE_SELECT) . '<br />' . TEXT_INFO_MANUAL . '</a><br /><br />');
            }
            break;
    }
    if (zen_not_null($heading) && zen_not_null($contents)) {
        echo '            <td width="25%" valign="top">' . "\n";
        $box = new box();
        echo $box->infoBox($heading, $contents);
        echo '            </td>' . "\n";
    }
}
?>
          </tr>
        </table></td>
      </tr>
        $heading[] = array('text' => '<b>' . $product_to_copy->fields['products_id'] . ' ' . $product_to_copy->fields['products_name'] . '</b>');
        if ($products_filter > 0) {
            $contents[] = array('text' => zen_image(DIR_WS_CATALOG_IMAGES . $product_to_copy->fields['products_image'], $product_to_copy->fields['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT));
        }
        $contents[] = array('text' => '<br />' . TEXT_PRODUCTS_NAME . $product_to_copy->fields['products_name']);
        $contents[] = array('text' => TEXT_PRODUCTS_MODEL . $product_to_copy->fields['products_model']);
        $contents[] = array('text' => TEXT_PRODUCTS_PRICE . zen_get_products_display_price($products_filter));
        switch (true) {
            case $product_to_copy->fields['master_categories_id'] == 0 and $products_filter > 0:
                $contents[] = array('text' => '<br /><span class="alert">' . WARNING_MASTER_CATEGORIES_ID . '</span><br />&nbsp;');
                break;
            default:
                $contents[] = array('text' => '<form action="' . FILENAME_PRODUCTS_TO_CATEGORIES . '.php' . '?action=edit&products_filter=' . $products_filter . '&current_category_id=' . $current_category_id . '" method="post">');
                $contents[] = array('align' => 'center', 'text' => '<input type="submit" value="' . BUTTON_NEW_PRODUCTS_TO_CATEGORIES . '"></form>');
                $contents[] = array('text' => '<br />' . zen_image(DIR_WS_IMAGES . 'pixel_black.gif', '', '100%', '3') . '<br />&nbsp;');
                $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_ATTRIBUTES_CONTROLLER, 'products_filter=' . $products_filter) . '">' . zen_image_button('button_edit_attribs.gif', IMAGE_EDIT_ATTRIBUTES) . '</a>&nbsp;&nbsp;' . '<a href="' . zen_href_link(FILENAME_PRODUCTS_PRICE_MANAGER, '&products_filter=' . $products_filter) . '">' . zen_image_button('button_products_price_manager.gif', IMAGE_PRODUCTS_PRICE_MANAGER) . '</a><br /><br />' . '<a href="' . zen_href_link(FILENAME_CATEGORIES, 'cPath=' . zen_get_parent_category_id($products_filter) . '&pID=' . $products_filter . '&product_type=' . zen_get_products_type($products_filter)) . '">' . zen_image_button('button_details.gif', IMAGE_DETAILS) . '</a>&nbsp;&nbsp;' . '<a href="' . zen_href_link(FILENAME_CATEGORIES, 'action=new_product' . '&cPath=' . zen_get_parent_category_id($products_filter) . '&pID=' . $products_filter . '&product_type=' . zen_get_products_type($products_filter)) . '">' . zen_image_button('button_edit_product.gif', IMAGE_EDIT_PRODUCT) . '</a>' . '<br />&nbsp;');
                break;
        }
        break;
}
if (zen_not_null($heading) && zen_not_null($contents)) {
    echo '            <td width="25%" valign="top">' . "\n";
    $box = new box();
    echo $box->infoBox($heading, $contents);
    echo '            </td>' . "\n";
}
?>
          </tr>
        </td></table>
      </tr>
?>
</td>
															<td class="smallText" align="right"><?php 
echo $products_split->display_links($products_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $_GET['page']);
?>
</td>
														</tr>
													</table></td>
											</tr>
										</table></td>
<?php 
$heading = array();
$contents = array();
if (isset($pInfo) && is_object($pInfo)) {
    $heading[] = array('text' => '<b>' . $pInfo->products_name . '</b>');
    $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_CATEGORIES, 'action=new_product' . '&cPath=' . zen_get_products_category_id($pInfo->products_id) . '&pID=' . $pInfo->products_id . '&product_type=' . zen_get_products_type($pInfo->products_id)) . '">' . zen_image_button('button_edit.gif', IMAGE_EDIT) . '</a>');
    $contents[] = array('text' => '<br>' . TEXT_INFO_DATE_EXPECTED . ' ' . zen_date_short($pInfo->products_date_available));
}
if (zen_not_null($heading) && zen_not_null($contents)) {
    echo '            <td width="25%" valign="top">' . "\n";
    $box = new box();
    echo $box->infoBox($heading, $contents);
    echo '            </td>' . "\n";
}
?>
          </tr>
							</table></td>
					</tr>
				</table></td>
			<!-- body_text_eof //-->
		</tr>
Esempio n. 7
0
        
        // bof note links
        // customers note
        if($nInfo->customers_id > 0)
          $contents[] = array('text' => '<a href="' . FILENAME_CUSTOMERS . '.php' . '?cID=' . $nInfo->customers_id . '&action=edit' . '"><strong>' . TEXT_INFO_NOTE_CUSTOMER . '</strong></a>');
        
        // orders note   
        if($nInfo->orders_id > 0)
          $contents[] = array('text' => '<a href="' . FILENAME_ORDERS . '.php' . '?oID=' . $nInfo->orders_id . '&action=edit' . '"><strong>' . TEXT_INFO_NOTE_ORDER . '</strong></a>');
        
        if(zen_not_null($nInfo->categories_id))
          $contents[] = array('text' => '<a href="' . FILENAME_CATEGORIES . '.php' . '?cPath=' . $nInfo->categories_id . '"><strong>' . TEXT_INFO_NOTE_CATEGORY . '</strong></a>');
        
        // products note
        if($nInfo->products_id > 0)
          $contents[] = array('text' => '<a href="' . FILENAME_PRODUCT . '.php' . '?action=new_product&pID=' . $nInfo->products_id . '&product_type=' . zen_get_products_type($nInfo->products_id) . '&cPath=' . zen_get_products_category_id($nInfo->products_id) . '"><strong>' . TEXT_INFO_NOTE_PRODUCT . '</strong></a>');                                
        // eof note links
         
        $contents[] = array('text' => '<br />' . TEXT_INFO_NOTE_TEXT . '<p style="font-weight: bold; ">' . nl2br(stripslashes($nInfo->notes_text)) . '</p>');
        
         $contents[] = array('text' => '<br />' . TEXT_INFO_DATE_CREATED . zen_date_long($nInfo->notes_date_created));
        if (zen_not_null($nInfo->notes_date_modified)) $contents[] = array('text' => TEXT_INFO_NOTE_DATE_MODIFIED . ': ' . zen_date_long($nInfo->notes_date_modified));

      }
        break;
    }

    if ( (zen_not_null($heading)) && (zen_not_null($contents)) ) {
      echo '            <td width="25%" valign="top">' . "\n";

      $box = new box;
                <td class="main" align="center" valign="bottom">
                  <?php 
        echo zen_image(DIR_WS_IMAGES . 'icon_yellow_on.gif', IMAGE_ICON_LINKED) . '&nbsp;&nbsp;' . TEXT_LEGEND_LINKED . ' ' . zen_get_product_is_linked($productsId, 'true');
        ?>
                </td>
              </tr>
<?php 
    }
    ?>
              <tr>
                <td class="main" align="center" valign="bottom">
<?php 
    if ($_GET['products_id'] != '') {
        echo '<a href="' . zen_href_link_admin(FILENAME_CATEGORIES, 'cPath=' . $current_category_id . '&pID=' . $productsId . '&product_type=' . zen_get_products_type($productsId)) . '">' . zen_image_button('button_details.gif', IMAGE_DETAILS) . '<br />' . TEXT_PRODUCT_DETAILS . '</a>' . '&nbsp;&nbsp;&nbsp;';
        echo '</td><td class="main" align="center" valign="bottom">';
        echo '<a href="' . zen_href_link_admin(FILENAME_CATEGORIES, 'action=new_product' . '&cPath=' . $current_category_id . '&pID=' . $productsId . '&product_type=' . zen_get_products_type($productsId)) . '">' . zen_image_button('button_edit_product.gif', IMAGE_EDIT_PRODUCT) . '<br />' . TEXT_PRODUCT_EDIT . '</a>';
        echo '</td><td class="main" align="center" valign="bottom">';
        echo '<a href="' . zen_href_link_admin(FILENAME_ATTRIBUTES_CONTROLLER, '&products_id=' . $productsId . '&current_category_id=' . $current_category_id, 'NONSSL') . '">' . zen_image_button('button_edit_attribs.gif', IMAGE_EDIT_ATTRIBUTES) . '<br />' . TEXT_ATTRIBUTE_EDIT . '</a>' . '&nbsp;&nbsp;&nbsp;';
    }
    ?>
                </td>
              </tr>
            <tr>
            <td class="smallText" align="center" colspan="3"><?php 
    echo '<a href="' . zen_href_link_admin(FILENAME_PRODUCTS_TO_CATEGORIES, '&products_id=' . $productsId) . '">' . IMAGE_PRODUCTS_TO_CATEGORIES . '</a>';
    ?>
</td>
            </tr>
            </table>
          </td>
        </tr>
Esempio n. 9
0
function zen_active_notes()
{
    global $db, $messageStack;
    // BOF list active notes
    $order_by = 'ORDER BY notes_categories_name';
    $notes_categories_query = "select * FROM " . TABLE_NOTES_CATEGORIES . " " . $order_by;
    $notes_categories_results = $db->Execute($notes_categories_query);
    while (!$notes_categories_results->EOF) {
        $order_by = 'ORDER BY notes_start_date DESC';
        // use CURDATE ?
        //$notes_active_query = ("select * FROM " . TABLE_NOTES . " n LEFT JOIN " . TABLE_NOTES_CATEGORIES . " nc ON (n.notes_categories_id = nc.notes_categories_id) " . " WHERE (`notes_status` = '1') AND (((`notes_start_date` <= NOW()) AND (`notes_start_date` >= '0001-01-01')) AND  ((`notes_end_date` >= NOW()) OR (`notes_end_date` <= '0001-01-01')))" . $order_by);
        $notes_active_query = "select * FROM " . TABLE_NOTES . " WHERE ((`notes_is_public` = '1' || `admin_id` = '" . (int) $_SESSION['admin_id'] . "') AND ((`notes_categories_id` = '" . $notes_categories_results->fields['notes_categories_id'] . "') AND ((`notes_status` = '1') AND (((`notes_start_date` <= NOW()) AND (`notes_start_date` >= '0001-01-01')) AND  ((`notes_end_date` >= NOW()) OR (`notes_end_date` <= '0001-01-01'))))))" . $order_by;
        $notes_active_results = $db->Execute($notes_active_query);
        if (count($notes_active_results) > 0) {
            if (isset($_GET['oID']) && $_GET['oID'] > 0) {
                // lookup the customer id of the order
                // so we can show the customer notes when viewing orders ($order is not available yet at this point, we need a query)
                $notes_customer_query = "select customers_id FROM " . TABLE_ORDERS . " WHERE (`orders_id` = " . (int) $_GET['oID'] . ") LIMIT 1";
                $notes_customer_result = $db->Execute($notes_customer_query);
            }
        }
        $messageStackArray = array();
        while (!$notes_active_results->EOF) {
            /*
            echo '<pre>';
            print_r($notes_active_results->fields);
            echo '</pre>';
            */
            $note_link = zen_href_link('notes', 'nID=' . $notes_active_results->fields['notes_id']);
            $notes_active_array = $notes_active_results->fields;
            $notes_active = new objectInfo($notes_active_array);
            //print_r($notes_active);
            switch (true) {
                case $notes_active->notes_is_special_status == 1:
                    // special products, customers, orders or categories note
                    if (basename($_SERVER['PHP_SELF']) != FILENAME_NOTES) {
                        // do not show on notes page itself
                        if ($notes_active->customers_id > 0 || $notes_active->orders_id > 0 || $notes_active->categories_id > 0 || $notes_active->products_id > 0) {
                            // these notes must only be shown when the customer/order/category/product is viewed by the admin
                            // customers note
                            if (isset($_GET['cID']) && $_GET['cID'] == $notes_active->customers_id || $notes_customer_result->fields['customers_id'] > 0 && $notes_customer_result->fields['customers_id'] == $notes_active->customers_id) {
                                $messageStackArray[] = '<a href="' . $note_link . '&action=view' . '">' . $notes_active_results->fields['notes_title'] . '</a> (Special Customers note)';
                            }
                            // orders note
                            if (isset($_GET['oID']) && $_GET['oID'] == $notes_active->orders_id) {
                                $messageStackArray[] = '<a href="' . $note_link . '">' . $notes_active_results->fields['notes_title'] . '</a> (Special Orders note)';
                            }
                            // category note
                            if (isset($_GET['cPath']) && $_GET['cPath'] != '' && $_GET['cPath'] == $notes_active->categories_id) {
                                $messageStackArray[] = '<a href="' . $note_link . '">' . $notes_active_results->fields['notes_title'] . '</a> (Special Categories note)';
                            }
                            // products note
                            if (isset($_GET['pID']) && $_GET['pID'] == $notes_active->products_id) {
                                $messageStackArray[] = '<a href="' . $note_link . '">' . $notes_active_results->fields['notes_title'] . '</a> (Special Products note)';
                            }
                        } else {
                            // note is not attached yet
                            if (isset($_GET['pID']) || isset($_GET['cPath']) || isset($_GET['oID']) || isset($_GET['cID'])) {
                                $parameters = '';
                                $parameters = (isset($_GET['cPath']) ? '&cPath=' . $_GET['cPath'] : '') . (isset($_GET['pID']) ? '&pID=' . (int) $_GET['pID'] : '') . (isset($_GET['oID']) ? '&oID=' . (int) $_GET['oID'] : '') . (isset($_GET['cID']) ? '&cID=' . (int) $_GET['cID'] : '');
                                $messageStackArray[] = 'Attach this ' . ' note now? ' . '<a href="' . $note_link . '&action=edit' . $parameters . '">' . $notes_active_results->fields['notes_title'] . '</a>';
                            }
                        }
                    }
                    break;
                case $notes_active->notes_is_special_status != 1 && ($notes_active->customers_id > 0 || $notes_active->orders_id > 0 || $notes_active->categories_id > 0 || $notes_active->products_id > 0):
                    // non special products, customers, orders or categories note
                    // customers note
                    if ($notes_active->customers_id > 0) {
                        $messageStackArray[] = '<a href="' . $note_link . '">' . $notes_active_results->fields['notes_title'] . '</a>' . '| <a href="' . FILENAME_CUSTOMERS . '.php' . '?cID=' . $notes_active->customers_id . '&action=edit' . '">' . 'Edit customer' . '</a>';
                    }
                    // orders note
                    if ($notes_active->orders_id > 0) {
                        $messageStackArray[] = '<a href="' . $note_link . '">' . $notes_active_results->fields['notes_title'] . '</a>' . ' | <a href="' . FILENAME_ORDERS . '.php' . '?oID=' . $notes_active->orders_id . '&action=edit' . '">' . 'Edit order' . '</a>';
                    }
                    // category note)
                    if (zen_not_null($notes_active->categories_id)) {
                        $messageStackArray[] = '<a href="' . $note_link . '">' . $notes_active_results->fields['notes_title'] . '</a>' . ' | <a href="' . FILENAME_CATEGORIES . '.php' . '?cPath=' . $notes_active->categories_id . '">' . 'Edit category' . '</a>';
                    }
                    // products note
                    if ($notes_active->products_id > 0) {
                        //&product_type=1&cPath=1_4&pID=1&action=new_product;
                        $messageStackArray[] = '<a href="' . $note_link . '">' . $notes_active_results->fields['notes_title'] . '</a>' . ' | <a href="' . FILENAME_PRODUCT . '.php' . '?action=new_product&pID=' . $notes_active->products_id . '&product_type=' . zen_get_products_type($notes_active->products_id) . '&cPath=' . zen_get_products_category_id($notes_active->products_id) . '">' . 'Edit product' . '</a>';
                    }
                    break;
                default:
                    // general notes
                    $messageStackArray[] = '<a href="' . $note_link . '">' . $notes_active_results->fields['notes_title'] . '</a>';
                    break;
            }
            if ($notes_active->notes_is_special_status == 1 && basename($_SERVER['PHP_SELF']) != FILENAME_NOTES) {
                $show_special = true;
            }
            if ($notes_active->customers_id > 0 || $notes_active->orders_id > 0 || $notes_active->categories_id > 0 || $notes_active->products_id > 0) {
            } elseif ($special) {
                // ask to attach
                //exit('special attach ' . $notes_active->notes_id);
            } elseif ($notes_active->notes_is_special_status != 1) {
            }
            $notes_active_results->MoveNext();
        }
        if (count($messageStackArray) > 0) {
            $messageStackNotes = implode('</li><li>', $messageStackArray);
            $messageStack->add($notes_categories_results->fields['notes_categories_name'] . ' notes:<ul id="notesNotifierList" style="margin: 0.1em;"><li>' . $messageStackNotes . '</li></ul>', 'warning');
        }
        $notes_categories_results->MoveNext();
    }
    // EOF list active notes
}
     if (EASYPOPULATE_4_CONFIG_EXPORT_URI != '0') {
         $row['v_html_uri'] = zen_catalog_href_link(FILENAME_DEFAULT, 'cPath=' . zen_get_path($row['v_categories_id']), 'NONSSL');
     }
 }
 // if ($ep_dltype ...
 // CATEGORIES EXPORT
 // chadd - 12-13-2010 - logic change. $max_categories no longer required. better to loop back to root category and
 // concatenate the entire categories path into one string with $category_delimiter for separater.
 if ($ep_dltype == 'full' || $ep_dltype == 'category') {
     // chadd - 12-02-2010 fixed error: missing parenthesis
     // NEW While-loop for unlimited category depth
     $category_delimiter = "^";
     $thecategory_id = $row['v_categories_id'];
     // starting category_id
     if ($ep_dltype == 'full' && EASYPOPULATE_4_CONFIG_EXPORT_URI != '0') {
         $sql_type = "SELECT type_handler FROM " . TABLE_PRODUCT_TYPES . " WHERE type_id = " . (int) zen_get_products_type($row['v_products_id']);
         $sql_typename = $db->Execute($sql_type);
         //        $row['v_html_uri'] = zen_href_link(FILENAME_DEFAULT, 'main_page=' . $sql_typename->fields['type_handler'] . '_info&cPath=' . zen_get_generated_category_path_ids($row['v_master_categories_id']) . '&products_id=' . $row['v_products_id'],'NONSSL', false, true, false, true); //This generates an admin folder like link/reference not a catalog version.
         $row['v_html_uri'] = zen_catalog_href_link($sql_typename->fields['type_handler'] . '_info', 'cPath=' . zen_get_generated_category_path_ids($row['v_master_categories_id']) . '&products_id=' . $row['v_products_id'], 'NONSSL');
         //zen_catalog_href_link($page = '', $parameters = '', $connection = 'NONSSL')        //FILENAME_DEFAULT . '?main_page=' . zen_get_products_type($row['products_id'])
         //function zen_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true, $static = false, $use_dir_ws_catalog = true)
     }
     // $fullcategory = array(); // this will have the entire category path separated by $category_delimiter
     // if parent_id is not null ('0'), then follow it up.
     while (!empty($thecategory_id)) {
         // mult-lingual categories start - for each language, get category description and name
         $sql2 = 'SELECT * FROM ' . TABLE_CATEGORIES_DESCRIPTION . ' WHERE categories_id = ' . $thecategory_id . ' ORDER BY language_id';
         $result2 = ep_4_query($sql2);
         while ($row2 = $ep_uses_mysqli ? mysqli_fetch_array($result2) : mysql_fetch_array($result2)) {
             $lid = $row2['language_id'];
             $row['v_categories_name_' . $lid] = $row2['categories_name'] . $category_delimiter . $row['v_categories_name_' . $lid];
 function _dispatchProduct($map, $data)
 {
     $product_id = $data->fields['products_id'];
     $value = '<a href="' . zen_href_link(FILENAME_CATEGORIES, '&action=new_product' . '&cPath=' . zen_get_product_path($data->fields['products_id'], 'override') . '&pID=' . $data->fields['products_id'] . '&product_type=' . zen_get_products_type($data->fields['products_id'])) . '">' . $data->fields['products_name'] . '</a>';
     #$value = $data->fields['products_name'];
     return $value;
 }
 function delete_category($categories_id)
 {
     global $db, $zc_products;
     // future cat specific deletion
     $delete_linked = 'true';
     if ($_POST['delete_linked'] == 'delete_linked_no') {
         $delete_linked = 'false';
     } else {
         $delete_linked = 'true';
     }
     // delete category and products
     $categories_id = zen_db_prepare_input($categories_id);
     // create list of any subcategories in the selected category,
     $categories = zen_get_category_tree($categories_id, '', '0', '', true);
     zen_set_time_limit(600);
     // loop through this cat and subcats for delete-processing.
     for ($i = 0, $n = sizeof($categories); $i < $n; $i++) {
         $sql = "select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id='" . $categories[$i]['id'] . "'";
         $category_products = $db->Execute($sql);
         while (!$category_products->EOF) {
             // determine product-type-specific override script for this product
             $product_type = zen_get_products_type($category_products->fields['products_id']);
             // now loop thru the delete_product_confirm script for each product in the current category
             if (file_exists(DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php')) {
                 require DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php';
             } else {
                 require DIR_WS_MODULES . 'delete_product_confirm.php';
             }
             // THIS LINE COMMENTED BECAUSE IT'S DONE ALREADY DURING DELETE_PRODUCT_CONFIRM.PHP:
             //zen_remove_product($category_products->fields['products_id'], $delete_linked);
             $category_products->MoveNext();
         }
         zen_remove_category($categories[$i]['id']);
     }
     // end for loop
 }