public function edytujAction() { $this->_helper->layout()->disableLayout(); if ($this->getRequest()->isPost()) { $pole = $this->getRequest()->getParam('pole'); $wartosc = $this->getRequest()->getParam('value'); $id_zdjec_string = $this->getRequest()->getParam('id'); $id_zdjec = array_filter(explode(' ', $id_zdjec_string)); foreach ($id_zdjec as $id_zdjecia) { //pobranie aktualnych metadanych z bazy $photoMapper = Model_PhotoMapper::getInstance(); $metadane = $photoMapper->Metadane($id_zdjecia); $id_katalogu = $metadane->getCatalogsId(); //pobranie ścieżki do zdjęcia $catalogMapper = Model_CatalogMapper::getInstance(); $katalog = $catalogMapper->katalog($id_katalogu); $file = $katalog->getPath() . '/' . $metadane->getFilename(); //edycja metadanych w zdjęciu $iptc = new Model_Iptc(); $iptc->iptc($file); //ustawienie nowych wartości i zapis metadanych do zdjęcia switch ($pole) { case 'filename': $metadane->setFilename($wartosc); $file_new = $katalog->getPath() . '/' . $wartosc; rename($file, $file_new); break; case 'headline': $metadane->setHeadline($wartosc); $iptc->set(IPTC_HEADLINE, $wartosc); $iptc->write(); break; case 'caption': $metadane->setCaption($wartosc); $iptc->set(IPTC_CAPTION, $wartosc); $iptc->write(); break; case 'writer': $metadane->setWriter($wartosc); $iptc->set(IPTC_WRITER, $wartosc); $iptc->write(); break; case 'copyrigthNotice': $metadane->setCopyrightNotice($wartosc); $iptc->set(IPTC_COPYRIGHT_NOTICE, $wartosc); $iptc->write(); break; case 'contact': $metadane->setContact($wartosc); $iptc->set(IPTC_CONTACT, $wartosc); $iptc->write(); break; case 'objectName': $metadane->setObjectName($wartosc); $iptc->set(IPTC_OBJECT_NAME, $wartosc); $iptc->write(); break; case 'byLineTitle': $metadane->setByLineTitle($wartosc); $iptc->set(IPTC_BYLINE_TITLE, $wartosc); $iptc->write(); break; case 'city': $metadane->setCity($wartosc); $iptc->set(IPTC_CITY, $wartosc); $iptc->write(); break; case 'subLocation': $metadane->setSubLocation($wartosc); $iptc->set(IPTC_SUB_LOCATION, $wartosc); $iptc->write(); break; case 'province': $metadane->setProvince($wartosc); $iptc->set(IPTC_PROVINCE_STATE, $wartosc); $iptc->write(); break; case 'countryCode': $metadane->setCountryCode($wartosc); $iptc->set(IPTC_COUNTRY_CODE, $wartosc); $iptc->write(); break; case 'country': $metadane->setCountry($wartosc); $iptc->set(IPTC_COUNTRY, $wartosc); $iptc->write(); break; case 'keywords': $dopisz = strcmp('*', $wartosc[0]); if ($dopisz == 0) { $slowa_kluczowe = substr($wartosc, 1); $poprzednio = $metadane->getKeywords(); $metadane->setKeywords($poprzednio . ' ' . $slowa_kluczowe); $iptc->set(IPTC_KEYWORDS, $poprzednio . ' ' . $slowa_kluczowe); } else { $metadane->setKeywords($wartosc); $iptc->set(IPTC_KEYWORDS, $wartosc); } $iptc->write(); break; default: break; } //zapis do bazy $photoMapper->save($metadane); } $this->view->wartosc = $wartosc; } }
public function pobierzAction() { $id = $this->getRequest()->getParam('zdjecie'); $photoMapper = Model_PhotoMapper::getInstance(); $zdjecie = $photoMapper->Metadane($id)->getFilename(); $id_katalogu = $photoMapper->Metadane($id)->getCatalogsId(); $catalogMapper = Model_CatalogMapper::getInstance(); $katalog = $catalogMapper->katalog($id_katalogu)->getPath(); $sciezka = $katalog . '/' . $zdjecie; header('Content-Type: image/jpeg'); header("Content-Disposition: attachment; filename=" . $zdjecie); readfile($sciezka); $this->view->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); }