addJournalContact() public method

Add journalContact
public addJournalContact ( JournalContact $journalContact ) : Journal
$journalContact JournalContact
return Journal
 public function importContacts($languageCode)
 {
     $mainContact = new JournalContact();
     $contactName = !empty($this->settings[$languageCode]['contactName']) ? $this->settings[$languageCode]['contactName'] : null;
     $contactEmail = !empty($this->settings[$languageCode]['contactEmail']) ? $this->settings[$languageCode]['contactEmail'] : null;
     if ($contactName && $contactEmail) {
         $mainContact->setFullName($contactName);
         $mainContact->setEmail($contactEmail);
         if (!empty($this->settings[$languageCode]['contactPhone'])) {
             $mainContact->setPhone($this->settings[$languageCode]['contactPhone']);
         }
         if (!empty($this->settings[$languageCode]['contactMailingAddress'])) {
             $mainContact->setAddress($this->settings[$languageCode]['contactMailingAddress']);
         }
     }
     $supportContact = new JournalContact();
     $supportName = !empty($this->settings[$languageCode]['supportName']) ? $this->settings[$languageCode]['supportName'] : null;
     $supportEmail = !empty($this->settings[$languageCode]['supportEmail']) ? $this->settings[$languageCode]['supportEmail'] : null;
     if ($supportName && $supportEmail) {
         $supportContact->setFullName($supportName);
         $supportContact->setEmail($supportEmail);
         if (!empty($this->settings[$languageCode]['supportPhone'])) {
             $supportContact->setPhone($this->settings[$languageCode]['supportPhone']);
         }
         if (!empty($this->settings[$languageCode]['mailingAddress'])) {
             $supportContact->setAddress($this->settings[$languageCode]['mailingAddress']);
         }
     }
     $type = $this->em->getRepository('OjsJournalBundle:ContactTypes')->findBy([], null, 1);
     if ($type) {
         $mainContact->setContactType($type[0]);
         $supportContact->setContactType($type[0]);
     } else {
         $newType = new ContactTypes();
         $newType->setCurrentLocale(mb_substr($languageCode, 0, 2, 'UTF-8'));
         $newType->setName('Default');
         $newType->setDescription('Default Type');
         $this->em->persist($newType);
         $mainContact->setContactType($newType);
         $supportContact->setContactType($newType);
     }
     $this->journal->addJournalContact($mainContact);
     $this->journal->addJournalContact($supportContact);
 }
 /**
  * Imports contacts of the given journal.
  * @param Journal $journal The journal whose contacts are going to be imported
  * @param int $journalId Old ID of the journal
  * @throws \Doctrine\DBAL\DBALException
  */
 public function importContacts($journal, $journalId)
 {
     $this->consoleOutput->writeln("Importing journal's contacts...");
     $settingsSql = "SELECT locale, setting_name, setting_value FROM journal_settings WHERE journal_id = :id";
     $settingsStatement = $this->dbalConnection->prepare($settingsSql);
     $settingsStatement->bindValue('id', $journalId);
     $settingsStatement->execute();
     $settings = array();
     $pkpSettings = $settingsStatement->fetchAll();
     foreach ($pkpSettings as $setting) {
         $name = $setting['setting_name'];
         $value = $setting['setting_value'];
         $settings[$name] = $value;
     }
     $contact = new JournalContact();
     $contact->setFullName($settings['contactName']);
     $contact->setEmail($settings['contactEmail']);
     $contact->setPhone($settings['contactPhone']);
     $contact->setAddress($settings['contactMailingAddress']);
     $types = $this->em->getRepository('OjsJournalBundle:ContactTypes')->findAll();
     !empty($types) && $contact->setContactType($types[0]);
     $journal->addJournalContact($contact);
 }
Esempio n. 3
0
 /**
  * @param Journal $journal
  * @return Journal
  */
 private function setupJournalContacts(Journal $journal)
 {
     $contactTypeNames = ['Editor', 'Technical Contact', 'Co-Editor'];
     $em = $this->getDoctrine()->getManager();
     $contactTypes = [];
     foreach ($contactTypeNames as $contactTypeName) {
         $contactTypeTranslation = $em->getRepository('OjsJournalBundle:ContactTypesTranslation')->findOneBy(['name' => $contactTypeName]);
         $this->throw404IfNotFound($contactTypeTranslation, 'Not found ' . $contactTypeName . ' type contact type. please create');
         $contactTypes[] = $contactTypeTranslation->getTranslatable();
     }
     /** @var ContactTypes $contactType */
     foreach ($contactTypes as $contactType) {
         if (!is_null($contactType)) {
             $journalContact = new JournalContact();
             $journalContact->setContactType($contactType);
             $journal->addJournalContact($journalContact);
         }
     }
     return $journal;
 }