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; }
/** * Crea un nuevo ecualizador en base a la información del usuario. * * @param Array $user arreglo con datos del usuario. */ function _createNewDefaultEq($user) { /** * Objeto con información del usurio y ecualizador a crear */ $eq = new stdClass(); $eq->user_id = $user->id; $eq->nombre = $user->name; $eq->descripcion = 'Ecualizador de ' . $eq->nombre; $eq->observaciones = 'Ecualizador de ' . $eq->nombre; /** * Crea el ecualizador con los datos del nuevo usuario. */ $eqId = $this->createEq($eq); if ($eqId === FALSE) { return; } else { $eq->id = $eqId; /** * Instancia las bandas por defecto para el ecualizador. */ require_once JPATH_BASE . DS . 'components' . DS . 'com_eqzonales' . DS . 'controllers' . DS . 'band.php'; $ctrlBand = new EqZonalesControllerBand(); $ctrlBand->createDefaultBands($eq); } return array($eq); }