File Manager

Current Directory: /home/astoriaah/www/old15/administrator/components/com_sh404sef/models
Viewing File: /home/astoriaah/www/old15/administrator/components/com_sh404sef/models/notfoundstore.full.php
<?php /** * sh404SEF - SEO extension for Joomla! * * @author Yannick Gaultier * @copyright (c) Yannick Gaultier 2014 * @package sh404SEF * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @version 4.4.4.1791 * @date 2014-07-01 */ // Security check to ensure this file is being included by a parent file. if (!defined('_JEXEC')) die('Direct Access to this location is not allowed.'); /** * Stores 404 infos into database * * */ class Sh404sefModelNotfoundstore { private static $_instance = null; /** * Singleton method * * @param string $extension extension name, with com_ - ie com_content * @return object instance of Sh404sefModelCategories */ public static function getInstance() { if (is_null(self::$_instance)) { self::$_instance = new Sh404sefModelNotfoundstore(); } return self::$_instance; } public function store($reqPath, $config) { // optionnally log the 404 details if ($config->shLog404Errors && !empty($reqPath)) { try { $record = ShlDbHelper::selectObject('#__sh404sef_urls', '*', array('oldurl' => $reqPath)); if (!empty($record)) { // we have, so update counter ShlDbHelper::runQuotedQuery('update ?? set cpt=(cpt+1) where ?? = ?', array('#__sh404sef_urls', 'oldurl'), array($reqPath)); } else { // record the 404 ShlDbHelper::insert('#__sh404sef_urls', array('cpt' => 1, 'rank' => 0, 'oldurl' => $reqPath, 'newurl' => '', 'dateadd' => ShlSystem_Date::getUTCNow('Y-m-d'))); } // add more details about 404 into security log file if ($config->shSecEnableSecurity && $config->shSecLogAttacks) { $logData = array(); $logData['DATE'] = ShlSystem_Date::getSiteNow('Y-m-d'); $logData['TIME'] = ShlSystem_Date::getSiteNow('H:i:s'); $logData['CAUSE'] = 'Page not found (404)'; $logData['C-IP'] = empty($_SERVER['REMOTE_ADDR']) ? '-' : $_SERVER['REMOTE_ADDR']; if ($_SERVER['REMOTE_ADDR'] != 'localhost' && $_SERVER['REMOTE_ADDR'] != '::1') { $name = getHostByAddr($_SERVER['REMOTE_ADDR']); } else { $name = '-'; } $logData['NAME'] = $name; $logData['USER_AGENT'] = empty($_SERVER['HTTP_USER_AGENT']) ? '-' : $_SERVER['HTTP_USER_AGENT']; $logData['REQUEST_METHOD'] = $_SERVER['REQUEST_METHOD']; $logData['REQUEST_URI'] = $_SERVER['REQUEST_URI']; $logData['COMMENT'] = ''; shLogToSecFile($logData); } } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, ' Database error: ' . $e->getMessage()); return false; } } return true; } }