Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Cli/Command/Designer/Disable.php
<?php

namespace XF\Cli\Command\Designer;

use
Symfony\Component\Console\Command\Command;
use
Symfony\Component\Console\Input\InputArgument;
use
Symfony\Component\Console\Input\InputInterface;
use
Symfony\Component\Console\Input\InputOption;
use
Symfony\Component\Console\Output\OutputInterface;
use
XF\Cli\Command\StyleArchiveTrait;
use
XF\Util\File;

class
Disable extends Command
{
    use
RequiresDesignerModeTrait, StyleArchiveTrait;

    protected function
configure()
    {
       
$this
           
->setName('xf-designer:disable')
            ->
setDescription('Disables designer mode on the specified style')
            ->
addArgument(
               
'designer-mode',
               
InputArgument::REQUIRED,
               
'Designer mode ID'
           
)
            ->
addOption(
               
'clear',
               
null,
               
InputOption::VALUE_NONE,
               
'If set, existing designer mode directory will be deleted.'
           
);
    }

    protected function
execute(InputInterface $input, OutputInterface $output)
    {
       
$style = $this->getStyleByDesignerModeInput($input, $output);

       
$designerModePath = \XF::app()->designerOutput()->getDesignerModePath($style->designer_mode);
       
$style->designer_mode = null;

        if (!
$style->preSave())
        {
           
$output->writeln($style->getErrors());
            return
1;
        }

       
$style->save();

        if (
$input->getOption('clear'))
        {
           
$printablePath = str_replace(\XF::getRootDirectory() . \XF::$DS, '', $designerModePath);

            if (
file_exists($designerModePath))
            {
               
File::deleteDirectory($designerModePath);

               
$output->writeln(["", "Designer mode path '$printablePath' deleted."]);
            }
        }

       
$output->writeln(["", "Designer mode disabled for '$style->title'", ""]);

        return
0;
    }
}