function getBands()
 {
     $controller = new EqZonalesControllerEq();
     $rawBands = $controller->retrieveUserEq();
     return $rawBands;
     //    $userBands = array();
     //    foreach ($rawBands as $info) {
     //        $auxBands = $info->bands;
     //
     //        foreach ($auxBands as $band) {
     //            if (!property_exists($userBands, $band->id)){
     //                $userBands[] = $band->cp_value_id;
     //            }
     //        }
     //    }
     //
     //    return $userBands;
 }
 /**
  * Construye parámetros para filter query que excluye las bandas que
  * cuentan con un peso igual a cero.
  *
  * @return String parámetros de solr para la búsqueda.
  */
 function getDisabledBands()
 {
     // recupera el usuario
     $user =& JFactory::getUser();
     $fq = "";
     // recupera ecualizador del usuario
     $result = $this->_ctrlEq->retrieveUserEqImpl($user->id);
     if (!is_null($result) && !empty($result)) {
         $eq = $result[0];
         foreach ($eq->bands as $band) {
             if ($band->peso == 0) {
                 //$fq .= " tags_values:$band->band_name^$band->peso";
                 $fq .= " -tags_values:{$band->band_name}";
             }
         }
     }
     return $fq;
 }
Example #3
0
 /**
  * Genera el Ecualizador por defecto para el usuario. Este método también
  * reconstruye el ecualizador del usuario en caso de que haya si borrado.
  *
  * @param Array $user Arreglo con información del usuario.
  * @param Array $options Arreglo con opciones varias.
  * @return True En todos los casos. Si falla la creació del Ecualizador el
  *              modulo correspondiente mostrará un mensaje de error.
  */
 function onLoginUser($user, $options)
 {
     // No ejecutar si se accede al backend administrativo
     $app = JFactory::getApplication();
     if ($app->isAdmin()) {
         return true;
     }
     // Recupera información del usuario
     jimport('joomla.user.helper');
     $instance = new JUser();
     $id = intval(JUserHelper::getUserId($user['username']));
     if ($id) {
         $instance->load($id);
     }
     // Arreglo con datos del usuario relevantes
     $userTmp['id'] = intval($instance->get('id'));
     $userTmp['name'] = $instance->get('name');
     // Si el usuario no cuenta con un ecualizador, se lo genera
     $userEq = $this->_ctrlEq->retrieveUserEqImpl($id);
     if (is_null($userEq) || empty($userEq)) {
         $this->_ctrlEq->_createNewDefaultEq($userTmp);
     }
     return true;
 }
Example #4
0
 /**
  * Recupera los valores del tag indicado
  *
  * @param int id identificador del tag
  * @return array Arreglo de objetos value
  */
 function getMenuValues($id, $eq = false)
 {
     if (is_null($id)) {
         return null;
     }
     $dbo =& JFactory::getDBO();
     $query = 'SELECT ' . $dbo->nameQuote('v.id') . ', ' . $dbo->nameQuote('v.name') . ', ' . $dbo->nameQuote('v.label') . ', ' . $dbo->nameQuote('jm.link') . ', ' . $dbo->nameQuote('zm.menu_id') . ($eq ? ', b.peso' : '') . ' FROM ' . $dbo->nameQuote('#__custom_properties_values') . ' v' . ' INNER JOIN ' . $dbo->nameQuote('#__zonales_menu') . ' zm' . ' ON ' . $dbo->nameQuote('zm.value_id') . ' = ' . $dbo->nameQuote('v.id') . ' INNER JOIN ' . $dbo->nameQuote('#__menu') . ' jm' . ' ON ' . $dbo->nameQuote('jm.id') . ' = ' . $dbo->nameQuote('zm.menu_id');
     // ecualiza
     if ($eq) {
         require_once JPATH_BASE . DS . 'components' . DS . 'com_eqzonales' . DS . 'controllers' . DS . 'eq.php';
         JTable::addIncludePath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'tables');
         $ctrlEq = new EqZonalesControllerEq();
         $ctrlEq->addModelPath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'models');
         // recupera ecualizador del usuario
         $user =& JFactory::getUser();
         $result = $ctrlEq->retrieveUserEqImpl($user->id);
         if (!is_null($result) && !empty($result)) {
             $eq = $result[0];
             $query .= ' LEFT JOIN ' . $dbo->nameQuote('#__eqzonales_banda') . ' b' . ' ON ' . $dbo->nameQuote('v.id') . ' = ' . $dbo->nameQuote('b.cp_value_id') . ' AND ' . $dbo->nameQuote('b.eq_id') . ' = ' . $eq->eq->id;
         }
     }
     // where
     $query .= ' WHERE ' . $dbo->nameQuote('v.field_id') . ' = ' . $id;
     // ordena según ecualización
     if ($eq) {
         $query .= ' ORDER BY b.peso DESC';
     }
     $dbo->setQuery($query);
     return $this->_cache->get(array($dbo, 'loadObjectList'), array());
 }
 * Zonales is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */
// no direct access
defined('_JEXEC') or die('Restricted access');
require_once JPATH_BASE . DS . 'components' . DS . 'com_eqzonales' . DS . 'controllers' . DS . 'eq.php';
require_once JPATH_BASE . DS . 'components' . DS . 'com_eqzonales' . DS . 'controllers' . DS . 'band.php';
require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'helper' . DS . 'helper.php';
JTable::addIncludePath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'tables');
// helper
$helper = new comEqZonalesHelper();
// controladores
$ctrlEq = new EqZonalesControllerEq();
$ctrlEq->addModelPath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'models');
$ctrlBand = new EqZonalesControllerBand();
$ctrlBand->addModelPath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'models');
// template
$app =& JFactory::getApplication();
$template = $app->getTemplate();
// parametros
$menu_item = JFactory::getApplication()->getMenu()->getItem($params->get('menu_joomla'));
// recupera el usuario
$user =& JFactory::getUser();
$eq = null;
// recupera ecualizador del usuario
$result = $ctrlEq->retrieveUserEqImpl($user->id);
if (!is_null($result) && !empty($result)) {
    $eqtmp = $result[0];
<?php

// no direct access
defined('_JEXEC') or die('Restricted access');
require_once JPATH_BASE . DS . 'components' . DS . 'com_zonales' . DS . 'helper.php';
require JPATH_BASE . DS . 'components' . DS . 'com_eqzonales' . DS . 'helper.php';
require_once JPATH_BASE . DS . 'components' . DS . 'com_eqzonales' . DS . 'controllers' . DS . 'eq.php';
require_once JPATH_BASE . DS . 'components' . DS . 'com_eqzonales' . DS . 'controllers' . DS . 'band.php';
require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'helper' . DS . 'helper.php';
JTable::addIncludePath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'tables');
setlocale(LC_ALL, 'es_AR.utf8');
setlocale(LC_ALL, "es_ES@america", "es_ES", "buenos_aires");
$eq_z_com = new EqZonalesControllerEq();
$eq_z_com->addModelPath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'models');
$user =& JFactory::getUser();
$eq_actual = $eq_z_com->retrieveUserEqImpl($user->id);
if (!$zonal) {
    $zonal_com = new comZonalesHelper();
    $zonal_actual_label = $zonal_com->getZonalActualLabel();
} else {
    $zonal_actual_label = $zonal->label;
}
include 'nocache.php';
$mainframe = JFactory::getApplication();
?>
<!-- 26042011 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php 
echo $this->language;
?>
" lang="<?php 
 function addAnonDefaultEq()
 {
     global $option;
     // Según valor de retorno el estilo de msg será de exito o error
     $return = false;
     $link = 'index.php?option=' . $option;
     $paramsEq =& JComponentHelper::getParams('com_eqzonales');
     $eq_anon_id = $paramsEq->get('eq_anon_id', null);
     $eq_anon_name = $paramsEq->get('eq_anon_name', null);
     if (is_null($eq_anon_id)) {
         $msg = 'No se especifico un id para el Ecualizador Anónimo';
         $this->setRedirect($link, $msg);
         return $return;
     }
     /**
      * Crea instancias de los controladores del componente EqZonales,
      * y les setea el path correcto hacia sus respectivos modelos.
      */
     $ctrlEq = new EqZonalesControllerEq();
     $ctrlEq->addModelPath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'models');
     $ctrlBand = new EqZonalesControllerBand();
     $ctrlBand->addModelPath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'models');
     $params = new stdClass();
     $params->id = $eq_anon_id;
     $params->user_id = 0;
     $params->nombre = $eq_anon_name;
     $params->descripcion = $eq_anon_name;
     $params->observaciones = $eq_anon_name;
     /**
      * Crea el ecualizador con los datos del nuevo usuario.
      * ----
      * NOTA: Al especificar id en $params, JTable realiza un update
      * sobre la base de datos. Como no se encontro forma de evitar este
      * comportamiento se decidió interactuar directamente con la base de
      * datos.
      */
     //$eqId = $ctrlEq->createEq($params);
     $eqRow =& JTable::getInstance('eq', 'Table');
     if ($eqRow->load($eq_anon_id)) {
         $msg = 'Error al crear el Ecualizador Anónimo - El ID especificado ya existe';
     } else {
         // Insertamos el EQ anonimo
         $db =& JFactory::getDBO();
         $query = "INSERT INTO #__eqzonales_eq (id,user_id,nombre,descripcion,observaciones)" . " VALUES ({$params->id}, {$params->user_id}, '{$params->nombre}', '{$params->descripcion}', '{$params->observaciones}')";
         $db->setQuery($query);
         $result = $db->query();
         //if ($eqId === FALSE) {
         if ($result === FALSE) {
             $msg = 'Error al crear el Ecualizador Anónimo - No se pudo almacenar en la BD';
         } else {
             /**
              * Instancia las bandas por defecto para el ecualizador.
              */
             $ctrlBand->createDefaultBands($params);
             $msg = 'Ecualizador Anónimo creado exitosamente';
             $return = true;
         }
     }
     $this->setRedirect($link, $msg);
     return $return;
 }
Example #8
0
 /**
  *
  * @param integer $userid
  * @param string $value
  * @return array
  */
 static function getAncestors($userid, $value)
 {
     // recupero la informacion sobre el valor especificado
     $db = JFactory::getDBO();
     $queryId = 'select cpv.id, cpv.parent_id from #__custom_properties_values cpv where cpv.name=' . $db->Quote($value);
     $db->setQuery($queryId);
     $valueDb = $db->loadObject();
     $id = $valueDb->id;
     $valueId = $valueDb->parent_id;
     // recupero los ancestros del valor especificado
     $ancestors = array();
     $query = 'select cpv.parent_id, cpv.name, cpv.id from #__custom_properties_values cpv where cpv.id=';
     do {
         $ancestors[$value] = $id;
         if ($valueId == 0) {
             break;
         }
         $currentQuery = $query . $valueId;
         $db->setQuery($currentQuery);
         $parentDB = $db->loadObject();
         $valueId = $parentDB->parent_id;
         $value = $parentDB->name;
         $id = $parentDB->id;
     } while (true);
     // busco si los valores estan en las bandas del usuario especificado
     $engine = new EqZonalesControllerEq();
     $aInfo = $engine->retrieveUserEqImpl($userid);
     $out = array();
     foreach ($ancestors as $valueName => $value) {
         $out[$valueName] = 0;
     }
     foreach ($aInfo as $currentInfo) {
         $bands = $currentInfo->bands;
         foreach ($bands as $currentBand) {
             $vId = $currentBand->cp_value_id;
             $key = array_search($vId, $ancestors);
             $aux = isset($out[$key]) ? $out[$key] : 0;
             if ($key != '' && $key != 0 && $key === FALSE) {
                 // si no, lo dejo como esta
                 $out[$key] = $aux;
             } else {
                 // si el valor tiene un peso asignado en el ecualizador
                 // acumulo el peso a los anteriores (si correspondiere)
                 $out[$key] = $aux + $currentBand->peso;
             }
         }
     }
     if (isset($out[0])) {
         unset($out[0]);
     }
     $outN = arsort($out, SORT_NUMERIC);
     // ordeno el arreglo de salida en base a su relevancia
     // y lo devuelvo
     return $out;
 }
 /**
  *
  * @return <type>
  */
 function getEqPreferences()
 {
     require_once JPATH_BASE . DS . 'components' . DS . 'com_eqzonales' . DS . 'controllers' . DS . 'eq.php';
     JTable::addIncludePath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'tables');
     // controladores
     $ctrlEq = new EqZonalesControllerEq();
     $ctrlEq->addModelPath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_eqzonales' . DS . 'models');
     // recupera el usuario
     $user =& JFactory::getUser();
     $bq = "";
     if (!$user->guest) {
         // recupera ecualizador del usuario
         $result = $ctrlEq->retrieveUserEqImpl($user->id);
         if (!is_null($result) && !empty($result)) {
             $eq = $result[0];
             foreach ($eq->bands as $band) {
                 $bq .= " tags_values:{$band->band_name}^{$band->peso}";
             }
         }
     } else {
         $session =& JFactory::getSession();
         if ($session->has('eq')) {
             $eq = $session->get('eq');
             foreach ($eq->bands as $band) {
                 $bq .= " tags_values:{$band->band_name}^{$band->peso}";
             }
         }
     }
     return $bq;
 }