%PDF- %PDF-
| Direktori : /home/lightco1/upgrade.lightco.com.au/administrator/components/com_csvi/helper/ |
| Current File : /home/lightco1/upgrade.lightco.com.au/administrator/components/com_csvi/helper/file.php |
<?php
/**
* @package CSVI
* @subpackage File
*
* @author Roland Dalmulder <contact@csvimproved.com>
* @copyright Copyright (C) 2006 - 2016 RolandD Cyber Produksi. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
* @link http://www.csvimproved.com
*/
defined('_JEXEC') or die;
/**
* File helper.
*
* @package CSVI
* @subpackage File
* @since 6.0
*/
abstract class CsviHelperFile
{
/**
* Contains the full path to where the filename is stored
*
* @var string
* @since 6.0
*/
protected $folder = '';
/**
* Contains the name of the file being processed
*
* @var string
* @since 3.0
*/
protected $filename = '';
/**
* Contains the extension of the uploaded file
*
* @var string
* @since 3.0
*/
protected $extension = '';
/**
* Contains the value whether or not the file uses an extension that is allowed.
*
* @see $suffixes
* @var int
* @since 3.0
*/
protected $valid_extension = false;
/**
* Filepointer used when opening files
*
* @var Resource
* @since 3.0
*/
protected $fp;
/**
* Internal line pointer
*
* @var int
* @since 3.0
*/
protected $linepointer = 1;
/**
* Contains the data that is read from file
*
* @var array
* @since 3.0
*/
protected $data;
/**
* Sets to true if a file has been closed
*
* @var bool
* @since 3.0
*/
protected $closed = false;
/**
* Holds the template
*
* @var CsviHelperTemplate
* @since 6.0
*/
protected $template;
/**
* Holds the logger
*
* @var CsviHelperLog
* @since 6.0
*/
protected $log;
/**
* Holds the CSVI helper
*
* @var CsviHelperCsvi
* @since 6.0
*/
protected $helper;
/**
* Holds the JInput helper
*
* @var JInput
* @since 6.0
*/
protected $input;
/**
* Holds the CSVI fields helper
*
* @var CsviHelperFields
* @since 6.0
*/
protected $fields;
/**
* Construct the class and its settings.
*
* @param CsviHelperTemplate $template An instance of CsviHelperTemplate
* @param CsviHelperLog $log An instance of CsviHelperLog
* @param CsviHelperCsvi $csvihelper An instance of CsviHelperCsvi
* @param JInput $input An instance of JInput
*
* @since 3.0
*/
public function __construct(CsviHelperTemplate $template, CsviHelperLog $log, CsviHelperCsvi $csvihelper, JInput $input)
{
// Load the necessary libraries
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.archive');
// Set the parameters
$this->template = $template;
$this->log = $log;
$this->helper = $csvihelper;
$this->input = $input;
// Auto detect line-endings to also support Mac line-endings
if ($template->get('im_mac', false))
{
ini_set('auto_detect_line_endings', true);
}
}
/**
* Close the file.
*
* @param boolean $removeFolder Specify if the temporary folder should be removed
*
* @return void.
*
* @since 3.0
*/
public function closeFile($removeFolder=true)
{
// Delete the uploaded folder
if ($removeFolder)
{
$this->removeFolder();
}
}
/**
* Remove the temporary folder.
*
* @return void.
*
* @since 3.0
*/
protected function removeFolder()
{
$folder = JPath::clean(dirname($this->filename), '/');
$pos = strpos($folder, CSVIPATH_TMP);
if ($pos !== false)
{
if (JFolder::exists($folder))
{
JFolder::delete($folder);
}
}
}
/**
* Advances the file pointer 1 forward.
*
* @return void.
*
* @since 3.0
*/
public function next()
{
$this->readNextLine();
}
/**
* Empties the data.
*
* @return bool Returns true.
*
* @since 3.0
*/
public function clearData()
{
$this->data = null;
return true;
}
/**
* Set the current filename.
*
* @param string $filename The name of the file being processed.
*
* @return void.
*
* @since 6.0
*/
final public function setFilename($filename)
{
$this->filename = $filename;
}
/**
* Return the current filename.
*
* @return string The name of the file being processed.
*
* @since 6.0
*/
final public function getFilename()
{
return $this->filename;
}
/**
* Return the current file extension.
*
* @return string The extension of the file being processed.
*
* @since 6.0
*/
final public function getExtension()
{
return $this->extension;
}
/**
* Set the CSVI fields helper.
*
* @param CsviHelperFields $fields An instance of CsviHelperFields
*
* @return void.
*
* @since 6.0
*/
final public function setFields($fields)
{
$this->fields = $fields;
}
/**
* Process the file to import.
*
* @return bool Returns true.
*
* @since 3.0
*/
abstract public function processFile();
/**
* Read the next line in the file.
*
* @return mixed True if data is read | false if data cannot be read | array with data if headers are retrieved.
*
* @since 3.0
*/
abstract public function readNextLine();
/**
* Open the file to read.
*
* @return bool Returns true.
*
* @since 3.0
*/
abstract public function openFile();
/**
* Get the file position.
*
* @return int Current position in the file.
*
* @since 3.0
*/
abstract public function getFilePos();
/**
* Set the current position in the file.
*
* @param int $position The position to move to.
*
* @return int 0 if success | -1 if not success.
*
* @since 3.0
*/
abstract public function setFilePos($position);
/**
* Load the column headers from a file.
*
* @return mixed array when columnheaders are found | false if columnheaders cannot be read.
*
* @since 3.0
*/
abstract public function loadColumnHeaders();
/**
* Sets the file pointer back to the beginning of the file.
*
* @return void.
*
* @since 3.0
*/
abstract public function rewind();
/**
* Returns the number of lines.
*
* @return int Returns the number of lines in the file.
*
* @since 6.0
*/
abstract public function lineCount();
}