$dataDateID = filter_input(INPUT_GET, 'date', FILTER_SANITIZE_NUMBER_INT);
$dataDateSubcategories = [];
// current
$currentID = filter_input(INPUT_GET, 'c', FILTER_SANITIZE_NUMBER_INT);
$currentSC = filter_input(INPUT_GET, 's', FILTER_SANITIZE_NUMBER_INT);
if(!$currentID){
$sinCurrent = true;
$currentID = $dataBase->get(DB_PREFIX.'_categories', 'categoryID', array('categoryParent' => 0,'ORDER' => 'categorySort'));
}
$dataCurrent = $dataBase->get(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $currentID, 'categoryVisible' => 1)));
if($sinCurrent && !$dataDateID){
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryParent' => 0, 'categoryVisible' => 1), 'ORDER' => 'categorySort'));
}else{
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID[!]' => $currentID, 'categoryVisible' => 1, 'categoryParent' => 0), 'ORDER' => 'categorySort'));
}
$dataSubcategories = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryVisible' => 1, 'categoryParent' => $currentID), 'ORDER' => 'categorySort'));
if(!$dataCurrent){
header("location: index.php");
exit;
}
if(isset($dataDateID)){
//$dataProducts
$categories = array();
// busco productos q coincidan con esta fecha
$dataDate = $dataBase->get(DB_PREFIX.'_dates', '*', array('dateID' => $dataDateID));
$jsonProducts = json_decode($dataDate['dateProducts'],1);
$dataDateProducts = $dataBase->select(DB_PREFIX.'_stock','*', array( 'stockID' => $jsonProducts));
if(!$dataProducts){
$jsonProducts = json_decode($dataDate['dateProducts'],1);
$dataProducts = $dataDateProducts = $dataBase->select(DB_PREFIX.'_stock','*', array( 'stockID' => $jsonProducts));
}
foreach($dataProducts as $pr){
if(!in_array($pr['stockCategory'], $categories)) $categories[] = $pr['stockCategory'];
}
if(count($categories) > 0){
}else{
// $categories = $dataCurrent['categoryID'];
$categories = [$dataCurrent['categoryID']];
}
$dataCurrent = $dataBase->get(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $categories),'ORDER' => 'categorySort'));
if($dataCurrent['categoryParent']>0){
$dataParent = $dataBase->get(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $dataCurrent['categoryParent'], 'categoryVisible' => 1)));
}
if(!$dataCurrent){
// no hay productos
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryParent' => 0,'categoryVisible' => 1, 'categoryParent' => 0), 'ORDER' => 'categorySort'));
}else{
$dataSubcategories = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryVisible' => 1, 'categoryParent' => $dataParent['categoryID']), 'ORDER' => 'categorySort'));
/// para categorias padre
$arrayParents = array();
foreach($dataSubcategories as $sc){
if(!in_array($sc['categoryParent'], $arrayParents)) $arrayParents[] = $sc['categoryParent'];
}
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $arrayParents, 'categoryVisible' => 1, 'categoryParent' => 0), 'ORDER' => 'categorySort'));
}
// listado de subcategorias
$arrayCategorias2 = array();
$dataDate = $dataBase->get(DB_PREFIX.'_dates', '*', array('dateID' => $dataDateID));
$productsID = json_decode($dataDate['dateProducts'],1);
$dataProducts2 = $dataBase->select(DB_PREFIX.'_stock', '*', array('AND' => array('stockID' => $productsID, 'stockVisible' => 1), 'ORDER' => 'stockSort')); foreach($dataProducts2 as $pr){
if(!in_array($pr['stockCategory'], $arrayCategorias2)) $arrayCategorias2[] = $pr['stockCategory'];
}
$dataDateSubcategories = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $arrayCategorias2)));
$dataParentIds = array();
foreach($dataDateSubcategories as $scc){
$ordenadasSC[$scc['categoryParent']][] = $scc;
if(!in_array($scc['categoryParent'], $dataParentIds)) $dataParentIds[] = $scc['categoryParent'];
}
if($dataDateID && !$_GET['c'] && !$_GET['s']){
// listado de productos sin seleccion de categoria ni sub
unset($dataDateSubcategories);
}
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('categoryID' => $dataParentIds));
$dataParentID = filter_input(INPUT_GET, 'c', FILTER_SANITIZE_NUMBER_INT);
if($dataParentID){
$dataParent = $dataBase->get(DB_PREFIX.'_categories', '*', array('categoryID' => $dataParentID));
$mostrarSubcat = array();
foreach($dataDateProducts as $pr){
// mostrar subcat
if(!in_array($pr['stockCategory'], $mostrarSubcat))
$mostrarSubcat[] = $pr['stockCategory'];
}
$dataDateSubcategories = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryParent' => $dataParent['categoryID'], 'categoryID' => $mostrarSubcat, 'categoryVisible' => 1)));
}
}
?>
if(!$sinCurrent && !$dataDateID){ ?>
}
$mostradas = array();
if($dataDateSubcategories){
$mostradas[] = $dataParent['categoryID'];
?>
}
?>
Categorías
$dataDateID = filter_input(INPUT_GET, 'date', FILTER_SANITIZE_NUMBER_INT);
$dataDateSubcategories = [];
// current
$currentID = filter_input(INPUT_GET, 'c', FILTER_SANITIZE_NUMBER_INT);
$currentSC = filter_input(INPUT_GET, 's', FILTER_SANITIZE_NUMBER_INT);
if(!$currentID){
$sinCurrent = true;
$currentID = $dataBase->get(DB_PREFIX.'_categories', 'categoryID', array('categoryParent' => 0,'ORDER' => 'categorySort'));
}
$dataCurrent = $dataBase->get(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $currentID, 'categoryVisible' => 1)));
if($sinCurrent && !$dataDateID){
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryParent' => 0, 'categoryVisible' => 1), 'ORDER' => 'categorySort'));
}else{
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID[!]' => $currentID, 'categoryVisible' => 1, 'categoryParent' => 0), 'ORDER' => 'categorySort'));
}
$dataSubcategories = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryVisible' => 1, 'categoryParent' => $currentID), 'ORDER' => 'categorySort'));
if(!$dataCurrent){
header("location: index.php");
exit;
}
if(isset($dataDateID)){
//$dataProducts
$categories = array();
// busco productos q coincidan con esta fecha
$dataDate = $dataBase->get(DB_PREFIX.'_dates', '*', array('dateID' => $dataDateID));
$jsonProducts = json_decode($dataDate['dateProducts'],1);
$dataDateProducts = $dataBase->select(DB_PREFIX.'_stock','*', array( 'stockID' => $jsonProducts));
if(!$dataProducts){
$jsonProducts = json_decode($dataDate['dateProducts'],1);
$dataProducts = $dataDateProducts = $dataBase->select(DB_PREFIX.'_stock','*', array( 'stockID' => $jsonProducts));
}
foreach($dataProducts as $pr){
if(!in_array($pr['stockCategory'], $categories)) $categories[] = $pr['stockCategory'];
}
if(count($categories) > 0){
}else{
// $categories = $dataCurrent['categoryID'];
$categories = [$dataCurrent['categoryID']];
}
$dataCurrent = $dataBase->get(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $categories),'ORDER' => 'categorySort'));
if($dataCurrent['categoryParent']>0){
$dataParent = $dataBase->get(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $dataCurrent['categoryParent'], 'categoryVisible' => 1)));
}
if(!$dataCurrent){
// no hay productos
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryParent' => 0,'categoryVisible' => 1, 'categoryParent' => 0), 'ORDER' => 'categorySort'));
}else{
$dataSubcategories = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryVisible' => 1, 'categoryParent' => $dataParent['categoryID']), 'ORDER' => 'categorySort'));
/// para categorias padre
$arrayParents = array();
foreach($dataSubcategories as $sc){
if(!in_array($sc['categoryParent'], $arrayParents)) $arrayParents[] = $sc['categoryParent'];
}
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $arrayParents, 'categoryVisible' => 1, 'categoryParent' => 0), 'ORDER' => 'categorySort'));
}
// listado de subcategorias
$arrayCategorias2 = array();
$dataDate = $dataBase->get(DB_PREFIX.'_dates', '*', array('dateID' => $dataDateID));
$productsID = json_decode($dataDate['dateProducts'],1);
$dataProducts2 = $dataBase->select(DB_PREFIX.'_stock', '*', array('AND' => array('stockID' => $productsID, 'stockVisible' => 1), 'ORDER' => 'stockSort')); foreach($dataProducts2 as $pr){
if(!in_array($pr['stockCategory'], $arrayCategorias2)) $arrayCategorias2[] = $pr['stockCategory'];
}
$dataDateSubcategories = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryID' => $arrayCategorias2)));
$dataParentIds = array();
foreach($dataDateSubcategories as $scc){
$ordenadasSC[$scc['categoryParent']][] = $scc;
if(!in_array($scc['categoryParent'], $dataParentIds)) $dataParentIds[] = $scc['categoryParent'];
}
if($dataDateID && !$_GET['c'] && !$_GET['s']){
// listado de productos sin seleccion de categoria ni sub
unset($dataDateSubcategories);
}
$dataOthers = $dataBase->select(DB_PREFIX.'_categories', '*', array('categoryID' => $dataParentIds));
$dataParentID = filter_input(INPUT_GET, 'c', FILTER_SANITIZE_NUMBER_INT);
if($dataParentID){
$dataParent = $dataBase->get(DB_PREFIX.'_categories', '*', array('categoryID' => $dataParentID));
$mostrarSubcat = array();
foreach($dataDateProducts as $pr){
// mostrar subcat
if(!in_array($pr['stockCategory'], $mostrarSubcat))
$mostrarSubcat[] = $pr['stockCategory'];
}
$dataDateSubcategories = $dataBase->select(DB_PREFIX.'_categories', '*', array('AND' => array('categoryParent' => $dataParent['categoryID'], 'categoryID' => $mostrarSubcat, 'categoryVisible' => 1)));
}
}
?>
if(!$sinCurrent && !$dataDateID){ ?>
}
$mostradas = array();
if($dataDateSubcategories){
$mostradas[] = $dataParent['categoryID'];
?>
}
?>