/** * Load the custom fields */ private function loadCustomFields() { // no groups or subscriptions at this point if (empty($this->group)) { return false; } // reserve counter $i = 0; // if no custom fields were set, we fetch the ones from the groups ourselves $this->group['custom_fields'] = BackendMailmotorModel::getCustomFields($this->id); // no custom fields for this group if (empty($this->group['custom_fields'])) { return false; } // loop the custom fields foreach ($this->group['custom_fields'] as $name) { // set value $value = isset($this->record['custom_fields'][$this->id][$name]) ? $this->record['custom_fields'][$this->id][$name] : ''; // store textfield value $this->customFields[$i]['label'] = $name; $this->customFields[$i]['name'] = \SpoonFilter::toCamelCase($name, array('-', '_', ' ')); $this->customFields[$i]['formElements']['txtField'] = $this->frm->addText($this->customFields[$i]['name'], $value); $i++; // unset this field unset($this->customFields[$name]); } // add textfields to form $this->tpl->assign('fields', $this->customFields); }
/** * Returns the custom fields by a given group ID * * @param int $groupId The id of the group. * @return array */ public static function getCustomFields($groupId) { $listId = self::getCampaignMonitorID('list', $groupId); $cmFields = self::getCM()->getCustomFields($listId); if (!empty($cmFields)) { $fields = BackendMailmotorModel::getCustomFields($groupId); foreach ($cmFields as $field) { if (!in_array($field['name'], $fields)) { $fields[] = $field['name']; } } BackendMailmotorModel::updateCustomFields($fields, $groupId); } return (array) $fields; }