PHPFusion\QuantumFields::quantum_multilocale_fields PHP Méthode

quantum_multilocale_fields() public méthode

Multiple locale fields input
public quantum_multilocale_fields ( $input_name, $title, $input_value, array $options = [] ) : string
$input_name
$title
$input_value
$options array
Résultat string
    public function quantum_multilocale_fields($input_name, $title, $input_value, array $options = array())
    {
        $locale = fusion_get_locale();
        $html = '';
        $language_opts = fusion_get_enabled_languages();
        $input_value = self::is_serialized($input_value) ? unserialize($input_value) : $input_value;
        $options += array('function' => !empty($options['textarea']) && $options['textarea'] == 1 ? 'form_textarea' : 'form_text', 'required' => !empty($options['required']) && $options['required'] == 1 ? '1' : '0', 'placeholder' => !empty($options['placeholder']) ? $options['placeholder'] : '', 'deactivate' => !empty($options['deactivate']) && $options['deactivate'] == 1 ? '1' : '0', 'width' => !empty($options['width']) ? $options['width'] : '100%', 'class' => !empty($options['class']) ? $options['class'] : '', 'inline' => !empty($options['inline']) ? $options['inline'] : '', 'max_length' => !empty($options['max_length']) ? $options['max_length'] : '200', 'error_text' => !empty($options['error_text']) ? $options['error_text'] : '', 'safemode' => !empty($options['safemode']) && $options['safemode'] == 1 ? '1' : '0', 'icon' => !empty($options['icon']) ? $options['icon'] : '', 'input_id' => !empty($options['input_id']) ? $options['input_id'] : $input_name);
        $required = $options['required'];
        $html .= "<div id='" . $options['input_id'] . "-field' class='form-group m-t-10 " . $options['class'] . " " . ($options['icon'] ? 'has-feedback' : '') . "'>\n";
        $html .= $title ? "<label class='control-label " . ($options['inline'] ? "col-xs-12 col-sm-3 col-md-3 col-lg-3 p-l-0" : '') . "'>{$title} " . ($options['required'] == 1 ? "<span class='required'>*</span>" : '') . "</label>\n" : '';
        $html .= $options['inline'] ? "<div class='col-xs-12 " . ($title ? "col-sm-9 col-md-9 col-lg-9 p-l-15" : "col-sm-12 col-md-12 col-lg-12") . "'>\n" : "<div class='p-t-10 p-b-10'>";
        $main_html = '';
        $sub_html = '';
        foreach ($language_opts as $lang => $langNames) {
            $options['field_title'] = $title . " (" . $langNames . ")";
            $options['input_id'] = $input_name . "-" . $lang;
            if ($lang == LANGUAGE) {
                $options['required'] = $required;
                $options['prepend_value'] = $langNames;
                // Fix this
                $main_html .= $options['function']($input_name . "[{$lang}]", "", isset($input_value[$lang]) ? $input_value[$lang] : $input_value, $options);
            } else {
                $options['required'] = 0;
                $options['prepend_value'] = $langNames;
                $sub_html .= $options['function']($input_name . "[{$lang}]", "", isset($input_value[$lang]) ? $input_value[$lang] : '', $options);
            }
        }
        $html .= $main_html . $sub_html;
        if (count($language_opts) > 1) {
            $html .= "<div class='dropdown'>\n";
            $html .= "<button id='lang_dropdown' data-toggle='dropdown' class='dropdown-toggle btn btn-sm btn-default' type='button'>" . $locale['add_language'] . " <span class='caret'></span></button>\n";
            $html .= "<ul class='dropdown-menu'>\n";
            foreach ($language_opts as $Lang => $LangName) {
                if ($Lang !== LANGUAGE) {
                    $html .= "<li><a data-add='{$Lang}' data-input='{$input_name}' data-locale='{$LangName}' class='pointer data-add'><i class='fa fa-plus-circle fa-fw'></i> {$LangName}</a></li>\n";
                    if ($Lang !== LANGUAGE) {
                        add_to_jquery("\$('#" . $input_name . "-" . $Lang . "-field').hide();");
                    }
                }
            }
            $html .= "</ul>\n";
            $html .= "</div>\n";
            if (!defined('QUANTUM_MULTILOCALE_FIELDS')) {
                define('QUANTUM_MULTILOCALE_FIELDS', true);
                add_to_jquery("\n                \$('.data-add').bind('click', function(e) {\n                    var lang = \$(this).data('add');\n                    var langNames = \$(this).data('locale');\n                    var inputName = \$(this).data('input');\n                    var dom = \$('#'+ inputName +'-' + lang + '-field');\n                    if ( dom.is(':visible') ) {\n                        dom.hide();\n                        \$(this).html('<i class=\"fa fa-plus-circle fa-fw\"></i>'+langNames);\n                    } else {\n                        dom.show();\n                        \$(this).html('<i class=\"fa fa-minus-circle fa-fw\"></i>'+langNames);\n                    }\n                    e.stopPropagation();\n                });\n                ");
            }
        }
        $html .= "</div>\n";
        $html .= "</div>\n";
        return $html;
    }

Usage Example

Exemple #1
0
 /**
  * Displays forum mood form
  */
 private function displayMoodForm()
 {
     $locale = fusion_get_locale('', FORUM_ADMIN_LOCALE);
     fusion_confirm_exit();
     $this->post_Mood();
     $quantum = new QuantumFields();
     $groups = fusion_get_groups();
     unset($groups[0]);
     if (!empty($_GET['action'])) {
         $validMoodID = isset($_GET['mood_id']) && isnum($_GET['mood_id']) && !empty(dbcount('(mood_id)', DB_FORUM_MOODS, "mood_id=" . $_GET['mood_id'])) ? TRUE : FALSE;
         switch ($_GET['action']) {
             case 'edit':
                 if ($validMoodID) {
                     $query = "SELECT * FROM " . DB_FORUM_MOODS . " WHERE mood_id='" . intval($_GET['mood_id']) . "'";
                     $result = dbquery($query);
                     if (dbrows($result) > 0) {
                         $this->data = dbarray($result);
                     } else {
                         redirect(clean_request('', array('ref', 'mood_id'), FALSE));
                     }
                 } else {
                     redirect(clean_request('', array('ref', 'mood_id'), FALSE));
                 }
                 break;
             case 'delete':
                 if ($validMoodID) {
                     addNotice('success', $locale['forum_notice_014']);
                     dbquery("DELETE FROM " . DB_FORUM_MOODS . " WHERE mood_id='" . intval($_GET['mood_id']) . "'");
                 } else {
                     redirect(clean_request('', array('ref', 'mood_id'), FALSE));
                 }
                 break;
             default:
                 redirect(clean_request('', array('ref', 'mood_id'), FALSE));
         }
     }
     echo openform("mood_form", "POST", FUSION_REQUEST, array('class' => 'm-t-20 m-b-20')) . form_hidden('mood_id', '', $this->data['mood_id']) . $quantum->quantum_multilocale_fields('mood_name', $locale['forum_094'], $this->data['mood_name'], array('required' => TRUE, 'inline' => TRUE, 'placeholder' => $locale['forum_096'])) . $quantum->quantum_multilocale_fields('mood_description', $locale['forum_095'], $this->data['mood_description'], array('required' => TRUE, 'inline' => TRUE, 'placeholder' => $locale['forum_097'], 'ext_tip' => $locale['forum_098'])) . form_text('mood_icon', $locale['forum_099'], $this->data['mood_icon'], array('inline' => TRUE, 'width' => '350px')) . form_checkbox('mood_status', $locale['forum_100'], $this->data['mood_status'], array('options' => array($locale['forum_101'], $locale['forum_102']), 'inline' => TRUE, 'type' => 'radio')) . form_checkbox('mood_notify', $locale['forum_103'], $this->data['mood_notify'], array('options' => $groups, 'inline' => TRUE, 'type' => 'radio')) . form_checkbox('mood_access', $locale['forum_104'], $this->data['mood_access'], array('options' => $groups, 'inline' => TRUE, 'type' => 'radio')) . form_button('save_mood', !empty($this->data['mood_id']) ? $locale['forum_106'] : $locale['forum_105'], $locale['save_changes'], array('class' => 'btn-primary m-r-10')) . form_button('cancel_mood', $locale['cancel'], $locale['cancel']) . closeform();
 }