File "ImageListFromFolder.php"
Full Path: /home2/sdektunc/cepali.edu.mx/wp-content/plugins/smart-slider-3/Nextend/Framework/Form/Element/Radio/ImageListFromFolder.php
File size: 2.85 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Nextend\Framework\Form\Element\Radio;
use Nextend\Framework\Filesystem\Filesystem;
use Nextend\Framework\Form\AbstractField;
use Nextend\Framework\Form\ContainerInterface;
use Nextend\Framework\Form\TraitFieldset;
class ImageListFromFolder extends ImageList implements ContainerInterface {
use TraitFieldset;
protected $folder = '';
protected $filenameOnly = false;
protected function fetchElement() {
$this->initOptions();
return parent::fetchElement();
}
private function initOptions() {
$value = $this->getValue();
$currentValue = basename($value);
if ($value !== $currentValue) {
$this->setValue($currentValue);
}
$files = Filesystem::files($this->folder);
for ($i = 0; $i < count($files); $i++) {
$ext = pathinfo($files[$i], PATHINFO_EXTENSION);
$extensions = array(
'jpg',
'jpeg',
'png',
'svg',
'gif',
'webp'
);
if (in_array($ext, $extensions)) {
$path = $this->folder . $files[$i];
if ($this->filenameOnly) {
$value = pathinfo($files[$i], PATHINFO_FILENAME);
} else {
$value = basename($files[$i]);
}
$this->options[$value] = array(
'path' => $path
);
}
}
if (!isset($this->options[$currentValue])) {
foreach ($this->options as $value => $option) {
if (pathinfo($value, PATHINFO_FILENAME) == $currentValue) {
$currentValue = $value;
$this->setValue($currentValue);
}
}
}
}
protected function postHTML() {
if ($this->first) {
$html = '<div class="n2_field_image_list__fields">';
$element = $this->first;
while ($element) {
$html .= $this->decorateElement($element);
$element = $element->getNext();
}
$html .= '</div>';
return $html;
}
return '';
}
public function setFolder($folder) {
$this->folder = $folder;
}
public function setFilenameOnly($value) {
$this->filenameOnly = $value;
}
/**
* @param AbstractField $element
*
* @return string
*/
public function decorateElement($element) {
$html = '<div class="n2_field">';
$html .= '<div class="n2_field__label">';
$html .= $element->fetchTooltip();
$html .= '</div>';
$html .= '<div class="n2_field__element">';
$html .= $element->fetchElement();
$html .= '</div>';
$html .= '</div>';
return $html;
}
}