コード例 #1
0
ファイル: Bzip2.php プロジェクト: xamiro-dev/xamiro
 /**
  * Extract a Bzip2 compressed file to a given path
  *
  * @param   string  $archive      Path to Bzip2 archive to extract
  * @param   string  $destination  Path to extract archive to
  *
  * @return  boolean  True if successful
  *
  * @since   1.0
  * @throws  Exception
  */
 public function extract($archive, $destination)
 {
     $this->data = null;
     $this->options['use_streams'] = false;
     if (!isset($this->options['use_streams']) || $this->options['use_streams'] == false) {
         // Old style: read the whole file and then parse it
         $this->data = file_get_contents($archive);
         if (!$this->data) {
             throw new Exception('Unable to read archive');
         }
         $buffer = bzdecompress($this->data);
         unset($this->data);
         if (empty($buffer)) {
             throw new Exception('Unable to decompress data');
         }
         if (xapp_File2::write($destination, $buffer) === false) {
             throw new Exception('Unable to write archive');
         }
     } else {
         // New style! streams!
         $input = Stream::getStream();
         // Use bzip
         $input->set('processingmethod', 'bz');
         if (!$input->open($archive)) {
             throw new Exception('Unable to read archive (bz2)');
         }
         $output = Stream::getStream();
         if (!$output->open($destination, 'w')) {
             $input->close();
             throw new Exception('Unable to write archive (bz2)');
         }
         do {
             $this->data = $input->read($input->get('chunksize', 8196));
             if ($this->data) {
                 if (!$output->write($this->data)) {
                     $input->close();
                     throw new Exception('Unable to write archive (bz2)');
                 }
             }
         } while ($this->data);
         $output->close();
         $input->close();
     }
     // @codeCoverageIgnoreEnd
     return true;
 }
コード例 #2
0
ファイル: Gzip.php プロジェクト: xamiro-dev/xamiro
 /**
  * Extract a Gzip compressed file to a given path
  *
  * @param   string  $archive      Path to ZIP archive to extract
  * @param   string  $destination  Path to extract archive to
  *
  * @return  boolean  True if successful
  *
  * @since   1.0
  * @throws  Exception
  */
 public function extract($archive, $destination)
 {
     $this->data = null;
     $this->options['use_streams'] = false;
     if (!isset($this->options['use_streams']) || $this->options['use_streams'] == false) {
         $this->data = file_get_contents($archive);
         if (!$this->data) {
             throw new Exception('Unable to read archive');
         }
         $position = $this->getFilePosition();
         $buffer = gzinflate(substr($this->data, $position, strlen($this->data) - $position));
         if (empty($buffer)) {
             throw new Exception('Unable to decompress data');
         }
         if (xapp_File2::write($destination, $buffer) === false) {
             throw new Exception('Unable to write archive');
         }
     } else {
         // New style! streams!
         $input = Stream::getStream();
         // Use gz
         $input->set('processingmethod', 'gz');
         if (!$input->open($archive)) {
             throw new Exception('Unable to read archive (gz)');
         }
         $output = Stream::getStream();
         if (!$output->open($destination, 'w')) {
             $input->close();
             throw new Exception('Unable to write archive (gz)');
         }
         do {
             $this->data = $input->read($input->get('chunksize', 8196));
             if ($this->data) {
                 if (!$output->write($this->data)) {
                     $input->close();
                     throw new Exception('Unable to write file (gz)');
                 }
             }
         } while ($this->data);
         $output->close();
         $input->close();
     }
     // @codeCoverageIgnoreEnd
     return true;
 }
コード例 #3
0
ファイル: Distribution.php プロジェクト: attm2x/m2x-php
 /**
  * Get details of a specific data Stream associated with the
  * distribution.
  *
  * @param string $name
  * @return Stream
  */
 public function stream($name)
 {
     return Stream::getStream($this->client, $this, $name);
 }
コード例 #4
0
ファイル: Folder.php プロジェクト: xamiro-dev/xamiro
 /**
  * Moves a folder.
  *
  * @param   string   $src          The path to the source folder.
  * @param   string   $dest         The path to the destination folder.
  * @param   string   $path         An optional base path to prefix to the file names.
  * @param   boolean  $use_streams  Optionally use streams.
  *
  * @return  mixed  Error message on false or boolean true on success.
  *
  * @since   1.0
  */
 public static function move($src, $dest, $path = '', $use_streams = false)
 {
     if ($path) {
         $src = Path::clean($path . '/' . $src);
         $dest = Path::clean($path . '/' . $dest);
     }
     if (!is_dir(Path::clean($src))) {
         return 'Cannot find source folder';
     }
     if (is_dir(Path::clean($dest))) {
         return 'Folder already exists';
     }
     if ($use_streams) {
         $stream = Stream::getStream();
         if (!$stream->move($src, $dest)) {
             return 'Rename failed: ' . $stream->getError();
         }
         return true;
     } else {
         if (!@rename($src, $dest)) {
             return 'Rename failed';
         }
         return true;
     }
 }
コード例 #5
0
ファイル: controller.php プロジェクト: simontakite/cookbooks
 private function generateStream($offset = 0)
 {
     require_once FRAMEWORK_PATH . 'models/stream.php';
     $stream = new Stream($this->registry);
     $stream->buildStream($this->registry->getObject('authenticate')->getUser()->getUserID(), $offset);
     if (!$stream->isEmpty()) {
         $this->registry->getObject('template')->buildFromTemplates('header.tpl.php', 'stream/main.tpl.php', 'footer.tpl.php');
         $streamdata = $stream->getStream();
         $IDs = $stream->getIDs();
         $cacheableIDs = array();
         foreach ($IDs as $id) {
             $i = array();
             $i['status_id'] = $id;
             $cacheableIDs[] = $i;
         }
         $cache = $this->registry->getObject('db')->cacheData($cacheableIDs);
         $this->registry->getObject('template')->getPage()->addTag('stream', array('DATA', $cache));
         foreach ($streamdata as $data) {
             $datatags = array();
             foreach ($data as $tag => $value) {
                 $datatags['status' . $tag] = $value;
             }
             // your own status updates
             if ($data['profile'] == $this->registry->getObject('authenticate')->getUser()->getUserID() && $data['poster'] == $this->registry->getObject('authenticate')->getUser()->getUserID()) {
                 // it was a present...from me to me!
                 // http://www.imdb.com/title/tt0285403/quotes?qt0473119
                 $this->registry->getObject('template')->addTemplateBit('stream-' . $data['ID'], 'stream/types/' . $data['type_reference'] . '-Spongebob-Squarepants-Costume-gift.tpl.php', $datatags);
             } elseif ($data['profile'] == $this->registry->getObject('authenticate')->getUser()->getUserID()) {
                 // updates to you
                 $this->registry->getObject('template')->addTemplateBit('stream-' . $data['ID'], 'stream/types/' . $data['type_reference'] . '-toself.tpl.php', $datatags);
             } elseif ($data['poster'] == $this->registry->getObject('authenticate')->getUser()->getUserID()) {
                 // updates by you
                 $this->registry->getObject('template')->addTemplateBit('stream-' . $data['ID'], 'stream/types/' . $data['type_reference'] . '-fromself.tpl.php', $datatags);
             } elseif ($data['poster'] == $data['profile']) {
                 $this->registry->getObject('template')->addTemplateBit('stream-' . $data['ID'], 'stream/types/' . $data['type_reference'] . '-user.tpl.php', $datatags);
             } else {
                 // network updates
                 $this->registry->getObject('template')->addTemplateBit('stream-' . $data['ID'], 'stream/types/' . $data['type_reference'] . '.tpl.php', $datatags);
             }
         }
         // stream comments, likes and dislikes
         $status_ids = implode(',', $IDs);
         $start = array();
         foreach ($IDs as $id) {
             $start[$id] = array();
         }
         // comments
         $comments = $start;
         $sql = "SELECT p.name as commenter, c.profile_post, c.comment FROM profile p, comments c WHERE p.user_id=c.creator AND c.approved=1 AND c.profile_post IN ({$status_ids})";
         $this->registry->getObject('db')->executeQuery($sql);
         if ($this->registry->getObject('db')->numRows() > 0) {
             while ($comment = $this->registry->getObject('db')->getRows()) {
                 $comments[$comment['profile_post']][] = $comment;
             }
         }
         foreach ($comments as $status => $comments) {
             $cache = $this->registry->getObject('db')->cacheData($comments);
             $this->registry->getObject('template')->getPage()->addTag('comments-' . $status, array('DATA', $cache));
         }
         // likes + dislikes
         $likes = $start;
         $dislikes = $start;
         $sql = "SELECT i.status, p.name as iker, i.iker as iker_id, i.type as type FROM profile p, ikes i WHERE p.user_id=i.iker AND i.status IN ({$status_ids}) ";
         $this->registry->getObject('db')->executeQuery($sql);
         if ($this->registry->getObject('db')->numRows() > 0) {
             while ($ike = $this->registry->getObject('db')->getRows()) {
                 if ($ike['type'] == 'likes') {
                     $likes[$ike['status']][] = $ike;
                 } else {
                     $dislikes[$ike['status']][] = $ike;
                 }
             }
         }
         foreach ($likes as $status => $likeslist) {
             $cache = $this->registry->getObject('db')->cacheData($likeslist);
             $this->registry->getObject('template')->getPage()->addTag('likes-' . $status, array('DATA', $cache));
         }
         foreach ($dislikes as $status => $dislikeslist) {
             $cache = $this->registry->getObject('db')->cacheData($dislikeslist);
             $this->registry->getObject('template')->getPage()->addTag('dislikes-' . $status, array('DATA', $cache));
         }
     } else {
         $this->registry->getObject('template')->buildFromTemplates('header.tpl.php', 'stream/none.tpl.php', 'footer.tpl.php');
     }
 }
コード例 #6
0
 private function addStatus($array, $user)
 {
     $loggedIn = $this->registry->getObject('authenticate')->isLoggedIn();
     if ($loggedIn == true) {
         require_once 'status.php';
         if (isset($_POST['status_type']) && $_POST['status_type'] != 'update') {
             if ($_POST['status_type'] == 'image') {
                 require_once 'imagestatus.php';
                 $status = new Imagestatus($this->registry, 0, $user);
                 $status->processImage('image_file');
             } elseif ($_POST['status_type'] == 'video') {
                 require_once 'videostatus.php';
                 $status = new Videostatus($this->registry, 0, $user);
                 $status->setVideoIdFromURL($_POST['video_url']);
             } elseif ($_POST['status_type'] == 'link') {
                 require_once 'linkstatus.php';
                 $status = new Linkstatus($this->registry, 0);
                 $status->setURL($this->registry->getObject('db')->sanitizeData($_POST['link_url']));
                 $status->setDescription($this->registry->getObject('db')->sanitizeData($_POST['link_description']));
             }
         } else {
             $status = new Status($this->registry, 0);
         }
         $status->setProfile($user);
         $status->setPoster($user);
         if (isset($_POST['status'])) {
             $status->setStatus($this->registry->getObject('db')->sanitizeData($_POST['status']));
         }
         $status->generateType();
         $status->save();
         $newAddID = $status->getID();
         //Status Wierdness Start
         $this->registry->getObject('template')->getPage()->addTag('referer', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');
         require_once 'stream.php';
         $stream = new Stream($this->registry);
         $status = $stream->getStatusByID($newAddID);
         $statusTypes = $stream->getStatusType();
         if (!$stream->isEmpty()) {
             $this->registry->getObject('template')->buildFromTemplate('stream_more.php');
         }
         $streamdata = $stream->getStream();
         $IDs = $stream->getIDs();
         $cacheableIDs = array();
         foreach ($IDs as $id) {
             $i = array();
             $i['status_id'] = $id;
             $cacheableIDs[] = $i;
         }
         $cache = $this->registry->getObject('db')->cacheData($cacheableIDs);
         $this->registry->getObject('template')->getPage()->addTag('stream', array('DATA', $cache));
         //var_dump($cacheableIDs);
         foreach ($streamdata as $data) {
             $datatags = array();
             foreach ($data as $tag => $value) {
                 $datatags['status' . $tag] = $value;
             }
             //var_dump($datatags);
             // your own status updates
             if ($data['profile'] == 0) {
                 // network updates
                 $this->addBit('stream-' . $data['ID'], 'updates/' . $data['type_reference'] . '-general.php', $datatags);
             } elseif ($data['profile'] == $this->registry->getObject('authenticate')->getUser()->getUserID() && $data['poster'] == $this->registry->getObject('authenticate')->getUser()->getUserID()) {
                 $this->registry->getObject('template')->addTemplateBit('stream-' . $data['ID'], 'updates/' . $data['type_reference'] . '-self.php', $datatags);
             } elseif ($data['profile'] == $this->registry->getObject('authenticate')->getUser()->getUserID()) {
                 // updates to you
                 $this->addBit('stream-' . $data['ID'], 'updates/' . $data['type_reference'] . '-toSelf.php', $datatags);
             } elseif ($data['poster'] == $this->registry->getObject('authenticate')->getUser()->getUserID()) {
                 // updates by you
                 $this->addBit('stream-' . $data['ID'], 'updates/' . $data['type_reference'] . '-fromSelf.php', $datatags);
             } elseif ($data['poster'] == $data['profile']) {
                 $this->addBit('stream-' . $data['ID'], 'updates/' . $data['type_reference'] . '-user.php', $datatags);
             } else {
                 // network updates
                 $this->addBit('stream-' . $data['ID'], 'updates/' . $data['type_reference'] . '.php', $datatags);
             }
         }
         // stream comments, likes and dislikes
         $status_ids = implode(',', $IDs);
         $start = array();
         foreach ($IDs as $id) {
             $start[$id] = array();
         }
         // comments
         $this->generateComments($start, $status_ids);
         //rates
         $this->getRates('status', $IDs);
         //$this->getRates('comments', $IDs);
         $this->registry->getObject('template')->getPage()->addTag('offset', 20);
         //$offset +
         $this->registry->getObject('template')->parseOutput();
         $this->registry->ajaxReply(array('content' => $this->registry->getObject('template')->getPage()->getContentToPrint(), 'status' => 'Status Added'));
         //$this->registry->ajaxReply(array('content' => '<script>$(document).ready(function(){window.location.reload();})</script>', 'status' => 'Status Added'));
         //Status Wierdness End
         // success message display
         //$this->registry->ajaxReply( array('status'=>'Status Added', 'content'=>'') );
         //$this->registry->getObject('template')->addTemplateBit( 'status_update_message', 'profile_status_update_confirm.php' );
     } else {
         //$this->registry->ajaxReply( array('status'=>'Access Denied', 'content'=>'') );
         $this->registry->errorPage('Access Denied', 'Login to continue');
     }
 }
コード例 #7
0
ファイル: File.php プロジェクト: xamiro-dev/xamiro
 /**
  * Moves an uploaded file to a destination folder
  *
  * @param   string   $src          The name of the php (temporary) uploaded file
  * @param   string   $dest         The path (including filename) to move the uploaded file to
  * @param   boolean  $use_streams  True to use streams
  *
  * @return  boolean  True on success
  *
  * @since   1.0
  * @throws  FilesystemException
  */
 public static function upload($src, $dest, $use_streams = false)
 {
     // Ensure that the path is valid and clean
     $dest = Path::clean($dest);
     // Create the destination directory if it does not exist
     $baseDir = dirname($dest);
     if (!file_exists($baseDir)) {
         Folder::create($baseDir);
     }
     if ($use_streams) {
         $stream = Stream::getStream();
         if (!$stream->upload($src, $dest)) {
             throw new FilesystemException(__METHOD__ . ': ' . $stream->getError());
         }
         return true;
     } else {
         if (is_writeable($baseDir) && move_uploaded_file($src, $dest)) {
             // Short circuit to prevent file permission errors
             if (Path::setPermissions($dest)) {
                 return true;
             } else {
                 throw new FilesystemException(__METHOD__ . ': Failed to change file permissions.');
             }
         } else {
             throw new FilesystemException(__METHOD__ . ': Failed to move file.');
         }
         return false;
     }
 }