Exemplo n.º 1
0
 /**
  * Create an association between a section and a field.
  *
  * @deprecated This function will be removed in a future Symphony release,
  *  Use `SectionManager::createSectionAssociation` instead.
  * @param integer $parent_section_id
  *  The linked section id.
  * @param integer $child_field_id
  *  The field ID of the field that is creating the association
  * @param integer $parent_field_id (optional)
  *  The field ID of the linked field in the linked section
  * @param boolean $show_association (optional)
  *  Whether of not the link should be shown on the entries table of the
  *  linked section. This defaults to true.
  * @return boolean
  *  true if the association was successfully made, false otherwise.
  */
 public function createSectionAssociation($parent_section_id = null, $child_field_id = null, $parent_field_id = null, $show_association = true)
 {
     return SectionManager::createSectionAssociation($parent_section_id, $child_field_id, $parent_field_id, $show_association);
 }
Exemplo n.º 2
0
 public function commit()
 {
     if (!parent::commit()) {
         return false;
     }
     $id = $this->get('id');
     if ($id === false) {
         return false;
     }
     $fields = array();
     $fields['pre_populate_source'] = is_null($this->get('pre_populate_source')) ? null : implode(',', $this->get('pre_populate_source'));
     $fields['validator'] = $fields['validator'] == 'custom' ? null : $this->get('validator');
     if (!FieldManager::saveSettings($id, $fields)) {
         return false;
     }
     SectionManager::removeSectionAssociation($id);
     foreach ($this->get('pre_populate_source') as $field_id) {
         if ($field_id === 'none') {
             continue;
         }
         if (!is_null($field_id) && is_numeric($field_id)) {
             SectionManager::createSectionAssociation(null, $id, (int) $field_id, $this->get('show_association') == 'yes' ? true : false, $this->get('association_ui'), $this->get('association_editor'));
         }
     }
     return true;
 }
Exemplo n.º 3
0
 /**
  *
  * Save field settings into the field's table
  */
 public function commit()
 {
     // if the default implementation works...
     if (!parent::commit()) {
         return false;
     }
     $id = $this->get('id');
     // exit if there is no id
     if ($id == false) {
         return false;
     }
     // we are the child, with multiple parents
     $child_field_id = $id;
     // delete associations, only where we are the child
     self::removeSectionAssociation($child_field_id);
     $sections = $this->getSelectedSectionsArray();
     foreach ($sections as $key => $sectionId) {
         if (empty($sectionId)) {
             continue;
         }
         $parent_section_id = General::intval($sectionId);
         $parent_section = SectionManager::fetch($sectionId);
         $fields = $parent_section->fetchVisibleColumns();
         if (empty($fields)) {
             // no visible field, revert to all
             $fields = $parent_section->fetchFields();
         }
         $parent_field_id = current(array_keys($fields));
         // create association
         SectionManager::createSectionAssociation($parent_section_id, $child_field_id, $parent_field_id, $this->get('show_association') == 'yes');
     }
     // declare an array contains the field's settings
     $settings = array('sections' => $this->get('sections'), 'show_association' => $this->get('show_association'), 'deepness' => $this->get('deepness'), 'elements' => $this->get('elements'), 'mode' => $this->get('mode'), 'min_entries' => $this->get('min_entries'), 'max_entries' => $this->get('max_entries'), 'allow_new' => $this->get('allow_new'), 'allow_edit' => $this->get('allow_edit'), 'allow_link' => $this->get('allow_link'), 'allow_delete' => $this->get('allow_delete'));
     return FieldManager::saveSettings($id, $settings);
 }
 /**
  * Save the settings panel
  *
  * @return bool
  */
 public function commit()
 {
     if (!parent::commit()) {
         return false;
     }
     $id = $this->get('id');
     if ($id === false) {
         return false;
     }
     if ($this->get('related_field_id') != '') {
         $settings['related_field_id'] = $this->get('related_field_id');
     }
     $settings['allow_multiple_selection'] = $this->get('allow_multiple_selection') ? $this->get('allow_multiple_selection') : 'no';
     $settings['show_association'] = $this->get('show_association') == 'yes' ? 'yes' : 'no';
     $settings['limit'] = max(1, (int) $this->get('limit'));
     $settings['related_field_id'] = implode(',', $this->get('related_field_id'));
     $settings['view'] = $this->get('view');
     $settings['show_created'] = $this->get('show_created') == 'yes' ? 1 : 0;
     $settings['enable_create'] = $this->get('enable_create') == 'yes' ? 1 : 0;
     $settings['enable_edit'] = $this->get('enable_edit') == 'yes' ? 1 : 0;
     $settings['enable_delete'] = $this->get('enable_delete') == 'yes' ? 1 : 0;
     FieldManager::saveSettings($id, $settings);
     SectionManager::removeSectionAssociation($id);
     foreach ($this->get('related_field_id') as $field_id) {
         SectionManager::createSectionAssociation(null, $id, $field_id, $this->get('show_association') == 'yes' ? true : false);
     }
     return true;
 }
Exemplo n.º 5
0
 public function commit()
 {
     if (!parent::commit()) {
         return false;
     }
     $id = $this->get('id');
     if ($id === false) {
         return false;
     }
     $fields = array();
     if ($this->get('static_options') != '') {
         $fields['static_options'] = $this->get('static_options');
     }
     if ($this->get('dynamic_options') != '') {
         $fields['dynamic_options'] = $this->get('dynamic_options');
     }
     $fields['allow_multiple_selection'] = $this->get('allow_multiple_selection') ? $this->get('allow_multiple_selection') : 'no';
     $fields['sort_options'] = $this->get('sort_options') == 'yes' ? 'yes' : 'no';
     if (!FieldManager::saveSettings($id, $fields)) {
         return false;
     }
     SectionManager::removeSectionAssociation($id);
     // Dynamic Options isn't an array like in Select Box Link
     $field_id = $this->get('dynamic_options');
     if (!is_null($field_id) && is_numeric($field_id)) {
         SectionManager::createSectionAssociation(null, $id, (int) $field_id, $this->get('show_association') == 'yes' ? true : false, $this->get('association_ui'), $this->get('association_editor'));
     }
     return true;
 }
 public function commit()
 {
     if (!parent::commit()) {
         return false;
     }
     $id = $this->get('id');
     if ($id === false) {
         return false;
     }
     $fields = array();
     $fields['field_id'] = $id;
     if ($this->get('related_field_id') != '') {
         $fields['related_field_id'] = $this->get('related_field_id');
     }
     $fields['related_field_id'] = implode(',', $this->get('related_field_id'));
     $fields['allow_multiple_selection'] = $this->get('allow_multiple_selection') ? $this->get('allow_multiple_selection') : 'no';
     $fields['hide_when_prepopulated'] = $this->get('hide_when_prepopulated') == 'yes' ? 'yes' : 'no';
     $fields['limit'] = max(0, (int) $this->get('limit'));
     if (!FieldManager::saveSettings($id, $fields)) {
         return false;
     }
     SectionManager::removeSectionAssociation($id);
     foreach ($this->get('related_field_id') as $field_id) {
         SectionManager::createSectionAssociation(null, $id, (int) $field_id, $this->get('show_association') == 'yes' ? true : false, $this->get('association_ui'), $this->get('association_editor'));
     }
     return true;
 }
 public function commit()
 {
     if (!Field::commit()) {
         return false;
     }
     $id = $this->get('id');
     if ($id === false) {
         return false;
     }
     // set field instance values
     $fields = array();
     $fields['field_id'] = $id;
     if (!is_null($this->get('related_field_id'))) {
         $fields['related_field_id'] = implode(',', $this->get('related_field_id'));
     }
     $fields['allow_multiple_selection'] = $this->get('allow_multiple_selection') ? $this->get('allow_multiple_selection') : 'no';
     $fields['show_association'] = $this->get('show_association') == 'yes' ? 'yes' : 'no';
     $fields['limit'] = max(1, (int) $this->get('limit'));
     $fields['field_type'] = $this->get('field_type') ? $this->get('field_type') : 'select';
     // save/replace field instance
     if (!FieldManager::saveSettings($id, $fields)) {
         return false;
     }
     // build associations
     SectionManager::removeSectionAssociation($id);
     foreach ($this->get('related_field_id') as $field_id) {
         SectionManager::createSectionAssociation(NULL, $id, $field_id, $this->get('show_association') == 'yes' ? true : false);
     }
     return true;
 }