예제 #1
0
 private function _validatePlugin($pluginName)
 {
     $pluginFolder = realpath($this->_uploadHandler->getDestination() . '/' . $pluginName);
     if ($pluginFolder === false) {
         return 'Plugin directory don\'t match the archive name.';
     }
     if (!is_dir($pluginFolder)) {
         return 'Can not create folder for unpack zip file. 0peration not permitted.';
     }
     $listFiles = Tools_Filesystem_Tools::scanDirectory($pluginFolder);
     if (empty($listFiles)) {
         return 'Your plugin directory is empty.';
     }
     if (!preg_match("/^[a-zA-Z-0-9]{1,255}\$/", $pluginName)) {
         return 'Theme name is invalid. Only letters, digits and dashes allowed.';
     }
     if (!in_array(ucfirst($pluginName) . '.php', $listFiles)) {
         return 'Plugin main file doesn\'t exist or has a wrong name';
     }
     if (!in_array('readme.txt', $listFiles)) {
         return 'File "readme.txt" doesn\'t exist.';
     }
     return true;
 }