2 error_reporting(E_ERROR | E_WARNING | E_PARSE
);
4 require_once "functions.php";
5 require_once "sessions.php";
6 require_once "sanity_check.php";
7 require_once "version.php";
8 require_once "config.php";
9 require_once "db-prefs.php";
11 $link = db_connect(DB_HOST
, DB_USER
, DB_PASS
, DB_NAME
);
13 login_sequence($link);
15 $dt_add = get_script_dt_add();
17 no_cache_incantation();
19 header('Content-Type: text/html; charset=utf-8');
22 <!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
23 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
26 <title
>Tiny Tiny RSS
</title
>
28 <link rel
="stylesheet" type
="text/css" href
="tt-rss.css?<?php echo $dt_add ?>"/>
30 <?php
$user_theme = $_SESSION["theme"];
32 <link rel
="stylesheet" type
="text/css" href
="themes/<?php echo $user_theme ?>/theme.css?<?php echo $dt_add ?>">
35 <?php
if ($user_theme) { $theme_image_path = "themes/$user_theme/"; } ?
>
37 <?php
$user_css_url = get_pref($link, 'USER_STYLESHEET_URL'); ?
>
38 <?php
if ($user_css_url) { ?
>
39 <link rel
="stylesheet" type
="text/css" href
="<?php echo $user_css_url ?>"/>
42 <link rel
="shortcut icon" type
="image/png" href
="images/favicon.png"/>
44 <script type
="text/javascript" src
="lib/prototype.js"></script
>
45 <script type
="text/javascript" src
="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script
>
46 <script type
="text/javascript" charset
="utf-8" src
="localized_js.php?<?php echo $dt_add ?>"></script
>
47 <script type
="text/javascript" charset
="utf-8" src
="tt-rss.js?<?php echo $dt_add ?>"></script
>
48 <script type
="text/javascript" charset
="utf-8" src
="functions.js?<?php echo $dt_add ?>"></script
>
49 <script type
="text/javascript" charset
="utf-8" src
="feedlist.js?<?php echo $dt_add ?>"></script
>
50 <script type
="text/javascript" charset
="utf-8" src
="viewfeed.js?<?php echo $dt_add ?>"></script
>
51 <script type
="text/javascript" charset
="utf-8" src
="offline.js?<?php echo $dt_add ?>"></script
>
53 <script type
="text/javascript" src
="gears_init.js"></script
>
55 <meta http
-equiv
="Content-Type" content
="text/html; charset=utf-8"/>
57 <script type
="text/javascript">
59 if (navigator
.userAgent
.match("Opera")) {
60 document
.write('<link rel="stylesheet" type="text/css" href="opera.css">');
62 window
.onresize
=resize_headlines
;
69 <div id
="overlay" style
="display : block">
70 <div id
="overlay_inner">
71 <?php
echo __("Loading, please wait...") ?
>
73 <div id
="l_progress_o">
74 <div id
="l_progress_i"></div
>
79 <?php
print_error(__("Your browser doesn't support Javascript, which is required
80 for this application to function properly. Please check your
81 browser settings.")) ?
></p
>
86 <div id
="hotkey_help_overlay" style
="display : none" onclick
="Element.hide(this)">
87 <?php
rounded_table_start("hho"); ?
>
88 <?php
include "help/3.php" ?
>
89 <?php
rounded_table_end(); ?
>
92 <div id
="notify" class="notify"><span id
="notify_body"> 
;</span
></div
>
94 <div id
="dialog_overlay" style
="display : none"> </div
>
96 <script type
="text/javascript">
97 if (document
.addEventListener
) {
98 document
.addEventListener("DOMContentLoaded", init
, null);
100 window
.onload
= init
;
103 <ul id
="debug_output" style
='display : none'><li
> 
;</li
></ul
>
105 <div id
="infoBoxShadow" style
="display : none"><div id
="infoBox"> 
;</div
></div
>
107 <div id
="cmdline" style
="display : none"></div
>
108 <div id
="auxDlg" style
="zdisplay : none"></div
>
110 <div id
="errorBoxShadow" style
="display : none">
112 <div id
="xebTitle">Fatal Exception
</div
><div id
="xebContent"> 
;</div
>
113 <div id
="xebBtn" align
='center'><input type
="submit"
114 onclick
="closeErrorBox()" value
="Close this window"/></div
>
119 <div
class="topLinks" id
="topLinks">
121 <span id
="topLinksOnline">
123 <?php
if (!SINGLE_USER_MODE
) { ?
>
124 <?php
echo __('Hello,') ?
> <b
><?php
echo $_SESSION["name"] ?
></b
> |
126 <a href
="prefs.php"><?php
echo __('Preferences') ?
></a
>
128 <?php
if (defined('FEEDBACK_URL') && FEEDBACK_URL
) { ?
>
129 |
<a target
="_blank" class="feedback" href
="<?php echo FEEDBACK_URL ?>">
130 <?php
echo __('Comments?') ?
></a
>
133 <?php
if (!SINGLE_USER_MODE
) { ?
>
134 |
<a href
="logout.php"><?php
echo __('Logout') ?
></a
>
137 <img id
="offlineModePic"
138 onmouseover
="enable_selection(false)"
139 onmouseout
="enable_selection(true)"
140 onclick
="toggleOfflineModeInfo()"
141 src
="images/offline.png" style
="display:none"
142 width
="16" height
="16"
143 title
="<?php echo __('Offline reading') ?>"/>
145 <div id
="offlineModeDrop" style
="display : none">
146 <div id
="offlineModeSyncMsg">---</div
>
148 <div
class="showWhenSyncing" style
="display : none">
149 <a href
="javascript:offlineDownloadStop()">
150 <?php
echo __('Cancel synchronization') ?
></a
></div
>
151 <div
class="hideWhenSyncing">
152 <a href
="javascript:offlineDownloadStart()">
153 <?php
echo __('Synchronize') ?
></a
></div
>
154 <div
class="hideWhenSyncing"><a href
="javascript:offlineClearData()">
155 <?php
echo __('Remove stored data') ?
></a
></div
>
156 <div
><a href
="javascript:gotoOffline()">
157 <?php
echo __('Go offline') ?
></a
></div
>
160 <img id
="newVersionIcon" style
="display:none;" onclick
="javascript:explainError(2)"
161 width
="13" height
="13" src
="images/new_version.png"
162 title
="<?php echo __('New version of Tiny Tiny RSS is available!') ?>"
163 alt
="new_version_icon"/>
167 <span id
="topLinksOffline" style
="display : none">
168 <img id
="restartOnlinePic" src
="images/online.png"
169 height
="13" width
="13" onclick
="gotoOnline()" title
="<?php echo __('Go online') ?>"/>
174 <img src
="<?php echo $theme_image_path ?>images/ttrss_logo.png" alt
="Tiny Tiny RSS"/>
177 <div id
="feeds-holder">
178 <div id
="dispSwitch">
179 <a id
="dispSwitchPrompt"
180 href
="javascript:toggleTags()"><?php
echo __("tag cloud") ?
></a
>
181 <?php
if (!SINGLE_USER_MODE
&& ENABLE_FEED_BROWSER
) { ?
>
183 <a id
="feedBrowserPrompt" onclick
="return browseFeeds()" href
="#"
184 title
="<?php echo __('More feeds...') ?>">+
</a
>
187 <div id
="feeds-frame"> 
;</div
>
192 <div
class="actionChooser">
193 <select id
="quickMenuChooser" onchange
="quickMenuChange()">
194 <option value
="qmcDefault" selected
="selected"><?php
echo __('Actions...') ?
></option
>
195 <option value
="qmcSearch"><?php
echo __('Search...') ?
></option
>
196 <optgroup label
="<?php echo __('Feed actions:') ?>">
197 <option value
="qmcAddFeed"><?php
echo __('Subscribe to feed...') ?
></option
>
198 <option value
="qmcEditFeed"><?php
echo __('Edit this feed...') ?
></option
>
199 <!-- <option value
="qmcClearFeed"><?php
echo __('Clear articles') ?
></option
> -->
200 <option value
="qmcRescoreFeed"><?php
echo __('Rescore feed') ?
></option
>
201 <option value
="qmcRemoveFeed"><?php
echo __('Unsubscribe') ?
></option
>
203 <optgroup label
="<?php echo __('All feeds:') ?>">
204 <option value
="qmcCatchupAll"><?php
echo __('Mark as read') ?
></option
>
205 <option value
="qmcShowOnlyUnread"><?php
echo __('(Un)hide read feeds') ?
></option
>
207 <optgroup label
="<?php echo __('Other actions:') ?>">
209 <option value
="qmcAddLabel"><?php
echo __('Create label...') ?
></option
>
210 <option value
="qmcAddFilter"><?php
echo __('Create filter...') ?
></option
>
211 <option value
="qmcResetUI"><?php
echo __('Reset UI layout') ?
></option
>
212 <option value
="qmcResetCats"><?php
echo __('Reset category order') ?
></option
>
213 <option value
="qmcHKhelp"><?php
echo __('Keyboard shortcuts') ?
></option
>
219 <form id
="main_toolbar_form" action
="" onsubmit
='return false'>
221 <input type
="submit" value
="<<"
222 id
="collapse_feeds_btn" onclick
="collapse_feedlist()" class="button"
223 title
="<?php echo __('Collapse feedlist') ?>" style
="display : none"/>
225 <input type
="submit" value
="<?php echo __("Toggle Feedlist
") ?>"
226 id
="toggle_feeds_btn" class="button"
227 onclick
="toggle_feedlist()" style
="display : none"/>
231 <?php
if (get_pref($link, 'ENABLE_SEARCH_TOOLBAR')) { ?
>
233 <?php
echo __('Search:') ?
>
234 <input name
="query" type
="text"
235 onkeypress
="return filterCR(event, viewCurrentFeed)"
236 onblur
="javascript:enableHotkeys();" onfocus
="javascript:disableHotkeys();"/>
240 <select name
="view_mode" onchange
="viewModeChanged()">
241 <option selected
="selected" value
="adaptive"><?php
echo __('Adaptive') ?
></option
>
242 <option value
="all_articles"><?php
echo __('All Articles') ?
></option
>
243 <option value
="marked"><?php
echo __('Starred') ?
></option
>
244 <option value
="unread"><?php
echo __('Unread') ?
></option
>
245 <!-- <option value
="noscores"><?php
echo __('Ignore Scoring') ?
></option
> -->
246 <option value
="updated"><?php
echo __('Updated') ?
></option
>
249 <?php
echo __('Order:') ?
>
251 <select name
="order_by" onchange
="viewModeChanged()">
252 <option selected
="selected" value
="default"><?php
echo __('Default') ?
></option
>
253 <option value
="date"><?php
echo __('Date') ?
></option
>
254 <option value
="title"><?php
echo __('Title') ?
></option
>
255 <option value
="score"><?php
echo __('Score') ?
></option
>
259 <?php
echo __('Limit:') ?
>
261 $limits = array(15 => 15, 30 => 30, 60 => 60, 0 => __("All"));
263 $def_art_limit = get_pref($link, 'DEFAULT_ARTICLE_LIMIT');
265 if ($def_art_limit >= 0 && !array_key_exists($def_art_limit, $limits)) {
266 $limits[$def_art_limit] = $def_art_limit;
271 if (!$def_art_limit) {
275 print_select_hash("limit", $def_art_limit, $limits,
276 'onchange="viewLimitChanged()"');
282 <input
class="button" type
="submit" name
="update"
283 onclick
="return viewCurrentFeed('ForceUpdate')"
284 value
="<?php echo __('Update') ?>"/>
288 <!--  
;<input
class="button" type
="submit"
289 onclick
="quickMenuGo('qmcSearch')" value
="Search (tmp)"> -->
291 <!-- <input
class="button" type
="submit"
292 onclick
="catchupCurrentFeed()" value
="Mark as read"> -->
296 <?php
if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { ?
>
297 <div id
="headlines-frame" class="headlines_normal">
298 <div
class="whiteBox"><?php
echo __('No feed selected.') ?
></div
></div
>
299 <div id
="content-frame">
300 <div id
="resize-grabber"
301 onmouseover
="enable_resize(true)" onmouseout
="enable_resize(false)"
302 title
="<?php echo __('Drag me to resize panels') ?>">
303 <img src
="images/resize_handle_horiz.png" id
="resize-handle"
304 onmouseover
="enable_resize(true)" onmouseout
="enable_resize(false)"
307 <div id
="content-insert"> 
;</div
>
308 <!-- <div
class="whiteBox"> 
;</div
> --> </div
>
310 <div id
="headlines-frame" class="headlines_cdm">
311 <div
class="whiteBox"><?php
echo __('No feed selected.') ?
></div
></div
>
315 <?php
if (defined('_DEBUG_USER_SWITCH')) { ?
>
316 <select id
="userSwitch" onchange
="userSwitch()">
318 foreach (array('admin', 'fox', 'test') as $u) {
319 $op_sel = ($u == $_SESSION["name"]) ?
"selected" : "";
320 print "<option $op_sel>$u</option>";
325 <a href
="http://tt-rss.org/">Tiny Tiny RSS
</a
>
326 <?php
if (!defined('HIDE_VERSION')) { ?
>
327 v
<?php
echo VERSION ?
>
329 ©
; 2005&ndash
;2009 <a href
="http://bah.org.ru/">Andrew Dolgov
</a
>
332 <?php
db_close($link); ?
>
334 <script type
="text/javascript">
336 function statechange() {
337 if (document
.readyState
== "interactive") init();
340 if (document
.readyState
) {
341 if (document
.readyState
== "interactive" || document
.readyState
== "complete") {
344 document
.onreadystatechange
= statechange
;