@ -5,8 +5,10 @@ namespace App\Commands;  
			
		
	
		
			
				
					use  Illuminate\Console\Scheduling\Schedule ;  
			
		
	
		
			
				
					use  LaravelZero\Framework\Commands\Command ;  
			
		
	
		
			
				
					use  Illuminate\Support\Facades\File ;  
			
		
	
		
			
				
					use  Jenssegers\Blade\Blade ;  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					use  App\Facades\Install ;  
			
		
	
		
			
				
					use  App\Facades\NginxVhost ;  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					use  PhpSchool\CliMenu\Builder\CliMenuBuilder ;  
			
		
	
		
			
				
					use  PhpSchool\CliMenu\CliMenu ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -14,11 +16,12 @@ use PhpSchool\CliMenu\MenuItem\CheckboxItem;  
			
		
	
		
			
				
					use  PhpSchool\CliMenu\Style\SelectableStyle ;  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					use  Log ;  
			
		
	
		
			
				
					use  Closure ;  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					class  NginxVhostsCommand  extends  Command  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    // path templates
   
			
		
	
		
			
				
					    const  TEMPLATES_DIR  =  '/resources/templates/nginx ' ;   
			
		
	
		
			
				
					    const  TEMPLATES_DIR  =  '/resources/nginx/ templates' ;   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					    /**   
			
		
	
		
			
				
					     *  The  signature  of  the  command .   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -39,138 +42,227 @@ class NginxVhostsCommand extends Command  
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     */   
			
		
	
		
			
				
					    private  function  add ( CliMenuBuilder  $builder )   
			
		
	
		
			
				
					    private  function  getTemplates ( $prefix  =  '' )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        // templates
   
			
		
	
		
			
				
					        $templates  =  [];   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					        // getting templates
   
			
		
	
		
			
				
					        $files  =  scandir ( base_path () . self :: TEMPLATES_DIR );   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					        foreach ( $files  as  $file )  {   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            // create filepath
   
			
		
	
		
			
				
					            $filepath  =  base_path () . self :: TEMPLATES_DIR . '/' . $file ;   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            // getting info
   
			
		
	
		
			
				
					            $pathinfo  =  pathinfo ( $filepath );   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            // if extension isset and php
   
			
		
	
		
			
				
					            if  ( isset ( $pathinfo [ 'extension' ])  &&  $pathinfo [ 'extension' ]  ===  'php' )  {   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                $name  =  str_replace ( '.blade.php' ,  '' ,  $file );   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                $templates []  =  [   
			
		
	
		
			
				
					                    'name'  =>  $name ,   
			
		
	
		
			
				
					                    'file'  =>  $file ,   
			
		
	
		
			
				
					                    'filepath'  =>  $filepath   
			
		
	
		
			
				
					                ];   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					        return  $templates ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					    /**   
			
		
	
		
			
				
					     *  Execute  the  console  command .   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     *  @ return  mixed   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     */   
			
		
	
		
			
				
					    public  function  handle ()   
			
		
	
		
			
				
					    private  function  selectTemplat e ()   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        // create menu
   
			
		
	
		
			
				
					        $main  =  $this -> menu ( self :: MENU_TITLE )   
			
		
	
		
			
				
					            -> addSubMenu ( 'add' ,  function ( CliMenuBuilder  $builder )  {   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                // getting templates
   
			
		
	
		
			
				
					                $templates  =  scandir ( base_path () . self :: TEMPLATES_DIR );   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                foreach ( $templates  as  $template )  {   
			
		
	
		
			
				
					                    $builder   
			
		
	
		
			
				
					                        -> addSubMenu ( $template ,  function ( CliMenuBuilder  $builder )  use  ( $template )  {   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                            $configuration  =  [   
			
		
	
		
			
				
					                                'domain'  =>  '' ,   
			
		
	
		
			
				
					                                'ssl'  =>  true ,   
			
		
	
		
			
				
					                                'redirect_www'  =>  true   
			
		
	
		
			
				
					                            ];   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                            $checkboxSSL  =  new  CheckboxItem ( 'ssl' ,  function ( CliMenu  $menu )  use  ( & $configuration )  {   
			
		
	
		
			
				
					                                $configuration [ 'ssl' ]  =  $menu -> getSelectedItem () -> getChecked ();   
			
		
	
		
			
				
					                            });   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                            $checkboxSSL -> setChecked ( $configuration [ 'ssl' ]);   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                            $checkboxRedirect  =  new  CheckboxItem ( 'redirect www' ,  function ( CliMenu  $menu )  use  ( & $configuration )  {   
			
		
	
		
			
				
					                                $configuration [ 'redirect www' ]  =  $menu -> getSelectedItem () -> getChecked ();   
			
		
	
		
			
				
					                            });   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                            $checkboxRedirect -> setChecked ( $configuration [ 'redirect_www' ]);   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                            $builder   
			
		
	
		
			
				
					                                -> setTitle ( 'Nginx Vhosts > add > ' . $template )   
			
		
	
		
			
				
					                                -> addItem ( 'domain' ,  function ( CliMenu  $menu )  use  ( & $configuration )  {   
			
		
	
		
			
				
					                                    $result  =  $menu -> askText () -> ask ();   
			
		
	
		
			
				
					                                    $configuration [ 'domain' ]  =  $result -> fetch ();   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                                    $menu -> getSelectedItem () -> setText ( 'domain -> ' . $result -> fetch ());   
			
		
	
		
			
				
					                                    $menu -> redraw ();   
			
		
	
		
			
				
					                                })   
			
		
	
		
			
				
					                                -> addLineBreak ( '-' )   
			
		
	
		
			
				
					                                -> addMenuItem ( $checkboxSSL )   
			
		
	
		
			
				
					                                -> addMenuItem ( $checkboxRedirect )   
			
		
	
		
			
				
					                                -> addLineBreak ( '-' )   
			
		
	
		
			
				
					                                -> addItem ( 'save' ,  function ()  use  ( & $configuration )  {   
			
		
	
		
			
				
					                                    var_dump ( $configuration );   
			
		
	
		
			
				
					                                })   
			
		
	
		
			
				
					                                -> addLineBreak ( '-' );   
			
		
	
		
			
				
					                        });   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					        // getting templates
   
			
		
	
		
			
				
					        $templates  =  $this -> getTemplates ();   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					        $menu  =  function ( CliMenuBuilder  $builder )  use  ( $templates )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            // writing configuration
   
			
		
	
		
			
				
					            $blade  =  new  Blade ( base_path () . self :: TEMPLATES_DIR ,  base_path () . '/storage/cache' );   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            $builder   
			
		
	
		
			
				
					                -> setTitle ( 'Nginx > add' )   
			
		
	
		
			
				
					                -> setGoBackButtonText ( 'Back' );   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            foreach ( $templates  as  $template )  {   
			
		
	
		
			
				
					                $submenuCallable  =  $this -> createConfiguration ( $template ,  $blade );   
			
		
	
		
			
				
					                $builder   
			
		
	
		
			
				
					                    -> addSubMenu ( $template [ 'name' ],  $submenuCallable );   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                //exec('touch /etc/nginx/sites-available/');
   
			
		
	
		
			
				
					            })   
			
		
	
		
			
				
					            -> addLineBreak ( '-' );   
			
		
	
		
			
				
					            $builder -> addLineBreak ( '-' );   
			
		
	
		
			
				
					        };   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					        /***   
			
		
	
		
			
				
					        return  $menu ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					        $itemCallable  =  function ( CliMenu  $menu )  {   
			
		
	
		
			
				
					    /**   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     *   @ param   [ type ]  $template  [ description ]   
			
		
	
		
			
				
					     *   @ param   [ type ]  $blade     [ description ]   
			
		
	
		
			
				
					     *   @ return  [ type ]            [ description ]   
			
		
	
		
			
				
					     */   
			
		
	
		
			
				
					    private  function  createConfiguration ( $template ,  $blade )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        $menu  =  function ( CliMenuBuilder  $builder )  use  ( $template ,  $blade )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            $configuration  =  [   
			
		
	
		
			
				
					                'domain'  =>  '' ,   
			
		
	
		
			
				
					                'root'  =>  '' ,   
			
		
	
		
			
				
					                'index'  =>  'index.php' ,   
			
		
	
		
			
				
					                'ssl'  =>  true ,   
			
		
	
		
			
				
					                'redirect_www'  =>  true   
			
		
	
		
			
				
					            ];   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            // create checkbox for ssl
   
			
		
	
		
			
				
					            $checkboxSSL  =  new  CheckboxItem ( 'ssl' ,  function ( CliMenu  $menu )  use  ( & $configuration )  {   
			
		
	
		
			
				
					                $configuration [ 'ssl' ]  =  $menu -> getSelectedItem () -> getChecked ();   
			
		
	
		
			
				
					            });   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            $checkboxSSL -> setChecked ( $configuration [ 'ssl' ]);   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            // create checkbox for redirect from www
   
			
		
	
		
			
				
					            $checkboxRedirect  =  new  CheckboxItem ( 'redirect www' ,  function ( CliMenu  $menu )  use  ( & $configuration )  {   
			
		
	
		
			
				
					                $configuration [ 'redirect_www' ]  =  $menu -> getSelectedItem () -> getChecked ();   
			
		
	
		
			
				
					            });   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            $checkboxRedirect -> setChecked ( $configuration [ 'redirect_www' ]);   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            $builder   
			
		
	
		
			
				
					                -> setTitle ( 'Nginx Vhosts > add > ' . $template [ 'name' ])   
			
		
	
		
			
				
					                -> addItem ( 'domain' ,  function ( CliMenu  $menu )  use  ( & $configuration )  {   
			
		
	
		
			
				
					                    $result  =  $menu -> askText () -> ask ();   
			
		
	
		
			
				
					                    $configuration [ 'domain' ]  =  $result -> fetch ();   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                    $menu -> getSelectedItem () -> setText ( 'domain -> ' . $result -> fetch ());   
			
		
	
		
			
				
					                    $menu -> redraw ();   
			
		
	
		
			
				
					                })   
			
		
	
		
			
				
					                -> addItem ( 'root' ,  function ( CliMenu  $menu )  use  ( & $configuration )  {   
			
		
	
		
			
				
					                    $result  =  $menu -> askText () -> ask ();   
			
		
	
		
			
				
					                    $configuration [ 'root' ]  =  $result -> fetch ();   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                    $menu -> getSelectedItem () -> setText ( 'root -> ' . $result -> fetch ());   
			
		
	
		
			
				
					                    $menu -> redraw ();   
			
		
	
		
			
				
					                })   
			
		
	
		
			
				
					                -> addItem ( $configuration [ 'index' ],  function ( CliMenu  $menu )  use  ( & $configuration )  {   
			
		
	
		
			
				
					                    $result  =  $menu -> askText () -> ask ();   
			
		
	
		
			
				
					                    $configuration [ 'index' ]  =  $result -> fetch ();   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                    $menu -> getSelectedItem () -> setText ( $result -> fetch ());   
			
		
	
		
			
				
					                    $menu -> redraw ();   
			
		
	
		
			
				
					                })   
			
		
	
		
			
				
					                -> addLineBreak ( '-' )   
			
		
	
		
			
				
					                -> addMenuItem ( $checkboxSSL )   
			
		
	
		
			
				
					                -> addMenuItem ( $checkboxRedirect )   
			
		
	
		
			
				
					                -> addLineBreak ( '-' )   
			
		
	
		
			
				
					                -> addItem ( 'save' ,  function ()  use  ( & $configuration ,  $template ,  $blade )  {   
			
		
	
		
			
				
					                    $content  =  $blade -> render ( $template [ 'name' ],  $configuration );   
			
		
	
		
			
				
					                    file_put_contents ( '/etc/nginx/sites-available/' . $configuration [ 'domain' ] . '.conf' ,  $content );   
			
		
	
		
			
				
					                })   
			
		
	
		
			
				
					                -> addLineBreak ( '-' );   
			
		
	
		
			
				
					        };   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					        return  $menu ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            // getting sites-available
   
			
		
	
		
			
				
					            $sitesAvailable  =  scandir ( '/etc/nginx/sites-available' );   
			
		
	
		
			
				
					    /**   
			
		
	
		
			
				
					     *   create  submenu  for  vhost   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     *   @ param   array  $vhost   
			
		
	
		
			
				
					     *   @ return  CliMenuBuilder   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     */   
			
		
	
		
			
				
					    private  function  vhost ( $vhost )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        $menu  =  function ( CliMenuBuilder  $builder )  use  ( $vhost )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            $checkbox  =  new  CheckboxItem ( 'enabled' ,  function ( CliMenu  $menu )  use  ( $vhost )  {   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                // check status
   
			
		
	
		
			
				
					                if  ( $menu -> getSelectedItem () -> getChecked ())  {   
			
		
	
		
			
				
					                    symlink ( '/etc/nginx/sites-available/' . $vhost [ 'file' ],  '/etc/nginx/sites-enabled/' . $vhost [ 'file' ]);   
			
		
	
		
			
				
					                    $status  =  'enabled' ;   
			
		
	
		
			
				
					                }  else  {   
			
		
	
		
			
				
					                    unlink ( '/etc/nginx/sites-enabled/' . $vhost [ 'file' ]);   
			
		
	
		
			
				
					                    $status  =  'disabled' ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            // getting sites-endabled
   
			
		
	
		
			
				
					            $sitesEnabled  =  scandir ( '/etc/nginx/sites-enabled' );   
			
		
	
		
			
				
					                // restart
   
			
		
	
		
			
				
					                exec ( 'service nginx restart' );   
			
		
	
		
			
				
					                exec ( 'service nginx status' ,  $output );   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					            foreach ( $sitesAvailable  as  $site )  {   
			
		
	
		
			
				
					                if  ( $site  !==  '.'  &&  $site  !==  '..' )  {   
			
		
	
		
			
				
					                if  ( strpos ( implode ( ' ' ,  $output ),  'active' )  !==  false )  {   
			
		
	
		
			
				
					                    $menu -> confirm ( $vhost [ 'domain' ] . ' is ' . $status . '!' ) -> display ( 'OK!' );   
			
		
	
		
			
				
					                }  else  {   
			
		
	
		
			
				
					                    $menu -> confirm ( 'Error! Something not working!' ) -> display ( 'OK!' );   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                    // getting title
   
			
		
	
		
			
				
					                    $title  =  str_replace ( '.conf' ,  '' ,  $site );   
			
		
	
		
			
				
					            });   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                    $checkbox  =  new  CheckboxItem ( 'enabled' ,  function ( CliMenu  $menu )  use  ( $site ,  $title )  {   
			
		
	
		
			
				
					            // adding checkbox
   
			
		
	
		
			
				
					            if  ( $vhost [ 'enabled' ])  {   
			
		
	
		
			
				
					                $checkbox -> setChecked ( true );   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                        // check status
   
			
		
	
		
			
				
					                        if  ( $menu -> getSelectedItem () -> getChecked ())  {   
			
		
	
		
			
				
					                            symlink ( '/etc/nginx/sites-available/' . $site ,  '/etc/nginx/sites-enabled/' . $site );   
			
		
	
		
			
				
					                            $status  =  'enabled' ;   
			
		
	
		
			
				
					                        }  else  {   
			
		
	
		
			
				
					                            unlink ( '/etc/nginx/sites-enabled/' . $site );   
			
		
	
		
			
				
					                            $status  =  'disabled' ;   
			
		
	
		
			
				
					                        }   
			
		
	
		
			
				
					            $builder   
			
		
	
		
			
				
					                -> setTitle ( 'Nginx > ' . $vhost [ 'domain' ])   
			
		
	
		
			
				
					                -> setGoBackButtonText ( 'Back' )   
			
		
	
		
			
				
					                -> addItem ( 'edit' ,  function ( CliMenu  $menu )  use  ( $vhost )  {   
			
		
	
		
			
				
					                    system ( 'nano /etc/nginx/sites-available/' . $vhost [ 'file' ] . ' > `tty`' );   
			
		
	
		
			
				
					                })   
			
		
	
		
			
				
					                -> addItem ( 'delete' ,  function ( CliMenu  $menu )  use  ( $vhost )  {   
			
		
	
		
			
				
					                    if  ( file_exists ( '/etc/nginx/sites-enabled/' . $vhost [ 'file' ]))  {   
			
		
	
		
			
				
					                        $menu -> confirm ( 'Error! Please disable ' . $vhost [ 'domain' ] . ' first!' ) -> display ( 'OK!' );   
			
		
	
		
			
				
					                    }  else  {   
			
		
	
		
			
				
					                        unlink ( '/etc/nginx/sites-available/' . $vhost [ 'file' ]);   
			
		
	
		
			
				
					                        $menu -> confirm ( $vhost [ 'domain' ] . ' is deleted!' ) -> display ( 'OK!' );   
			
		
	
		
			
				
					                    }   
			
		
	
		
			
				
					                })   
			
		
	
		
			
				
					                -> addLineBreak ( '-' )   
			
		
	
		
			
				
					                -> addMenuItem ( $checkbox )   
			
		
	
		
			
				
					                -> addLineBreak ( '-' );   
			
		
	
		
			
				
					        };   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                        // starting
   
			
		
	
		
			
				
					                        exec ( 'service nginx restart' );   
			
		
	
		
			
				
					                        exec ( 'service nginx status' ,  $output );   
			
		
	
		
			
				
					        return  $menu ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                        if  ( strpos ( implode ( ' ' ,  $output ),  'active' )  !==  false )  {   
			
		
	
		
			
				
					                            $menu -> confirm ( $title . ' is ' . $status . '!' ) -> display ( 'OK!' );   
			
		
	
		
			
				
					                        }  else  {   
			
		
	
		
			
				
					                            $menu -> confirm ( 'Error! Something not working!' ) -> display ( 'OK!' );   
			
		
	
		
			
				
					                        }   
			
		
	
		
			
				
					    /**   
			
		
	
		
			
				
					     *   let  it  rain   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     *   
			
		
	
		
			
				
					     */   
			
		
	
		
			
				
					    public  function  handle ()   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        $submenuSelectTemplate  =  $this -> selectTemplate ();   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                    });   
			
		
	
		
			
				
					        // create menu
   
			
		
	
		
			
				
					        $main  =  $this -> menu ( 'Nginx' )   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                    // adding checkbox
   
			
		
	
		
			
				
					                    if  ( in_array ( $site ,  $sitesEnabled ))  {   
			
		
	
		
			
				
					                        $checkbox -> setChecked ( true );   
			
		
	
		
			
				
					                    }   
			
		
	
		
			
				
					            // add Submenu for select templates
   
			
		
	
		
			
				
					            -> addSubMenu ( 'add' ,  $submenuSelectTemplate )   
			
		
	
		
			
				
					            -> addLineBreak ( '-' );   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                    $menuMain   
			
		
	
		
			
				
					                        -> addSubmenu ( $title ,  function ( CliMenuBuilder  $builder )  use  ( $site ,  $title ,  $checkbox )  {   
			
		
	
		
			
				
					                            $builder -> setTitle ( " Nginx >  $title " )   
			
		
	
		
			
				
					                                -> addItem ( 'edit' ,  function ( CliMenu  $menu )  use  ( $site ,  $title )  {   
			
		
	
		
			
				
					                                    system ( 'nano /etc/nginx/sites-available/' . $site . ' > `tty`' );   
			
		
	
		
			
				
					                                })   
			
		
	
		
			
				
					                                -> addItem ( 'delete' ,  function ( CliMenu  $menu )  use  ( $site )  {   
			
		
	
		
			
				
					                                    if  ( file_exists ( '/etc/nginx/sites-enabled/' . $site ))  {   
			
		
	
		
			
				
					                                        $menu -> confirm ( 'Error! Please disable ' . $title . ' first!' ) -> display ( 'OK!' );   
			
		
	
		
			
				
					                                    }  else  {   
			
		
	
		
			
				
					                                        unlink ( '/etc/nginx/sites-available/' . $site );   
			
		
	
		
			
				
					                                        $menu -> confirm ( " $site  is deleted! " ) -> display ( 'OK!' );   
			
		
	
		
			
				
					                                    }   
			
		
	
		
			
				
					                                })   
			
		
	
		
			
				
					                                -> addLineBreak ( '-' )   
			
		
	
		
			
				
					                                -> addMenuItem ( $checkbox )   
			
		
	
		
			
				
					                                -> addLineBreak ( '-' );   
			
		
	
		
			
				
					                        });   
			
		
	
		
			
				
					        // getting vhosts
   
			
		
	
		
			
				
					        $vhosts  =  NginxVhost :: find ();   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					        }; */   
			
		
	
		
			
				
					        // add submenu for each vhost
   
			
		
	
		
			
				
					        foreach ( $vhosts  as  $vhost )  {   
			
		
	
		
			
				
					            $submenuEditVhost  =  $this -> vhost ( $vhost );   
			
		
	
		
			
				
					            $main -> addSubMenu ( $vhost [ 'domain' ],  $submenuEditVhost );   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					        $main -> addLineBreak ( '-' ) -> open ();   
			
		
	
		
			
				
					        $main -> addLineBreak ( '-' );   
			
		
	
		
			
				
					        $main -> open ();   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					}