Вход Регистрация
Файл: system/fields/url.php
Строк: 57
<?php

class fieldUrl extends cmsFormField {

    public 
$title       LANG_PARSER_URL;
    public 
$sql         'varchar({max_length}) NULL DEFAULT NULL';
    public 
$filter_type 'str';
    public 
$allow_index false;
    public 
$var_type    'string';

    public function 
getOptions(){
        return array(
            new 
fieldCheckbox('redirect', array(
                
'title' => LANG_PARSER_URL_REDIRECT,
                
'default' => false,
                
'is_visible' => cmsController::enabled('redirect')
            )),
            new 
fieldCheckbox('auto_http', array(
                
'title' => LANG_PARSER_URL_AUTO_HTTP,
                
'default' => true
            
)),
            new 
fieldNumber('max_length', array(
                
'title' => LANG_PARSER_TEXT_MAX_LEN,
                
'default' => 500
            
)),
            new 
fieldCheckbox('nofollow', array(
                
'title'   => LANG_PARSER_URL_NOFOLLOW,
                
'default' => false
            
)),
            new 
fieldCheckbox('title', array(
                
'title'   => LANG_PARSER_URL_TITLE,
                
'default' => false
            
)),
            new 
fieldString('css_class', array(
                
'title'   => LANG_PARSER_URL_CSS_CLASS,
                
'rules'   => array(
                    array(
'max_length'50)
                )
            ))
        );
    }

    public function 
getStringValue($value){

        if (
$this->getOption('title') && strpos$value'|') !== false){

            
$result explode('|'$value);

            if(!empty(
$result[1])){
                
$value trim($result[1]);
            }
        }

        return 
$value;
    }

    public function 
parse($value){

        if (!
$this->getOption('title') && strpos$value'|') === false){

            
$href $value;

        } else {

            
$result explode('|'$value);

            
$href trim($result[0]);

            if(!empty(
$result[1])){
                
$value trim($result[1]);
            }

        }

        if (
$this->getOption('auto_http')){
            if (!
preg_match('/^([a-z]+)://(.+)$/i'$href)) { $href 'http://' $href; }
        }

        if (
$this->getOption('redirect') && cmsController::enabled('redirect')){
            
$href href_to('redirect').'?url='.urlencode($href);
        }

        
$nofollow $class '';

        if (
$this->getOption('nofollow')){
            
$nofollow ' nofollow';
        }

        if (
$this->getOption('css_class')){
            
$class ' class="'.$this->getOption('css_class').'"';
        }

        return 
'<a rel="noopener'.$nofollow.'" target="_blank" '.$class.' href="'.htmlspecialchars($href).'">'.htmlspecialchars($value).'</a>';

    }

    public function 
applyFilter($model$value) {
        return 
$model->filterLike($this->name"%{$value}%");
    }

    public function 
store($value$is_submitted$old_value=null){
        return 
strip_tags($value);
    }

    public function 
storeFilter($value){
        return 
$this->store($valuefalse);
    }

}
Онлайн: 0
Реклама