Exemplo n.º 1
0
 /**
  * Generate a QR code for the given data.
  *
  * @return Zend_Pdf_Image
  */
 public function generate($data)
 {
     $temp = tempnam($this->_tempDir, self::TEMP_FILE_PREFIX);
     // Zend_Pdf_Image dies if lacking the correct file extension.
     $tempPng = $temp . ".png";
     rename($temp, $tempPng);
     $temp = $tempPng;
     $url = $this->_qrCodeUri($data);
     $client = new Omeka_Http_Client($url);
     $client->setMaxRetries(10);
     $response = $client->request('GET');
     if ($response->isSuccessful()) {
         file_put_contents($temp, $response->getBody());
         $image = Zend_Pdf_Image::imageWithPath($temp);
         unlink($temp);
         return $image;
     } else {
         throw new Zend_Http_Client_Exception("Could not retrieve QR chart from Google.");
     }
 }
Exemplo n.º 2
0
 /**
  * Set options for the storage adapter.
  *
  * @param array $options
  */
 public function __construct(array $options = array())
 {
     $this->_options = $options;
     if (array_key_exists(self::AWS_KEY_OPTION, $options) && array_key_exists(self::AWS_SECRET_KEY_OPTION, $options)) {
         $awsKey = $options[self::AWS_KEY_OPTION];
         $awsSecretKey = $options[self::AWS_SECRET_KEY_OPTION];
     } else {
         throw new Omeka_Storage_Exception('You must specify your AWS access key and secret key to use the ZendS3 storage adapter.');
     }
     if (!array_key_exists(self::BUCKET_OPTION, $options)) {
         throw new Omeka_Storage_Exception('You must specify an S3 bucket name to use the ZendS3 storage adapter.');
     }
     // Use Omeka_Http_Client to retry up to 3 times on timeouts
     $client = new Omeka_Http_Client();
     $client->setMaxRetries(3);
     Zend_Service_Amazon_S3::setHttpClient($client);
     $this->_s3 = new Zend_Service_Amazon_S3($awsKey, $awsSecretKey);
     if (!empty($options[self::ENDPOINT_OPTION])) {
         $this->_s3->setEndpoint($options[self::ENDPOINT_OPTION]);
     }
 }