| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Drupal module stream wrapper class (module://{module}/{resource}).
 
-  *
 
-  * Provides support for accessing files in module directories.
 
-  */
 
- class ImageCacheActionsModuleStreamWrapper extends DrupalLocalStreamWrapper {
 
-   /**
 
-    * Parses an uri into its separate components.
 
-    *
 
-    * Example:
 
-    * module://my_module/images/mask.png will return
 
-    * array('module', 'my_module', 'images/mask.png').
 
-    *
 
-    * @return array
 
-    *   An array of strings containing the separate parts of the uri:
 
-    *   - scheme (module)
 
-    *   - module name
 
-    *   - resource name
 
-    */
 
-   protected function parseUri() {
 
-     $scheme = '';
 
-     $module = '';
 
-     $component = '';
 
-     if (!empty($this->uri)) {
 
-       list($scheme, $target) = explode('://', $this->uri, 2);
 
-       if (!empty($target)) {
 
-         $target = trim($target, '\/');
 
-         list($module, $resource) = explode('/', $target, 2);
 
-       }
 
-     }
 
-     return array($scheme, $module, $resource);
 
-   }
 
-   /**
 
-    * Implements abstract public function getDirectoryPath()
 
-    */
 
-   public function getDirectoryPath() {
 
-     list($scheme, $module, $component) = $this->parseUri();
 
-     return drupal_get_path('module', $module);
 
-   }
 
-   /**
 
-    * Returns the local writable target of the resource within the stream.
 
-    *
 
-    * @see DrupalLocalStreamWrapper::getTarget()
 
-    */
 
-   protected function getTarget($uri = NULL) {
 
-     if (!empty($uri)) {
 
-       $this->setUri($uri);
 
-     }
 
-     list($scheme, $module, $component) = $this->parseUri();
 
-     return $component;
 
-   }
 
-   /**
 
-    * Returns the canonical absolute path of the URI, if possible.
 
-    *
 
-    * @see DrupalLocalStreamWrapper::getLocalPath()
 
-    */
 
-   protected function getLocalPath($uri = NULL) {
 
-     if (!empty($uri)) {
 
-       $this->setUri($uri);
 
-     }
 
-     return parent::getLocalPath();
 
-   }
 
-   /**
 
-    * Returns the local writable target of the resource within the stream.
 
-    *
 
-    * Overrides getExternalUrl().
 
-    *
 
-    * Return the HTML URI of a public file.
 
-    */
 
-   function getExternalUrl() {
 
-     $path = str_replace('\\', '/', $this->getTarget());
 
-     return $GLOBALS['base_url'] . '/' . $this->getDirectoryPath() . '/' . drupal_encode_path($path);
 
-   }
 
-   /*
 
-    * Unsupported methods, modes and operations because we are read-only.
 
-    */
 
-   function chmod($mode) {
 
-     return $this->unsupportedError('chmod', STREAM_REPORT_ERRORS);
 
-   }
 
-   public function stream_open($uri, $mode, $options, &$opened_path) {
 
-     if (!in_array($mode, array('r'))) {
 
-       return $this->unsupportedError("stream_open(mode = '$mode')", $options);
 
-     }
 
-     return parent::stream_open($uri, $mode, $options, $opened_path);
 
-   }
 
-   public function stream_lock($operation) {
 
-     if (in_array($operation, array(LOCK_EX))) {
 
-       return $this->unsupportedError('stream_lock(LOCK_EX)', $options);
 
-     }
 
-     return parent::stream_lock($operation);
 
-   }
 
-   public function stream_write($data) {
 
-     return $this->unsupportedError('stream_write', STREAM_REPORT_ERRORS);
 
-   }
 
-   public function stream_flush() {
 
-     return $this->unsupportedError('stream_flush', STREAM_REPORT_ERRORS);
 
-   }
 
-   public function unlink($uri) {
 
-     return $this->unsupportedError('unlink', STREAM_REPORT_ERRORS);
 
-   }
 
-   public function rename($from_uri, $to_uri) {
 
-     return $this->unsupportedError('rename', STREAM_REPORT_ERRORS);
 
-   }
 
-   public function mkdir($uri, $mode, $options) {
 
-     return $this->unsupportedError('mkdir', $options);
 
-   }
 
-   public function rmdir($uri, $options) {
 
-     return $this->unsupportedError('rmdir', $options);
 
-   }
 
-   public function unsupportedError($method, $options) {
 
-     if ($options & STREAM_REPORT_ERRORS) {
 
-       drupal_set_message("ImageCacheActionsModuleStreamWrapper is read-only and does not support $method", 'error');
 
-       watchdog(WATCHDOG_ERROR, "ImageCacheActionsModuleStreamWrapper is read-only and does not support $method");
 
-     }
 
-     return FALSE;
 
-   }
 
- }
 
 
  |