View file Web Template Ktpl/package/templates/ktpl/assets/fields/string.tpl.php

File size: 3.78Kb
<?php if ($field->title) { ?><label for="<?php echo $field->id; ?>"><?php echo $field->title; ?></label><?php } ?>

<?php if(!isset($field->prefix) && !isset($field->suffix)){ ?>
    <?php echo html_input($field->data['type'], $field->element_name, $value, array('id'=>$field->id, 'required'=>(array_search(array('required'), $field->getRules()) !== false))); ?>
<?php } ?>

<?php if(isset($field->prefix) || isset($field->suffix)){ ?>
    <div class="input-prefix-suffix">
        <?php if(isset($field->prefix)) { ?><span class="prefix"><?php echo $field->prefix; ?></span><?php } ?>
        <?php echo html_input($field->data['type'], $field->element_name, $value, array('id'=>$field->id, 'required'=>(array_search(array('required'), $field->getRules()) !== false))); ?>
        <?php if(isset($field->suffix)) { ?><span class="suffix"><?php echo $field->suffix; ?></span><?php } ?>
    </div>
<?php } ?>
<?php if($field->getOption('show_symbol_count')){ ?>
<script type="text/javascript">
$(function(){
    icms.forms.initSymbolCount('<?php echo $field->id; ?>', <?php echo ($field->getOption('max_length') ? (int)$field->getOption('max_length') : 0) ?>, <?php echo ($field->getOption('min_length') ? (int)$field->getOption('min_length') : 0) ?>);
});
</script>
<?php } ?>
<?php if($field->data['autocomplete']){ ?>
    <?php $this->addJSFromContext('templates/default/js/jquery-ui.js'); ?>
    <?php $this->addCSSFromContext('templates/default/css/jquery-ui.css'); ?>

<script type="text/javascript">
    var cache = {};
    <?php if(!empty($field->data['autocomplete']['multiple'])) { ?>
        $( "#<?php echo $field->id; ?>" ).bind('keydown', function( event ) {
            if ( event.keyCode === $.ui.keyCode.TAB &&
                $( this ).data('ui-autocomplete').menu.active ) {
                event.preventDefault();
            }
        }).autocomplete({
            minLength: 2,
            source: function( request, response ) {
                var full_term = request.term;
                var term = full_term.split( /,\s*/ ).pop();
                if (term.length < 2) {
                    return false;
                }
                if (term in cache) {
                    response(cache[term]);
                    return;
                }
                $.getJSON( '<?php echo $field->data['autocomplete']['url']; ?>', {
                    term: term
                }, function(data, status, xhr) {
                    cache[term] = data;
                    response(data);
                });
            },
            focus: function() {
                return false;
            },
            select: function( event, ui ) {
                var terms = this.value.split( /,\s*/ );
                terms.pop();
                terms.push( ui.item.value );
                terms.push('');
                this.value = terms.join(', ');
                icms.events.run('autocomplete_select', this);
                return false;
            }
        });
    <?php } else { ?>
        $( "#<?php echo $field->id; ?>" ).autocomplete({
            minLength: 2,
            delay: 500,
            source: function( request, response ) {
                var term = request.term;
                if ( term in cache ) {
                    response( cache[ term ] );
                    return;
                }
                $.getJSON('<?php echo $field->data['autocomplete']['url']; ?>', request, function( data, status, xhr ) {
                    cache[ term ] = data;
                    response( data );
                });
            },
            select: function( event, ui ) {
                icms.events.run('autocomplete_select', this);
                return false;
            }
        });
    <?php } ?>
</script>
<?php }