Exemplo n.º 1
0
 /**
  * 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;
     }
 }