/** * 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."); } }
/** * 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]); } }
public function setClient(Zend_Http_Client $client = null) { if ($client === null) { $client = new Omeka_Http_Client(); $config = array(); $timeout = get_option('oaipmhharvester_http_client_timeout'); if (isset($timeout) && is_numeric($timeout) && $timeout > 0) { $config['timeout'] = $timeout; } $client->setConfig($config); } $this->_client = $client; }