/** * Generates the link for menu item */ function getMenuItemLink($item) { global $application; $result = ''; switch ($item['item_type']) { case CMS_MENU_ITEM_TYPE_TEXT: $result = 'CMS_MENU_ITEM_TYPE_TEXT'; return $result; break; case CMS_MENU_ITEM_TYPE_URL: case CMS_MENU_ITEM_TYPE_EXTERNAL_URL: $result = $item['item_link']; break; case CMS_MENU_ITEM_TYPE_STATIC_PAGE: loadClass('CCMSPageInfo'); $CMSPage = new CCMSPageInfo($item['item_link']); $result = $CMSPage->getCMSPageTagValue('link', array()); break; case CMS_MENU_ITEM_TYPE_SYSTEM_PAGE: $r = new Request(); $r->setView($application->getViewBySection($item['item_link'])); if (_ml_strtolower($item['item_link']) == 'productlist') { $r->setCategoryID($item['param1']); $r->setAction('SetCurrCat'); $r->setKey('category_id', $item['param1']); } if (_ml_strtolower($item['item_link']) == 'productinfo') { loadClass('CProductInfo'); $pr = new CProductInfo($item['param2']); $item['param1'] = $pr->chooseCategoryID(); $r->setCategoryID($item['param1']); $r->setProductID($item['param2']); $r->setAction('SetCurrentProduct'); $r->setKey('prod_id', $item['param2']); $r->setKey('category_id', $item['param1']); } $result = $r->getURL(); break; case CMS_MENU_ITEM_TYPE_CATEGORY_LIST: $r = new Request(); $r->setView($application->getViewBySection($item['item_link'])); if (_ml_strtolower($item['item_link']) == 'productlist') { $r->setCategoryID($item['param1']); $r->setAction('SetCurrCat'); $r->setKey('category_id', $item['param1']); } $result = $r->getURL(); break; } return $result; }
function __info_tag_output($tag, $arg_list) { global $application, $zone; # . $view = $application->getLatestTag(); list($entity, $attr) = getTagName($tag); /* * empty($arg_list) , msg * . */ if ($view != null && is_callable(array($view, 'getTag')) && empty($arg_list)) { if (strtolower($tag) == 'viewclassname') { $alias = $application->getBlockOverride($view); echo strtolower($alias == null ? $view : $alias); return; } $view_obj =& $application->getInstance($view); $output = $view_obj->getTag($tag, $arg_list); if ($output !== null) { echo $output; return; } } if (empty($arg_list)) { # . , . $params = $application->getTemplateParameters(); $product_id = $params['product_id']; $category_id = $params['category_id']; $page_id = @$params['page_id']; } else { $product_id = $arg_list[0]; $category_id = $arg_list[0]; $page_id = $arg_list[0]; } $output = ""; switch ($entity) { case 'attribute': if (empty($arg_list) || !array_key_exists(0, $arg_list) || !array_key_exists(1, $arg_list)) { break; } $obj =& $application->getInstance('Catalog'); $attributeInfo = $obj->getAttributeInfo($arg_list[0], $arg_list[1]); $output = $attributeInfo[strtolower($attr)]; break; case 'productreviews': if ($product_id == -1) { break; } loadClass('CProductReviewInfo'); $prcrobj = new CProductReviewInfo($product_id); if ($prcrobj !== null) { $output = $prcrobj->getReviewTagValue($attr); } break; case 'cmspage': if (!$page_id) { // trying to get the page_id from the request $page_id = modApiFunc('Request', 'getValueByKey', 'page_id'); } loadClass('CCMSPageInfo'); $cmspageobj = new CCMSPageInfo($page_id); $output = $cmspageobj->getCMSPageTagValue($attr, $arg_list); break; case 'product': if ($product_id == -1) { break; } $prdobj = new CProductInfo($product_id); if ($prdobj !== null) { $output = $prdobj->getProductTagValue($attr); } break; case 'manufacturer': $mnf_id = __info_tag_output_find_tag_params($entity, $arg_list); $mnf_info = modApiFunc("Manufacturers", "getManufacturerInfo", $mnf_id); if ($mnf_id == PARAM_NOT_FOUND || $mnf_id == MANUFACTURER_NOT_DEFINED || $mnf_info === NULL) { $output = NULL; } else { $img_info = modApiFunc("Images", "getImageData", $mnf_info['manufacturer_image_id']); switch ($attr) { case 'id': $output = $mnf_info['manufacturer_id']; break; case 'name': $output = $mnf_info['manufacturer_name']; break; case 'url': $output = $mnf_info['manufacturer_site_url']; break; case 'description': $output = $mnf_info['manufacturer_descr']; break; case 'status': $output = $mnf_info['manufacturer_active'] == DB_TRUE ? getMsg('MNF', 'STATUS_ACTIVE') : getMsg('MNF', 'STATUS_INACTIVE'); break; case 'image': $output = $img_info['image_data'] === NULL ? "" : getimage_output_cz('mnf_image_' . rand(0, 32768), new image_obj($img_info['image_data']['image_id'])); break; case 'imagesrc': $output = $img_info['image_data'] === NULL || !isset($img_info['image_data']) ? "" : $img_info['image_data']['image_src']; break; case 'imagewidth': $output = $img_info['image_data'] === NULL || !isset($img_info['image_data']) ? "" : $img_info['image_data']['image_width']; break; case 'imageheight': $output = $img_info['image_data'] === NULL || !isset($img_info['image_data']) ? "" : $img_info['image_data']['image_height']; break; case 'imagealttext': $output = $img_info['image_data'] === NULL || !isset($img_info['image_data']) ? "" : $img_info['image_data']['image_alt_text']; break; case 'thumbnail': $output = $img_info['image_thumbnail_data'] === NULL || !isset($img_info['image_thumbnail_data']) ? "" : getimage_output_cz('mnf_image_' . rand(0, 32768), new image_obj($img_info['image_thumbnail_data']['image_id'])); break; case 'thumbnailsrc': $output = $img_info['image_thumbnail_data'] === NULL || !isset($img_info['image_thumbnail_data']) ? "" : $img_info['image_thumbnail_data']['image_src']; break; case 'thumbnailwidth': $output = $img_info['image_thumbnail_data'] === NULL || !isset($img_info['image_thumbnail_data']) ? "" : $img_info['image_thumbnail_data']['image_width']; break; case 'thumbnailheight': $output = $img_info['image_thumbnail_data'] === NULL || !isset($img_info['image_thumbnail_data']) ? "" : $img_info['image_thumbnail_data']['image_height']; break; case 'thumbnailalttext': $output = $img_info['image_thumbnail_data'] === NULL || !isset($img_info['image_thumbnail_data']) ? "" : $img_info['image_thumbnail_data']['image_alt_text']; break; } } break; case 'category': if ($category_id == -1) { break; } $catobj =& $application->getInstance('CCategoryInfo', $category_id); if ($catobj !== null) { $output = $catobj->getCategoryTagValue($attr); } break; case 'msg': $obj =& $application->getInstance('MessageResources'); $output = $obj->getMessage(new ActionMessage($arg_list)); break; case 'xmsg': $obj =& $application->getInstance('MessageResources', modApiFunc("Modules_Manager", "getResFileByShortName", $arg_list[0]), 'AdminZone', $arg_list[0]); array_shift($arg_list); $output = $obj->getMessage(new ActionMessage($arg_list)); break; case 'label': $obj =& $application->getInstance('MessageResources', "", 'CustomerZone', "CZ"); $output = $obj->getMessage(new ActionMessage($arg_list)); break; case 'hinttext': $obj =& $application->getInstance('Hint'); $output = $obj->getHintText($arg_list); break; case 'hintlink': $obj =& $application->getInstance('Hint'); $output = $obj->getHintLink($arg_list); break; case 'storeowner': $obj =& $application->getInstance('Configuration'); $output = $obj->getTagValue($tag); break; case 'pagehelplink': loadCoreFile('page_help_tutorial_links.php'); $obj =& $application->getInstance('HelpLinkCreator'); $output = $obj->getPageHelpLink($arg_list[0]); break; case 'videotutoriallink': loadCoreFile('page_help_tutorial_links.php'); $obj =& $application->getInstance('HelpLinkCreator'); $output = $obj->getTutorialLink($arg_list[0]); break; case 'shoppingcart': $obj =& $application->getInstance('Cart'); $output = $obj->getCartInfo($tag); break; case 'paypalproexpresscheckout': $output = ""; break; case 'paypalproukexpresscheckout': $output = ""; break; case 'pageurl': $req = new Request(); $req->setView($arg_list[0]); if (isset($arg_list[1]) and is_array($arg_list[1]) and !empty($arg_list[1])) { foreach ($arg_list[1] as $k => $v) { $req->setKey($k, $v); } } if ($arg_list[0] == 'ProductList') { if (isset($arg_list[1])) { $category_id = $arg_list[1]; } if (!$category_id) { $plf = $application->getInstance('CProductListFilter'); $category_id = $plf->getCurrentCatgoryId(); $req->setCategoryID($category_id); } } $output = $req->getURL(); break; case 'customer': if ($zone == 'CustomerZone') { $account_name = modApiFunc('Customer_Account', 'getCurrentSignedCustomer'); if ($account_name != null) { preg_match('/^customer(.+)/i', $tag, $m1); if (preg_match('/^(billing|shipping|orders)(.+)/i', $m1[1], $m2)) { $group = $m2[1]; $attr = $m2[2]; } else { if (in_array(strtolower($attr), array('id', 'status'))) { $group = 'base'; } else { $group = 'Customer'; } $attr = $m1[1]; } $obj =& $application->getInstance('CCustomerInfo', $account_name); if (strtolower($attr) == 'accountname') { $output = prepareHTMLDisplay($obj->getDisplayAccountName()); break; } if (strtolower($attr) == 'signouturl') { $r = new Request(); $r->setView(CURRENT_REQUEST_URL); $r->setAction('customer_sign_out'); $r->setKeyValList(modApiFunc('Request', 'getGETArray')); $output = $r->getURL(); break; } if (strtolower($group) != 'orders') { $attr_value = $obj->getPersonInfo($attr, $group); switch (strtolower($attr)) { case 'country': $output = modApiFunc('Location', 'getCountry', $attr_value); break; case 'state': if (modApiFunc('Location', 'getStateCode', $attr_value) != '') { $output = modApiFunc('Location', 'getState', $attr_value); } else { $output = prepareHTMLDisplay($attr_value); } break; default: $output = prepareHTMLDisplay($attr_value); break; } } else { $qstat = ORDER_STATUS_ALL; if (isset($arg_list[0]) and is_string($arg_list[0])) { if (defined('ORDER_STATUS_' . strtoupper($arg_list[0]))) { $qstat = constant('ORDER_STATUS_' . strtoupper($arg_list[0])); } } $filter = array('type' => 'quick', 'order_status' => $qstat); $obj->setOrdersHistoryFilter($filter); switch (strtolower($attr)) { case 'quantity': $output = $obj->getOrdersCount(); break; case 'totalamount': $output = modApiFunc('Localization', 'currency_format', $obj->getOrdersAmount()); break; case 'totalfullypaidamount': $output = modApiFunc('Localization', 'currency_format', $obj->getOrdersFullyPaidAmount()); break; } } } } break; case 'subscription': loadClass('Subscriptions'); switch ($attr) { case 'active': if ($zone == 'CustomerZone') { $signed_in = modApiFunc('Customer_Account', 'getCurrentSignedCustomer') !== null; $topics = modApiFunc('Subscriptions', 'getCustomerTopics', $signed_in); $output = sizeof($topics) > 0 ? 'TRUE' : 'FALSE'; } } break; case 'unknown': switch ($attr) { case 'currentlanguage': $output = modApiFunc('MultiLang', 'getLanguage'); break; case 'resourcelanguage': $output = modApiFunc('MultiLang', 'getResourceLanguage'); break; case 'defaultlanguage': $output = modApiFunc('MultiLang', 'getDefaultLanguage'); break; } break; } echo $output; }