/** * Render a form file * * @param string $content * @return string */ public function render($content) { $element = $this->getElement(); if (!$element instanceof Zend_Form_Element) { return $content; } $view = $element->getView(); if (!$view instanceof Zend_View_Interface) { return $content; } $name = $element->getName(); $attribs = $this->getAttribs(); if (!array_key_exists('id', $attribs)) { $attribs['id'] = $name; } $separator = $this->getSeparator(); $placement = $this->getPlacement(); $markup = array(); $size = $element->getMaxFileSize(); if ($size > 0) { $element->setMaxFileSize(0); $markup[] = $view->formHidden('MAX_FILE_SIZE', $size); } if (Zend_File_Transfer_Adapter_Http::isApcAvailable()) { $markup[] = $view->formHidden(ini_get('apc.rfc1867_name'), uniqid(), array('id' => 'progress_key')); } else { if (Zend_File_Transfer_Adapter_Http::isUploadProgressAvailable()) { $markup[] = $view->formHidden('UPLOAD_IDENTIFIER', uniqid(), array('id' => 'progress_key')); } } if ($element->isArray()) { $name .= "[]"; $count = $element->getMultiFile(); for ($i = 0; $i < $count; ++$i) { $htmlAttribs = $attribs; $htmlAttribs['id'] .= '-' . $i; $markup[] = $view->formFile($name, $htmlAttribs); } } else { $markup[] = $view->formFile($name, $attribs); } $markup = implode($separator, $markup); switch ($placement) { case self::PREPEND: return $markup . $separator . $content; case self::APPEND: default: return $content . $separator . $markup; } }
/** * Render a form file * * @param string $content * @return string */ public function render($content) { $element = $this->getElement(); if (!$element instanceof Zend_Form_Element) { return $content; } $view = $element->getView(); if (!$view instanceof Zend_View_Interface) { return $content; } $name = $element->getName(); $attribs = $this->getAttribs(); if (!array_key_exists('id', $attribs)) { $attribs['id'] = $name; } $separator = $this->getSeparator(); $placement = $this->getPlacement(); $markup = array(); $size = $element->getMaxFileSize(); if ($size > 0) { $element->setMaxFileSize(0); $markup[] = $view->formHidden('MAX_FILE_SIZE', $size); } if (Zend_File_Transfer_Adapter_Http::isApcAvailable()) { $markup[] = $view->formHidden(ini_get('apc.rfc1867_name'), uniqid(), array('id' => 'progress_key')); } else { if (Zend_File_Transfer_Adapter_Http::isUploadProgressAvailable()) { $markup[] = $view->formHidden('UPLOAD_IDENTIFIER', uniqid(), array('id' => 'progress_key')); } } if ($element->isArray()) { $name .= "[]"; $count = $element->getMultiFile(); for ($i = 0; $i < $count; ++$i) { $htmlAttribs = $attribs; $htmlAttribs['id'] .= '-' . $i; $markup[] = $view->formFile($name, $htmlAttribs); } } else { $markup[] = $view->formFile($name, $attribs); } $markup = implode($separator, $markup); $html = ''; switch ($placement) { case self::PREPEND: $html = $markup . $separator; case self::APPEND: default: $html = $separator . $markup; } $file = ''; $default_value = $element->getDefaultValue(); if ($default_value) { $file = '<a href="' . $default_value . '" target="_blank" class="view">Просмотр</a>'; } $button_title = isset($attribs['button_title']) ? $attribs['button_title'] : 'Обзор...'; $ret = ' <div class="elemBox file"> ' . $file . ' <a class="button" title="выберите файл">' . $html . '<span>' . $button_title . '</span></a> <div class="inputBox"> <input class="text" type="text" value="' . $default_value . '" name="' . $name . '" readonly="readonly"> </div> </div>'; return $ret; }