Example #1
0
 /**
  * Copy the article with extrafields
  *
  * @access	public
  * @since	1.5
  */
 public function copyArticle($article, $oldid)
 {
     $app = JFactory::getApplication();
     //COPY AND SAVE LIKE COPY
     $newid = $article->id;
     if (!empty($oldid)) {
         $db =& JFactory::getDBO();
         //COPY __fieldsattach_values VALUES TABLE
         $query = 'SELECT * FROM #__fieldsattach_values as a  WHERE a.articleid = ' . $oldid;
         //Log
         plgSystemfieldsattachment::writeLog("function copyArticle log1: " . $query);
         $db->setQuery($query);
         $results = $db->loadObjectList();
         if ($results) {
             foreach ($results as $result) {
                 $query = 'SELECT * FROM #__fieldsattach_values as a  WHERE a.articleid = ' . $newid . ' AND a.fieldsid=' . $result->fieldsid;
                 $db->setQuery($query);
                 $obj = $db->loadObject();
                 if (!empty($obj)) {
                     //update
                     //$query = 'UPDATE  #__fieldsattach_values SET value="'.$result->valor.'" WHERE id='.$result->id ;
                     //$db->setQuery($query);
                     //echo "<br>".$query;
                     //$db->query();
                 } else {
                     //insert
                     $query = 'INSERT INTO #__fieldsattach_values(articleid,fieldsid,value) VALUES (' . $newid . ',\'' . $result->fieldsid . '\',\'' . $result->value . '\' )     ';
                     $db->setQuery($query);
                     $db->query();
                 }
             }
         }
         //COPY  fieldsattach_images GALLERIES-----------------------------
         $query = 'SELECT * FROM #__fieldsattach_images as a  WHERE a.articleid = ' . $oldid;
         $db->setQuery($query);
         $results = $db->loadObjectList();
         if (count($results) > 0) {
             foreach ($results as $result) {
                 //JError::raiseWarning( 100, "QUERY1.2: ".  $result->fieldsattachid  );
                 if (isset($result->fieldsattachid)) {
                     $query = 'SELECT * FROM #__fieldsattach_images as a  WHERE a.articleid = ' . $newid . ' AND a.fieldsattachid=' . $result->fieldsattachid;
                     $db->setQuery($query);
                     $obj = $db->loadObject();
                     if ($obj) {
                         //update
                         $query = 'UPDATE  #__fieldsattach_images SET image1="' . $result->title . '", image1="' . $result->image1 . '", image2="' . $result->image2 . '", image3="' . $result->image3 . '", description="' . $result->description . '", ordering="' . $result->ordering . '", published="' . $result->published . '"  WHERE id=' . $result->id;
                         $db->setQuery($query);
                         $db->query();
                     } else {
                         //insert
                         $query = 'INSERT INTO #__fieldsattach_images(articleid,fieldsattachid,title,  image1, image2, image3, description, ordering, published) VALUES (' . $newid . ',\'' . $result->fieldsattachid . '\',\'' . $result->title . '\',\'' . $result->image1 . '\',\'' . $result->image2 . '\',\'' . $result->image3 . '\',\'' . $result->description . '\',\'' . $result->ordering . '\',\'' . $result->published . '\' )     ';
                         $db->setQuery($query);
                         $db->query();
                     }
                 }
             }
         }
         //copy documents and images
         $sitepath = JPATH_BASE;
         $sitepath = str_replace("administrator", "", $sitepath);
         $sitepath = JPATH_SITE;
         //COPY  FOLDER -----------------------------
         $path = '..' . DS . 'images' . DS . 'documents';
         if (JRequest::getVar('option') == 'com_categories' && JRequest::getVar('layout') == "edit" && JRequest::getVar('extension') == "com_content") {
             $path = '..' . DS . 'images' . DS . 'documentscategories';
         }
         $path = str_replace("../", DS, $path);
         $source = $sitepath . $path . DS . $oldid . DS;
         $dest = $sitepath . $path . DS . $newid . DS;
         //JFolder::copy($source, $dest);
         if (!JFolder::exists($dest)) {
             JFolder::create($dest);
         }
         $files = JFolder::files($source);
         foreach ($files as $file) {
             if (Jfile::copy($source . $file, $dest . $file)) {
                 $app->enqueueMessage(JTEXT::_("Copy file ok:") . $file);
             } else {
                 JError::raiseWarning(100, "Cannot copy the file: " . $source . $file . " to " . $dest . $file);
             }
         }
     }
     //$app->enqueueMessage( JText::_("EXTRA FIELDS ADDED"), 'info'   )   ;
     //END COPY AND SAVE============================================================================
 }
Example #2
0
 /**
  * Copy the article with extrafields
  *
  * @access   public
  * @since    1.5
  */
 public function copyArticle($article, $oldid)
 {
     //JError::raiseWarning( 100, "Copy article ".$article->id . " old: ".$oldid );
     $app = JFactory::getApplication();
     //COPY AND SAVE LIKE COPY
     $newid = $article->id;
     if (!empty($oldid)) {
         $db = JFactory::getDBO();
         //COPY __fieldsattach_values VALUES TABLE
         //$query = 'INSERT INTO #__fieldsattach_values (articleid, fieldsid, value) SELECT ' . $newid . ', fieldsid, value FROM #__fieldsattach_values WHERE articleid = '. $oldid;
         //$db->setQuery( $query );
         //$db->query();
         //Log
         //plgSystemfieldsattachment::writeLog("function copyArticle log1: ".$query);
         $query = 'INSERT into #__fieldsattach_images (articleid, fieldsattachid, title,  image1, image2, image3, description, ordering, published)' . ' SELECT ' . $newid . ', fieldsattachid, title,  image1, image2, image3, description, ordering, published FROM #__fieldsattach_images WHERE articleid = ' . $oldid;
         $db->setQuery($query);
         $db->query();
         //copy documents and images
         $sitepath = JPATH_SITE;
         //COPY  FOLDER IMG-----------------------------
         $path = '/images/documents';
         if (JRequest::getVar('option') == 'com_categories' && JRequest::getVar('layout') == "edit" && JRequest::getVar('extension') == "com_content") {
             $path = '/images/documentscategories';
         }
         $source = $sitepath . $path . '/' . $oldid . '/';
         $dest = $sitepath . $path . '/' . $newid . '/';
         // progress only if source dir exists
         if (JFolder::exists($source)) {
             if (!JFolder::exists($dest)) {
                 JFolder::create($dest);
             }
             $files = JFolder::files($source);
             foreach ($files as $file) {
                 if (Jfile::copy($source . $file, $dest . $file)) {
                     $app->enqueueMessage(JTEXT::_("Copy file ok:") . $file);
                 } else {
                     JError::raiseWarning(100, "Cannot copy the file: " . $source . $file . " to " . $dest . $file);
                 }
             }
         }
     }
 }
Example #3
0
        /**
	* Save alls fields of article
	*
	* @access	public
	* @since	1.5
	*/
	public function onContentAfterSave($context, &$article, $isNew)
	{  
            
            $app = JFactory::getApplication();
            $user =& JFactory::getUser();
            $option = JRequest::getVar("option","");
            $layout = JRequest::getVar('layout',"");
            $extension = JRequest::getVar('extension',"");
            $view= JRequest::getVar('view',"");

            $sitepath = JPATH_BASE ;
            $sitepath = str_replace ("administrator", "", $sitepath); 
            $sitepath = JPATH_SITE;
             $fontend = false;
             if( $option=='com_content' && $user->get('id')>0 &&  $view == 'form' &&  $layout == 'edit'  ) $fontend = true;
             if(JRequest::getVar("a_id")>0) $fontend = true;

             //CATEGORIES ==============================================================
              if (($option=='com_categories' && $layout=="edit" && $extension=="com_content"  ))
                 {
                     $backendcategory = true;
                     $backend=true;
                     
                     $this->onContentAfterSaveCategories($context, $article, $isNew);
                     $this->createDirectory($article->id); 
                 }

             //Crear directorio ==============================================================
             if (($option=='com_content' && $view=="article"   )||($fontend))
             {
                 $this->createDirectory($article->id); 
             }
 
             //============================================================================
            //COPY AND SAVE LIKE COPY
            if( (JRequest::getVar("id") != $article->id && (!empty( $article->id))   && ($article->id>0) && (JRequest::getVar("id")>0))  ){
                $oldid = JRequest::getVar("id")  ; 
                $newid = $article->id;
                
                $db	= & JFactory::getDBO();
                //COPY __fieldsattach_values VALUES TABLE
                $query = 'SELECT * FROM #__fieldsattach_values as a  WHERE a.articleid = '. $oldid ;
                $db->setQuery( $query );
                $results= $db->loadObjectList();
                if($results){
                    foreach ($results as $result)
                    {
                        $query = 'SELECT * FROM #__fieldsattach_values as a  WHERE a.articleid = '. $newid.' AND a.fieldsid='.$result->fieldsid ;
                        $db->setQuery( $query );
                        $obj= $db->loadObject();
                        if($obj)
                        {
                            //update
                             $query = 'UPDATE  #__fieldsattach_values SET value="'.$result->valor.'" WHERE id='.$result->id ;
                             $db->setQuery($query);
                             $db->query();
							 
                            
                        }else{
                            //insert
                             $query = 'INSERT INTO #__fieldsattach_values(articleid,fieldsid,value) VALUES ('.$newid.',\''.  $result->fieldsid .'\',\''.$result->value.'\' )     ';
                             $db->setQuery($query);
                             $db->query();
                        }
                        
                    }
                }
 

                //COPY  fieldsattach_images GALLERIES-----------------------------
                $query = 'SELECT * FROM #__fieldsattach_images as a  WHERE a.articleid = '. $oldid ;
                $db->setQuery( $query );
                $results= $db->loadObjectList();
                if($results){
                    foreach ($results as $result)
                    {
                        $query = 'SELECT * FROM #__fieldsattach_images as a  WHERE a.articleid = '. $newid.' AND a.fieldsattachid='.$result->fieldsid ;
                        $db->setQuery( $query );
                        $obj= $db->loadObject();
                        if($obj)
                        {
                            //update
                             $query = 'UPDATE  #__fieldsattach_images SET image1="'.$result->title.'", image1="'.$result->image1.'", image2="'.$result->image2.'", image3="'.$result->image3.'", description="'.$result->description.'", ordering="'.$result->ordering.'", published="'.$result->published.'"  WHERE id='.$result->id ;
                             $db->setQuery($query);
                             $db->query();

                        }else{
                            //insert
                            $query = 'INSERT INTO #__fieldsattach_images(articleid,fieldsattachid,title,  image1, image2, image3, description, ordering, published) VALUES ('.$newid.',\''.  $result->fieldsattachid .'\',\''.$result->title.'\',\''.$result->image1.'\',\''.$result->image2.'\',\''.$result->image3.'\',\''.$result->description.'\',\''.$result->ordering.'\',\''.$result->published.'\' )     ';
                            $db->setQuery($query);
                             $db->query();
                        }
                    }
                }

                
                if(!$fontend){
                    //COPY  FOLDER -----------------------------
                    $app = JFactory::getApplication();
                    $path = $this->path;
                    $path = str_replace ("../", DS, $path);
                    $source = $sitepath . $path .DS.  $oldid.DS;
                    $dest = $sitepath.  $path .DS.  $newid.DS;
                    //JFolder::copy($source, $dest);
                    if(!JFolder::exists($dest))
                    {
                        JFolder::create($dest);
                    }
                     
                    $files =  JFolder::files($source);

                    foreach ($files as $file)
                    { 
                        if(Jfile::copy($source.$file, $dest.$file)) $app->enqueueMessage( JTEXT::_("Copy file ok:") . $file )   ;
                        else JError::raiseWarning( 100, "Cannot copy the file: ".  $source.$file." to ".$dest.$file );
                    }
                }

            }
            //END COPY AND SAVE============================================================================

            //Ver categorias del artículo ==============================================================
            //$idscat = $this->recursivecat($article->catid);
            /*fieldsattachHelper::recursivecat($article->catid, & $idscat);
            

            $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 ('. $idscat .') AND a.published=1 AND b.published = 1 ORDER BY 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->catid )
                {
                    //Mirar si recursivamente si
                    if(!$field->recursive)
                        {
                            //echo "ELIMINO DE LA LISTA " ;
                            unset($nameslst[$cont]);
                        }
                }
                $cont++;
            } 
             */
            
            if (($option=='com_content' && $layout=="edit" ) || $fontend)
                 {
            $db	= & JFactory::getDBO();
            $nameslst = fieldsattachHelper::getfields($article->id);
            
            

           // JError::raiseWarning( 100, "NUMEROOO: ". count($nameslst) ." - ".$article->catid );
            //***********************************************************************************************
            //create array of fields  ****************  ****************  ****************
            //***********************************************************************************************
            $fields_tmp0 = fieldsattachHelper::getfieldsForAll($article->id);
            $nameslst = array_merge($fields_tmp0, $nameslst );

            $fields_tmp2 = fieldsattachHelper::getfieldsForArticlesid($article->id, $nameslst);

            $nameslst = array_merge( $nameslst, $fields_tmp2 );
            
            //Si existen fields relacionados se mira uno a uno si tiene valores
            //JError::raiseWarning( 100, count($nameslst)  );
            if(count($nameslst)>0){
                foreach($nameslst as $obj)
                {
                    $query = 'SELECT a.id, b.required ,b.title, b.extras FROM #__fieldsattach_values as a INNER JOIN #__fieldsattach as b ON a.fieldsid = b.id WHERE a.articleid='.$article->id .' AND a.fieldsid ='. $obj->id ;
                    //echo $query;
                    
                    $db->setQuery($query);
                    $valueslst = $db->loadObject();
                    if(count($valueslst)==0)
                        {
                            //INSERT 
                           // $valor = JRequest::getVar("field_". $obj->id, '', 'post', null, JREQUEST_ALLOWHTML);
                            $valor = $_POST["field_". $obj->id]; 
                            if(is_array($valor))
                            {
                                $valortxt="";
                                for($i = 0; $i < count($valor); $i++ )
                                {

                                      $valortxt .=  $valor[$i].", ";
                                }
                                $valor = $valortxt;
                            }
                            
                            //remove vbad characters
                            $valor = preg_replace('/[^(\x20-\x7F)]*/','', $valor);
                            
                            //INSERT 
                            $query = 'INSERT INTO #__fieldsattach_values(articleid,fieldsid,value) VALUES ('.$article->id.',\''.  $obj->id .'\',\''.$valor.'\' )     ';
                            $db->setQuery($query);
                            $db->query();

                            //Select last id ----------------------------------
                            $query = 'SELECT  id  FROM #__fieldsattach_values AS a WHERE  a.articleid='.$article->id.' AND a.fieldsid='.$obj->id;
                            //echo $query;
                            $db->setQuery( $query );
                            $result = $db->loadObject();
                            $valueslst->id = $result->id; 
                            
                        }
                        else{
                            //UPDATE 
                            //$valor = JRequest::getVar("field_". $obj->id, '', 'post', null, JREQUEST_ALLOWHTML); 
                             $valor = $_POST["field_". $obj->id]; 
                             
                            if(is_array($valor))
                            { 
                                $valortxt="";
                                for($i = 0; $i < count($valor); $i++ )
                                { 
                                      $valortxt .=  $valor[$i].", ";
                                }
                                $valor = $valortxt;
                            }
                            
                            //remove vbad characters
                            //$valor = preg_replace('/[^(\x20-\x7F)]*/','', $valor);
                            
                            //$valor = str_replace('"','&quot;', $valor );
                            //$valor = htmlspecialchars($valor);
                            //Remove BAD characters ****
                            $valor = preg_replace('/border="*"*/','', $valor);
                            
                            $valor = htmlspecialchars($valor);
                            
                            $query = 'UPDATE  #__fieldsattach_values SET value="'.$valor.'" WHERE id='.$valueslst->id .' AND articleid='.$article->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);
                        }
                }
                } 
            }

	    return true;
        }
Example #4
0
 /**
  *     *
  * @param string $source
  * @param string $destination
  * @return bool
  */
 public static function copy($source, $destination)
 {
     $destination = Sobi::FixPath(str_replace('\\', '/', $destination));
     $path = explode('/', str_replace(array(SOBI_ROOT, str_replace('\\', '/', SOBI_ROOT)), null, $destination));
     $part = SOBI_ROOT;
     $i = count($path);
     // yeah I know ... shame on me :(
     while (!@$path[$i]) {
         unset($path[$i--]);
     }
     array_pop($path);
     if (!is_string($path) && count($path)) {
         foreach ($path as $dir) {
             $part .= "/{$dir}";
             if ($dir && !file_exists($part)) {
                 self::mkdir($part);
             }
         }
     }
     if (!is_dir($source)) {
         return Jfile::copy(self::clean($source), self::clean($destination));
     } else {
         return Jfolder::copy(self::clean($source), self::clean($destination));
     }
 }