3 require_once 'includes/config.php';
\r
4 if (defined('YOURLS_PRIVATE') && YOURLS_PRIVATE == true)
\r
5 require_once 'includes/auth.php';
\r
7 ### Connect To Database
\r
8 $db = yourls_db_connect();
\r
12 $search_display = '';
\r
15 $search_in_text = 'URL';
\r
16 $search_in_sql = 'url';
\r
17 $sort_by_text = 'ID';
\r
18 $sort_by_sql = 'id';
\r
19 $sort_order_text = 'Descending Order';
\r
20 $sort_order_sql = 'desc';
\r
21 $page = intval($_GET['page']);
\r
22 $search = mysql_real_escape_string(trim($_GET['s_search']));
\r
23 $perpage = ( intval($_GET['perpage']) ? intval($_GET['perpage']) : 20 );
\r
24 $link_limit = ( intval($_GET['link_limit']) ? intval($_GET['link_limit']) : '' );
\r
25 if ( $link_limit != '' ) {
\r
26 $link_filter = ( $_GET['link_filter'] == 'more' ? 'more' : 'less' ) ;
\r
27 $link_moreless = ( $link_filter == 'more' ? '>=' : '<=' );
\r
28 $where = " AND clicks $link_moreless $link_limit";
\r
32 $base_page = 'admin.php';
\r
35 if(!empty($search) && !empty($_GET['s_in'])) {
\r
36 switch($_GET['s_in']) {
\r
38 $search_in_text = 'ID';
\r
39 $search_in_sql = 'id';
\r
42 $search_in_text = 'URL';
\r
43 $search_in_sql = 'url';
\r
46 $search_in_text = 'IP Address';
\r
47 $search_in_sql = 'ip';
\r
50 $search_text = stripslashes($search);
\r
51 $search_display = "Searching for <strong>$search_text</strong> in <strong>$search_in_text</strong>. ";
\r
52 $search_url = "&s_search=$search_text &s_in=$search_in_sql";
\r
53 $search = str_replace('*', '%', '*'.$search.'*');
\r
54 $where .= " AND $search_in_sql LIKE ('$search')";
\r
58 if(!empty($_GET['s_by']) || !empty($_GET['s_order'])) {
\r
59 switch($_GET['s_by']) {
\r
61 $sort_by_text = 'ID';
\r
62 $sort_by_sql = 'id';
\r
65 $sort_by_text = 'URL';
\r
66 $sort_by_sql = 'url';
\r
69 $sort_by_text = 'Date';
\r
70 $sort_by_sql = 'timestamp';
\r
73 $sort_by_text = 'IP Address';
\r
74 $sort_by_sql = 'ip';
\r
77 $sort_by_text = 'Clicks';
\r
78 $sort_by_sql = 'clicks';
\r
81 switch($_GET['s_order']) {
\r
83 $sort_order_text = 'Ascending Order';
\r
84 $sort_order_sql = 'asc';
\r
87 $sort_order_text = 'Descending Order';
\r
88 $sort_order_sql = 'desc';
\r
93 ## Get URLs Count for current filter, total links in DB & total clicks
\r
94 $total_items = $db->get_var("SELECT COUNT(id) FROM url WHERE 1=1 $where");
\r
95 $totals = $db->get_row("SELECT COUNT(id) as c, SUM(clicks) as s FROM url WHERE 1=1");
\r
97 ### Checking $page, $offset, $perpage
\r
98 if(empty($page) || $page == 0) { $page = 1; }
\r
99 if(empty($offset)) { $offset = 0; }
\r
100 if(empty($perpage) || $perpage == 0) { $perpage = 50; }
\r
102 ### Determine $offset
\r
103 $offset = ($page-1) * $perpage;
\r
105 ### Determine Max Number Of Items To Display On Page
\r
106 if(($offset + $perpage) > $total_items) {
\r
107 $max_on_page = $total_items;
\r
109 $max_on_page = ($offset + $perpage);
\r
112 ### Determine Number Of Items To Display On Page
\r
113 if (($offset + 1) > ($total_items)) {
\r
114 $display_on_page = $total_items;
\r
116 $display_on_page = ($offset + 1);
\r
119 ### Determing Total Amount Of Pages
\r
120 $total_pages = ceil($total_items / $perpage);
\r
122 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
\r
123 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
\r
125 <title>Insert URL « YOURLS » Your Own URL Shortener | <?php echo YOURLS_SITE; ?></title>
\r
126 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
\r
127 <meta name="copyright" content="Copyright © 2002-<?php echo date('Y'); ?> Lester 'GaMerZ' Chan" />
\r
128 <meta name="author" content="Lester 'GaMerZ' Chan" />
\r
129 <meta name="description" content="Insert URL « YOURLS » Your Own URL Shortener' | <?php echo YOURLS_SITE; ?>" />
\r
130 <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
\r
131 <link rel="stylesheet" href="css/tablesorter.css" type="text/css" media="screen" />
\r
132 <script src="js/jquery-1.3.1.min.js" type="text/javascript"></script>
\r
133 <script src="js/insert.js" type="text/javascript"></script>
\r
134 <script src="js/jquery.tablesorter.min.js" type="text/javascript"></script>
\r
137 <h1><a href="<?php echo $base_page; ?>"><span>YOURLS</span>: <span>Y</span>our <span>O</span>wn <span>URL</span> <span>S</span>hortener</a></h1>
\r
138 <p>Your are logged in as: <strong><?php echo $data['username']; ?></strong>. <a href='#' onclick="alert('Not implement yet, that is kind of lame :P\nFor now, just close (quit) your browser.')">Logout</a></p>
\r
139 <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
140 <?php echo $search_display; ?>
\r
141 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
146 <form id="new_url_form" action="" method="get">
\r
147 <strong>Enter the URL</strong>:<input type="text" id="add-url" name="url" value="http://" class="text" size="90" />
\r
148 Optional: <strong>Custom short URL</strong>:<input type="text" id="add-keyword" name="keyword" value="" maxlength="12" class="text" size="8" />
\r
149 <input type="button" id="add-button" name="add-button" value="Shorten The URL" class="button" onclick="add();" />
\r
151 <div id="feedback" style="display:none"></div>
\r
155 <table id="tblUrl" class="tblSorter" cellpadding="0" cellspacing="1">
\r
158 <th>Link ID </th>
\r
159 <th>Original URL</th>
\r
163 <th>Clicks </th>
\r
169 <th colspan="4" style="text-align: left;">
\r
170 <form action="" method="get">
\r
172 <div style="float:right;">
\r
173 <input type="submit" id="submit-sort" value="Filter" class="button primary" />
\r
175 <input type="button" id="submit-clear-filter" value="Clear Filter" class="button" onclick="window.parent.location.href = 'admin.php'" />
\r
178 Search for
\r
179 <input type="text" name="s_search" class="text" size="20" value="<?php echo $search_text; ?>" />
\r
181 <select name="s_in" size="1">
\r
182 <!-- <option value="id"<?php if($search_in_sql == 'id') { echo ' selected="selected"'; } ?>>ID</option> -->
\r
183 <option value="url"<?php if($search_in_sql == 'url') { echo ' selected="selected"'; } ?>>URL</option>
\r
184 <option value="ip"<?php if($search_in_sql == 'ip') { echo ' selected="selected"'; } ?>>IP</option>
\r
186 – Order by
\r
187 <select name="s_by" size="1">
\r
188 <option value="id"<?php if($sort_by_sql == 'id') { echo ' selected="selected"'; } ?>>ID</option>
\r
189 <option value="url"<?php if($sort_by_sql == 'url') { echo ' selected="selected"'; } ?>>URL</option>
\r
190 <option value="timestamp"<?php if($sort_by_sql == 'timestamp') { echo ' selected="selected"'; } ?>>Date</option>
\r
191 <option value="ip"<?php if($sort_by_sql == 'ip') { echo ' selected="selected"'; } ?>>IP</option>
\r
192 <option value="clicks"<?php if($sort_by_sql == 'clicks') { echo ' selected="selected"'; } ?>>Clicks</option>
\r
194 <select name="s_order" size="1">
\r
195 <option value="asc"<?php if($sort_order_sql == 'asc') { echo ' selected="selected"'; } ?>>Ascending</option>
\r
196 <option value="desc"<?php if($sort_order_sql == 'desc') { echo ' selected="selected"'; } ?>>Descending</option>
\r
198 – Show
\r
199 <input type="text" name="perpage" class="text" size="2" value="<?php echo $perpage; ?>" /> rows<br/>
\r
202 <select name="link_filter" size="1">
\r
203 <option value="more"<?php if($link_filter === 'more') { echo ' selected="selected"'; } ?>>more</option>
\r
204 <option value="less"<?php if($link_filter === 'less') { echo ' selected="selected"'; } ?>>less</option>
\r
207 <input type="text" name="link_limit" class="text" size="4" value="<?php echo $link_limit; ?>" />clicks
\r
213 <th colspan="3" style="text-align: right;">
\r
214 Pages (<?php echo $total_pages; ?>):
\r
217 echo '<b><a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&page=1'.'" title="Go to First Page">« First</a></b> ... ';
\r
220 echo ' <b><a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&page='.($page-1).'" title="« Go to Page '.($page-1).'">«</a></b> ';
\r
222 for($i = $page - 2 ; $i <= $page +2; $i++) {
\r
223 if ($i >= 1 && $i <= $total_pages) {
\r
225 echo "<strong>[$i]</strong> ";
\r
227 echo '<a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&page='.($i).'" title="Page '.$i.'">'.$i.'</a> ';
\r
231 if($page < $total_pages) {
\r
232 echo ' <b><a href="'.$base_page.'?s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&page='.($page+1).'" title="Go to Page '.($page+1).' »">»</a></b> ';
\r
234 if (($page+2) < $total_pages) {
\r
235 echo ' ... <b><a href="'.$base_page.'s_by='.$sort_by_sql.'&s_order='.$sort_order_sql.$search_url.'&?page='.($total_pages).'" title="Go to Last Page">Last »</a></b>';
\r
244 $url_results = $db->get_results("SELECT * FROM url WHERE 1=1 $where ORDER BY $sort_by_sql $sort_order_sql LIMIT $offset, $perpage;");
\r
246 foreach( $url_results as $url_result ) {
\r
247 $base36 = yourls_int2string($url_result->id);
\r
248 $timestamp = strtotime($url_result->timestamp);
\r
249 $id = ($url_result->id);
\r
250 $url = stripslashes($url_result->url);
\r
251 $ip = $url_result->ip;
\r
252 $clicks = $url_result->clicks;
\r
254 echo yourls_table_add_row($id, $base36, $url, $ip, $clicks, $timestamp );
\r
257 echo '<tr class="nourl_found"><td colspan="7">No URL Found</td></tr>';
\r