2005-08-21 12:13:10 +02:00
< ?
2005-11-17 19:04:38 +01:00
session_start ();
2005-09-08 14:10:07 +02:00
2005-11-23 19:08:01 +01:00
if ( $_GET [ " debug " ]) {
define ( 'DEFAULT_ERROR_LEVEL' , E_ALL );
} else {
define ( 'DEFAULT_ERROR_LEVEL' , E_ERROR | E_WARNING | E_PARSE );
}
error_reporting ( DEFAULT_ERROR_LEVEL );
2005-11-19 15:46:23 +01:00
$op = $_REQUEST [ " op " ];
2005-11-21 08:11:21 +01:00
if (( ! $op || $op == " rpc " || $op == " globalUpdateFeeds " ) && ! $_REQUEST [ " noxml " ]) {
2005-11-19 15:46:23 +01:00
header ( " Content-Type: application/xml " );
}
2005-11-21 08:11:21 +01:00
if ( ! $_SESSION [ " uid " ] && $op != " globalUpdateFeeds " ) {
2005-11-19 15:46:23 +01:00
2005-11-21 08:11:21 +01:00
if ( $op == " rpc " ) {
2005-11-19 15:46:23 +01:00
print " <error error-code= \" 6 \" /> " ;
}
exit ;
}
2005-11-18 07:04:32 +01:00
2005-11-21 08:11:21 +01:00
if ( ! $op ) {
print " <error error-code= \" 7 \" /> " ;
exit ;
}
2005-12-29 19:03:24 +01:00
define ( 'SCHEMA_VERSION' , 4 );
2005-08-21 12:13:10 +02:00
2005-11-23 18:20:17 +01:00
require_once " sanity_check.php " ;
2005-08-21 17:23:44 +02:00
require_once " config.php " ;
2005-09-07 14:17:16 +02:00
require_once " db.php " ;
2005-11-16 17:57:08 +01:00
require_once " db-prefs.php " ;
2005-08-21 17:23:44 +02:00
require_once " functions.php " ;
require_once " magpierss/rss_fetch.inc " ;
2005-08-21 12:13:10 +02:00
2005-10-23 17:48:58 +02:00
$script_started = getmicrotime ();
2005-09-07 14:17:16 +02:00
$link = db_connect ( DB_HOST , DB_USER , DB_PASS , DB_NAME );
2005-08-21 15:46:43 +02:00
2005-09-14 15:40:26 +02:00
if ( ! $link ) {
if ( DB_TYPE == " mysql " ) {
print mysql_error ();
}
// PG seems to display its own errors just fine by default.
return ;
}
2005-09-07 14:17:16 +02:00
if ( DB_TYPE == " pgsql " ) {
pg_query ( " set client_encoding = 'utf-8' " );
}
2005-11-10 05:35:39 +01:00
2006-01-05 16:12:40 +01:00
if ( get_pref ( $link , " HIDE_READ_FEEDS " ) == " true " ) {
setcookie ( " ttrss_vf_hreadf " , 1 );
} else {
setcookie ( " ttrss_vf_hreadf " , 0 );
}
2005-08-22 06:56:40 +02:00
$fetch = $_GET [ " fetch " ];
2005-08-22 13:43:07 +02:00
2005-12-16 18:35:04 +01:00
setcookie ( " ttrss_icons_url " , ICONS_URL );
2005-12-22 13:53:28 +01:00
if ( ! sanity_check ( $link )) { return ; }
2005-12-16 18:35:04 +01:00
2005-11-27 15:56:10 +01:00
function getAllCounters ( $link ) {
getLabelCounters ( $link );
getFeedCounters ( $link );
getTagCounters ( $link );
getGlobalCounters ( $link );
2005-12-13 10:27:41 +01:00
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
getCategoryCounters ( $link );
}
2005-11-27 15:56:10 +01:00
}
2005-12-13 10:27:41 +01:00
function getCategoryCounters ( $link ) {
2005-12-13 16:25:54 +01:00
$result = db_query ( $link , " SELECT cat_id,SUM((SELECT COUNT(int_id)
FROM ttrss_user_entries WHERE feed_id = ttrss_feeds . id
AND unread = true )) AS unread FROM ttrss_feeds
2005-12-28 20:53:01 +01:00
WHERE
owner_uid = " . $_SESSION["uid"] . " GROUP BY cat_id " );
2005-12-13 10:27:41 +01:00
while ( $line = db_fetch_assoc ( $result )) {
$line [ " cat_id " ] = sprintf ( " %d " , $line [ " cat_id " ]);
print " <counter type= \" category \" id= \" " . $line [ " cat_id " ] . " \" counter= \" " .
$line [ " unread " ] . " \" /> " ;
}
}
2005-12-12 05:58:38 +01:00
function getFeedUnread ( $link , $feed ) {
$n_feed = sprintf ( " %d " , $feed );
if ( $n_feed == - 1 ) {
$match_part = " marked = true " ;
} else if ( $feed > 0 ) {
$match_part = " feed_id = ' $n_feed ' " ;
} else if ( $feed < - 10 ) {
$label_id = - $feed - 11 ;
$result = db_query ( $link , " SELECT sql_exp FROM ttrss_labels WHERE
id = '$label_id' AND owner_uid = " . $_SESSION["uid"] );
$match_part = db_fetch_result ( $result , 0 , " sql_exp " );
}
if ( $match_part ) {
$result = db_query ( $link , " SELECT count(int_id) AS unread
FROM ttrss_user_entries
WHERE unread = true AND $match_part AND owner_uid = " . $_SESSION["uid"] );
} else {
$result = db_query ( $link , " SELECT COUNT(post_int_id) AS unread
FROM ttrss_tags , ttrss_user_entries
WHERE tag_name = '$feed' AND post_int_id = int_id AND unread = true AND
ttrss_tags . owner_uid = " . $_SESSION["uid"] );
}
$unread = db_fetch_result ( $result , 0 , " unread " );
return $unread ;
}
2005-09-09 09:45:54 +02:00
/* FIXME this needs reworking */
2005-10-23 17:40:55 +02:00
function getGlobalCounters ( $link ) {
2005-11-19 06:48:02 +01:00
$result = db_query ( $link , " SELECT count(id) as c_id FROM ttrss_entries,ttrss_user_entries
WHERE unread = true AND
ttrss_user_entries . ref_id = ttrss_entries . id AND
owner_uid = " . $_SESSION["uid"] );
2005-10-23 17:40:55 +02:00
$c_id = db_fetch_result ( $result , 0 , " c_id " );
2005-12-13 10:27:41 +01:00
print " <counter type= \" global \" id='global-unread' counter=' $c_id '/> " ;
2005-10-23 17:40:55 +02:00
}
2005-11-29 14:55:53 +01:00
function getTagCounters ( $link , $smart_mode = SMART_RPC_COUNTERS ) {
2005-11-29 14:42:37 +01:00
if ( $smart_mode ) {
if ( ! $_SESSION [ " tctr_last_value " ]) {
$_SESSION [ " tctr_last_value " ] = array ();
}
}
$old_counters = $_SESSION [ " tctr_last_value " ];
$tctrs_modified = false ;
2005-12-13 16:25:54 +01:00
/* $result = db_query ( $link , " SELECT tag_name,count(ttrss_entries.id) AS count
2005-11-19 06:48:02 +01:00
FROM ttrss_tags , ttrss_entries , ttrss_user_entries WHERE
ttrss_user_entries . ref_id = ttrss_entries . id AND
2005-11-17 19:04:38 +01:00
ttrss_tags . owner_uid = " . $_SESSION["uid"] . " AND
2005-11-19 09:18:34 +01:00
post_int_id = ttrss_user_entries . int_id AND unread = true GROUP BY tag_name
2005-09-09 09:45:54 +02:00
UNION
2005-11-17 19:04:38 +01:00
select tag_name , 0 as count FROM ttrss_tags
2005-12-13 16:25:54 +01:00
WHERE ttrss_tags . owner_uid = " . $_SESSION["uid"] ); */
2005-09-09 09:45:54 +02:00
2005-12-13 16:25:54 +01:00
$result = db_query ( $link , " SELECT tag_name,SUM((SELECT COUNT(int_id)
FROM ttrss_user_entries WHERE int_id = post_int_id
AND unread = true )) AS count FROM ttrss_tags
WHERE owner_uid = 2 GROUP BY tag_name ORDER BY tag_name " );
2005-09-09 09:45:54 +02:00
$tags = array ();
while ( $line = db_fetch_assoc ( $result )) {
$tags [ $line [ " tag_name " ]] += $line [ " count " ];
}
foreach ( array_keys ( $tags ) as $tag ) {
$unread = $tags [ $tag ];
$tag = htmlspecialchars ( $tag );
2005-11-29 14:42:37 +01:00
if ( ! $smart_mode || $old_counters [ $tag ] != $unread ) {
$old_counters [ $tag ] = $unread ;
$tctrs_modified = true ;
2005-12-13 10:27:41 +01:00
print " <counter type= \" tag \" id= \" $tag\ " counter = \ " $unread\ " /> " ;
2005-11-29 14:42:37 +01:00
}
2005-09-09 09:45:54 +02:00
}
2005-11-29 14:42:37 +01:00
if ( $smart_mode && $tctrs_modified ) {
$_SESSION [ " tctr_last_value " ] = $old_counters ;
}
2005-09-09 09:45:54 +02:00
}
2005-11-29 14:55:53 +01:00
function getLabelCounters ( $link , $smart_mode = SMART_RPC_COUNTERS ) {
if ( $smart_mode ) {
if ( ! $_SESSION [ " lctr_last_value " ]) {
$_SESSION [ " lctr_last_value " ] = array ();
}
}
$old_counters = $_SESSION [ " lctr_last_value " ];
$lctrs_modified = false ;
2005-09-08 14:10:07 +02:00
2005-11-19 06:48:02 +01:00
$result = db_query ( $link , " SELECT count(id) as count FROM ttrss_entries,ttrss_user_entries
WHERE marked = true AND ttrss_user_entries . ref_id = ttrss_entries . id AND
unread = true AND owner_uid = " . $_SESSION["uid"] );
2005-09-08 14:10:07 +02:00
2005-09-08 14:46:54 +02:00
$count = db_fetch_result ( $result , 0 , " count " );
2005-09-08 14:10:07 +02:00
2005-12-13 10:27:41 +01:00
print " <counter type= \" label \" id= \" -1 \" counter= \" $count\ " /> " ;
2005-09-08 14:10:07 +02:00
2005-11-17 19:04:38 +01:00
$result = db_query ( $link , " SELECT owner_uid,id,sql_exp,description FROM
ttrss_labels WHERE owner_uid = " . $_SESSION["uid"] . " ORDER by description " );
2005-09-08 14:10:07 +02:00
while ( $line = db_fetch_assoc ( $result )) {
$id = - $line [ " id " ] - 11 ;
error_reporting ( 0 );
2005-09-08 14:46:54 +02:00
2005-11-19 06:48:02 +01:00
$tmp_result = db_query ( $link , " SELECT count(id) as count FROM ttrss_user_entries,ttrss_entries
2005-11-18 08:19:34 +01:00
WHERE ( " . $line["sql_exp"] . " ) AND unread = true AND
2005-11-19 06:48:02 +01:00
ttrss_user_entries . ref_id = ttrss_entries . id AND
2005-11-18 08:19:34 +01:00
owner_uid = " . $_SESSION["uid"] );
2005-09-08 14:10:07 +02:00
2005-09-08 14:46:54 +02:00
$count = db_fetch_result ( $tmp_result , 0 , " count " );
2005-09-08 14:10:07 +02:00
2005-11-29 14:55:53 +01:00
if ( ! $smart_mode || $old_counters [ $id ] != $count ) {
$old_counters [ $id ] = $count ;
$lctrs_modified = true ;
2005-12-13 10:27:41 +01:00
print " <counter type= \" label \" id= \" $id\ " counter = \ " $count\ " /> " ;
2005-11-29 14:55:53 +01:00
}
2005-09-08 14:10:07 +02:00
2005-11-23 19:08:01 +01:00
error_reporting ( DEFAULT_ERROR_LEVEL );
2005-11-29 14:55:53 +01:00
}
if ( $smart_mode && $lctrs_modified ) {
$_SESSION [ " lctr_last_value " ] = $old_counters ;
2005-09-08 14:10:07 +02:00
}
}
2005-12-29 07:19:27 +01:00
/* function getFeedCounter ( $link , $id ) {
2005-09-09 04:47:39 +02:00
$result = db_query ( $link , " SELECT
2005-12-16 17:51:39 +01:00
count ( id ) as count , last_error
FROM ttrss_entries , ttrss_user_entries , ttrss_feeds
2005-11-19 06:48:02 +01:00
WHERE feed_id = '$id' AND unread = true
2005-12-16 17:51:39 +01:00
AND ttrss_user_entries . feed_id = ttrss_feeds . id
2005-11-19 06:48:02 +01:00
AND ttrss_user_entries . ref_id = ttrss_entries . id " );
2005-09-09 04:47:39 +02:00
$count = db_fetch_result ( $result , 0 , " count " );
2005-12-20 10:46:06 +01:00
$last_error = htmlspecialchars ( db_fetch_result ( $result , 0 , " last_error " ));
2005-09-09 04:47:39 +02:00
2005-12-16 17:51:39 +01:00
print " <counter type= \" feed \" id= \" $id\ " counter = \ " $count\ " error = \ " $last_error\ " /> " ;
2005-12-29 07:19:27 +01:00
} */
2005-09-08 14:10:07 +02:00
2005-11-29 14:55:53 +01:00
function getFeedCounters ( $link , $smart_mode = SMART_RPC_COUNTERS ) {
2005-11-29 14:42:37 +01:00
if ( $smart_mode ) {
if ( ! $_SESSION [ " fctr_last_value " ]) {
$_SESSION [ " fctr_last_value " ] = array ();
}
}
$old_counters = $_SESSION [ " fctr_last_value " ];
2005-12-29 07:19:27 +01:00
$result = db_query ( $link , " SELECT id,last_error,parent_feed,
2005-11-19 06:48:02 +01:00
( SELECT count ( id )
FROM ttrss_entries , ttrss_user_entries
2005-12-16 17:51:39 +01:00
WHERE feed_id = ttrss_feeds . id AND
ttrss_user_entries . ref_id = ttrss_entries . id
2005-11-18 14:37:16 +01:00
AND unread = true AND owner_uid = " . $_SESSION["uid"] . " ) as count
2005-12-29 07:19:27 +01:00
FROM ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"] . "
AND parent_feed IS NULL " );
2005-11-29 14:42:37 +01:00
$fctrs_modified = false ;
2005-09-08 14:10:07 +02:00
while ( $line = db_fetch_assoc ( $result )) {
$id = $line [ " id " ];
$count = $line [ " count " ];
2005-12-29 07:19:27 +01:00
$last_error = htmlspecialchars ( $line [ " last_error " ]);
2005-12-16 18:35:04 +01:00
$has_img = is_file ( ICONS_DIR . " / $id .ico " );
2005-12-29 07:19:27 +01:00
$tmp_result = db_query ( $link ,
" SELECT id,COUNT(unread) AS unread
FROM ttrss_feeds LEFT JOIN ttrss_user_entries
ON ( ttrss_feeds . id = ttrss_user_entries . feed_id )
WHERE parent_feed = '$id' AND unread = true GROUP BY ttrss_feeds . id " );
if ( db_num_rows ( $tmp_result ) > 0 ) {
while ( $l = db_fetch_assoc ( $tmp_result )) {
$count += $l [ " unread " ];
}
}
2005-11-29 14:42:37 +01:00
if ( ! $smart_mode || $old_counters [ $id ] != $count ) {
$old_counters [ $id ] = $count ;
$fctrs_modified = true ;
2005-12-16 17:51:39 +01:00
if ( $last_error ) {
$error_part = " error= \" $last_error\ " " ;
} else {
$error_part = " " ;
}
2005-12-16 18:35:04 +01:00
if ( $has_img ) {
$has_img_part = " hi= \" $has_img\ " " ;
} else {
$has_img_part = " " ;
}
print " <counter type= \" feed \" id= \" $id\ " counter = \ " $count\ " $has_img_part $error_part /> " ;
2005-11-29 14:42:37 +01:00
}
}
if ( $smart_mode && $fctrs_modified ) {
$_SESSION [ " fctr_last_value " ] = $old_counters ;
2005-09-08 14:10:07 +02:00
}
}
2005-09-09 09:45:54 +02:00
function outputFeedList ( $link , $tags = false ) {
2005-08-22 13:43:07 +02:00
2005-09-07 05:53:29 +02:00
print " <html><head>
< title > Tiny Tiny RSS : Feedlist </ title >
2005-11-16 10:20:11 +01:00
< link rel = \ " stylesheet \" href= \" tt-rss.css \" type= \" text/css \" > " ;
2005-11-26 07:48:37 +01:00
$user_theme = $_SESSION [ " theme " ];
if ( $user_theme ) {
print " <link rel= \" stylesheet \" type= \" text/css \"
href = \ " themes/ $user_theme /theme.css \" > " ;
}
2005-11-16 18:37:45 +01:00
if ( get_pref ( $link , 'USE_COMPACT_STYLESHEET' )) {
2005-11-16 10:20:11 +01:00
print " <link rel= \" stylesheet \" type= \" text/css \"
href = \ " tt-rss_compact.css \" /> " ;
} else {
print " <link title= \" Compact Stylesheet \" rel= \" alternate stylesheet \"
type = \ " text/css \" href= \" tt-rss_compact.css \" /> " ;
}
print " <script type= \" text/javascript \" src= \" functions.js \" ></script>
2005-09-07 05:53:29 +02:00
< script type = \ " text/javascript \" src= \" feedlist.js \" ></script>
< meta http - equiv = \ " Content-Type \" content= \" text/html; charset=utf-8 \" >
2005-12-20 16:48:19 +01:00
<!-- [ if gte IE 5.5000 ] >
< script type = \ " text/javascript \" src= \" pngfix.js \" ></script>
2005-12-20 17:01:38 +01:00
< link rel = \ " stylesheet \" type= \" text/css \" href= \" tt-rss-ie.css \" >
2005-12-20 16:48:19 +01:00
<! [ endif ] -->
2005-11-15 10:13:49 +01:00
</ head >< body onload = \ " init() \" > " ;
2005-09-08 08:31:16 +02:00
print " <ul class= \" feedList \" id= \" feedList \" > " ;
2005-11-17 19:04:38 +01:00
$owner_uid = $_SESSION [ " uid " ];
2005-09-09 09:45:54 +02:00
if ( ! $tags ) {
2005-09-08 08:31:16 +02:00
2005-09-09 09:45:54 +02:00
/* virtual feeds */
2005-09-08 08:31:16 +02:00
2005-11-23 08:07:04 +01:00
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
print " <li class= \" feedCat \" >Special</li> " ;
2005-11-23 08:41:36 +01:00
print " <li id= \" feedCatHolder \" ><ul class= \" feedCatList \" > " ;
2005-11-23 08:07:04 +01:00
}
2005-09-09 09:45:54 +02:00
$result = db_query ( $link , " SELECT count(id) as num_starred
2005-11-19 06:48:02 +01:00
FROM ttrss_entries , ttrss_user_entries
WHERE marked = true AND
ttrss_user_entries . ref_id = ttrss_entries . id AND
unread = true AND owner_uid = '$owner_uid' " );
2005-09-09 09:45:54 +02:00
$num_starred = db_fetch_result ( $result , 0 , " num_starred " );
2005-09-08 08:31:16 +02:00
2005-11-15 10:13:49 +01:00
$class = " virt " ;
2005-09-09 09:58:21 +02:00
if ( $num_starred > 0 ) $class .= " Unread " ;
printFeedEntry ( - 1 , $class , " Starred articles " , $num_starred ,
2005-11-16 18:47:58 +01:00
" images/mark_set.png " , $link );
2005-09-08 09:43:44 +02:00
2005-11-23 08:07:04 +01:00
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
2005-11-23 08:41:36 +01:00
print " </li></ul> " ;
2005-11-23 08:07:04 +01:00
}
2005-12-02 21:07:47 +01:00
if ( GLOBAL_ENABLE_LABELS && get_pref ( $link , 'ENABLE_LABELS' )) {
2005-09-09 09:45:54 +02:00
$result = db_query ( $link , " SELECT id,sql_exp,description FROM
2005-11-17 19:04:38 +01:00
ttrss_labels WHERE owner_uid = '$owner_uid' ORDER by description " );
2005-09-09 09:45:54 +02:00
if ( db_num_rows ( $result ) > 0 ) {
2005-11-23 08:07:04 +01:00
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
print " <li class= \" feedCat \" >Labels</li> " ;
2005-11-23 08:41:36 +01:00
print " <li id= \" feedCatHolder \" ><ul class= \" feedCatList \" > " ;
2005-11-23 08:07:04 +01:00
} else {
print " <li><hr></li> " ;
}
2005-09-09 09:45:54 +02:00
}
while ( $line = db_fetch_assoc ( $result )) {
2005-09-08 09:43:44 +02:00
2005-09-09 09:45:54 +02:00
error_reporting ( 0 );
2005-12-13 10:27:41 +01:00
$tmp_result = db_query ( $link , " SELECT count(id) as count
FROM ttrss_entries , ttrss_user_entries
2005-11-19 06:48:02 +01:00
WHERE ( " . $line["sql_exp"] . " ) AND unread = true AND
ttrss_user_entries . ref_id = ttrss_entries . id
2005-11-18 08:19:34 +01:00
AND owner_uid = '$owner_uid' " );
2005-09-09 09:45:54 +02:00
$count = db_fetch_result ( $tmp_result , 0 , " count " );
2005-11-15 10:13:49 +01:00
$class = " label " ;
2005-09-09 09:45:54 +02:00
if ( $count > 0 ) {
$class .= " Unread " ;
}
2005-11-23 19:08:01 +01:00
error_reporting ( DEFAULT_ERROR_LEVEL );
2005-09-09 09:45:54 +02:00
printFeedEntry ( - $line [ " id " ] - 11 ,
2005-11-16 18:47:58 +01:00
$class , $line [ " description " ], $count , " images/label.png " , $link );
2005-09-09 09:45:54 +02:00
}
2005-11-23 08:07:04 +01:00
if ( db_num_rows ( $result ) > 0 ) {
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
2005-11-23 08:41:36 +01:00
print " </li></ul> " ;
2005-11-23 08:07:04 +01:00
}
}
}
// if (!get_pref($link, 'ENABLE_FEED_CATS')) {
print " <li><hr></li> " ;
// }
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
$order_by_qpart = " category,title " ;
} else {
$order_by_qpart = " title " ;
2005-09-08 09:43:44 +02:00
}
2005-09-09 09:45:54 +02:00
2005-12-29 07:19:27 +01:00
$result = db_query ( $link , " SELECT ttrss_feeds.*,
( SELECT COUNT ( id ) FROM ttrss_entries , ttrss_user_entries
2005-11-19 06:48:02 +01:00
WHERE feed_id = ttrss_feeds . id AND
ttrss_user_entries . ref_id = ttrss_entries . id AND
owner_uid = '$owner_uid' ) AS total ,
2005-12-29 07:19:27 +01:00
( SELECT COUNT ( id ) FROM ttrss_entries , ttrss_user_entries
2005-11-18 14:37:16 +01:00
WHERE feed_id = ttrss_feeds . id AND unread = true
2005-11-19 06:48:02 +01:00
AND ttrss_user_entries . ref_id = ttrss_entries . id
2005-11-23 08:07:04 +01:00
AND owner_uid = '$owner_uid' ) as unread ,
2005-12-16 18:35:04 +01:00
cat_id , last_error ,
2005-12-29 07:19:27 +01:00
ttrss_feed_categories . title AS category ,
ttrss_feed_categories . collapsed
FROM ttrss_feeds LEFT JOIN ttrss_feed_categories
ON ( ttrss_feed_categories . id = cat_id )
WHERE
ttrss_feeds . owner_uid = '$owner_uid' AND parent_feed IS NULL
ORDER BY $order_by_qpart " );
2005-09-09 09:45:54 +02:00
$actid = $_GET [ " actid " ];
/* real feeds */
$lnum = 0 ;
$total_unread = 0 ;
2005-11-23 08:07:04 +01:00
$category = " " ;
2005-09-09 09:45:54 +02:00
2005-09-08 09:43:44 +02:00
while ( $line = db_fetch_assoc ( $result )) {
2005-09-09 09:45:54 +02:00
2005-12-11 08:56:57 +01:00
$feed = db_unescape_string ( $line [ " title " ]);
2005-09-09 09:45:54 +02:00
$feed_id = $line [ " id " ];
$subop = $_GET [ " subop " ];
$total = $line [ " total " ];
$unread = $line [ " unread " ];
2005-11-23 08:07:04 +01:00
2005-12-29 07:19:27 +01:00
$tmp_result = db_query ( $link ,
" SELECT id,COUNT(unread) AS unread
FROM ttrss_feeds LEFT JOIN ttrss_user_entries
ON ( ttrss_feeds . id = ttrss_user_entries . feed_id )
WHERE parent_feed = '$feed_id' AND unread = true
GROUP BY ttrss_feeds . id " );
if ( db_num_rows ( $tmp_result ) > 0 ) {
while ( $l = db_fetch_assoc ( $tmp_result )) {
$unread += $l [ " unread " ];
}
}
2005-12-13 09:53:56 +01:00
$cat_id = $line [ " cat_id " ];
2005-11-23 08:07:04 +01:00
$tmp_category = $line [ " category " ];
if ( ! $tmp_category ) {
$tmp_category = " Uncategorized " ;
}
2005-09-09 09:45:54 +02:00
// $class = ($lnum % 2) ? "even" : "odd";
2005-12-16 18:35:04 +01:00
if ( $line [ " last_error " ]) {
$class = " error " ;
} else {
$class = " feed " ;
}
2005-09-09 09:45:54 +02:00
if ( $unread > 0 ) $class .= " Unread " ;
if ( $actid == $feed_id ) {
$class .= " Selected " ;
2005-09-09 03:21:30 +02:00
}
2005-09-08 09:43:44 +02:00
2005-09-09 09:45:54 +02:00
$total_unread += $unread ;
2005-11-23 08:07:04 +01:00
if ( $category != $tmp_category && get_pref ( $link , 'ENABLE_FEED_CATS' )) {
if ( $category ) {
print " </li></ul></li> " ;
}
$category = $tmp_category ;
2005-12-13 09:53:56 +01:00
$collapsed = $line [ " collapsed " ];
2005-12-16 06:37:18 +01:00
// workaround for NULL category
if ( $category == " Uncategorized " ) {
if ( $_COOKIE [ " ttrss_vf_uclps " ] == 1 ) {
$collapsed = " t " ;
}
}
2005-12-13 09:53:56 +01:00
if ( $collapsed == " t " || $collapsed == " 1 " ) {
$holder_class = " invisible " ;
2005-12-16 06:37:18 +01:00
$ellipsis = " ... " ;
2005-12-13 09:53:56 +01:00
} else {
$holder_class = " " ;
2005-12-16 06:37:18 +01:00
$ellipsis = " " ;
2005-12-13 10:27:41 +01:00
}
if ( $cat_id ) {
$cat_id_qpart = " cat_id = ' $cat_id ' " ;
} else {
$cat_id_qpart = " cat_id IS NULL " ;
}
$tmp_result = db_query ( $link , " SELECT count(int_id) AS unread
FROM ttrss_user_entries , ttrss_feeds WHERE
unread = true AND
feed_id = ttrss_feeds . id AND $cat_id_qpart AND
ttrss_user_entries . owner_uid = " . $_SESSION["uid"] );
$cat_unread = db_fetch_result ( $tmp_result , 0 , " unread " );
$cat_id = sprintf ( " %d " , $cat_id );
2005-11-23 08:07:04 +01:00
2005-12-13 09:53:56 +01:00
print " <li class= \" feedCat \" id= \" FCAT- $cat_id\ " >
2005-12-13 10:27:41 +01:00
< a href = \ " javascript:toggleCollapseCat( $cat_id ) \" > $tmp_category
< span id = \ " FCATCTR- $cat_id\ "
2005-12-16 06:37:18 +01:00
class = \ " $catctr_class\ " > ( $cat_unread unread ) $ellipsis </ span ></ a ></ li > " ;
2005-12-13 10:36:27 +01:00
// !!! NO SPACE before <ul...feedCatList - breaks firstChild DOM function
// -> keyboard navigation, etc.
2005-12-20 17:14:09 +01:00
print " <li id= \" feedCatHolder \" class= \" $holder_class\ " >< ul class = \ " feedCatList \" id= \" FCATLIST- $cat_id\ " > " ;
2005-11-23 08:07:04 +01:00
}
2005-09-09 09:45:54 +02:00
2005-11-23 08:07:04 +01:00
printFeedEntry ( $feed_id , $class , $feed , $unread ,
" icons/ $feed_id .ico " , $link );
2005-09-09 09:45:54 +02:00
++ $lnum ;
2005-09-08 09:43:44 +02:00
}
2005-11-23 08:07:04 +01:00
2005-09-09 09:45:54 +02:00
} else {
2005-08-21 17:01:18 +02:00
2005-09-09 09:45:54 +02:00
// tags
2005-08-21 17:01:18 +02:00
2005-12-13 16:25:54 +01:00
/* $result = db_query ( $link , " SELECT tag_name,count(ttrss_entries.id) AS count
2005-11-19 09:18:34 +01:00
FROM ttrss_tags , ttrss_entries , ttrss_user_entries WHERE
post_int_id = ttrss_user_entries . int_id AND
unread = true AND ref_id = ttrss_entries . id
2005-11-18 13:59:26 +01:00
AND ttrss_tags . owner_uid = '$owner_uid' GROUP BY tag_name
2005-09-09 09:45:54 +02:00
UNION
2005-11-18 13:59:26 +01:00
select tag_name , 0 as count FROM ttrss_tags WHERE owner_uid = '$owner_uid'
2005-12-13 16:25:54 +01:00
ORDER BY tag_name " ); */
$result = db_query ( $link , " SELECT tag_name,SUM((SELECT COUNT(int_id)
FROM ttrss_user_entries WHERE int_id = post_int_id
AND unread = true )) AS count FROM ttrss_tags
WHERE owner_uid = 2 GROUP BY tag_name ORDER BY tag_name " );
2005-09-09 09:45:54 +02:00
$tags = array ();
while ( $line = db_fetch_assoc ( $result )) {
$tags [ $line [ " tag_name " ]] += $line [ " count " ];
2005-09-07 05:53:29 +02:00
}
2005-09-09 09:45:54 +02:00
foreach ( array_keys ( $tags ) as $tag ) {
$unread = $tags [ $tag ];
2005-11-25 16:42:22 +01:00
$class = " tag " ;
2005-09-09 09:45:54 +02:00
if ( $unread > 0 ) {
$class .= " Unread " ;
}
2005-11-16 18:47:58 +01:00
printFeedEntry ( $tag , $class , $tag , $unread , " images/tag.png " , $link );
2005-09-09 09:45:54 +02:00
}
2005-09-07 05:53:29 +02:00
2005-09-07 09:19:14 +02:00
}
2005-08-21 17:23:44 +02:00
2005-10-16 10:04:17 +02:00
if ( db_num_rows ( $result ) == 0 ) {
2005-11-23 18:06:51 +01:00
if ( $tags ) {
$what = " tags " ;
} else {
$what = " feeds " ;
}
print " <li>No $what to display.</li> " ;
2005-10-16 10:04:17 +02:00
}
2005-09-09 09:45:54 +02:00
print " </ul> " ;
2005-08-21 12:13:10 +02:00
2005-08-23 08:43:20 +02:00
}
if ( $op == " rpc " ) {
$subop = $_GET [ " subop " ];
2006-01-05 16:12:40 +01:00
if ( $subop == " setpref " ) {
if ( WEB_DEMO_MODE ) {
return ;
}
print " <rpc-reply> " ;
$key = db_escape_string ( $_GET [ " key " ]);
$value = db_escape_string ( $_GET [ " value " ]);
set_pref ( $link , $key , $value );
print " <param-set key= \" $key\ " value = \ " $value\ " /> " ;
print " </rpc-reply> " ;
}
2005-09-08 14:10:07 +02:00
if ( $subop == " getLabelCounters " ) {
2005-09-09 04:47:39 +02:00
$aid = $_GET [ " aid " ];
2005-09-08 14:10:07 +02:00
print " <rpc-reply> " ;
getLabelCounters ( $link );
2005-09-09 04:47:39 +02:00
if ( $aid ) {
getFeedCounter ( $link , $aid );
}
2005-09-08 14:10:07 +02:00
print " </rpc-reply> " ;
}
if ( $subop == " getFeedCounters " ) {
print " <rpc-reply> " ;
getFeedCounters ( $link );
print " </rpc-reply> " ;
}
if ( $subop == " getAllCounters " ) {
print " <rpc-reply> " ;
2005-11-27 15:56:10 +01:00
getAllCounters ( $link );
2005-09-08 14:10:07 +02:00
print " </rpc-reply> " ;
}
2005-09-05 06:04:31 +02:00
if ( $subop == " mark " ) {
$mark = $_GET [ " mark " ];
2005-09-07 14:17:16 +02:00
$id = db_escape_string ( $_GET [ " id " ]);
2005-09-05 06:04:31 +02:00
if ( $mark == " 1 " ) {
$mark = " true " ;
} else {
$mark = " false " ;
}
2005-11-19 06:54:46 +01:00
// FIXME this needs collision testing
$result = db_query ( $link , " UPDATE ttrss_user_entries SET marked = $mark
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
2005-09-05 06:04:31 +02:00
}
2005-08-28 07:48:32 +02:00
if ( $subop == " updateFeed " ) {
2005-09-07 14:17:16 +02:00
$feed_id = db_escape_string ( $_GET [ " feed " ]);
2005-08-25 13:20:50 +02:00
2005-09-07 14:17:16 +02:00
$result = db_query ( $link ,
2005-11-19 18:49:53 +01:00
" SELECT feed_url FROM ttrss_feeds WHERE id = ' $feed_id '
AND owner_uid = " . $_SESSION["uid"] );
2005-08-25 13:20:50 +02:00
2005-09-07 14:17:16 +02:00
if ( db_num_rows ( $result ) > 0 ) {
$feed_url = db_fetch_result ( $result , 0 , " feed_url " );
2005-11-19 18:49:53 +01:00
update_rss_feed ( $link , $feed_url , $feed_id );
2005-08-28 07:48:32 +02:00
}
2005-08-25 13:20:50 +02:00
2005-11-19 18:49:53 +01:00
print " <rpc-reply> " ;
getFeedCounter ( $link , $feed_id );
print " </rpc-reply> " ;
2005-08-28 07:48:32 +02:00
return ;
2005-08-25 13:20:50 +02:00
}
2005-09-08 14:10:07 +02:00
if ( $subop == " forceUpdateAllFeeds " || $subop == " updateAllFeeds " ) {
2005-10-28 11:38:36 +02:00
2005-11-19 09:18:34 +01:00
update_all_feeds ( $link , $subop == " forceUpdateAllFeeds " );
2005-08-23 08:43:20 +02:00
2005-10-16 11:03:18 +02:00
$omode = $_GET [ " omode " ];
if ( ! $omode ) $omode = " tfl " ;
2005-09-08 14:10:07 +02:00
print " <rpc-reply> " ;
2005-10-16 11:03:18 +02:00
if ( strchr ( $omode , " l " )) getLabelCounters ( $link );
if ( strchr ( $omode , " f " )) getFeedCounters ( $link );
if ( strchr ( $omode , " t " )) getTagCounters ( $link );
2005-12-13 15:26:27 +01:00
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
getCategoryCounters ( $link );
}
2005-10-23 17:40:55 +02:00
getGlobalCounters ( $link );
2005-09-08 14:10:07 +02:00
print " </rpc-reply> " ;
2005-08-23 08:43:20 +02:00
}
2005-11-27 15:56:10 +01:00
/* GET["cmode"] = 0 - mark as read, 1 - as unread, 2 - toggle */
2005-11-19 18:38:44 +01:00
if ( $subop == " catchupSelected " ) {
2005-08-23 08:43:20 +02:00
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-08-23 08:43:20 +02:00
2005-11-27 15:56:10 +01:00
$cmode = sprintf ( " %d " , $_GET [ " cmode " ]);
2005-08-23 08:43:20 +02:00
2005-11-27 15:56:10 +01:00
foreach ( $ids as $id ) {
2005-08-23 08:43:20 +02:00
2005-11-27 15:56:10 +01:00
if ( $cmode == 0 ) {
db_query ( $link , " UPDATE ttrss_user_entries SET
unread = false , last_read = NOW ()
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
} else if ( $cmode == 1 ) {
db_query ( $link , " UPDATE ttrss_user_entries SET
unread = true
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
} else {
db_query ( $link , " UPDATE ttrss_user_entries SET
unread = NOT unread , last_read = NOW ()
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
}
2005-08-23 08:43:20 +02:00
}
2005-11-27 15:56:10 +01:00
print " <rpc-reply> " ;
getAllCounters ( $link );
print " </rpc-reply> " ;
}
2005-08-23 08:43:20 +02:00
2005-11-27 15:56:10 +01:00
if ( $subop == " markSelected " ) {
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-11-27 15:56:10 +01:00
$cmode = sprintf ( " %d " , $_GET [ " cmode " ]);
foreach ( $ids as $id ) {
if ( $cmode == 0 ) {
db_query ( $link , " UPDATE ttrss_user_entries SET
marked = false
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
} else if ( $cmode == 1 ) {
db_query ( $link , " UPDATE ttrss_user_entries SET
marked = true
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
} else {
db_query ( $link , " UPDATE ttrss_user_entries SET
marked = NOT marked
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
}
}
print " <rpc-reply> " ;
getAllCounters ( $link );
print " </rpc-reply> " ;
2005-08-23 08:43:20 +02:00
}
2005-11-16 08:59:46 +01:00
if ( $subop == " sanityCheck " ) {
2005-12-30 17:16:47 +01:00
if ( sanity_check ( $link )) {
print " <error error-code= \" 0 \" /> " ;
}
2005-11-16 08:59:46 +01:00
}
2005-11-18 13:21:16 +01:00
if ( $subop == " globalPurge " ) {
print " <rpc-reply> " ;
global_purge_old_posts ( $link , true );
print " </rpc-reply> " ;
}
2005-08-23 08:43:20 +02:00
}
if ( $op == " feeds " ) {
2005-09-09 09:45:54 +02:00
$tags = $_GET [ " tags " ];
2005-08-23 08:43:20 +02:00
$subop = $_GET [ " subop " ];
if ( $subop == " catchupAll " ) {
2005-11-19 18:38:44 +01:00
db_query ( $link , " UPDATE ttrss_user_entries SET
2005-11-18 10:28:27 +01:00
last_read = NOW (), unread = false WHERE owner_uid = " . $_SESSION["uid"] );
2005-08-23 08:43:20 +02:00
}
2005-12-13 09:53:56 +01:00
if ( $subop == " collapse " ) {
$cat_id = db_escape_string ( $_GET [ " cid " ]);
2005-12-13 10:27:41 +01:00
2005-12-13 09:53:56 +01:00
db_query ( $link , " UPDATE ttrss_feed_categories SET
collapsed = NOT collapsed WHERE id = '$cat_id' AND owner_uid = " .
$_SESSION [ " uid " ]);
return ;
}
2005-09-09 09:45:54 +02:00
outputFeedList ( $link , $tags );
2005-08-23 08:43:20 +02:00
2005-08-21 12:13:10 +02:00
}
if ( $op == " view " ) {
2005-08-21 15:46:43 +02:00
$id = $_GET [ " id " ];
2005-09-09 04:47:39 +02:00
$feed_id = $_GET [ " feed " ];
2005-08-21 15:46:43 +02:00
2005-11-19 06:48:02 +01:00
$result = db_query ( $link , " UPDATE ttrss_user_entries
SET unread = false , last_read = NOW ()
WHERE ref_id = '$id' AND feed_id = '$feed_id' AND owner_uid = " . $_SESSION["uid"] );
2005-08-21 17:01:18 +02:00
2005-09-05 11:09:10 +02:00
$addheader = $_GET [ " addheader " ];
2005-11-25 09:20:32 +01:00
$result = db_query ( $link , " SELECT title,link,content,feed_id,comments,int_id,
2005-11-27 20:57:59 +01:00
SUBSTRING ( updated , 1 , 16 ) as updated ,
2005-12-10 08:28:55 +01:00
( SELECT icon_url FROM ttrss_feeds WHERE id = feed_id ) as icon_url ,
num_comments
2005-11-19 06:48:02 +01:00
FROM ttrss_entries , ttrss_user_entries
WHERE id = '$id' AND ref_id = id " );
2005-08-21 12:13:10 +02:00
2005-09-05 11:09:10 +02:00
if ( $addheader ) {
2005-09-05 14:02:00 +02:00
print " <html><head>
2005-09-05 11:09:10 +02:00
< title > Tiny Tiny RSS : Article $id </ title >
2005-11-26 07:48:37 +01:00
< link rel = \ " stylesheet \" href= \" tt-rss.css \" type= \" text/css \" > " ;
$user_theme = $_SESSION [ " theme " ];
if ( $user_theme ) {
print " <link rel= \" stylesheet \" type= \" text/css \"
href = \ " themes/ $user_theme /theme.css \" > " ;
}
if ( get_pref ( $link , 'USE_COMPACT_STYLESHEET' )) {
print " <link rel= \" stylesheet \" type= \" text/css \"
href = \ " tt-rss_compact.css \" /> " ;
} else {
print " <link title= \" Compact Stylesheet \" rel= \" alternate stylesheet \"
type = \ " text/css \" href= \" tt-rss_compact.css \" /> " ;
}
print " <script type= \" text/javascript \" src= \" functions.js \" ></script>
2005-09-05 11:09:10 +02:00
< meta http - equiv = \ " Content-Type \" content= \" text/html; charset=utf-8 \" >
2005-09-05 14:02:00 +02:00
</ head >< body > " ;
2005-09-05 11:09:10 +02:00
}
2005-08-21 15:46:43 +02:00
if ( $result ) {
2005-08-21 12:13:10 +02:00
2005-09-07 14:17:16 +02:00
$line = db_fetch_assoc ( $result );
2005-08-21 12:13:10 +02:00
2005-08-26 05:11:37 +02:00
if ( $line [ " icon_url " ]) {
$feed_icon = " <img class= \" feedIcon \" src= \" " . $line [ " icon_url " ] . " \" > " ;
} else {
$feed_icon = " " ;
}
2005-08-21 15:46:43 +02:00
2005-12-10 08:28:55 +01:00
/* if ( $line [ " comments " ] && $line [ " link " ] != $line [ " comments " ]) {
2005-09-07 10:46:30 +02:00
$entry_comments = " (<a href= \" " . $line [ " comments " ] . " \" >Comments</a>) " ;
} else {
$entry_comments = " " ;
2005-12-10 08:28:55 +01:00
} */
$num_comments = $line [ " num_comments " ];
$entry_comments = " " ;
if ( $num_comments > 0 ) {
if ( $line [ " comments " ]) {
$comments_url = $line [ " comments " ];
} else {
$comments_url = $line [ " link " ];
}
2005-12-12 13:58:21 +01:00
$entry_comments = " <a href= \" $comments_url\ " > $num_comments comments </ a > " ;
2005-12-10 08:28:55 +01:00
} else {
if ( $line [ " comments " ] && $line [ " link " ] != $line [ " comments " ]) {
2005-12-13 17:06:53 +01:00
$entry_comments = " <a href= \" " . $line [ " comments " ] . " \" >comments</a> " ;
2005-12-10 08:28:55 +01:00
}
2005-09-07 10:46:30 +02:00
}
2005-09-07 09:19:14 +02:00
print " <div class= \" postReply \" > " ;
2005-11-25 09:20:32 +01:00
print " <div class= \" postHeader \" ><table width= \" 100% \" > " ;
2005-12-12 13:58:21 +01:00
print " <tr><td><a href= \" " . $line [ " link " ] . " \" > " . $line [ " title " ] . " </a></td> " ;
2005-11-27 20:57:59 +01:00
$parsed_updated = date ( get_pref ( $link , 'LONG_DATE_FORMAT' ),
strtotime ( $line [ " updated " ]));
print " <td class= \" postDate \" > $parsed_updated </td> " ;
print " </tr> " ;
2005-11-25 09:20:32 +01:00
$tmp_result = db_query ( $link , " SELECT DISTINCT tag_name FROM
ttrss_tags WHERE post_int_id = " . $line["int_id"] . "
ORDER BY tag_name " );
$tags_str = " " ;
2005-11-29 11:33:00 +01:00
$f_tags_str = " " ;
$num_tags = 0 ;
2005-11-25 09:20:32 +01:00
while ( $tmp_line = db_fetch_assoc ( $tmp_result )) {
2005-11-29 11:33:00 +01:00
$num_tags ++ ;
$tag = $tmp_line [ " tag_name " ];
$tag_str = " <a href= \" javascript:parent.viewfeed(' $tag ') \" > $tag </a>, " ;
if ( $num_tags == 5 ) {
$tags_str .= " <a href= \" javascript:showBlockElement('allEntryTags') \" >...</a> " ;
} else if ( $num_tags < 5 ) {
$tags_str .= $tag_str ;
}
$f_tags_str .= $tag_str ;
}
2005-11-25 09:20:32 +01:00
2005-11-29 11:33:00 +01:00
$tags_str = preg_replace ( " /, $ / " , " " , $tags_str );
$f_tags_str = preg_replace ( " /, $ / " , " " , $f_tags_str );
2005-09-07 09:19:14 +02:00
2005-12-12 13:58:21 +01:00
// $truncated_link = truncate_string($line["link"], 60);
2005-11-25 09:20:32 +01:00
2005-12-12 13:58:21 +01:00
if ( $tags_str || $entry_comments ) {
print " <tr><td width='50%'>
$entry_comments </ td >
< td align = \ " right \" > $tags_str </td></tr> " ;
}
2005-11-25 09:20:32 +01:00
2005-09-07 09:19:14 +02:00
print " </table></div> " ;
print " <div class= \" postIcon \" > " . $feed_icon . " </div> " ;
2005-11-29 11:33:00 +01:00
print " <div class= \" postContent \" > " ;
if ( db_num_rows ( $tmp_result ) > 5 ) {
print " <div id= \" allEntryTags \" >Tags: $f_tags_str </div> " ;
}
print $line [ " content " ] . " </div> " ;
2005-09-07 09:19:14 +02:00
print " </div> " ;
2005-09-08 14:10:07 +02:00
print " <script type= \" text/javascript \" >
2005-11-25 16:38:08 +01:00
update_all_counters ( '$feed_id' );
2005-09-08 14:10:07 +02:00
</ script > " ;
2005-08-21 15:46:43 +02:00
}
2005-09-05 11:09:10 +02:00
if ( $addheader ) {
print " </body></html> " ;
}
2005-08-21 12:13:10 +02:00
}
if ( $op == " viewfeed " ) {
$feed = $_GET [ " feed " ];
2005-08-21 15:46:43 +02:00
$skip = $_GET [ " skip " ];
2005-08-22 11:23:30 +02:00
$subop = $_GET [ " subop " ];
2005-09-05 08:04:02 +02:00
$view_mode = $_GET [ " view " ];
2005-09-05 14:02:00 +02:00
$addheader = $_GET [ " addheader " ];
2005-09-05 14:54:07 +02:00
$limit = $_GET [ " limit " ];
2005-08-21 17:01:18 +02:00
2005-09-08 04:49:20 +02:00
if ( ! $feed ) {
return ;
}
2005-08-21 18:16:41 +02:00
if ( ! $skip ) $skip = 0 ;
2005-08-22 11:23:30 +02:00
if ( $subop == " undefined " ) $subop = " " ;
2005-08-21 12:13:10 +02:00
2005-09-05 14:02:00 +02:00
if ( $addheader ) {
print " <html><head>
2005-09-06 06:14:17 +02:00
< title > Tiny Tiny RSS : Feed $feed </ title >
2005-11-16 10:20:11 +01:00
< link rel = \ " stylesheet \" href= \" tt-rss.css \" type= \" text/css \" > " ;
2005-11-26 07:48:37 +01:00
$user_theme = $_SESSION [ " theme " ];
if ( $user_theme ) {
print " <link rel= \" stylesheet \" type= \" text/css \"
href = \ " themes/ $user_theme /theme.css \" > " ;
}
2005-11-16 18:37:45 +01:00
if ( get_pref ( $link , 'USE_COMPACT_STYLESHEET' )) {
2005-11-16 10:20:11 +01:00
print " <link rel= \" stylesheet \"
type = \ " text/css \" href= \" tt-rss_compact.css \" /> " ;
} else {
print " <link title= \" Compact Stylesheet \" rel= \" alternate stylesheet \"
type = \ " text/css \" href= \" tt-rss_compact.css \" /> " ;
}
2005-11-26 07:48:37 +01:00
2005-11-16 10:20:11 +01:00
print " <meta http-equiv= \" Content-Type \" content= \" text/html; charset=utf-8 \" >
2005-09-05 14:02:00 +02:00
< script type = \ " text/javascript \" src= \" functions.js \" ></script>
< script type = \ " text/javascript \" src= \" viewfeed.js \" ></script>
2005-12-20 16:54:50 +01:00
<!-- [ if gte IE 5.5000 ] >
< script type = \ " text/javascript \" src= \" pngfix.js \" ></script>
2005-12-20 17:01:38 +01:00
< link rel = \ " stylesheet \" type= \" text/css \" href= \" tt-rss-ie.css \" >
2005-12-20 16:54:50 +01:00
<! [ endif ] -->
2005-11-16 06:40:03 +01:00
</ head >< body onload = 'init()' > " ;
2005-09-05 14:02:00 +02:00
}
2005-11-29 14:14:53 +01:00
if ( $subop == " ForceUpdate " && sprintf ( " %d " , $feed ) > 0 ) {
2005-10-28 11:33:24 +02:00
$tmp_result = db_query ( $link , " SELECT feed_url FROM ttrss_feeds
WHERE id = '$feed' " );
$feed_url = db_fetch_result ( $tmp_result , 0 , " feed_url " );
update_rss_feed ( $link , $feed_url , $feed );
}
2005-10-25 12:44:44 +02:00
if ( $subop == " MarkAllRead " ) {
2005-08-21 15:46:43 +02:00
2005-11-29 14:14:53 +01:00
if ( sprintf ( " %d " , $feed ) != 0 ) {
2005-10-25 12:44:44 +02:00
if ( $feed > 0 ) {
2005-12-29 07:23:03 +01:00
$tmp_result = db_query ( $link , " SELECT id
FROM ttrss_feeds WHERE parent_feed = '$feed'
ORDER BY cat_id , title " );
$parent_ids = array ();
if ( db_num_rows ( $tmp_result ) > 0 ) {
while ( $p = db_fetch_assoc ( $tmp_result )) {
array_push ( $parent_ids , " feed_id = " . $p [ " id " ]);
}
$children_qpart = implode ( " OR " , $parent_ids );
db_query ( $link , " UPDATE ttrss_user_entries
SET unread = false , last_read = NOW ()
WHERE ( feed_id = '$feed' OR $children_qpart )
AND owner_uid = " . $_SESSION["uid"] );
} else {
db_query ( $link , " UPDATE ttrss_user_entries
SET unread = false , last_read = NOW ()
WHERE feed_id = '$feed' AND owner_uid = " . $_SESSION["uid"] );
}
2005-10-25 12:44:44 +02:00
} else if ( $feed < 0 && $feed > - 10 ) { // special, like starred
if ( $feed == - 1 ) {
2005-11-19 09:32:00 +01:00
db_query ( $link , " UPDATE ttrss_user_entries
2005-10-25 12:44:44 +02:00
SET unread = false , last_read = NOW ()
2005-11-18 21:03:51 +01:00
WHERE marked = true AND owner_uid = " . $_SESSION["uid"] );
2005-10-25 12:44:44 +02:00
}
} else if ( $feed < - 10 ) { // label
2005-11-19 09:32:00 +01:00
// TODO make this more efficient
2005-10-25 13:03:21 +02:00
$label_id = - $feed - 11 ;
2005-10-25 12:44:44 +02:00
2005-10-25 13:03:21 +02:00
$tmp_result = db_query ( $link , " SELECT sql_exp FROM ttrss_labels
2005-11-19 09:32:00 +01:00
WHERE id = '$label_id' " );
2005-10-25 13:03:21 +02:00
if ( $tmp_result ) {
$sql_exp = db_fetch_result ( $tmp_result , 0 , " sql_exp " );
2005-11-19 09:32:00 +01:00
db_query ( $link , " BEGIN " );
$tmp2_result = db_query ( $link ,
" SELECT
int_id
FROM
ttrss_user_entries , ttrss_entries
WHERE
ref_id = id AND
$sql_exp AND
owner_uid = " . $_SESSION["uid"] );
while ( $tmp_line = db_fetch_assoc ( $tmp2_result )) {
db_query ( $link , " UPDATE
ttrss_user_entries
SET
unread = false , last_read = NOW ()
WHERE
int_id = " . $tmp_line["int_id"] );
}
db_query ( $link , " COMMIT " );
/* db_query ( $link , " UPDATE ttrss_user_entries,ttrss_entries
2005-10-25 13:03:21 +02:00
SET unread = false , last_read = NOW ()
2005-11-19 09:32:00 +01:00
WHERE $sql_exp
AND ref_id = id
AND owner_uid = " . $_SESSION["uid"] ); */
2005-10-25 13:03:21 +02:00
}
2005-09-08 08:31:16 +02:00
}
2005-10-25 12:44:44 +02:00
} else { // tag
2005-11-23 17:58:26 +01:00
db_query ( $link , " BEGIN " );
$tag_name = db_escape_string ( $feed );
$result = db_query ( $link , " SELECT post_int_id FROM ttrss_tags
WHERE tag_name = '$tag_name' AND owner_uid = " . $_SESSION["uid"] );
while ( $line = db_fetch_assoc ( $result )) {
db_query ( $link , " UPDATE ttrss_user_entries SET
unread = false , last_read = NOW ()
WHERE int_id = " . $line["post_int_id"] );
}
db_query ( $link , " COMMIT " );
2005-08-21 17:01:18 +02:00
}
2005-10-25 12:44:44 +02:00
2005-08-21 17:01:18 +02:00
}
2005-08-21 15:46:43 +02:00
2005-11-29 10:11:43 +01:00
$search = db_escape_string ( $_GET [ " search " ]);
$search_mode = db_escape_string ( $_GET [ " smode " ]);
2005-10-16 18:16:34 +02:00
2005-09-05 08:04:02 +02:00
if ( $search ) {
2005-08-21 18:16:41 +02:00
$search_query_part = " (upper(title) LIKE upper('% $search %')
OR content LIKE '%$search%' ) AND " ;
2005-09-05 08:04:02 +02:00
} else {
$search_query_part = " " ;
}
$view_query_part = " " ;
2005-12-12 05:58:38 +01:00
if ( $view_mode == " Adaptive " ) {
if ( $feed != - 1 ) {
$unread = getFeedUnread ( $link , $feed );
if ( $unread > 0 ) {
$view_query_part = " unread = true AND " ;
}
}
}
2005-09-05 08:04:02 +02:00
if ( $view_mode == " Starred " ) {
$view_query_part = " marked = true AND " ;
2005-08-21 18:16:41 +02:00
}
2005-09-06 06:14:17 +02:00
if ( $view_mode == " Unread " ) {
$view_query_part = " unread = true AND " ;
}
2005-09-08 04:49:20 +02:00
if ( $limit && $limit != " All " ) {
2005-09-05 14:56:07 +02:00
$limit_query_part = " LIMIT " . $limit ;
2005-09-07 09:51:01 +02:00
}
2005-09-05 14:02:00 +02:00
2005-09-08 08:31:16 +02:00
$vfeed_query_part = " " ;
2005-10-16 18:16:34 +02:00
// override query strategy and enable feed display when searching globally
2005-11-19 15:30:01 +01:00
if ( $search && $search_mode == " All feeds " ) {
2005-10-16 18:16:34 +02:00
$query_strategy_part = " id > 0 " ;
2005-12-28 20:53:01 +01:00
$vfeed_query_part = " ttrss_feeds.title AS feed_title, " ;
2005-11-29 14:14:53 +01:00
} else if ( sprintf ( " %d " , $feed ) == 0 ) {
2005-09-09 09:45:54 +02:00
$query_strategy_part = " ttrss_entries.id > 0 " ;
$vfeed_query_part = " (SELECT title FROM ttrss_feeds WHERE
id = feed_id ) as feed_title , " ;
} else if ( $feed >= 0 ) {
2005-12-28 20:53:01 +01:00
$tmp_result = db_query ( $link , " SELECT id
FROM ttrss_feeds WHERE parent_feed = '$feed'
ORDER BY cat_id , title " );
$parent_ids = array ();
if ( db_num_rows ( $tmp_result ) > 0 ) {
while ( $p = db_fetch_assoc ( $tmp_result )) {
array_push ( $parent_ids , " feed_id = " . $p [ " id " ]);
}
$query_strategy_part = sprintf ( " (feed_id = %d OR %s) " ,
$feed , implode ( " OR " , $parent_ids ));
$vfeed_query_part = " ttrss_feeds.title AS feed_title, " ;
} else {
$query_strategy_part = " feed_id = ' $feed ' " ;
}
2005-09-08 09:43:44 +02:00
} else if ( $feed == - 1 ) { // starred virtual feed
2005-09-08 08:31:16 +02:00
$query_strategy_part = " marked = true " ;
2005-12-28 20:53:01 +01:00
$vfeed_query_part = " ttrss_feeds.title AS feed_title, " ;
2005-09-08 09:43:44 +02:00
} else if ( $feed <= - 10 ) { // labels
$label_id = - $feed - 11 ;
$tmp_result = db_query ( $link , " SELECT sql_exp FROM ttrss_labels
WHERE id = '$label_id' " );
$query_strategy_part = db_fetch_result ( $tmp_result , 0 , " sql_exp " );
2005-12-28 20:53:01 +01:00
$vfeed_query_part = " ttrss_feeds.title AS feed_title, " ;
2005-09-08 08:31:16 +02:00
} else {
2005-09-08 09:43:44 +02:00
$query_strategy_part = " id > 0 " ; // dumb
2005-09-08 08:31:16 +02:00
}
2005-09-09 04:53:39 +02:00
$order_by = " updated DESC " ;
// if ($feed < -10) {
// $order_by = "feed_id,updated DESC";
// }
2005-11-27 15:56:10 +01:00
$feed_title = " " ;
if ( $search && $search_mode == " All feeds " ) {
$feed_title = " Search results " ;
2005-11-29 14:14:53 +01:00
} else if ( sprintf ( " %d " , $feed ) == 0 ) {
2005-11-27 15:56:10 +01:00
$feed_title = $feed ;
} else if ( $feed > 0 ) {
2005-12-16 18:53:10 +01:00
$result = db_query ( $link , " SELECT title,site_url,last_error FROM ttrss_feeds
2005-11-27 15:56:10 +01:00
WHERE id = '$feed' " );
$feed_title = db_fetch_result ( $result , 0 , " title " );
$feed_site_url = db_fetch_result ( $result , 0 , " site_url " );
2005-12-16 18:53:10 +01:00
$last_error = db_fetch_result ( $result , 0 , " last_error " );
2005-11-27 15:56:10 +01:00
} else if ( $feed == - 1 ) {
$feed_title = " Starred articles " ;
} else if ( $feed < - 10 ) {
$label_id = - $feed - 11 ;
$result = db_query ( $link , " SELECT description FROM ttrss_labels
WHERE id = '$label_id' " );
$feed_title = db_fetch_result ( $result , 0 , " description " );
} else {
$feed_title = " ? " ;
}
2005-09-08 09:43:44 +02:00
if ( $feed < - 10 ) error_reporting ( 0 );
2005-12-13 06:52:32 +01:00
print " <div id= \" headlinesContainer \" > " ;
2005-11-29 14:14:53 +01:00
if ( sprintf ( " %d " , $feed ) != 0 ) {
2005-09-09 09:45:54 +02:00
2005-11-25 09:20:32 +01:00
if ( $feed > 0 ) {
$feed_kind = " Feeds " ;
} else {
$feed_kind = " Labels " ;
}
2005-12-13 06:52:32 +01:00
// if (!$vfeed_query_part) {
$content_query_part = " content as content_preview, " ;
// } else {
// $content_query_part = "";
// }
2005-11-27 17:57:40 +01:00
2005-09-09 09:45:54 +02:00
$result = db_query ( $link , " SELECT
2005-12-28 20:53:01 +01:00
ttrss_entries . id , ttrss_entries . title ,
2005-11-27 15:56:10 +01:00
SUBSTRING ( updated , 1 , 16 ) as updated ,
unread , feed_id , marked , link , last_read ,
2005-09-09 09:45:54 +02:00
SUBSTRING ( last_read , 1 , 19 ) as last_read_noms ,
$vfeed_query_part
2005-11-27 17:57:40 +01:00
$content_query_part
SUBSTRING ( updated , 1 , 19 ) as updated_noms
2005-09-09 09:45:54 +02:00
FROM
2005-12-28 20:53:01 +01:00
ttrss_entries , ttrss_user_entries , ttrss_feeds
2005-09-09 09:45:54 +02:00
WHERE
2005-12-28 20:53:01 +01:00
ttrss_user_entries . feed_id = ttrss_feeds . id AND
2005-11-19 06:48:02 +01:00
ttrss_user_entries . ref_id = ttrss_entries . id AND
2005-12-28 20:53:01 +01:00
ttrss_user_entries . owner_uid = '".$_SESSION["uid"]."' AND
2005-09-09 09:45:54 +02:00
$search_query_part
$view_query_part
$query_strategy_part ORDER BY $order_by
$limit_query_part " );
} else {
// browsing by tag
2005-11-25 09:20:32 +01:00
$feed_kind = " Tags " ;
2005-09-09 09:45:54 +02:00
$result = db_query ( $link , " SELECT
2005-11-27 15:56:10 +01:00
ttrss_entries . id as id , title ,
SUBSTRING ( updated , 1 , 16 ) as updated ,
unread , feed_id ,
2005-12-16 18:53:10 +01:00
marked , link , last_read ,
2005-09-08 05:49:53 +02:00
SUBSTRING ( last_read , 1 , 19 ) as last_read_noms ,
2005-09-08 08:31:16 +02:00
$vfeed_query_part
2005-11-27 17:57:40 +01:00
$content_query_part
SUBSTRING ( updated , 1 , 19 ) as updated_noms
2005-09-09 09:45:54 +02:00
FROM
2005-11-19 09:18:34 +01:00
ttrss_entries , ttrss_user_entries , ttrss_tags
2005-09-09 09:45:54 +02:00
WHERE
2005-11-19 09:18:34 +01:00
ref_id = ttrss_entries . id AND
ttrss_user_entries . owner_uid = '".$_SESSION["uid"]."' AND
post_int_id = int_id AND tag_name = '$feed' AND
2005-09-09 09:45:54 +02:00
$view_query_part
$search_query_part
$query_strategy_part ORDER BY $order_by
$limit_query_part " );
}
2005-08-21 15:46:43 +02:00
2005-09-08 09:43:44 +02:00
if ( ! $result ) {
2005-12-13 06:52:32 +01:00
print " <div align='center'>
Could not display feed ( query failed ) . Please check label match syntax or local configuration .</ div > " ;
return ;
2005-11-28 14:19:54 +01:00
}
2005-11-28 10:57:47 +01:00
if ( db_num_rows ( $result ) > 0 ) {
2005-12-13 06:52:32 +01:00
print " <table class= \" headlinesSubToolbar \"
width = \ " 100% \" cellspacing= \" 0 \" cellpadding= \" 0 \" ><tr> " ;
if ( ! get_pref ( $link , 'COMBINED_DISPLAY_MODE' )) {
2005-11-28 14:19:54 +01:00
print " <td class= \" headlineActions \" >
Select :
2005-12-13 06:52:32 +01:00
< a href = \ " javascript:selectTableRowsByIdPrefix('headlinesList',
2005-12-29 15:31:20 +01:00
'RROW-' , 'RCHK-' , true , '' , true ) \ " >All</a>,
2005-12-13 06:52:32 +01:00
< a href = \ " javascript:selectTableRowsByIdPrefix('headlinesList',
2005-12-29 15:31:20 +01:00
'RROW-' , 'RCHK-' , true , 'Unread' , true ) \ " >Unread</a>,
2005-12-13 06:52:32 +01:00
< a href = \ " javascript:selectTableRowsByIdPrefix('headlinesList',
'RROW-' , 'RCHK-' , false ) \ " >None</a>
& nbsp ; & nbsp ;
Toggle : < a href = \ " javascript:selectionToggleUnread() \" >Unread</a>,
< a href = \ " javascript:selectionToggleMarked() \" >Starred</a> " ;
2005-11-28 14:19:54 +01:00
print " </td> " ;
2005-12-13 06:52:32 +01:00
} else {
print " <td class= \" headlineActions \" >
Select :
< a href = \ " javascript:cdmSelectArticles('all') \" >All</a>,
< a href = \ " javascript:cdmSelectArticles('unread') \" >Unread</a>,
< a href = \ " javascript:cdmSelectArticles('none') \" >None</a>
& nbsp ; & nbsp ;
Toggle : < a href = \ " javascript:selectionToggleUnread(true) \" >Unread</a>,
< a href = \ " javascript:selectionToggleMarked(true) \" >Starred</a> " ;
2005-11-28 14:19:54 +01:00
print " </td> " ;
2005-12-13 06:52:32 +01:00
}
2005-12-18 20:29:19 +01:00
if ( $last_error ) {
print " <td align='center' class='small'>
< a class = \ " warning \" href= \" javascript:alert('TT-RSS encountered an error while trying to update this feed. \\ n \\ n $last_error ') \" >Could not update this feed.</a></td> " ;
}
2005-12-13 06:52:32 +01:00
print " <td class= \" headlineTitle \" > " ;
2005-11-28 14:19:54 +01:00
2005-12-13 06:52:32 +01:00
if ( $feed_site_url ) {
print " <a target= \" _blank \" href= \" $feed_site_url\ " > $feed_title </ a > " ;
} else {
print $feed_title ;
}
print " </td> " ;
print " </tr></table> " ;
if ( ! get_pref ( $link , 'COMBINED_DISPLAY_MODE' )) {
2005-11-28 14:19:54 +01:00
print " <table class= \" headlinesList \" id= \" headlinesList \"
cellspacing = \ " 0 \" width= \" 100% \" > " ;
2005-09-05 06:04:31 +02:00
}
2005-12-13 06:52:32 +01:00
2005-11-28 13:54:43 +01:00
$lnum = 0 ;
error_reporting ( DEFAULT_ERROR_LEVEL );
$num_unread = 0 ;
while ( $line = db_fetch_assoc ( $result )) {
2005-11-28 14:19:54 +01:00
2005-11-28 13:54:43 +01:00
$class = ( $lnum % 2 ) ? " even " : " odd " ;
$id = $line [ " id " ];
$feed_id = $line [ " feed_id " ];
if ( $line [ " last_read " ] == " " &&
( $line [ " unread " ] != " t " && $line [ " unread " ] != " 1 " )) {
$update_pic = " <img id='FUPDPIC- $id ' src= \" images/updated.png \"
alt = \ " Updated \" > " ;
} else {
$update_pic = " <img id='FUPDPIC- $id ' src= \" images/blank_icon.gif \"
alt = \ " Updated \" > " ;
}
if ( $line [ " unread " ] == " t " || $line [ " unread " ] == " 1 " ) {
$class .= " Unread " ;
++ $num_unread ;
2005-12-13 06:52:32 +01:00
$is_unread = true ;
2005-11-28 14:19:54 +01:00
} else {
2005-12-13 06:52:32 +01:00
$is_unread = false ;
2005-11-28 13:54:43 +01:00
}
if ( $line [ " marked " ] == " t " || $line [ " marked " ] == " 1 " ) {
$marked_pic = " <img id= \" FMARKPIC- $id\ " src = \ " images/mark_set.png \"
2005-12-01 13:43:13 +01:00
alt = \ " Reset mark \" onclick='javascript:toggleMark( $id )'> " ;
2005-11-28 13:54:43 +01:00
} else {
$marked_pic = " <img id= \" FMARKPIC- $id\ " src = \ " images/mark_unset.png \"
2005-12-01 13:43:13 +01:00
alt = \ " Set mark \" onclick='javascript:toggleMark( $id )'> " ;
2005-11-28 13:54:43 +01:00
}
2005-11-28 15:42:20 +01:00
$content_link = " <a href= \" javascript:view( $id , $feed_id ); \" > " .
2005-11-28 13:54:43 +01:00
$line [ " title " ] . " </a> " ;
2005-11-28 14:19:54 +01:00
2005-11-28 13:54:43 +01:00
if ( get_pref ( $link , 'HEADLINES_SMART_DATE' )) {
$updated_fmt = smart_date_time ( strtotime ( $line [ " updated " ]));
} else {
$short_date = get_pref ( $link , 'SHORT_DATE_FORMAT' );
$updated_fmt = date ( $short_date , strtotime ( $line [ " updated " ]));
}
2005-11-28 14:19:54 +01:00
if ( get_pref ( $link , 'SHOW_CONTENT_PREVIEW' )) {
2005-11-30 12:09:22 +01:00
$content_preview = truncate_string ( strip_tags ( $line [ " content_preview " ]),
2005-12-30 21:05:26 +01:00
100 );
2005-11-28 14:19:54 +01:00
}
2005-12-13 06:52:32 +01:00
if ( ! get_pref ( $link , 'COMBINED_DISPLAY_MODE' )) {
2005-11-28 14:19:54 +01:00
print " <tr class=' $class ' id='RROW- $id '> " ;
print " <td class='hlUpdatePic'> $update_pic </td> " ;
print " <td class='hlSelectRow'>
< input type = \ " checkbox \" onclick= \" toggleSelectRow(this) \"
class = \ " feedCheckBox \" id= \" RCHK- $id\ " >
</ td > " ;
print " <td class='hlMarkedPic'> $marked_pic </td> " ;
if ( $line [ " feed_title " ]) {
print " <td class='hlContent'> $content_link </td> " ;
print " <td class='hlFeed'>
2005-12-30 21:10:58 +01:00
< a href = 'javascript:viewfeed($feed_id)' > " .
$line [ " feed_title " ] . " </a> </td> " ;
2005-11-28 14:19:54 +01:00
} else {
2005-12-10 17:13:59 +01:00
print " <td class='hlContent' valign='middle'> " ;
2005-11-28 14:19:54 +01:00
2005-11-28 15:42:20 +01:00
print " <a href= \" javascript:view( $id , $feed_id ); \" > " .
2005-11-28 14:19:54 +01:00
$line [ " title " ];
if ( get_pref ( $link , 'SHOW_CONTENT_PREVIEW' )) {
if ( $content_preview ) {
print " <span class= \" contentPreview \" > - $content_preview </span> " ;
}
}
print " </a> " ;
print " </td> " ;
}
print " <td class= \" hlUpdated \" ><nobr> $updated_fmt </nobr></td> " ;
print " </tr> " ;
} else {
2005-12-13 06:52:32 +01:00
if ( $is_unread ) {
$add_class = " Unread " ;
} else {
$add_class = " " ;
}
print " <div class= \" cdmArticle $add_class\ " id = \ " RROW- $id\ " > " ;
print " <div class= \" cdmHeader \" > " ;
2005-11-28 14:19:54 +01:00
2005-12-13 06:52:32 +01:00
print " <div style= \" float : right \" > $updated_fmt </div> " ;
print " <a href= \" " . $line [ " link " ] . " \" > " . $line [ " title " ] . " </a> " ;
2005-11-28 14:19:54 +01:00
2005-12-13 06:52:32 +01:00
if ( $line [ " feed_title " ]) {
print " (<a href='javascript:viewfeed( $feed_id )'> " . $line [ " feed_title " ] . " </a>) " ;
2005-11-28 14:19:54 +01:00
}
2005-12-13 06:52:32 +01:00
print " </div> " ;
print " <div class= \" cdmContent \" > " . $line [ " content_preview " ] . " </div> " ;
print " <div style= \" float : right \" > $marked_pic </div>
< div class = \ " cdmFooter \" >
< input type = \ " checkbox \" onclick= \" toggleSelectRowById(this,
'RROW-$id' ) \ " class= \" feedCheckBox \" id= \" RCHK- $id\ " ></ div > " ;
print " </div> " ;
}
2005-11-28 13:54:43 +01:00
++ $lnum ;
2005-09-08 08:31:16 +02:00
}
2005-11-28 14:19:54 +01:00
2005-12-13 06:52:32 +01:00
if ( ! get_pref ( $link , 'COMBINED_DISPLAY_MODE' )) {
2005-11-28 14:19:54 +01:00
print " </table> " ;
}
2005-08-21 15:46:43 +02:00
2005-11-28 13:54:43 +01:00
} else {
print " <div width='100%' align='center'>No articles found.</div> " ;
2005-08-21 17:01:18 +02:00
}
2005-08-21 15:46:43 +02:00
2005-12-13 06:52:32 +01:00
print " </div> " ;
2005-08-21 15:46:43 +02:00
2005-12-13 06:52:32 +01:00
print " <script type= \" text/javascript \" >
document . onkeydown = hotkey_handler ;
update_all_counters ( '$feed' );
</ script > " ;
2005-11-28 14:19:54 +01:00
2005-12-13 06:52:32 +01:00
if ( $addheader ) {
print " </body></html> " ;
2005-09-05 14:02:00 +02:00
}
2005-08-21 12:13:10 +02:00
}
2005-08-22 07:38:07 +02:00
if ( $op == " pref-rpc " ) {
2005-08-22 06:56:40 +02:00
2005-08-22 07:38:07 +02:00
$subop = $_GET [ " subop " ];
2005-08-22 06:56:40 +02:00
2005-08-22 07:23:49 +02:00
if ( $subop == " unread " ) {
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-08-22 07:23:49 +02:00
foreach ( $ids as $id ) {
2005-11-19 18:49:53 +01:00
db_query ( $link , " UPDATE ttrss_user_entries SET unread = true
WHERE feed_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
2005-08-22 07:23:49 +02:00
}
2005-08-22 07:38:07 +02:00
2005-11-19 18:49:53 +01:00
print " Marked selected feeds as unread. " ;
2005-08-22 07:23:49 +02:00
}
if ( $subop == " read " ) {
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-08-22 07:23:49 +02:00
foreach ( $ids as $id ) {
2005-11-19 18:49:53 +01:00
db_query ( $link , " UPDATE ttrss_user_entries
SET unread = false , last_read = NOW () WHERE
feed_id = '$id' AND owner_uid = " . $_SESSION["uid"] );
2005-08-22 07:23:49 +02:00
}
2005-08-22 07:38:07 +02:00
2005-11-19 18:49:53 +01:00
print " Marked selected feeds as read. " ;
2005-08-22 07:38:07 +02:00
}
}
if ( $op == " pref-feeds " ) {
2005-12-16 08:15:18 +01:00
$subop = $_REQUEST [ " subop " ];
$quiet = $_REQUEST [ " quiet " ];
2005-08-22 07:38:07 +02:00
2005-12-29 19:25:07 +01:00
if ( $subop == " massSubscribe " ) {
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-12-30 06:29:24 +01:00
$subscribed = array ();
2005-12-29 19:25:07 +01:00
foreach ( $ids as $id ) {
$result = db_query ( $link , " SELECT feed_url,title FROM ttrss_feeds
WHERE id = '$id' " );
$feed_url = db_fetch_result ( $result , 0 , " feed_url " );
$title = db_fetch_result ( $result , 0 , " title " );
$result = db_query ( $link , " SELECT id FROM ttrss_feeds WHERE
feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"] );
if ( db_num_rows ( $result ) == 0 ) {
$result = db_query ( $link ,
" INSERT INTO ttrss_feeds (owner_uid,feed_url,title,cat_id)
VALUES ( '".$_SESSION["uid"]."' , '$feed_url' , '$title' , NULL ) " );
2005-12-30 06:29:24 +01:00
array_push ( $subscribed , $title );
}
}
if ( count ( $subscribed ) > 0 ) {
print " <div class= \" notice \" > " ;
print " <b>Subscribed to feeds:</b> " ;
print " <ul class= \" nomarks \" > " ;
foreach ( $subscribed as $title ) {
print " <li> $title </li> " ;
2005-12-29 19:25:07 +01:00
}
2005-12-30 06:29:24 +01:00
print " </ul> " ;
print " </div> " ;
2005-12-29 19:25:07 +01:00
}
}
2005-12-29 17:36:41 +01:00
if ( $subop == " browse " ) {
print " <div class= \" infoBoxContents \" > " ;
print " <h1>Feed browser</h1> " ;
print " <p>Showing top 50 registered feeds, sorted by popularity:</p> " ;
$result = db_query ( $link , " SELECT feed_url,count(id) AS subscribers
2005-12-30 05:11:48 +01:00
FROM ttrss_feeds
WHERE auth_login = '' AND auth_pass = '' AND private = false
2005-12-29 17:45:02 +01:00
GROUP BY feed_url ORDER BY subscribers DESC LIMIT 50 " );
2005-12-29 17:36:41 +01:00
print " <ul class='browseFeedList' id='browseFeedList'> " ;
2005-12-29 19:29:45 +01:00
$feedctr = 0 ;
2005-12-29 17:36:41 +01:00
while ( $line = db_fetch_assoc ( $result )) {
$feed_url = $line [ " feed_url " ];
$subscribers = $line [ " subscribers " ];
2005-12-29 19:29:45 +01:00
$sub_result = db_query ( $link , " SELECT id
FROM ttrss_feeds WHERE feed_url = '$feed_url' AND owner_uid = " .
$_SESSION [ " uid " ]);
if ( db_num_rows ( $sub_result ) > 0 ) {
continue ; // already subscribed
}
2005-12-29 17:36:41 +01:00
$det_result = db_query ( $link , " SELECT site_url,title,id
FROM ttrss_feeds WHERE feed_url = '$feed_url' LIMIT 1 " );
$details = db_fetch_assoc ( $det_result );
$icon_file = ICONS_DIR . " / " . $details [ " id " ] . " .ico " ;
if ( file_exists ( $icon_file ) && filesize ( $icon_file ) > 0 ) {
$feed_icon = " <img class= \" tinyFeedIcon \" src= \" " . ICONS_URL .
" / " . $details [ " id " ] . " .ico \" > " ;
} else {
$feed_icon = " <img class= \" tinyFeedIcon \" src= \" images/blank_icon.gif \" > " ;
}
2005-12-30 05:22:07 +01:00
$check_box = " <input onclick='toggleSelectListRow(this)' class='feedBrowseCB'
type = \ " checkbox \" id= \" FBCHK- " . $details [ " id " ] . " \" > " ;
2005-12-29 17:36:41 +01:00
2005-12-30 05:22:07 +01:00
$class = ( $feedctr % 2 ) ? " even " : " odd " ;
print " <li class=' $class ' id= \" FBROW- " . $details [ " id " ] . " \" > $check_box " .
" $feed_icon " . db_unescape_string ( $details [ " title " ]) .
2005-12-29 17:36:41 +01:00
" <span class='subscribers'>( $subscribers )</span></li> " ;
2005-12-29 19:29:45 +01:00
++ $feedctr ;
}
if ( $feedctr == 0 ) {
print " <li>No feeds found to subscribe.</li> " ;
}
2005-12-29 17:36:41 +01:00
print " </ul> " ;
print " <div align='center'>
< input type = \ " submit \" class= \" button \"
2005-12-29 18:38:24 +01:00
onclick = \ " feedBrowserSubscribe() \" value= \" Subscribe \" >
< input type = 'submit' class = 'button'
onclick = \ " closeInfoBox() \" value= \" Cancel \" ></div> " ;
2005-12-29 17:36:41 +01:00
print " </div> " ;
return ;
}
2005-12-10 20:35:09 +01:00
if ( $subop == " editfeed " ) {
$feed_id = db_escape_string ( $_GET [ " id " ]);
$result = db_query ( $link ,
" SELECT * FROM ttrss_feeds WHERE id = ' $feed_id ' AND
owner_uid = " . $_SESSION["uid"] );
$title = htmlspecialchars ( db_unescape_string ( db_fetch_result ( $result ,
0 , " title " )));
print " <div class= \" infoBoxContents \" > " ;
$icon_file = ICONS_DIR . " / $feed_id .ico " ;
if ( file_exists ( $icon_file ) && filesize ( $icon_file ) > 0 ) {
$feed_icon = " <img width= \" 16 \" height= \" 16 \"
src = \ " " . ICONS_URL . " / $feed_id .ico \" > " ;
} else {
$feed_icon = " " ;
}
print " <h1> $feed_icon $title </h1> " ;
print " <table width='100%'> " ;
$row_class = " odd " ;
print " <tr class=' $row_class '><td>Title:</td> " ;
print " <td><input id= \" iedit_title \" value= \" $title\ " ></ td ></ tr > " ;
$feed_url = db_fetch_result ( $result , 0 , " feed_url " );
$feed_url = htmlspecialchars ( db_unescape_string ( db_fetch_result ( $result ,
0 , " feed_url " )));
$row_class = toggleEvenOdd ( $row_class );
print " <tr class=' $row_class '><td>Feed URL:</td> " ;
print " <td><input id= \" iedit_link \" value= \" $feed_url\ " ></ td ></ tr > " ;
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
$cat_id = db_fetch_result ( $result , 0 , " cat_id " );
$row_class = toggleEvenOdd ( $row_class );
print " <tr class=' $row_class '><td>Category:</td> " ;
print " <td> " ;
print " <select id= \" iedit_fcat \" > " ;
print " <option id= \" 0 \" >Uncategorized</option> " ;
$tmp_result = db_query ( $link , " SELECT id,title FROM ttrss_feed_categories
WHERE owner_uid = " . $_SESSION["uid"] . " ORDER BY title " );
if ( db_num_rows ( $tmp_result ) > 0 ) {
print " <option disabled>--------</option> " ;
}
while ( $tmp_line = db_fetch_assoc ( $tmp_result )) {
if ( $tmp_line [ " id " ] == $cat_id ) {
$is_selected = " selected " ;
} else {
$is_selected = " " ;
}
printf ( " <option $is_selected id='%d'>%s</option> " ,
$tmp_line [ " id " ], $tmp_line [ " title " ]);
}
print " </select></td> " ;
print " </td></tr> " ;
}
$update_interval = db_fetch_result ( $result , 0 , " update_interval " );
$row_class = toggleEvenOdd ( $row_class );
print " <tr class=' $row_class '><td>Update Interval:</td> " ;
print " <td><input id= \" iedit_updintl \"
value = \ " $update_interval\ " ></ td ></ tr > " ;
2005-12-28 20:17:26 +01:00
$row_class = toggleEvenOdd ( $row_class );
print " <tr class=' $row_class '><td>Link to:</td> " ;
2005-12-29 18:46:11 +01:00
$tmp_result = db_query ( $link , " SELECT COUNT(id) AS count
FROM ttrss_feeds WHERE parent_feed = '$feed_id' " );
$linked_count = db_fetch_result ( $tmp_result , 0 , " count " );
2005-12-28 20:17:26 +01:00
$parent_feed = db_fetch_result ( $result , 0 , " parent_feed " );
2005-12-29 18:46:11 +01:00
if ( $linked_count > 0 ) {
$disabled = " disabled " ;
}
print " <select $disabled id= \" iedit_parent_feed \" > " ;
2005-12-29 11:23:34 +01:00
print " <option id= \" 0 \" >Not linked</option> " ;
2005-12-28 20:17:26 +01:00
2005-12-28 20:57:25 +01:00
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
if ( $cat_id ) {
$cat_qpart = " AND cat_id = ' $cat_id ' " ;
} else {
$cat_qpart = " AND cat_id IS NULL " ;
}
}
2005-12-28 20:17:26 +01:00
$tmp_result = db_query ( $link , " SELECT id,title FROM ttrss_feeds
2005-12-30 21:31:34 +01:00
WHERE id != '$feed_id' AND owner_uid = " . $_SESSION["uid"] . "
$cat_qpart ORDER BY title " );
2005-12-28 20:17:26 +01:00
if ( db_num_rows ( $tmp_result ) > 0 ) {
print " <option disabled>--------</option> " ;
}
while ( $tmp_line = db_fetch_assoc ( $tmp_result )) {
if ( $tmp_line [ " id " ] == $parent_feed ) {
$is_selected = " selected " ;
} else {
$is_selected = " " ;
}
printf ( " <option $is_selected id='%d'>%s</option> " ,
$tmp_line [ " id " ], $tmp_line [ " title " ]);
}
print " </select></td> " ;
print " </td></tr> " ;
2005-12-10 20:35:09 +01:00
$purge_interval = db_fetch_result ( $result , 0 , " purge_interval " );
$row_class = toggleEvenOdd ( $row_class );
print " <tr class=' $row_class '><td>Purge Days:</td> " ;
print " <td><input id= \" iedit_purgintl \"
value = \ " $purge_interval\ " ></ td ></ tr > " ;
2005-12-16 08:15:18 +01:00
// print "<tr><td colspan=\"2\"><b>Authentication</b></td></tr>";
$row_class = toggleEvenOdd ( $row_class );
$auth_login = db_fetch_result ( $result , 0 , " auth_login " );
print " <tr class=' $row_class '><td>Login:</td> " ;
print " <td><input id= \" iedit_login \"
value = \ " $auth_login\ " ></ td ></ tr > " ;
$row_class = toggleEvenOdd ( $row_class );
$auth_pass = db_fetch_result ( $result , 0 , " auth_pass " );
print " <tr class=' $row_class '><td>Password:</td> " ;
print " <td><input type= \" password \" id= \" iedit_pass \"
value = \ " $auth_pass\ " ></ td ></ tr > " ;
2005-12-30 05:11:48 +01:00
$row_class = toggleEvenOdd ( $row_class );
$private = sql_bool_to_bool ( db_fetch_result ( $result , 0 , " private " ));
if ( $private ) {
$checked = " checked " ;
} else {
$checked = " " ;
}
print " <tr class=' $row_class '><td>Options:</td> " ;
print " <td><input type= \" checkbox \" id= \" iedit_private \"
2005-12-30 05:45:05 +01:00
$checked >< label for = \ " iedit_private \" >Hide from feed browser</label>
</ td ></ tr > " ;
2005-12-30 05:11:48 +01:00
2005-12-10 20:35:09 +01:00
print " </table> " ;
print " </div> " ;
print " <div align='center'>
< input type = \ " submit \" class= \" button \"
2005-12-29 18:38:24 +01:00
onclick = \ " feedEditSave() \" value= \" Save \" >
< input type = 'submit' class = 'button'
onclick = \ " feedEditCancel() \" value= \" Cancel \" ></div> " ;
2005-12-10 20:35:09 +01:00
return ;
}
2005-08-24 10:02:58 +02:00
if ( $subop == " editSave " ) {
2005-12-16 08:15:18 +01:00
$feed_title = db_escape_string ( $_POST [ " t " ]);
$feed_link = db_escape_string ( $_POST [ " l " ]);
$upd_intl = db_escape_string ( $_POST [ " ui " ]);
$purge_intl = db_escape_string ( $_POST [ " pi " ]);
$feed_id = db_escape_string ( $_POST [ " id " ]);
$cat_id = db_escape_string ( $_POST [ " catid " ]);
$auth_login = db_escape_string ( $_POST [ " login " ]);
$auth_pass = db_escape_string ( $_POST [ " pass " ]);
2005-12-28 20:17:26 +01:00
$parent_feed = db_escape_string ( $_POST [ " pfeed " ]);
2005-12-30 05:11:48 +01:00
$private = db_escape_string ( $_POST [ " private " ]);
2005-08-24 10:02:58 +02:00
2005-10-13 05:15:09 +02:00
if ( strtoupper ( $upd_intl ) == " DEFAULT " )
$upd_intl = 0 ;
2005-11-29 10:26:09 +01:00
if ( strtoupper ( $upd_intl ) == " DISABLED " )
$upd_intl = - 1 ;
2005-11-16 10:37:50 +01:00
if ( strtoupper ( $purge_intl ) == " DEFAULT " )
$purge_intl = 0 ;
2005-11-16 10:47:22 +01:00
if ( strtoupper ( $purge_intl ) == " DISABLED " )
$purge_intl = - 1 ;
2005-11-23 08:07:04 +01:00
if ( $cat_id != 0 ) {
$category_qpart = " cat_id = ' $cat_id ' " ;
} else {
$category_qpart = 'cat_id = NULL' ;
}
2005-12-28 20:17:26 +01:00
if ( $parent_feed != 0 ) {
$parent_qpart = " parent_feed = ' $parent_feed ' " ;
} else {
$parent_qpart = 'parent_feed = NULL' ;
}
2005-09-07 14:17:16 +02:00
$result = db_query ( $link , " UPDATE ttrss_feeds SET
2005-11-23 08:07:04 +01:00
$category_qpart ,
2005-12-28 20:17:26 +01:00
$parent_qpart ,
2005-10-13 05:15:09 +02:00
title = '$feed_title' , feed_url = '$feed_link' ,
2005-11-16 10:37:50 +01:00
update_interval = '$upd_intl' ,
2005-12-16 08:15:18 +01:00
purge_interval = '$purge_intl' ,
auth_login = '$auth_login' ,
2005-12-30 05:11:48 +01:00
auth_pass = '$auth_pass' ,
private = '$private'
2005-11-19 18:52:40 +01:00
WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"] );
2005-12-11 05:55:37 +01:00
}
if ( $subop == " saveCat " ) {
$cat_title = db_escape_string ( $_GET [ " title " ]);
$cat_id = db_escape_string ( $_GET [ " id " ]);
$result = db_query ( $link , " UPDATE ttrss_feed_categories SET
title = '$cat_title' WHERE id = '$cat_id' AND owner_uid = " . $_SESSION["uid"] );
2005-08-24 10:02:58 +02:00
2005-08-22 07:23:49 +02:00
}
2005-08-22 06:56:40 +02:00
if ( $subop == " remove " ) {
2005-08-23 13:34:07 +02:00
if ( ! WEB_DEMO_MODE ) {
2005-08-22 06:56:40 +02:00
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-08-23 13:34:07 +02:00
foreach ( $ids as $id ) {
2005-11-19 18:52:40 +01:00
db_query ( $link , " DELETE FROM ttrss_feeds
WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"] );
2005-11-16 18:37:45 +01:00
2005-11-18 08:04:41 +01:00
$icons_dir = ICONS_DIR ;
2005-08-26 05:41:45 +02:00
2005-11-16 18:37:45 +01:00
if ( file_exists ( $icons_dir . " / $id .ico " )) {
unlink ( $icons_dir . " / $id .ico " );
2005-08-26 05:41:45 +02:00
}
2005-08-23 13:34:07 +02:00
}
2005-08-22 06:56:40 +02:00
}
}
if ( $subop == " add " ) {
2005-08-23 13:34:07 +02:00
if ( ! WEB_DEMO_MODE ) {
2005-08-22 06:56:40 +02:00
2005-11-20 08:18:56 +01:00
$feed_link = db_escape_string ( trim ( $_GET [ " link " ]));
2005-12-20 09:00:11 +01:00
$cat_id = db_escape_string ( $_GET [ " cid " ]);
2005-12-22 09:32:18 +01:00
if ( $cat_id == " 0 " || ! $cat_id ) {
2005-12-20 09:00:11 +01:00
$cat_qpart = " NULL " ;
} else {
$cat_qpart = " ' $cat_id ' " ;
}
2005-08-22 06:56:40 +02:00
2005-09-07 14:17:16 +02:00
$result = db_query ( $link ,
2005-11-19 18:57:14 +01:00
" SELECT id FROM ttrss_feeds
WHERE feed_url = '$feed_link' AND owner_uid = " . $_SESSION["uid"] );
if ( db_num_rows ( $result ) == 0 ) {
$result = db_query ( $link ,
2005-12-20 09:00:11 +01:00
" INSERT INTO ttrss_feeds (owner_uid,feed_url,title,cat_id)
2005-12-20 10:57:01 +01:00
VALUES ( '".$_SESSION["uid"]."' , '$feed_link' ,
'[Unknown]' , $cat_qpart ) " );
2005-08-22 06:56:40 +02:00
2005-11-19 18:57:14 +01:00
$result = db_query ( $link ,
2005-12-20 10:57:01 +01:00
" SELECT id FROM ttrss_feeds WHERE feed_url = ' $feed_link '
2005-11-19 18:57:14 +01:00
AND owner_uid = " . $_SESSION["uid"] );
$feed_id = db_fetch_result ( $result , 0 , " id " );
if ( $feed_id ) {
2005-11-27 19:31:20 +01:00
update_rss_feed ( $link , $feed_link , $feed_id , true );
2005-11-19 18:57:14 +01:00
}
} else {
2005-08-22 06:56:40 +02:00
2005-11-19 18:57:14 +01:00
print " <div class= \" warning \" >
Feed < b > $feed_link </ b > already exists in the database .
</ div > " ;
2005-08-23 13:34:07 +02:00
}
}
2005-08-22 06:56:40 +02:00
}
2005-09-03 09:22:29 +02:00
2005-11-23 08:07:04 +01:00
if ( $subop == " addCat " ) {
if ( ! WEB_DEMO_MODE ) {
$feed_cat = db_escape_string ( trim ( $_GET [ " cat " ]));
$result = db_query ( $link ,
" SELECT id FROM ttrss_feed_categories
WHERE title = '$feed_cat' AND owner_uid = " . $_SESSION["uid"] );
if ( db_num_rows ( $result ) == 0 ) {
$result = db_query ( $link ,
" INSERT INTO ttrss_feed_categories (owner_uid,title)
VALUES ( '".$_SESSION["uid"]."' , '$feed_cat' ) " );
} else {
print " <div class= \" warning \" >
Category < b > $feed_cat </ b > already exists in the database .
</ div > " ;
}
}
}
if ( $subop == " removeCats " ) {
if ( ! WEB_DEMO_MODE ) {
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-11-23 08:07:04 +01:00
foreach ( $ids as $id ) {
db_query ( $link , " BEGIN " );
$result = db_query ( $link ,
" SELECT count(id) as num_feeds FROM ttrss_feeds
WHERE cat_id = '$id' " );
$num_feeds = db_fetch_result ( $result , 0 , " num_feeds " );
if ( $num_feeds == 0 ) {
db_query ( $link , " DELETE FROM ttrss_feed_categories
WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"] );
} else {
print " <div class= \" warning \" >
Unable to delete non empty feed categories .</ div > " ;
}
db_query ( $link , " COMMIT " );
}
}
}
2005-11-29 10:11:43 +01:00
if ( $subop == " categorize " ) {
if ( ! WEB_DEMO_MODE ) {
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
$cat_id = db_escape_string ( $_GET [ " cat_id " ]);
if ( $cat_id == 0 ) {
$cat_id_qpart = 'NULL' ;
} else {
$cat_id_qpart = " ' $cat_id ' " ;
}
db_query ( $link , " BEGIN " );
foreach ( $ids as $id ) {
db_query ( $link , " UPDATE ttrss_feeds SET cat_id = $cat_id_qpart
WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"] );
}
db_query ( $link , " COMMIT " );
}
}
2005-12-09 20:48:13 +01:00
if ( $quiet ) return ;
2005-11-23 10:55:05 +01:00
// print "<h3>Edit Feeds</h3>";
2005-11-23 08:07:04 +01:00
2005-11-23 10:50:37 +01:00
$result = db_query ( $link , " SELECT id,title,feed_url,last_error
FROM ttrss_feeds WHERE last_error != '' AND owner_uid = " . $_SESSION["uid"] );
if ( db_num_rows ( $result ) > 0 ) {
print " <div class= \" warning \" > " ;
2005-12-20 11:39:20 +01:00
// print"<img class=\"closeButton\"
// onclick=\"javascript:hideParentElement(this);\" src=\"images/close.png\">";
2005-11-29 10:50:18 +01:00
print " <a href= \" javascript:showBlockElement('feedUpdateErrors') \" >
< b > Feeds with update errors </ b > ( click to expand ) </ a > " ;
2005-11-23 10:50:37 +01:00
2005-11-29 10:50:18 +01:00
print " <ul id= \" feedUpdateErrors \" class= \" nomarks \" > " ;
2005-11-23 10:50:37 +01:00
while ( $line = db_fetch_assoc ( $result )) {
print " <li> " . $line [ " title " ] . " ( " . $line [ " feed_url " ] . " ): " .
$line [ " last_error " ];
}
print " </ul> " ;
print " </div> " ;
}
2005-11-29 10:11:43 +01:00
$feed_search = db_escape_string ( $_GET [ " search " ]);
if ( array_key_exists ( " search " , $_GET )) {
$_SESSION [ " prefs_feed_search " ] = $feed_search ;
} else {
$feed_search = $_SESSION [ " prefs_feed_search " ];
}
print " <table width='100%' class= \" prefGenericAddBox \"
cellspacing = '0' cellpadding = '0' >< tr >
< td >
< input id = \ " fadd_link \"
onchange = \ " javascript:addFeed() \"
size = \ " 40 \" >
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:addFeed() \" value= \" Add feed \" >
2005-12-29 17:36:41 +01:00
& nbsp ;
2005-12-30 06:17:23 +01:00
( < a href = 'javascript:browseFeeds()' > Top 50 </ a > )
2005-11-29 10:11:43 +01:00
</ td >< td align = 'right' >
< input id = \ " feed_search \" size= \" 20 \"
onchange = \ " javascript:updateFeedList() \"
value = \ " $feed_search\ " >
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:updateFeedList() \" value= \" Search \" >
</ td >
</ tr ></ table > " ;
2005-09-03 09:22:29 +02:00
2005-11-23 11:47:30 +01:00
$feeds_sort = db_escape_string ( $_GET [ " sort " ]);
if ( ! $feeds_sort || $feeds_sort == " undefined " ) {
$feeds_sort = $_SESSION [ " pref_sort_feeds " ];
if ( ! $feeds_sort ) $feeds_sort = " title " ;
}
$_SESSION [ " pref_sort_feeds " ] = $feeds_sort ;
2005-11-29 10:11:43 +01:00
if ( $feed_search ) {
2005-12-29 15:10:03 +01:00
$search_qpart = " (UPPER(F1.title) LIKE UPPER('% $feed_search %') OR
UPPER ( F1 . feed_url ) LIKE UPPER ( '%$feed_search%' )) AND " ;
2005-11-29 10:11:43 +01:00
} else {
$search_qpart = " " ;
}
2005-09-07 14:17:16 +02:00
$result = db_query ( $link , " SELECT
2005-12-29 07:19:27 +01:00
F1 . id ,
F1 . title ,
F1 . feed_url ,
substring ( F1 . last_updated , 1 , 16 ) AS last_updated ,
F1 . parent_feed ,
F1 . update_interval ,
F1 . purge_interval ,
F1 . cat_id ,
F2 . title AS parent_title ,
C1 . title AS category
2005-08-25 17:15:27 +02:00
FROM
2005-12-29 07:19:27 +01:00
ttrss_feeds AS F1
LEFT JOIN ttrss_feeds AS F2
ON ( F1 . parent_feed = F2 . id )
LEFT JOIN ttrss_feed_categories AS C1
ON ( F1 . cat_id = C1 . id )
2005-11-29 10:11:43 +01:00
WHERE
2005-12-29 07:19:27 +01:00
$search_qpart F1 . owner_uid = '".$_SESSION["uid"]."'
2005-12-10 20:35:09 +01:00
ORDER by category , $feeds_sort , title " );
2005-08-21 12:13:10 +02:00
2005-11-23 15:25:42 +01:00
if ( db_num_rows ( $result ) != 0 ) {
2005-11-23 08:07:04 +01:00
2005-11-23 15:25:42 +01:00
print " <div id= \" infoBoxShadow \" ><div id= \" infoBox \" >PLACEHOLDER</div></div> " ;
2005-11-25 16:14:45 +01:00
2005-11-27 20:38:39 +01:00
print " <p><table width= \" 100% \" cellspacing= \" 0 \"
class = \ " prefFeedList \" id= \" prefFeedList \" > " ;
2005-11-25 16:14:45 +01:00
print " <tr><td class= \" selectPrompt \" colspan= \" 8 \" >
Select :
< a href = \ " javascript:selectTableRowsByIdPrefix('prefFeedList',
2005-11-25 16:48:24 +01:00
'FEEDR-' , 'FRCHK-' , true ) \ " >All</a>,
2005-11-25 16:14:45 +01:00
< a href = \ " javascript:selectTableRowsByIdPrefix('prefFeedList',
2005-11-25 16:48:24 +01:00
'FEEDR-' , 'FRCHK-' , false ) \ " >None</a>
2005-11-25 16:14:45 +01:00
</ td </ tr > " ;
2005-12-10 20:35:09 +01:00
if ( ! get_pref ( $link , 'ENABLE_FEED_CATS' )) {
print " <tr class= \" title \" >
2005-12-12 06:57:54 +01:00
< td width = '5%' align = 'center' >& nbsp ; </ td >
2005-12-10 20:53:10 +01:00
< td width = '30%' >< a href = \ " javascript:updateFeedList('title') \" >Title</a></td>
2005-12-11 08:36:40 +01:00
< td width = '30%' >< a href = \ " javascript:updateFeedList('feed_url') \" >Feed</a></td>
2005-12-10 20:53:10 +01:00
< td width = '15%' >< a href = \ " javascript:updateFeedList('update_interval') \" >Update Interval</a></td>
< td width = '15%' >< a href = \ " javascript:updateFeedList('purge_interval') \" >Purge Days</a></td></tr> " ;
2005-08-26 08:56:00 +02:00
}
2005-11-23 10:55:05 +01:00
$lnum = 0 ;
2005-12-10 20:35:09 +01:00
$cur_cat_id = - 1 ;
2005-11-23 10:55:05 +01:00
while ( $line = db_fetch_assoc ( $result )) {
2005-11-23 15:25:42 +01:00
$feed_id = $line [ " id " ];
2005-12-10 20:35:09 +01:00
$cat_id = $line [ " cat_id " ];
$edit_title = htmlspecialchars ( db_unescape_string ( $line [ " title " ]));
$edit_link = htmlspecialchars ( db_unescape_string ( $line [ " feed_url " ]));
$edit_cat = htmlspecialchars ( db_unescape_string ( $line [ " category " ]));
2005-11-23 10:55:05 +01:00
2005-12-10 20:35:09 +01:00
if ( $line [ " update_interval " ] == " 0 " ) $line [ " update_interval " ] = " Default " ;
if ( $line [ " update_interval " ] == " -1 " ) $line [ " update_interval " ] = " Disabled " ;
if ( $line [ " purge_interval " ] == " 0 " ) $line [ " purge_interval " ] = " Default " ;
if ( $line [ " purge_interval " ] < 0 ) $line [ " purge_interval " ] = " Disabled " ;
if ( ! $edit_cat ) $edit_cat = " Uncategorized " ;
if ( get_pref ( $link , 'ENABLE_FEED_CATS' ) && $cur_cat_id != $cat_id ) {
2005-12-10 20:37:44 +01:00
$lnum = 0 ;
2005-12-10 20:35:09 +01:00
print " <tr><td colspan= \" 6 \" class= \" feedEditCat \" > $edit_cat </td></tr> " ;
print " <tr class= \" title \" >
2005-12-12 06:57:54 +01:00
< td width = '5%' align = 'center' >& nbsp ; </ td >
2005-12-10 20:53:10 +01:00
< td width = '30%' >< a href = \ " javascript:updateFeedList('title') \" >Title</a></td>
2005-12-11 08:36:40 +01:00
< td width = '30%' >< a href = \ " javascript:updateFeedList('feed_url') \" >Feed</a></td>
2005-12-10 20:53:10 +01:00
< td width = '15%' >< a href = \ " javascript:updateFeedList('update_interval') \" >Update Interval</a></td>
< td width = '15%' >< a href = \ " javascript:updateFeedList('purge_interval') \" >Purge Days</a></td></tr> " ;
2005-12-10 20:35:09 +01:00
$cur_cat_id = $cat_id ;
2005-11-23 10:55:05 +01:00
}
2005-12-10 20:35:09 +01:00
2005-12-10 20:37:44 +01:00
$class = ( $lnum % 2 ) ? " even " : " odd " ;
2005-12-10 20:35:09 +01:00
$this_row_id = " id= \" FEEDR- $feed_id\ " " ;
2005-11-26 13:31:34 +01:00
print " <tr class= \" $class\ " $this_row_id > " ;
2005-11-23 15:25:42 +01:00
$icon_file = ICONS_DIR . " / $feed_id .ico " ;
if ( file_exists ( $icon_file ) && filesize ( $icon_file ) > 0 ) {
2005-12-10 21:06:41 +01:00
$feed_icon = " <img class= \" tinyFeedIcon \" src= \" " . ICONS_URL . " / $feed_id .ico \" > " ;
2005-11-23 15:25:42 +01:00
} else {
2005-12-10 21:06:41 +01:00
$feed_icon = " <img class= \" tinyFeedIcon \" src= \" images/blank_icon.gif \" > " ;
2005-11-23 15:25:42 +01:00
}
2005-12-10 21:06:41 +01:00
// print "<td class='feedIcon'>$feed_icon</td>";
2005-11-23 10:55:05 +01:00
2005-12-10 20:53:10 +01:00
print " <td class='feedSelect'><input onclick='toggleSelectRow(this);'
2005-12-10 20:35:09 +01:00
type = \ " checkbox \" id= \" FRCHK- " . $line [ " id " ] . " \" ></td> " ;
2005-11-24 08:25:09 +01:00
2005-12-10 20:35:09 +01:00
$edit_title = truncate_string ( $edit_title , 40 );
$edit_link = truncate_string ( $edit_link , 60 );
2005-11-29 10:26:09 +01:00
2005-12-28 20:17:26 +01:00
$parent_title = $line [ " parent_title " ];
if ( $parent_title ) {
$parent_title = " <span class='groupPrompt'>(linked to
$parent_title ) </ span > " ;
}
2005-12-10 20:35:09 +01:00
print " <td><a href= \" javascript:editFeed( $feed_id ); \" > " .
2005-12-28 20:17:26 +01:00
" $feed_icon $edit_title $parent_title " . " </a></td> " ;
2005-12-10 20:35:09 +01:00
print " <td><a href= \" javascript:editFeed( $feed_id ); \" > " .
$edit_link . " </a></td> " ;
2005-11-24 08:25:09 +01:00
2005-12-10 20:35:09 +01:00
/* if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
print " <td><a href= \" javascript:editFeed( $feed_id ); \" > " .
$edit_cat . " </a></td> " ;
} */
2005-11-24 08:25:09 +01:00
2005-12-10 20:35:09 +01:00
print " <td><a href= \" javascript:editFeed( $feed_id ); \" > " .
$line [ " update_interval " ] . " </a></td> " ;
2005-11-23 15:25:42 +01:00
2005-12-10 20:35:09 +01:00
print " <td><a href= \" javascript:editFeed( $feed_id ); \" > " .
$line [ " purge_interval " ] . " </a></td> " ;
2005-11-23 15:25:42 +01:00
2005-11-23 10:55:05 +01:00
print " </tr> " ;
++ $lnum ;
}
print " </table> " ;
2005-11-23 15:25:42 +01:00
2005-11-23 10:55:05 +01:00
print " <p> " ;
2005-11-23 15:25:42 +01:00
if ( $subop == " edit " ) {
print " Edit feed:
2005-11-23 10:55:05 +01:00
< input type = \ " submit \" class= \" button \"
2005-11-23 15:25:42 +01:00
onclick = \ " javascript:feedEditCancel() \" value= \" Cancel \" >
2005-11-23 10:55:05 +01:00
< input type = \ " submit \" class= \" button \"
2005-11-23 15:25:42 +01:00
onclick = \ " javascript:feedEditSave() \" value= \" Save \" > " ;
} else {
2005-11-23 10:55:05 +01:00
print "
Selection :& nbsp ;
< input type = \ " submit \" class= \" button \"
2005-11-23 15:25:42 +01:00
onclick = \ " javascript:selectedFeedDetails() \" value= \" Details \" >
2005-11-23 10:55:05 +01:00
< input type = \ " submit \" class= \" button \"
2005-11-23 15:25:42 +01:00
onclick = \ " javascript:editSelectedFeed() \" value= \" Edit \" >
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:removeSelectedFeeds() \" value= \" Remove \" > " ;
2005-11-29 10:11:43 +01:00
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
print " " ;
$result = db_query ( $link , " SELECT title,id FROM ttrss_feed_categories
WHERE owner_uid = " . $_SESSION["uid"] . "
ORDER BY title " );
print " <select id= \" sfeed_set_fcat \" > " ;
print " <option id= \" 0 \" >Uncategorized</option> " ;
if ( db_num_rows ( $result ) != 0 ) {
print " <option disabled>--------</option> " ;
while ( $line = db_fetch_assoc ( $result )) {
printf ( " <option id='%d'>%s</option> " ,
$line [ " id " ], $line [ " title " ]);
}
}
print " </select> " ;
print " <input type= \" submit \" class= \" button \"
onclick = \ " javascript:categorizeSelectedFeeds() \" value= \" Set category \" > " ;
}
2005-11-23 15:25:42 +01:00
if ( get_pref ( $link , 'ENABLE_PREFS_CATCHUP_UNCATCHUP' )) {
print "
< input type = \ " submit \" class= \" button \"
2005-11-25 16:38:08 +01:00
onclick = \ " javascript:readSelectedFeeds(true) \" value= \" Mark as read \" >
2005-11-23 15:25:42 +01:00
< input type = \ " submit \" class= \" button \"
2005-11-25 16:38:08 +01:00
onclick = \ " javascript:readSelectedFeeds(false) \"
2005-11-23 15:25:42 +01:00
value = \ " Mark as unread \" > " ;
}
print "
2005-11-29 10:11:43 +01:00
& nbsp ; All feeds : < input type = \ " submit \"
2005-11-23 15:25:42 +01:00
class = \ " button \" onclick= \" gotoExportOpml() \"
value = \ " Export OPML \" > " ;
}
} else {
print " <p>No feeds defined.</p> " ;
}
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
print " <h3>Edit Categories</h3> " ;
// print "<h3>Categories</h3>";
print " <div class= \" prefGenericAddBox \" >
2005-11-29 10:11:43 +01:00
< input id = \ " fadd_cat \"
onchange = \ " javascript:addFeedCat() \"
size = \ " 40 \" >
< input
2005-11-23 15:25:42 +01:00
type = \ " submit \" class= \" button \"
onclick = \ " javascript:addFeedCat() \" value= \" Add category \" ></div> " ;
$result = db_query ( $link , " SELECT title,id FROM ttrss_feed_categories
WHERE owner_uid = " . $_SESSION["uid"] . "
ORDER BY title " );
if ( db_num_rows ( $result ) != 0 ) {
2005-11-25 16:14:45 +01:00
print " <p><table width= \" 100% \" class= \" prefFeedCatList \"
2005-11-27 20:38:39 +01:00
cellspacing = \ " 0 \" id= \" prefFeedCatList \" > " ;
2005-11-25 16:14:45 +01:00
print " <tr><td class= \" selectPrompt \" colspan= \" 8 \" >
Select :
< a href = \ " javascript:selectTableRowsByIdPrefix('prefFeedCatList',
2005-11-25 16:48:24 +01:00
'FCATR-' , 'FCCHK-' , true ) \ " >All</a>,
2005-11-25 16:14:45 +01:00
< a href = \ " javascript:selectTableRowsByIdPrefix('prefFeedCatList',
2005-11-25 16:48:24 +01:00
'FCATR-' , 'FCCHK-' , false ) \ " >None</a>
2005-11-25 16:14:45 +01:00
</ td </ tr > " ;
2005-11-23 15:25:42 +01:00
print " <tr class= \" title \" >
2005-12-11 08:29:42 +01:00
< td width = \ " 5% \" ></td><td width= \" 80% \" >Title</td>
2005-11-23 15:25:42 +01:00
</ tr > " ;
$lnum = 0 ;
while ( $line = db_fetch_assoc ( $result )) {
$class = ( $lnum % 2 ) ? " even " : " odd " ;
$cat_id = $line [ " id " ];
$edit_cat_id = $_GET [ " id " ];
if ( $subop == " editCat " && $cat_id != $edit_cat_id ) {
$class .= " Grayed " ;
2005-11-26 13:31:34 +01:00
$this_row_id = " " ;
} else {
$this_row_id = " id= \" FCATR- $cat_id\ " " ;
2005-11-23 15:25:42 +01:00
}
2005-11-26 13:31:34 +01:00
print " <tr class= \" $class\ " $this_row_id > " ;
2005-11-23 15:25:42 +01:00
$edit_title = htmlspecialchars ( db_unescape_string ( $line [ " title " ]));
if ( ! $edit_cat_id || $subop != " editCat " ) {
2005-12-11 08:29:42 +01:00
print " <td align='center'><input onclick='toggleSelectRow(this);'
2005-11-23 15:25:42 +01:00
type = \ " checkbox \" id= \" FCCHK- " . $line [ " id " ] . " \" ></td> " ;
print " <td><a href= \" javascript:editFeedCat( $cat_id ); \" > " .
$edit_title . " </a></td> " ;
} else if ( $cat_id != $edit_cat_id ) {
print " <td><input disabled= \" true \" type= \" checkbox \"
id = \ " FRCHK- " . $line [ " id " ] . " \" ></td> " ;
print " <td> $edit_title </td> " ;
} else {
print " <td><input disabled= \" true \" type= \" checkbox \" checked></td> " ;
print " <td><input id= \" iedit_title \" value= \" $edit_title\ " ></ td > " ;
}
print " </tr> " ;
++ $lnum ;
}
print " </table> " ;
print " <p> " ;
if ( $subop == " editCat " ) {
print " Edit category:
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:feedCatEditCancel() \" value= \" Cancel \" >
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:feedCatEditSave() \" value= \" Save \" > " ;
} else {
print "
Selection :& nbsp ;
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:editSelectedFeedCat() \" value= \" Edit \" >
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:removeSelectedFeedCats() \" value= \" Remove \" > " ;
}
} else {
print " <p>No feed categories defined.</p> " ;
}
2005-11-23 10:55:05 +01:00
}
print " <h3>Import OPML</h3>
2005-10-28 19:58:20 +02:00
< form enctype = \ " multipart/form-data \" method= \" POST \" action= \" opml.php \" >
File : < input id = \ " opml_file \" name= \" opml_file \" type= \" file \" >
< input class = \ " button \" name= \" op \" onclick= \" return validateOpmlImport(); \"
type = \ " submit \" value= \" Import \" >
</ form > " ;
2005-08-22 03:17:12 +02:00
}
2005-09-03 09:22:29 +02:00
if ( $op == " pref-filters " ) {
$subop = $_GET [ " subop " ];
2005-12-09 20:48:13 +01:00
$quiet = $_GET [ " quiet " ];
2005-09-03 09:22:29 +02:00
if ( $subop == " editSave " ) {
2005-09-07 14:17:16 +02:00
$regexp = db_escape_string ( $_GET [ " r " ]);
$descr = db_escape_string ( $_GET [ " d " ]);
$match = db_escape_string ( $_GET [ " m " ]);
$filter_id = db_escape_string ( $_GET [ " id " ]);
2005-11-21 14:49:15 +01:00
$feed_id = db_escape_string ( $_GET [ " fid " ]);
2005-11-29 19:43:39 +01:00
$action_id = db_escape_string ( $_GET [ " aid " ]);
2005-11-21 14:49:15 +01:00
if ( ! $feed_id ) {
$feed_id = 'NULL' ;
} else {
$feed_id = sprintf ( " '%s' " , db_escape_string ( $feed_id ));
}
2005-09-03 09:50:18 +02:00
2005-09-07 14:17:16 +02:00
$result = db_query ( $link , " UPDATE ttrss_filters SET
2005-09-07 14:42:49 +02:00
reg_exp = '$regexp' ,
2005-09-03 09:50:18 +02:00
description = '$descr' ,
2005-11-21 14:49:15 +01:00
feed_id = $feed_id ,
2005-11-29 19:43:39 +01:00
action_id = '$action_id' ,
2005-09-03 09:50:18 +02:00
filter_type = ( SELECT id FROM ttrss_filter_types WHERE
description = '$match' )
WHERE id = '$filter_id' " );
2005-09-03 09:22:29 +02:00
}
if ( $subop == " remove " ) {
if ( ! WEB_DEMO_MODE ) {
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-09-03 09:22:29 +02:00
foreach ( $ids as $id ) {
2005-09-07 14:17:16 +02:00
db_query ( $link , " DELETE FROM ttrss_filters WHERE id = ' $id ' " );
2005-09-03 09:22:29 +02:00
}
}
}
if ( $subop == " add " ) {
2005-09-03 09:34:31 +02:00
if ( ! WEB_DEMO_MODE ) {
2005-09-03 09:22:29 +02:00
2005-11-20 08:18:56 +01:00
$regexp = db_escape_string ( trim ( $_GET [ " regexp " ]));
$match = db_escape_string ( trim ( $_GET [ " match " ]));
2005-11-21 14:49:15 +01:00
$feed_id = db_escape_string ( $_GET [ " fid " ]);
2005-11-29 19:43:39 +01:00
$action_id = db_escape_string ( $_GET [ " aid " ]);
2005-11-21 14:49:15 +01:00
if ( ! $feed_id ) {
$feed_id = 'NULL' ;
} else {
$feed_id = sprintf ( " '%s' " , db_escape_string ( $feed_id ));
}
2005-11-20 08:21:17 +01:00
2005-09-07 14:17:16 +02:00
$result = db_query ( $link ,
2005-11-29 19:43:39 +01:00
" INSERT INTO ttrss_filters (reg_exp,filter_type,owner_uid,feed_id,
action_id )
VALUES
2005-09-03 09:34:31 +02:00
( '$regexp' , ( SELECT id FROM ttrss_filter_types WHERE
2005-11-29 19:43:39 +01:00
description = '$match' ), '".$_SESSION["uid"]."' ,
$feed_id , '$action_id' ) " );
2005-09-03 09:34:31 +02:00
}
2005-09-03 09:22:29 +02:00
}
2005-12-09 20:48:13 +01:00
if ( $quiet ) return ;
2005-09-07 14:17:16 +02:00
$result = db_query ( $link , " SELECT description
2005-09-03 09:22:29 +02:00
FROM ttrss_filter_types ORDER BY description " );
$filter_types = array ();
2005-09-07 14:17:16 +02:00
while ( $line = db_fetch_assoc ( $result )) {
2005-09-03 09:22:29 +02:00
array_push ( $filter_types , $line [ " description " ]);
}
2005-11-21 14:59:32 +01:00
print " <div class= \" prefGenericAddBox \" >
2005-11-30 06:48:22 +01:00
< input id = \ " fadd_regexp \" size= \" 40 \" > " ;
2005-11-21 14:59:32 +01:00
2005-11-21 14:49:15 +01:00
print_select ( " fadd_match " , " Title " , $filter_types );
print " <select id= \" fadd_feed \" > " ;
print " <option selected id= \" 0 \" >All feeds</option> " ;
$result = db_query ( $link , " SELECT id,title FROM ttrss_feeds
WHERE owner_uid = " . $_SESSION["uid"] . " ORDER BY title " );
if ( db_num_rows ( $result ) > 0 ) {
print " <option disabled>--------</option> " ;
}
while ( $line = db_fetch_assoc ( $result )) {
printf ( " <option id='%d'>%s</option> " , $line [ " id " ], $line [ " title " ]);
}
2005-11-21 14:59:32 +01:00
print " </select> " ;
2005-11-29 19:43:39 +01:00
print " Action: " ;
print " <select id= \" fadd_action \" > " ;
$result = db_query ( $link , " SELECT id,description FROM ttrss_filter_actions
ORDER BY name " );
while ( $line = db_fetch_assoc ( $result )) {
printf ( " <option id='%d'>%s</option> " , $line [ " id " ], $line [ " description " ]);
}
print " </select> " ;
2005-11-21 14:59:32 +01:00
print " <input type= \" submit \"
class = \ " button \" onclick= \" javascript:addFilter() \"
value = \ " Add filter \" > " ;
2005-09-03 09:22:29 +02:00
2005-11-29 19:43:39 +01:00
print " </div> " ;
2005-09-07 14:17:16 +02:00
$result = db_query ( $link , " SELECT
2005-11-21 14:49:15 +01:00
ttrss_filters . id AS id , reg_exp ,
ttrss_filters . description AS description ,
ttrss_filter_types . name AS filter_type_name ,
ttrss_filter_types . description AS filter_type_descr ,
feed_id ,
2005-11-29 19:43:39 +01:00
ttrss_filter_actions . description AS action_description ,
2005-12-29 15:10:03 +01:00
ttrss_feeds . title AS feed_title
2005-09-03 09:22:29 +02:00
FROM
2005-12-29 18:33:25 +01:00
ttrss_filter_types , ttrss_filter_actions , ttrss_filters LEFT JOIN
ttrss_feeds ON ( ttrss_filters . feed_id = ttrss_feeds . id )
2005-11-17 19:04:38 +01:00
WHERE
2005-11-21 14:49:15 +01:00
filter_type = ttrss_filter_types . id AND
2005-11-29 19:43:39 +01:00
ttrss_filter_actions . id = action_id AND
2005-11-21 14:49:15 +01:00
ttrss_filters . owner_uid = " . $_SESSION["uid"] . "
2005-11-17 19:04:38 +01:00
ORDER by reg_exp " );
2005-09-03 09:22:29 +02:00
2005-11-23 15:25:42 +01:00
if ( db_num_rows ( $result ) != 0 ) {
2005-09-03 09:22:29 +02:00
2005-11-27 20:38:39 +01:00
print " <p><table width= \" 100% \" cellspacing= \" 0 \" class= \" prefFilterList \"
id = \ " prefFilterList \" > " ;
2005-11-25 16:14:45 +01:00
print " <tr><td class= \" selectPrompt \" colspan= \" 8 \" >
Select :
< a href = \ " javascript:selectTableRowsByIdPrefix('prefFilterList',
2005-11-25 16:48:24 +01:00
'FILRR-' , 'FICHK-' , true ) \ " >All</a>,
2005-11-25 16:14:45 +01:00
< a href = \ " javascript:selectTableRowsByIdPrefix('prefFilterList',
2005-11-25 16:48:24 +01:00
'FILRR-' , 'FICHK-' , false ) \ " >None</a>
2005-11-25 16:14:45 +01:00
</ td </ tr > " ;
2005-11-23 15:25:42 +01:00
print " <tr class= \" title \" >
2005-12-12 06:57:54 +01:00
< td align = 'center' width = \ " 5% \" > </td>
2005-11-29 19:43:39 +01:00
< td width = \ " 20% \" >Filter expression</td>
< td width = \ " 20% \" >Feed</td>
< td width = \ " 15% \" >Match</td>
< td width = \ " 15% \" >Action</td>
2005-11-23 15:25:42 +01:00
< td width = \ " 30% \" >Description</td></tr> " ;
2005-09-03 09:22:29 +02:00
2005-11-23 15:25:42 +01:00
$lnum = 0 ;
while ( $line = db_fetch_assoc ( $result )) {
$class = ( $lnum % 2 ) ? " even " : " odd " ;
$filter_id = $line [ " id " ];
$edit_filter_id = $_GET [ " id " ];
if ( $subop == " edit " && $filter_id != $edit_filter_id ) {
$class .= " Grayed " ;
2005-11-26 13:31:34 +01:00
$this_row_id = " " ;
} else {
$this_row_id = " id= \" FILRR- $filter_id\ " " ;
2005-11-21 14:49:15 +01:00
}
2005-11-23 15:25:42 +01:00
2005-11-26 13:31:34 +01:00
print " <tr class= \" $class\ " $this_row_id > " ;
2005-11-23 15:25:42 +01:00
$line [ " regexp " ] = htmlspecialchars ( $line [ " reg_exp " ]);
$line [ " description " ] = htmlspecialchars ( $line [ " description " ]);
if ( ! $line [ " feed_title " ]) $line [ " feed_title " ] = " All feeds " ;
if ( ! $edit_filter_id || $subop != " edit " ) {
if ( ! $line [ " description " ]) $line [ " description " ] = " [No description] " ;
2005-12-11 08:29:42 +01:00
print " <td align='center'><input onclick='toggleSelectRow(this);'
2005-11-23 15:25:42 +01:00
type = \ " checkbox \" id= \" FICHK- " . $line [ " id " ] . " \" ></td> " ;
print " <td><a href= \" javascript:editFilter( $filter_id ); \" > " .
$line [ " reg_exp " ] . " </td> " ;
print " <td><a href= \" javascript:editFilter( $filter_id ); \" > " .
$line [ " feed_title " ] . " </td> " ;
print " <td><a href= \" javascript:editFilter( $filter_id ); \" > " .
$line [ " filter_type_descr " ] . " </td> " ;
2005-11-29 19:43:39 +01:00
print " <td><a href= \" javascript:editFilter( $filter_id ); \" > " .
$line [ " action_description " ] . " </td> " ;
2005-11-23 15:25:42 +01:00
print " <td><a href= \" javascript:editFilter( $filter_id ); \" > " .
$line [ " description " ] . " </td> " ;
} else if ( $filter_id != $edit_filter_id ) {
if ( ! $line [ " description " ]) $line [ " description " ] = " [No description] " ;
print " <td><input disabled= \" true \" type= \" checkbox \"
id = \ " FICHK- " . $line [ " id " ] . " \" ></td> " ;
print " <td> " . $line [ " reg_exp " ] . " </td> " ;
print " <td> " . $line [ " feed_title " ] . " </td> " ;
print " <td> " . $line [ " filter_type_descr " ] . " </td> " ;
2005-11-29 19:43:39 +01:00
print " <td> " . $line [ " action_description " ] . " </td> " ;
2005-11-23 15:25:42 +01:00
print " <td> " . $line [ " description " ] . " </td> " ;
2005-11-29 19:43:39 +01:00
2005-11-23 15:25:42 +01:00
} else {
print " <td><input disabled= \" true \" type= \" checkbox \" checked></td> " ;
print " <td><input id= \" iedit_regexp \" value= \" " . $line [ " reg_exp " ] .
" \" ></td> " ;
print " <td> " ;
print " <select id= \" iedit_feed \" > " ;
print " <option id= \" 0 \" >All feeds</option> " ;
$tmp_result = db_query ( $link , " SELECT id,title FROM ttrss_feeds
WHERE owner_uid = " . $_SESSION["uid"] . " ORDER BY title " );
2005-11-29 19:43:39 +01:00
if ( db_num_rows ( $tmp_result ) > 0 ) {
print " <option disabled>--------</option> " ;
}
2005-11-23 15:25:42 +01:00
while ( $tmp_line = db_fetch_assoc ( $tmp_result )) {
if ( $tmp_line [ " id " ] == $line [ " feed_id " ]) {
$is_selected = " selected " ;
} else {
$is_selected = " " ;
}
printf ( " <option $is_selected id='%d'>%s</option> " ,
$tmp_line [ " id " ], $tmp_line [ " title " ]);
2005-11-21 14:49:15 +01:00
}
2005-11-23 15:25:42 +01:00
print " </select></td> " ;
print " <td> " ;
print_select ( " iedit_match " , $line [ " filter_type_descr " ], $filter_types );
print " </td> " ;
2005-11-29 19:43:39 +01:00
print " <td> " ;
print " <select id= \" iedit_filter_action \" > " ;
$tmp_result = db_query ( $link , " SELECT id,description FROM ttrss_filter_actions
ORDER BY description " );
while ( $tmp_line = db_fetch_assoc ( $tmp_result )) {
if ( $tmp_line [ " description " ] == $line [ " action_description " ]) {
$is_selected = " selected " ;
} else {
$is_selected = " " ;
}
printf ( " <option $is_selected id='%d'>%s</option> " ,
$tmp_line [ " id " ], $tmp_line [ " description " ]);
}
2005-11-23 15:25:42 +01:00
2005-11-29 19:43:39 +01:00
print " </select></td> " ;
2005-11-23 15:25:42 +01:00
print " <td><input id= \" iedit_descr \" value= \" " . $line [ " description " ] .
" \" ></td> " ;
print " </td> " ;
2005-11-21 14:49:15 +01:00
}
2005-11-23 15:25:42 +01:00
print " </tr> " ;
++ $lnum ;
2005-09-03 09:22:29 +02:00
}
2005-11-23 15:25:42 +01:00
if ( $lnum == 0 ) {
print " <tr><td colspan= \" 4 \" align= \" center \" >No filters defined.</td></tr> " ;
}
print " </table> " ;
print " <p> " ;
if ( $subop == " edit " ) {
2005-12-29 18:38:24 +01:00
print " Edit filter:
2005-11-23 15:25:42 +01:00
< input type = \ " submit \" class= \" button \"
2005-12-29 18:38:24 +01:00
onclick = \ " javascript:filterEditSave() \" value= \" Save \" >
2005-11-23 15:25:42 +01:00
< input type = \ " submit \" class= \" button \"
2005-12-29 18:38:24 +01:00
onclick = \ " javascript:filterEditCancel() \" value= \" Cancel \" > " ;
2005-11-23 15:25:42 +01:00
} else {
print "
Selection :
2005-09-07 09:19:14 +02:00
< input type = \ " submit \" class= \" button \"
2005-11-23 15:25:42 +01:00
onclick = \ " javascript:editSelectedFilter() \" value= \" Edit \" >
2005-09-07 09:19:14 +02:00
< input type = \ " submit \" class= \" button \"
2005-11-23 15:25:42 +01:00
onclick = \ " javascript:removeSelectedFilters() \" value= \" Remove \" > " ;
}
2005-09-03 09:22:29 +02:00
} else {
2005-11-23 15:25:42 +01:00
print " <p>No filters defined.</p> " ;
2005-09-03 09:22:29 +02:00
}
}
2005-12-02 21:36:07 +01:00
// We need to accept raw SQL data in label queries, so not everything is escaped
// here, this is by design. If you don't like the whole idea, disable labels
// altogether with GLOBAL_ENABLE_LABELS = false
2005-09-08 09:43:44 +02:00
if ( $op == " pref-labels " ) {
2005-12-02 21:07:47 +01:00
if ( ! GLOBAL_ENABLE_LABELS ) {
return ;
}
2005-09-08 09:43:44 +02:00
$subop = $_GET [ " subop " ];
2005-11-24 08:05:20 +01:00
if ( $subop == " test " ) {
$expr = $_GET [ " expr " ];
$descr = $_GET [ " descr " ];
print " <div class='infoBoxContents'> " ;
print " <h1>Label « $descr »</h1> " ;
// print "<p><b>Expression</b>: $expr</p>";
$result = db_query ( $link ,
" SELECT count(id) AS num_matches
FROM ttrss_entries , ttrss_user_entries
WHERE ( $expr ) AND
ttrss_user_entries . ref_id = ttrss_entries . id AND
owner_uid = " . $_SESSION["uid"] );
$num_matches = db_fetch_result ( $result , 0 , " num_matches " );;
if ( $num_matches > 0 ) {
2005-11-27 11:58:06 +01:00
print " <p>Query returned <b> $num_matches </b> matches, first 5 follow:</p> " ;
2005-11-24 08:05:20 +01:00
$result = db_query ( $link ,
" SELECT title,
( SELECT title FROM ttrss_feeds WHERE id = feed_id ) AS feed_title
FROM ttrss_entries , ttrss_user_entries
WHERE ( $expr ) AND
ttrss_user_entries . ref_id = ttrss_entries . id
AND owner_uid = " . $_SESSION["uid"] . "
ORDER BY date_entered DESC LIMIT 5 " );
print " <ul class= \" nomarks \" > " ;
while ( $line = db_fetch_assoc ( $result )) {
print " <li> " . $line [ " title " ] .
" <span class= \" insensitive \" >( " . $line [ " feed_title " ] . " )</span></li> " ;
}
print " </ul> " ;
} else {
print " <p>Query didn't return any matches.</p> " ;
}
print " </div> " ;
print " <div align='center'>
< input type = 'submit' class = 'button'
onclick = \ " closeInfoBox() \" value= \" Close this window \" ></div> " ;
return ;
}
2005-09-08 09:43:44 +02:00
if ( $subop == " editSave " ) {
$sql_exp = $_GET [ " s " ];
$descr = $_GET [ " d " ];
$label_id = db_escape_string ( $_GET [ " id " ]);
// print "$sql_exp : $descr : $label_id";
$result = db_query ( $link , " UPDATE ttrss_labels SET
sql_exp = '$sql_exp' ,
description = '$descr'
WHERE id = '$label_id' " );
}
if ( $subop == " remove " ) {
if ( ! WEB_DEMO_MODE ) {
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-09-08 09:43:44 +02:00
foreach ( $ids as $id ) {
db_query ( $link , " DELETE FROM ttrss_labels WHERE id = ' $id ' " );
}
}
}
if ( $subop == " add " ) {
if ( ! WEB_DEMO_MODE ) {
2005-11-20 08:21:17 +01:00
// no escaping is done here on purpose
$exp = trim ( $_GET [ " exp " ]);
2005-09-08 09:43:44 +02:00
$result = db_query ( $link ,
2005-11-17 19:04:38 +01:00
" INSERT INTO ttrss_labels (sql_exp,description,owner_uid)
VALUES ( '$exp' , '$exp' , '".$_SESSION["uid"]."' ) " );
2005-09-08 09:43:44 +02:00
}
}
2005-11-21 14:59:32 +01:00
print " <div class= \" prefGenericAddBox \" >
< input size = \ " 40 \" id= \" ladd_expr \" > " ;
2005-09-08 09:43:44 +02:00
2005-11-21 14:59:32 +01:00
print " <input type= \" submit \" class= \" button \"
onclick = \ " javascript:addLabel() \" value= \" Add label \" ></div> " ;
2005-09-08 09:43:44 +02:00
$result = db_query ( $link , " SELECT
id , sql_exp , description
FROM
2005-11-17 19:04:38 +01:00
ttrss_labels
WHERE
owner_uid = " . $_SESSION["uid"] . "
ORDER by description " );
2005-09-08 09:43:44 +02:00
2005-11-24 08:05:20 +01:00
print " <div id= \" infoBoxShadow \" ><div id= \" infoBox \" >PLACEHOLDER</div></div> " ;
2005-11-23 15:25:42 +01:00
if ( db_num_rows ( $result ) != 0 ) {
2005-09-08 09:43:44 +02:00
2005-11-27 20:38:39 +01:00
print " <p><table width= \" 100% \" cellspacing= \" 0 \"
class = \ " prefLabelList \" id= \" prefLabelList \" > " ;
2005-11-25 16:14:45 +01:00
print " <tr><td class= \" selectPrompt \" colspan= \" 8 \" >
Select :
< a href = \ " javascript:selectTableRowsByIdPrefix('prefLabelList',
2005-11-25 16:48:24 +01:00
'LILRR-' , 'LICHK-' , true ) \ " >All</a>,
2005-11-25 16:14:45 +01:00
< a href = \ " javascript:selectTableRowsByIdPrefix('prefLabelList',
2005-11-25 16:48:24 +01:00
'LILRR-' , 'LICHK-' , false ) \ " >None</a>
2005-11-25 16:14:45 +01:00
</ td </ tr > " ;
2005-11-23 15:25:42 +01:00
print " <tr class= \" title \" >
2005-12-12 06:57:54 +01:00
< td align = 'center' width = \ " 5% \" > </td>
< td width = \ " 40% \" >SQL expression
2005-11-27 11:56:53 +01:00
< a class = \ " helpLink \" href= \" javascript:displayHelpInfobox(1) \" >(?)</a>
2005-11-23 15:25:42 +01:00
</ td >
< td width = \ " 40% \" >Caption</td></tr> " ;
$lnum = 0 ;
while ( $line = db_fetch_assoc ( $result )) {
$class = ( $lnum % 2 ) ? " even " : " odd " ;
$label_id = $line [ " id " ];
$edit_label_id = $_GET [ " id " ];
if ( $subop == " edit " && $label_id != $edit_label_id ) {
$class .= " Grayed " ;
2005-11-26 13:31:34 +01:00
$this_row_id = " " ;
} else {
$this_row_id = " id= \" LILRR- $label_id\ " " ;
2005-11-23 15:25:42 +01:00
}
2005-11-26 13:31:34 +01:00
print " <tr class= \" $class\ " $this_row_id > " ;
2005-11-23 15:25:42 +01:00
$line [ " sql_exp " ] = htmlspecialchars ( $line [ " sql_exp " ]);
$line [ " description " ] = htmlspecialchars ( $line [ " description " ]);
if ( ! $edit_label_id || $subop != " edit " ) {
if ( ! $line [ " description " ]) $line [ " description " ] = " [No caption] " ;
2005-12-11 08:29:42 +01:00
print " <td align='center'><input onclick='toggleSelectRow(this);'
2005-11-23 15:25:42 +01:00
type = \ " checkbox \" id= \" LICHK- " . $line [ " id " ] . " \" ></td> " ;
print " <td><a href= \" javascript:editLabel( $label_id ); \" > " .
$line [ " sql_exp " ] . " </td> " ;
2005-09-08 09:43:44 +02:00
2005-11-23 15:25:42 +01:00
print " <td><a href= \" javascript:editLabel( $label_id ); \" > " .
$line [ " description " ] . " </td> " ;
} else if ( $label_id != $edit_label_id ) {
if ( ! $line [ " description " ]) $line [ " description " ] = " [No description] " ;
print " <td><input disabled= \" true \" type= \" checkbox \"
id = \ " LICHK- " . $line [ " id " ] . " \" ></td> " ;
print " <td> " . $line [ " sql_exp " ] . " </td> " ;
print " <td> " . $line [ " description " ] . " </td> " ;
} else {
print " <td><input disabled= \" true \" type= \" checkbox \" checked></td> " ;
print " <td><input id= \" iedit_expr \" value= \" " . $line [ " sql_exp " ] .
" \" ></td> " ;
print " <td><input id= \" iedit_descr \" value= \" " . $line [ " description " ] .
" \" ></td> " ;
}
2005-09-08 09:43:44 +02:00
2005-11-23 15:25:42 +01:00
print " </tr> " ;
++ $lnum ;
}
if ( $lnum == 0 ) {
print " <tr><td colspan= \" 4 \" align= \" center \" >No labels defined.</td></tr> " ;
}
print " </table> " ;
print " <p> " ;
if ( $subop == " edit " ) {
print " Edit label:
2005-11-24 08:05:20 +01:00
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:labelTest() \" value= \" Test \" >
2005-11-23 15:25:42 +01:00
< input type = \ " submit \" class= \" button \"
2005-12-29 18:38:24 +01:00
onclick = \ " javascript:labelEditSave() \" value= \" Save \" >
2005-11-23 15:25:42 +01:00
< input type = \ " submit \" class= \" button \"
2005-12-29 18:38:24 +01:00
onclick = \ " javascript:labelEditCancel() \" value= \" Cancel \" > " ;
2005-11-23 15:25:42 +01:00
} else {
print "
Selection :
2005-09-08 09:43:44 +02:00
< input type = \ " submit \" class= \" button \"
2005-11-23 15:25:42 +01:00
onclick = \ " javascript:editSelectedLabel() \" value= \" Edit \" >
2005-09-08 09:43:44 +02:00
< input type = \ " submit \" class= \" button \"
2005-11-23 15:25:42 +01:00
onclick = \ " javascript:removeSelectedLabels() \" value= \" Remove \" > " ;
}
2005-09-08 09:43:44 +02:00
} else {
2005-11-23 15:25:42 +01:00
print " <p>No labels defined.</p> " ;
2005-09-08 09:43:44 +02:00
}
}
2005-09-07 09:19:14 +02:00
if ( $op == " error " ) {
print " <div width= \" 100% \" align='center'> " ;
$msg = $_GET [ " msg " ];
print $msg ;
print " </div> " ;
}
2005-10-16 17:17:12 +02:00
if ( $op == " help " ) {
2005-11-27 11:56:53 +01:00
if ( ! $_GET [ " noheaders " ]) {
print " <html><head>
< title > Tiny Tiny RSS : Help </ title >
< link rel = \ " stylesheet \" href= \" tt-rss.css \" type= \" text/css \" >
< script type = \ " text/javascript \" src= \" functions.js \" ></script>
< meta http - equiv = \ " Content-Type \" content= \" text/html; charset=utf-8 \" >
</ head >< body > " ;
}
2005-10-16 17:17:12 +02:00
$tid = sprintf ( " %d " , $_GET [ " tid " ]);
2005-11-27 11:56:53 +01:00
print " <div class='infoBoxContents'> " ;
2005-10-16 17:17:12 +02:00
2005-11-27 11:56:53 +01:00
if ( file_exists ( " help/ $tid .php " )) {
include ( " help/ $tid .php " );
} else {
print " <p>Help topic not found.</p> " ;
}
2005-10-16 17:17:12 +02:00
2005-11-27 11:56:53 +01:00
print " </div> " ;
2005-10-16 17:17:12 +02:00
print " <div align='center'>
2005-11-27 11:56:53 +01:00
< input type = 'submit' class = 'button'
onclick = \ " closeInfoBox() \" value= \" Close this window \" ></div> " ;
2005-10-16 17:17:12 +02:00
2005-11-27 11:56:53 +01:00
if ( ! $_GET [ " noheaders " ]) {
print " </body></html> " ;
}
2005-10-16 17:17:12 +02:00
}
2005-10-28 07:59:29 +02:00
if ( $op == " dlg " ) {
$id = $_GET [ " id " ];
2005-10-28 08:21:16 +02:00
$param = $_GET [ " param " ];
2005-10-28 07:59:29 +02:00
if ( $id == " quickAddFeed " ) {
2005-11-27 11:48:07 +01:00
print "
Feed URL : < input
2005-10-28 08:51:34 +02:00
onblur = \ " javascript:enableHotkeys() \" onfocus= \" javascript:disableHotkeys() \"
2005-12-20 09:00:11 +01:00
id = \ " qafInput \" > " ;
if ( get_pref ( $link , 'ENABLE_FEED_CATS' )) {
$result = db_query ( $link , " SELECT title,id FROM ttrss_feed_categories
WHERE owner_uid = " . $_SESSION["uid"] . "
ORDER BY title " );
print " <select id= \" qafCat \" > " ;
print " <option id= \" 0 \" >Uncategorized</option> " ;
if ( db_num_rows ( $result ) != 0 ) {
print " <option disabled>--------</option> " ;
while ( $line = db_fetch_assoc ( $result )) {
printf ( " <option id='%d'>%s</option> " ,
$line [ " id " ], $line [ " title " ]);
}
}
print " </select> " ;
}
print " <input class= \" button \"
2005-10-28 07:59:29 +02:00
type = \ " submit \" onclick= \" javascript:qafAdd() \" value= \" Add feed \" >
< input class = \ " button \"
type = \ " submit \" onclick= \" javascript:closeDlg() \"
value = \ " Cancel \" > " ;
}
2005-10-28 08:21:16 +02:00
if ( $id == " quickDelFeed " ) {
$param = db_escape_string ( $param );
$result = db_query ( $link , " SELECT title FROM ttrss_feeds WHERE id = ' $param ' " );
if ( $result ) {
$f_title = db_fetch_result ( $result , 0 , " title " );
2005-11-27 11:48:07 +01:00
print " Remove current feed (<b> $f_title </b>)?
2005-10-28 08:21:16 +02:00
< input class = \ " button \"
type = \ " submit \" onclick= \" javascript:qfdDelete( $param ) \" value= \" Remove \" >
< input class = \ " button \"
type = \ " submit \" onclick= \" javascript:closeDlg() \"
value = \ " Cancel \" > " ;
} else {
print " Error: Feed $param not found.
< input class = \ " button \"
type = \ " submit \" onclick= \" javascript:closeDlg() \"
value = \ " Cancel \" > " ;
}
}
2005-10-28 08:51:34 +02:00
if ( $id == " search " ) {
print " <input id= \" searchbox \" class= \" extSearch \"
onblur = \ " javascript:enableHotkeys() \" onfocus= \" javascript:disableHotkeys() \"
onchange = \ " javascript:search() \" >
< select id = \ " searchmodebox \" >
< option selected > All feeds </ option >
< option > This feed </ option >
</ select >
< input type = \ " submit \"
class = \ " button \" onclick= \" javascript:search() \" value= \" Search \" >
< input class = \ " button \"
type = \ " submit \" onclick= \" javascript:closeDlg() \"
value = \ " Close \" > " ;
}
2005-12-09 20:48:13 +01:00
if ( $id == " quickAddFilter " ) {
$result = db_query ( $link , " SELECT description
FROM ttrss_filter_types ORDER BY description " );
$filter_types = array ();
while ( $line = db_fetch_assoc ( $result )) {
array_push ( $filter_types , $line [ " description " ]);
}
print " <table> " ;
print " <tr><td>Match:</td><td><input id= \" fadd_regexp \" size= \" 40 \" > " ;
print_select ( " fadd_match " , " Title " , $filter_types );
print " </td></tr> " ;
print " <tr><td>Feed:</td><td><select id= \" fadd_feed \" > " ;
print " <option selected id= \" 0 \" >All feeds</option> " ;
$result = db_query ( $link , " SELECT id,title FROM ttrss_feeds
WHERE owner_uid = " . $_SESSION["uid"] . " ORDER BY title " );
if ( db_num_rows ( $result ) > 0 ) {
print " <option disabled>--------</option> " ;
}
while ( $line = db_fetch_assoc ( $result )) {
if ( $param == $line [ " id " ]) {
$selected = " selected " ;
} else {
$selected = " " ;
}
printf ( " <option id='%d' %s>%s</option> " , $line [ " id " ], $selected , $line [ " title " ]);
}
print " </select></td></tr> " ;
print " <tr><td>Action:</td> " ;
print " <td><select id= \" fadd_action \" > " ;
$result = db_query ( $link , " SELECT id,description FROM ttrss_filter_actions
ORDER BY name " );
while ( $line = db_fetch_assoc ( $result )) {
printf ( " <option id='%d'>%s</option> " , $line [ " id " ], $line [ " description " ]);
}
print " </select> " ;
print " </td></tr><tr><td colspan= \" 2 \" align= \" right \" > " ;
print " <input type= \" submit \"
class = \ " button \" onclick= \" javascript:qaddFilter() \"
value = \ " Add filter \" > " ;
print " <input class= \" button \"
type = \ " submit \" onclick= \" javascript:closeDlg() \"
value = \ " Close \" > " ;
print " </td></tr></table> " ;
}
2005-10-28 07:59:29 +02:00
}
2005-11-21 08:11:21 +01:00
// update feeds of all users, may be used anonymously
if ( $op == " globalUpdateFeeds " ) {
$result = db_query ( $link , " SELECT id FROM ttrss_users " );
while ( $line = db_fetch_assoc ( $result )) {
$user_id = $line [ " id " ];
// print "<!-- updating feeds of uid $user_id -->";
update_all_feeds ( $link , false , $user_id );
}
2005-11-16 10:54:33 +01:00
2005-11-21 08:11:21 +01:00
print " <rpc-reply>
< message msg = \ " All feeds updated \" />
</ rpc - reply > " ;
2005-11-16 10:54:33 +01:00
}
2005-11-17 06:26:54 +01:00
if ( $op == " pref-prefs " ) {
2005-11-17 08:10:31 +01:00
$subop = $_REQUEST [ " subop " ];
2005-11-17 06:26:54 +01:00
if ( $subop == " Save configuration " ) {
2005-11-21 21:05:29 +01:00
if ( WEB_DEMO_MODE ) {
header ( " Location: prefs.php " );
return ;
}
2005-11-17 08:26:33 +01:00
2005-11-20 08:15:59 +01:00
$_SESSION [ " prefs_op_result " ] = " save-config " ;
2005-12-29 15:10:03 +01:00
$_SESSION [ " prefs_cache " ] = false ;
2005-11-17 06:26:54 +01:00
foreach ( array_keys ( $_POST ) as $pref_name ) {
$pref_name = db_escape_string ( $pref_name );
$value = db_escape_string ( $_POST [ $pref_name ]);
$result = db_query ( $link , " SELECT type_name
FROM ttrss_prefs , ttrss_prefs_types
WHERE pref_name = '$pref_name' AND type_id = ttrss_prefs_types . id " );
if ( db_num_rows ( $result ) > 0 ) {
$type_name = db_fetch_result ( $result , 0 , " type_name " );
2005-11-17 06:34:52 +01:00
// print "$pref_name : $type_name : $value<br>";
2005-11-17 06:26:54 +01:00
if ( $type_name == " bool " ) {
2005-11-17 06:34:52 +01:00
if ( $value == " 1 " ) {
2005-11-17 06:26:54 +01:00
$value = " true " ;
} else {
$value = " false " ;
}
} else if ( $type_name == " integer " ) {
$value = sprintf ( " %d " , $value );
}
// print "$pref_name : $type_name : $value<br>";
2005-11-18 06:17:17 +01:00
db_query ( $link , " UPDATE ttrss_user_prefs SET value = ' $value '
WHERE pref_name = '$pref_name' AND owner_uid = " . $_SESSION["uid"] );
2005-11-17 06:26:54 +01:00
}
header ( " Location: prefs.php " );
}
2005-11-17 08:10:31 +01:00
} else if ( $subop == " getHelp " ) {
$pref_name = db_escape_string ( $_GET [ " pn " ]);
$result = db_query ( $link , " SELECT help_text FROM ttrss_prefs
WHERE pref_name = '$pref_name' " );
if ( db_num_rows ( $result ) > 0 ) {
$help_text = db_fetch_result ( $result , 0 , " help_text " );
print $help_text ;
} else {
print " Unknown option: $pref_name " ;
}
2005-12-21 18:50:11 +01:00
} else if ( $subop == " Change e-mail " ) {
if ( WEB_DEMO_MODE ) {
header ( " Location: prefs.php " );
return ;
}
$email = db_escape_string ( $_GET [ " email " ]);
$active_uid = $_SESSION [ " uid " ];
if ( $email ) {
db_query ( $link , " UPDATE ttrss_users SET email = ' $email '
WHERE id = '$active_uid' " );
}
header ( " Location: prefs.php " );
2005-11-18 07:04:32 +01:00
} else if ( $subop == " Change password " ) {
2005-11-21 21:05:29 +01:00
if ( WEB_DEMO_MODE ) {
header ( " Location: prefs.php " );
return ;
}
2005-11-18 07:04:32 +01:00
$old_pw = $_POST [ " OLD_PASSWORD " ];
$new_pw = $_POST [ " OLD_PASSWORD " ];
$old_pw_hash = 'SHA1:' . sha1 ( $_POST [ " OLD_PASSWORD " ]);
$new_pw_hash = 'SHA1:' . sha1 ( $_POST [ " NEW_PASSWORD " ]);
$active_uid = $_SESSION [ " uid " ];
if ( $old_pw && $new_pw ) {
$login = db_escape_string ( $_SERVER [ 'PHP_AUTH_USER' ]);
$result = db_query ( $link , " SELECT id FROM ttrss_users WHERE
id = '$active_uid' AND ( pwd_hash = '$old_pw' OR
pwd_hash = '$old_pw_hash' ) " );
if ( db_num_rows ( $result ) == 1 ) {
db_query ( $link , " UPDATE ttrss_users SET pwd_hash = ' $new_pw_hash '
WHERE id = '$active_uid' " );
2005-11-20 07:38:13 +01:00
$_SESSION [ " pwd_change_result " ] = " ok " ;
} else {
$_SESSION [ " pwd_change_result " ] = " failed " ;
2005-11-18 07:04:32 +01:00
}
}
header ( " Location: prefs.php " );
2005-11-20 07:38:13 +01:00
2005-11-17 06:26:54 +01:00
} else if ( $subop == " Reset to defaults " ) {
2005-11-21 21:05:29 +01:00
if ( WEB_DEMO_MODE ) {
header ( " Location: prefs.php " );
return ;
}
2005-11-17 08:26:33 +01:00
2005-11-20 08:15:59 +01:00
$_SESSION [ " prefs_op_result " ] = " reset-to-defaults " ;
2005-11-18 10:21:41 +01:00
if ( DB_TYPE == " pgsql " ) {
db_query ( $link , " UPDATE ttrss_user_prefs
SET value = ttrss_prefs . def_value
WHERE owner_uid = '".$_SESSION["uid"]."' AND
ttrss_prefs . pref_name = ttrss_user_prefs . pref_name " );
} else {
db_query ( $link , " DELETE FROM ttrss_user_prefs
WHERE owner_uid = " . $_SESSION["uid"] );
initialize_user_prefs ( $link , $_SESSION [ " uid " ]);
}
2005-11-17 06:34:52 +01:00
2005-11-17 06:26:54 +01:00
header ( " Location: prefs.php " );
2005-11-26 07:36:23 +01:00
} else if ( $subop == " Change theme " ) {
$theme = db_escape_string ( $_POST [ " theme " ]);
if ( $theme == " Default " ) {
$theme_qpart = 'NULL' ;
} else {
$theme_qpart = " ' $theme ' " ;
}
2005-11-26 07:56:22 +01:00
$result = db_query ( $link , " SELECT id,theme_path FROM ttrss_themes
WHERE theme_name = '$theme' " );
if ( db_num_rows ( $result ) == 1 ) {
$theme_id = db_fetch_result ( $result , 0 , " id " );
$theme_path = db_fetch_result ( $result , 0 , " theme_path " );
} else {
$theme_id = " NULL " ;
$theme_path = " " ;
}
2005-11-26 07:36:23 +01:00
db_query ( $link , " UPDATE ttrss_users SET
2005-11-26 07:56:22 +01:00
theme_id = $theme_id WHERE id = " . $_SESSION["uid"] );
2005-11-26 07:36:23 +01:00
2005-11-26 07:56:22 +01:00
$_SESSION [ " theme " ] = $theme_path ;
2005-11-26 07:48:37 +01:00
2005-11-26 07:36:23 +01:00
header ( " Location: prefs.php " );
2005-11-17 06:26:54 +01:00
} else {
2005-11-18 07:29:36 +01:00
if ( ! SINGLE_USER_MODE ) {
2005-11-18 07:04:32 +01:00
2005-12-21 18:50:11 +01:00
$result = db_query ( $link , " SELECT id,email FROM ttrss_users
2005-11-20 07:33:45 +01:00
WHERE id = " . $_SESSION["uid"] . " AND ( pwd_hash = 'password' OR
pwd_hash = 'SHA1:".sha1("password")."' ) " );
if ( db_num_rows ( $result ) != 0 ) {
2005-11-20 07:38:13 +01:00
print " <div class= \" warning \" >
2005-11-20 07:33:45 +01:00
Your password is at default value , please change it .
</ div > " ;
}
2005-11-20 07:38:13 +01:00
if ( $_SESSION [ " pwd_change_result " ] == " failed " ) {
print " <div class= \" warning \" >
There was an error while changing your password .
</ div > " ;
}
if ( $_SESSION [ " pwd_change_result " ] == " ok " ) {
print " <div class= \" notice \" >
Password changed successfully .
</ div > " ;
}
$_SESSION [ " pwd_change_result " ] = " " ;
2005-11-20 08:15:59 +01:00
if ( $_SESSION [ " prefs_op_result " ] == " reset-to-defaults " ) {
print " <div class= \" notice \" >
Your configuration was reset to defaults .
</ div > " ;
}
if ( $_SESSION [ " prefs_op_result " ] == " save-config " ) {
print " <div class= \" notice \" >
Your configuration was saved successfully .
</ div > " ;
}
$_SESSION [ " prefs_op_result " ] = " " ;
2005-12-21 18:50:11 +01:00
print " <form action= \" backend.php \" method= \" GET \" > " ;
print " <table width= \" 100% \" class= \" prefPrefsList \" > " ;
print " <tr><td colspan='3'><h3>Personal data</h3></tr></td> " ;
$result = db_query ( $link , " SELECT email FROM ttrss_users
WHERE id = " . $_SESSION["uid"] );
$email = db_fetch_result ( $result , 0 , " email " );
print " <tr><td width= \" 40% \" >E-mail</td> " ;
print " <td><input class= \" editbox \" name= \" email \"
value = \ " $email\ " ></ td ></ tr > " ;
print " </table> " ;
print " <input type= \" hidden \" name= \" op \" value= \" pref-prefs \" > " ;
print " <p><input class= \" button \" type= \" submit \"
value = \ " Change e-mail \" name= \" subop \" > " ;
2005-11-18 07:29:36 +01:00
print " <form action= \" backend.php \" method= \" POST \" > " ;
print " <table width= \" 100% \" class= \" prefPrefsList \" > " ;
print " <tr><td colspan='3'><h3>Authentication</h3></tr></td> " ;
print " <tr><td width= \" 40% \" >Old password</td> " ;
print " <td><input class= \" editbox \" type= \" password \"
name = \ " OLD_PASSWORD \" ></td></tr> " ;
print " <tr><td width= \" 40% \" >New password</td> " ;
print " <td><input class= \" editbox \" type= \" password \"
name = \ " NEW_PASSWORD \" ></td></tr> " ;
print " </table> " ;
print " <input type= \" hidden \" name= \" op \" value= \" pref-prefs \" > " ;
print " <p><input class= \" button \" type= \" submit \"
value = \ " Change password \" name= \" subop \" > " ;
print " </form> " ;
2005-11-18 07:04:32 +01:00
2005-11-18 07:29:36 +01:00
}
2005-11-18 07:04:32 +01:00
2005-11-26 07:36:23 +01:00
$result = db_query ( $link , " SELECT
theme_id FROM ttrss_users WHERE id = " . $_SESSION["uid"] );
$user_theme_id = db_fetch_result ( $result , 0 , " theme_id " );
$result = db_query ( $link , " SELECT
id , theme_name FROM ttrss_themes ORDER BY theme_name " );
if ( db_num_rows ( $result ) > 0 ) {
2005-11-26 07:56:22 +01:00
print " <form action= \" backend.php \" method= \" POST \" > " ;
print " <table width= \" 100% \" class= \" prefPrefsList \" > " ;
print " <tr><td colspan='3'><h3>Themes</h3></tr></td> " ;
print " <tr><td width= \" 40% \" >Select theme</td> " ;
print " <td><select name= \" theme \" > " ;
print " <option>Default</option> " ;
2005-11-26 07:36:23 +01:00
print " <option disabled>--------</option> " ;
2005-11-26 07:56:22 +01:00
2005-11-26 07:36:23 +01:00
while ( $line = db_fetch_assoc ( $result )) {
if ( $line [ " id " ] == $user_theme_id ) {
$selected = " selected " ;
} else {
$selected = " " ;
}
print " <option $selected > " . $line [ " theme_name " ] . " </option> " ;
}
2005-11-26 07:56:22 +01:00
print " </select></td></tr> " ;
print " </table> " ;
print " <input type= \" hidden \" name= \" op \" value= \" pref-prefs \" > " ;
print " <p><input class= \" button \" type= \" submit \"
value = \ " Change theme \" name= \" subop \" > " ;
print " </form> " ;
2005-11-26 07:36:23 +01:00
}
2005-11-17 06:26:54 +01:00
$result = db_query ( $link , " SELECT
2005-11-18 06:17:17 +01:00
ttrss_user_prefs . pref_name , short_desc , help_text , value , type_name ,
2005-11-17 06:26:54 +01:00
section_name , def_value
2005-11-18 06:17:17 +01:00
FROM ttrss_prefs , ttrss_prefs_types , ttrss_prefs_sections , ttrss_user_prefs
2005-11-17 06:26:54 +01:00
WHERE type_id = ttrss_prefs_types . id AND
2005-11-18 06:17:17 +01:00
section_id = ttrss_prefs_sections . id AND
2005-11-18 07:54:54 +01:00
ttrss_user_prefs . pref_name = ttrss_prefs . pref_name AND
owner_uid = " . $_SESSION["uid"] . "
2005-11-17 11:24:34 +01:00
ORDER BY section_id , short_desc " );
2005-11-17 06:26:54 +01:00
print " <form action= \" backend.php \" method= \" POST \" > " ;
$lnum = 0 ;
$active_section = " " ;
while ( $line = db_fetch_assoc ( $result )) {
if ( $active_section != $line [ " section_name " ]) {
2005-11-17 06:42:17 +01:00
if ( $active_section != " " ) {
2005-11-18 07:04:32 +01:00
print " </table> " ;
2005-11-17 06:42:17 +01:00
}
2005-11-18 07:04:32 +01:00
print " <p><table width= \" 100% \" class= \" prefPrefsList \" > " ;
2005-11-17 06:42:17 +01:00
$active_section = $line [ " section_name " ];
2005-11-17 06:26:54 +01:00
print " <tr><td colspan= \" 3 \" ><h3> $active_section </h3></td></tr> " ;
2005-11-17 06:42:17 +01:00
// print "<tr class=\"title\">
// <td width=\"25%\">Option</td><td>Value</td></tr>";
2005-11-17 08:20:29 +01:00
$lnum = 0 ;
2005-11-17 06:26:54 +01:00
}
2005-11-17 11:24:34 +01:00
// $class = ($lnum % 2) ? "even" : "odd";
2005-11-17 06:26:54 +01:00
2005-11-17 11:24:34 +01:00
print " <tr> " ;
2005-11-17 06:26:54 +01:00
$type_name = $line [ " type_name " ];
$pref_name = $line [ " pref_name " ];
$value = $line [ " value " ];
$def_value = $line [ " def_value " ];
2005-11-17 08:10:31 +01:00
$help_text = $line [ " help_text " ];
print " <td width= \" 40% \" id= \" $pref_name\ " > " . $line["short_desc"] ;
if ( $help_text ) print " <div class= \" prefHelp \" > $help_text </div> " ;
print " </td> " ;
2005-11-17 06:26:54 +01:00
print " <td> " ;
if ( $type_name == " bool " ) {
// print_select($pref_name, $value, array("true", "false"));
if ( $value == " true " ) {
$value = " Yes " ;
} else {
$value = " No " ;
}
print_radio ( $pref_name , $value , array ( " Yes " , " No " ));
} else {
print " <input class= \" editbox \" name= \" $pref_name\ " value = \ " $value\ " > " ;
}
print " </td> " ;
print " </tr> " ;
$lnum ++ ;
}
print " </table> " ;
print " <input type= \" hidden \" name= \" op \" value= \" pref-prefs \" > " ;
print " <p><input class= \" button \" type= \" submit \"
name = \ " subop \" value= \" Save configuration \" > " ;
print " <input class= \" button \" type= \" submit \"
2005-12-11 08:56:57 +01:00
name = \ " subop \" onclick= \" return validatePrefsReset() \"
value = \ " Reset to defaults \" ></p> " ;
2005-11-17 06:26:54 +01:00
print " </form> " ;
}
}
2005-11-18 10:00:18 +01:00
if ( $op == " pref-users " ) {
$subop = $_GET [ " subop " ];
if ( $subop == " editSave " ) {
if ( ! WEB_DEMO_MODE ) {
$login = db_escape_string ( $_GET [ " l " ]);
$uid = db_escape_string ( $_GET [ " id " ]);
$access_level = sprintf ( " %d " , $_GET [ " al " ]);
2005-12-20 07:51:06 +01:00
$email = db_escape_string ( $_GET [ " e " ]);
2005-11-18 10:00:18 +01:00
2005-12-20 07:51:06 +01:00
db_query ( $link , " UPDATE ttrss_users SET login = ' $login ',
access_level = '$access_level' , email = '$email' WHERE id = '$uid' " );
2005-11-18 10:00:18 +01:00
}
} else if ( $subop == " remove " ) {
if ( ! WEB_DEMO_MODE && $_SESSION [ " access_level " ] >= 10 ) {
2005-11-29 10:11:43 +01:00
$ids = split ( " , " , db_escape_string ( $_GET [ " ids " ]));
2005-11-18 10:00:18 +01:00
foreach ( $ids as $id ) {
db_query ( $link , " DELETE FROM ttrss_users WHERE id = ' $id ' AND id != " . $_SESSION [ " uid " ]);
}
}
} else if ( $subop == " add " ) {
if ( ! WEB_DEMO_MODE && $_SESSION [ " access_level " ] >= 10 ) {
2005-11-20 08:18:56 +01:00
$login = db_escape_string ( trim ( $_GET [ " login " ]));
2005-11-18 10:00:18 +01:00
$tmp_user_pwd = make_password ( 8 );
$pwd_hash = 'SHA1:' . sha1 ( $tmp_user_pwd );
db_query ( $link , " INSERT INTO ttrss_users (login,pwd_hash,access_level)
VALUES ( '$login' , '$pwd_hash' , 0 ) " );
$result = db_query ( $link , " SELECT id FROM ttrss_users WHERE
login = '$login' AND pwd_hash = '$pwd_hash' " );
if ( db_num_rows ( $result ) == 1 ) {
$new_uid = db_fetch_result ( $result , 0 , " id " );
print " <div class= \" notice \" >Added user <b> " . $_GET [ " login " ] .
" </b> with password <b> $tmp_user_pwd </b>.</div> " ;
initialize_user ( $link , $new_uid );
} else {
print " <div class= \" warning \" >Error while adding user <b> " .
$_GET [ " login " ] . " .</b></div> " ;
}
}
} else if ( $subop == " resetPass " ) {
if ( ! WEB_DEMO_MODE && $_SESSION [ " access_level " ] >= 10 ) {
$uid = db_escape_string ( $_GET [ " id " ]);
2005-12-20 07:51:06 +01:00
$result = db_query ( $link , " SELECT login,email
FROM ttrss_users WHERE id = '$uid' " );
2005-11-18 10:00:18 +01:00
$login = db_fetch_result ( $result , 0 , " login " );
2005-12-20 07:51:06 +01:00
$email = db_fetch_result ( $result , 0 , " email " );
2005-11-18 10:00:18 +01:00
$tmp_user_pwd = make_password ( 8 );
$pwd_hash = 'SHA1:' . sha1 ( $tmp_user_pwd );
db_query ( $link , " UPDATE ttrss_users SET pwd_hash = ' $pwd_hash '
WHERE id = '$uid' " );
print " <div class= \" notice \" >Changed password of
2005-12-20 07:51:06 +01:00
user < b > $login </ b > to < b > $tmp_user_pwd </ b >. " ;
if ( MAIL_RESET_PASS && $email ) {
print " Notifying <b> $email </b>. " ;
mail ( " $login < $email > " , " Password reset notification " ,
" Hi, $login . \n " .
" \n " .
" Your password for this TT-RSS installation was reset by " .
" an administrator. \n " .
" \n " .
" Your new password is $tmp_user_pwd , please remember " .
" it for later reference. \n " .
" \n " .
" Sincerely, TT-RSS Mail Daemon. " , " From: " . MAIL_FROM );
}
print " </div> " ;
2005-11-18 10:00:18 +01:00
}
}
2005-11-21 14:59:32 +01:00
print " <div class= \" prefGenericAddBox \" >
2005-11-29 10:11:43 +01:00
< input id = \ " uadd_box \" onchange= \" javascript:addUser() \" size= \" 40 \" > " ;
2005-11-18 10:00:18 +01:00
2005-11-21 14:59:32 +01:00
print " <input type= \" submit \" class= \" button \"
onclick = \ " javascript:addUser() \" value= \" Add user \" ></div> " ;
2005-11-18 10:00:18 +01:00
$result = db_query ( $link , " SELECT
2005-12-20 07:51:06 +01:00
id , login , access_level , email ,
2005-11-21 08:27:17 +01:00
SUBSTRING ( last_login , 1 , 16 ) as last_login
2005-11-18 10:00:18 +01:00
FROM
ttrss_users
ORDER by login " );
2005-11-20 11:02:36 +01:00
print " <div id= \" infoBoxShadow \" ><div id= \" infoBox \" >PLACEHOLDER</div></div> " ;
2005-11-18 13:38:21 +01:00
2005-11-27 20:38:39 +01:00
print " <p><table width= \" 100% \" cellspacing= \" 0 \"
class = \ " prefUserList \" id= \" prefUserList \" > " ;
2005-11-18 10:00:18 +01:00
2005-11-25 16:14:45 +01:00
print " <tr><td class= \" selectPrompt \" colspan= \" 8 \" >
Select :
< a href = \ " javascript:selectTableRowsByIdPrefix('prefUserList',
2005-11-25 16:48:24 +01:00
'UMRR-' , 'UMCHK-' , true ) \ " >All</a>,
2005-11-25 16:14:45 +01:00
< a href = \ " javascript:selectTableRowsByIdPrefix('prefUserList',
2005-11-25 16:48:24 +01:00
'UMRR-' , 'UMCHK-' , false ) \ " >None</a>
2005-11-25 16:14:45 +01:00
</ td </ tr > " ;
2005-11-18 10:00:18 +01:00
print " <tr class= \" title \" >
2005-12-12 06:57:54 +01:00
< td align = 'center' width = \ " 5% \" > </td>
2005-12-20 07:51:06 +01:00
< td width = '20%' > Username </ td >
< td width = '20%' > E - mail </ td >
< td width = '20%' > Access Level </ td >
< td width = '20%' > Last login </ td ></ tr > " ;
2005-11-18 10:00:18 +01:00
$lnum = 0 ;
while ( $line = db_fetch_assoc ( $result )) {
$class = ( $lnum % 2 ) ? " even " : " odd " ;
$uid = $line [ " id " ];
$edit_uid = $_GET [ " id " ];
2005-12-29 16:52:05 +01:00
if ( $subop == " edit " && $uid != $edit_uid ) {
2005-11-18 10:00:18 +01:00
$class .= " Grayed " ;
2005-11-26 13:31:34 +01:00
$this_row_id = " " ;
} else {
$this_row_id = " id= \" UMRR- $uid\ " " ;
}
print " <tr class= \" $class\ " $this_row_id > " ;
2005-11-18 10:00:18 +01:00
$line [ " login " ] = htmlspecialchars ( $line [ " login " ]);
2005-11-30 10:48:20 +01:00
$line [ " last_login " ] = date ( get_pref ( $link , 'SHORT_DATE_FORMAT' ),
strtotime ( $line [ " last_login " ]));
2005-12-20 07:51:06 +01:00
/* if ( $uid == $_SESSION [ " uid " ]) {
2005-11-18 10:00:18 +01:00
2005-12-11 08:29:42 +01:00
print " <td align='center'><input disabled= \" true \" type= \" checkbox \"
2005-11-18 10:00:18 +01:00
id = \ " UMCHK- " . $line [ " id " ] . " \" ></td> " ;
2005-12-20 07:51:06 +01:00
print " <td> " . $line [ " login " ] . " </td> " ;
print " <td> " . $line [ " email " ] . " </td> " ;
print " <td> " . $line [ " access_level " ] . " </td> " ;
2005-11-18 10:00:18 +01:00
2005-12-20 07:51:06 +01:00
} else */ if ( ! $edit_uid || $subop != " edit " ) {
2005-11-18 10:00:18 +01:00
2005-12-11 08:29:42 +01:00
print " <td align='center'><input onclick='toggleSelectRow(this);'
2005-11-18 13:38:21 +01:00
type = \ " checkbox \" id= \" UMCHK- $uid\ " ></ td > " ;
2005-11-18 10:00:18 +01:00
print " <td><a href= \" javascript:editUser( $uid ); \" > " .
$line [ " login " ] . " </td> " ;
2005-12-20 07:51:06 +01:00
print " <td><a href= \" javascript:editUser( $uid ); \" > " .
$line [ " email " ] . " </td> " ;
2005-11-18 10:00:18 +01:00
print " <td><a href= \" javascript:editUser( $uid ); \" > " .
$line [ " access_level " ] . " </td> " ;
} else if ( $uid != $edit_uid ) {
2005-12-20 07:51:06 +01:00
print " <td align='center'><input disabled= \" true \" type= \" checkbox \"
2005-11-18 10:00:18 +01:00
id = \ " UMCHK- " . $line [ " id " ] . " \" ></td> " ;
print " <td> " . $line [ " login " ] . " </td> " ;
2005-12-20 07:51:06 +01:00
print " <td> " . $line [ " email " ] . " </td> " ;
2005-11-18 10:00:18 +01:00
print " <td> " . $line [ " access_level " ] . " </td> " ;
} else {
2005-12-20 07:51:06 +01:00
print " <td align='center'>
< input disabled = \ " true \" type= \" checkbox \" checked></td> " ;
2005-11-18 10:00:18 +01:00
print " <td><input id= \" iedit_ulogin \" value= \" " . $line [ " login " ] .
" \" ></td> " ;
2005-12-20 07:51:06 +01:00
print " <td><input id= \" iedit_email \" value= \" " . $line [ " email " ] .
" \" ></td> " ;
2005-11-18 10:00:18 +01:00
print " <td><input id= \" iedit_ulevel \" value= \" " . $line [ " access_level " ] .
" \" ></td> " ;
}
2005-11-18 10:18:19 +01:00
print " <td> " . $line [ " last_login " ] . " </td> " ;
2005-11-18 10:00:18 +01:00
print " </tr> " ;
++ $lnum ;
}
print " </table> " ;
print " <p> " ;
if ( $subop == " edit " ) {
2005-12-29 18:38:24 +01:00
print " Edit user:
2005-11-18 10:00:18 +01:00
< input type = \ " submit \" class= \" button \"
2005-12-29 18:38:24 +01:00
onclick = \ " javascript:userEditSave() \" value= \" Save \" >
2005-11-18 10:00:18 +01:00
< input type = \ " submit \" class= \" button \"
2005-12-29 18:38:24 +01:00
onclick = \ " javascript:userEditCancel() \" value= \" Cancel \" > " ;
2005-11-18 10:00:18 +01:00
} else {
print "
Selection :
< input type = \ " submit \" class= \" button \"
2005-11-18 13:02:38 +01:00
onclick = \ " javascript:selectedUserDetails() \" value= \" User details \" >
2005-11-18 10:00:18 +01:00
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:editSelectedUser() \" value= \" Edit \" >
< input type = \ " submit \" class= \" button \"
2005-11-18 13:02:38 +01:00
onclick = \ " javascript:removeSelectedUsers() \" value= \" Remove \" >
< input type = \ " submit \" class= \" button \"
onclick = \ " javascript:resetSelectedUserPass() \" value= \" Reset password \" > " ;
}
}
if ( $op == " user-details " ) {
if ( WEB_DEMO_MODE || $_SESSION [ " access_level " ] < 10 ) {
return ;
}
2005-11-18 13:38:21 +01:00
/* print " <html><head>
2005-11-18 13:02:38 +01:00
< title > Tiny Tiny RSS : User Details </ title >
< link rel = \ " stylesheet \" href= \" tt-rss.css \" type= \" text/css \" >
< meta http - equiv = \ " Content-Type \" content= \" text/html; charset=utf-8 \" >
2005-11-18 13:38:21 +01:00
</ head >< body > " ; */
2005-11-18 13:02:38 +01:00
$uid = sprintf ( " %d " , $_GET [ " id " ]);
2005-11-19 20:06:42 +01:00
print " <div class='infoBoxContents'> " ;
2005-11-18 13:02:38 +01:00
2005-11-21 08:27:17 +01:00
$result = db_query ( $link , " SELECT login,
SUBSTRING ( last_login , 1 , 16 ) AS last_login ,
access_level ,
2005-11-19 20:06:42 +01:00
( SELECT COUNT ( int_id ) FROM ttrss_user_entries
WHERE owner_uid = id ) AS stored_articles
2005-11-18 13:02:38 +01:00
FROM ttrss_users
WHERE id = '$uid' " );
if ( db_num_rows ( $result ) == 0 ) {
print " <h1>User not found</h1> " ;
return ;
}
print " <h1>User Details</h1> " ;
print " <table width='100%'> " ;
$login = db_fetch_result ( $result , 0 , " login " );
2005-11-30 10:48:20 +01:00
$last_login = date ( get_pref ( $link , 'LONG_DATE_FORMAT' ),
strtotime ( db_fetch_result ( $result , 0 , " last_login " )));
2005-11-18 13:02:38 +01:00
$access_level = db_fetch_result ( $result , 0 , " access_level " );
2005-11-19 20:06:42 +01:00
$stored_articles = db_fetch_result ( $result , 0 , " stored_articles " );
2005-11-18 13:02:38 +01:00
print " <tr><td>Username</td><td> $login </td></tr> " ;
print " <tr><td>Access level</td><td> $access_level </td></tr> " ;
print " <tr><td>Last logged in</td><td> $last_login </td></tr> " ;
2005-11-19 20:06:42 +01:00
print " <tr><td>Stored articles</td><td> $stored_articles </td></tr> " ;
2005-11-18 13:02:38 +01:00
$result = db_query ( $link , " SELECT COUNT(id) as num_feeds FROM ttrss_feeds
WHERE owner_uid = '$uid' " );
$num_feeds = db_fetch_result ( $result , 0 , " num_feeds " );
print " <tr><td>Subscribed feeds count</td><td> $num_feeds </td></tr> " ;
2005-11-19 09:34:50 +01:00
/* $result = db_query ( $link , " SELECT
2005-11-18 13:02:38 +01:00
SUM ( LENGTH ( content ) + LENGTH ( title ) + LENGTH ( link ) + LENGTH ( guid )) AS db_size
2005-11-19 20:06:42 +01:00
FROM ttrss_user_entries , ttrss_entries
WHERE owner_uid = '$uid' AND ref_id = id " );
2005-11-18 13:02:38 +01:00
2005-11-18 14:29:32 +01:00
$db_size = round ( db_fetch_result ( $result , 0 , " db_size " ) / 1024 );
2005-11-18 13:02:38 +01:00
2005-11-19 20:06:42 +01:00
print " <tr><td>Approx. used DB size</td><td> $db_size KBytes</td></tr> " ; */
2005-11-18 13:02:38 +01:00
print " </table> " ;
print " <h1>Subscribed feeds</h1> " ;
2005-12-04 20:44:44 +01:00
$result = db_query ( $link , " SELECT id,title,site_url FROM ttrss_feeds
2005-12-29 16:53:57 +01:00
WHERE owner_uid = '$uid' ORDER BY title " );
2005-11-18 13:02:38 +01:00
2005-12-29 16:53:57 +01:00
print " <ul class= \" userFeedList \" > " ;
2005-11-18 13:02:38 +01:00
while ( $line = db_fetch_assoc ( $result )) {
$icon_file = ICONS_URL . " / " . $line [ " id " ] . " .ico " ;
if ( file_exists ( $icon_file ) && filesize ( $icon_file ) > 0 ) {
2005-11-19 12:19:08 +01:00
$feed_icon = " <img class= \" tinyFeedIcon \" src= \" $icon_file\ " > " ;
2005-11-18 13:02:38 +01:00
} else {
2005-11-20 11:40:14 +01:00
$feed_icon = " <img class= \" tinyFeedIcon \" src= \" images/blank_icon.gif \" > " ;
2005-11-18 13:02:38 +01:00
}
2005-12-04 20:44:44 +01:00
print " <li> $feed_icon <a href= \" " . $line [ " site_url " ] . " \" > " . $line [ " title " ] . " </a></li> " ;
2005-11-18 10:00:18 +01:00
}
2005-11-18 13:02:38 +01:00
2005-11-29 10:26:09 +01:00
if ( db_num_rows ( $result ) < $num_feeds ) {
// FIXME - add link to show ALL subscribed feeds here somewhere
print " <li><img
class = \ " tinyFeedIcon \" src= \" images/blank_icon.gif \" > ...</li> " ;
}
2005-11-18 13:02:38 +01:00
print " </ul> " ;
print " </div> " ;
2005-11-18 13:38:21 +01:00
print " <div align='center'>
< input type = 'submit' class = 'button'
2005-11-19 20:06:42 +01:00
onclick = \ " closeInfoBox() \" value= \" Close this window \" ></div> " ;
2005-11-18 13:38:21 +01:00
// print "</body></html>";
2005-11-18 13:02:38 +01:00
2005-11-18 10:00:18 +01:00
}
2005-11-19 20:06:42 +01:00
if ( $op == " feed-details " ) {
2005-12-11 08:42:49 +01:00
// $feed_id = $_GET["id"];
2005-11-20 08:31:58 +01:00
2005-12-11 08:42:49 +01:00
$feed_ids = split ( " , " , db_escape_string ( $_GET [ " id " ]));
2005-11-19 20:06:42 +01:00
2005-12-11 08:42:49 +01:00
print " <div class= \" infoBoxContents \" > " ;
2005-11-20 11:36:00 +01:00
2005-12-11 08:42:49 +01:00
foreach ( $feed_ids as $feed_id ) {
2005-11-19 20:06:42 +01:00
2005-12-11 08:42:49 +01:00
$result = db_query ( $link ,
" SELECT
title , feed_url ,
SUBSTRING ( last_updated , 1 , 16 ) as last_updated ,
icon_url , site_url ,
( SELECT COUNT ( int_id ) FROM ttrss_user_entries
WHERE feed_id = id ) AS total ,
( SELECT COUNT ( int_id ) FROM ttrss_user_entries
WHERE feed_id = id AND unread = true ) AS unread ,
( SELECT COUNT ( int_id ) FROM ttrss_user_entries
WHERE feed_id = id AND marked = true ) AS marked
FROM ttrss_feeds
WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"] );
if ( db_num_rows ( $result ) == 0 ) return ;
$title = db_unescape_string ( db_fetch_result ( $result , 0 , " title " ));
$last_updated = date ( get_pref ( $link , 'LONG_DATE_FORMAT' ),
strtotime ( db_fetch_result ( $result , 0 , " last_updated " )));
$feed_url = db_fetch_result ( $result , 0 , " feed_url " );
$icon_url = db_fetch_result ( $result , 0 , " icon_url " );
$total = db_fetch_result ( $result , 0 , " total " );
$unread = db_fetch_result ( $result , 0 , " unread " );
$marked = db_fetch_result ( $result , 0 , " marked " );
$site_url = db_fetch_result ( $result , 0 , " site_url " );
2005-11-20 11:36:00 +01:00
2005-12-11 08:42:49 +01:00
$result = db_query ( $link , " SELECT COUNT(id) AS subscribed
2005-12-30 13:13:18 +01:00
FROM ttrss_feeds WHERE feed_url = '$feed_url' AND private = false " );
2005-12-11 08:42:49 +01:00
$subscribed = db_fetch_result ( $result , 0 , " subscribed " );
$icon_file = ICONS_DIR . " / $feed_id .ico " ;
if ( file_exists ( $icon_file ) && filesize ( $icon_file ) > 0 ) {
$feed_icon = " <img width= \" 16 \" height= \" 16 \"
src = \ " " . ICONS_URL . " / $feed_id .ico \" > " ;
} else {
$feed_icon = " " ;
2005-11-20 11:36:00 +01:00
}
2005-12-11 08:42:49 +01:00
print " <h1> $feed_icon $title </h1> " ;
2005-11-20 11:36:00 +01:00
2005-12-11 08:42:49 +01:00
print " <table width='100%'> " ;
2005-11-20 11:36:00 +01:00
2005-12-11 08:42:49 +01:00
if ( $site_url ) {
print " <tr><td width='30%'>Link</td>
< td >< a href = \ " $site_url\ " > $site_url </ a >
< a href = \ " $feed_url\ " > ( feed ) </ a ></ td >
</ td ></ tr > " ;
} else {
print " <tr><td width='30%'>Feed URL</td>
< td >< a href = \ " $feed_url\ " > $feed_url </ a ></ td ></ tr > " ;
}
print " <tr><td>Last updated</td><td> $last_updated </td></tr> " ;
print " <tr><td>Total articles</td><td> $total </td></tr> " ;
print " <tr><td>Unread articles</td><td> $unread </td></tr> " ;
print " <tr><td>Starred articles</td><td> $marked </td></tr> " ;
print " <tr><td>Subscribed users</td><td> $subscribed </td></tr> " ;
print " </table> " ;
/* $result = db_query ( $link , " SELECT title,
SUBSTRING ( updated , 1 , 16 ) AS updated , unread
FROM ttrss_entries , ttrss_user_entries
WHERE ref_id = id AND feed_id = '$feed_id'
ORDER BY date_entered DESC LIMIT 5 " );
if ( db_num_rows ( $result ) > 0 ) {
print " <h1>Latest headlines</h1> " ;
print " <ul class= \" nomarks \" > " ;
while ( $line = db_fetch_assoc ( $result )) {
if ( $line [ " unread " ] == " t " || $line [ " unread " ] == " 1 " ) {
$line [ " title " ] = " <b> " . $line [ " title " ] . " </b> " ;
}
print " <li> " . $line [ " title " ] .
" <span class= \" insensitive \" >( " .
date ( get_pref ( $link , 'SHORT_DATE_FORMAT' ),
strtotime ( $line [ " updated " ])) .
" )</span></li> " ;
}
print " </ul> " ;
} */
2005-11-20 11:36:00 +01:00
}
2005-12-11 08:42:49 +01:00
print " </div> " ;
print " <div align='center'>
< input type = 'submit' class = 'button'
onclick = \ " closeInfoBox() \" value= \" Close this window \" ></div> " ;
}
2005-11-19 20:06:42 +01:00
2005-12-30 06:17:23 +01:00
if ( $op == " pref-feed-browser " ) {
$subop = $_REQUEST [ " subop " ];
if ( $subop == " details " ) {
$id = db_escape_string ( $_GET [ " id " ]);
2005-12-30 07:00:36 +01:00
2005-12-30 12:18:31 +01:00
print " <div class= \" browserFeedInfo \" > " ;
print " <b>Feed information:</b> " ;
print " <div class= \" detailsPart \" > " ;
$result = db_query ( $link , " SELECT
feed_url , site_url ,
SUBSTRING ( last_updated , 1 , 19 ) AS last_updated
FROM ttrss_feeds WHERE id = '$id' " );
$feed_url = db_fetch_result ( $result , 0 , " feed_url " );
$site_url = db_fetch_result ( $result , 0 , " site_url " );
$last_updated = db_fetch_result ( $result , 0 , " last_updated " );
if ( get_pref ( $link , 'HEADLINES_SMART_DATE' )) {
$last_updated = smart_date_time ( strtotime ( $last_updated ));
} else {
$short_date = get_pref ( $link , 'SHORT_DATE_FORMAT' );
$last_updated = date ( $short_date , strtotime ( $last_updated ));
}
print " Site: <a href=' $site_url '> $site_url </a> " .
" (<a href=' $feed_url '>feed</a>), " .
" Last updated: $last_updated " ;
print " </div> " ;
$result = db_query ( $link , " SELECT
ttrss_entries . title ,
content ,
2005-12-30 07:00:36 +01:00
substring ( date_entered , 1 , 19 ) as date_entered ,
substring ( updated , 1 , 19 ) as updated
2005-12-30 12:18:31 +01:00
FROM ttrss_entries , ttrss_user_entries
WHERE ttrss_entries . id = ref_id AND feed_id = '$id'
2005-12-30 07:00:36 +01:00
ORDER BY updated DESC LIMIT 5 " );
if ( db_num_rows ( $result ) > 0 ) {
print " <b>Last headlines:</b><br> " ;
print " <div class= \" detailsPart \" > " ;
print " <ul class= \" compact \" > " ;
while ( $line = db_fetch_assoc ( $result )) {
if ( get_pref ( $link , 'HEADLINES_SMART_DATE' )) {
$entry_dt = smart_date_time ( strtotime ( $line [ " updated " ]));
} else {
$short_date = get_pref ( $link , 'SHORT_DATE_FORMAT' );
$entry_dt = date ( $short_date , strtotime ( $line [ " updated " ]));
}
print " <li> " . $line [ " title " ] .
" <span class= \" insensitive \" >( $entry_dt )</span></li> " ;
}
print " </ul></div> " ;
}
2005-12-30 12:18:31 +01:00
print " </div> " ;
2005-12-30 07:00:36 +01:00
2005-12-30 06:17:23 +01:00
return ;
}
2005-12-30 15:09:30 +01:00
2005-12-30 06:17:23 +01:00
$result = db_query ( $link , " SELECT feed_url,count(id) AS subscribers
FROM ttrss_feeds
WHERE auth_login = '' AND auth_pass = '' AND private = false
2005-12-30 15:09:30 +01:00
GROUP BY feed_url ORDER BY subscribers DESC LIMIT 100 " );
2005-12-30 06:17:23 +01:00
2005-12-30 07:08:44 +01:00
print " <ul class='nomarks' id='browseBigFeedList'> " ;
2005-12-30 06:17:23 +01:00
$feedctr = 0 ;
while ( $line = db_fetch_assoc ( $result )) {
$feed_url = $line [ " feed_url " ];
$subscribers = $line [ " subscribers " ];
$sub_result = db_query ( $link , " SELECT id
FROM ttrss_feeds WHERE feed_url = '$feed_url' AND owner_uid = " .
$_SESSION [ " uid " ]);
if ( db_num_rows ( $sub_result ) > 0 ) {
continue ; // already subscribed
}
$det_result = db_query ( $link , " SELECT site_url,title,id
FROM ttrss_feeds WHERE feed_url = '$feed_url' LIMIT 1 " );
$details = db_fetch_assoc ( $det_result );
$icon_file = ICONS_DIR . " / " . $details [ " id " ] . " .ico " ;
if ( file_exists ( $icon_file ) && filesize ( $icon_file ) > 0 ) {
$feed_icon = " <img class= \" tinyFeedIcon \" src= \" " . ICONS_URL .
" / " . $details [ " id " ] . " .ico \" > " ;
} else {
$feed_icon = " <img class= \" tinyFeedIcon \" src= \" images/blank_icon.gif \" > " ;
}
$check_box = " <input onclick='toggleSelectListRow(this)' class='feedBrowseCB'
type = \ " checkbox \" id= \" FBCHK- " . $details [ " id " ] . " \" > " ;
$class = ( $feedctr % 2 ) ? " even " : " odd " ;
print " <li class=' $class ' id= \" FBROW- " . $details [ " id " ] . " \" > $check_box " .
" $feed_icon " ;
2005-12-30 07:00:36 +01:00
print " <a href= \" javascript:browserToggleExpand(' " . $details [ " id " ] . " ') \" > " .
2005-12-30 06:17:23 +01:00
$details [ " title " ] . " </a> " .
" <span class='subscribers'>( $subscribers )</span> " ;
print " <div class= \" browserDetails \" id= \" BRDET- " . $details [ " id " ] . " \" > " ;
print " </div> " ;
print " </li> " ;
++ $feedctr ;
}
if ( $feedctr == 0 ) {
print " <li>No feeds found to subscribe.</li> " ;
}
print " </ul> " ;
2005-12-30 06:44:29 +01:00
print " <p>Selection:
< input type = 'submit' class = 'button' onclick = \ " feedBrowserSubscribe() \"
value = \ " Subscribe \" ></p> " ;
2005-12-30 06:17:23 +01:00
print " </div> " ;
}
2005-09-07 14:42:49 +02:00
db_close ( $link );
2005-08-21 12:13:10 +02:00
?>
2005-10-23 17:48:58 +02:00
<!-- < ? = sprintf ( " Backend execution time: %.4f seconds " , getmicrotime () - $script_started ) ?> -->