Example #1
0
 /**
  * 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('"','&quot;', $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('"','&quot;', $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;
         }
     }
 }