/** * * @param <type> $eq_id * @param <type> $params * @return <type> */ function modifyEqImpl($params = null) { // Chequea que el usuario haya iniciado sesión $user =& JFactory::getUser(); if ($user->guest) { return; } $eq_id = property_exists($params, 'eq_id') ? $params->id : NULL; // Chequea que el usuario indicado sea valido if ($eq_id <= 0) { return; } // Crea nueva instancia del ecualizador $eqData = array('id' => $eq_id, 'nombre' => property_exists($params, 'nombre') ? $params->nombre : NULL, 'descripcion' => property_exists($params, 'descripcion') ? $params->descripcion : NULL, 'observaciones' => property_exists($params, 'observaciones') ? $params->observaciones : NULL, 'solrquery_bq' => property_exists($params, 'solrquery_bq') ? $params->solrquery_bq : NULL); // Almacena el ecualizador $model =& $this->getModel('Eq'); if (!$model->store(false, false, $eqData)) { $jtext = new JText(); $message = $jtext->sprintf('ZONALES_EQ_UPDATE_FAILURE', JText::_('ZONALES_EQ_EQ')); return $this->helper->getEqJsonResponse(comEqZonalesHelper::FAILURE, $message); } $jtext = new JText(); $message = $jtext->sprintf('ZONALES_EQ_UPDATE_SUCCESS', JText::_('ZONALES_EQ_EQ')); return $this->helper->getEqJsonResponse(comEqZonalesHelper::SUCCESS, $message); // if (!$model->store(false, false, $eqData)) { // echo "<script> alert('".$model->getError()."'); window.history.go(-1); </script>\n"; // exit(); // } }
/** * Crea o modifica un conjunto de bandas. La función esta pensada para ser * invocada mediante Ajax desde el frontend. Espera recuperar como variable * POST un mensaje JSON con los datos necesarios para la creación del nuevo * ecualizador. * * Debido a que esta pensando para ejecutarse por medio de AJAX agrega * chequeos de cuestiones de seguridad, tales como si el usuario esta * registrado e inicio sesión. * * @return JSON con información acerca del resultado de la operación. */ function modifyBandAjax() { // Controla que el request haya sido enviado por un usuario registrado. $user =& JFactory::getUser(); $jtext = new JText(); /** * Recupera los parametros desde POST */ $bands = JRequest::getVar('slider', NULL, 'post', 'array'); $eqid = JRequest::getVar('eqid', NULL, 'post', 'int'); /** * Genera un arreglo (bandsArray) con instancias de stdClass que * contienen los parametros necesarios para las bandas. */ $bandsArray = array(); foreach ($bands as $band) { list($id, $valueId, $peso, $operation) = explode("-", $band); $bandsArray[] = (object) array('id' => $id, 'cp_value_id' => $valueId, 'peso' => $peso, 'eq_id' => $eqid, 'operation' => $operation); } /** * Crea/modifica las bandas del ecualizador según la configuración * especificada. */ $result = $user->guest ? $this->modifyBandAnonImpl($bandsArray) : $this->modifyBandImpl($bandsArray); // Según la operación selecciona el tipo de mensaje de respuesta - ver com_eqzonales.ini switch ($operation) { case REMOVE: $op = 'DEL'; break; case ADD: $op = 'CREATE'; break; case MOD: $op = 'UPDATE'; break; } if (!$result) { echo $this->helper->getEqJsonResponse(comEqZonalesHelper::FAILURE, $jtext->sprintf('ZONALES_EQ_' . $op . '_FAILURE', JText::_('ZONALES_EQ_BAND'))); } else { echo $this->helper->getEqJsonResponse(comEqZonalesHelper::SUCCESS, $jtext->sprintf('ZONALES_EQ_' . $op . '_SUCCESS', JText::_('ZONALES_EQ_BAND'))); } return; }