コード例 #1
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $names = explode(',', $input->getArgument('name'));
     $pages = \ProcessWire\wire('pages');
     $template = $this->getTemplate($input, $output);
     $parent = $this->getParent($input, $output);
     foreach ($names as $name) {
         $sanitizedName = \ProcessWire\wire('sanitizer')->pageName($name);
         if (!\ProcessWire\wire('pages')->get($parent->url . $sanitizedName . '/') instanceof \ProcessWire\NullPage) {
             $output->writeln("<error>The page name  '{$name}' is already taken.</error>");
             continue;
         }
         // create page and populate it with the required details to save it a first time
         $p = new Page();
         $p->template = $template;
         $p->parent = $parent;
         $p->name = $sanitizedName;
         // give it a name used in the url for the page
         $p->title = $input->getOption('title') ? $input->getOption('title') : $name;
         // IMPORTANT: Save the page once, so that file-type fields can be added to it below!
         $p->save();
         if ($input->getOption('file')) {
             $this->addFileData($input->getOption('file'), $output, $p);
         }
         $output->writeln("<info>Page `{$name}` has been successfully created.</info>");
     }
 }
コード例 #2
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     foreach (\ProcessWire\wire('roles') as $role) {
         $output->writeln("  - {$role->name}");
     }
 }
コード例 #3
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $name = $input->getArgument('name');
     $email = $input->getOption('email');
     $pass = $input->getOption('password');
     $roles = explode(",", $input->getOption('roles'));
     $helper = $this->getHelper('question');
     if (!$email) {
         $question = new Question('Please enter a email address : ', 'email');
         $email = $helper->ask($input, $output, $question);
     }
     if (!$pass) {
         $question = new Question('Please enter a password : '******'password');
         $question->setHidden(true);
         $question->setHiddenFallback(false);
         $pass = $helper->ask($input, $output, $question);
     }
     if (!\ProcessWire\wire("pages")->get("name={$name}") instanceof \ProcessWire\NullPage) {
         $output->writeln("<error>User '{$name}' already exists!</error>");
         exit(1);
     }
     $user = $this->createUser($email, $name, $this->userContainer, $pass);
     $user->save();
     if ($input->getOption('roles')) {
         $this->attachRolesToUser($name, $roles, $output);
     }
     if ($pass) {
         $output->writeln("<info>User '{$name}' created successfully!</info>");
     } else {
         $output->writeln("<info>User '{$name}' created successfully! Please do not forget to set a password.</info>");
     }
 }
コード例 #4
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $pages = \ProcessWire\wire('pages');
     foreach (explode(',', $input->getArgument('selector')) as $selector) {
         $select = is_numeric($selector) ? (int) $selector : "/{$selector}/";
         $trashPages = $pages->find($select, array('include' => 'all'));
         if ($trashPages->count() === 0) {
             $trashPages = $pages->find($selector, array('include' => 'all'));
         }
         if ($trashPages->count() === 0) {
             $output->writeln("<error>No pages were found using `{$selector}`.</error>");
         }
         foreach ($trashPages as $trashPage) {
             if ($trashPage instanceof \ProcessWire\NullPage) {
                 $output->writeln("<error>Page `{$selector}` doesn't exist.</error>");
             } else {
                 $delete = $input->getOption('rm') === true ? true : false;
                 $title = $trashPage->title;
                 if ($delete === true) {
                     $pages->delete($trashPage, true);
                     $output->writeln("<info>Page `{$title}` was successfully deleted.</info>");
                 } else {
                     $pages->trash($trashPage, true);
                     $output->writeln("<info>Page `{$title}` has been successfully moved to the trash.</info>");
                 }
             }
         }
     }
 }
コード例 #5
0
ファイル: PageListCommand.php プロジェクト: samuell/wireshell
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $pages = wire('pages');
     $this->output = $output;
     $this->indent = 0;
     $level = (int) $input->getOption('level') ? (int) $input->getOption('level') : 0;
     $start = $this->getStartPage($input);
     $this->listPages($pages->get($start), $level);
 }
コード例 #6
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $users = $this->getUsers($input);
     $output->writeln("Users: " . $users->getTotal());
     if ($users->getTotal() > 0) {
         $content = $this->getUserData($users);
         $headers = array('Username', 'E-Mail', 'Superuser', 'Roles');
         $tables = array(WsTables::buildTable($output, $content, $headers));
         WsTables::renderTables($output, $tables);
     }
 }
コード例 #7
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $name = $input->getArgument('name');
     if (!wire("pages")->get("name={$name}") instanceof \NullPage) {
         $output->writeln("<error>Role '{$name}' already exists!</error>");
         exit(1);
     }
     $user = $this->createRole($name, $this->roleContainer);
     $user->save();
     $output->writeln("<info>Role '{$name}' created successfully!</info>");
 }
コード例 #8
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $names = explode(',', preg_replace('/\\s+/', '', $input->getArgument('name')));
     foreach ($names as $name) {
         if (!\ProcessWire\wire('roles')->get($name) instanceof \ProcessWire\NullPage) {
             $output->writeln("<error>Role '{$name}' already exists!</error>");
             exit(1);
         }
         \ProcessWire\wire('roles')->add($name);
         $output->writeln("<info>Role '{$name}' created successfully!</info>");
     }
 }
コード例 #9
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $users = explode(',', $input->getArgument('name'));
     foreach ($users as $name) {
         if (wire('users')->get($name) instanceof \NullPage) {
             $output->writeln("<error>User '{$name}' doesn't exists!</error>");
         } else {
             $user = wire('users')->get($name);
             wire('users')->delete($user);
             $output->writeln("<info>User '{$name}' deleted successfully!</info>");
         }
     }
 }
コード例 #10
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $name = $input->getArgument('name');
     $roles = explode(",", $input->getOption('roles'));
     $pass = $input->getOption('password');
     if (wire("pages")->get("name={$name}") instanceof \NullPage) {
         $output->writeln("<error>User '{$name}' doesn't exists!</error>");
         exit(1);
     }
     $user = $this->updateUser($input, $name, $pass);
     $user->save();
     if ($input->getOption('roles')) {
         $this->attachRolesToUser($name, $roles, $output, true);
     }
     $output->writeln("<info>User '{$name}' updated successfully!</info>");
 }
コード例 #11
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $pages = \ProcessWire\wire('pages');
     $config = \ProcessWire\wire('config');
     $trashed = "parent_id={$config->trashPageID},limit={$this->maxItems},";
     $trashed .= "status<" . Page::statusMax . ",include=all";
     $trashPages = $pages->find($trashed);
     if ($trashPages->getTotal() > 0) {
         $output->writeln("<question>{$trashPages->getTotal()} pages were found.</question>\n");
         foreach ($trashPages as $t) {
             $pages->delete($t, true);
         }
         $output->writeln("<info>The trash was successfully cleared.</info>");
     } else {
         $output->writeln("<info>The trash is already empty.</info>");
     }
 }
コード例 #12
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $pages = wire('pages');
     foreach (explode(',', $input->getArgument('selector')) as $selector) {
         $select = is_numeric($selector) ? (int) $selector : "/{$selector}/";
         $trashPage = $pages->get($select);
         if ($trashPage instanceof \NullPage) {
             $output->writeln("<error>Page `{$selector}` doesn't exist.</error>");
         } else {
             $delete = $input->getOption('rm') === true ? true : false;
             if ($delete === true) {
                 $pages->delete($pages->get($select), true);
                 $output->writeln("<info>Page `{$selector}` was successfully deleted.</info>");
             } else {
                 $pages->trash($pages->get($select), true);
                 $output->writeln("<info>Page `{$selector}` has been successfully moved to the trash.</info>");
             }
         }
     }
 }
コード例 #13
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $name = $input->getArgument('name');
     $roles = explode(",", $input->getOption('roles'));
     $pass = $input->getOption('password');
     if (!wire("pages")->get("name={$name}") instanceof \NullPage) {
         $output->writeln("<error>User '{$name}' already exists!</error>");
         exit(1);
     }
     $user = $this->createUser($input, $name, $this->userContainer, $pass);
     $user->save();
     if ($input->getOption('roles')) {
         $this->attachRolesToUser($name, $roles, $output);
     }
     if (!empty($pass)) {
         $output->writeln("<info>User '{$name}' created successfully!</info>");
     } else {
         $output->writeln("<info>User '{$name}' created successfully! Please do not forget to set a password.</info>");
     }
 }
コード例 #14
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     if ($role = $input->getOption('role')) {
         $users = \ProcessWire\wire('users')->find("roles={$role}");
         foreach ($users as $user) {
             \ProcessWire\wire('users')->delete($user);
         }
         $output->writeln("<info>Deleted {$users->count()} users successfully!</info>");
     } else {
         $users = explode(',', $input->getArgument('name'));
         foreach ($users as $name) {
             if (\ProcessWire\wire('users')->get($name) instanceof \ProcessWire\NullPage) {
                 $output->writeln("<error>User '{$name}' doesn't exists!</error>");
             } else {
                 $user = \ProcessWire\wire('users')->get($name);
                 \ProcessWire\wire('users')->delete($user);
                 $output->writeln("<info>User '{$name}' deleted successfully!</info>");
             }
         }
     }
 }
コード例 #15
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @return int|null|void
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::bootstrapProcessWire($output);
     $names = explode(',', $input->getArgument('name'));
     $pages = wire('pages');
     $template = $this->getTemplate($input, $output);
     $parent = $this->getParent($input, $output);
     foreach ($names as $name) {
         $sanitizedName = wire('sanitizer')->pageName($name);
         if (!wire('pages')->get($parent . $sanitizedName . '/') instanceof \NullPage) {
             $output->writeln("<error>The page name  '{$name}' is already taken.</error>");
             continue;
         }
         $p = new \Page();
         $p->template = $template;
         $p->parent = wire('pages')->get($parent);
         $p->name = $sanitizedName;
         // give it a name used in the url for the page
         $p->title = $input->getOption('title') ? $input->getOption('title') : $name;
         $p->save();
     }
 }