public static function getUnitmenu($item) { try { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('*'); $query->from('#__gg_unit AS u'); $query->where("u.categoriapadre=" . $item); $query->where("u.tipologia != 110"); $query->order("ordinamento"); $db->setQuery($query); // Check for a database error. if ($db->getErrorNum()) { JError::raiseWarning(500, $db->getErrorMsg()); } $res = $db->loadObjectList(); foreach ($res as $key => $item) { $sub_content = gglmsHelper::getTOTContenuti($item->id); $sub_unit = gglmsHelper::getSubUnit($item->id); if (!$sub_content && !$sub_unit) { unset($res[$key]); } } FB::log($res, " getUnitMenu"); return $res; } catch (Exception $e) { } }
public static function getTOTContenuti($unit_id) { try { //verifica id unita se ha contenuti per ACL $user = JFactory::getUser(); $userid = $user->get('id'); // jimport( 'joomla.access.access' ); //RICORSIVITA' GRUPPI //TRUE :Gruppi ricorsivi. //FALSE :Solo gruppi di diretta appartenenza $groups = JAccess::getGroupsByUser($userid, true); $totcontenuti = 0; $db = JFactory::getDBO(); $query = ' SELECT count(*) FROM #__gg_unit_map as u LEFT JOIN #__gg_contenuti as c on c.id = u.idcontenuto INNER Join #__gg_contenuti_acl AS acl ON acl.id_contenuto = c.id WHERE u.idunita =' . $unit_id . ' and c.pubblicato = 1 and id_group in (' . implode(",", $groups) . ') ORDER BY ordinamento '; FB::LOG($query, "query getTOTContenuti"); // FB::LOG($groups, "groups getTOTContenuti"); $db->setQuery($query); $totcontenuti = $db->loadResult(); $subunit = gglmsHelper::getSubUnit($unit_id); foreach ($subunit as $unit) { $parziali = gglmsHelper::getTOTContenuti($unit['id']); $totcontenuti += $parziali; } } catch (Exception $e) { } FB::LOG($totcontenuti, "lista getTOTContenuti"); return $totcontenuti; }