/** * Shows the field in the edit entry or add entry form * @param bool $return return or display directly * @return string */ public function field($return = false) { if (!$this->enabled) { return false; } $class = $this->required ? $this->cssClass . ' required' : $this->cssClass; $show = null; $field = null; static $js = false; $params = array('id' => $this->nid, 'class' => $class); if ($this->width) { $params['style'] = "width: {$this->width}px;"; } $files = $this->getExistingFiles(); if (is_array($files) && count($files)) { if (isset($files['ico'])) { $show = $files['ico']; } elseif (isset($files['thumb'])) { $show = $files['thumb']; } } $noncropsize = ""; $icoSize = explode(':', Sobi::Cfg('image.ico_size', '80:80')); if ($show) { $img = Sobi::Cfg('live_site') . $show; if (!$this->crop) { $noncropsize = "style=\"width: {$icoSize[0]}px; height: {$icoSize[1]}px;\""; } } $field .= "\n<div class=\"spImageField\">"; $field .= "\n<div>"; $field .= "\n<div id=\"{$this->nid}_img_preview\" class=\"spEditImage\">"; $field .= "\n<div class=\"spEditImagePreview\" >"; if ($show) { $field .= "\n\t<img src=\"{$img}\" alt=\"{$this->name}\" {$noncropsize} />"; } $field .= "\n</div>"; $field .= "\n</div>"; $field .= "\n</div>"; $field .= "\n<div class=\"spImageUpDelete\">"; if ($show) { $field .= SPHtml_Input::checkbox($this->nid . '_delete', 1, Sobi::Txt('FD.IMG_DELETE_CURRENT_IMAGE'), $this->nid . '_delete', false, array('class' => $this->cssClass)); } $field .= SPHtml_Input::fileUpload($this->nid, 'image/*', null, 'spImageUpload', str_replace('field_', 'field.', $this->nid) . '.upload'); $field .= "\n</div>"; $field .= "\n</div>"; if (!$js) { SPFactory::header()->addJsFile('opt.field_image_edit')->addJsCode('SobiPro.jQuery( document ).ready( function () { SobiPro.jQuery( ".spImageUpload" ).SPFileUploader(); } );'); $js = true; } if ($this->crop) { $modalclass = 'modal hide'; if (Sobi::Cfg('template.bootstrap3-styles') && !defined('SOBIPRO_ADM')) { $modalclass = 'modal fade'; } SPFactory::header()->addJsFile('cropper')->addCssFile('cropper'); $field .= SPHtml_Input::modalWindow(Sobi::Txt('IMAGE_CROP_HEADER'), $this->nid . '_modal', null, $modalclass, 'CLOSE', 'SAVE'); } if (!$return) { echo $field; } else { return $field; } }