Пример #1
0
    public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
    {
        if (self::$type != $field->type) {
            return;
        }
        self::$path = parent::g_getPath(self::$type . '/');
        parent::g_onCCK_FieldPrepareForm($field, $config);
        // Init
        if (count($inherit)) {
            $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
            $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
        } else {
            $id = $field->name;
            $name = $field->name;
        }
        $value = $value != '' ? $value : $field->defaultvalue;
        $value = $value != ' ' ? $value : '';
        // Validate
        $validate = '';
        if ($config['doValidation'] > 1) {
            plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
            $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
        }
        // Prepare
        $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
        $xml = '
					<form>
						<field
							type="' . self::$type2 . '"
							name="' . $name . '"
							id="' . $id . '"
							label="' . htmlspecialchars($field->label) . '"
							class="' . $class . '"
						>
						<option value="">JOPTION_USE_DEFAULT</option>
					</field>
					</form>
				';
        $form = JForm::getInstance($id, $xml);
        $form = $form->getInput($name, '', $value);
        // Set
        if (!$field->variation) {
            $field->form = $form;
            if ($field->script) {
                parent::g_addScriptDeclaration($field->script);
            }
        } else {
            parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<select', '', '', $config);
        }
        $field->value = $value;
        // Return
        if ($return === true) {
            return $field;
        }
    }
Пример #2
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     $value = htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         if ($config['pk']) {
             // hardfix for now
             $field->required = '';
         } else {
             plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
             parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config, array('minSize' => true));
             $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
         }
     }
     // Prepare
     $class = 'inputbox password' . $validate . ($field->css ? ' ' . $field->css : '');
     $maxlen = $field->maxlength > 0 ? ' maxlength="' . $field->maxlength . '"' : '';
     $attr = 'class="' . $class . '" size="' . $field->size . '" autocomplete="off"' . $maxlen . ($field->attributes ? ' ' . $field->attributes : '');
     $form = '<input type="password" id="' . $id . '" name="' . $name . '" value="' . $value . '" ' . $attr . ' />';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #3
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     if (trim($field->selectlabel)) {
         if ($config['doTranslation']) {
             $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
         }
     }
     $options2 = JCckDev::fromJSON($field->options2);
     if (isset($options2['prepareform']) && $options2['prepareform'] != '') {
         $form = self::_eval($options2['prepareform'], 'form', $field, $value, $name, $id, $config);
     } else {
         $form = '';
     }
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #4
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $options2 = JCckDev::fromJSON($field->options2);
     $opts = self::_getOptionsList($options2, $field, $config);
     $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
     if ($value != '') {
         $class .= ' has-value';
     }
     $attr = 'class="' . $class . '"' . ($field->attributes ? ' ' . $field->attributes : '');
     $form = count($opts) ? JHtml::_('select.genericlist', $opts, $name, $attr, 'value', 'text', $value, $id) : '';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<select', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #5
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $field->defaultvalue;
     // Prepare
     $value = JCckDevHelper::replaceLive($value);
     if ($field->bool8) {
         $field->bool8 = $config['doTranslation'];
     }
     if ($field->bool8) {
         $value = trim(preg_replace('/[^A-Za-z0-9_ ]/', '', strip_tags($value)));
         if ($value) {
             $value = JText::_('COM_CCK_' . str_replace(' ', '_', $value));
         }
     }
     $form = htmlspecialchars_decode($value);
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #6
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $field->bool2 ? self::_p2nl($value) : self::_br2nl($value) : $field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config, array('minSize' => true, 'maxSize' => true));
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $class = 'inputbox textarea' . $validate . ($field->css ? ' ' . $field->css : '');
     $cols = $field->cols ? $field->cols : 25;
     $rows = $field->rows ? $field->rows : 3;
     $attr = 'class="' . $class . '"' . ($field->attributes ? ' ' . $field->attributes : '');
     $form = '<textarea id="' . $id . '" name="' . $name . '" cols="' . $cols . '" rows="' . $rows . '" ' . $attr . '>' . $value . '</textarea>';
     // Set
     if (!$field->variation) {
         $field->form = $form;
     } else {
         $hidden = '<textarea class="inputbox" style="display: none;" id="' . $id . '" name="' . $name . '" />' . $value . '</textarea>';
         parent::g_getDisplayVariation($field, $field->variation, $value, self::_bn2br(self::_bn2clear($value)), $form, $id, $name, '<textarea', $hidden, '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #7
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $value = htmlspecialchars($value, ENT_QUOTES);
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $class = 'inputbox text' . $validate . ($field->css ? ' ' . $field->css : '');
     $attr = 'class="' . $class . '" size="' . $field->size . '" maxlenght="7"' . ($field->attributes ? ' ' . $field->attributes : '');
     $form = '<input class="' . $class . '" type="text" id="' . $id . '" name="' . $name . '" value="' . $value . '" ' . $attr . ' />';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         self::_addScripts($id, array(), $config);
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #8
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $value = htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
     // Validate
     $validate = '';
     // Prepare
     $class = 'inputbox hidden' . $validate . ($field->css ? ' ' . $field->css : '');
     $form = '<input class="' . $class . '" type="hidden" id="' . $id . '" name="' . $name . '" value="' . $value . '" />';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #9
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $field->bool2 ? self::_p2nl($value) : self::_br2nl($value) : $field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config, array('minSize' => true, 'maxSize' => true));
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $class = 'inputbox textarea' . $validate . ($field->css ? ' ' . $field->css : '');
     $cols = $field->cols ? $field->cols : 25;
     $rows = $field->rows ? $field->rows : 3;
     $attr = 'class="' . $class . '"';
     if ($field->attributes != '') {
         if (strpos($field->attributes, 'J(') !== false) {
             $matches = '';
             $search = '#J\\((.*)\\)#U';
             preg_match_all($search, $field->attributes, $matches);
             if (count($matches[1])) {
                 foreach ($matches[1] as $text) {
                     $field->attributes = str_replace('J(' . $text . ')', JText::_('COM_CCK_' . str_replace(' ', '_', trim($text))), $field->attributes);
                 }
             }
         }
         $attr .= ' ' . $field->attributes;
     }
     $form = '<textarea id="' . $id . '" name="' . $name . '" cols="' . $cols . '" rows="' . $rows . '" ' . $attr . '>' . $value . '</textarea>';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         $hidden = '<textarea class="inputbox" style="display: none;" id="_' . $id . '" name="' . $name . '" />' . $value . '</textarea>';
         parent::g_getDisplayVariation($field, $field->variation, $value, self::_bn2br(self::_bn2clear($value)), $form, $id, $name, '<textarea', $hidden, '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #10
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     $value = JCckDev::fromJSON($value);
     $value['text'] = htmlspecialchars(@$value['text'], ENT_QUOTES);
     $preview = '';
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config, array('minSize' => true));
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $class = 'inputbox text' . $validate . ($field->css ? ' ' . $field->css : '');
     $class2 = 'inputbox text';
     $maxlen = $field->maxlength > 0 ? ' maxlength="' . $field->maxlength . '"' : '';
     $attr = 'class="' . $class . '" size="' . $field->size . '"' . $maxlen . ($field->attributes ? ' ' . $field->attributes : '');
     $attr2 = 'class="' . $class2 . '" size="' . $field->size . '"' . $maxlen;
     $options2 = JCckDev::fromJSON($field->options2);
     if ($config['doTranslation']) {
         $link_label = trim(@$options2['link_label']) ? JText::_('COM_CCK_' . str_replace(' ', '_', trim(@$options2['link_label']))) : '';
         $text_label = trim(@$options2['text_label']) ? JText::_('COM_CCK_' . str_replace(' ', '_', trim(@$options2['text_label']))) : '';
     } else {
         $link_label = @$options2['link_label'] != '' ? trim($options2['link_label']) : '';
         $text_label = @$options2['text_label'] != '' ? $options2['text_label'] : '';
     }
     if (strpos($name, '[]') !== false) {
         //FieldX
         $nameH = substr($name, 0, -2);
         $nameLink = $name;
         $nameText = $nameH . '_text[]';
         $nameClass = $nameH . '_class[]';
         $nameTarget = $nameH . '_target[]';
     } elseif ($name[strlen($name) - 1] == ']') {
         //GroupX
         $nameH = substr($name, 0, -1);
         $nameLink = $name;
         $nameText = $nameH . '_text]';
         $nameClass = $nameH . '_class]';
         $nameTarget = $nameH . '_target]';
     } else {
         //Default
         $nameH = $name;
         $nameLink = $name;
         $nameText = $nameH . '_text';
         $nameClass = $nameH . '_class';
         $nameTarget = $nameH . '_target';
     }
     $form = self::_addInput($id, $nameLink, $attr, $link_label, @$value['link'], 'link');
     if ($field->bool2 == 1) {
         $form .= self::_addInput($id . '_text', $nameText, $attr2, $text_label, @$value['text'], 'text');
     }
     if ($field->bool3 == 1) {
         $form .= self::_addInput($id . '_class', $nameClass, $attr2, JText::_('COM_CCK_CLASS'), @$value['class'], 'class');
     }
     if ($field->bool4 == 1) {
         $form .= self::_addSelect($id . '_target', JText::_('COM_CCK_TARGET'), 'target', 'core_options_target', @$value['target'], array('storage_field' => $nameTarget));
     }
     if ($field->bool5 == 1 && $config['pk'] && @$value['link'] != '') {
         $p_link = @$value['link'];
         $p_text = @$value['text'] ? @$value['text'] : $p_link;
         $p_link = strpos($p_link, 'index.php') === 0 ? $p_link : (strpos($p_link, 'http://') === false && strpos($p_link, 'https://') === false ? 'http://' . $p_link : $p_link);
         $preview = '<a href="' . $p_link . '" class="cck_preview" target="_blank">' . $p_text . '</a>';
         $preview = self::_addPreview($id . '_preview', JText::_('COM_CCK_PREVIEW'), $preview, 'preview');
     }
     // Set
     if (!$field->variation) {
         $field->form = $form . $preview;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #11
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     $value = htmlspecialchars($value);
     // Preview Video
     $options2 = JCckDev::fromJSON($field->options2);
     $preview = isset($options2['video_preview']) ? $options2['video_preview'] : '0';
     $width = isset($options2['video_width']) ? $options2['video_width'] : '300';
     $height = isset($options2['video_height']) ? $options2['video_height'] : '300';
     $video = '';
     if ($preview == 1) {
         $v_int = preg_match('/\\?v=.*/i', $value, $v_value);
         if ($v_int > 0) {
             $v_tag = str_replace('?v=', '', $v_value[0]);
         } else {
             $v_tag = $value;
         }
         if (isset($v_tag) && $v_tag != '') {
             if ($field->bool2 == 0) {
                 $video .= '<iframe width="' . $width . '" height="' . $height . '" ';
                 $video .= 'frameborder="0" allowfullscreen src="';
                 $video .= 'http://www.youtube.com/embed/' . $v_tag;
                 $video .= '" ></iframe>';
             } else {
                 $video .= '<object width="' . $width . '" height="' . $height . '">';
                 $video .= '<param value="' . $value . '" name="movie"><param value="transparent" name="wmode">';
                 $video .= '<embed width="' . $width . '" height="' . $height . '" wmode="transparent" type="application/x-shockwave-flash" src="';
                 $video .= 'http://www.youtube.com/v/' . $v_tag;
                 $video .= '"></object>';
             }
             $video .= '<div class="clear"></div>';
         }
     }
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config, array('minSize' => true));
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $class = 'inputbox text' . $validate . ($field->css ? ' ' . $field->css : '');
     $maxlen = $field->maxlength > 0 ? ' maxlength="' . $field->maxlength . '"' : '';
     $attr = 'class="' . $class . '" size="' . $field->size . '"' . $maxlen . ($field->attributes ? ' ' . $field->attributes : '');
     $form = $video . '<input type="text" id="' . $id . '" name="' . $name . '" value="' . $value . '" ' . $attr . ' />';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #12
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $name = @$field->bool3 ? $name . '[]' : $name;
     $divider = '';
     if ($field->bool3) {
         $divider = $field->divider != '' ? $field->divider : ',';
         if (!is_array($value)) {
             $value = explode($divider, $value);
         }
     } else {
         $field->divider = '';
     }
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     if (parent::g_isStaticVariation($field, $field->variation, true)) {
         $form = '';
         $field->text = '';
         parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
     } else {
         $attr = array('option.attr' => 'data-cck');
         $auto = 1;
         $items = array();
         $opts = array();
         if ($field->location) {
             $attribs = explode('||', $field->location);
             $attrib = count($attribs);
         } else {
             $attribs = array();
             $attrib = 0;
         }
         if (trim($field->selectlabel)) {
             if ($config['doTranslation']) {
                 $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
             }
             if ($attrib) {
                 $attr['attr'] = '';
                 foreach ($attribs as $k => $a) {
                     $attr['attr'] .= ' ' . $a . '=""';
                 }
                 $opts[] = JHtml::_('select.option', '', '- ' . $field->selectlabel . ' -', $attr);
             } else {
                 $opts[] = JHtml::_('select.option', '', '- ' . $field->selectlabel . ' -', 'value', 'text');
             }
             if ($field->required) {
                 $auto++;
             }
         }
         $count2 = JCck::getConfig_Param('development_attr', 6);
         $opt_attr = '';
         $opt_attrs = array();
         $options2 = JCckDev::fromJSON($field->options2);
         $optgroups = false;
         if ($field->bool4 == 1 || $field->bool4 == 3) {
             $results = self::_getStaticOption($field, $field->options, $config, $optgroups);
             $static = count($results);
             if ($field->bool4 == 3) {
                 if ($static > 0) {
                     $current = 0;
                     $half = (int) ($static / 2);
                     $half = $static % 2 ? $half + 1 : $half;
                     for ($current = 0; $current < $half; $current++) {
                         $opts[] = $results[$current];
                     }
                 }
             } else {
                 foreach ($results as $result) {
                     $opts[] = $result;
                 }
             }
         }
         if ($field->bool2 == 0) {
             $opt_table = isset($options2['table']) ? ' FROM ' . $options2['table'] : '';
             $opt_name = isset($options2['name']) ? $options2['name'] : '';
             $opt_value = isset($options2['value']) ? $options2['value'] : '';
             if ($count2) {
                 for ($i = 1; $i <= $count2; $i++) {
                     $opt_attrs[] = isset($options2['attr' . $i]) && $options2['attr' . $i] != '' ? $options2['attr' . $i] : '';
                 }
             }
             $opt_where = @$options2['where'] != '' ? ' WHERE ' . $options2['where'] : '';
             $opt_orderby = @$options2['orderby'] != '' ? ' ORDER BY ' . $options2['orderby'] . ' ' . (@$options2['orderby_direction'] != '' ? $options2['orderby_direction'] : 'ASC') : '';
             $opt_limit = @$options2['limit'] > 0 ? ' LIMIT ' . $options2['limit'] : '';
             // Language Detection
             $count2 = count($opt_attrs);
             $lang_code = '';
             self::_languageDetection($lang_code, $value, $options2);
             $opt_value = str_replace('[lang]', $lang_code, $opt_value);
             $opt_name = str_replace('[lang]', $lang_code, $opt_name);
             $opt_where = str_replace('[lang]', $lang_code, $opt_where);
             $opt_orderby = str_replace('[lang]', $lang_code, $opt_orderby);
             $opt_group = '';
             if ($count2) {
                 foreach ($opt_attrs as $k => $v) {
                     if ($v != '') {
                         $v = str_replace('[lang]', $lang_code, $v) . ' AS attr' . ($k + 1);
                         $opt_attr .= ',' . $v;
                     }
                 }
                 if ($opt_attr == ',') {
                     $opt_attr = '';
                 }
             }
             if ($opt_name && $opt_value && $opt_table) {
                 $query = 'SELECT ' . $opt_name . ',' . $opt_value . $opt_attr . $opt_table . $opt_where . $opt_orderby . $opt_limit;
                 $query = JCckDevHelper::replaceLive($query);
                 if ($config['client'] == '' || $config['client'] == 'dev') {
                     $tables = JCckDatabaseCache::getTableList();
                     $prefix = JFactory::getDbo()->getPrefix();
                     $items = in_array(str_replace('#__', $prefix, $options2['table']), $tables) ? JCckDatabase::loadObjectList($query) : array();
                 } else {
                     $items = JCckDatabase::loadObjectList($query);
                 }
             }
         } else {
             if (@$options2['query'] != '') {
                 // Language Detection
                 $lang_code = '';
                 self::_languageDetection($lang_code, $value, $options2);
                 $query = str_replace('[lang]', $lang_code, $options2['query']);
                 $query = JCckDevHelper::replaceLive($query);
                 if (strpos($query, ' value ') !== false || strpos($query, 'AS value') !== false || strpos($query, ' value,') !== false) {
                     $items = JCckDatabase::loadObjectList($query);
                 } else {
                     $opts2 = JCckDatabase::loadColumn($query);
                     if (count($opts2)) {
                         $opts2 = array_combine(array_values($opts2), $opts2);
                     }
                     $opts = array_merge($opts, $opts2);
                 }
             }
             $opt_name = 'text';
             $opt_value = 'value';
             $opt_group = 'optgroup';
         }
         if (count($items)) {
             if ($opt_group) {
                 $group = '';
                 foreach ($items as $o) {
                     if (isset($o->optgroup) && $o->optgroup != $group) {
                         if ($group) {
                             $opts[] = JHtml::_('select.option', '</OPTGROUP>');
                         }
                         $opts[] = JHtml::_('select.option', '<OPTGROUP>', $o->optgroup);
                         $group = $o->optgroup;
                     }
                     if ($attrib) {
                         $attr['attr'] = '';
                         foreach ($attribs as $k => $a) {
                             $ka = 'attr' . ($k + 1);
                             if (isset($o->{$ka})) {
                                 $va = $o->{$ka};
                             } else {
                                 $ka = isset($options2['attr' . ($k + 1)]) ? $options2['attr' . ($k + 1)] : '';
                                 $va = $ka != '' && isset($o->{$ka}) ? $o->{$ka} : '';
                             }
                             $attr['attr'] .= ' ' . $a . '="' . $va . '"';
                         }
                         $opts[] = JHtml::_('select.option', $o->value, $o->text, $attr);
                     } else {
                         $opts[] = JHtml::_('select.option', $o->value, $o->text, 'value', 'text');
                     }
                 }
                 if ($group) {
                     $opts[] = JHtml::_('select.option', '</OPTGROUP>');
                 }
             } else {
                 if ($attrib) {
                     foreach ($items as $o) {
                         $attr['attr'] = '';
                         foreach ($attribs as $k => $a) {
                             $ka = 'attr' . ($k + 1);
                             if (isset($o->{$ka})) {
                                 $va = $o->{$ka};
                             } else {
                                 $ka = isset($options2['attr' . ($k + 1)]) ? $options2['attr' . ($k + 1)] : '';
                                 $va = $ka != '' && isset($o->{$ka}) ? $o->{$ka} : '';
                             }
                             $attr['attr'] .= ' ' . $a . '="' . $va . '"';
                         }
                         $opts[] = JHtml::_('select.option', $o->{$opt_value}, $o->{$opt_name}, $attr);
                     }
                 } else {
                     foreach ($items as $o) {
                         $opts[] = JHtml::_('select.option', $o->{$opt_value}, $o->{$opt_name}, 'value', 'text');
                     }
                 }
             }
         }
         if ($optgroups !== false) {
             $opts[] = JHtml::_('select.option', '</OPTGROUP>');
         }
         if ($field->bool4 == 2 || $field->bool4 == 3) {
             if ($field->bool4 == 3) {
                 if ($static > 1 && isset($current) && isset($half) && isset($static) && isset($results)) {
                     for (; $current < $static; $current++) {
                         $opts[] = $results[$current];
                     }
                 }
             } else {
                 $results = self::_getStaticOption($field, $field->options, $config);
                 foreach ($results as $result) {
                     $opts[] = $result;
                 }
             }
         }
         $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
         if ($value != '') {
             $class .= ' has-value';
         }
         $multi = @$field->bool3 ? ' multiple="multiple"' : '';
         $size = !@$field->bool3 ? '1' : (@$field->rows ? $field->rows : count($opts));
         $size = (int) $size > 1 ? ' size="' . $size . '"' : '';
         $attr = 'class="' . $class . '"' . $size . $multi . ($field->attributes ? ' ' . $field->attributes : '');
         $count = count($opts);
         $form = '';
         if ($field->variation == 'hidden_auto') {
             if ($auto == $count && is_object($opts[$auto - 1])) {
                 $count = 0;
                 $field->variation = 'hidden';
                 $value = $opts[$auto - 1]->value;
                 if (!$field->live) {
                     JCckDevHelper::secureField($field, $value);
                 }
             } else {
                 $field->variation = '';
             }
         }
         if ($count) {
             if ($attrib) {
                 $attr = array('id' => $id, 'list.attr' => $attr, 'list.select' => $value, 'list.translate' => false, 'option.attr' => 'data-cck', 'option.key' => 'value', 'option.text' => 'text');
                 $form = JHtml::_('select.genericlist', $opts, $name, $attr);
             } else {
                 $form = JHtml::_('select.genericlist', $opts, $name, $attr, 'value', 'text', $value, $id);
             }
         }
         /* tmp */
         $jtext = $config['doTranslation'];
         $config['doTranslation'] = 0;
         /* tmp */
         // Set
         if (!$field->variation) {
             $field->form = $form;
             if ($field->script) {
                 parent::g_addScriptDeclaration($field->script);
             }
         } else {
             $options_2 = self::_getOptionsList($options2, $field->bool2, $lang_code);
             if ($field->options) {
                 if ($field->bool4 == 3) {
                     $current = 0;
                     $static_opts = explode('||', $field->options);
                     $static_opts1 = array();
                     $static_opts2 = array();
                     foreach ($static_opts as $static_opt) {
                         if ($current < $half) {
                             $static_opts1[] = $static_opt;
                         } else {
                             $static_opts2[] = $static_opt;
                         }
                         $current++;
                     }
                     $field->optionsList = implode('||', $static_opts1) . '||' . $options_2 . '||' . implode('||', $static_opts2);
                 } elseif ($field->bool4 == 2) {
                     $field->optionsList = $options_2 . '||' . $field->options;
                 } else {
                     $field->optionsList = $field->options . '||' . $options_2;
                 }
             } else {
                 $field->optionsList = $options_2;
             }
             if ($field->bool4) {
                 $field->text = parent::g_getOptionText($value, $field->optionsList, $divider, $config);
             } else {
                 $field->text = parent::g_getOptionText($value, $options_2, $divider, $config);
             }
             parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
         }
         /* tmp */
         $config['doTranslation'] = $jtext;
         /* tmp */
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #13
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
         $inherited = true;
     } else {
         $id = $field->name;
         $name = $field->name;
         $inherited = false;
     }
     $value = $value != '' ? htmlspecialchars($value, ENT_COMPAT, 'UTF-8') : @$field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $app = JFactory::getApplication();
     $options2 = JCckDev::fromJSON($field->options2);
     $user = JFactory::getUser();
     if ($config['pk'] && @$options2['import'] && $field->storage_location) {
         if (!JCckDatabase::loadResult('SELECT pk FROM #__cck_core WHERE pk=' . (int) $config['pk'] . ' AND storage_location="' . (string) $field->storage_location . '"')) {
             $properties = array('custom', 'table');
             $properties = JCck::callFunc('plgCCK_Storage_Location' . $field->storage_location, 'getStaticProperties', $properties);
             $custom = $options2['import'] == 2 ? 'fulltext' : $properties['custom'];
             $value = $config['storages'][$properties['table']]->{$custom};
         }
     }
     if (!$user->id && $this->params->get('guest_access', 0) == 0) {
         $form = '';
     } else {
         $width = @$options2['width'] ? str_replace('px', '', $options2['width']) : '100%';
         $height = @$options2['height'] ? str_replace('px', '', $options2['height']) : '280';
         $asset = $config['asset_id'] > 0 ? $config['asset_id'] : $config['asset'];
         if ($app->input->get('option') == 'com_cck' && $app->input->get('view') == 'form' && $config['client'] == '') {
             $field->bool = 1;
         }
         if ($field->bool) {
             // Default
             $buttons = array('pagebreak', 'readmore');
             $editor = JFactory::getEditor(@$options2['editor'] ? $options2['editor'] : null);
             $form = '<div>' . $editor->display($name, $value, $width, $height, '60', '20', $buttons, $id, $asset) . '</div>';
         } else {
             // Modal Box
             if (trim($field->selectlabel)) {
                 if ($config['doTranslation']) {
                     $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
                 }
                 $buttonlabel = $field->selectlabel;
             } else {
                 $buttonlabel = JText::_('COM_CCK_EDITOR');
             }
             $e_type = @$options2['editor'] != '' ? '&type=' . $options2['editor'] : '';
             $link = 'index.php?option=com_cck&task=box.add&tmpl=component&file=plugins/cck_field/' . self::$type . '/tmpl/form.php' . '&id=' . $id . '&name=' . $name . $e_type . '&params=' . urlencode(urlencode($width)) . '||' . $height . '||' . $asset;
             $app = JFactory::getApplication();
             $class = 'wysiwyg_editor_box variation_href';
             $component = $app->input->get('option');
             if ($component == 'com_cck' && $app->input->get('view') != 'form' || $component == 'com_cck_ecommerce' || $component == 'com_cck_toolbox' || $component == 'com_cck_webservices') {
                 // todo: remove later
                 $class .= ' btn';
             }
             $class = 'class="' . $class . '" ';
             $attr = $class;
             $form = '<textarea style="display: none;" id="' . $id . '" name="' . $name . '">' . $value . '</textarea>';
             $form .= '<a href="' . $link . '" ' . $attr . '>' . $buttonlabel . '</a>';
             $field->markup_class .= ' cck_form_wysiwyg_editor_box';
         }
     }
     // Set
     if (!$field->variation) {
         $field->form = $form;
         self::_addScripts($field->bool, array('height' => @$height, 'inherited' => $inherited), $config);
     } else {
         $hidden = '<textarea class="inputbox" style="display: none;" id="' . $id . '" name="' . $name . '" />' . $value . '</textarea>';
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<textarea', $hidden, '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #14
0
    public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
    {
        if (self::$type != $field->type) {
            return;
        }
        self::$path = parent::g_getPath(self::$type . '/');
        parent::g_onCCK_FieldPrepareForm($field, $config);
        if (is_file(JPATH_LIBRARIES . '/joomla/html/html/category.php')) {
            require_once JPATH_LIBRARIES . '/joomla/html/html/category.php';
        }
        // Init
        if (count($inherit)) {
            $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
            $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
        } else {
            $id = $field->name;
            $name = $field->name;
        }
        $app = JFactory::getApplication();
        $value = $value != '' ? $value : $field->defaultvalue;
        $value = $value != ' ' ? $value : '';
        // Validate
        $validate = '';
        if ($config['doValidation'] > 1) {
            plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
            $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
        }
        // Prepare
        if (parent::g_isStaticVariation($field, $field->variation, true)) {
            $form = '';
            $field->text = '';
            parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
        } elseif ($field->variation == 'value') {
            $form = '';
            $field->text = JCckDatabase::loadResult('SELECT title FROM #__categories WHERE id = ' . (int) $value);
            parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
        } else {
            $opt = '';
            $options2 = JCckDev::fromJSON($field->options2);
            if (trim($field->selectlabel)) {
                if ($config['doTranslation']) {
                    $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
                }
                $opt = '<option value="' . ($field->storage_field == 'parent_id' ? 1 : '') . '">' . '- ' . $field->selectlabel . ' -' . '</option>';
            }
            if ($config['client'] == 'search') {
                $opt .= '<option value="">' . '- ' . JText::_('COM_CCK_ALL_CATEGORIES') . ' -' . '</option>';
            }
            $multiple = $field->bool3 == 1 ? 'multiple="multiple"' : '';
            $size = $field->rows ? $field->rows : 1;
            $extension = $app->input->getString('extension', @$options2['extension']);
            $extension = $extension ? $extension : 'com_content';
            $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
            $xml = '
						<form>
							<field
								type="' . self::$type2 . '"
								name="' . $name . '"
								id="' . $id . '"
								label="' . htmlspecialchars($field->label) . '"
								extension="' . $extension . '"
								' . $multiple . '
								class="' . $class . '"
								size="' . $size . '"
							>' . $opt . '</field>
						</form>
					';
            $form = JForm::getInstance($id, $xml);
            if ($config['client'] == 'admin' || $config['client'] == 'site' || $config['client'] == 'search') {
                if ($config['pk']) {
                    $form->setFieldAttribute($name, 'action', 'core.edit');
                    $form->setFieldAttribute($name, 'action', 'core.edit.own');
                } else {
                    $form->setFieldAttribute($name, 'action', 'core.create');
                }
            }
            $form = $form->getInput($name, '', $value);
            if ($field->attributes) {
                $form = str_replace('<select', '<select ' . $field->attributes, $form);
            }
            // Set
            if (!$field->variation) {
                $field->form = $form;
                if ($field->script) {
                    parent::g_addScriptDeclaration($field->script);
                }
            } else {
                $field->text = JCckDatabase::loadResult('SELECT title FROM #__categories WHERE id = ' . (int) $value);
                parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
            }
        }
        $field->value = $value;
        // Return
        if ($return === true) {
            return $field;
        }
    }
Пример #15
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $opts = array();
     if (trim($field->selectlabel)) {
         if ($config['doTranslation']) {
             $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
         }
         $opts[] = JHtml::_('select.option', '', '- ' . $field->selectlabel . ' -', 'value', 'text');
     }
     $options = '"' . str_replace('||', '","', $field->options) . '"';
     $opts2 = JCckDatabase::loadObjectList('SELECT title AS text, id AS value FROM ' . self::$table . ' WHERE catid IN(' . $options . ') AND state = 1 ORDER BY title', 'value');
     if (count($opts2)) {
         $opts = array_merge($opts, $opts2);
     }
     $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
     $attr = 'class="' . $class . '"' . ($field->attributes ? ' ' . $field->attributes : '');
     $form = count($opts) ? JHtml::_('select.genericlist', $opts, $name, $attr, 'value', 'text', $value, $id) : '';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         $field->text = isset($opts2[$value]->text) ? $opts2[$value]->text : $value;
         parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #16
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Captcha only for Guest
     $user = JFactory::getUser();
     if ($user->get('id') > 0 && $user->guest != 1) {
         $field->form = '';
         $field->value = '';
         $field->display = 0;
         return;
     }
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     $value = htmlspecialchars($value, ENT_QUOTES);
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config, array('minSize' => true));
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $math = array(1 => '+', 2 => '*', 4 => '-');
     $num1 = rand(1, 5);
     $num2 = rand(6, 10);
     shuffle($math);
     $glue = $math[0];
     $eval = $num2 . $glue . $num1;
     eval("\$secure_session_var=" . $eval . ";");
     $ask = '<span class="variation_value">' . $num2 . ' ' . $glue . ' ' . $num1 . ' = </span>';
     if (empty($field->description)) {
         $field->description = JText::_('COM_CCK_CAPTCHA_DO_THE_MATH');
     }
     $class = 'inputbox text' . $validate . ($field->css ? ' ' . $field->css : '');
     $maxlen = $field->maxlength > 0 ? ' maxlength="' . $field->maxlength . '"' : '';
     $attr = 'class="' . $class . '" size="' . $field->size . '"' . $maxlen . ($field->attributes ? ' ' . $field->attributes : '');
     $form = '<input type="text" id="' . $id . '" name="' . $name . '" value="' . $value . '" ' . $attr . ' />';
     // Set
     if (!$field->variation) {
         $field->form = $ask . $form;
         // Special
         $session = JFactory::getSession();
         $session->set('secure_cckaptcha', $name);
         $session->set('secure_' . $name, $secure_session_var);
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #17
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $options2 = JCckDev::fromJSON($field->options2);
     $opts = array();
     if (trim($field->selectlabel)) {
         if ($config['doTranslation']) {
             $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
         }
         $opts[] = JHtml::_('select.option', '', '- ' . $field->selectlabel . ' -', 'value', 'text');
     }
     if (isset($options2['first']) && $options2['first'] != '') {
         if (strpos($options2['first'], '=') !== false) {
             $opt = explode('=', $options2['first']);
             $opt[0] = trim($opt[0]);
             $opts[] = JHtml::_('select.option', $opt[1], JText::_('COM_CCK_' . str_replace(' ', '_', $opt[0])), 'value', 'text');
         } else {
             $opts[] = JHtml::_('select.option', $options2['first'], $options2['first'], 'value', 'text');
         }
     }
     $val = $options2['start'] ? $options2['start'] : 0;
     $step = $options2['step'] ? $options2['step'] : 0;
     $limit = $options2['end'] ? $options2['end'] : 0;
     $math = isset($options2['math']) ? $options2['math'] : NULL;
     $force = isset($options2['force_digits']) && $options2['force_digits'] ? $options2['force_digits'] : 0;
     if ($step && $val || $step && $limit || $step && $val && $limit) {
         while (69) {
             if ($force) {
                 $val = str_pad($val, $force, '0', STR_PAD_LEFT);
             }
             if ($math == 0 && $val <= $limit) {
                 $opts[] = JHtml::_('select.option', $val, $val, 'value', 'text');
                 $val = $val + $step;
             } elseif ($math == 1 && $val <= $limit) {
                 $opts[] = JHtml::_('select.option', $val, $val, 'value', 'text');
                 $val = $val * $step;
             } elseif ($math == 2 && $val >= $limit) {
                 $opts[] = JHtml::_('select.option', $val, $val, 'value', 'text');
                 $val = $val - $step;
             } elseif ($math == 3 && $val > $limit) {
                 $opts[] = JHtml::_('select.option', $val, $val, 'value', 'text');
                 $val = floor($val / $step);
             } else {
                 break;
             }
         }
     }
     if (isset($options2['last']) && $options2['last'] != '') {
         if (strpos($options2['last'], '=') !== false) {
             $opt = explode('=', $options2['last']);
             $opt[0] = trim($opt[0]);
             $opts[] = JHtml::_('select.option', $opt[1], JText::_('COM_CCK_' . str_replace(' ', '_', $opt[0])), 'value', 'text');
         } else {
             $opts[] = JHtml::_('select.option', $options2['last'], $options2['last'], 'value', 'text');
         }
     }
     $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
     if ($value != '') {
         $class .= ' has-value';
     }
     $attr = 'class="' . $class . '"' . ($field->attributes ? ' ' . $field->attributes : '');
     $form = count($opts) ? JHtml::_('select.genericlist', $opts, $name, $attr, 'value', 'text', $value, $id) : '';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<select', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #18
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     $field->label2 = trim(@$field->label2);
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $field->label;
     $field->label = '';
     // Prepare
     $pre_task = '';
     $options2 = JCckDev::fromJSON($field->options2);
     $task = isset($options2['task']) && $options2['task'] ? $options2['task'] : 'save';
     $task_auto = isset($options2['task_auto']) && $options2['task_auto'] == '0' ? 0 : 1;
     $task_id = isset($options2['task_id']) && $options2['task_id'] ? $options2['task_id'] : 0;
     if (JFactory::getApplication()->isAdmin()) {
         $task = $config['client'] == 'admin' ? 'form.' . $task : 'list.' . $task;
     }
     if ($task_id) {
         $pre_task = htmlspecialchars('jQuery("#' . $config['formId'] . '").append(\'<input type="hidden" name="tid" value="' . $task_id . '">\');');
     }
     $class = 'button btn' . ($field->css ? ' ' . $field->css : '');
     if ($task == 'cancel') {
         $click = ' onclick="JCck.Core.submitForm(\'' . $task . '\', document.getElementById(\'seblod_form\'));"';
     } else {
         if ($task == 'export' || $task == 'process' || $task == 'list.export' || $task == 'list.process') {
             $click = $pre_task . $config['submit'] . '(\'' . $task . '\');return false;';
             if ($field->variation != 'toolbar_button') {
                 parent::g_addProcess('beforeRenderForm', self::$type, $config, array('name' => $field->name, 'task' => $task, 'task_auto' => $task_auto, 'task_id' => $task_id));
             }
             if (!$task_auto) {
                 $click = 'if (document.' . $config['formId'] . '.boxchecked.value==0){alert(\'' . JText::_('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST') . '\');}else{' . $click . '}';
             }
             $click = isset($config['submit']) ? ' onclick="' . $click . '"' : '';
         } elseif ($task == 'save2redirect') {
             $custom = '';
             if (isset($options2['custom']) && $options2['custom']) {
                 $custom = JCckDevHelper::replaceLive($options2['custom']);
                 $custom = $custom ? '&' . $custom : '';
             }
             if ($config['client'] == 'search') {
                 $pre_task = htmlspecialchars('jQuery("#' . $config['formId'] . '").attr(\'action\', \'' . JRoute::_('index.php?Itemid=' . $options2['itemid'] . $custom) . '\');');
             } else {
                 $pre_task = htmlspecialchars('jQuery("#' . $config['formId'] . ' input[name=\'config[url]\']").val(\'' . JRoute::_('index.php?Itemid=' . $options2['itemid'] . $custom) . '\');');
             }
             $click = isset($config['submit']) ? ' onclick="' . $pre_task . $config['submit'] . '(\'' . $task . '\');return false;"' : '';
         } else {
             $click = isset($config['submit']) ? ' onclick="' . $pre_task . $config['submit'] . '(\'' . $task . '\');return false;"' : '';
         }
     }
     if ($field->attributes && strpos($field->attributes, 'onclick="') !== false) {
         $matches = array();
         $search = '#onclick\\=\\"([a-zA-Z0-9_\\(\\)\\\'\\;\\.]*)"#';
         preg_match($search, $field->attributes, $matches);
         if (count($matches) && $matches[0]) {
             if ($matches[0] == $field->attributes) {
                 $field->attributes = substr(trim($field->attributes), 0, -1);
                 $click = ' ' . $field->attributes . '"';
                 $field->attributes = '';
             } else {
                 $click = ' onclick="' . $matches[1] . '"';
                 $field->attributes = trim(str_replace($matches[0], '', $field->attributes));
             }
         }
     }
     $attr = 'class="' . $class . '"' . $click . ($field->attributes ? ' ' . $field->attributes : '');
     if ($field->bool) {
         $label = $value;
         if (JCck::on()) {
             if ($field->bool6 == 3) {
                 $label = '<span class="icon-' . $options2['icon'] . '"></span>';
                 $attr .= ' title="' . $value . '"';
             } elseif ($field->bool6 == 2) {
                 $label = $value . "\n" . '<span class="icon-' . $options2['icon'] . '"></span>';
             } elseif ($field->bool6 == 1) {
                 $label = '<span class="icon-' . $options2['icon'] . '"></span>' . "\n" . $value;
             }
         }
         $type = $field->bool7 == 1 ? 'submit' : 'button';
         $form = '<button type="' . $type . '" id="' . $id . '" name="' . $name . '" ' . $attr . '>' . $label . '</button>';
         $tag = 'button';
     } else {
         $form = '<input type="submit" id="' . $id . '" name="' . $name . '" value="' . $value . '" ' . $attr . ' />';
         $tag = 'input';
     }
     if ($field->bool2 == 1) {
         $alt = $field->bool3 ? ' ' . JText::_('COM_CCK_OR') . ' ' : "\n";
         if ($config['client'] == 'search') {
             $onclick = 'onclick="jQuery(\'#' . $config['formId'] . '\').clearForm();"';
             $form .= $alt . '<a href="javascript: void(0);" ' . $onclick . ' title="' . JText::_('COM_CCK_RESET') . '">' . JText::_('COM_CCK_RESET') . '</a>';
         } else {
             $onclick = 'onclick="JCck.Core.submitForm(\'cancel\', document.getElementById(\'seblod_form\'));"';
             $form .= $alt . '<a href="javascript: void(0);" ' . $onclick . ' title="' . JText::_('COM_CCK_CANCEL') . '">' . JText::_('COM_CCK_CANCEL') . '</a>';
         }
     } elseif ($field->bool2 == 2) {
         $alt = $field->bool3 ? ' ' . JText::_('COM_CCK_OR') . ' ' : "\n";
         $field2 = (object) array('link' => $options2['alt_link'], 'link_options' => $options2['alt_link_options'], 'id' => $id, 'name' => $name, 'text' => htmlspecialchars($options2['alt_link_text']), 'value' => '');
         JCckPluginLink::g_setLink($field2, $config);
         JCckPluginLink::g_setHtml($field2, 'text');
         $form .= $alt . $field2->html;
     }
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         if ($field->variation == 'toolbar_button') {
             $field->form = '';
             $icon = isset($options2['icon']) && $options2['icon'] ? 'icon-' . $options2['icon'] : '';
             $onclick = $pre_task . 'JCck.Core.submit(\'' . $task . '\')';
             if (!$task_auto) {
                 $onclick = 'if (document.' . $config['formId'] . '.boxchecked.value==0){alert(\'' . JText::_('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST') . '\');}else{' . $onclick . '}';
             }
             $html = '<button class="btn btn-small' . ($field->css ? ' ' . $field->css : '') . '" onclick="' . $onclick . '" href="#"><i class="' . $icon . '"></i> ' . $value . '</button>';
             parent::g_addProcess('beforeRenderForm', self::$type, $config, array('name' => $field->name, 'button' => array('html' => $html, 'icon' => @$options2['icon']), 'pre_task' => $pre_task, 'task' => $task, 'task_auto' => $task_auto, 'task_id' => $task_id));
         } else {
             parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<' . $tag, ' ', '', $config);
         }
     }
     $field->value = '';
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #19
0
    public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
    {
        if (self::$type != $field->type) {
            return;
        }
        self::$path = parent::g_getPath(self::$type . '/');
        parent::g_onCCK_FieldPrepareForm($field, $config);
        // Init
        if (count($inherit)) {
            $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
            $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
        } else {
            $id = $field->name;
            $name = $field->name;
        }
        $value = $value != '' ? $value : $field->defaultvalue;
        $value = $value != ' ' ? $value : '';
        // Validate
        $validate = '';
        if ($config['doValidation'] > 1) {
            plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
            $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
        }
        // Prepare
        if (JCck::isSite() === true && !$config['pk'] && ($config['client'] == 'admin' || $config['client'] == 'site') && $value != '') {
            $levels = JCck::getSite()->viewlevels;
            $levels = explode(',', $levels);
            sort($levels);
            $value = $levels[0];
        }
        $opt = '';
        if (trim($field->selectlabel)) {
            if ($config['doTranslation']) {
                $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
            }
            $opt = '<option value="">' . '- ' . $field->selectlabel . ' -' . '</option>';
        }
        $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
        $xml = '
					<form>
						<field
							type="' . self::$type2 . '"
							name="' . $name . '"
							id="' . $id . '"
							label="' . htmlspecialchars($field->label) . '"
							extension="com_content"
							class="' . $class . '"
						>' . $opt . '</field>
					</form>
				';
        $form = JForm::getInstance($id, $xml);
        $form = $form->getInput($name, '', $value);
        // Set
        if (!$field->variation) {
            $field->form = $form;
            if ($field->script) {
                parent::g_addScriptDeclaration($field->script);
            }
        } else {
            $field->text = JCckDatabase::loadResult('SELECT title FROM #__viewlevels WHERE id = ' . (int) $value);
            parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
        }
        $field->value = $value;
        // Return
        if ($return === true) {
            return $field;
        }
    }
Пример #20
0
    public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
    {
        if (self::$type != $field->type) {
            return;
        }
        self::$path = parent::g_getPath(self::$type . '/');
        parent::g_onCCK_FieldPrepareForm($field, $config);
        // Init
        if (count($inherit)) {
            $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
            $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
        } else {
            $id = $field->name;
            $name = $field->name;
        }
        $value = $value != '' ? $value : $field->defaultvalue;
        $value = $value != ' ' ? $value : '';
        // Validate
        $validate = '';
        if ($config['doValidation'] > 1) {
            plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
            $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
        }
        // Prepare
        if ($value == 0) {
            $form = '';
        } else {
            $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
            $xml = '
						<form addfieldpath="/administrator/components/com_users/models/fields">
							<field
								type="' . self::$type2 . '"
								name="' . $name . '"
								id="' . $id . '"
								label="' . htmlspecialchars($field->label) . '"
								class="' . $class . '"
							/>
						</form>
					';
            $form = JForm::getInstance($id, $xml);
            $form = $form->getInput($name, '', $value);
        }
        // Set
        if (!$field->variation) {
            $field->form = $form;
            if ($field->script) {
                parent::g_addScriptDeclaration($field->script);
            }
        } else {
            $field->text = JCckDatabase::loadResult('SELECT title FROM #__usergroups WHERE id = ' . (int) $value);
            parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
        }
        $field->value = $value;
        // Return
        if ($return === true) {
            return $field;
        }
    }
Пример #21
0
    public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
    {
        if (self::$type != $field->type) {
            return;
        }
        self::$path = parent::g_getPath(self::$type . '/');
        parent::g_onCCK_FieldPrepareForm($field, $config);
        // Init
        if (count($inherit)) {
            $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
            $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
            $inherited = true;
        } else {
            $id = $field->name;
            $name = $field->name;
            $inherited = false;
        }
        $value = $value != '' ? (int) $value : @(int) $config['asset_id'];
        // Validate
        $validate = '';
        // Prepare
        $options2 = JCckDev::fromJSON($field->options2);
        $component = @$options2['extension'] ? $options2['extension'] : 'com_content';
        $section = @$options2['section'] ? $options2['section'] : 'article';
        if ($field->bool) {
            // Default
            $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
            $xml = '
						<form>
							<field
								type="' . self::$type2 . '"
								id="' . $id . '"
								name="' . $name . '"
								label="' . htmlspecialchars($field->label) . '"
								filter="rules"
								component="' . $component . '"
								section="' . $section . '"
								class="' . $class . '"
							/>
							<field
								type="hidden"
								name="asset_id"
								readonly="true"
								class="readonly"
							/>
						</form>
					';
            $form = JForm::getInstance($id, $xml);
            $form->setValue('asset_id', null, $value);
            $form = $form->getInput($name);
            $form = str_replace('<select name="' . $name . '[', '<select class="inputbox" name="' . $name . '[', $form);
        } else {
            // Modal Box
            $app = JFactory::getApplication();
            if (trim($field->selectlabel)) {
                if ($config['doTranslation']) {
                    $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
                }
                $buttonlabel = $field->selectlabel;
            } else {
                $buttonlabel = JText::_('COM_CCK_PERMISSIONS');
            }
            $link = 'index.php?option=com_cck&task=box.add&tmpl=component&file=plugins/cck_field/' . self::$type . '/tmpl/form.php' . '&id=' . $id . '&name=' . $name . '&type=' . $value . '&params=' . $component . '||' . $section;
            $class = 'jform_rules_box variation_href';
            if ($app->input->get('option') == 'com_cck' && $app->input->get('view') != 'form') {
                // todo: remove later
                $class .= ' btn';
            }
            $class = 'class="' . $class . '" ';
            $attr = $class;
            $rules = '';
            $form = '<textarea style="display: none;" id="' . $id . '" name="' . $name . '">' . $rules . '</textarea>';
            $form .= '<a href="' . $link . '" ' . $attr . '>' . $buttonlabel . '</a>';
            $field->markup_class .= ' cck_form_wysiwyg_editor_box';
        }
        // Set
        if (!$field->variation) {
            $field->form = $form;
            self::_addScripts($field->bool, array('inherited' => $inherited), $config);
            if ($field->script) {
                parent::g_addScriptDeclaration($field->script);
            }
        } else {
            parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<select', '', '', $config);
        }
        $field->value = $value;
        // Return
        if ($return === true) {
            return $field;
        }
    }
Пример #22
0
    public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
    {
        if (self::$type != $field->type) {
            return;
        }
        self::$path = parent::g_getPath(self::$type . '/');
        parent::g_onCCK_FieldPrepareForm($field, $config);
        // Init
        if (count($inherit)) {
            $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
            $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
        } else {
            $id = $field->name;
            $name = $field->name;
        }
        $value = $value != '' ? $value : $field->defaultvalue;
        $value = $value != ' ' ? $value : '';
        // Validate
        $validate = '';
        if ($config['doValidation'] > 1) {
            plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
            $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
        }
        // Prepare
        $opt = '';
        $options = explode('||', $field->options);
        if (trim($field->selectlabel)) {
            if ($config['doTranslation']) {
                $field->selectlabel = JText::_('COM_CCK_' . str_replace(' ', '_', trim($field->selectlabel)));
            }
            $opt = '<option value="">' . '- ' . $field->selectlabel . ' -' . '</option>';
        }
        $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
        if (count($options)) {
            $group = false;
            foreach ($options as $i => $val) {
                if (trim($val) != '') {
                    if (JString::strpos($val, '=') !== false) {
                        $o = explode('=', $val);
                    } else {
                        $o = array(0 => $val, 1 => $val);
                    }
                    if ($field->bool8 && trim($o[0])) {
                        $o[0] = JText::_('COM_CCK_' . str_replace(' ', '_', trim($o[0])));
                    }
                    if ($o['1'] == 'optgroup') {
                        if ($group) {
                            $opt .= '</group>';
                        }
                        $opt .= '<group label="' . $o['0'] . '">';
                        $group = true;
                    } else {
                        $opt .= '<option value="' . $o['1'] . '">' . $o['0'] . '</option>';
                    }
                }
            }
            if ($group) {
                $opt .= '</group>';
            }
        }
        $xml = '
						<form>
							<field
								type="' . self::$type2 . '"
								name="' . $name . '"
								id="' . $id . '"
								label="' . htmlspecialchars($field->label) . '"
								class="' . $class . '"
							>' . $opt . '</field>
						</form>
					';
        $form = JForm::getInstance($id, $xml);
        $form = $form->getInput($name, '', $value);
        if (strpos($id, '-') !== false) {
            $id2 = str_replace('-', '_', $id);
            $form = str_replace('id="' . $id2 . '"', 'id="' . $id . '"', $form);
        }
        // Set
        if (!$field->variation) {
            $field->form = $form;
            if ($field->script) {
                parent::g_addScriptDeclaration($field->script);
            }
        } else {
            parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
        }
        $field->value = $value;
        // Return
        if ($return === true) {
            return $field;
        }
    }
Пример #23
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     if ($config['client'] == 'admin' && !$config['pk'] && !$value) {
         $value = array(2);
     } elseif ($value && is_string($value) && strpos($value, ',') !== false) {
         $value = explode(',', $value);
     } elseif (is_null($value)) {
         $value = $field->defaultvalue;
     }
     if (!is_array($value)) {
         $value = array($value);
     }
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $class = $field->css ? ' class="' . $field->css . '"' : '';
     $form = JHtml::_('access.usergroups', $name, $value);
     // JForm UserGroups ?!
     $form = '<div id="' . $name . '"' . $class . '>' . $form . '</div>';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         $values = is_array($value) ? implode(',', $value) : $value;
         $field->text = JCckDatabase::loadColumn('SELECT title FROM #__usergroups WHERE id IN (' . (string) $values . ')');
         $field->text = implode(',', $field->text);
         //todo
         parent::g_getDisplayVariation($field, $field->variation, $values, $field->text, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #24
0
    public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
    {
        if (self::$type != $field->type) {
            return;
        }
        self::$path = parent::g_getPath(self::$type . '/');
        parent::g_onCCK_FieldPrepareForm($field, $config);
        // Init
        if (count($inherit)) {
            $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
            $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
            $xk = isset($inherit['xk']) ? $inherit['xk'] : '';
        } else {
            $id = $field->name;
            $name = $field->name;
            $xk = '';
        }
        // Validate
        $validate = '';
        if ($config['doValidation'] > 1) {
            plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
            $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
        }
        // Prepare
        $options2 = JCckDev::fromJSON($field->options2);
        if ($config['doTranslation']) {
            $title_label = trim(@$options2['title_label']) ? JText::_('COM_CCK_' . str_replace(' ', '_', trim(@$options2['title_label']))) : '';
            $path_label = trim(@$options2['path_label']) ? JText::_('COM_CCK_' . str_replace(' ', '_', trim(@$options2['path_label']))) : '';
            $desc_label = trim(@$options2['desc_label']) ? JText::_('COM_CCK_' . str_replace(' ', '_', trim(@$options2['desc_label']))) : '';
        } else {
            $title_label = @$options2['title_label'];
            $path_label = @$options2['path_label'];
            $desc_label = @$options2['desc_label'];
        }
        $value = trim($value);
        if ($value == '') {
            $value = array('image_location' => '', 'image_title' => '', 'image_description' => '');
        } else {
            $value_json = JCckDev::fromJSON($value);
            if (is_array($value_json) && !empty($value_json)) {
                $value_json['image_location'] = trim($value_json['image_location']);
                $value = $value_json;
            } else {
                $value = array('image_location' => $value, 'image_title' => '', 'image_description' => '');
            }
        }
        $save_value = $value;
        $value2 = $value['image_location'] != '' ? $value['image_location'] : $options2['path'];
        $value['image_location'] = $value['image_location'] != '' ? $value['image_location'] : $field->defaultvalue;
        $title = $value['image_location'] == '' ? '' : substr(strrchr(JFile::stripExt($value['image_location']), '/'), 1);
        $image_title = @$value['image_title'] ? trim($value['image_title']) : substr(strrchr($value['image_location'], '/'), 1);
        $image_title = htmlspecialchars($image_title, ENT_QUOTES);
        $image_desc = isset($value_json['image_description']) ? trim($value_json['image_description']) : (isset($value_json['image_descr']) ? trim($value_json['image_descr']) : '');
        $image_desc = htmlspecialchars($image_desc, ENT_QUOTES);
        $form_more2 = '';
        $form_more3 = '';
        $form_more4 = '';
        $chkbox = '';
        $onchange = '';
        $preview = '';
        $lock = '';
        $params = array();
        $legal_ext = isset($options2['media_extensions']) ? $options2['media_extensions'] : 'custom';
        if ($legal_ext == 'custom') {
            $legal_ext = $options2['legal_extensions'];
        } else {
            $legal_ext = JCck::getConfig_Param('media_' . $legal_ext . '_extensions');
            if (!$legal_ext) {
                $legal_ext = $options2['legal_extensions'];
            }
        }
        if ($value['image_location'] && JFile::exists(JPATH_ROOT . '/' . $value['image_location'])) {
            $path = substr($value['image_location'], 0, strrpos($value['image_location'], '/')) . '/';
            for ($i = 1; $i < 11; $i++) {
                $thumb = $path . '_thumb' . $i . '/' . substr(strrchr($value['image_location'], '/'), 1);
                $field->{'thumb' . $i} = JFile::exists(JPATH_ROOT . '/' . $thumb) ? $thumb : '';
            }
            self::_addThumbs($field, $options2, $value['image_location'], $path);
        }
        $class = 'inputbox file' . $validate . ($field->css ? ' ' . $field->css : '');
        $attr_input_text = 'class="inputbox text" size="' . $field->size . '"';
        if (strpos($name, '[]') !== false) {
            //FieldX
            $nameH = substr($name, 0, -2);
            $form_more = '<input class="inputbox" type="hidden" id="' . $id . '_hidden" name="' . $nameH . '_hidden[]" value="' . $value2 . '" />';
            if ($options2['title_image'] == '1' && @$options2['multivalue_mode'] == '1') {
                $form_more2 = self::_addFormText($id . '_title', $nameH . '_title[]', $attr_input_text, $title_label, $image_title, self::$type);
            }
            if ($options2['custom_path'] == '1') {
                $form_more3 = self::_addFormText($id . '_path', $nameH . '_path[]', $attr_input_text, $path_label, $value2, self::$type, false);
                $lock = '<a class="switch lock_img" href="javascript:void(0);"><span class="linkage linked"></span></a>';
                //TODO!
            }
            if (@$options2['desc_image'] == '1' && @$options2['multivalue_mode'] == '1') {
                $form_more4 = self::_addFormText($id . '_description', $nameH . '_description[]', $attr_input_text, $desc_label, $image_desc, self::$type);
            }
            if ($options2['delete_box'] && $value['image_location'] && $value['image_location'] != $field->defaultvalue) {
                $onchange = ' onchange="$(\'' . $id . '_delete\').checked=true;"';
                $chkbox = '<input class="inputbox" type="checkbox" id="' . $id . '_delete" name="' . $nameH . '_delete[' . $xk . ']" value="1" />';
            }
        } elseif ($name[strlen($name) - 1] == ']') {
            //GroupX
            $nameH = substr($name, 0, -1);
            $form_more = '<input class="inputbox" type="hidden" id="' . $id . '_hidden" name="' . $nameH . '_hidden]" value="' . $value2 . '" />';
            if ($options2['title_image'] == '1' && @$options2['multivalue_mode'] == '1') {
                $form_more2 = self::_addFormText($id . '_title', $nameH . '_title]', $attr_input_text, $title_label, $image_title, self::$type);
            }
            if ($options2['custom_path'] == '1') {
                $form_more3 = self::_addFormText($id . '_path', $nameH . '_path]', $attr_input_text, $path_label, $value2, self::$type, false);
                $lock = '<a class="switch lock_img" href="javascript:void(0);"><span class="linkage linked"></span></a>';
                //TODO!
            }
            if (@$options2['desc_image'] == '1' && @$options2['multivalue_mode'] == '1') {
                $form_more4 = self::_addFormText($id . '_description', $nameH . '_description]', $attr_input_text, $desc_label, $image_desc, self::$type);
            }
            if ($options2['delete_box'] && $value['image_location'] && $value['image_location'] != $field->defaultvalue) {
                $onchange = ' onchange="$(\'' . $id . '_delete\').checked=true;"';
                $chkbox = '<input class="inputbox" type="checkbox" id="' . $id . '_delete" name="' . $nameH . '_delete]" value="1" />';
            }
        } else {
            //Default
            $form_more = '<input class="inputbox" type="hidden" id="' . $name . '_hidden" name="' . $name . '_hidden" value="' . $value2 . '" />';
            if ($options2['title_image'] == '1' && @$options2['multivalue_mode'] == '1') {
                $form_more2 = self::_addFormText($id . '_title', $name . '_title', $attr_input_text, $title_label, $image_title, self::$type);
            }
            if ($options2['custom_path'] == '1') {
                $form_more3 = self::_addFormText($id . '_path', $name . '_path', $attr_input_text, $path_label, $value2, self::$type, false);
                $lock = '<a class="switch lock_img" href="javascript:void(0);"><span class="linkage linked"></span></a>';
                //TODO!
            }
            if (@$options2['desc_image'] == '1' && @$options2['multivalue_mode'] == '1') {
                $form_more4 = self::_addFormText($id . '_description', $name . '_description', $attr_input_text, $desc_label, $image_desc, self::$type);
            }
            if ($options2['delete_box'] && $value['image_location'] && $value['image_location'] != $field->defaultvalue) {
                $onchange = ' onchange="$(\'' . $name . '_delete\').checked=true;"';
                $chkbox = '<input class="inputbox" type="checkbox" id="' . $name . '_delete" name="' . $name . '_delete" value="1" />';
            }
        }
        $attr = 'class="' . $class . '" size="' . $field->size . '"' . $onchange . ($field->attributes ? ' ' . $field->attributes : '');
        $form = '<input type="file" id="' . $id . '" name="' . $name . '" ' . $attr . ' />';
        $params['custom_path'] = @$options2['custom_path'];
        if ($chkbox != '') {
            $form .= '<span title="' . JText::_('COM_CCK_CHECK_TO_DELETE_FILE') . '">' . $chkbox . '</span>';
            //TODO
        }
        if ($options2['form_preview'] != -1 && $value['image_location']) {
            $params['image_colorbox'] = '1';
            $title_image = self::_getTitle($image_title, $title);
            $desc_image = self::_getAlt($image_desc, $image_title, $title);
            $title_colorbox = $desc_image;
            if ($options2['form_preview'] > 1) {
                if ($options2['form_preview'] == 2) {
                    $width = $options2['image_width'] ? 'width="' . $options2['image_width'] . '"' : '';
                    $height = $options2['image_height'] ? 'height="' . $options2['image_height'] . '"' : '';
                    $preview = '<a id="colorBox' . $field->id . '" href="' . JURI::root() . $value['image_location'] . '" rel="colorBox' . $field->id . '" title="' . $title_colorbox . '" ' . $width . ' ' . $height . '>
										<img title="' . $title_image . '" alt="' . $desc_image . '" src="' . JURI::root() . $value['image_location'] . '" />
									</a>';
                } else {
                    $thumb_location = str_replace($title, '_thumb' . ($options2['form_preview'] - 2) . '/' . $title, $value['image_location']);
                    $preview = '<a id="colorBox' . $field->id . '" href="' . JURI::root() . $value['image_location'] . '" rel="colorBox' . $field->id . '" title="' . $title_colorbox . '">
										<img title="' . $title_image . '" alt="' . $desc_image . '" src="' . JURI::root() . $thumb_location . '" />
									</a>';
                }
            } elseif ($options2['form_preview'] == 1) {
                $preview = '<a id="colorBox' . $field->id . '" href="' . JURI::root() . $value['image_location'] . '" rel="colorBox' . $field->id . '" title="' . $title_colorbox . '">
									<img title="' . $title_image . '" alt="' . $desc_image . '" src="' . JURI::root() . 'media/cck/images/16/icon-16-preview.png" />
								</a>';
            } else {
                $preview = '<a class="cck_preview" id="colorBox' . $field->id . '" href="' . JURI::root() . $value['image_location'] . '" rel="colorBox' . $field->id . '" title="' . $title_colorbox . '">' . $title_image . '</a>';
            }
            $preview = self::_addFormPreview($id, JText::_('COM_CCK_PREVIEW'), $preview, self::$type);
        } else {
            $params['image_colorbox'] = '0';
        }
        $form = $form . $form_more . $lock . $form_more3 . $form_more2 . $form_more4 . $preview;
        // Set
        $value = $save_value;
        if (!$field->variation) {
            $field->form = $form;
            if ($field->script) {
                parent::g_addScriptDeclaration($field->script);
            }
        } else {
            $field->text = $preview ? $preview : $value['image_location'];
            parent::g_getDisplayVariation($field, $field->variation, $value['image_location'], $field->text, $form, $id, $name, '<input', '', $form_more, $config);
        }
        $field->value = JCckDev::toJSON($value);
        self::_addScripts($field->id, $params);
        // Return
        if ($field->description) {
            $field->description = str_replace('*legal_extensions*', $legal_ext, $field->description);
        }
        if ($return === true) {
            return $field;
        }
    }
Пример #25
0
 public function onCCK_FieldPrepareSearch(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     $options2 = JCckDev::fromJSON($field->options2);
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = trim($value) != '' ? trim($value) : trim($field->defaultvalue);
     if (trim($value) == '' || $value == '0000-00-00 00:00:00') {
         $Jdate = '';
         $value = '';
         $storedDate = '';
     } else {
         $options2['storage_format'] = isset($options2['storage_format']) ? $options2['storage_format'] : '0';
         $value = $options2['storage_format'] == '0' ? strtotime($value) : $value;
         $Jdate = date('Y-m-d H:i:s', $value);
         $storedDate = date('Ymd', $value);
         $value = date(@$options2['format'], $value);
     }
     $default_hour = @$options2['default_hour'];
     $default_min = @$options2['default_min'];
     $default_sec = @$options2['default_sec'];
     $format_jscal2 = self::_toJScal2Format(array('format' => @$options2['format'], 'default_hour' => $default_hour, 'default_min' => $default_min, 'default_sec' => $default_sec, 'time' => $options2['time']));
     $format_search = self::_toSearchFormat(array('format' => @$options2['format'], 'default_hour' => $default_hour, 'default_min' => $default_min, 'default_sec' => $default_sec, 'time' => $options2['time']));
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     if (strpos($name, '[]') !== false) {
         //FieldX
         $nameH = substr($name, 0, -2);
         $form_more = '<input class="inputbox" type="hidden" id="' . $id . '" name="' . $nameH . '[]" value="' . $Jdate . '" />';
     } elseif ($name[strlen($name) - 1] == ']') {
         //GroupX
         $nameH = substr($name, 0, -1);
         $form_more = '<input class="inputbox" type="hidden" id="' . $id . '" name="' . $nameH . ']" value="' . $Jdate . '" />';
     } else {
         //Default
         $form_more = '<input class="inputbox" type="hidden" id="' . $id . '" name="' . $name . '" value="' . $Jdate . '" />';
     }
     $class = 'inputbox text' . $validate . ($field->css ? ' ' . $field->css : '');
     $maxlen = $field->maxlength > 0 ? ' maxlength="' . $field->maxlength . '"' : '';
     $readonly = $field->bool2 ? '' : ' readonly="readonly"';
     $attr = 'class="' . $class . '" size="' . $field->size . '"' . $readonly . $maxlen . ($field->attributes ? ' ' . $field->attributes : '');
     $form = '<input type="text" id="' . $id . '_hidden" name="' . $name . '_hidden" value="' . $value . '" ' . $attr . ' />' . $form_more;
     // Set
     if (!$field->variation) {
         if (JCck::on()) {
             $form .= '<button class="btn" id="' . $id . '_hidden-trigger"><span class="icon-calendar"></span></button>';
         } else {
             $form .= '<img src="' . self::$path . 'assets/images/calendar.png" alt="Calendar" class="calendar" id="' . $id . '_hidden-trigger" />';
         }
         $form .= self::_addScript($id, array('dateFormat' => $format_jscal2, 'time' => @$options2['time'], 'weekNumbers' => @$options2['week_numbers'], 'timePos' => @$options2['time_pos'], 'dates' => @$options2['dates'], 'storedDate' => $storedDate, 'default_hour' => $default_hour, 'default_min' => $default_min, 'default_sec' => $default_sec, 'type' => 'search', 'input_text' => $field->bool2));
         $field->form = $form;
         $field->markup_class .= ' input-append';
         self::_addScripts(array('theme' => @$options2['theme']));
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     // Set
     $field->value = $Jdate == '' ? '' : date($format_search, strtotime($Jdate));
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #26
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $divider = $field->divider != '' ? $field->divider : ',';
     if (!is_array($value)) {
         $value = explode($divider, $value);
     }
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $attr = array('option.attr' => 'data-cck');
     $options = explode('||', $field->options);
     if ($field->location) {
         $attribs = explode('||', $field->location);
         $attrib = count($attribs);
         $options2 = json_decode($field->options2);
     } else {
         $attribs = array();
         $attrib = 0;
     }
     if ($field->bool8) {
         $field->bool8 = $config['doTranslation'];
     }
     if ($field->sorting == 1) {
         natsort($options);
         $optionsSorted = array_slice($options, 0);
     } elseif ($field->sorting == 2) {
         natsort($options);
         $optionsSorted = array_reverse($options, true);
     } else {
         $optionsSorted = $options;
     }
     $opts = array();
     if (count($optionsSorted)) {
         foreach ($optionsSorted as $i => $val) {
             if (trim($val) != '') {
                 $text = $val;
                 if (JString::strpos($val, '=') !== false) {
                     $opt = explode('=', $val);
                     $text = $opt[0];
                     $val = $opt[1];
                 }
                 if ($field->bool8 && trim($text) != '') {
                     $text = JText::_('COM_CCK_' . str_replace(' ', '_', trim($text)));
                 }
                 if ($attrib) {
                     $attr['attr'] = '';
                     foreach ($attribs as $k => $a) {
                         $attr['attr'] .= ' ' . $a . '="' . $options2->options[$i]->attr[$k] . '"';
                     }
                     $opts[] = JHtml::_('select.option', $val, $text, $attr);
                 } else {
                     $opts[] = JHtml::_('select.option', $val, $text, 'value', 'text');
                 }
             }
         }
     }
     $class = 'inputbox select' . $validate . ($field->css ? ' ' . $field->css : '');
     $size = @$field->rows ? $field->rows : count($opts);
     $attr = 'class="' . $class . '" size="' . $size . '" multiple="multiple"' . ($field->attributes ? ' ' . $field->attributes : '');
     $form = '';
     if (count($opts)) {
         if ($attrib) {
             $attr = array('id' => $id, 'list.attr' => $attr, 'list.select' => $value, 'list.translate' => false, 'option.attr' => 'data-cck', 'option.key' => 'value', 'option.text' => 'text');
             $form = JHtml::_('select.genericlist', $opts, $name . '[]', $attr);
         } else {
             $form = JHtml::_('select.genericlist', $opts, $name . '[]', $attr, 'value', 'text', $value, $id);
         }
     }
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         $doTranslation = $config['doTranslation'];
         if ($config['doTranslation']) {
             $config['doTranslation'] = $field->bool8;
         }
         $field->text = parent::g_getOptionText($value, $field->options, $divider, $config);
         $config['doTranslation'] = $doTranslation;
         parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #27
0
    public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
    {
        if (self::$type != $field->type) {
            return;
        }
        self::$path = parent::g_getPath(self::$type . '/');
        parent::g_onCCK_FieldPrepareForm($field, $config);
        // Init
        if (count($inherit)) {
            $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
            $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
        } else {
            $id = $field->name;
            $name = $field->name;
        }
        $value = $value !== '' ? $value : $field->defaultvalue;
        $userid = JFactory::getUser()->get('id');
        if ($config['client'] != 'search') {
            if (!$value && $userid && !($field->storage_field == 'modified_by' || $field->storage_field == 'modified_user_id') || $config['pk'] > 0 && ($field->storage_field == 'modified_by' || $field->storage_field == 'modified_user_id')) {
                // todo: this must be changed asap!
                $value = $userid;
            }
        }
        // Validate
        $validate = '';
        if ($config['doValidation'] > 1) {
            plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
            $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
        }
        // Prepare
        if (parent::g_isStaticVariation($field, $field->variation, true)) {
            $form = '';
            $field->text = JCckDatabase::loadResult('SELECT name FROM #__users WHERE id = ' . (int) $value);
            parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<select', '', '', $config);
        } else {
            $class = 'inputbox text' . $validate . ($field->css ? ' ' . $field->css : '');
            $xml = '
						<form>
							<field
								type="' . self::$type2 . '"
								name="' . $name . '"
								id="' . $id . '"
								label="' . htmlspecialchars($field->label) . '"
								class="' . $class . '"
								size="18"
							/>
						</form>
					';
            $form = JForm::getInstance($id, $xml);
            $form = $form->getInput($name, '', $value);
            // Set
            if (!$field->variation) {
                if (JFactory::getApplication()->isSite()) {
                    $form = str_replace('index.php?', 'administrator/index.php?', $form);
                }
                $field->form = $form;
                if ($field->script) {
                    parent::g_addScriptDeclaration($field->script);
                }
            } else {
                $field->text = JCckDatabase::loadResult('SELECT name FROM #__users WHERE id = ' . (int) $value);
                parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<input', '', '', $config);
            }
        }
        $field->value = $value;
        // Return
        if ($return === true) {
            return $field;
        }
    }
Пример #28
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
         $xk = isset($inherit['xk']) ? $inherit['xk'] : '';
     } else {
         $id = $field->name;
         $name = $field->name;
         $xk = '';
     }
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $value = trim($value);
     if ($value == '') {
         $value = array('file_location' => '', 'file_title' => '');
     } else {
         $value_json = JCckDev::fromJSON($value);
         if (is_array($value_json) && !empty($value_json)) {
             $value_json['file_location'] = trim($value_json['file_location']);
             $value = $value_json;
         } else {
             $value = array('file_location' => $value, 'file_title' => '');
         }
     }
     $save_value = $value;
     $options2 = JCckDev::fromJSON($field->options2);
     if ($config['doTranslation']) {
         $title_label = trim(@$options2['title_label']) ? JText::_('COM_CCK_' . str_replace(' ', '_', trim(@$options2['title_label']))) : '';
     } else {
         $title_label = @$options2['title_label'];
     }
     $value2 = @$options2['storage_format'] ? $options2['path'] : '';
     if (@$options2['storage_format'] && $config['pk']) {
         $value2 .= @$options2['path_content'] ? $config['pk'] . '/' : '';
     }
     $value2 .= $value['file_location'] != '' ? $value['file_location'] : '';
     $location = $value['file_location'] != '' ? $value['file_location'] : $field->defaultvalue;
     $value3 = @$options2['storage_format'] ? substr($value2, strrpos($value2, '/') + 1) : ($value2 ? $value2 : $options2['path']);
     if (!@$options2['storage_format'] && $config['pk']) {
         if (strpos($value2, '/' . $config['pk'] . '/') === false && $options2['path_content']) {
             $value2 = $config['pk'] . '/' . $value2;
         }
         if (strpos($value2, $options2['path']) === false) {
             $value2 = $options2['path'] . $value2;
         }
         if (strpos($location, '/' . $config['pk'] . '/') === false && $options2['path_content']) {
             $location = $config['pk'] . '/' . $location;
         }
         if (strpos($location, $options2['path']) === false) {
             $location = $options2['path'] . $location;
         }
     }
     $fold_3 = @$options2['storage_format'] && $config['pk'] ? ' ( ' . substr($value2, 0, strrpos($value2, '/') + 1) . ' )' : '';
     $chkbox = '';
     $onchange = '';
     $preview = '';
     $form_more2 = '';
     $form_more3 = '';
     $lock = '';
     $file_title = trim(@$value['file_title']);
     $file_title = htmlspecialchars($file_title, ENT_QUOTES);
     $params = array();
     $legal_ext = isset($options2['media_extensions']) ? $options2['media_extensions'] : 'custom';
     if ($legal_ext == 'custom') {
         $legal_ext = $options2['legal_extensions'];
     } else {
         $legal_ext = JCck::getConfig_Param('media_' . $legal_ext . '_extensions');
         if (!$legal_ext) {
             $legal_ext = $options2['legal_extensions'];
         }
     }
     $class = 'inputbox file' . $validate . ($field->css ? ' ' . $field->css : '');
     $attr_input_text = 'class="inputbox text" size="' . $field->size . '"';
     if (strpos($name, '[]') !== false) {
         //FieldX
         $nameH = substr($name, 0, -2);
         $form_more = '<input class="inputbox" type="hidden" id="' . $id . '_hidden" name="' . $nameH . '_hidden[]" value="' . $location . '" />';
         if ($options2['custom_path'] == '1') {
             $form_more2 = self::_addFormText($id . '_path', $nameH . '_path[]', $attr_input_text, @$options2['path_label'] . $fold_3, $value3, 'upload_file', false);
         }
         if ($options2['delete_box'] && $value['file_location'] && $location != '') {
             $onchange = ' onchange="$(\'' . $id . '_delete\').checked=true;"';
             $chkbox = '<input class="inputbox" type="checkbox" id="' . $id . '_delete" name="' . $nameH . '_delete[' . $xk . ']" value="1" />';
         }
         if ($options2['title_file'] == '1' && $options2['multivalue_mode'] == '1') {
             $form_more3 = self::_addFormText($id . '_title', $nameH . '_title[]', $attr_input_text, $title_label, $file_title, 'upload_file');
         }
     } elseif ($name[strlen($name) - 1] == ']') {
         //GroupX
         $nameH = substr($name, 0, -1);
         $form_more = '<input class="inputbox" type="hidden" id="' . $id . '_hidden" name="' . $nameH . '_hidden]" value="' . $location . '" />';
         if ($options2['custom_path'] == '1') {
             $form_more2 = self::_addFormText($id . '_path', $nameH . '_path]', $attr_input_text, @$options2['path_label'] . $fold_3, $value3, 'upload_file', false);
         }
         if ($options2['delete_box'] && $value['file_location'] && $location != '') {
             $onchange = ' onchange="$(\'' . $id . '_delete\').checked=true;"';
             $chkbox = '<input class="inputbox" type="checkbox" id="' . $id . '_delete" name="' . $nameH . '_delete]" value="1" />';
         }
         if ($options2['title_file'] == '1' && $options2['multivalue_mode'] == '1') {
             $form_more3 = self::_addFormText($id . '_title', $nameH . '_title]', $attr_input_text, $title_label, $file_title, 'upload_file');
         }
     } else {
         //Default
         $form_more = '<input class="inputbox" type="hidden" id="' . $name . '_hidden" name="' . $name . '_hidden" value="' . $location . '" />';
         if ($options2['custom_path'] == '1') {
             $form_more2 = self::_addFormText($id . '_path', $name . '_path', $attr_input_text, @$options2['path_label'] . $fold_3, $value3, 'upload_file', false);
         }
         if ($options2['delete_box'] && $value['file_location'] && $location != '') {
             $onchange = ' onchange="$(\'' . $name . '_delete\').checked=true;"';
             $chkbox = '<input class="inputbox" type="checkbox" id="' . $name . '_delete" name="' . $name . '_delete" value="1" />';
         }
         if ($options2['title_file'] == '1' && $options2['multivalue_mode'] == '1') {
             $form_more3 = self::_addFormText($id . '_title', $name . '_title', $attr_input_text, $title_label, $file_title, 'upload_file');
         }
     }
     $params['custom_path'] = @$options2['custom_path'];
     $attr = 'class="' . $class . '" size="' . $field->size . '"' . $onchange . ($field->attributes ? ' ' . $field->attributes : '');
     $form = '<input type="file" id="' . $id . '" name="' . $name . '" ' . $attr . ' />';
     if ($options2['custom_path'] == '1') {
         $lock = '<a class="switch lock_file" href="javascript:void(0);"><span class="linkage linked"></span></a>';
         //TODO
     }
     if ($chkbox != '') {
         $form .= '<span title="' . JText::_('COM_CCK_CHECK_TO_DELETE_FILE') . '">' . $chkbox . '</span>';
         //TODO
     }
     $form = $form . $form_more . $lock . $form_more2 . $form_more3;
     if ($options2['preview'] != -1 && $value['file_location'] && $value2 != '') {
         $label = JText::_('COM_CCK_PREVIEW');
         $link = 'javascript: SqueezeBox.fromElement(\'' . JURI::root() . $value2 . '\', {handler: \'image\'});';
         $title = $value['file_title'] != '' ? $value['file_title'] : (strrpos($value2, '/') === false ? $value2 : substr($value2, strrpos($value2, '/') + 1));
         if ($options2['preview'] == 8) {
             $label = '';
             $preview = '<span class="cck_preview">' . $title . '</span>';
         } else {
             if ($options2['preview'] == 1) {
                 $preview = '<a href="' . JURI::root() . $value2 . '" target="_blank" title="' . $value['file_title'] . '"><img src="' . JURI::root() . 'media/cck/images/16/icon-16-preview.png" alt="" title=""/></a>';
             } else {
                 $preview = '<a class="cck_preview" href="' . JURI::root() . $value2 . '" target="_blank" title="' . $value['file_title'] . '">' . $title . '</a>';
             }
         }
         $preview = self::_addFormPreview($id, $label, $preview, 'upload_file');
         $form .= $preview;
     }
     // Set
     $value = $save_value;
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         $field->text = $preview ? $preview : $value;
         $value2 = is_array($value) && isset($value['file_location']) ? $value['file_location'] : $value;
         parent::g_getDisplayVariation($field, $field->variation, $value2, $field->text, $form, $id, $name, '<input', '', $form_more, $config);
     }
     $field->value = $value;
     self::_addScripts($params);
     // Return
     if ($field->description) {
         $field->description = str_replace('*legal_extensions*', $legal_ext, $field->description);
     }
     if ($return === true) {
         return $field;
     }
 }
Пример #29
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
         $name = strpos($name, '[]') !== false ? substr($name, 0, -1) . $inherit['xk'] . ']' : $name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $divider = $field->divider != '' ? $field->divider : ',';
     if (!is_array($value)) {
         $value = explode($divider, $value);
     }
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $attr = array('option.attr' => 'data-cck');
     $options = explode('||', $field->options);
     if ($field->location) {
         $attribs = explode('||', $field->location);
         $attrib = count($attribs);
         $options2 = json_decode($field->options2);
     } else {
         $attribs = array();
         $attrib = 0;
     }
     if ($field->bool8) {
         $field->bool8 = $config['doTranslation'];
     }
     if ($field->sorting == 1) {
         natsort($options);
         $optionsSorted = array_slice($options, 0);
     } elseif ($field->sorting == 2) {
         natsort($options);
         $optionsSorted = array_reverse($options, true);
     } else {
         $optionsSorted = $options;
     }
     $opts = array();
     if (count($optionsSorted)) {
         foreach ($optionsSorted as $i => $val) {
             if (trim($val) != '') {
                 $text = $val;
                 if (JString::strpos($val, '=') !== false) {
                     $opt = explode('=', $val);
                     $text = $opt[0];
                     $val = $opt[1];
                 }
                 if ($field->bool8 && trim($text) != '') {
                     $text = JText::_('COM_CCK_' . str_replace(' ', '_', trim($text)));
                 }
                 if ($attrib) {
                     $attr['attr'] = '';
                     foreach ($attribs as $k => $a) {
                         $attr['attr'] .= ' ' . $a . '="' . $options2->options[$i]->attr[$k] . '"';
                     }
                     $opts[] = JHtml::_('select.option', $val, $text, $attr);
                 } else {
                     $opts[] = JHtml::_('select.option', $val, $text, 'value', 'text');
                 }
             }
         }
     }
     $count = count($opts);
     if ($field->bool) {
         $orientation = ' vertical';
         $field->bool2 = !$field->bool2 ? 1 : $field->bool2;
         $modulo = $count % $field->bool2;
         $columns = (int) ($count / (!$field->bool2 ? 1 : $field->bool2));
     } else {
         $orientation = '';
     }
     $class = 'checkboxes' . $orientation . ($field->css ? ' ' . $field->css : '');
     $attr = 'class="' . $class . '"' . ($field->attributes ? ' ' . $field->attributes : '');
     $form = '<fieldset id="' . $id . '" ' . $attr . '>';
     if (JCck::on()) {
         $attr = 'class="checkbox' . $validate . '" size="1"';
     } else {
         $attr = 'class="inputbox checkbox' . $validate . '" size="1"';
     }
     $attr_key = 'data-cck';
     if ($field->bool && $field->bool2 > 1 && $count > 1) {
         $k = 0;
         foreach ($opts as $i => $o) {
             if ($i == 0) {
                 $form .= '<div class="cck-fl">';
             } elseif ($modulo && $k % ($columns + 1) == 0 || $modulo <= 0 && $k % $columns == 0) {
                 $form .= '</div><div class="cck-fl">';
                 $modulo--;
                 $k = 0;
             }
             $k++;
             $attr2 = isset($o->{$attr_key}) ? $o->{$attr_key} : '';
             $checked = in_array((string) $o->value, (array) $value) ? ' checked="checked" ' : '';
             $form .= '<input type="checkbox" id="' . $id . $i . '" name="' . $name . '[]" value="' . $o->value . '" ' . $checked . $attr . $attr2 . ' />';
             $form .= '<label for="' . $id . $i . '">' . $o->text . '</label>';
         }
         $form .= '</div>';
     } else {
         if ($count == 1 && strpos($optionsSorted[0], '=') === false) {
             foreach ($opts as $i => $o) {
                 $attr2 = isset($o->{$attr_key}) ? $o->{$attr_key} : '';
                 $checked = in_array((string) $o->value, (array) $value) ? ' checked="checked" ' : '';
                 $form .= '<input type="checkbox" id="' . $id . $i . '" name="' . $name . '[]" value="' . $o->value . '" ' . $checked . $attr . $attr2 . ' />';
             }
         } else {
             foreach ($opts as $i => $o) {
                 $attr2 = isset($o->{$attr_key}) ? $o->{$attr_key} : '';
                 $checked = in_array((string) $o->value, (array) $value) ? ' checked="checked" ' : '';
                 $form .= '<input type="checkbox" id="' . $id . $i . '" name="' . $name . '[]" value="' . $o->value . '" ' . $checked . $attr . $attr2 . ' />';
                 $form .= '<label for="' . $id . $i . '">' . $o->text . '</label>';
             }
         }
     }
     $form .= '</fieldset>';
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         $doTranslation = $config['doTranslation'];
         if ($config['doTranslation']) {
             $config['doTranslation'] = $field->bool8;
         }
         $field->text = parent::g_getOptionText($value, $field->options, $divider, $config);
         $config['doTranslation'] = $doTranslation;
         parent::g_getDisplayVariation($field, $field->variation, $value, $field->text, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Пример #30
0
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     $value = htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         parent::g_onCCK_FieldPrepareForm_Validation($field, $id, $config, array('minSize' => true));
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $class = 'inputbox text' . $validate . ($field->css ? ' ' . $field->css : '');
     if ($value != '') {
         $class .= ' has-value';
     }
     $maxlen = $field->maxlength > 0 ? ' maxlength="' . $field->maxlength . '"' : '';
     $attr = 'class="' . $class . '" size="' . $field->size . '"' . $maxlen;
     if ($field->attributes != '') {
         if (strpos($field->attributes, 'J(') !== false) {
             $matches = '';
             $search = '#J\\((.*)\\)#U';
             preg_match_all($search, $field->attributes, $matches);
             if (count($matches[1])) {
                 foreach ($matches[1] as $text) {
                     $field->attributes = str_replace('J(' . $text . ')', JText::_('COM_CCK_' . str_replace(' ', '_', trim($text))), $field->attributes);
                 }
             }
         }
         $attr .= ' ' . $field->attributes;
     }
     if (strpos($field->variation, 'custom_') !== false) {
         $isCustom = true;
         $type = substr($field->variation, 7);
     } else {
         $isCustom = false;
         $type = 'text';
     }
     $form = '<input type="' . $type . '" id="' . $id . '" name="' . $name . '" value="' . $value . '" ' . $attr . ' />';
     // Set
     if (!$field->variation || $isCustom) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         parent::g_getDisplayVariation($field, $field->variation, $value, $value, $form, $id, $name, '<input', '', '', $config);
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }