public function render($xmlpath, $data) { N2Loader::import('libraries.form.form'); $form = new N2Form(N2Base::getApplication('smartslider')->getApplicationType('backend')); $form->loadArray($data); $form->loadXMLFile($xmlpath); echo $form->render('settings'); N2JS::addFirstCode(' new NextendForm("smartslider-form", ' . json_encode($form->_data) . ', null, "' . N2Filesystem::toLinux(N2Filesystem::pathToRelativePath($xmlpath)) . '", "settings", "' . N2Uri::ajaxUri('nextend', 'smartslider') . '"); '); }
function fetchElement() { $this->setfolder(); $files = N2Filesystem::files($this->_folder); if (N2XmlHelper::getAttribute($this->_xml, 'required') == '') { $this->_xml->addChild('option', n2_('No image'))->addAttribute('value', -1); } for ($i = 0; $i < count($files); $i++) { $ext = pathinfo($files[$i], PATHINFO_EXTENSION); if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png' || $ext == 'svg' || $ext == 'gif') { $this->_xml->addChild('option', htmlspecialchars(ucfirst($files[$i])))->addAttribute('value', N2Filesystem::toLinux(N2Filesystem::pathToRelativePath($this->_folder . $files[$i]))); } } $html = N2Html::openTag("div", array('class' => 'n2-imagelist', 'style' => N2XmlHelper::getAttribute($this->_xml, 'style'))); $html .= parent::fetchElement(); $html .= N2Html::closeTag('div'); return $html; }
public function actionUpload() { if (defined('N2_IMAGE_UPLOAD_DISABLE')) { N2Message::error(n2_('You are not allowed to upload!')); $this->response->error(); } $this->validateToken(); $root = N2Filesystem::getImagesFolder(); $folder = ltrim(rtrim(N2Request::getVar('path', ''), '/'), '/'); $path = N2Filesystem::realpath($root . '/' . $folder); if ($path === false || $path == '') { $folder = preg_replace("/[^A-Za-z0-9]/", '', $folder); if (empty($folder)) { N2Message::error(n2_('Folder is missing!')); $this->response->error(); } else { N2Filesystem::createFolder($root . '/' . $folder); $path = N2Filesystem::realpath($root . '/' . $folder); } } $relativePath = N2Filesystem::toLinux($this->relative($path, $root)); if (!$relativePath) { $relativePath = ''; } $response = array('path' => $relativePath); try { if (isset($_FILES) && isset($_FILES['image']) && isset($_FILES['image']['name'])) { $info = pathinfo($_FILES['image']['name']); $fileName = preg_replace('/[^a-zA-Z0-9_-]/', '', $info['filename']); if (strlen($fileName) == 0) { $fileName = ''; } $upload = new N2BulletProof(); $file = $upload->uploadDir($path)->upload($_FILES['image'], $fileName); $response['name'] = basename($file); $response['url'] = N2ImageHelper::dynamic(N2Filesystem::pathToAbsoluteURL($file)); } } catch (Exception $e) { N2Message::error($e->getMessage()); $this->response->error(); } $this->response->respond($response); }
private function makeUrl($matches) { if (substr($matches[1], 0, 5) == 'data:') { return $matches[0]; } if (substr($matches[1], 0, 4) == 'http') { return $matches[0]; } if (substr($matches[1], 0, 2) == '//') { return $matches[0]; } $exploded = explode('?', $matches[1]); $realPath = realpath($this->basePath . '/' . $exploded[0]); if ($realPath === false) { return 'url(' . str_replace(array('http://', 'https://'), '//', $this->baseUrl) . '/' . $matches[1] . ')'; } $realPath = N2Filesystem::fixPathSeparator($realPath); $assetPath = N2Filesystem::fixPathSeparator($this->getAssetFileFolder()); return 'url(' . N2Filesystem::toLinux($this->find_relative_path($assetPath, $realPath)) . (isset($exploded[1]) ? '?' . $exploded[1] : '') . ')'; }