public function handle(InstallThemeCommand $command) { $theme = new Theme(); $repository = $this->repositoryFactory->build($command->type, $command->repository); if ($command->private and $this->pusher->hasValidLicenseKey()) { $repository->makePrivate(); } $repository->setBranch($command->branch); $theme->setRepository($repository); $theme->setSubdirectory($command->subdirectory); $command->dryRun ?: $this->upgrader->installTheme($theme); if ($command->subdirectory) { $slug = end(explode('/', $command->subdirectory)); } else { $slug = $repository->getSlug(); } $theme = $this->themes->fromSlug($slug); $theme->setRepository($repository); $theme->setPushToDeploy($command->ptd); $theme->setSubdirectory($command->subdirectory); $this->themes->store($theme); do_action('wppusher_theme_was_installed', new ThemeWasInstalled($theme)); }
public function store(Theme $theme) { global $wpdb; $model = new PackageModel(array('package' => $theme->stylesheet, 'repository' => $theme->repository, 'branch' => $theme->repository->getBranch(), 'status' => 1, 'host' => $theme->repository->code, 'private' => $theme->repository->isPrivate(), 'ptd' => $theme->pushToDeploy, 'subdirectory' => $theme->getSubdirectory())); $table_name = pusherTableName(); $count = $wpdb->get_var("SELECT COUNT(*) FROM {$table_name} WHERE package = '{$model->package}'"); if ($count !== '0') { return $wpdb->update($table_name, array('status' => $model->status, 'branch' => $model->branch, 'subdirectory' => $model->subdirectory), array('package' => $model->package)); } return $wpdb->insert($table_name, array('package' => $model->package, 'repository' => $model->repository, 'branch' => $model->branch, 'type' => 2, 'status' => $model->status, 'host' => $model->host, 'private' => $model->private, 'ptd' => $model->ptd, 'subdirectory' => $model->subdirectory)); }