/** * recipeDetail */ public function recipeDetail($recipe_id) { if (!is_numeric($recipe_id)) { return false; } $Recipe = new ecommerce_recipe(); $recipe = $Recipe->getDetail($recipe_id); if ($recipe) { /** * get taxonomy_class */ $related_taxonomy = $Recipe->getRelatedTaxonomy($recipe_id); $recipe['taxonomy_class'] = $this->createTaxonomyClass($related_taxonomy); /** * save product taxonomy_class to registry */ $this->saveBodyCssClass($recipe['taxonomy_class']); /** * singular/plurar text */ $recipe['persons'] = $recipe['serving_people'] == 1 ? 'person' : 'persons'; $recipe['minutes'] = $recipe['cooking_time'] == 1 ? 'minute' : 'minutes'; $this->tpl->assign("RECIPE", $recipe); /** * video */ if (!empty($recipe['video_url'])) { $video_url = urlencode($recipe['video_url']); $_Onxshop_Request = new Onxshop_Request("component/video~video_url={$video_url}~"); $this->tpl->assign('RECIPE_VIDEO', $_Onxshop_Request->getContent()); } } return true; }
/** * getCategories */ static function getCategories($recipe_id) { if (!is_numeric($recipe_id)) { return false; } require_once 'models/ecommerce/ecommerce_recipe.php'; $Recipe = new ecommerce_recipe(); return $Recipe->getRelatedTaxonomy($recipe_id); }
/** * get data */ public function getData() { /** * initialize */ require_once 'models/ecommerce/ecommerce_recipe.php'; $Recipe = new ecommerce_recipe(); /** * get recipe page posts */ $list = $Recipe->getFilteredRecipeList(false, false, false, false, 10000); $data = array(); foreach ($list as $item) { $item = $this->formatItem($item); $data[] = $item; } return $data; }
/** * main action */ public function mainAction() { // initialize require_once 'models/ecommerce/ecommerce_recipe.php'; $Recipe = new ecommerce_recipe(); // save if ($_POST['save']) { // update recipe if ($recipe_id = $Recipe->updateRecipe($_POST['recipe'])) { msg("Recipe ID={$recipe_id} updated"); // forward to recipe list main page and exit onxshopGoTo("/backoffice/recipes"); return true; } } // recipe detail $recipe = $Recipe->detail($this->GET['id']); $recipe['publish'] = $recipe['publish'] == 1 ? 'checked="checked" ' : ''; $this->tpl->assign('RECIPE', $recipe); return true; }
/** * insert recipe to node */ function insertNewRecipeToNode($recipe_id, $parent_id) { if (!is_numeric($recipe_id)) { return false; } if (!is_numeric($parent_id)) { return false; } $Node = new common_node(); $Recipe = new ecommerce_recipe(); /** * get recipe detail */ $recipe_detail = $Recipe->detail($recipe_id); /** * prepare node data */ $recipe_node['title'] = $recipe_detail['title']; $recipe_node['parent'] = $parent_id; $recipe_node['parent_container'] = 0; $recipe_node['node_group'] = 'page'; $recipe_node['node_controller'] = 'recipe'; $recipe_node['content'] = $recipe_id; //$recipe_node['layout_style'] = $Node->conf['page_recipe_layout_style']; //this need to be updated on each recipe update $recipe_node['priority'] = $recipe_detail['priority']; $recipe_node['publish'] = $recipe_detail['publish']; /** * insert node */ if ($recipe_homepage = $Node->nodeInsert($recipe_node)) { return $recipe_homepage; } else { msg("Can't add recipe to node."); return false; } }
/** * load recipe details */ protected function getRecipeDetails(&$page) { $recipe_id = $page['content']; if (!is_numeric($recipe_id)) { return false; } require_once "models/ecommerce/ecommerce_recipe.php"; $Recipe = new ecommerce_recipe(); $recipe = $Recipe->detail($recipe_id); $page['excerpt'] = $this->highlightKeywords(strip_tags($recipe['description']), $this->keywords); $page['type_priority'] = 100; $page['priority'] = $recipe['priority']; }
/** * main action (only a router in this case) */ public function mainAction() { // init models $Recipe = new ecommerce_recipe(); // get taxonomy ids if (empty($this->GET['taxonomy_tree_id'])) { $taxonomy_ids = array(); } else { $taxonomy_ids = explode(",", $this->GET['taxonomy_tree_id']); // validate input if (!is_array($taxonomy_ids)) { return false; } foreach ($taxonomy_ids as $taxonomy_id) { if (!is_numeric($taxonomy_id)) { return false; } } } // is there a limit? if (is_numeric($this->GET['limit_from'])) { $limit_from = $this->GET['limit_from']; } else { $limit_from = 0; } if (is_numeric($this->GET['limit_per_page'])) { $limit_per_page = $this->GET['limit_per_page']; } else { $limit_per_page = 25; } // is there requested sorting? if ($this->GET['sort']['by'] && in_array($this->GET['sort']['by'], array('title', 'created', 'modified', 'priority', 'share_counter'))) { $sort_by = $this->GET['sort']['by']; } else { $sort_by = 'modified'; } if ($this->GET['sort']['direction'] && in_array($this->GET['sort']['direction'], array('DESC', 'ASC'))) { $sort_direction = $this->GET['sort']['direction']; } else { $sort_direction = 'DESC'; } // image role if ($this->GET['image_role']) { $image_role = $this->GET['image_role']; } else { $image_role = 'teaser'; } // disjunctive (0 for OR, 1 for AND) if (is_numeric($this->GET['conjunction']) && $this->GET['conjunction'] == 0) { $conjunction = false; } else { $conjunction = true; } /** * get the list */ $list = $Recipe->getRecipeListForTaxonomy($taxonomy_ids, $sort_by, $sort_direction, $limit_from, $limit_per_page, $image_role, $conjunction); $this->parseItems($list); if ($this->GET['display_pagination'] == 1) { $count = $Recipe->getRecipeCountForTaxonomy($taxonomy_ids); $_Onxshop_Request = new Onxshop_Request("component/pagination~limit_from={$limit_from}:limit_per_page={$limit_per_page}:count={$count}~"); $this->tpl->assign('PAGINATION', $_Onxshop_Request->getContent()); } return true; }
/** * main action */ public function mainAction() { // initialize filter variables $taxonomy_id = $this->GET['taxonomy_tree_id']; if (isset($_POST['recipe-list-filter'])) { $_SESSION['bo']['recipe-list-filter'] = $_POST['recipe-list-filter']; } $keyword = $_SESSION['bo']['recipe-list-filter']['keyword']; // initialize sorting variables if ($this->GET['recipe-list-sort-by']) { $_SESSION['bo']['recipe-list-sort-by'] = $this->GET['recipe-list-sort-by']; } if ($this->GET['recipe-list-sort-direction']) { $_SESSION['bo']['recipe-list-sort-direction'] = $this->GET['recipe-list-sort-direction']; } if ($_SESSION['bo']['recipe-list-sort-by']) { $order_by = $_SESSION['bo']['recipe-list-sort-by']; } else { $order_by = 'modified'; } if ($_SESSION['bo']['recipe-list-sort-direction']) { $order_dir = $_SESSION['bo']['recipe-list-sort-direction']; } else { $order_dir = 'DESC'; } // initialize pagination variables if (is_numeric($this->GET['limit_from'])) { $from = $this->GET['limit_from']; } else { $from = 0; } if (is_numeric($this->GET['limit_per_page'])) { $per_page = $this->GET['limit_per_page']; } else { $per_page = 25; } // get the list require_once 'models/ecommerce/ecommerce_recipe.php'; $Recipe = new ecommerce_recipe(); $recipe_list = $Recipe->getFilteredRecipeList($keyword, false, $taxonomy_id, false, $per_page, $from, $order_by, $order_dir, 0); $count = $Recipe->getFilteredRecipeCount($keyword, false, $taxonomy_id, false, 0); if (!is_array($recipe_list)) { return false; } if (count($recipe_list) == 0) { $this->tpl->parse('content.empty_list'); return true; } // display pagination $_nSite = new nSite("component/pagination~link=/request/bo/component/ecommerce/recipe_list:limit_from={$from}:limit_per_page={$per_page}:count={$count}~"); $this->tpl->assign('PAGINATION', $_nSite->getContent()); // parse items foreach ($recipe_list as $item) { $item['modified'] = date("d/m/Y H:i", strtotime($item['modified'])); $this->tpl->assign('ITEM', $item); if ($item['image']['src']) { $this->tpl->parse('content.list.item.image'); } $this->tpl->assign('CLASS', $item['publish'] == 0 ? 'class="publish_0"' : ""); $this->tpl->parse('content.list.item'); } $this->tpl->parse('content.list'); return true; }
/** * getCategories */ static function getCategories($recipe_id) { if (!is_numeric($recipe_id)) { return false; } require_once 'models/ecommerce/ecommerce_recipe.php'; $Recipe = new ecommerce_recipe(); $categories_system = $Recipe->getRelatedTaxonomy($recipe_id); $categories = array(); foreach ($categories_system as $k => $item) { $categories[$k] = array(); $categories[$k]['id'] = $item['id']; $categories[$k]['title'] = $item['title']; $categories[$k]['priority'] = $item['priority']; $categories[$k]['usage_count'] = 0; } /** * historic reasons... */ if (count($categories) == 0) { $categories[0] = array(); $categories[0]['id'] = 1; $categories[0]['title'] = 'Uncategorised'; $categories[0]['priority'] = 0; $categories[0]['usage_count'] = 0; } return $categories; }
/** * Find homepage of recipe */ function getRecipeNodeHomepage($recipe_id) { if (!is_numeric($recipe_id)) { msg("Node->getRecipeNodeHomepage({$product_id}) is not numeric", 'error'); return false; } else { require_once "models/ecommerce/ecommerce_recipe.php"; $Recipe = new ecommerce_recipe(); $homepage = $Recipe->getRecipeHomepage($recipe_id); return $homepage; } }
/** * move recipe node */ function moveRecipeNode($recipe_id, $parent_id) { if (!is_numeric($recipe_id)) { return false; } if (!is_numeric($parent_id)) { return false; } $Node = new common_node(); $Recipe = new ecommerce_recipe(); /** * get current detail */ $recipe_homepage = $Recipe->getRecipeHomepage($recipe_id); /** * modify node data */ $recipe_homepage['parent'] = $parent_id; if ($Node->nodeUpdate($recipe_homepage)) { msg("Recipe node has been updated", 'ok'); return $recipe_homepage; } else { msg("Can't update recipe node."); return false; } }