/** * @param \Yandex\Fotki\Api\Photo $photo * * @return bool */ public function filter(Photo $photo) { return $photo->getTitle() == $this->filterTitle; }
/** * Добавление фотографии. * * <h1>Примеры</h1> * * <h2>Простой пример загрузки фотографии</h2> * <code> * <?php * $photo = $api->createPhoto( array( * 'image' => $_SERVER['DOCUMENT_ROOT'] . '/assets/images/forest.jpg', * 'title' => 'Красивая фотография леса' * ) ); * ?> * </code> * * <h2>Загрузка фотографии в определенный альбом</h2> * <code> * <?php * $photo = $api->createPhoto( array( * 'image' => $_SERVER['DOCUMENT_ROOT'] . '/assets/images/forest.jpg', * 'title' => 'Красивая фотография леса' * ), 123456 ); * ?> * </code> * * <h2>Загрузка фотографии в с геопривязкой</h2> * <code> * <?php * $photo = $api->createPhoto( array( * 'image' => $_SERVER['DOCUMENT_ROOT'] . '/assets/images/forest.jpg', * 'title' => 'Красивая фотография леса', * 'geo' => array(55.75396, 37.620393), * //'geo' => '55.75396 37.620393', // Можно задать и строкой * ) ); * ?> * </code> * * <h2>Загрузка фотографии в с тегами</h2> * <code> * <?php * $photo = $api->createPhoto( array( * 'image' => $_SERVER['DOCUMENT_ROOT'] . '/assets/images/forest.jpg', * 'title' => 'Красивая фотография леса', * 'tags' => array('Лес', 'Природа', 'Лето'), * //'tags' => 'Лес, Природа, Лето' // Можно задать и строкой * ) ); * ?> * </code> * * <h2>Собираем все вместе</h2> * <code> * <?php * $photo = $api->createPhoto( array( * 'image' => $_SERVER['DOCUMENT_ROOT'] . '/assets/images/forest.jpg', * 'title' => 'Красивая фотография леса', * 'geo' => array(55.75396, 37.620393), * 'tags' => array('Лес', 'Природа', 'Лето'), * 'isAdult' => false, // Материал для взрослых * 'isDisableComments' => true, // Указание на отключение комментариев * 'isHideOriginal' => true, // Указание на то, что нужно скрыть оригинал * 'access' => 'private', // Может быть 'public', 'friends', 'private' * ) ); * ?> * </code> * * @param array $data Данные фотографии * <ul> * <li> ['image'] <i><u>string</u></i> Путь до изображения <b>(Обязательный)</b></li> * <li> ['title'] <i><u>string</u></i> Название изображения <b>(Обязательный)</b></li> * <li> ['geo'] <i><u>string|string[]</u></i> Координаты</li> * <li> ['tags'] <i><u>string|string[]</u></i> Теги</li> * <li> ['isAdult'] <i><u>bool</u></i> Метриал для взрослых</li> * <li> ['isDisableComments'] <i><u>bool</u></i> Отключить комментарии</li> * <li> ['isHideOriginal'] <i><u>bool</u></i> Скрывать оригинал изображения</li> * <li> ['access'] <i><u>'public'|'friends'|'private'</u></i> Уровень доступа</li> * </ul> * * @param int|null $albumId Id родительского альбома. Если null, то фото будет загружено в корень * * @return \Yandex\Fotki\Api\Photo Добавленная фотография * @throws \Yandex\Fotki\Exception\Api\Photo Если произошла ошибка во время загрузки фотографии */ public function createPhoto($data, $albumId = null) { $url = $albumId ? sprintf("http://api-fotki.yandex.ru/api/users/%s/album/%s/photos/?format=json", $this->_login, intval($albumId)) : sprintf("http://api-fotki.yandex.ru/api/users/%s/photos/?format=json", $this->_login); $oAuthToken = $this->_transport->getOAuthToken(); $fimpToken = $this->_transport->getFimpToken(); $headers = array('Accept' => "application/json", 'Authorization' => $oAuthToken ? "OAuth {$oAuthToken}" : "FimpToken realm=\"fotki.yandex.ru\", token=\"{$fimpToken}\""); $response = Request::post($url, $headers, array('image' => File::add($data['image']))); if ($response->code === 201) { $responseBody = json_decode(json_encode($response->body), true); $photo = new Photo($this->_transport, $responseBody['links']['self']); $photo->initWithData($responseBody); //@formatter:off $photo->setTitle(isset($data['title']) ? $data['title'] : $photo->getTitle()); $photo->setSummary(isset($data['summary']) ? $data['summary'] : $photo->getSummary()); $photo->setIsAdult(isset($data['isAdult']) ? $data['isAdult'] : $photo->isAdult()); $photo->setIsHideOriginal(isset($data['isHideOriginal']) ? $data['isHideOriginal'] : $photo->isHideOriginal()); $photo->setIsDisableComments(isset($data['isDisableComments']) ? $data['isDisableComments'] : $photo->isDisableComments()); $photo->setAccess(isset($data['access']) ? $data['access'] : $photo->getAccess()); $photo->setGeo(isset($data['geo']) ? $data['geo'] : $photo->getGeo()); $photo->setTags(isset($data['tags']) ? $data['tags'] : $photo->getTags()); //@formatter:on return $this->updatePhoto($photo); } else { throw new \Yandex\Fotki\Exception\Api\Photo($response->body, $response->code); } }