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
13 $where = $search_display = $search_text = $search_url = $url = $keyword = '';
\r
14 $search_in_text = 'URL';
\r
15 $search_in_sql = 'url';
\r
16 $sort_by_text = 'ID';
\r
17 $sort_by_sql = 'id';
\r
18 $sort_order_text = 'Descending Order';
\r
19 $sort_order_sql = 'desc';
\r
20 $page = ( isset( $_GET['page'] ) ? intval($_GET['page']) : 1 );
\r
21 $search = ( isset( $_GET['s_search'] ) ? mysql_real_escape_string(trim($_GET['s_search'])) : '' );
\r
22 $perpage = ( isset( $_GET['perpage'] ) && intval( $_GET['perpage'] ) ? intval($_GET['perpage']) : 10 );
\r
23 $link_limit = ( isset( $_GET['link_limit'] ) && intval($_GET['link_limit']) ? intval($_GET['link_limit']) : '' );
\r
24 if ( $link_limit != '' ) {
\r
25 $link_filter = ( isset( $_GET['link_filter'] ) && $_GET['link_filter'] == 'more' ? 'more' : 'less' ) ;
\r
26 $link_moreless = ( $link_filter == 'more' ? '>=' : '<=' );
\r
27 $where = " AND clicks $link_moreless $link_limit";
\r
31 $base_page = YOURLS_SITE . '/admin/index.php';
\r
34 if(!empty($search) && !empty($_GET['s_in'])) {
\r
35 switch($_GET['s_in']) {
\r
37 $search_in_text = 'ID';
\r
38 $search_in_sql = 'id';
\r
41 $search_in_text = 'URL';
\r
42 $search_in_sql = 'url';
\r
45 $search_in_text = 'IP Address';
\r
46 $search_in_sql = 'ip';
\r
49 $search_text = stripslashes($search);
\r
50 $search_display = "Searching for <strong>$search_text</strong> in <strong>$search_in_text</strong>. ";
\r
51 $search_url = "&s_search=$search_text &s_in=$search_in_sql";
\r
52 $search = str_replace('*', '%', '*'.$search.'*');
\r
53 $where .= " AND $search_in_sql LIKE ('$search')";
\r
57 if(!empty($_GET['s_by']) || !empty($_GET['s_order'])) {
\r
58 switch($_GET['s_by']) {
\r
60 $sort_by_text = 'ID';
\r
61 $sort_by_sql = 'id';
\r
64 $sort_by_text = 'URL';
\r
65 $sort_by_sql = 'url';
\r
68 $sort_by_text = 'Date';
\r
69 $sort_by_sql = 'timestamp';
\r
72 $sort_by_text = 'IP Address';
\r
73 $sort_by_sql = 'ip';
\r
76 $sort_by_text = 'Clicks';
\r
77 $sort_by_sql = 'clicks';
\r
80 switch($_GET['s_order']) {
\r
82 $sort_order_text = 'Ascending Order';
\r
83 $sort_order_sql = 'asc';
\r
86 $sort_order_text = 'Descending Order';
\r
87 $sort_order_sql = 'desc';
\r
92 // Get URLs Count for current filter, total links in DB & total clicks
\r
93 $total_items = $db->get_var("SELECT COUNT(id) FROM $table_url WHERE 1=1 $where");
\r
94 $totals = $db->get_row("SELECT COUNT(id) as c, SUM(clicks) as s FROM $table_url WHERE 1=1");
\r
96 // This is a bookmarklet
\r
97 if ( isset( $_GET['u'] ) ) {
\r
98 $is_bookmark = true;
\r
101 $keyword = ( isset( $_GET['k'] ) ? $_GET['k'] : '' );
\r
102 $return = yourls_add_new_link( $url, $keyword, $db );
\r
104 // If fails because keyword already exist, retry with no keyword
\r
105 if ( $return['status'] == 'fail' && $return['code'] == 'error:keyword' ) {
\r
106 $msg = $return['message'];
\r
107 $return = yourls_add_new_link( $url, '', $db );
\r
108 $return['message'] .= ' ('.$msg.')';
\r
111 $s_url = stripslashes( $url );
\r
112 $where = " AND url LIKE '$s_url' ";
\r
114 $page = $total_pages = $perpage = 1;
\r
117 $text = ( isset( $_GET['s'] ) ? stripslashes( $_GET['s'] ) : '' );
\r
118 $title = ( isset( $_GET['t'] ) ? stripslashes( $_GET['t'] ) : '' );
\r
120 // This is not a bookmarklet
\r
122 $is_bookmark = false;
\r
124 // Checking $page, $offset, $perpage
\r
125 if(empty($page) || $page == 0) { $page = 1; }
\r
126 if(empty($offset)) { $offset = 0; }
\r
127 if(empty($perpage) || $perpage == 0) { $perpage = 50; }
\r
129 // Determine $offset
\r
130 $offset = ($page-1) * $perpage;
\r
132 // Determine Max Number Of Items To Display On Page
\r
133 if(($offset + $perpage) > $total_items) {
\r
134 $max_on_page = $total_items;
\r
136 $max_on_page = ($offset + $perpage);
\r
139 // Determine Number Of Items To Display On Page
\r
140 if (($offset + 1) > ($total_items)) {
\r
141 $display_on_page = $total_items;
\r
143 $display_on_page = ($offset + 1);
\r
146 // Determing Total Amount Of Pages
\r
147 $total_pages = ceil($total_items / $perpage);
\r
152 // Begin output of the page
\r
153 $context = ( $is_bookmark ? 'bookmark' : 'index' );
\r
154 yourls_html_head( $context );
\r
157 <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
158 <img src="<?php echo YOURLS_SITE; ?>/images/yourls-logo.png" alt="YOURLS" title="YOURLS" style="border: 0px;" /></a>
\r
160 <?php if ( defined('YOURLS_PRIVATE') && YOURLS_PRIVATE == true ) { ?>
\r
161 <p>Your are logged in as: <strong><?php echo YOURLS_USER; ?></strong>. <a href="?mode=logout" title="Logout">Logout</a>. Check the <a href="tools.php">Tools</a>.</p>
\r
163 <p><?php if ( !$is_bookmark ) {
\r
165 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
166 <?php echo $search_display; ?>
\r
168 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
171 <?php yourls_html_addnew(); ?>
\r
173 <?php if ( $is_bookmark ) {
\r
174 echo '<h2 class="bookmark_result">' . $return['message'] . '</h2>';
\r
178 <table id="tblUrl" class="tblSorter" cellpadding="0" cellspacing="1">
\r
181 <th>Link ID </th>
\r
182 <th>Original URL</th>
\r
186 <th>Clicks </th>
\r
192 if ( !$is_bookmark ) {
\r
194 'search_text' => $search_text,
\r
195 'search_in_sql' => $search_in_sql,
\r
196 'sort_by_sql' => $sort_by_sql,
\r
197 'sort_order_sql' => $sort_order_sql,
\r
199 'perpage' => $perpage,
\r
200 'link_filter' => $link_filter,
\r
201 'link_limit' => $link_limit,
\r
202 'total_pages' => $total_pages,
\r
203 'base_page' => $base_page,
\r
204 'search_url' => $search_url,
\r
206 yourls_html_tfooter( $params );
\r
213 $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
215 foreach( $url_results as $url_result ) {
\r
216 $base36 = yourls_int2string($url_result->id);
\r
217 $timestamp = strtotime($url_result->timestamp);
\r
218 $id = ($url_result->id);
\r
219 $url = stripslashes($url_result->url);
\r
220 $ip = $url_result->ip;
\r
221 $clicks = $url_result->clicks;
\r
223 echo yourls_table_add_row($id, $base36, $url, $ip, $clicks, $timestamp );
\r
226 echo '<tr class="nourl_found"><td colspan="7">No URL Found</td></tr>';
\r
232 <?php if ( $is_bookmark )
\r
233 yourls_share_box( $url, $return['shorturl'], $title, $text );
\r
236 <?php yourls_html_footer(); ?>