protected function interact(InputInterface $input, OutputInterface $output) { // Setting up helpers $dialog = $this->getHelperSet()->get('dialog'); $diatheke = $this->getHelper('diatheke')->get(); $this->config = array(); // Ask for locale $locales = OutputParser::parseModuleList($diatheke->getLocales()); $locale = $dialog->select($output, 'Select a locale:', $locales); $this->config['locale'] = $locales[$locale]; $output->writeln('You choosed: <info>' . $this->config['locale'] . '</info>' . PHP_EOL); // Ask for bible $data = $diatheke->getModules(); $structure = OutputParser::parseModules($data); $bibleTranslations = array_keys($structure['Biblical Texts']); $bibleTranslation = $dialog->select($output, PHP_EOL . 'Select a bible translation:', $bibleTranslations); $this->config['module'] = $bibleTranslations[$bibleTranslation]; $output->writeln('You choosed: <info>' . $this->config['module'] . '</info>' . PHP_EOL); // Ask for search type $searchTypes = Configuration::getSearchType(); $searchType = $dialog->select($output, 'Select search type:', $searchTypes); $this->config['search'] = $searchTypes[$searchType]; $output->writeln('You choosed: <info>' . $this->config['search'] . '</info>' . PHP_EOL); /* // Ask for option filters $optionFilters = Configuration::getOptionFilters(); $optionFilter = $dialog->select( $output, 'Select option filter:', $optionFilters ); $this->config['filter'] = $optionFilters[$optionFilter]; $output->writeln('You choosed: <info>'.$this->config['filter'].'</info>'); */ // Ask for output format $outputFormats = Configuration::getOutputFormats(); $outputFormat = $dialog->select($output, 'Select output format:' . PHP_EOL . '(<comment>or leave empty if you don\'t know what you\'re doing</comment>)', $outputFormats, array_search(Diatheke::FORMAT_PLAIN, $outputFormats)); $this->config['format'] = $outputFormats[$outputFormat]; $output->writeln('You choosed: <info>' . $this->config['format'] . '</info>' . PHP_EOL); // Ask for output encoding $outputEncodings = Configuration::getOutputEncodings(); $outputEncoding = $dialog->select($output, 'Select output encoding:' . PHP_EOL . '(<comment>or leave empty if you don\'t know what you\'re doing</comment>)', $outputEncodings, array_search(Diatheke::ENCODING_UTF8, $outputEncodings)); $this->config['encoding'] = $outputEncodings[$outputEncoding]; $output->writeln('You choosed: <info>' . $this->config['encoding'] . '</info>' . PHP_EOL); }
protected function execute(InputInterface $input, OutputInterface $output) { $d = $this->getHelper('diatheke')->get(); $r = $input->getOption('raw'); $l = $input->getOption('long'); switch ($input->getArgument('list')) { case 'all': $data = $d->getModules(); if ($r) { $output->write($data, false, OutputInterface::OUTPUT_RAW); } else { $structure = OutputParser::parseModules($data); $this->printStructure($structure, $output); } break; case 'modules': $data = $d->getModuleList(); if ($r) { $output->write($data, false, OutputInterface::OUTPUT_RAW); } else { $structure = OutputParser::parseModuleList($data); $this->printListAsMatrix($structure, $output); } break; case 'bible': case 'bibles': $data = $d->getModules(); $structure = OutputParser::parseModules($data); $output->writeln('<comment>Biblical Texts:</comment>'); $this->printList($structure['Biblical Texts'], $output); break; case 'dictionary': case 'dictionaries': $data = $d->getModules(); $structure = OutputParser::parseModules($data); $output->writeln('<comment>Dictionaries:</comment>'); $this->printList($structure['Dictionaries'], $output); break; case 'commentary': case 'commentaries': $data = $d->getModules(); $structure = OutputParser::parseModules($data); $output->writeln('<comment>Commentaries:</comment>'); $this->printList($structure['Commentaries'], $output); break; case 'book': case 'books': $data = $d->getModules(); $structure = OutputParser::parseModules($data); $output->writeln('<comment>Generic books:</comment>'); $this->printList($structure['Generic books'], $output); break; case 'locale': case 'locales': $data = $d->getLocales(); if ($r) { $output->write($data, false, OutputInterface::OUTPUT_RAW); } else { $structure = OutputParser::parseModuleList($data); $this->printListAsMatrix($structure, $output); } break; } }
public function bibleBook($reference) { $qb = $this->createQueryBuilder(true); $qb->limit(1); $qb->query($reference); $qb->reset('s'); return OutputParser::parsePlainBibleBook($this->execute($qb)); }