Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace DrupalCodeGenerator\Command\Drupal_7;
|
Chris@0
|
4
|
Chris@0
|
5 use DrupalCodeGenerator\Command\BaseGenerator;
|
Chris@0
|
6 use DrupalCodeGenerator\Utils;
|
Chris@0
|
7 use Symfony\Component\Console\Input\InputInterface;
|
Chris@0
|
8 use Symfony\Component\Console\Output\OutputInterface;
|
Chris@0
|
9 use Symfony\Component\Console\Question\Question;
|
Chris@0
|
10
|
Chris@0
|
11 /**
|
Chris@0
|
12 * Implements d7:theme command.
|
Chris@0
|
13 */
|
Chris@0
|
14 class Theme extends BaseGenerator {
|
Chris@0
|
15
|
Chris@0
|
16 protected $name = 'd7:theme';
|
Chris@0
|
17 protected $description = 'Generates Drupal 7 theme';
|
Chris@0
|
18 protected $destination = 'themes';
|
Chris@0
|
19
|
Chris@0
|
20 /**
|
Chris@0
|
21 * {@inheritdoc}
|
Chris@0
|
22 */
|
Chris@0
|
23 protected function interact(InputInterface $input, OutputInterface $output) {
|
Chris@0
|
24 $questions['name'] = new Question('Theme name');
|
Chris@0
|
25 $questions['name']->setValidator([Utils::class, 'validateRequired']);
|
Chris@0
|
26 $questions['machine_name'] = new Question('Theme machine name');
|
Chris@0
|
27 $questions['machine_name']->setValidator([Utils::class, 'validateMachineName']);
|
Chris@0
|
28 $questions['description'] = new Question('Theme description', 'A simple Drupal 7 theme.');
|
Chris@0
|
29 $questions['base_theme'] = new Question('Base theme');
|
Chris@0
|
30
|
Chris@0
|
31 $vars = &$this->collectVars($input, $output, $questions);
|
Chris@0
|
32 $vars['asset_name'] = str_replace('_', '-', $vars['machine_name']);
|
Chris@0
|
33
|
Chris@0
|
34 $this->addFile()
|
Chris@0
|
35 ->path('{machine_name}/{machine_name}.info')
|
Chris@0
|
36 ->template('d7/theme-info.twig');
|
Chris@0
|
37
|
Chris@0
|
38 $this->addFile()
|
Chris@0
|
39 ->path('{machine_name}/template.php')
|
Chris@0
|
40 ->template('d7/template.php.twig');
|
Chris@0
|
41
|
Chris@0
|
42 $this->addFile()
|
Chris@0
|
43 ->path('{machine_name}/js/{asset_name}.js')
|
Chris@0
|
44 ->template('d7/javascript.twig');
|
Chris@0
|
45
|
Chris@0
|
46 $this->addFile()
|
Chris@0
|
47 ->path('{machine_name}/css/{asset_name}.css')
|
Chris@4
|
48 ->template('d7/theme-css.twig');
|
Chris@0
|
49
|
Chris@0
|
50 $this->addDirectory()
|
Chris@0
|
51 ->path('{machine_name}/templates');
|
Chris@0
|
52
|
Chris@0
|
53 $this->addDirectory()
|
Chris@0
|
54 ->path('{machine_name}/images');
|
Chris@0
|
55 }
|
Chris@0
|
56
|
Chris@0
|
57 }
|