]> CyberLeo.Net >> Repos - Github/YOURLS.git/blob - admin/index.php
1.3 RC1 massive commit
[Github/YOURLS.git] / admin / index.php
1 <?php\r
2 // Require Files\r
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
6 \r
7 // Connect To Database\r
8 $db = yourls_db_connect();\r
9 \r
10 // Variables\r
11 $table_url = YOURLS_DB_TABLE_URL;\r
12 \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
28 } else {\r
29         $link_filter = '';\r
30 }\r
31 $base_page = YOURLS_SITE . '/admin/index.php';\r
32 \r
33 // Searching\r
34 if(!empty($search) && !empty($_GET['s_in'])) {\r
35         switch($_GET['s_in']) {\r
36                 case 'id':\r
37                         $search_in_text = 'ID';\r
38                         $search_in_sql = 'id';\r
39                         break;\r
40                 case 'url':\r
41                         $search_in_text = 'URL';\r
42                         $search_in_sql = 'url';\r
43                         break;\r
44                 case 'ip':\r
45                         $search_in_text = 'IP Address';\r
46                         $search_in_sql = 'ip';\r
47                         break;\r
48         }\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 = "&amp;s_search=$search_text &amp;s_in=$search_in_sql";\r
52         $search = str_replace('*', '%', '*'.$search.'*');\r
53         $where .= " AND $search_in_sql LIKE ('$search')";\r
54 }\r
55 \r
56 // Sorting\r
57 if(!empty($_GET['s_by']) || !empty($_GET['s_order'])) {\r
58         switch($_GET['s_by']) {\r
59                 case 'id':\r
60                         $sort_by_text = 'ID';\r
61                         $sort_by_sql = 'id';\r
62                         break;\r
63                 case 'url':\r
64                         $sort_by_text = 'URL';\r
65                         $sort_by_sql = 'url';\r
66                         break;\r
67                 case 'timestamp':\r
68                         $sort_by_text = 'Date';\r
69                         $sort_by_sql = 'timestamp';\r
70                         break;\r
71                 case 'ip':\r
72                         $sort_by_text = 'IP Address';\r
73                         $sort_by_sql = 'ip';\r
74                         break;\r
75                 case 'clicks':\r
76                         $sort_by_text = 'Clicks';\r
77                         $sort_by_sql = 'clicks';\r
78                         break;\r
79         }\r
80         switch($_GET['s_order']) {\r
81                 case 'asc':\r
82                         $sort_order_text = 'Ascending Order';\r
83                         $sort_order_sql = 'asc';\r
84                         break;\r
85                 case 'desc':\r
86                         $sort_order_text = 'Descending Order';\r
87                         $sort_order_sql = 'desc';\r
88                         break;\r
89         }\r
90 }\r
91 \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
95 \r
96 // This is a bookmarklet\r
97 if ( isset( $_GET['u'] ) ) {\r
98         $is_bookmark = true;\r
99 \r
100         $url = $_GET['u'];\r
101         $keyword = ( isset( $_GET['k'] ) ? $_GET['k'] : '' );\r
102         $return = yourls_add_new_link( $url, $keyword, $db );\r
103         \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
109         }\r
110         \r
111         $s_url = stripslashes( $url );\r
112         $where = " AND url LIKE '$s_url' ";\r
113         \r
114         $page = $total_pages = $perpage = 1;\r
115         $offset = 0;\r
116         \r
117         $text = ( isset( $_GET['s'] ) ? stripslashes( $_GET['s'] ) : '' );\r
118         $title = ( isset( $_GET['t'] ) ? stripslashes( $_GET['t'] ) : '' );\r
119 \r
120 // This is not a bookmarklet\r
121 } else {\r
122         $is_bookmark = false;\r
123         \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
128 \r
129         // Determine $offset\r
130         $offset = ($page-1) * $perpage;\r
131 \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
135         } else { \r
136                 $max_on_page = ($offset + $perpage); \r
137         }\r
138 \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
142         } else { \r
143                 $display_on_page = ($offset + 1); \r
144         }\r
145 \r
146         // Determing Total Amount Of Pages\r
147         $total_pages = ceil($total_items / $perpage);\r
148 \r
149 }\r
150 \r
151 \r
152 // Begin output of the page\r
153 $context = ( $is_bookmark ? 'bookmark' : 'index' );\r
154 yourls_html_head( $context );\r
155 ?>\r
156         <h1>\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
159         </h1>\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
162         <?php } ?>\r
163         <p><?php if ( !$is_bookmark ) {\r
164         ?>\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
167         <?php } ?>\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
169         </p>\r
170 \r
171         <?php yourls_html_addnew(); ?>\r
172         \r
173         <?php if ( $is_bookmark ) {\r
174                 echo '<h2 class="bookmark_result">' . $return['message'] . '</h2>';\r
175         \r
176         } ?>\r
177         \r
178         <table id="tblUrl" class="tblSorter" cellpadding="0" cellspacing="1">\r
179                 <thead>\r
180                         <tr>\r
181                                 <th>Link&nbsp;ID&nbsp;&nbsp;</th>\r
182                                 <th>Original URL</th>\r
183                                 <th>Short URL</th>\r
184                                 <th>Date</th>\r
185                                 <th>IP</th>\r
186                                 <th>Clicks&nbsp;&nbsp;</th>\r
187                                 <th>Actions</th>\r
188                         </tr>\r
189                 </thead>\r
190 \r
191                 <?php\r
192                 if ( !$is_bookmark ) {\r
193                         $params = array(\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
198                                 'page'           => $page,\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
205                         );\r
206                         yourls_html_tfooter( $params );\r
207                 }\r
208                 ?>\r
209 \r
210                 <tbody>\r
211                         <?php\r
212                         // Main Query\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
214                         if($url_results) {\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
222 \r
223                                         echo yourls_table_add_row($id, $base36, $url, $ip, $clicks, $timestamp );\r
224                                 }\r
225                         } else {\r
226                                 echo '<tr class="nourl_found"><td colspan="7">No URL Found</td></tr>';\r
227                         }\r
228                         ?>\r
229                 </tbody>\r
230         </table>\r
231         \r
232         <?php if ( $is_bookmark )\r
233                 yourls_share_box( $url, $return['shorturl'], $title, $text );\r
234         ?>\r
235         \r
236 <?php yourls_html_footer(); ?>