/** * Override the validate method of the form container to validate * linked elements * * @access public * @author Somsack Sipasseuth, <*****@*****.**> * @return boolean */ public function validate() { $returnValue = (bool) false; if ($this->form->isSubmited()) { if ($this->versionedFile->isVersioned()) { return true; } $fileNameElt = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_FILE_FILENAME)); $fileName = !is_null($fileNameElt) ? $fileNameElt->getValue() : ''; $filePathElt = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_FILE_FILEPATH)); $filePath = $filePathElt->getValue(); $fileRepositoryElt = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_FILE_FILESYSTEM)); $fileRepository = tao_helpers_Uri::decode($fileRepositoryElt->getValue()); //check if a resource with the same path exists yet in the repository $clazz = new core_kernel_classes_Class(CLASS_GENERIS_FILE); $options = array('like' => false, 'recursive' => true); $propertyFilter = array(PROPERTY_FILE_FILENAME => $fileName, PROPERTY_FILE_FILEPATH => $filePath, PROPERTY_FILE_FILESYSTEM => $fileRepository); $sameNameFiles = $clazz->searchInstances($propertyFilter, $options); if (!empty($sameNameFiles)) { $sameFileResource = array_pop($sameNameFiles); $sameFile = new core_kernel_versioning_File($sameFileResource->getUri()); $this->form->valid = false; $this->form->error = __('A similar resource has already been versioned') . ' (' . $sameFile->getAbsolutePath() . ')'; } } return (bool) $returnValue; }