DIR : /home/kozerus/public_html/zc/adam/includes/classes/class.admin.zcObserverLogWriterTextfile.php
/home/kozerus/public_html/zc/adam/includes/classes
<?php
/**
* @package plugins
* @copyright Copyright 2003-2014 Zen Cart Development Team
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version GIT: $Id: Author: DrByte Jun 30 2014 New in v1.5.4 $
*
* Designed for ZC >= v1.5.4
*
*/
class zcObserverLogWriterTextfile extends base {
private $destinationLogFilename = '';
public function __construct(notifier $zco_notifier = null) {
if (!$zco_notifier) $zco_notifier = new notifier;
$this->notifier = $zco_notifier;
$this->notifier->attach($this, array('NOTIFY_ADMIN_FIRE_LOG_WRITERS', 'NOTIFY_ADMIN_FIRE_LOG_WRITER_RESET'));
$this->setLogFilename();
}
/**
* Set the folderpath on the filesystem where the data will be logged
*/
public function setLogFilename($filepath = '')
{
if ($filepath == '') $filepath = DIR_FS_LOGS . '/admin_log.txt';
$this->destinationLogFilename = $filepath;
}
public function updateNotifyAdminFireLogWriters(&$class, $eventID, $log_data)
{
$this->initLogFile();
/**
* The observer's $paramsArray contains the data passed to the notifier hook.
* That data is json-encoded here, and then stored to
* a custom specified text file on the filesystem using PHP error_log() function.
*/
$data = json_encode($log_data);
error_log($log_data['severity'] . ' [' . date('M-d-Y H:i:s') . '] ' . $log_data['ip_address'] . ' ' . $data . "\n", 3, $this->destinationLogFilename);
}
/**
* PCI requires that if the log is blank, that the logs be initialized
* So this tests whether the logging file exists, creates it if necessary, and
* then if the file is empty initializes it
*/
public function initLogFile()
{
$init_required = false;
if (!file_exists($this->destinationLogFilename))
{
touch($this->destinationLogFilename);
$init_required = true;
} else {
$val = file_get_contents($this->destinationLogFilename, null, null, null, 100);
if ($val === false || strlen($val) < 20) {
$init_required = true;
}
}
if ($init_required)
{
/**
* builds a json-encoded array here, for consistency with normal logging
*/
$admin_id = (isset($_SESSION['admin_id'])) ? $_SESSION['admin_id'] : 0;
$data = array('access_date' => date('M-d-Y H:i:s'),
'admin_id' => (int)$admin_id,
'page_accessed' => 'Log found to be empty. Logging started.',
'page_parameters' => '',
'ip_address' => substr($_SERVER['REMOTE_ADDR'],0,45),
'gzpost' => '',
'flagged' => 0,
'attention' => '',
'severity' => 'notice',
);
$data = json_encode($data);
error_log('notice [' . date('M-d-Y H:i:s') . '] ' . substr($_SERVER['REMOTE_ADDR'],0,45) . ' ' . $data . "\n", 3, $this->destinationLogFilename);
}
}
public function updateNotifyAdminFireLogWriterReset()
{
if (file_exists($this->destinationLogFilename))
{
unlink($this->destinationLogFilename);
}
$admname = '{' . preg_replace('/[^\w]/', '*', zen_get_admin_name()) . '[' . (int)$_SESSION['admin_id'] . ']}';
$admin_id = (isset($_SESSION['admin_id'])) ? $_SESSION['admin_id'] : 0;
$data = array('access_date' => date('M-d-Y H:i:s'),
'admin_id' => (int)$admin_id,
'page_accessed' => 'Log reset by ' . $admname . '.',
'page_parameters' => '',
'ip_address' => substr($_SERVER['REMOTE_ADDR'],0,45),
'gzpost' => '',
'flagged' => 0,
'attention' => '',
'severity' => 'warning',
'logmessage' => 'Log reset by ' . $admname . '.',
);
$data = json_encode($data);
error_log('notice [' . date('M-d-Y H:i:s') . '] ' . substr($_SERVER['REMOTE_ADDR'],0,45) . ' ' . $data . "\n", 3, $this->destinationLogFilename);
}
}
//
koh5_pano
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer