function display($tpl = null) { FCP_Admin::make_title('COM_FLEXICONTACT_CONFIG_FIELDS_NAME', $this->config_data, $this->config_count); JToolBarHelper::apply(); JToolBarHelper::save(); JToolBarHelper::cancel(); // make the Javascript that hides and enables the fcp_divs for the current field type // it is called by the 'domready' function and the 'onchange' function of the field type list selector $js = self::javascript(); $document = JFactory::getDocument(); $document->addScriptDeclaration($js); $dom_ready = "\nwindow.addEvent('domready', function() {fcp_show_fields(" . $this->field->field_type . ");});\n"; $document->addScriptDeclaration($dom_ready); // make the field type list $field_types = FCP_Admin::make_field_type_list(); $field_type_list = FCP_Common::make_list('field_type', $this->field->field_type, $field_types, 0, 'class="field_type" onchange="fcp_show_fields(this.value)"'); // make the validation type list require_once LAFC_HELPER_PATH . '/date_pickers.php'; $validation_types = FCP_date_picker::validation_type_list(); $validation_type_list = FCP_Common::make_list('validation_type', $this->field->validation_type, $validation_types); // setup the key panel $keypanel = FCP_Admin::make_key_panel($this->config_data->config_data); // draw the form ?> <div style="float:left"> <form action="index.php" method="post" name="adminForm" id="adminForm" > <input type="hidden" name="option" value="<?php echo LAFC_COMPONENT; ?> " /> <input type="hidden" name="controller" value="field" /> <input type="hidden" name="task" value="" /> <input type="hidden" name="view" value="config_field" /> <input type="hidden" name="field_index" value="<?php echo $this->field_index; ?> " /> <?php if (!isset($this->new_flag)) { echo '<input type="hidden" name="new_flag" value="0" />'; } else { echo '<input type="hidden" name="new_flag" value="' . $this->new_flag . '" />'; } echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt"><strong>' . JText::_('COM_FLEXICONTACT_FIELD_TYPE') . '</strong></td>'; echo "\n" . ' <td>' . $field_type_list; echo "\n" . '<img src="' . LAFC_ADMIN_ASSETS_URL . 'blank.gif" id="field_type_img" border="0" style="vertical-align:middle;padding:0 0 3px 15px;" alt="" />'; echo "\n" . "</td></tr>"; echo "\n" . '</table>'; // prompt echo "\n" . '<div class="fcp_div" id="fcp_prompt">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_V_PROMPT') . '</td>'; echo "\n" . ' <td><input type="text" size="40" name="prompt" value="' . $this->field->prompt . '" /></td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // placeholder echo "\n" . '<div class="fcp_div" id="fcp_placeholder">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_V_PLACEHOLDER') . '</td>'; echo "\n" . ' <td><input type="text" size="40" name="placeholder" value="' . $this->field->placeholder . '" /></td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // delimeter echo "\n" . '<div class="fcp_div" id="fcp_delim">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td valign="top" class="prompt">' . JText::_('COM_FLEXICONTACT_DELIMITER') . '</td>'; $info = FCP_Admin::make_info(JText::_('COM_FLEXICONTACT_DELIMITER_DESC')); echo "\n" . ' <td><input type="text" size="2" name="delimiter" value="' . $this->field->delimiter . '" /> ' . $info . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // width echo "\n" . '<div class="fcp_div" id="fcp_width">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_V_WIDTH') . '</td>'; $info = FCP_Admin::make_info(JText::_('COM_FLEXICONTACT_WIDTH_DESC')); echo "\n" . ' <td><input type="text" size="6" name="width" value="' . $this->field->width . '" /> ' . $info . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // height echo "\n" . '<div class="fcp_div" id="fcp_height">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_V_HEIGHT') . '</td>'; echo "\n" . ' <td><input type="text" size="6" name="height" value="' . $this->field->height . '" /></td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // default value (text) echo "\n" . '<div class="fcp_div" id="fcp_default">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_DEFAULT') . '</td>'; echo "\n" . ' <td><input type="text" size="80" name="default_value" value="' . $this->field->default_value . '" /></td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // validation type (date picker only) echo "\n" . '<div class="fcp_div" id="fcp_validation">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_VALIDATION') . '</td>'; echo "\n" . ' <td>' . $validation_type_list . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // default button (radio buttons only) echo "\n" . '<div class="fcp_div" id="fcp_default_button">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_DEFAULT_BUTTON') . '</td>'; echo "\n" . ' <td><input type="text" size="2" name="default_button" value="' . $this->field->default_button . '" /></td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // fixed text echo "\n" . '<div class="fcp_div" id="fcp_fixed_text">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_FIELD_FIXED_TEXT') . '</td>'; echo "\n" . ' <td><input type="text" size="80" name="fixed_text" value="' . $this->field->default_value . '" /></td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // list items echo "\n" . '<div class="fcp_div" id="fcp_list">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td valign="top" class="prompt">' . JText::_('COM_FLEXICONTACT_V_LIST_ITEMS') . '</td>'; echo "\n" . ' <td valign="top"><textarea rows="10" cols="80" name="list_list">' . $this->field->list_list . '</textarea>' . '</td>'; $info = FCP_Admin::make_info(JText::_('COM_FLEXICONTACT_V_LIST_ITEMS_DESC')); echo "\n" . ' <td valign="top">' . $info . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; // echo '<pre>'.htmlentities(print_r(FCP_Common::split_list($this->field->list_list, $this->field->delimiter),true)).'</pre>'; echo "\n" . '</div>'; // radio buttons echo "\n" . '<div class="fcp_div" id="fcp_radio">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td valign="top" class="prompt">' . JText::_('COM_FLEXICONTACT_BUTTON_TEXTS') . '</td>'; echo "\n" . ' <td valign="top"><textarea rows="10" cols="80" name="radio_list">' . $this->field->list_list . '</textarea>' . '</td>'; $info = FCP_Admin::make_info(JText::_('COM_FLEXICONTACT_RADIO_LIST_DESC1') . ' :: ' . JText::_('COM_FLEXICONTACT_RADIO_LIST_DESC2') . JText::_('COM_FLEXICONTACT_RADIO_LIST_DESC3')); echo "\n" . ' <td valign="top">' . $info . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; // echo '<pre>'.htmlentities(print_r(FCP_Common::split_list($this->field->list_list, ';', $this->field->delimiter),true)).'</pre>'; echo "\n" . '</div>'; // multiple checkboxes echo "\n" . '<div class="fcp_div" id="fcp_checkbox_m">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td valign="top" class="prompt">' . JText::_('COM_FLEXICONTACT_CHECKBOX_TEXTS') . '</td>'; echo "\n" . ' <td valign="top"><textarea rows="10" cols="80" name="checkbox_list">' . $this->field->list_list . '</textarea>' . '</td>'; $info = FCP_Admin::make_info(JText::_('COM_FLEXICONTACT_CHECKBOX_LIST_DESC')); echo "\n" . ' <td valign="top">' . $info . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; // echo '<pre>'.htmlentities(print_r(FCP_Common::split_list($this->field->list_list, ';', $this->field->delimiter),true)).'</pre>'; echo "\n" . '</div>'; // recipient list echo "\n" . '<div class="fcp_div" id="fcp_recipient">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td valign="top" class="prompt">' . JText::_('COM_FLEXICONTACT_RECIPIENTS') . '</td>'; echo "\n" . ' <td valign="top"><textarea rows="10" cols="80" name="recipient_list">' . $this->field->list_list . '</textarea>' . '</td>'; $info = FCP_Admin::make_info(JText::_('COM_FLEXICONTACT_RECIPIENTS_DESC') . " :: Name1, email1@x.com;<br>Name2, email2@y.com;<br>Name3, email3@z.com"); echo "\n" . ' <td valign="top">' . $info . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; // echo '<pre>'.htmlentities(print_r(FCP_Common::split_list($this->field->list_list, ';', $this->field->delimiter),true)).'</pre>'; echo "\n" . '</div>'; // mandatory echo "\n" . '<div class="fcp_div" id="fcp_mandatory">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_V_MANDATORY') . '</td>'; echo "\n" . ' <td>' . FCP_Common::make_radio('mandatory', $this->field->mandatory) . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // visible echo "\n" . '<div class="fcp_div" id="fcp_visible">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_VISIBLE') . '</td>'; echo "\n" . ' <td>' . FCP_Common::make_radio('visible', $this->field->visible) . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // advanced validation fields echo "\n" . '<div class="fcp_div" id="fcp_advanced">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_REGEX') . '</td>'; echo "\n" . ' <td><input type="text" size="80" name="regex" value="' . $this->field->regex . '" /></td>'; echo "\n" . "</tr>"; $info = FCP_Admin::make_info(JText::_('COM_FLEXICONTACT_SQL_NUMERIC')); echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_SQL_QUERY') . '</td>'; echo "\n" . ' <td><input type="text" size="80" name="sql" value="' . $this->field->sql . '" /> ' . $info . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // error message echo "\n" . '<div class="fcp_div" id="fcp_errormsg">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_ERRORMSG') . '</td>'; echo "\n" . ' <td><input type="text" size="80" name="error_msg" value="' . $this->field->error_msg . '" /></td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // tooltip echo "\n" . '<div class="fcp_div" id="fcp_tooltip">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_TOOLTIP') . '</td>'; echo "\n" . ' <td><textarea rows="3" cols="80" name="tooltip">' . htmlspecialchars($this->field->tooltip) . '</textarea>'; echo "\n" . ' ' . JText::_('COM_FLEXICONTACT_TOOLTIP_TYPE') . ' '; echo "\n" . FCP_Common::make_radio('tooltip_type', $this->field->tooltip_type) . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; // CSS Class echo "\n" . '<div class="fcp_div" id="fcp_css_class">'; echo "\n" . '<table class="fc_table">'; echo "\n" . "<tr>"; echo "\n" . ' <td class="prompt">' . JText::_('COM_FLEXICONTACT_CSS_CLASS') . '</td>'; echo "\n" . ' <td><input type="text" size="40" name="css_class" value="' . $this->field->css_class . '" /></td>'; $info = FCP_Admin::make_info(JText::_('COM_FLEXICONTACT_CSS_CLASS_INFO')); echo "\n" . ' <td valign="top">' . $info . '</td>'; echo "\n" . "</tr>"; echo "\n" . '</table>'; echo "\n" . '</div>'; echo "\n" . '</form>'; echo "\n" . '</div>'; // float:left // Key Panel echo "\n" . '<div class="fcp_div" id="fcp_keypanel_class" style="float:left">'; echo $keypanel; echo "\n" . '</div>'; }
function display($tpl = null) { $order_text = ucfirst(JText::_('JFIELD_ORDERING_LABEL')); $id_text = ucfirst(JText::_('JGLOBAL_FIELD_ID_LABEL')); $yes_text = ucfirst(JText::_('JYES')); $no_text = ucfirst(JText::_('JNO')); FCP_Admin::make_title('COM_FLEXICONTACT_CONFIG_FIELDS_NAME', $this->config_data, $this->config_count); JToolBarHelper::custom('add_default_fields', 'default.png', 'default_f2.png', 'COM_FLEXICONTACT_RESTORE_DEFAULT_FIELDS', false); $num_fields = count($this->config_data->config_data->all_fields); if ($num_fields < LAFC_MAX_FIELDS) { JToolBarHelper::addNew(); } JToolBarHelper::editList(); JToolBarHelper::deleteList(); JToolBarHelper::cancel(); $field_types = FCP_Admin::make_field_type_list(); require_once LAFC_HELPER_PATH . '/date_pickers.php'; $validation_types = FCP_date_picker::validation_type_list(); $pagination = new JPagination($num_fields, 0, 1000); // we don't actually use pagination but we need this for the ordering tools // Joomla 3.0 took away the Javascript checkAll() function. Joomla.checkAll() first appeared in 1.7 $check_all = 'onclick="Joomla.checkAll(this);"'; // draw the form ?> <form action="index.php" method="post" name="adminForm" id="adminForm" > <input type="hidden" name="option" value="<?php echo LAFC_COMPONENT; ?> " /> <input type="hidden" name="controller" value="field" /> <input type="hidden" name="task" value="" /> <input type="hidden" name="view" value="config_field_list" /> <input type="hidden" name="boxchecked" value="0" /> <?php echo '<table>'; echo '<table class="adminlist table table-striped">'; echo '<thead>'; echo ' <th width="1">' . $id_text . '</th>'; echo ' <th width="1"><input type="checkbox" name="toggle" value="" ' . $check_all . ' /></th>'; echo ' <th width="1"></th>'; echo ' <th width="1"></th>'; echo ' <th width="1" nowrap="nowrap">' . $order_text . ' ' . JHTML::_('grid.order', $this->config_data->config_data->all_fields) . '</th>'; echo ' <th nowrap="nowrap" width="20%">' . JText::_('COM_FLEXICONTACT_V_PROMPT') . '</th>'; echo ' <th nowrap="nowrap" width="10%" colspan="2">' . JText::_('COM_FLEXICONTACT_FIELD_TYPE') . '</th>'; echo ' <th nowrap="nowrap" width="5%" >' . JText::_('COM_FLEXICONTACT_V_MANDATORY') . '</th>'; echo ' <th nowrap="nowrap" width="5%" >' . JText::_('COM_FLEXICONTACT_V_WIDTH') . '</th>'; echo ' <th nowrap="nowrap" width="5%" >' . JText::_('COM_FLEXICONTACT_V_HEIGHT') . '</th>'; echo ' <th nowrap="nowrap">' . JText::_('COM_FLEXICONTACT_DETAILS') . '</th>'; echo ' </tr>'; echo '</thead>'; for ($i = 0; $i < $num_fields; $i++) { $field =& $this->config_data->config_data->all_fields[$i]; $field_type_name = $field_types[$field->field_type]; $checked = JHTML::_('grid.id', $i, $i); if ($field->mandatory == 1) { $mandatory = $yes_text; } else { $mandatory = $no_text; } if ($field->visible == 1) { $visible = $yes_text; } else { $visible = $no_text; } $width = ''; $height = ''; $details = ''; switch ($field->field_type) { case LAFC_FIELD_FROM_ADDRESS: $width = $field->width; break; case LAFC_FIELD_FROM_NAME: case LAFC_FIELD_TEXT: case LAFC_FIELD_PASSWORD: case LAFC_FIELD_TEXT_NUMERIC: case LAFC_FIELD_FIELDSET_START: $width = $field->width; if ($field->default_value != '') { $details = JText::_('COM_FLEXICONTACT_DEFAULT') . ': ' . $field->default_value; } break; case LAFC_FIELD_SUBJECT: $width = $field->width; if ($field->default_value != '') { $details = JText::_('COM_FLEXICONTACT_DEFAULT') . ': ' . $field->default_value . ', ' . JText::_('COM_FLEXICONTACT_VISIBLE') . ': ' . $visible; } else { $details = JText::_('COM_FLEXICONTACT_VISIBLE') . ': ' . $visible; } break; case LAFC_FIELD_TEXTAREA: $width = $field->width; $height = $field->height; break; case LAFC_FIELD_LIST: $list_array = FCP_Common::split_list($field->list_list, $field->delimiter); $field_id = sprintf('field%03d', $i); $list_html = FCP_Common::make_list($field_id, 0, $list_array['LEFT']); $details = $list_html; break; case LAFC_FIELD_FIXED_TEXT: $details = $field->default_value; break; case LAFC_FIELD_ADVANCED: $width = $field->width; $details = $field->regex; if (!empty($field->sql)) { if (!empty($details)) { $details .= '<br />'; } $details .= $field->sql; } if ($field->error_msg != '') { $details .= ' [' . $field->error_msg . ']'; } break; case LAFC_FIELD_RECIPIENT: $list_array = FCP_Common::split_list($field->list_list, ';', $field->delimiter); $field_id = sprintf('field%03d', $i); $list_html = FCP_Common::make_list($field_id, 0, $list_array['LEFT']); $details = $list_html; break; case LAFC_FIELD_RADIO_V: case LAFC_FIELD_RADIO_H: $list_array = FCP_Common::split_list($field->list_list, ';', $field->delimiter); $details = implode(", ", $list_array['RIGHT']); break; case LAFC_FIELD_CHECKBOX_M: $list_array = FCP_Common::split_list($field->list_list, $field->delimiter); $details = implode(", ", $list_array['LEFT']); break; case LAFC_FIELD_DATE: $details = $validation_types[$field->validation_type]; } $image = FCP_Admin::get_icon_image($field->field_type); $link = JRoute::_(LAFC_COMPONENT_LINK . '&controller=field&task=edit&cid[]=' . $i); $field_id = sprintf('%02d', $i + 1); echo "\n<tr>"; echo ' <td>' . JHTML::link($link, $field_id) . '</td>'; echo ' <td align="center">' . $checked . '</td>'; echo ' <td>' . $pagination->orderUpIcon($i, true) . '</td>'; echo ' <td>' . $pagination->orderDownIcon($i, true) . '</td>'; echo ' <td><input type="text" name="order[]" size="5" value="' . ($i + 1) . '" class="text_area" style="text-align: center" /></td>'; echo ' <td nowrap="nowrap">' . JHTML::link($link, $field->prompt) . '</td>'; echo ' <td align="center">' . $image . '</td>'; echo ' <td nowrap="nowrap">' . $field_type_name . '</td>'; echo ' <td align="center">' . $mandatory . '</td>'; echo ' <td align="center">' . $width . '</td>'; echo ' <td align="center">' . $height . '</td>'; echo ' <td align="left">' . $details . '</td>'; echo "\n</tr>"; } echo '</table></form>'; }