Inheritance: extends Prezent\Doctrine\Translatable\Entity\AbstractTranslatable, use trait Ojs\CoreBundle\Entity\GenericEntityTrait
コード例 #1
0
ファイル: OjsController.php プロジェクト: hasantayyar/ojs
 protected function isGrantedForPublisher(Publisher $publisher)
 {
     /** @var User $user */
     $user = $this->getUser();
     if ($user->isAdmin()) {
         return true;
     }
     foreach ($publisher->getPublisherManagers() as $manager) {
         if ($manager->getUser()->getId() == $user->getId()) {
             return true;
         }
     }
     return false;
 }
コード例 #2
0
ファイル: AdminPublisherController.php プロジェクト: ojs/ojs
 /**
  * Creates a new Publisher entity.
  *
  * @param  Request                   $request
  * @return RedirectResponse|Response
  */
 public function createAction(Request $request)
 {
     /** @var $dispatcher EventDispatcherInterface */
     $dispatcher = $this->get('event_dispatcher');
     $entity = new Publisher();
     $entity->setCurrentLocale($request->getDefaultLocale());
     $form = $this->createCreateForm($entity);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $em = $this->getDoctrine()->getManager();
         $em->persist($entity);
         $em->flush();
         $this->successFlashBag('successful.create');
         $event = new AdminEvent(['eventType' => 'create', 'entity' => $entity]);
         $dispatcher->dispatch(AdminEvents::PUBLISHER_CHANGE, $event);
         return $this->redirectToRoute('ojs_admin_publisher_show', ['id' => $entity->getId()]);
     }
     return $this->render('OjsAdminBundle:AdminPublisher:new.html.twig', array('entity' => $entity, 'form' => $form->createView()));
 }
コード例 #3
0
 /**
  * Creates a form to edit a PublisherTypes entity.
  *
  * @param PublisherTheme $entity
  * @param Publisher $publisher
  * @return \Symfony\Component\Form\Form
  */
 private function createEditForm(PublisherTheme $entity, Publisher $publisher)
 {
     $form = $this->createForm(new PublisherThemeType(), $entity, array('action' => $this->generateUrl('ojs_publisher_manager_theme_update', array('publisherId' => $publisher->getId(), 'id' => $entity->getId())), 'method' => 'PUT'));
     $form->remove('publisher');
     $form->add('submit', 'submit', array('label' => 'Update'));
     return $form;
 }
コード例 #4
0
ファイル: SamplesCommand.php プロジェクト: beyzakokcan/ojs
 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', '*****@*****.**', false, false);
     $user = $em->getRepository('OjsUserBundle:User')->findOneBy(['username' => 'sample_author']);
     $announcement = new AdminAnnouncement();
     $announcement->setTitle('We are online!');
     $announcement->setContent('We are now online and accepting submissions!');
     $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('*****@*****.**');
     $publisher->setAddress('First Avenue, Exampletown');
     $publisher->setPhone('+908501234567');
     $publisher->setVerified(1);
     $publisher->setStatus(PublisherStatuses::STATUS_COMPLETE);
     $publisher->setPublisherType($publisherType);
     $em->persist($publisher);
     $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->setPublisher($publisher);
     $journal->setTitle('Introduction to OJS');
     $journal->setSubtitle('How to use OJS');
     $journal->setDescription('A journal about OJS');
     $journal->setTitleAbbr('INTROJS');
     $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);
     $journal->setPublished(1);
     $em->persist($journal);
     $em->flush();
     $this->createDemoFiles();
     $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();
     $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->setVolume(1);
     $issue->setYear(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();
     $author = new Author();
     $author->setCurrentLocale('en');
     $author->setTitle('Dr.');
     $author->setFirstName('John');
     $author->setLastName('Doe');
     $author->setEmail('*****@*****.**');
     $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->setSubjects('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();
     $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();
 }
コード例 #5
0
ファイル: ApplicationController.php プロジェクト: ojs/ojs
 /**
  * @param  Request $request
  * @return RedirectResponse|Response
  */
 public function journalAction(Request $request)
 {
     /** @var $dispatcher EventDispatcherInterface */
     $dispatcher = $this->get('event_dispatcher');
     $em = $this->getDoctrine()->getManager();
     $journalApplicationFiles = $em->getRepository('OjsJournalBundle:JournalApplicationFile')->findBy(['visible' => true, 'locale' => $request->getLocale()]);
     if (!$request->attributes->get('_system_setting')->isJournalApplicationActive()) {
         return $this->render('OjsSiteBundle:Site:not_available.html.twig', ['title' => 'title.journal_application', 'message' => 'message.application_not_available']);
     }
     $application = new Journal();
     $application = $this->setupJournalContacts($application);
     $defaultCountryId = $this->container->getParameter('country_id');
     $defaultCountry = $em->getRepository('BulutYazilimLocationBundle:Country')->find($defaultCountryId);
     $application->setCountry($defaultCountry);
     $application->setCurrentLocale($request->getDefaultLocale());
     foreach ($journalApplicationFiles as $applicationFile) {
         $uploadFileEntity = new JournalApplicationUploadFile();
         $application->addJournalApplicationUploadFile($uploadFileEntity);
     }
     $newPublisher = new Publisher();
     $newPublisher->setCurrentLocale($request->getDefaultLocale());
     $event = new TypeEvent(new JournalApplicationType());
     $dispatcher->dispatch(JournalEvents::INIT_APPLICATION_FORM, $event);
     $form = $this->createForm($event->getType(), $application);
     $publisherForm = $this->createForm(new MinimalPublisherType(), $newPublisher);
     if ($request->isMethod('POST')) {
         $form->handleRequest($request);
         $publisherForm->handleRequest($request);
         $publisherFormIsOk = !$publisherForm->isSubmitted() || $publisherForm->isValid();
         if ($form->isValid() && $form->isSubmitted() && $publisherFormIsOk) {
             if ($publisherForm->isSubmitted()) {
                 $application->setPublisher($newPublisher);
                 $em->persist($newPublisher);
             }
             $application->setStatus(JournalStatuses::STATUS_APPLICATION);
             $application->getCurrentTranslation()->setLocale($application->getMandatoryLang()->getCode());
             /** @var JournalContact $contact */
             if ($application->getJournalContacts()) {
                 $journalDefaultContacts = $this->setupJournalContacts(new Journal());
                 foreach ($application->getJournalContacts() as $contactKey => $contact) {
                     $contact->setContactType($journalDefaultContacts->getJournalContacts()[$contactKey]->getContactType());
                     $contact->setJournal($application);
                     $em->persist($contact);
                 }
             }
             //setup journal application files
             /** @var JournalApplicationUploadFile $submissionFile */
             foreach ($application->getJournalApplicationUploadFiles() as $fileKey => $submissionFile) {
                 if (empty($submissionFile->getFile()) && $journalApplicationFiles[$fileKey]->getRequired()) {
                     $this->errorFlashBag('please.install.required.files');
                     return $this->render('OjsSiteBundle:Application:journal.html.twig', ['publisherForm' => $publisherForm->createView(), 'form' => $form->createView(), 'journalApplicationFiles' => $journalApplicationFiles]);
                 }
                 $submissionFile->setTitle($journalApplicationFiles[$fileKey]->getTitle())->setDetail($journalApplicationFiles[$fileKey]->getDetail())->setLocale($journalApplicationFiles[$fileKey]->getLocale())->setRequired($journalApplicationFiles[$fileKey]->getRequired())->setJournal($application);
                 $em->persist($submissionFile);
             }
             $application->setSlug($application->getTitle());
             $em->persist($application);
             $em->flush();
             $event = new AdminEvent(['entity' => $application]);
             $dispatcher->dispatch(AdminEvents::JOURNAL_APPLICATION_HAPPEN, $event);
             return $this->redirectToRoute('ojs_apply_journal_success');
         }
         $this->errorFlashBag('An error has occured. Please check the form and resubmit.');
     }
     $event = new ResponseEvent('OjsSiteBundle:Application:journal.html.twig', ['form' => $form->createView(), 'publisherForm' => $publisherForm->createView(), 'journalApplicationFiles' => $journalApplicationFiles]);
     $dispatcher->dispatch(AdminEvents::JOURNAL_APPLICATION_RESPONSE, $event);
     return $this->render($event->getTemplate(), $event->getData());
 }
コード例 #6
0
 /**
  * Creates a publisher with given properties.
  * @param  string $name
  * @param  string $url
  * @param  string $locale
  * @return Publisher Created publisher
  */
 private function createPublisher($name, $url, $locale)
 {
     $publisher = new Publisher();
     $publisher->setCurrentLocale(mb_substr($locale, 0, 2, 'UTF-8'))->setName($name)->setEmail('*****@*****.**')->setAddress('-')->setPhone('-')->setUrl($url);
     $this->em->persist($publisher);
     return $publisher;
 }
コード例 #7
0
ファイル: SamplesCommand.php プロジェクト: hasantayyar/ojs
 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', '*****@*****.**', false, false);
     $announcement = new AdminAnnouncement();
     $announcement->setTitle('We are online!');
     $announcement->setContent('We are now online and accepting submissions!');
     $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();
     $slug = $this->getContainer()->getParameter('defaultPublisherSlug');
     $publisher = new Publisher();
     $publisher->setCurrentLocale('en');
     $publisher->setName('OJS');
     $publisher->setSlug($slug);
     $publisher->setVerified(1);
     $publisher->setStatus(1);
     $em->persist($publisher);
     $em->flush();
     $subject1 = new Subject();
     $subject1->setCurrentLocale('en');
     $subject1->setSubject('Computer Science');
     $subject2 = new Subject();
     $subject2->setCurrentLocale('en');
     $subject2->setSubject('Journalism');
     $em->persist($subject1);
     $em->persist($subject2);
     $em->flush();
     $language1 = new Lang();
     $language1->setCurrentLocale('en');
     $language1->setName('English');
     $language1->setCode('en');
     $language1->setRtl(0);
     $language2 = new Lang();
     $language2->setCurrentLocale('tr');
     $language2->setName('Türkçe');
     $language2->setCode('tr');
     $language2->setRtl(0);
     $em->persist($language1);
     $em->persist($language2);
     $em->flush();
     $articleTypes = ['Research', 'Analysis', 'Clinical Review', 'Practice', 'Research Methods and Reporting', 'Christmas Issue', 'Editorials', 'Blogs', 'Case Reports', 'Letters (rapid responses)', 'Obituaries', 'Personal Views', 'Fillers', 'Minerva Pictures', 'Endgames', 'What Your Patient is Thinking'];
     foreach ($articleTypes as $typeName) {
         $type = new ArticleTypes();
         $type->setCurrentLocale('en');
         $type->setName($typeName);
         $em->persist($type);
     }
     $em->flush();
     $contactTypes = ['Journal Contact', 'Primary Contact', 'Technical Contact', 'Author Support', 'Subscription Support', 'Publisher Support', 'Submission Support', 'Advertising', 'Media'];
     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->setPublisher($publisher);
     $journal->setTitle('Introduction to OJS');
     $journal->setSubtitle('How to use OJS');
     $journal->setTitleAbbr('INTROJS');
     $journal->setUrl('http://ojs.io');
     $journal->setSlug('intro');
     $journal->addSubject($subject1);
     $journal->addSubject($subject2);
     $journal->setMandatoryLang($language2);
     $em->persist($journal);
     $em->flush();
     $issue = new Issue();
     $issue->setCurrentLocale('en');
     $issue->setJournal($journal);
     $issue->setTitle('First Issue: Hello OJS!');
     $issue->setNumber(1);
     $issue->setVolume(1);
     $issue->setYear(2015);
     $issue->setSpecial(1);
     $issue->setTags('fisrt, guide, tutorial');
     $issue->setDatePublished(new \DateTime('now'));
     $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.');
     $em->persist($citation1);
     $em->flush();
     $article1 = new Article();
     $article1->setCurrentLocale('en');
     $article1->setJournal($journal);
     $article1->setSection($section);
     $article1->setIssue($issue);
     $article1->setTitle('Getting Started with OJS');
     $article1->setKeywords('ojs, intro, starting');
     $article1->setDoi('10.5281/zenodo.14791');
     $article1->setPubdate(new \DateTime('now'));
     $article1->setIsAnonymous(0);
     $article1->setFirstPage(1);
     $article1->setLastPage(5);
     $article1->setStatus(3);
     $article1->addCitation($citation1);
     $em->persist($article1);
     $em->flush();
 }