Ojs\CoreBundle\Command\SamplesCommand::execute PHP Метод

execute() защищенный Метод

protected execute ( Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output )
$input Symfony\Component\Console\Input\InputInterface
$output Symfony\Component\Console\Output\OutputInterface
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('Creating sample data...');
        $em = $this->getContainer()->get('doctrine')->getManager();
        $manipulator = $this->getContainer()->get('fos_user.util.user_manipulator');
        $manipulator->create('sample_author', 'author', '[email protected]', false, false);
        $user = $em->getRepository('OjsUserBundle:User')->findOneBy(['username' => 'sample_author']);
        $announcement = new AdminAnnouncement();
        $announcement->setTitle('We are online!');
        $announcement->setContent('http://weareonline.com/sample');
        $em->persist($announcement);
        $em->flush();
        $post = new AdminPost();
        $post->setCurrentLocale('en');
        $post->setTitle('Welcome to OJS!');
        $post->setSlug('Welcome to OJS!');
        $post->setContent('Hello! We are now online and waiting for your submissions. ' . 'Our readers will be able to follow you and read your work ' . 'right after it gets published!');
        $em->persist($post);
        $em->flush();
        $publisherTypes = ['University', 'Government', 'Association', 'Foundation', 'Hospital', 'Chamber', 'Private'];
        foreach ($publisherTypes as $typeName) {
            $publisherType = new PublisherTypes();
            $publisherType->setCurrentLocale('en');
            $publisherType->setName($typeName);
            $em->persist($publisherType);
        }
        $em->flush();
        $slug = $this->getContainer()->getParameter('defaultPublisherSlug');
        $publisherType = $em->getRepository('OjsJournalBundle:PublisherTypes')->find(1);
        $publisher = new Publisher();
        $publisher->setCurrentLocale('en');
        $publisher->setName('OJS');
        $publisher->setSlug($slug);
        $publisher->setEmail('[email protected]');
        $publisher->setAddress('First Avenue, Exampletown');
        $publisher->setPhone('+908501234567');
        $publisher->setVerified(1);
        $publisher->setStatus(PublisherStatuses::STATUS_COMPLETE);
        $publisher->setPublisherType($publisherType);
        $em->persist($publisher);
        $em->flush();
        $publisher2 = new Publisher();
        $publisher2->setCurrentLocale('en');
        $publisher2->setName('Publisher');
        $publisher2->setSlug('www2');
        $publisher2->setEmail('[email protected]');
        $publisher2->setAddress('Address');
        $publisher2->setPhone('+908501234567');
        $publisher2->setVerified(1);
        $publisher2->setStatus(PublisherStatuses::STATUS_ONHOLD);
        $publisher2->setPublisherType($publisherType);
        $em->persist($publisher2);
        $em->flush();
        $subject1 = new Subject();
        $subject1->setCurrentLocale('en');
        $subject1->setSubject('Computer Science');
        $subject1->setTags('computer, science');
        $subject2 = new Subject();
        $subject2->setCurrentLocale('en');
        $subject2->setSubject('Journalism');
        $subject2->setTags('journalism');
        $em->persist($subject1);
        $em->persist($subject2);
        $em->flush();
        $language1 = new Lang();
        $language1->setCurrentLocale('en');
        $language1->setName('English');
        $language1->setCode('en');
        $language1->setRtl(false);
        $language2 = new Lang();
        $language2->setCurrentLocale('tr');
        $language2->setName('Türkçe');
        $language2->setCode('tr');
        $language2->setRtl(false);
        $em->persist($language1);
        $em->persist($language2);
        $em->flush();
        $articleTypes = [['Case Report', 'Olgu Sunumu'], ['Research papers', 'Araştırma Makalesi'], ['Translation', 'Çeviri'], ['Note', 'Not'], ['Letter', 'Editöre Mektup'], ['Review Articles', 'Derleme'], ['Book review', 'Kitap İncelemesi'], ['Correction', 'Düzeltme'], ['Editorial', 'Editoryal'], ['Short Communication', 'Kısa Bildiri'], ['Meeting abstract', 'Toplantı Özetleri'], ['Conference Paper', 'Konferans Bildirisi'], ['Biography', 'Biyografi'], ['Bibliography', 'Bibliyografi'], ['News', 'Haber'], ['Report', 'Rapor'], ['Legislation Review', 'Yasa İncelemesi'], ['Decision Review', 'Karar İncelemesi'], ['Art and Literature', 'Sanat ve Edebiyat'], ['Other', 'Diğer']];
        foreach ($articleTypes as $typeNames) {
            $type = new ArticleTypes();
            $type->setCurrentLocale('en');
            $type->setName($typeNames[0]);
            $type->setCurrentLocale('tr');
            $type->setName($typeNames[1]);
            $em->persist($type);
        }
        $em->flush();
        $contactTypes = ['Journal Contact', 'Primary Contact', 'Technical Contact', 'Author Support', 'Subscription Support', 'Publisher Support', 'Submission Support', 'Advertising', 'Media', 'Editor', 'Co-Editor'];
        foreach ($contactTypes as $typeName) {
            $type = new ContactTypes();
            $type->setCurrentLocale('en');
            $type->setName($typeName);
            $em->persist($type);
        }
        $em->flush();
        $journal = new Journal();
        $journal->setCurrentLocale('en');
        $journal->setTitle('Introduction to OJS');
        $journal->setSubtitle('How to use OJS');
        $journal->setDescription('A journal about OJS');
        $journal->setTitleAbbr('INTROJS');
        $journal->setCurrentLocale('tr');
        $journal->setTitle('OJS Tanıtım');
        $journal->setPublisher($publisher);
        $journal->setUrl('http://ojs.io');
        $journal->setSlug('intro');
        $journal->addSubject($subject1);
        $journal->addSubject($subject2);
        $journal->addLanguage($language1);
        $journal->addLanguage($language2);
        $journal->setMandatoryLang($language2);
        $journal->setFounded(new \DateTime('now'));
        $journal->setIssn('1234-5679');
        $journal->setEissn('1234-5679');
        $journal->setStatus(JournalStatuses::STATUS_PUBLISHED);
        $em->persist($journal);
        $em->flush();
        $this->createDemoFiles();
        $block = new Block();
        $block->setCurrentLocale('en');
        $block->setTitle('Block');
        $block->setBlockOrder(1);
        $block->setColor('success');
        $block->setJournal($journal);
        $em->persist($block);
        $em->flush();
        $design = new Design();
        $design->setCurrentLocale('en');
        $design->setTitle('Design');
        $design->setEditableContent('html{}');
        $design->setContent('html{}');
        $design->setPublic(false);
        $design->setOwner($journal);
        $em->persist($design);
        $em->flush();
        $journalAnnouncement = new JournalAnnouncement();
        $journalAnnouncement->setCurrentLocale($journal->getMandatoryLang()->getCode());
        $journalAnnouncement->setTitle('Announcement');
        $journalAnnouncement->setContent('Content');
        $journalAnnouncement->setJournal($journal);
        $em->persist($journalAnnouncement);
        $em->flush();
        $contactType = $em->getRepository('OjsJournalBundle:ContactTypes')->find(1);
        $contact = new JournalContact();
        $contact->setFullName('Contact');
        $contact->setAddress('Adress');
        $contact->setPhone('05001001010');
        $contact->setEmail('[email protected]');
        $contact->setContactType($contactType);
        $contact->setJournal($journal);
        $em->persist($contact);
        $em->flush();
        $index = new Index();
        $index->setName('Index');
        $index->setStatus(1);
        $em->persist($index);
        $em->flush();
        $journalIndex = new JournalIndex();
        $journalIndex->setIndex($index);
        $journalIndex->setLink('http://ojs.io');
        $journalIndex->setJournal($journal);
        $em->persist($journalIndex);
        $em->flush();
        $currentLocale = $this->getContainer()->getParameter('locale');
        $journalPage = new JournalPage();
        $journalPage->setCurrentLocale($currentLocale);
        $journalPage->setTitle('Title');
        $journalPage->setSlug('title-page');
        $journalPage->setBody('Content');
        $journalPage->setVisible(true);
        $journalPage->setTags('tag');
        $journalPage->setJournal($journal);
        $em->persist($journalPage);
        $em->flush();
        $journalPost = new JournalPost();
        $journalPost->setCurrentLocale($currentLocale);
        $journalPost->setTitle('Title');
        $journalPost->setSlug('title-post');
        $journalPost->setContent('Content');
        $journalPost->setJournal($journal);
        $em->persist($journalPost);
        $em->flush();
        $journalTheme = new JournalTheme();
        $journalTheme->setTitle('Title');
        $journalTheme->setCss('html{}');
        $journalTheme->setPublic(true);
        $journalTheme->setJournal($journal);
        $em->persist($journalTheme);
        $em->flush();
        $issueFile = new IssueFile();
        $issueFile->setCurrentLocale('en');
        $issueFile->setTitle('Demo File');
        $issueFile->setDescription('A file');
        $issueFile->setFile('issue.txt');
        $issueFile->setLangCode('en');
        $issueFile->setType(0);
        $issueFile->setVersion(0);
        $issueFile->setUpdatedBy($user->getUsername());
        $issueFileHistory = new FileHistory();
        $issueFileHistory->setFileName('issue.txt');
        $issueFileHistory->setOriginalName('issue.txt');
        $issueFileHistory->setType('issuefiles');
        $em->persist($issueFile);
        $em->persist($issueFileHistory);
        $em->flush();
        $journalSubmissionFile = new JournalSubmissionFile();
        $journalSubmissionFile->setTitle('Journal File');
        $journalSubmissionFile->setDetail('File Detail');
        $journalSubmissionFile->setFile('journalSubmissionFile.txt');
        $journalSubmissionFile->setLocale('en');
        $journalSubmissionFile->setRequired(false);
        $journalSubmissionFile->setVisible(true);
        $journalSubmissionFile->setJournal($journal);
        $journalSubmissionFileHistory = new FileHistory();
        $journalSubmissionFileHistory->setFileName('journalSubmissionFile.txt');
        $journalSubmissionFileHistory->setOriginalName('journalSubmissionFile.txt');
        $journalSubmissionFileHistory->setType('submissionfiles');
        $em->persist($journalSubmissionFile);
        $em->persist($journalSubmissionFileHistory);
        $em->flush();
        $journalFile = new JournalFile();
        $journalFile->setName('Journal File');
        $journalFile->setDescription('Description of Journal');
        $journalFile->setTags('journal, file');
        $journalFile->setPath('journalFile.txt');
        $journalFile->setSize('100');
        $journalFile->setJournal($journal);
        $journalFileHistory = new FileHistory();
        $journalFileHistory->setFileName('journalFile.txt');
        $journalFileHistory->setOriginalName('journalFile.txt');
        $journalFileHistory->setType('files');
        $em->persist($journalFile);
        $em->persist($journalFileHistory);
        $em->flush();
        $adminFile = new AdminFile();
        $adminFile->setName('Admin File');
        $adminFile->setDescription('File Description');
        $adminFile->setPath('admin.txt');
        $adminFile->setSize('100');
        $adminFileHistory = new FileHistory();
        $adminFileHistory->setFileName('admin.txt');
        $adminFileHistory->setOriginalName('admin.txt');
        $adminFileHistory->setType('adminfiles');
        $em->persist($adminFile);
        $em->persist($adminFileHistory);
        $em->flush();
        $journalApplicationFile = new JournalApplicationFile();
        $journalApplicationFile->setTitle('Title');
        $journalApplicationFile->setDetail('Detail');
        $journalApplicationFile->setLocale('en');
        $journalApplicationFile->setVisible(true);
        $journalApplicationFile->setRequired(false);
        $journalApplicationFile->setFile('journalApplication.txt');
        $journalApplicationFileHistory = new FileHistory();
        $journalApplicationFileHistory->setFileName('journalApplication.txt');
        $journalApplicationFileHistory->setOriginalName('journalApplication.txt');
        $journalApplicationFileHistory->setType('submissionfiles');
        $em->persist($journalApplicationFile);
        $em->persist($journalApplicationFileHistory);
        $em->flush();
        $issue = new Issue();
        $issue->setCurrentLocale('en');
        $issue->setJournal($journal);
        $issue->setTitle('First Issue: Hello OJS!');
        $issue->setDescription('First issue of the journal');
        $issue->setNumber(1);
        $issue->setPublished(true);
        $issue->setVolume(1);
        $issue->setYear(new \DateTime('01-01-2015'));
        $issue->setSpecial(1);
        $issue->setDatePublished(new \DateTime('now'));
        $issue->setTags('first, guide, tutorial');
        $issue->setDatePublished(new \DateTime('now'));
        $issue->addIssueFile($issueFile);
        $em->persist($issue);
        $em->flush();
        $section = new Section();
        $section->setCurrentLocale('en');
        $section->setJournal($journal);
        $section->setTitle('Tutorials');
        $section->setHideTitle(0);
        $section->setAllowIndex(1);
        $em->persist($section);
        $em->flush();
        $citation1 = new Citation();
        $citation1->setCurrentLocale('en');
        $citation1->setRaw('The Matrix [Motion picture]. (2001). Warner Bros. Pictures.');
        $citation1->setOrderNum(0);
        $em->persist($citation1);
        $em->flush();
        $articleFile = new ArticleFile();
        $articleFile->setCurrentLocale('en');
        $articleFile->setTitle('Demo File');
        $articleFile->setDescription('A file');
        $articleFile->setFile('article.txt');
        $articleFile->setLangCode('en');
        $articleFile->setType(0);
        $articleFile->setVersion(0);
        $articleFile->setUpdatedBy($user->getUsername());
        $articleFileHistory = new FileHistory();
        $articleFileHistory->setFileName('article.txt');
        $articleFileHistory->setOriginalName('article.txt');
        $articleFileHistory->setType('articlefiles');
        $em->persist($articleFile);
        $em->persist($articleFileHistory);
        $em->flush();
        $personTitle = new PersonTitle();
        $personTitle->setCurrentLocale('tr');
        $personTitle->setTitle('Dr.');
        $em->persist($personTitle);
        $em->flush();
        $author = new Author();
        $author->setCurrentLocale('en');
        $author->setTitle($personTitle);
        $author->setFirstName('John');
        $author->setLastName('Doe');
        $author->setEmail('[email protected]');
        $em->persist($author);
        $em->flush();
        $article1 = new Article();
        $article1->setCurrentLocale('en');
        $article1->setJournal($journal);
        $article1->setSection($section);
        $article1->setIssue($issue);
        $article1->setTitle('Getting Started with OJS');
        $article1->setAbstract('A tutorial about using OJS');
        $article1->setKeywords('ojs, intro, starting');
        $article1->setDoi('10.5281/zenodo.14791');
        $article1->setSubmissionDate(new \DateTime('now'));
        $article1->setPubdate(new \DateTime('now'));
        $article1->setAnonymous(0);
        $article1->setFirstPage(1);
        $article1->setLastPage(5);
        $article1->setStatus(ArticleStatuses::STATUS_PUBLISHED);
        $article1->addCitation($citation1);
        $article1->addArticleFile($articleFile);
        $em->persist($article1);
        $em->flush();
        $issue->addSection($section);
        $em->flush();
        $articleAuthor = new ArticleAuthor();
        $articleAuthor->setAuthor($author);
        $articleAuthor->setArticle($article1);
        $articleAuthor->setAuthorOrder(0);
        $em->persist($articleAuthor);
        $em->flush();
        $checklistItems = [['The title page should include necessary information.', "<ul>\n                    <li>The name(s) of the author(s)</li>\n                     <li>A concise and informative title</li>\n                     <li>The affiliation(s) of the author(s)</li>\n                     <li>The e-mail address, telephone number of the corresponding author </li>\n                 </ul>"], ['Manuscript must be approved.', 'All authors must have read and approved the most recent version of the manuscript.'], ['Manuscript must be <i>spell checked</i>.', 'The most recent version of the manuscript must be spell checked.']];
        foreach ($checklistItems as $checklistItem) {
            $label = $checklistItem[0];
            $detail = $checklistItem[1];
            $item = new SubmissionChecklist();
            $item->setLabel($label);
            $item->setDetail($detail);
            $item->setLocale('en');
            $item->setJournal($journal);
            $em->persist($item);
        }
        $em->flush();
        $periods = ['Monthly', 'Bimonthly', 'Quarterly', 'Triquarterly', 'Biannually', 'Annually', 'Spring', 'Summer', 'Fall', 'Winter'];
        foreach ($periods as $period) {
            $journalPeriod = new Period();
            $journalPeriod->setCurrentLocale('en');
            $journalPeriod->setPeriod($period);
            $em->persist($journalPeriod);
        }
        $em->flush();
    }