| Server IP : 195.130.67.5 / Your IP : 216.73.217.154 Web Server : Microsoft-IIS/10.0 System : Windows NT WEBSERVER1 10.0 build 17763 (Windows Server 2016) i586 User : IUSR ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /inetpub/wwwroot/icd/components/com_joomlawatch/ |
Upload File : |
<?php
/**
* JoomlaWatch - A real-time ajax joomla monitor and live stats
* @version 1.2.0
* @package JoomlaWatch
* @license http://www.gnu.org/licenses/gpl-3.0.txt GNU General Public License v3
* @copyright (C) 2007 by Matej Koval - All rights reserved!
* @website http://www.codegravity.com
**/
/** ensure this file is being included by a parent file */
if (!defined('_JEXEC') && !defined('_VALID_MOS'))
die('Restricted access');
class JoomlaWatchGoal {
var $database;
var $helper;
var $stat;
function JoomlaWatchGoal() {
$this->database = new JoomlaWatchDB();
$this->helper = new JoomlaWatchHelper();
$this->stat = new JoomlaWatchStat();
}
/**
* goals
*/
function getGoals() {
$query = "select * from #__joomlawatch_goals ";
$rows = @ $this->database->objectListQuery($query);
return @ $rows;
}
/**
* goals
*/
function getGoalNameById($id) {
$query = sprintf("select name from #__joomlawatch_goals where id = '%d'", (int) $id);
$rows = @ $this->database->objectListQuery($query);
$row = @ $rows[0];
return @ $row->name;
}
/**
* goals
*/
function getGoalById($id) {
//lower case id
$id = strtolower($id);
$query = sprintf("select * from #__joomlawatch_goals where id = '%d' limit 1 ", (int) $id);
$rows = $this->database->asocListQuery($query);
$row = @ $rows[0];
return $row;
}
/**
* goals
*/
function deleteGoal($id) {
$query = sprintf("delete from #__joomlawatch_goals where id = '%d' limit 1", (int) $id);
//TODO delete everyting from logs as well!
$result = $this->database->executeQuery($query);
$query = sprintf("delete from #__joomlawatch_info where (`group`='".DB_KEY_GOALS."' and name='%d')", (int) $id);
$this->database->executeQuery($query);
return $result;
}
/**
* goals
*/
function enableGoal($id) {
$query = sprintf("update #__joomlawatch_goals set disabled = NULL where id = '%d'", (int) $id);
return $this->database->executeQuery($query);
}
/**
* goals
*/
function disableGoal($id) {
$query = sprintf("update #__joomlawatch_goals set disabled = 1 where id = '%d'", (int) $id);
return $this->database->executeQuery($query);
}
/**
* goals
*/
function getGoalCount($id) {
$query = sprintf("select sum(value) as sum from #__joomlawatch_info where `group` = '".DB_KEY_GOALS."' and name = '%d'", (int) $id);
$sum = $this->database->resultQuery($query);
return $sum;
}
/**
* goals
*/
function saveGoal($post) {
$id = @ $post['id'];
if (@ $id) {
//update
$query = sprintf("update #__joomlawatch_goals set ");
$length = sizeof($post);
if (@ $post['option']) {
$length = $length -1;
}
$i = 0;
foreach ($post as $key => $value) {
$i++;
if ($key == "id" || $key == "option") // ignore key and option
continue;
$key = strtolower($key);
$query .= sprintf("%s = '%s' ", $this->database->getEscaped($key), $this->database->getEscaped($value));
if ($i < $length -1)
$query .= ", ";
}
$query .= sprintf(" where id = '%d'", (int) $id);
$result = $this->database->executeQuery($query);
} else {
// insert
unset($post['id']); // when it comes from new goal
$query = sprintf("insert into #__joomlawatch_goals (id, ");
$length = sizeof($post);
if (@ $post['option'])
$length = $length -1;
$i = 0;
foreach ($post as $key => $value) {
if ($key == "id" || $key == "option")
continue;
$i++;
$key = strtolower($key);
$query .= sprintf("%s", $this->database->getEscaped($key));
if ($i < $length)
$query .= ", ";
}
$query .= ") values ('',";
$i = 0;
foreach ($post as $key => $value) {
if ($key == "id" || $key == "option")
continue;
$i++;
$key = strtolower($key);
$query .= sprintf("'%s'", $this->database->getEscaped($value));
if ($i < $length)
$query .= ",";
}
$query .= ")";
$result = $this->database->executeQuery($query);
}
return $result;
}
/**
* goals
*/
function checkGoals($title, $username, $ip, $came_from, $liveSite = "") {
global $mainframe;
$query = sprintf("select * from #__joomlawatch_goals");
$rows = $this->database->objectListQuery($query);
foreach ($rows as $row) {
$achieved = false;
if ($row->disabled)
continue;
if (trim($row->uri_condition)) {
if (@ $this->helper->wildcardSearch($row->uri_condition, trim($this->helper->getURI()))) {
$achieved = true;
} else
continue;
}
if (trim($row->get_condition)) {
if (@ $this->helper->wildcardSearch($row->get_condition, trim(JoomlaWatchHelper::requestGet($row->get_var)))) {
$achieved = true;
} else
if ($row->get_var == "*") {
foreach (JoomlaWatchHelper::requestGet() as $get) {
if ($this->helper->wildcardSearch($row->get_condition, trim($get))) {
$achieved = true;
}
}
} else
continue;
}
if (trim($row->post_condition)) {
if (@ $this->helper->wildcardSearch($row->post_condition, trim(JoomlaWatchHelper::requestPost($row->post_var)))) {
$achieved = true;
} else
if ($row->post_var == "*") {
foreach (JoomlaWatchHelper::requestPost() as $post) {
if ($this->helper->wildcardSearch($row->post_condition, trim($post))) {
$achieved = true;
}
}
} else
continue;
}
if (trim($row->title_condition)) {
if (@ $this->helper->wildcardSearch($row->title_condition, trim($title))) {
$achieved = true;
} else
continue;
}
if (trim($row->username_condition)) {
if (@ $this->helper->wildcardSearch($row->username_condition, trim($username))) {
$achieved = true;
} else
continue;
}
if (trim($row->ip_condition)) {
if (@ $this->helper->wildcardSearch($row->ip_condition, trim($ip))) {
$achieved = true;
} else
continue;
}
if (trim($row->came_from_condition)) {
if (@ $this->helper->wildcardSearch($row->came_from_condition, trim($came_from)) || $this->helper->wildcardSearch($liveSite.$row->came_from_condition, trim($came_from))) {
$achieved = true;
} else
continue;
}
if (trim($row->country_condition)) {
$country = $this->helper->countryByIp($ip);
if (@ $this->helper->wildcardSearch($row->country_condition, trim($country))) {
$achieved = true;
} else
continue;
}
if ($achieved) {
$this->stat->increaseKeyValueInGroup(DB_KEY_GOALS, $row->id);
if (@ $row->redirect) {
// for 1.0 only ?
mosRedirect(@ $row->redirect);
}
if (@ $row->block) {
$this->dieWithBlockingMessage($ip);
}
}
}
}
}
?>