/** * Generate Classmap array for mapping controller class to filename */ public function classmapAction() { $success = $error = $warning = array(); $sourceBasedir = $this->registry->smarty->template_dir . DIRECTORY_SEPARATOR . $this->registry->smartyController . 'generate_format' . DIRECTORY_SEPARATOR; //Duyet thu muc controller de lay danh sach filename $controllerDir = 'Controller'; $classmapFiledata = ''; if (is_readable($controllerDir)) { $fileListing = \Litpi\Helper::directoryToArray($controllerDir, true); $classmapFiledata = file_get_contents($sourceBasedir . 'include_classmap.tpl'); $classmapArray = array(); foreach ($fileListing as $file) { $fileExt = \Litpi\Helper::fileExtension($file); if ($fileExt == 'php') { $fileparts = explode(DIRECTORY_SEPARATOR, $file); $namespacePart = ''; $classpathPart = ''; for ($i = 1; $i < count($fileparts); $i++) { if ($i != count($fileparts) - 1) { // exlude final element (filename) $namespacePart .= strtolower($fileparts[$i]) . '\\'; $classpathPart .= "'" . $fileparts[$i] . "' . " . '$s' . " . "; } else { // this is filename $namespacePart .= str_replace('.php', '', strtolower($fileparts[$i])); $classpathPart .= "'" . $fileparts[$i] . "'"; } } $classmapArray[] = "'{$namespacePart}' => {$classpathPart}"; } } $classmapFiledata = str_replace('{{CLASSMAP_ARRAY_ELEMENTS}}', implode(",\n ", $classmapArray), $classmapFiledata); $warning[] = 'Replace following PHP scripts to <code>/includes/classmap.php</code> file'; } else { $error[] = 'Can not read controller directory (' . $controllerDir . ')'; } $this->registry->smarty->assign(array('success' => $success, 'error' => $error, 'warning' => $warning, 'classmapFiledata' => $classmapFiledata)); $contents = $this->registry->smarty->fetch($this->registry->smartyController . 'classmap.tpl'); $this->registry->smarty->assign(array('pageTitle' => 'Classmap Generating', 'contents' => $contents)); $contents = $this->registry->smarty->fetch($this->registry->smartyModule . 'index.tpl'); $this->registry->response->setContent($contents); }
/** * Apply medium and thumb image after crop image * */ public function postCroppingAvatar() { $registry = \Litpi\Registry::getInstance(); $setting = $registry->get('setting'); //generate new image filename $curImage = $this->avatar; $extPart = Helper::fileExtension($this->avatar); $namePart = Helper::codau2khongdau($this->fullname, true) . '-' . $this->id . '-' . time(); $newAvatar = $namePart . '.' . $extPart; $newAvatarMedium = $namePart . '-medium.' . $extPart; $newAvatarSmall = $namePart . '-small.' . $extPart; $currentDir = Helper::getCurrentDateDirName(); if (!file_exists($setting['avatar']['imageDirectory'] . $currentDir)) { mkdir($setting['avatar']['imageDirectory'] . $currentDir, 0777); } //rename originalimage to new location if (rename($setting['avatar']['imageDirectory'] . $this->avatar, $setting['avatar']['imageDirectory'] . $currentDir . $newAvatar)) { //Create medium image $myImageResizer = new ImageResizer($setting['avatar']['imageDirectory'], $this->mediumImage(), $setting['avatar']['imageDirectory'], $currentDir . $newAvatarMedium, $setting['avatar']['imageMediumWidth'], $setting['avatar']['imageMediumHeight'], '', $setting['avatar']['imageQuality']); $myImageResizer->output(); unset($myImageResizer); //Create thum image $myImageResizer = new ImageResizer($setting['avatar']['imageDirectory'], $this->mediumImage(), $setting['avatar']['imageDirectory'], $currentDir . $newAvatarSmall, $setting['avatar']['imageThumbWidth'], $setting['avatar']['imageThumbHeight'], '1:1', $setting['avatar']['imageQuality']); $myImageResizer->output(); unset($myImageResizer); //delete current old medium image @unlink($setting['avatar']['imageDirectory'] . $this->mediumImage()); @unlink($setting['avatar']['imageDirectory'] . $this->thumbImage()); $this->avatar = $currentDir . $newAvatar; $sql = 'UPDATE ' . TABLE_PREFIX . 'ac_user SET u_avatar = ? WHERE u_id = ?'; $this->db->query($sql, array($this->avatar, $this->id)); //Clear cache of detail self::cacheDeleteDetail($this->id); } else { //something wrong with copy, keep original info //Create medium image $myImageResizer = new ImageResizer($setting['avatar']['imageDirectory'], $this->mediumImage(), $setting['avatar']['imageDirectory'], $this->mediumImage(), $setting['avatar']['imageMediumWidth'], $setting['avatar']['imageMediumHeight'], '', $setting['avatar']['imageQuality']); $myImageResizer->output(); unset($myImageResizer); //Create thum image $myImageResizer = new ImageResizer($setting['avatar']['imageDirectory'], $this->mediumImage(), $setting['avatar']['imageDirectory'], $this->thumbImage(), $setting['avatar']['imageThumbWidth'], $setting['avatar']['imageThumbHeight'], '1:1', $setting['avatar']['imageQuality']); $myImageResizer->output(); unset($myImageResizer); //clear cache of detail self::cacheDeleteDetail($this->id); } }