63 lines
2.0 KiB
PHP
63 lines
2.0 KiB
PHP
<?php
|
|
|
|
class attr_icon extends attr {
|
|
function getDBType() {
|
|
return "TEXT";
|
|
}
|
|
|
|
function render_input() {
|
|
|
|
$html = '';
|
|
if ( $this->getCurVal() ) {
|
|
$html .= '<img class="mx-2" src="'.$this->getCurVal().'" style="height: 24px; vertical-align: middle;">';
|
|
}
|
|
$html .= '<label class="btn btn-gray"><input class="d-none" type="file" id="img_' . $this->attr_name . '" name="' . $this->attr_name . '"> Выбрать файл</label>';
|
|
$html .= '<input class="input" type="hidden" name="' . $this->attr_name . '" value="'.$this->getCurVal().'">';
|
|
if ( $this->getCurVal() ) {
|
|
$html .= '
|
|
<div class="custom-control custom-checkbox">
|
|
<input class="checkbox custom-control-input" type="checkbox" id="' . $this->attr_name . '_del" name="' . $this->attr_name . '_del" value="1">
|
|
<label for="' . $this->attr_name . '_del" class="custom-control-label"> Удалить</label>
|
|
</div>';
|
|
}
|
|
return $html;
|
|
}
|
|
|
|
function lPost() {
|
|
|
|
if ( substr( $this->attr_name, -8 ) == '_preview' ) {
|
|
return;
|
|
}
|
|
|
|
$tmpObj = new cobject( '_sys_files' );
|
|
$file = $_FILES[$this->attr_name];
|
|
$nn = md5(microtime(true));
|
|
|
|
if ($_POST[$this->attr_name . '_del']) {
|
|
$this->obj->set( $this->attr_name, '' );
|
|
}elseif ($_POST[$this->attr_name]) {
|
|
$this->obj->set( $this->attr_name, $_POST[$this->attr_name] );
|
|
}
|
|
|
|
if (!$file['error']) {
|
|
$this->obj->set($this->attr_name, 'data:'.$file['type'].';base64,' . base64_encode(file_get_contents($file['tmp_name'])) );
|
|
}
|
|
}
|
|
|
|
|
|
function render_text( $crop = false ) {
|
|
if ($crop) {
|
|
if ( $this->getCurVal() ) {
|
|
$val = $this->getCurVal();
|
|
} else {
|
|
$val = '';
|
|
}
|
|
} else {
|
|
$val = $this->getCurVal();
|
|
}
|
|
return $val;
|
|
}
|
|
|
|
}
|
|
|
|
?>
|