Changeset 5766
- Timestamp:
- 04/16/08 20:25:18 (9 months ago)
- Location:
- trunk
- Files:
-
- 1 added
- 2 removed
- 5 modified
-
components/Textcube.Model.Paging.php (modified) (2 diffs)
-
components/Textcube.Model.Statistics.php (modified) (8 diffs)
-
lib/includeForBlog.php (modified) (1 diff)
-
lib/includeForBlogOwner.php (modified) (1 diff)
-
lib/includeForReader.php (modified) (1 diff)
-
lib/model/blog.statistics.php (deleted)
-
lib/model/common.legacysupport.php (added)
-
lib/model/common.paging.php (deleted)
Legend:
- Unmodified
- Added
- Removed
-
trunk/components/Textcube.Model.Paging.php
r5285 r5766 4 4 /// See the GNU General Public License for more details. (/doc/LICENSE, /doc/COPYRIGHT) 5 5 class Paging { 6 function initPaging($url, $prefix = '?page=') { 7 return array('url' => rtrim($url,'?'), 'prefix' => $prefix, 'postfix' => '', 'total' => 0, 'pages' => 0, 'page' => 0, 'before' => array(), 'after' => array()); 8 } 9 6 10 function getPagingView( & $paging, & $template, & $itemTemplate) { 7 11 requireComponent('Textcube.Function.misc'); … … 99 103 return $view; 100 104 } 105 106 function fetchWithPaging($sql, $page, $count, $url = null, $prefix = '?page=', $countItem = null) { 107 global $folderURL, $service; 108 if ($url === null) 109 $url = $folderURL; 110 $paging = array('url' => $url, 'prefix' => $prefix, 'postfix' => ''); 111 if (empty($sql)) 112 return array(array(), $paging); 113 if (preg_match('/\s(FROM.*)(ORDER BY.*)$/si', $sql, $matches)) 114 $from = $matches[1]; 115 else 116 return array(array(), $paging); 117 $paging['total'] = POD::queryCell("SELECT COUNT(*) $from"); 118 if ($paging['total'] === null) 119 return array(array(), $paging); 120 if (empty($count)) $count = 1; 121 $paging['pages'] = intval(ceil($paging['total'] / $count)); 122 $paging['page'] = is_numeric($page) ? $page : 1; 123 if ($paging['page'] > $paging['pages']) { 124 $paging['page'] = $paging['pages']; 125 if ($paging['pages'] > 0) 126 $paging['prev'] = $paging['pages'] - 1; 127 //return array(array(), $paging); 128 } 129 if ($paging['page'] > 1) 130 $paging['prev'] = $paging['page'] - 1; 131 if ($paging['page'] < $paging['pages']) 132 $paging['next'] = $paging['page'] + 1; 133 $offset = ($paging['page'] - 1) * $count; 134 if ($offset < 0) $offset = 0; 135 if ($countItem !== null) $count = $countItem; 136 return array(POD::queryAll("$sql LIMIT $offset, $count"), $paging); 137 } 101 138 } 102 139 ?> -
trunk/components/Textcube.Model.Statistics.php
r5285 r5766 3 3 /// All rights reserved. Licensed under the GPL. 4 4 /// See the GNU General Public License for more details. (/doc/LICENSE, /doc/COPYRIGHT) 5 6 // Dependency : Textcube.Model.Paging (getRefererLogsWithPage) 7 5 8 class Statistics { 6 9 function getStatistics($blogid) { 7 10 global $database; 8 11 $stats = array('total' => 0, 'today' => 0, 'yesterday' => 0); 9 $result = mysql_query("select visits from {$database['prefix']}BlogStatistics where blogid = $blogid"); 10 if (mysql_num_rows($result) == 1) 11 list($stats['total']) = mysql_fetch_array($result); 12 $result = mysql_query("select visits from {$database['prefix']}DailyStatistics where blogid = $blogid and `date` = " . Timestamp::getDate()); 13 if (mysql_num_rows($result) == 1) 14 list($stats['today']) = mysql_fetch_array($result); 15 $result = mysql_query("select visits from {$database['prefix']}DailyStatistics where blogid = $blogid and `date` = " . Timestamp::getDate(time() - 86400)); 16 if (mysql_num_rows($result) == 1) 17 list($stats['yesterday']) = mysql_fetch_array($result); 12 $result = POD::queryCell("SELECT visits FROM {$database['prefix']}BlogStatistics WHERE blogid = $blogid"); 13 if (!empty($result)) $stats['total'] = $result; 14 15 $result = POD::queryAll("SELECT date, visits FROM {$database['prefix']}DailyStatistics WHERE blogid = $blogid AND `date` in ('" . Timestamp::getDate()."','".Timestamp::getDate(time()-86400)."')"); 16 $stat['today'] = $stat['yesterday'] = 0; 17 foreach($result as $data) { 18 if($data['date'] == Timestamp::getDate()) $stats['today'] = $data['visits']; 19 if($data['date'] == Timestamp::getDate(time()-86400)) $stats['yesterday'] = $data['visits']; 20 } 21 18 22 return $stats; 19 23 } … … 21 25 function getDailyStatistics($period) { 22 26 global $database, $blogid; 23 return POD::queryAll("SELECT date, visits FROM {$database['prefix']}DailyStatistics WHERE blogid = $blogid AND LEFT(date, 6) = $period ORDER BY date DESC"); 27 return POD::queryAll("SELECT date, visits 28 FROM {$database['prefix']}DailyStatistics 29 WHERE blogid = $blogid 30 AND LEFT(date, 6) = $period 31 ORDER BY date DESC"); 24 32 } 25 33 … … 34 42 global $database; 35 43 $statistics = array(); 36 if ($result = mysql_query("select left(date, 6) date, sum(visits) visits from {$database['prefix']}DailyStatistics where blogid = $blogid group by left(date, 6) order by date desc")) { 37 while ($record = mysql_fetch_array($result)) 44 if ($result = POD::queryAll("SELECT left(date, 6) date, sum(visits) visits 45 FROM {$database['prefix']}DailyStatistics 46 WHERE blogid = $blogid 47 GROUP BY left(date, 6) 48 ORDER BY date DESC")) { 49 foreach($result as $record) 38 50 array_push($statistics, $record); 39 51 } … … 44 56 global $database; 45 57 $statistics = array(); 46 if ($result = mysql_query("select host, count from {$database['prefix']}RefererStatistics where blogid = $blogid order by count desc limit20")) {47 while ($record = mysql_fetch_array($result))58 if ($result = POD::queryAll("SELECT host, count FROM {$database['prefix']}RefererStatistics WHERE blogid = $blogid ORDER BY COUNT DESC LIMIT 20")) { 59 foreach($result as $record) 48 60 array_push($statistics, $record); 49 61 } … … 53 65 function getRefererLogsWithPage($page, $count) { 54 66 global $database, $blogid; 55 return Statistics::fetchWithPaging("SELECT host, url, referred FROM {$database['prefix']}RefererLogs WHERE blogid = $blogid ORDER BY referred DESC", $page, $count); 56 } 67 requireComponent('Textcube.Model.Paging'); 68 return Paging::fetchWithPaging("SELECT host, url, referred FROM {$database['prefix']}RefererLogs WHERE blogid = $blogid ORDER BY referred DESC", $page, $count); 69 } 57 70 58 71 function getRefererLogs() { 59 global $database , $blogid;60 return POD::queryAll("SELECT host, url, referred FROM {$database['prefix']}RefererLogs WHERE blogid = $blogidORDER BY referred DESC LIMIT 1500");72 global $database; 73 return POD::queryAll("SELECT host, url, referred FROM {$database['prefix']}RefererLogs WHERE blogid = ".getBlogId()." ORDER BY referred DESC LIMIT 1500"); 61 74 } 62 75 … … 68 81 return; 69 82 $id = session_id(); 70 $result = mysql_query("select blog from {$database['prefix']}SessionVisits where id = '$id' and address = '{$_SERVER['REMOTE_ADDR']}' and blog = $blogid"); 71 if ($result && (mysql_num_rows($result) > 0)) 83 if(POD::queryCount("SELECT blogid FROM {$database['prefix']}SessionVisits WHERE id = '$id' AND address = '{$_SERVER['REMOTE_ADDR']}' AND blogid = $blogid") > 0) 72 84 return; 73 if (mysql_query("insert into {$database['prefix']}SessionVisits values('$id', '{$_SERVER['REMOTE_ADDR']}', $blogid)") && (mysql_affected_rows() > 0)) { 74 mysql_query("update {$database['prefix']}BlogStatistics set visits = visits + 1 where blogid = $blogid"); 75 if (mysql_affected_rows() == 0) { 76 if (mysql_query("update {$database['prefix']}BlogStatistics set visits = visits + 1 where blogid = $blogid") || (mysql_affected_rows() == 0)) 77 mysql_query("insert into {$database['prefix']}BlogStatistics values($blogid, 1)"); 85 if (POD::queryCount("INSERT INTO {$database['prefix']}SessionVisits values('$id', '{$_SERVER['REMOTE_ADDR']}', $blogid)") > 0) { 86 if(POD::queryCount("UPDATE {$database['prefix']}BlogStatistics SET visits = visits + 1 WHERE blogid = $blogid LIMIT 1") < 1) { 87 POD::execute("INSERT into {$database['prefix']}BlogStatistics values($blogid, 1)"); 78 88 } 89 79 90 $period = Timestamp::getDate(); 80 mysql_query("update {$database['prefix']}DailyStatistics set visits = visits + 1 where blogid = $blogid and `date` = $period"); 81 if (mysql_affected_rows() == 0) { 82 if (!mysql_query("insert into {$database['prefix']}DailyStatistics values($blogid, $period, 1)") || (mysql_affected_rows() == 0)) 83 mysql_query("update {$database['prefix']}DailyStatistics set visits = visits + 1 where blogid = $blogid and `date` = $period"); 91 if(POD::queryCount("UPDATE {$database['prefix']}DailyStatistics SET visits = visits + 1 WHERE blogid = $blogid AND `date` = $period LIMIT 1") < 1) { 92 POD::execute("INSERT into {$database['prefix']}DailyStatistics values($blogid, $period, 1)"); 84 93 } 85 94 if (!empty($_SERVER['HTTP_REFERER'])) { … … 93 102 $host = POD::escapeString(UTF8::lessenAsEncoding($referer['host'], 64)); 94 103 $url = POD::escapeString(UTF8::lessenAsEncoding($_SERVER['HTTP_REFERER'], 255)); 95 mysql_query("insert into{$database['prefix']}RefererLogs values($blogid, '$host', '$url', UNIX_TIMESTAMP())");96 mysql_query("delete from {$database['prefix']}RefererLogs wherereferred < UNIX_TIMESTAMP() - 604800");97 if (! mysql_query("update {$database['prefix']}RefererStatistics set count = count + 1 where blogid = $blogid and host = '$host'") || (mysql_affected_rows() == 0))98 mysql_query("insertinto {$database['prefix']}RefererStatistics values($blogid, '$host', 1)");104 POD::query("INSERT INTO {$database['prefix']}RefererLogs values($blogid, '$host', '$url', UNIX_TIMESTAMP())"); 105 POD::query("DELETE FROM {$database['prefix']}RefererLogs WHERE referred < UNIX_TIMESTAMP() - 604800"); 106 if (!POD::queryCount("UPDATE {$database['prefix']}RefererStatistics SET count = count + 1 WHERE blogid = $blogid AND host = '$host' LIMIT 1")) 107 POD::execute("INSERT into {$database['prefix']}RefererStatistics values($blogid, '$host', 1)"); 99 108 } 100 109 } … … 108 117 if ((!is_null($prevCount)) && ($prevCount == 0)) 109 118 return true; 110 mysql_query("update {$database['prefix']}BlogStatistics set visits = 0 where blogid = $blogid"); 111 if (mysql_affected_rows() == 0) 112 mysql_query("insert into {$database['prefix']}BlogStatistics values($blogid, 0)"); 113 return mysql_affected_rows() ? true : false; 114 } 115 116 function fetchWithPaging($sql, $page, $count, $url = null, $prefix = '?page=') { 117 global $folderURL; 118 requireComponent('Eolin.PHP.Core'); 119 if (is_null($url)) 120 $url = $folderURL; 121 $paging = array('url' => $url, 'prefix' => $prefix, 'postfix' => ''); 122 if (empty($sql)) 123 return array(array(), $paging); 124 if (preg_match('/\s(FROM.*)$/si', $sql, $matches)) 125 $from = $matches[1]; 126 else 127 return array(array(), $paging); 128 $paging['total'] = POD::queryCell("SELECT COUNT(*) $from"); 129 if (is_null($paging['total'])) 130 return array(array(), $paging); 131 $paging['pages'] = intval(ceil($paging['total'] / $count)); 132 $paging['page'] = is_numeric($page) ? $page : 1; 133 if ($paging['page'] > $paging['pages']) { 134 $paging['page'] = $paging['pages']; 135 if ($paging['pages'] > 0) 136 $paging['prev'] = $paging['pages'] - 1; 137 //return array(array(), $paging); 119 if(POD::execute("UPDATE {$database['prefix']}BlogStatistics SET visits = 0 WHERE blogid = $blogid")) { 120 return true; 121 } else { 122 $result = POD::execute("INSERT INTO {$database['prefix']}BlogStatistics values($blogid, 0)"); 123 return $result; 138 124 } 139 if ($paging['page'] > 1)140 $paging['prev'] = $paging['page'] - 1;141 if ($paging['page'] < $paging['pages'])142 $paging['next'] = $paging['page'] + 1;143 $offset = ($paging['page'] - 1) * $count;144 return array(POD::queryAll("$sql LIMIT $offset, $count"), $paging);145 125 } 146 126 } -
trunk/lib/includeForBlog.php
r5365 r5766 35 35 require ROOT .'/lib/model/blog.locative.php'; 36 36 require ROOT .'/lib/model/blog.sidebar.php'; 37 require ROOT .'/lib/model/blog.statistics.php';38 37 require ROOT .'/lib/model/blog.trackback.php'; 39 38 require ROOT .'/lib/model/blog.tag.php'; 40 39 require ROOT .'/lib/model/blog.user.php'; 41 40 require ROOT .'/lib/model/common.setting.php'; 42 require ROOT .'/lib/model/common.paging.php';43 41 require ROOT .'/lib/model/common.plugin.php'; 44 42 require ROOT .'/lib/model/common.module.php'; 43 require ROOT .'/lib/model/common.legacysupport.php'; 45 44 if (defined( 'TCDEBUG')) __tcSqlLogPoint('End of model loading'); 46 45 // Views -
trunk/lib/includeForBlogOwner.php
r5630 r5766 30 30 require ROOT .'/lib/model/common.module.php'; 31 31 require ROOT .'/lib/model/common.setting.php'; 32 require ROOT .'/lib/model/common. paging.php';32 require ROOT .'/lib/model/common.legacysupport.php'; 33 33 // Views 34 34 require ROOT .'/lib/view/html.php'; -
trunk/lib/includeForReader.php
r5729 r5766 24 24 require ROOT .'/lib/model/blog.user.php'; 25 25 require ROOT .'/lib/model/blog.fx.php'; 26 require ROOT .'/lib/model/common. paging.php';26 require ROOT .'/lib/model/common.legacysupport.php'; 27 27 require ROOT .'/lib/model/common.setting.php'; 28 28 require ROOT .'/lib/model/common.plugin.php';
