original_string: public function install()
      {
          if ($this->request->data()) {
              $task = false;
              $uploadError = false;
  
              if (isset($this->request->data['download'])) {
                  $task = (bool)WebShellDispatcher::run("Installer.plugins install -s \"{$this->request->data['url']}\" --theme -a");
              } elseif (isset($this->request->data['file_system'])) {
                  $task = (bool)WebShellDispatcher::run("Installer.plugins install -s \"{$this->request->data['path']}\" --theme -a");
              } else {
                  $uploader = new PackageUploader($this->request->data['file']);
                  if ($uploader->upload()) {
                      $task = (bool)WebShellDispatcher::run('Installer.plugins install -s "' . $uploader->dst() . '" --theme -a');
                  } else {
                      $uploadError = true;
                      $this->Flash->set(__d('system', 'Plugins installed but some errors occur'), [
                          'element' => 'System.installer_errors',
                          'params' => ['errors' => $uploader->errors(), 'type' => 'warning'],
                      ]);
                  }
              }
  
              if ($task) {
                  $this->Flash->success(__d('system', 'Theme successfully installed!'));
                  $this->redirect($this->referer());
              } elseif (!$task && !$uploadError) {
                  $this->Flash->set(__d('system', 'Theme could not be installed'), [
                      'element' => 'System.installer_errors',
                      'params' => ['errors' => WebShellDispatcher::output()],
                  ]);
              }
          }
  
          $this->title(__d('system', 'Install Theme'));
          $this->Breadcrumb
              ->push('/admin/system/themes')
              ->push(__d('system', 'Install new theme'), '#');
      }
code: public function install()
      {
          if ($this->request->data()) {
              $task = false;
              $uploadError = false;
  
              if (isset($this->request->data['download'])) {
                  $task = (bool)WebShellDispatcher::run("Installer.plugins install -s \"{$this->request->data['url']}\" --theme -a");
              } elseif (isset($this->request->data['file_system'])) {
                  $task = (bool)WebShellDispatcher::run("Installer.plugins install -s \"{$this->request->data['path']}\" --theme -a");
              } else {
                  $uploader = new PackageUploader($this->request->data['file']);
                  if ($uploader->upload()) {
                      $task = (bool)WebShellDispatcher::run('Installer.plugins install -s "' . $uploader->dst() . '" --theme -a');
                  } else {
                      $uploadError = true;
                      $this->Flash->set(__d('system', 'Plugins installed but some errors occur'), [
                          'element' => 'System.installer_errors',
                          'params' => ['errors' => $uploader->errors(), 'type' => 'warning'],
                      ]);
                  }
              }
  
              if ($task) {
                  $this->Flash->success(__d('system', 'Theme successfully installed!'));
                  $this->redirect($this->referer());
              } elseif (!$task && !$uploadError) {
                  $this->Flash->set(__d('system', 'Theme could not be installed'), [
                      'element' => 'System.installer_errors',
                      'params' => ['errors' => WebShellDispatcher::output()],
                  ]);
              }
          }
  
          $this->title(__d('system', 'Install Theme'));
          $this->Breadcrumb
              ->push('/admin/system/themes')
              ->push(__d('system', 'Install new theme'), '#');
      }
code_tokens: public function install ( ) { if ( $ this -> request -> data ( ) ) { $ task = false ; $ uploadError = false ; if ( isset ( $ this -> request -> data [ 'download' ] ) ) { $ task = ( bool ) WebShellDispatcher :: run ( "Installer.plugins install -s \"{$this->request->data['url']}\" --theme -a" ) ; } elseif ( isset ( $ this -> request -> data [ 'file_system' ] ) ) { $ task = ( bool ) WebShellDispatcher :: run ( "Installer.plugins install -s \"{$this->request->data['path']}\" --theme -a" ) ; } else { $ uploader = new PackageUploader ( $ this -> request -> data [ 'file' ] ) ; if ( $ uploader -> upload ( ) ) { $ task = ( bool ) WebShellDispatcher :: run ( 'Installer.plugins install -s "' . $ uploader -> dst ( ) . '" --theme -a' ) ; } else { $ uploadError = true ; $ this -> Flash -> set ( __d ( 'system' , 'Plugins installed but some errors occur' ) , [ 'element' => 'System.installer_errors' , 'params' => [ 'errors' => $ uploader -> errors ( ) , 'type' => 'warning' ] , ] ) ; } } if ( $ task ) { $ this -> Flash -> success ( __d ( 'system' , 'Theme successfully installed!' ) ) ; $ this -> redirect ( $ this -> referer ( ) ) ; } elseif ( ! $ task && ! $ uploadError ) { $ this -> Flash -> set ( __d ( 'system' , 'Theme could not be installed' ) , [ 'element' => 'System.installer_errors' , 'params' => [ 'errors' => WebShellDispatcher :: output ( ) ] , ] ) ; } } $ this -> title ( __d ( 'system' , 'Install Theme' ) ) ; $ this -> Breadcrumb -> push ( '/admin/system/themes' ) -> push ( __d ( 'system' , 'Install new theme' ) , '#' ) ; }
docstring: Install a new theme.
  
  @return void
docstring_tokens: Install a new theme .