Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/wordfenc.../lib
File: wfLog.php
/**
[1500] Fix | Delete
* @param mixed $delayedHumanBotFiltering Whether or not human/bot filtering should be applied in PHP rather than SQL.
[1501] Fix | Delete
* @param mixed $humanOnly When using delayed filtering, whether to show only humans or only bots.
[1502] Fix | Delete
*
[1503] Fix | Delete
* @return string
[1504] Fix | Delete
* @throws wfLiveTrafficQueryException
[1505] Fix | Delete
*/
[1506] Fix | Delete
public function buildQuery(&$delayedHumanBotFiltering, &$humanOnly) {
[1507] Fix | Delete
global $wpdb;
[1508] Fix | Delete
$filters = $this->getFilters();
[1509] Fix | Delete
$groupBy = $this->getGroupBy();
[1510] Fix | Delete
$startDate = $this->getStartDate();
[1511] Fix | Delete
$endDate = $this->getEndDate();
[1512] Fix | Delete
$limit = absint($this->getLimit());
[1513] Fix | Delete
$offset = absint($this->getOffset());
[1514] Fix | Delete
[1515] Fix | Delete
$wheres = array("h.action != 'logged:waf'", "h.action != 'scan:detectproxy'");
[1516] Fix | Delete
if ($startDate) {
[1517] Fix | Delete
$wheres[] = $wpdb->prepare('h.ctime > %f', $startDate);
[1518] Fix | Delete
}
[1519] Fix | Delete
if ($endDate) {
[1520] Fix | Delete
$wheres[] = $wpdb->prepare('h.ctime < %f', $endDate);
[1521] Fix | Delete
}
[1522] Fix | Delete
[1523] Fix | Delete
if ($filters instanceof wfLiveTrafficQueryFilterCollection) {
[1524] Fix | Delete
if (!wfConfig::liveTrafficEnabled()) {
[1525] Fix | Delete
$individualFilters = $filters->getFilters();
[1526] Fix | Delete
foreach ($individualFilters as $index => $f) {
[1527] Fix | Delete
if ($f->getParam() == 'jsRun' && $delayedHumanBotFiltering !== null && $humanOnly !== null) {
[1528] Fix | Delete
$humanOnly = wfUtils::truthyToBoolean($f->getValue());
[1529] Fix | Delete
if ($f->getOperator() == '!=') {
[1530] Fix | Delete
$humanOnly = !$humanOnly;
[1531] Fix | Delete
}
[1532] Fix | Delete
$delayedHumanBotFiltering = true;
[1533] Fix | Delete
unset($individualFilters[$index]);
[1534] Fix | Delete
}
[1535] Fix | Delete
}
[1536] Fix | Delete
$filters->setFilters($individualFilters);
[1537] Fix | Delete
}
[1538] Fix | Delete
[1539] Fix | Delete
$filtersSQL = $filters->toSQL();
[1540] Fix | Delete
if ($filtersSQL) {
[1541] Fix | Delete
$wheres[] = $filtersSQL;
[1542] Fix | Delete
}
[1543] Fix | Delete
}
[1544] Fix | Delete
[1545] Fix | Delete
$orderBy = 'ORDER BY h.ctime DESC';
[1546] Fix | Delete
$select = ', l.username';
[1547] Fix | Delete
$groupBySQL = '';
[1548] Fix | Delete
if ($groupBy && $groupBy->validate()) {
[1549] Fix | Delete
$groupBySQL = "GROUP BY {$groupBy->getParam()}";
[1550] Fix | Delete
$orderBy = 'ORDER BY hitCount DESC';
[1551] Fix | Delete
$select .= ', COUNT(h.id) as hitCount, MAX(h.ctime) AS lastHit, u.user_login AS username';
[1552] Fix | Delete
[1553] Fix | Delete
if ($groupBy->getParam() == 'user_login') {
[1554] Fix | Delete
$wheres[] = 'user_login IS NOT NULL';
[1555] Fix | Delete
}
[1556] Fix | Delete
else if ($groupBy->getParam() == 'action') {
[1557] Fix | Delete
$wheres[] = '(statusCode = 403 OR statusCode = 503)';
[1558] Fix | Delete
}
[1559] Fix | Delete
}
[1560] Fix | Delete
[1561] Fix | Delete
$where = join(' AND ', $wheres);
[1562] Fix | Delete
if ($where) {
[1563] Fix | Delete
$where = 'WHERE ' . $where;
[1564] Fix | Delete
}
[1565] Fix | Delete
if (!$limit || $limit > 1000) {
[1566] Fix | Delete
$limit = 20;
[1567] Fix | Delete
}
[1568] Fix | Delete
$limitSQL = $wpdb->prepare('LIMIT %d, %d', $offset, $limit);
[1569] Fix | Delete
[1570] Fix | Delete
$table_wfLogins = wfDB::networkTable('wfLogins');
[1571] Fix | Delete
$sql = <<<SQL
[1572] Fix | Delete
SELECT h.*, u.display_name{$select} FROM {$this->getTableName()} h
[1573] Fix | Delete
LEFT JOIN {$wpdb->users} u on h.userID = u.ID
[1574] Fix | Delete
LEFT JOIN {$table_wfLogins} l on h.id = l.hitID
[1575] Fix | Delete
$where
[1576] Fix | Delete
$groupBySQL
[1577] Fix | Delete
$orderBy
[1578] Fix | Delete
$limitSQL
[1579] Fix | Delete
SQL;
[1580] Fix | Delete
[1581] Fix | Delete
return $sql;
[1582] Fix | Delete
}
[1583] Fix | Delete
[1584] Fix | Delete
/**
[1585] Fix | Delete
* @param $param
[1586] Fix | Delete
* @return bool
[1587] Fix | Delete
*/
[1588] Fix | Delete
public function isValidParam($param) {
[1589] Fix | Delete
return array_key_exists(strtolower($param), $this->validParams);
[1590] Fix | Delete
}
[1591] Fix | Delete
[1592] Fix | Delete
/**
[1593] Fix | Delete
* @param $getParam
[1594] Fix | Delete
* @return bool|string
[1595] Fix | Delete
*/
[1596] Fix | Delete
public function getColumnFromParam($getParam) {
[1597] Fix | Delete
$getParam = strtolower($getParam);
[1598] Fix | Delete
if (array_key_exists($getParam, $this->validParams)) {
[1599] Fix | Delete
return $this->validParams[$getParam];
[1600] Fix | Delete
}
[1601] Fix | Delete
return false;
[1602] Fix | Delete
}
[1603] Fix | Delete
[1604] Fix | Delete
/**
[1605] Fix | Delete
* @return wfLiveTrafficQueryFilterCollection
[1606] Fix | Delete
*/
[1607] Fix | Delete
public function getFilters() {
[1608] Fix | Delete
return $this->filters;
[1609] Fix | Delete
}
[1610] Fix | Delete
[1611] Fix | Delete
/**
[1612] Fix | Delete
* @param wfLiveTrafficQueryFilterCollection $filters
[1613] Fix | Delete
*/
[1614] Fix | Delete
public function setFilters($filters) {
[1615] Fix | Delete
$this->filters = $filters;
[1616] Fix | Delete
}
[1617] Fix | Delete
[1618] Fix | Delete
/**
[1619] Fix | Delete
* @return float|null
[1620] Fix | Delete
*/
[1621] Fix | Delete
public function getStartDate() {
[1622] Fix | Delete
return $this->startDate;
[1623] Fix | Delete
}
[1624] Fix | Delete
[1625] Fix | Delete
/**
[1626] Fix | Delete
* @param float|null $startDate
[1627] Fix | Delete
*/
[1628] Fix | Delete
public function setStartDate($startDate) {
[1629] Fix | Delete
$this->startDate = $startDate;
[1630] Fix | Delete
}
[1631] Fix | Delete
[1632] Fix | Delete
/**
[1633] Fix | Delete
* @return float|null
[1634] Fix | Delete
*/
[1635] Fix | Delete
public function getEndDate() {
[1636] Fix | Delete
return $this->endDate;
[1637] Fix | Delete
}
[1638] Fix | Delete
[1639] Fix | Delete
/**
[1640] Fix | Delete
* @param float|null $endDate
[1641] Fix | Delete
*/
[1642] Fix | Delete
public function setEndDate($endDate) {
[1643] Fix | Delete
$this->endDate = $endDate;
[1644] Fix | Delete
}
[1645] Fix | Delete
[1646] Fix | Delete
/**
[1647] Fix | Delete
* @return wfLiveTrafficQueryGroupBy
[1648] Fix | Delete
*/
[1649] Fix | Delete
public function getGroupBy() {
[1650] Fix | Delete
return $this->groupBy;
[1651] Fix | Delete
}
[1652] Fix | Delete
[1653] Fix | Delete
/**
[1654] Fix | Delete
* @param wfLiveTrafficQueryGroupBy $groupBy
[1655] Fix | Delete
*/
[1656] Fix | Delete
public function setGroupBy($groupBy) {
[1657] Fix | Delete
$this->groupBy = $groupBy;
[1658] Fix | Delete
}
[1659] Fix | Delete
[1660] Fix | Delete
/**
[1661] Fix | Delete
* @return int
[1662] Fix | Delete
*/
[1663] Fix | Delete
public function getLimit() {
[1664] Fix | Delete
return $this->limit;
[1665] Fix | Delete
}
[1666] Fix | Delete
[1667] Fix | Delete
/**
[1668] Fix | Delete
* @param int $limit
[1669] Fix | Delete
*/
[1670] Fix | Delete
public function setLimit($limit) {
[1671] Fix | Delete
$this->limit = $limit;
[1672] Fix | Delete
}
[1673] Fix | Delete
[1674] Fix | Delete
/**
[1675] Fix | Delete
* @return int
[1676] Fix | Delete
*/
[1677] Fix | Delete
public function getOffset() {
[1678] Fix | Delete
return $this->offset;
[1679] Fix | Delete
}
[1680] Fix | Delete
[1681] Fix | Delete
/**
[1682] Fix | Delete
* @param int $offset
[1683] Fix | Delete
*/
[1684] Fix | Delete
public function setOffset($offset) {
[1685] Fix | Delete
$this->offset = $offset;
[1686] Fix | Delete
}
[1687] Fix | Delete
[1688] Fix | Delete
/**
[1689] Fix | Delete
* @return string
[1690] Fix | Delete
*/
[1691] Fix | Delete
public function getTableName() {
[1692] Fix | Delete
if ($this->tableName === null) {
[1693] Fix | Delete
$this->tableName = wfDB::networkTable('wfHits');
[1694] Fix | Delete
}
[1695] Fix | Delete
return $this->tableName;
[1696] Fix | Delete
}
[1697] Fix | Delete
[1698] Fix | Delete
/**
[1699] Fix | Delete
* @param string $tableName
[1700] Fix | Delete
*/
[1701] Fix | Delete
public function setTableName($tableName) {
[1702] Fix | Delete
$this->tableName = $tableName;
[1703] Fix | Delete
}
[1704] Fix | Delete
[1705] Fix | Delete
/**
[1706] Fix | Delete
* @return wfLog
[1707] Fix | Delete
*/
[1708] Fix | Delete
public function getWFLog() {
[1709] Fix | Delete
return $this->wfLog;
[1710] Fix | Delete
}
[1711] Fix | Delete
[1712] Fix | Delete
/**
[1713] Fix | Delete
* @param wfLog $wfLog
[1714] Fix | Delete
*/
[1715] Fix | Delete
public function setWFLog($wfLog) {
[1716] Fix | Delete
$this->wfLog = $wfLog;
[1717] Fix | Delete
}
[1718] Fix | Delete
}
[1719] Fix | Delete
[1720] Fix | Delete
class wfLiveTrafficQueryFilterCollection {
[1721] Fix | Delete
[1722] Fix | Delete
private $filters = array();
[1723] Fix | Delete
[1724] Fix | Delete
/**
[1725] Fix | Delete
* wfLiveTrafficQueryFilterCollection constructor.
[1726] Fix | Delete
*
[1727] Fix | Delete
* @param array $filters
[1728] Fix | Delete
*/
[1729] Fix | Delete
public function __construct($filters = array()) {
[1730] Fix | Delete
$this->filters = $filters;
[1731] Fix | Delete
}
[1732] Fix | Delete
[1733] Fix | Delete
public function toSQL() {
[1734] Fix | Delete
$params = array();
[1735] Fix | Delete
$sql = '';
[1736] Fix | Delete
$filters = $this->getFilters();
[1737] Fix | Delete
if ($filters) {
[1738] Fix | Delete
/** @var wfLiveTrafficQueryFilter $filter */
[1739] Fix | Delete
foreach ($filters as $filter) {
[1740] Fix | Delete
$params[$filter->getParam()][] = $filter;
[1741] Fix | Delete
}
[1742] Fix | Delete
}
[1743] Fix | Delete
[1744] Fix | Delete
foreach ($params as $param => $filters) {
[1745] Fix | Delete
// $sql .= '(';
[1746] Fix | Delete
$filtersSQL = '';
[1747] Fix | Delete
foreach ($filters as $filter) {
[1748] Fix | Delete
$filterSQL = $filter->toSQL();
[1749] Fix | Delete
if ($filterSQL) {
[1750] Fix | Delete
$filtersSQL .= $filterSQL . ' OR ';
[1751] Fix | Delete
}
[1752] Fix | Delete
}
[1753] Fix | Delete
if ($filtersSQL) {
[1754] Fix | Delete
$sql .= '(' . substr($filtersSQL, 0, -4) . ') AND ';
[1755] Fix | Delete
}
[1756] Fix | Delete
}
[1757] Fix | Delete
if ($sql) {
[1758] Fix | Delete
$sql = substr($sql, 0, -5);
[1759] Fix | Delete
}
[1760] Fix | Delete
return $sql;
[1761] Fix | Delete
}
[1762] Fix | Delete
[1763] Fix | Delete
public function addFilter($filter) {
[1764] Fix | Delete
$this->filters[] = $filter;
[1765] Fix | Delete
}
[1766] Fix | Delete
[1767] Fix | Delete
/**
[1768] Fix | Delete
* @return array
[1769] Fix | Delete
*/
[1770] Fix | Delete
public function getFilters() {
[1771] Fix | Delete
return $this->filters;
[1772] Fix | Delete
}
[1773] Fix | Delete
[1774] Fix | Delete
/**
[1775] Fix | Delete
* @param array $filters
[1776] Fix | Delete
*/
[1777] Fix | Delete
public function setFilters($filters) {
[1778] Fix | Delete
$this->filters = $filters;
[1779] Fix | Delete
}
[1780] Fix | Delete
}
[1781] Fix | Delete
[1782] Fix | Delete
class wfLiveTrafficQueryFilter {
[1783] Fix | Delete
[1784] Fix | Delete
private $param;
[1785] Fix | Delete
private $operator;
[1786] Fix | Delete
private $value;
[1787] Fix | Delete
[1788] Fix | Delete
protected $validOperators = array(
[1789] Fix | Delete
'=',
[1790] Fix | Delete
'!=',
[1791] Fix | Delete
'contains',
[1792] Fix | Delete
'match',
[1793] Fix | Delete
'hregexp',
[1794] Fix | Delete
'hnotregexp',
[1795] Fix | Delete
);
[1796] Fix | Delete
[1797] Fix | Delete
/**
[1798] Fix | Delete
* @var wfLiveTrafficQuery
[1799] Fix | Delete
*/
[1800] Fix | Delete
private $query;
[1801] Fix | Delete
[1802] Fix | Delete
/**
[1803] Fix | Delete
* wfLiveTrafficQueryFilter constructor.
[1804] Fix | Delete
*
[1805] Fix | Delete
* @param wfLiveTrafficQuery $query
[1806] Fix | Delete
* @param string $param
[1807] Fix | Delete
* @param string $operator
[1808] Fix | Delete
* @param string $value
[1809] Fix | Delete
*/
[1810] Fix | Delete
public function __construct($query, $param, $operator, $value) {
[1811] Fix | Delete
$this->query = $query;
[1812] Fix | Delete
$this->param = $param;
[1813] Fix | Delete
$this->operator = $operator;
[1814] Fix | Delete
$this->value = $value;
[1815] Fix | Delete
}
[1816] Fix | Delete
[1817] Fix | Delete
/**
[1818] Fix | Delete
* @return string|void
[1819] Fix | Delete
*/
[1820] Fix | Delete
public function toSQL() {
[1821] Fix | Delete
$sql = '';
[1822] Fix | Delete
if ($this->validate()) {
[1823] Fix | Delete
/** @var wpdb $wpdb */
[1824] Fix | Delete
global $wpdb;
[1825] Fix | Delete
$operator = $this->getOperator();
[1826] Fix | Delete
$param = $this->getQuery()->getColumnFromParam($this->getParam());
[1827] Fix | Delete
if (!$param) {
[1828] Fix | Delete
return $sql;
[1829] Fix | Delete
}
[1830] Fix | Delete
$value = $this->getValue();
[1831] Fix | Delete
switch ($operator) {
[1832] Fix | Delete
case 'contains':
[1833] Fix | Delete
$like = addcslashes($value, '_%\\');
[1834] Fix | Delete
$sql = $wpdb->prepare("$param LIKE %s", "%$like%");
[1835] Fix | Delete
break;
[1836] Fix | Delete
[1837] Fix | Delete
case 'match':
[1838] Fix | Delete
$sql = $wpdb->prepare("$param LIKE %s", $value);
[1839] Fix | Delete
break;
[1840] Fix | Delete
[1841] Fix | Delete
case 'hregexp':
[1842] Fix | Delete
$sql = $wpdb->prepare("HEX($param) REGEXP %s", $value);
[1843] Fix | Delete
break;
[1844] Fix | Delete
[1845] Fix | Delete
case 'hnotregexp':
[1846] Fix | Delete
$sql = $wpdb->prepare("HEX($param) NOT REGEXP %s", $value);
[1847] Fix | Delete
break;
[1848] Fix | Delete
[1849] Fix | Delete
default:
[1850] Fix | Delete
$sql = $wpdb->prepare("$param $operator %s", $value);
[1851] Fix | Delete
break;
[1852] Fix | Delete
}
[1853] Fix | Delete
}
[1854] Fix | Delete
return $sql;
[1855] Fix | Delete
}
[1856] Fix | Delete
[1857] Fix | Delete
/**
[1858] Fix | Delete
* @return bool
[1859] Fix | Delete
*/
[1860] Fix | Delete
public function validate() {
[1861] Fix | Delete
$valid = $this->isValidParam($this->getParam()) && $this->isValidOperator($this->getOperator());
[1862] Fix | Delete
if (defined('WP_DEBUG') && WP_DEBUG) {
[1863] Fix | Delete
if (!$valid) {
[1864] Fix | Delete
throw new wfLiveTrafficQueryException("Invalid param/operator [{$this->getParam()}]/[{$this->getOperator()}] passed to " . get_class($this));
[1865] Fix | Delete
}
[1866] Fix | Delete
return true;
[1867] Fix | Delete
}
[1868] Fix | Delete
return $valid;
[1869] Fix | Delete
}
[1870] Fix | Delete
[1871] Fix | Delete
/**
[1872] Fix | Delete
* @param string $param
[1873] Fix | Delete
* @return bool
[1874] Fix | Delete
*/
[1875] Fix | Delete
public function isValidParam($param) {
[1876] Fix | Delete
return $this->getQuery() && $this->getQuery()->isValidParam($param);
[1877] Fix | Delete
}
[1878] Fix | Delete
[1879] Fix | Delete
/**
[1880] Fix | Delete
* @param string $operator
[1881] Fix | Delete
* @return bool
[1882] Fix | Delete
*/
[1883] Fix | Delete
public function isValidOperator($operator) {
[1884] Fix | Delete
return in_array($operator, $this->validOperators);
[1885] Fix | Delete
}
[1886] Fix | Delete
[1887] Fix | Delete
/**
[1888] Fix | Delete
* @return mixed
[1889] Fix | Delete
*/
[1890] Fix | Delete
public function getParam() {
[1891] Fix | Delete
return $this->param;
[1892] Fix | Delete
}
[1893] Fix | Delete
[1894] Fix | Delete
/**
[1895] Fix | Delete
* @param mixed $param
[1896] Fix | Delete
*/
[1897] Fix | Delete
public function setParam($param) {
[1898] Fix | Delete
$this->param = $param;
[1899] Fix | Delete
}
[1900] Fix | Delete
[1901] Fix | Delete
/**
[1902] Fix | Delete
* @return mixed
[1903] Fix | Delete
*/
[1904] Fix | Delete
public function getOperator() {
[1905] Fix | Delete
return $this->operator;
[1906] Fix | Delete
}
[1907] Fix | Delete
[1908] Fix | Delete
/**
[1909] Fix | Delete
* @param mixed $operator
[1910] Fix | Delete
*/
[1911] Fix | Delete
public function setOperator($operator) {
[1912] Fix | Delete
$this->operator = $operator;
[1913] Fix | Delete
}
[1914] Fix | Delete
[1915] Fix | Delete
/**
[1916] Fix | Delete
* @return mixed
[1917] Fix | Delete
*/
[1918] Fix | Delete
public function getValue() {
[1919] Fix | Delete
return $this->value;
[1920] Fix | Delete
}
[1921] Fix | Delete
[1922] Fix | Delete
/**
[1923] Fix | Delete
* @param mixed $value
[1924] Fix | Delete
*/
[1925] Fix | Delete
public function setValue($value) {
[1926] Fix | Delete
$this->value = $value;
[1927] Fix | Delete
}
[1928] Fix | Delete
[1929] Fix | Delete
/**
[1930] Fix | Delete
* @return wfLiveTrafficQuery
[1931] Fix | Delete
*/
[1932] Fix | Delete
public function getQuery() {
[1933] Fix | Delete
return $this->query;
[1934] Fix | Delete
}
[1935] Fix | Delete
[1936] Fix | Delete
/**
[1937] Fix | Delete
* @param wfLiveTrafficQuery $query
[1938] Fix | Delete
*/
[1939] Fix | Delete
public function setQuery($query) {
[1940] Fix | Delete
$this->query = $query;
[1941] Fix | Delete
}
[1942] Fix | Delete
}
[1943] Fix | Delete
[1944] Fix | Delete
class wfLiveTrafficQueryGroupBy {
[1945] Fix | Delete
[1946] Fix | Delete
private $param;
[1947] Fix | Delete
[1948] Fix | Delete
/**
[1949] Fix | Delete
* @var wfLiveTrafficQuery
[1950] Fix | Delete
*/
[1951] Fix | Delete
private $query;
[1952] Fix | Delete
[1953] Fix | Delete
/**
[1954] Fix | Delete
* wfLiveTrafficQueryGroupBy constructor.
[1955] Fix | Delete
*
[1956] Fix | Delete
* @param wfLiveTrafficQuery $query
[1957] Fix | Delete
* @param string $param
[1958] Fix | Delete
*/
[1959] Fix | Delete
public function __construct($query, $param) {
[1960] Fix | Delete
$this->query = $query;
[1961] Fix | Delete
$this->param = $param;
[1962] Fix | Delete
}
[1963] Fix | Delete
[1964] Fix | Delete
/**
[1965] Fix | Delete
* @return bool
[1966] Fix | Delete
* @throws wfLiveTrafficQueryException
[1967] Fix | Delete
*/
[1968] Fix | Delete
public function validate() {
[1969] Fix | Delete
$valid = $this->isValidParam($this->getParam());
[1970] Fix | Delete
if (defined('WP_DEBUG') && WP_DEBUG) {
[1971] Fix | Delete
if (!$valid) {
[1972] Fix | Delete
throw new wfLiveTrafficQueryException("Invalid param [{$this->getParam()}] passed to " . get_class($this));
[1973] Fix | Delete
}
[1974] Fix | Delete
return true;
[1975] Fix | Delete
}
[1976] Fix | Delete
return $valid;
[1977] Fix | Delete
}
[1978] Fix | Delete
[1979] Fix | Delete
/**
[1980] Fix | Delete
* @param string $param
[1981] Fix | Delete
* @return bool
[1982] Fix | Delete
*/
[1983] Fix | Delete
public function isValidParam($param) {
[1984] Fix | Delete
return $this->getQuery() && $this->getQuery()->isValidParam($param);
[1985] Fix | Delete
}
[1986] Fix | Delete
[1987] Fix | Delete
/**
[1988] Fix | Delete
* @return wfLiveTrafficQuery
[1989] Fix | Delete
*/
[1990] Fix | Delete
public function getQuery() {
[1991] Fix | Delete
return $this->query;
[1992] Fix | Delete
}
[1993] Fix | Delete
[1994] Fix | Delete
/**
[1995] Fix | Delete
* @param wfLiveTrafficQuery $query
[1996] Fix | Delete
*/
[1997] Fix | Delete
public function setQuery($query) {
[1998] Fix | Delete
$this->query = $query;
[1999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function