/**
  * Perform upload of a file
  */
 public function performuploadAction()
 {
     Zend_Controller_Front::getInstance()->getResponse()->clearHeaders();
     $this->getHelper('layout')->disableLayout();
     $this->getHelper('viewRenderer')->setNoRender();
     /* $writer = new Zend_Log_Writer_Stream ( ZfApplication::$_data_path.DIRECTORY_SEPARATOR."upload.txt" );
           $logger = new Zend_Log ( $writer );
     
           $logger->log ( serialize($_REQUEST), Zend_Log::INFO ); */
     $image = Zoo::getService('content')->createRow();
     $image->type = 'filemanager_file';
     $image->title = substr($this->getRequest()->getParam('Filename'), 0, strrpos($this->getRequest()->getParam('Filename'), '.'));
     $image->status = 1;
     $image->published = time();
     $image->pid = $this->getRequest()->getParam('parent');
     $image->save();
     /**
      * A little bit of hard-coding, since the normal file uploading through Zend_Form_Element_File is not used with flash/AJAX uploader
      */
     $factory = new Filemanager_File_Factory();
     $file = $factory->createRow();
     $file->nid = $image->id;
     $file->mimetype = $factory->getMimetype($_FILES['Filedata']['name']);
     $file->size = $_FILES['Filedata']['size'];
     $file->save();
     rename($_FILES['Filedata']['tmp_name'], $file->getPath());
     // Clear listing cache
     Zoo::getService('cache')->remove("Filemanager_FileController_listAction" . $image->pid);
     try {
         // Trigger node save hooks
         $form = $image->getForm($this->_helper->getHelper('url')->direct('save', 'node', 'Content'));
         Zoo::getService("hook")->trigger("Node", "Save", $form, $image);
     } catch (Zoo_Exception_Service $e) {
         // Hook service not available - log? Better not, some people may live happily without a hook service
     }
     // Report back the URL for the file
     $factory = new Filemanager_File_Factory();
     $file = $factory->find($image->id)->current();
     if ($file) {
         echo $file->getUrl(200, 200);
     } else {
         // Error during upload, delete the file object
         $image->delete();
         echo Zoo::_("An error occurred during file upload, please try again");
     }
 }
Example #2
0
 /**
  * Hook for node save - if type is Filemanager Node, save extra fields
  *
  * @param Zend_Form $form
  * @param array $arguments
  */
 public function nodeSave(&$form, &$arguments)
 {
     $item = array_shift($arguments);
     $arguments = array_shift($arguments);
     if ($item->type == "filemanager_file" && $form->filemanager_file) {
         $factory = new Filemanager_File_Factory();
         // Save Filemanager fields
         if ($item->id > 0) {
             // Fetch Filemanager object
             $file = $factory->find($item->id)->current();
             if (!$file) {
                 $file = $factory->createRow();
             }
         } else {
             $file = $factory->createRow();
         }
         if ($form->filemanager_file->isUploaded()) {
             if ($form->filemanager_file->receive()) {
                 $file->nid = $item->id;
                 // Update physical file
                 $location = $form->filemanager_file->getFileName();
                 $existing = $file->getPath();
                 if (file_exists($existing)) {
                     unlink($existing);
                 }
                 rename($location, $existing);
                 // Update database
                 $file->mimetype = $factory->getMimetype($_FILES['filemanager_file']['name']);
                 $file->size = filesize($file->getPath());
                 //                if (substr($file->mimetype, 0, 5) == "image") {
                 //                    $file->exif = "";
                 /**
                  * @todo: Implement exif data read
                  */
                 //                }
                 $file->save();
             } else {
                 print "Error receiving the file";
                 /**
                  * @todo: Change this to exception/debug message
                  */
             }
         }
     }
 }
 private function createGalleries($urls)
 {
     $factory = new Filemanager_File_Factory();
     $link_service = Zoo::getService('link');
     foreach ($urls as $i => $array) {
         set_time_limit(60);
         // Create gallery_node content item
         $gallery = Zoo::getService('content')->createRow();
         $gallery->type = 'gallery_node';
         $gallery->title = $array['title'];
         $gallery->content = $array['text'];
         $gallery->status = 1;
         $gallery->published = time();
         $gallery->save();
         $fp = fopen(ZfApplication::$_data_path . DIRECTORY_SEPARATOR . $this->getRequest()->getParam('account') . "_" . $this->getRequest()->getParam('offset') . ".txt", 'w');
         fwrite($fp, serialize(array('id' => $gallery->id, 'total' => count($array['ids']))));
         fclose($fp);
         Zoo::getService('content')->setFilter($gallery, 3, 1);
         Zoo::getService('content')->setFilter($gallery, 6, 1);
         foreach ($array['ids'] as $k => $id) {
             set_time_limit(60);
             // Insert image with $id and $array['texts'][$k]
             $image = Zoo::getService('content')->createRow();
             $image->type = 'filemanager_file';
             $image->title = $id;
             if ($array['texts'][$k]) {
                 $image->content = $array['texts'][$k];
             }
             $image->status = 1;
             $image->published = time();
             $image->pid = $gallery->id;
             $image->save();
             Zoo::getService('content')->setFilter($image, 3, 1);
             Zoo::getService('content')->setFilter($image, 6, 1);
             $file = $factory->createRow();
             $file->nid = $image->id;
             $file->mimetype = "image/jpeg";
             // Fetch image from 123hjemmeside.dk
             $url = "http://www.123hjemmeside.dk/picture.aspx?id=" . $id;
             $jpg = file_get_contents($url);
             file_put_contents($file->getPath(), $jpg);
             $file->size = filesize($file->getPath());
             $file->save();
             // Connect image to gallery_node
             $gnode = $link_service->createRow();
             $gnode->type = 'gallery_image';
             $gnode->nid = $gallery->id;
             $gnode->tonid = $image->id;
             $gnode->weight = $k;
             $gnode->save();
             unset($image, $file, $jpg, $gnode);
         }
         unset($gallery);
     }
 }