예제 #1
0
 public function loadDataFrom($data, $mergeStrategy = 0, $fieldList = null)
 {
     parent::loadDataFrom($data, $mergeStrategy, $fieldList);
     if (!$data instanceof PresentationSpeaker) {
         return;
     }
     $speaker = $data;
     if ($speaker->Member()->ID > 0) {
         // populate from member
         if (empty($speaker->FirstName)) {
             $this->fields->fieldByName('FirstName')->setValue($speaker->Member()->FirstName);
         }
         if (empty($speaker->LastName)) {
             $this->fields->fieldByName('LastName')->setValue($speaker->Member()->Surname);
         }
         if (empty($speaker->Bio)) {
             $this->fields->fieldByName('Bio')->setValue($speaker->Member()->Bio);
         }
         if (empty($speaker->IRCHandle)) {
             $this->fields->fieldByName('IRCHandle')->setValue($speaker->Member()->IRCHandle);
         }
         if (empty($speaker->TwitterName)) {
             $this->fields->fieldByName('TwitterName')->setValue($speaker->Member()->TwitterName);
         }
     }
     $this->fields->fieldByName('Expertise')->setValue(implode(',', $speaker->AreasOfExpertise()->map('ID', 'Expertise')->toArray()));
     $this->fields->fieldByName('Language')->setValue(implode(',', $speaker->Languages()->map('ID', 'Language')->toArray()));
     $country_array = array();
     foreach ($speaker->TravelPreferences() as $pref_country) {
         $country_array[] = $pref_country->Country;
     }
     foreach ($speaker->OtherPresentationLinks() as $key => $presentation) {
         $this->fields->fieldByName('PresentationLink[' . ($key + 1) . ']')->setValue($presentation->LinkUrl);
         $this->fields->fieldByName('PresentationTitle[' . ($key + 1) . ']')->setValue($presentation->Title);
     }
     $role_ids = array();
     foreach ($speaker->OrganizationalRoles() as $role) {
         if ($role->IsDefault) {
             $role_ids[] = $role->ID;
         } else {
             //add other
             $role_ids[] = 0;
             $this->fields->fieldByName('OtherOrganizationalRole')->setValue($role->Role);
         }
     }
     $this->fields->fieldByName('OrganizationalRole')->setValue($role_ids);
     $countries_2_travel = $this->fields->fieldByName('CountriesToTravel');
     if (!is_null($countries_2_travel)) {
         $country_array = array();
         foreach ($speaker->TravelPreferences() as $pref_country) {
             $country_array[] = $pref_country->Country;
         }
         $this->fields->fieldByName('CountriesToTravel')->setValue(implode(',', $country_array));
     }
     return $this;
 }
예제 #2
0
 public function loadDataFrom($data, $mergeStrategy = 0, $fieldList = null)
 {
     parent::loadDataFrom($data, $mergeStrategy, $fieldList);
     if (!$data instanceof PresentationSpeaker) {
         return;
     }
     $speaker = $data;
     if ($speaker->Member()->ID > 0) {
         // populate from member
         if (empty($speaker->FirstName)) {
             $this->fields->fieldByName('FirstName')->setValue($speaker->Member()->FirstName);
         }
         if (empty($speaker->LastName)) {
             $this->fields->fieldByName('LastName')->setValue($speaker->Member()->Surname);
         }
         if (empty($speaker->Bio)) {
             $this->fields->fieldByName('Bio')->setValue($speaker->Member()->Bio);
         }
         if (empty($speaker->IRCHandle)) {
             $this->fields->fieldByName('IRCHandle')->setValue($speaker->Member()->IRCHandle);
         }
         if (empty($speaker->TwitterHandle)) {
             $this->fields->fieldByName('TwitterHandle')->setValue($speaker->Member()->TwitterName);
         }
     }
     foreach ($speaker->AreasOfExpertise() as $key => $expertise) {
         if ($key > 4) {
             break;
         }
         $this->fields->fieldByName('Expertise[' . ($key + 1) . ']')->setValue($expertise->Expertise);
     }
     foreach ($speaker->Languages() as $key => $language) {
         if ($key > 4) {
             break;
         }
         $this->fields->fieldByName('Language[' . ($key + 1) . ']')->setValue($language->Language);
     }
     $country_array = array();
     foreach ($speaker->TravelPreferences() as $pref_country) {
         $country_array[] = $pref_country->Country;
     }
     foreach ($speaker->OtherPresentationLinks() as $key => $presentation) {
         $this->fields->fieldByName('PresentationLink[' . ($key + 1) . ']')->setValue($presentation->LinkUrl);
         $this->fields->fieldByName('PresentationTitle[' . ($key + 1) . ']')->setValue($presentation->Title);
     }
     $countries_2_travel = $this->fields->fieldByName('CountriesToTravel');
     if (!is_null($countries_2_travel)) {
         $country_array = array();
         foreach ($speaker->TravelPreferences() as $pref_country) {
             $country_array[] = $pref_country->Country;
         }
         $this->fields->fieldByName('CountriesToTravel')->setValue(implode(',', $country_array));
     }
     return $this;
 }
 public function loadDataFrom($data, $mergeStrategy = 0, $fieldList = null)
 {
     parent::loadDataFrom($data, $mergeStrategy, $fieldList);
     if ($data && $data instanceof SummitAttendee && $data->ID > 0) {
         // if we have an attendee then show the form on readonly mode ...
         $ticket = $data->Tickets()->first();
         $this->fields->insertAfter($t1 = new TextField('TicketBoughtDate', 'Ticket Bought Date', $ticket->TicketBoughtDate), 'ExternalOrderId');
         $t2 = $this->fields->fieldByName('ExternalOrderId');
         $t2->setValue($ticket->ExternalOrderId);
         $this->fields->insertAfter($t3 = new TextField('TicketType', 'Ticket Type', $ticket->TicketType()->Name), 'TicketBoughtDate');
         $t1->setReadonly(true);
         $t2->setReadonly(true);
         $t3->setReadonly(true);
     }
 }
예제 #4
0
 public function loadDataFrom($data, $mergeStrategy = 0, $fieldList = null)
 {
     parent::loadDataFrom($data, $mergeStrategy, $fieldList);
     if (!$data instanceof Presentation) {
         return;
     }
     $presentation = $data;
     foreach ($presentation->Materials()->filter('ClassName', 'PresentationLink') as $key => $link) {
         if ($key > 4) {
             break;
         }
         $this->fields->fieldByName('PresentationLink[' . ($key + 1) . ']')->setValue($link->Link);
     }
     return $this;
 }
 public function loadDataFrom($data, $mergeStrategy = 0, $fieldList = null)
 {
     parent::loadDataFrom($data, $mergeStrategy, $fieldList);
     if ($data && $data instanceof SummitAttendee && $data->ID > 0) {
         $this->fields->insertAfter($t1 = new TextField('TicketBoughtDate', 'Ticket Bought Date', $data->TicketBoughtDate), 'ExternalOrderId');
         $t2 = $this->fields->fieldByName('ExternalOrderId');
         $this->fields->insertAfter($t3 = new TextField('TicketType', 'Ticket Type', $data->TicketType()->Name), 'TicketBoughtDate');
         $t1->setReadonly(true);
         $t2->setReadonly(true);
         $t3->setReadonly(true);
         $checkbox = $this->getField('SharedContactInfo');
         if (!is_null($checkbox)) {
             $checkbox->setValue(intval($data->SharedContactInfo) === 1);
         }
         $btn = $this->Actions()->first();
         if (!is_null($btn)) {
             $btn->setTitle('Save');
         }
     }
 }
예제 #6
0
 public function PresentationTagsForm()
 {
     $fields = FieldList::create()->tagmanager('Tags', 'Tags');
     $form = new BootstrapForm($this, 'PresentationTagsForm', $fields, FieldList::create(FormAction::create('savePresentationTags', 'Save')));
     if ($data = Session::get("FormInfo.{$form->FormName()}.data")) {
         return $form->loadDataFrom($data);
     }
     return $form->loadDataFrom($this->presentation);
 }
 public function PresentationTagsForm()
 {
     $fields = FieldList::create();
     $tag_field = new TagManagerField('Tags', 'Tags');
     $tag_field->setCategory($this->presentation->Category());
     $fields->add($tag_field);
     $form = new BootstrapForm($this, 'PresentationTagsForm', $fields, FieldList::create(FormAction::create('savePresentationTags', 'Save')));
     if ($data = Session::get("FormInfo.{$form->FormName()}.data")) {
         return $form->loadDataFrom($data);
     }
     return $form->loadDataFrom($this->presentation);
 }