Пример #1
0
 public function install($response)
 {
     $Request = new \Core\Request();
     $Url = new \Core\Url();
     $zip = PHPFOX_DIR_FILE . 'static/' . uniqid() . '.zip';
     file_put_contents($zip, file_get_contents($response->download));
     switch ($Request->get('type')) {
         case 'isAppInstalled':
             echo "OK";
             break;
         case 'language':
             $file = PHPFOX_DIR_FILE . 'static/' . uniqid() . '/';
             mkdir($file);
             $Zip = new \ZipArchive();
             $Zip->open($zip);
             $Zip->extractTo($file);
             $Zip->close();
             // $xml = \Phpfox::getLib('xml.parser')->parse($file . 'phpfox-language-import.xml');
             $name = false;
             $fullPath = $file . 'upload/include/';
             foreach (scandir($fullPath . 'xml/language/') as $dir) {
                 if (file_exists($fullPath . 'xml/language/' . $dir . '/phpfox-language-import.xml')) {
                     $name = $dir;
                 }
             }
             if (!$name) {
                 throw new \Exception('Not a valid language package to install.');
             }
             \Language_Service_Process::instance()->installPackFromFolder($name, $fullPath . 'xml/language/' . $name . '/');
             $Url->send('admincp/language/import', ['dir' => base64_encode($fullPath . 'xml/language/' . $name . '/')]);
             break;
         default:
             $Theme = new \Core\Theme();
             $Theme->import($zip, ['image' => $response->image, 'id' => $response->internal_id, 'version' => $response->internal_version]);
             $Url->send('admincp/theme', null, 'Theme successfully installed!');
             break;
     }
     exit;
 }
Пример #2
0
 public function process()
 {
     $Theme = new Core\Theme();
     $file = null;
     if ($this->request()->get('type') == 'language') {
         $dir = PHPFOX_DIR_FILE . 'static/' . uniqid() . '/';
         mkdir($dir);
         $file = $dir . 'import.zip';
         file_put_contents($file, file_get_contents($this->request()->get('download')));
         register_shutdown_function(function () use($dir) {
             // Phpfox_File::instance()->delete_directory($dir);
         });
         $Zip = new \ZipArchive();
         $Zip->open($file);
         $Zip->extractTo($dir);
         $Zip->close();
         $pack = '';
         $path = $dir . 'upload/include/xml/language/';
         foreach (scandir($path) as $newDir) {
             if ($newDir == '.' || $newDir == '..') {
                 continue;
             }
             $pack = $newDir;
             $path .= $newDir . '/';
             break;
         }
         \Language_Service_Process::instance()->installPackFromFolder($pack, $path);
         echo '<script>window.top.location.href = \'' . $this->url()->makeUrl('admincp.language.import', ['dir' => base64_encode($path)]) . '\';</script>';
         exit;
     }
     if ($this->request()->get('type') == 'theme') {
         $dir = PHPFOX_DIR_FILE . 'static/' . uniqid() . '/';
         mkdir($dir);
         $file = $dir . 'import.zip';
         file_put_contents($file, file_get_contents($this->request()->get('download')));
         register_shutdown_function(function () use($dir) {
             Phpfox_File::instance()->delete_directory($dir);
         });
         Phpfox::addMessage('Theme successfully installed.');
         $id = $Theme->import($file);
         // $this->url()->send('admincp.theme');
         echo '<script>window.top.location.href = \'' . $this->url()->makeUrl('admincp.theme') . '\';</script>';
         exit;
     }
     if (isset($_SERVER['HTTP_X_FILE_NAME']) || $this->request()->get('download')) {
         $App = (new Core\App())->import($this->request()->get('download'), $this->request()->get('download') ? true : false);
         if ($this->request()->get('download')) {
             // $this->url()->send('admincp.app', ['id' => $App->id]);
             echo '<script>window.top.location.href = \'' . $this->url()->makeUrl('admincp.app', ['id' => $App->id]) . '\';</script>';
             exit;
         }
         return ['redirect' => $this->url()->makeUrl('admincp.app', ['id' => $App->id])];
     }
     if ($token = $this->request()->get('m9token')) {
         (new Core\App())->vendor($token);
         d($token);
         exit;
     }
     if ($val = $this->request()->getArray('val')) {
         $App = (new Core\App())->make($val['name']);
         Phpfox::addMessage('App successfully created.');
         return ['redirect' => $this->url()->makeUrl('admincp.app', ['id' => $App->id])];
     }
     $this->template()->setBreadCrumb('New App', $this->url()->current(), true);
 }
Пример #3
0
 /**
  * Controller
  */
 public function process()
 {
     $iPage = $this->request()->getInt('page', 0);
     $bImportPhrases = false;
     $base = true;
     if ($install = $this->request()->get('install')) {
         $base = false;
         $dir = PHPFOX_DIR_INCLUDE . 'xml/language/' . $install . '/';
         Language_Service_Process::instance()->installPackFromFolder($install, $dir);
         $this->request()->set('dir', $dir);
         if (!is_dir($dir)) {
             Phpfox_Error::set('Language package cannot be found at: ' . $dir);
         }
     }
     if ($dir = $this->request()->get('dir')) {
         $dir = $base ? base64_decode($dir) : $dir;
         $parts = explode('language/', rtrim($dir, '/'));
         $bImportPhrases = true;
         $mReturn = Language_Service_Phrase_Process::instance()->installFromFolder($parts[1], $dir, $iPage);
         if ($mReturn === 'done') {
             $sPhrase = Phpfox::getPhrase('language.successfully_installed_the_language_package');
             Phpfox::getLib('cache')->remove('locale', 'substr');
             $this->url()->send('admincp.language', null, $sPhrase);
         } else {
             if ($mReturn) {
                 $this->template()->setHeader('<meta http-equiv="refresh" content="2;url=' . $this->url()->makeUrl('admincp.language.import', array('dir' => base64_encode($dir), 'page' => $iPage + 1)) . '">');
             }
         }
     }
     /*
     if (($sModulePackage = $this->request()->get('module')) || $this->request()->get('dir'))
     {
     	if ($this->request()->get('dir'))
     	{
     		$sModulePackage = array($this->request()->get('dir'), $this->request()->get('module'));
     	}
     	$bImportPhrases = true;
     	$mReturn = Phpfox::getService('language.phrase.process')->installFromFolder($sModulePackage, $iPage);
     	
     	if ($mReturn === 'done')
     	{
     		$sPhrase = Phpfox::getPhrase('language.successfully_installed_the_language_package');
     		
     		Phpfox::getLib('cache')->remove('locale', 'substr');
     		
     		$this->url()->send('admincp.language', null, $sPhrase);
     	}
     	else
     	{
     		if ($mReturn)
     		{
     			if ($this->request()->get('dir'))
     			{
     				$this->template()->setHeader('<meta http-equiv="refresh" content="2;url=' . $this->url()->makeUrl('admincp.language.import', array('module' => $this->request()->get('module'), 'dir' => $this->request()->get('dir'), 'page' => ($iPage + 1))) . '">');
     			}
     			else
     			{
     				$this->template()->setHeader('<meta http-equiv="refresh" content="2;url=' . $this->url()->makeUrl('admincp.language.import', array('module' => $sModulePackage, 'page' => ($iPage + 1))) . '">');
     			}
     		}
     	}
     }
     else
     {
     	$sDir = '';
     	if (!empty($_FILES['import']) && Phpfox::getParam('core.is_auto_hosted'))
     	{
     		$sDir = PHPFOX_DIR_CACHE . md5($_FILES['import']['name']) . PHPFOX_DS;
     		if (!is_dir($sDir))
     		{
     			mkdir($sDir);
     			chdir($sDir);
     			shell_exec('unzip ' . $_FILES['import']['tmp_name']);
     		}	
     		$sDir = $sDir . 'upload' . PHPFOX_DS;
     	}
     	
     	if ((($sPackToInstall = $this->request()->get('install')) || !empty($sDir)) && Phpfox::getService('language.process')->installPackFromFolder($sPackToInstall, $sDir))
     	{
     		if (!empty($sDir))
     		{
     			preg_match('/phpfox-language-([a-zA-Z0-9]+)\.zip/i', $_FILES['import']['name'], $aMatches);					
     			
     			$this->url()->send('admincp.language.import', array('module' => $aMatches[1], 'dir' => md5($_FILES['import']['name'])));
     		}
     		$this->url()->send('admincp.language.import', array('module' => $sPackToInstall));
     	}		
     }
     */
     $this->template()->setTitle(Phpfox::getPhrase('language.manage_language_packages'))->setBreadCrumb(Phpfox::getPhrase('language.manage_language_packages'))->assign(array('aNewLanguages' => Phpfox::getService('language')->getForInstall(), 'bImportPhrases' => $bImportPhrases));
 }