/** * Save alls fields of cagtegory * * TODO : CLONE FUNCTIO FOR TRANSLATION * TODO : ALL CATEGORIES * * @access public * @since 1.5 */ public function onContentAfterSaveCategories($context, $article, $isNew) { //Ver categorias del artículo ============================================================== //$idscat = $this->recursivecat($article->id); $this->str = fieldsattachHelper::recursivecat($article->id); $db =& JFactory::getDBO(); //JError::raiseWarning( 100, " IDDDD CATEGORIES: ".$article->id ); /* $query = 'SELECT a.id, a.type, b.recursive, b.catid FROM #__fieldsattach as a INNER JOIN #__fieldsattach_groups as b ON a.groupid = b.id WHERE b.catid IN ('. $this->str .') AND a.published=1 AND b.published = 1 ORDER BY b.ordering, a.ordering, a.title'; $db->setQuery( $query ); $nameslst = $db->loadObjectList(); */ //*********************************************************************************************** //Mirar cual de los grupos es RECURSIVO **************** **************** **************** //*********************************************************************************************** /*$cont = 0; foreach ($nameslst as $field) { //JError::raiseWarning( 100, $field->catid ." !=".$article->catid ); if( $field->catid != $article->id ) { //Mirar si recursivamente si if(!$field->recursive) { //echo "ELIMINO DE LA LISTA " ; unset($nameslst[$cont]); } } $cont++; }*/ //*********************************************************************************************** //Create array of fields **************** **************** **************** //*********************************************************************************************** //$fields_tmp0 = fieldsattachHelper::getfieldsForAllCategory($article->id); //$nameslst = array_merge($fields_tmp0, $nameslst ); $fields_tmp0 = fieldsattachHelper::getfieldsForAllCategory($article->id); $fields = fieldsattachHelper::getfieldsCategory($article->id); $nameslst = array_merge($fields_tmp0, $fields); //Si existen fields relacionados se mira uno a uno si tiene valores if (count($nameslst) > 0) { foreach ($nameslst as $obj) { $query = 'SELECT a.id , b.extras, b.visible FROM #__fieldsattach_categories_values as a INNER JOIN #__fieldsattach as b ON a.fieldsid = b.id WHERE a.catid=' . $article->id . ' AND a.fieldsid =' . $obj->id; $db->setQuery($query); $valueslst = $db->loadObject(); if (empty($valueslst->id)) { //INSERT $valor = JRequest::getVar("field_" . $obj->id, '', 'post', 'string', JREQUEST_ALLOWHTML); if (is_array($valor)) { $valortxt = ""; for ($i = 0; $i < count($valor); $i++) { $valortxt .= $valor[$i] . ", "; } $valor = $valortxt; } //INSERT //$valor = str_replace('"','"', $valor ); $valor = htmlspecialchars($valor); $query = 'INSERT INTO #__fieldsattach_categories_values(catid,fieldsid,value) VALUES (' . $article->id . ',\'' . $obj->id . '\',\'' . $valor . '\' ) '; $db->setQuery($query); $db->query(); // JError::raiseWarning( 100, " count: ".$query ); //Select last id ---------------------------------- $query = 'SELECT id FROM #__fieldsattach_categories_values AS a WHERE a.catid=' . $article->id . ' AND a.fieldsid=' . $obj->id; //echo $query; $db->setQuery($query); $result = $db->loadObject(); $valueslst->id = $result->id; //Required } else { //UPDATE $valor = JRequest::getVar("field_" . $obj->id, '', 'post', 'string', JREQUEST_ALLOWHTML); if (is_array($valor)) { $valortxt = ""; for ($i = 0; $i < count($valor); $i++) { $valortxt .= $valor[$i] . ", "; } $valor = $valortxt; } //$valor = str_replace('"','"', $valor ); $valor = htmlspecialchars($valor); $query = 'UPDATE #__fieldsattach_categories_values SET value="' . $valor . '" WHERE id=' . $valueslst->id; $db->setQuery($query); // JError::raiseWarning( 100, $query ); $db->query(); } //Acción PLUGIN ======================================================== JPluginHelper::importPlugin('fieldsattachment'); // very important $query = 'SELECT * FROM #__extensions as a WHERE a.element="' . $obj->type . '" AND a.enabled= 1'; // JError::raiseWarning( 100, $obj->type." --- ". $query ); $db->setQuery($query); $results = $db->loadObject(); if (!empty($results)) { $function = "plgfieldsattachment_" . $obj->type . "::action( " . $article->id . "," . $obj->id . "," . $valueslst->id . ");"; // JError::raiseWarning( 100, $function ); eval($function); } //JError::raiseWarning( 100, " IDDDD CATEGORIES: ". $obj->id ); //TODO Insert in category text $this->insertinDescription($article->id, $obj->id, $valueslst->visible); } } return true; }
/** * recursive function * * @access public * @since 1.5 */ public function recursivecat($catid, $idscats = "") { global $retorno_recursive; //JError::raiseNotice(500, "CATID:: ".$catid." - ".$idscats); if (!empty($catid)) { if (!empty($idscats)) { $idscats .= ","; } $idscats .= $catid; $db =& JFactory::getDBO(); $query = 'SELECT parent_id FROM #__categories as a WHERE a.id=' . $catid; //echo "<br>SQL:: ".$query."<br>"; $db->setQuery($query); $parent_id = $db->loadResult(); //echo "PARENT:: ".$parent_id."<br>"; if (!empty($parent_id)) { //echo "<br>".$idscats; fieldsattachHelper::recursivecat($parent_id, $idscats); } else { // echo "<br>retorno:".$idscats."<br />"; $retorno_recursive = $idscats; return $idscats; } } }