public function testFileSync() { echo "test mediamanager...\n"; if (class_module_system_module::getModuleByName("samplecontent") == null || !is_file(_realpath_ . "/files/images/samples/IMG_3000.JPG")) { return; } $objFilesystem = new class_filesystem(); $objFilesystem->folderCreate(_filespath_ . "/images/autotest"); $objFilesystem->fileCopy(_filespath_ . "/images/samples/IMG_3000.JPG", _filespath_ . "/images/autotest/IMG_3000.jpg"); $objFilesystem->fileCopy(_filespath_ . "/images/samples/IMG_3000.JPG", _filespath_ . "/images/autotest/IMG_3000.png"); $objFilesystem->fileCopy(_filespath_ . "/images/samples/IMG_3000.JPG", _filespath_ . "/images/autotest/PA021805.JPG"); $objFilesystem->fileCopy(_filespath_ . "/images/samples/IMG_3000.JPG", _filespath_ . "/images/autotest/test.txt"); $objRepo = new class_module_mediamanager_repo(); $objRepo->setStrPath(_filespath_ . "/images/autotest"); $objRepo->setStrTitle("autotest repo"); $objRepo->setStrViewFilter(".jpg,.png"); $objRepo->updateObjectToDb(); $objRepo->syncRepo(); $arrFiles = class_module_mediamanager_file::loadFilesDB($objRepo->getSystemid()); $this->assertEquals(3, count($arrFiles)); foreach ($arrFiles as $objOneFile) { $objOneFile->deleteObjectFromDatabase(); } $objRepo->deleteObjectFromDatabase(); $arrFiles = $objFilesystem->getFilelist(_filespath_ . "/images/autotest"); $this->assertEquals(1, count($arrFiles)); $this->assertEquals("test.txt", array_values($arrFiles)[0]); }
/** * Does the hard work: installs the module and registers needed constants * * @return string */ public function install() { $strReturn = ""; $strReturn .= "Creating picture upload folder\n"; if (!is_dir(_realpath_ . _filespath_ . "/images/upload")) { mkdir(_realpath_ . _filespath_ . "/images/upload", 0777, true); } $strReturn .= "Creating new picture repository\n"; $objRepo = new class_module_mediamanager_repo(); if ($this->strContentLanguage == "de") { $objRepo->setStrTitle("Hochgeladene Bilder"); } else { $objRepo->setStrTitle("Picture uploads"); } $objRepo->setStrPath(_filespath_ . "/images/upload"); $objRepo->setStrUploadFilter(".jpg,.png,.gif,.jpeg"); $objRepo->setStrViewFilter(".jpg,.png,.gif,.jpeg"); $objRepo->updateObjectToDb(); $objRepo->syncRepo(); $strReturn .= "ID of new repo: " . $objRepo->getSystemid() . "\n"; $strReturn .= "Setting the repository as the default images repository\n"; $objSetting = class_module_system_setting::getConfigByName("_mediamanager_default_imagesrepoid_"); $objSetting->setStrValue($objRepo->getSystemid()); $objSetting->updateObjectToDb(); $strReturn .= "Creating file upload folder\n"; if (!is_dir(_realpath_ . _filespath_ . "/public")) { mkdir(_realpath_ . _filespath_ . "/public", 0777, true); } $strReturn .= "Creating new file repository\n"; $objRepo = new class_module_mediamanager_repo(); if ($this->strContentLanguage == "de") { $objRepo->setStrTitle("Hochgeladene Dateien"); } else { $objRepo->setStrTitle("File uploads"); } $objRepo->setStrPath(_filespath_ . "/downloads"); $objRepo->setStrUploadFilter(".zip,.pdf,.txt"); $objRepo->setStrViewFilter(".zip,.pdf,.txt"); $objRepo->updateObjectToDb(); $objRepo->syncRepo(); $strReturn .= "ID of new repo: " . $objRepo->getSystemid() . "\n"; $strReturn .= "Setting the repository as the default files repository\n"; $objSetting = class_module_system_setting::getConfigByName("_mediamanager_default_filesrepoid_"); $objSetting->setStrValue($objRepo->getSystemid()); $objSetting->updateObjectToDb(); return $strReturn; }
/** * Does the hard work: installs the module and registers needed constants * * @return string */ public function install() { $strReturn = ""; if (class_module_system_module::getModuleByName("mediamanager") == null) { return "Mediamanger not installed, skipping element\n"; } //fetch navifolder-id $strNaviFolderId = ""; $arrFolder = class_module_pages_folder::getFolderList(); foreach ($arrFolder as $objOneFolder) { if ($objOneFolder->getStrName() == "mainnavigation") { $strNaviFolderId = $objOneFolder->getSystemid(); } } $strReturn .= "Creating new downloads...\n"; $objDownloads = new class_module_mediamanager_repo(); $objDownloads->setStrTitle("Sample downloads"); $objDownloads->setStrPath("/files/downloads"); $objDownloads->updateObjectToDb(); $strDownloadsID = $objDownloads->getSystemid(); $objDownloads->syncRepo(); $strReturn .= "Adding download-permissions for guests...\n"; class_carrier::getInstance()->getObjRights()->addGroupToRight(class_module_system_setting::getConfigValue("_guests_group_id_"), $objDownloads->getSystemid(), "right2"); $strReturn .= "Adding rating-permissions for guests...\n"; class_carrier::getInstance()->getObjRights()->addGroupToRight(class_module_system_setting::getConfigValue("_guests_group_id_"), $objDownloads->getSystemid(), "right3"); $strReturn .= "Creating new downloads page...\n"; $objPage = new class_module_pages_page(); $objPage->setStrName("downloads"); $objPage->setStrBrowsername("Downloads"); $objPage->setStrTemplate("standard.tpl"); $objPage->updateObjectToDb($strNaviFolderId); $strDownloadsPageId = $objPage->getSystemid(); $strReturn .= "ID of new page: " . $strDownloadsPageId . "\n"; $strReturn .= "Adding pagelement to new page\n"; $objPagelement = new class_module_pages_pageelement(); if (class_module_pages_element::getElement("downloads") != null) { $objPagelement->setStrPlaceholder("special_news|guestbook|downloads|gallery|galleryRandom|form|tellafriend|maps|search|navigation|faqs|postacomment|votings|userlist|rssfeed|tagto|portallogin|portalregistration|portalupload|directorybrowser|lastmodified|tagcloud|downloadstoplist|flash|mediaplayer|tags|eventmanager"); $objPagelement->setStrName("special"); $objPagelement->setStrElement("downloads"); $objPagelement->updateObjectToDb($strDownloadsPageId); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_downloads\n SET download_id = ?,\n download_template = ?\n WHERE content_id = ? "; if ($this->objDB->_pQuery($strQuery, array($strDownloadsID, "downloads.tpl", $strElementId))) { $strReturn .= "downloads element created.\n"; } else { $strReturn .= "Error creating downloads element.\n"; } } $strReturn .= "Adding headline-element to new page\n"; if (class_module_pages_element::getElement("row") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("headline_row"); $objPagelement->setStrName("headline"); $objPagelement->setStrElement("row"); $objPagelement->updateObjectToDb($strDownloadsPageId); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n SET paragraph_title = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, array("Downloads", $strElementId))) { $strReturn .= "Headline element created.\n"; } else { $strReturn .= "Error creating headline element.\n"; } } return $strReturn; }
/** * Does the hard work: installs the module and registers needed constants * * @return string */ public function install() { if (class_module_system_module::getModuleByName("mediamanager") == null) { return "Mediamanger not installed, skipping element\n"; } $strReturn = ""; //fetch navifolder-id $strNaviFolderId = ""; $arrFolder = class_module_pages_folder::getFolderList(); foreach ($arrFolder as $objOneFolder) { if ($objOneFolder->getStrName() == "mainnavigation") { $strNaviFolderId = $objOneFolder->getSystemid(); } } $strReturn .= "Creating new gallery...\n"; $objGallery = new class_module_mediamanager_repo(); $objGallery->setStrTitle("Sample Gallery"); $objGallery->setStrPath(_filespath_ . "/images/samples"); $objGallery->setStrUploadFilter(".jpg,.png,.gif,.jpeg"); $objGallery->setStrViewFilter(".jpg,.png,.gif,.jpeg"); $objGallery->updateObjectToDb(); $objGallery->syncRepo(); $strGalleryID = $objGallery->getSystemid(); $strReturn .= "Modify rights to allow guests to rate images...\n"; class_carrier::getInstance()->getObjRights()->addGroupToRight(class_module_system_setting::getConfigValue("_guests_group_id_"), $objGallery->getSystemid(), "right3"); $strReturn .= "Creating new gallery page...\n"; $objPage = new class_module_pages_page(); $objPage->setStrName("gallery"); $objPage->setStrBrowsername("Gallery"); $objPage->setStrTemplate("standard.tpl"); $objPage->updateObjectToDb($strNaviFolderId); $strGalleryPageId = $objPage->getSystemid(); $strReturn .= "ID of new page: " . $strGalleryPageId . "\n"; $strReturn .= "Adding pagelement to new page\n"; if (class_module_pages_element::getElement("gallery") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("special_news|guestbook|downloads|gallery|galleryRandom|form|tellafriend|maps|search|navigation|faqs|postacomment|votings|userlist|rssfeed|tagto|portallogin|portalregistration|portalupload|directorybrowser|lastmodified|tagcloud|downloadstoplist|flash|mediaplayer|tags|eventmanager"); $objPagelement->setStrName("special"); $objPagelement->setStrElement("gallery"); $objPagelement->updateObjectToDb($strGalleryPageId); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_gallery\n SET gallery_id = ?,\n gallery_mode = ?,\n gallery_template = ?,\n gallery_maxh_d = ?,\n gallery_maxw_d = ?,\n gallery_imagesperpage = ?,\n gallery_text = ?,\n gallery_text_x = ?,\n gallery_text_y = ?\n WHERE content_id = ? "; if ($this->objDB->_pQuery($strQuery, array($strGalleryID, 0, "gallery_imagelightbox.tpl", 600, 600, 0, "(c) kajona.de", 5, 15, $strElementId))) { $strReturn .= "Gallery element created.\n"; } else { $strReturn .= "Error creating Gallery element.\n"; } } $strReturn .= "Adding headline-element to new page\n"; if (class_module_pages_element::getElement("row") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("headline_row"); $objPagelement->setStrName("headline"); $objPagelement->setStrElement("row"); $objPagelement->updateObjectToDb($strGalleryPageId); $strElementId = $objPagelement->getSystemid(); $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n SET paragraph_title = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, array("Gallery", $strElementId))) { $strReturn .= "Headline element created.\n"; } else { $strReturn .= "Error creating headline element.\n"; } } $strReturn .= "Adding paragraph-element to new page\n"; if (class_module_pages_element::getElement("paragraph") != null) { $objPagelement = new class_module_pages_pageelement(); $objPagelement->setStrPlaceholder("text_paragraph"); $objPagelement->setStrName("text"); $objPagelement->setStrElement("paragraph"); $objPagelement->updateObjectToDb($strGalleryPageId); $strElementId = $objPagelement->getSystemid(); $arrParams = array(); if ($this->strContentLanguage == "de") { $arrParams[] = ""; $arrParams[] = "Alle Beispielbilder © by kajona.de"; $arrParams[] = $strElementId; } else { $arrParams[] = ""; $arrParams[] = "All sample images © by kajona.de"; $arrParams[] = $strElementId; } $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n SET paragraph_title = ?,\n paragraph_content = ?\n WHERE content_id = ?"; if ($this->objDB->_pQuery($strQuery, $arrParams)) { $strReturn .= "Paragraph element created.\n"; } else { $strReturn .= "Error creating paragraph element.\n"; } } return $strReturn; }
/** * Will be kept for legacy compatibility * * @param bool $bitJsonResponse * * @return string */ private function doUpload($bitJsonResponse = false) { $strReturn = ""; //prepare the folder to be used as a target-folder for the upload $objFilemanagerRepo = new class_module_mediamanager_repo($this->arrElementData["char2"]); $objDownloadfolder = null; //add a special subfolder? $strPath = $objFilemanagerRepo->getStrPath(); if ($this->getParam("portaluploadDlfolder") != "") { /** @var $objDownloadfolder class_module_mediamanager_file */ $objDownloadfolder = class_objectfactory::getInstance()->getObject($this->getParam("portaluploadDlfolder")); //check if the folder is within the current repo /** @var $objTemp class_module_mediamanager_file */ $objTemp = $objDownloadfolder; while (validateSystemid($objTemp->getSystemid()) && ($objTemp instanceof class_module_mediamanager_file || $objTemp instanceof class_module_mediamanager_repo)) { if ($objTemp->getSystemid() == $this->arrElementData["char2"]) { $strPath = $objDownloadfolder->getStrFilename(); break; } $objTemp = class_objectfactory::getInstance()->getObject($objTemp->getPrevId()); } } //upload the file... if ($objFilemanagerRepo->rightRight1()) { //Handle the fileupload $arrSource = $this->getParam("portaluploadFile"); $strTarget = $strPath . "/" . createFilename($arrSource["name"]); $objFilesystem = new class_filesystem(); if ($objFilesystem->isWritable($strPath)) { //Check file for correct filters $arrAllowed = explode(",", $objFilemanagerRepo->getStrUploadFilter()); $strSuffix = uniStrtolower(uniSubstr($arrSource["name"], uniStrrpos($arrSource["name"], "."))); if ($objFilemanagerRepo->getStrUploadFilter() == "" || in_array($strSuffix, $arrAllowed)) { if ($objFilesystem->copyUpload($strTarget, $arrSource["tmp_name"])) { //upload was successfull. try to sync the downloads-archive. if ($objDownloadfolder != null && $objDownloadfolder instanceof class_module_mediamanager_file) { class_module_mediamanager_file::syncRecursive($objDownloadfolder->getSystemid(), $objDownloadfolder->getStrFilename()); } else { $objFilemanagerRepo->syncRepo(); } $this->flushCompletePagesCache(); if ($bitJsonResponse) { return true; } //reload the site to display the new file if (validateSystemid($this->getParam("portaluploadDlfolder"))) { $this->portalReload(class_link::getLinkPortalHref($this->getPagename(), "", "mediaFolder", "uploadSuccess=1", $this->getParam("portaluploadDlfolder"))); } else { $this->portalReload(class_link::getLinkPortalHref($this->getPagename(), "", "", $this->getAction(), "uploadSuccess=1", $this->getSystemid())); } } else { $strReturn .= $this->uploadForm($this->getLang("portaluploadCopyUploadError")); } } else { @unlink($arrSource["tmp_name"]); $strReturn .= $this->uploadForm($this->getLang("portaluploadFilterError")); } } else { $strReturn .= $this->uploadForm($this->getLang("portaluploadNotWritableError")); } } else { $strReturn .= $this->getLang("commons_error_permissions"); } return $strReturn; }
private function updateFilemanager() { echo "Updating filemanager to new mediamanager structure...\n"; echo "Checking installation state of mediamanager...\n"; if (!in_array(_dbprefix_ . "filemanager", $this->objDB->getTables())) { echo "Filemanager table missing, no update required.\n"; return true; } $strOldDefaultImagesRepo = $this->getValueOfSetting("_filemanager_default_imagesrepoid_"); $strOldDefaultFilesRepo = $this->getValueOfSetting("_filemanager_default_filesrepoid_"); echo "Migrating old filemanager repos to new mediamanager repos...\n"; $strQuery = "SELECT * FROM " . _dbprefix_ . "filemanager"; $arrRows = $this->objDB->getPArray($strQuery, array()); foreach ($arrRows as $arrOneRow) { if (!validateSystemid($arrOneRow["filemanager_foreign_id"])) { echo "migrating old repo " . $arrOneRow["filemanager_name"] . "\n"; echo " old path: " . $arrOneRow["filemanager_path"] . "\n"; //convert the path $strPath = $this->convertOldPath($arrOneRow["filemanager_path"]); echo " new path: " . $strPath . "\n"; $objRepo = new class_module_mediamanager_repo(); $objRepo->setStrPath($strPath); $objRepo->setStrTitle($arrOneRow["filemanager_name"]); $objRepo->setStrViewFilter($arrOneRow["filemanager_view_filter"]); $objRepo->setStrUploadFilter($arrOneRow["filemanager_upload_filter"]); $objRepo->updateObjectToDb(); $objRepo->syncRepo(); if ($arrOneRow["filemanager_id"] == $strOldDefaultFilesRepo) { $objSetting = class_module_system_setting::getConfigByName("_mediamanager_default_filesrepoid_"); $objSetting->setStrValue($objRepo->getSystemid()); $objSetting->updateObjectToDb(); echo " setting as default files repo\n"; } if ($arrOneRow["filemanager_id"] == $strOldDefaultImagesRepo) { $objSetting = class_module_system_setting::getConfigByName("_mediamanager_default_imagesrepoid_"); $objSetting->setStrValue($objRepo->getSystemid()); $objSetting->updateObjectToDb(); echo " setting as default images repo\n"; } } echo " deleting repo from tables\n"; $strQuery = "DELETE FROM " . _dbprefix_ . "filemanager WHERE filemanager_id = ?"; $this->objDB->_pQuery($strQuery, array($arrOneRow["filemanager_id"])); $this->deleteSystemRecord($arrOneRow["filemanager_id"]); } echo "Deleting filemanager module...\n"; $this->removeModule("filemanager"); $this->objDB->_pQuery("DROP TABLE " . _dbprefix_ . "filemanager", array()); $this->removeSetting("_filemanager_default_imagesrepoid_"); $this->removeSetting("_filemanager_default_filesrepoid_"); $this->removeSetting("_filemanager_foldersize_"); $this->removeSetting("_filemanager_show_foreign_"); return true; }