3 require_once( dirname(dirname(__FILE__)).'/includes/config.php' );
\r
4 if (defined('YOURLS_PRIVATE') && YOURLS_PRIVATE == true)
\r
5 require_once( dirname(dirname(__FILE__)).'/includes/auth.php' );
\r
7 ### Connect To Database
\r
8 $db = yourls_db_connect();
\r
11 $table_url = YOURLS_DB_TABLE_URL;
\r
14 $search_display = '';
\r
17 $search_in_text = 'URL';
\r
18 $search_in_sql = 'url';
\r
19 $sort_by_text = 'ID';
\r
20 $sort_by_sql = 'id';
\r
21 $sort_order_text = 'Descending Order';
\r
22 $sort_order_sql = 'desc';
\r
23 $page = intval($_GET['page']);
\r
24 $search = mysql_real_escape_string(trim($_GET['s_search']));
\r
25 $perpage = ( intval($_GET['perpage']) ? intval($_GET['perpage']) : 20 );
\r
26 $link_limit = ( intval($_GET['link_limit']) ? intval($_GET['link_limit']) : '' );
\r
27 if ( $link_limit != '' ) {
\r
28 $link_filter = ( $_GET['link_filter'] == 'more' ? 'more' : 'less' ) ;
\r
29 $link_moreless = ( $link_filter == 'more' ? '>=' : '<=' );
\r
30 $where = " AND clicks $link_moreless $link_limit";
\r
34 $base_page = YOURLS_SITE . '/admin/index.php';
\r
37 if(!empty($search) && !empty($_GET['s_in'])) {
\r
38 switch($_GET['s_in']) {
\r
40 $search_in_text = 'ID';
\r
41 $search_in_sql = 'id';
\r
44 $search_in_text = 'URL';
\r
45 $search_in_sql = 'url';
\r
48 $search_in_text = 'IP Address';
\r
49 $search_in_sql = 'ip';
\r
52 $search_text = stripslashes($search);
\r
53 $search_display = "Searching for <strong>$search_text</strong> in <strong>$search_in_text</strong>. ";
\r
54 $search_url = "&s_search=$search_text &s_in=$search_in_sql";
\r
55 $search = str_replace('*', '%', '*'.$search.'*');
\r
56 $where .= " AND $search_in_sql LIKE ('$search')";
\r
60 if(!empty($_GET['s_by']) || !empty($_GET['s_order'])) {
\r
61 switch($_GET['s_by']) {
\r
63 $sort_by_text = 'ID';
\r
64 $sort_by_sql = 'id';
\r
67 $sort_by_text = 'URL';
\r
68 $sort_by_sql = 'url';
\r
71 $sort_by_text = 'Date';
\r
72 $sort_by_sql = 'timestamp';
\r
75 $sort_by_text = 'IP Address';
\r
76 $sort_by_sql = 'ip';
\r
79 $sort_by_text = 'Clicks';
\r
80 $sort_by_sql = 'clicks';
\r
83 switch($_GET['s_order']) {
\r
85 $sort_order_text = 'Ascending Order';
\r
86 $sort_order_sql = 'asc';
\r
89 $sort_order_text = 'Descending Order';
\r
90 $sort_order_sql = 'desc';
\r
95 ## Get URLs Count for current filter, total links in DB & total clicks
\r
96 $total_items = $db->get_var("SELECT COUNT(id) FROM $table_url WHERE 1=1 $where");
\r
97 $totals = $db->get_row("SELECT COUNT(id) as c, SUM(clicks) as s FROM $table_url WHERE 1=1");
\r
99 ### Checking $page, $offset, $perpage
\r
100 if(empty($page) || $page == 0) { $page = 1; }
\r
101 if(empty($offset)) { $offset = 0; }
\r
102 if(empty($perpage) || $perpage == 0) { $perpage = 50; }
\r
104 ### Determine $offset
\r
105 $offset = ($page-1) * $perpage;
\r
107 ### Determine Max Number Of Items To Display On Page
\r
108 if(($offset + $perpage) > $total_items) {
\r
109 $max_on_page = $total_items;
\r
111 $max_on_page = ($offset + $perpage);
\r
114 ### Determine Number Of Items To Display On Page
\r
115 if (($offset + 1) > ($total_items)) {
\r
116 $display_on_page = $total_items;
\r
118 $display_on_page = ($offset + 1);
\r
121 ### Determing Total Amount Of Pages
\r
122 $total_pages = ceil($total_items / $perpage);
\r
124 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
\r
125 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
\r
127 <title>Insert URL « YOURLS » Your Own URL Shortener | <?php echo YOURLS_SITE; ?></title>
\r
128 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
\r
129 <meta name="copyright" content="Copyright © 2008-<?php echo date('Y'); ?> YOURS" />
\r
130 <meta name="author" content="Richard Ozh, Lester Chan" />
\r
131 <meta name="description" content="Insert URL « YOURLS » Your Own URL Shortener' | <?php echo YOURLS_SITE; ?>" />
\r
132 <link rel="stylesheet" href="<?php echo YOURLS_SITE; ?>/css/style.css" type="text/css" media="screen" />
\r
133 <link rel="stylesheet" href="<?php echo YOURLS_SITE; ?>/css/tablesorter.css" type="text/css" media="screen" />
\r
134 <script src="<?php echo YOURLS_SITE; ?>/js/jquery-1.3.2.min.js" type="text/javascript"></script>
\r
135 <script src="<?php echo YOURLS_SITE; ?>/js/insert.js" type="text/javascript"></script>
\r
136 <script src="<?php echo YOURLS_SITE; ?>/js/jquery.tablesorter.min.js" type="text/javascript"></script>
\r
140 <a href="<?php echo $base_page; ?>" title="YOURLS"><span>YOURLS</span>: <span>Y</span>our <span>O</span>wn <span>URL</span> <span>S</span>hortener<br/>
\r
141 <img src="<?php echo YOURLS_SITE; ?>/images/yourls-logo.png" alt="YOURLS" title="YOURLS" style="border: 0px;" /></a>
\r
143 <?php if ( defined('YOURLS_PRIVATE') && YOURLS_PRIVATE == true ) { ?>
\r
144 <p>Your are logged in as: <strong><?php echo YOURLS_USER; ?></strong>. <a href="?mode=logout" title="Logout">Logout</a></p>
\r
146 <p>Display <strong><?php echo $display_on_page; ?></strong> to <strong class='increment'><?php echo $max_on_page; ?></strong> of <strong class='increment'><?php echo $total_items; ?></strong> URLs.
\r
147 <?php echo $search_display; ?>
\r
148 Overall, tracking <strong class='increment'><?php echo number_format($totals->c); ?></strong> links, <strong><?php echo number_format($totals->s); ?></strong> clicks, and counting!
\r
153 <form id="new_url_form" action="" method="get">
\r
154 <strong>Enter the URL</strong>:<input type="text" id="add-url" name="url" value="http://" class="text" size="90" />
\r
155 Optional: <strong>Custom short URL</strong>:<input type="text" id="add-keyword" name="keyword" value="" maxlength="12" class="text" size="8" />
\r
156 <input type="button" id="add-button" name="add-button" value="Shorten The URL" class="button" onclick="add();" />
\r
158 <div id="feedback" style="display:none"></div>
\r
162 <table id="tblUrl" class="tblSorter" cellpadding="0" cellspacing="1">
\r
165 <th>Link ID </th>
\r
166 <th>Original URL</th>
\r
170 <th>Clicks </th>
\r
176 <th colspan="4" style="text-align: left;">
\r
177 <form action="" method="get">
\r
179 <div style="float:right;">
\r
180 <input type="submit" id="submit-sort" value="Filter" class="button primary" />
\r
182 <input type="button" id="submit-clear-filter" value="Clear Filter" class="button" onclick="window.parent.location.href = 'index.php'" />
\r
185 Search for
\r
186 <input type="text" name="s_search" class="text" size="20" value="<?php echo $search_text; ?>" />
\r
188 <select name="s_in" size="1">
\r
189 <!-- <option value="id"<?php if($search_in_sql == 'id') { echo ' selected="selected"'; } ?>>ID</option> -->
\r
190 <option value="url"<?php if($search_in_sql == 'url') { echo ' selected="selected"'; } ?>>URL</option>
\r
191 <option value="ip"<?php if($search_in_sql == 'ip') { echo ' selected="selected"'; } ?>>IP</option>
\r
193 – Order by
\r
194 <select name="s_by" size="1">
\r
195 <option value="id"<?php if($sort_by_sql == 'id') { echo ' selected="selected"'; } ?>>ID</option>
\r
196 <option value="url"<?php if($sort_by_sql == 'url') { echo ' selected="selected"'; } ?>>URL</option>
\r
197 <option value="timestamp"<?php if($sort_by_sql == 'timestamp') { echo ' selected="selected"'; } ?>>Date</option>
\r
198 <option value="ip"<?php if($sort_by_sql == 'ip') { echo ' selected="selected"'; } ?>>IP</option>
\r
199 <option value="clicks"<?php if($sort_by_sql == 'clicks') { echo ' selected="selected"'; } ?>>Clicks</option>
\r
201 <select name="s_order" size="1">
\r
202 <option value="asc"<?php if($sort_order_sql == 'asc') { echo ' selected="selected"'; } ?>>Ascending</option>
\r
203 <option value="desc"<?php if($sort_order_sql == 'desc') { echo ' selected="selected"'; } ?>>Descending</option>
\r
205 – Show
\r
206 <input type="text" name="perpage" class="text" size="2" value="<?php echo $perpage; ?>" /> rows<br/>
\r
209 <select name="link_filter" size="1">
\r
210 <option value="more"<?php if($link_filter === 'more') { echo ' selected="selected"'; } ?>>more</option>
\r
211 <option value="less"<?php if($link_filter === 'less') { echo ' selected="selected"'; } ?>>less</option>
\r
214 <input type="text" name="link_limit" class="text" size="4" value="<?php echo $link_limit; ?>" />clicks
\r
220 <th colspan="3" style="text-align: right;">
\r
221 Pages (<?php echo $total_pages; ?>):
\r
224 echo '<b><a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&perpage='.$perpage.'&page=1'.'" title="Go to First Page">« First</a></b> ... ';
\r
227 echo ' <b><a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&perpage='.$perpage.'&page='.($page-1).'" title="« Go to Page '.($page-1).'">«</a></b> ';
\r
229 for($i = $page - 2 ; $i <= $page +2; $i++) {
\r
230 if ($i >= 1 && $i <= $total_pages) {
\r
232 echo "<strong>[$i]</strong> ";
\r
234 echo '<a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&perpage='.$perpage.'&page='.($i).'" title="Page '.$i.'">'.$i.'</a> ';
\r
238 if($page < $total_pages) {
\r
239 echo ' <b><a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&perpage='.$perpage.'&page='.($page+1).'" title="Go to Page '.($page+1).' »">»</a></b> ';
\r
241 if (($page+2) < $total_pages) {
\r
242 echo ' ... <b><a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&perpage='.$perpage.'&page='.($total_pages).'" title="Go to Last Page">Last »</a></b>';
\r
251 $url_results = $db->get_results("SELECT * FROM $table_url WHERE 1=1 $where ORDER BY $sort_by_sql $sort_order_sql LIMIT $offset, $perpage;");
\r
253 foreach( $url_results as $url_result ) {
\r
254 $base36 = yourls_int2string($url_result->id);
\r
255 $timestamp = strtotime($url_result->timestamp);
\r
256 $id = ($url_result->id);
\r
257 $url = stripslashes($url_result->url);
\r
258 $ip = $url_result->ip;
\r
259 $clicks = $url_result->clicks;
\r
261 echo yourls_table_add_row($id, $base36, $url, $ip, $clicks, $timestamp );
\r
264 echo '<tr class="nourl_found"><td colspan="7">No URL Found</td></tr>';
\r
269 <div id="footer">Powered by <a href="http://yourls.org/" title="YOURLS">YOURLS</a> v<?php echo YOURLS_VERSION; ?></div>
\r