2011-12-12 20:20:53 +00:00
< ? php
2012-08-17 13:03:39 +00:00
class Dlg extends Handler_Protected {
2011-12-12 20:20:53 +00:00
private $param ;
2015-06-07 15:41:18 +00:00
private $params ;
2011-12-13 10:15:42 +00:00
2015-06-07 15:41:18 +00:00
function before ( $method ) {
2012-07-05 18:43:44 +00:00
if ( parent :: before ( $method )) {
2013-04-01 06:47:41 +00:00
header ( " Content-Type: text/html " ); # required for iframe
2017-12-01 15:16:58 +00:00
$this -> param = $_REQUEST [ " param " ];
2011-12-12 20:20:53 +00:00
return true ;
}
return false ;
}
2011-12-13 10:15:42 +00:00
2011-12-12 20:20:53 +00:00
function importOpml () {
2019-02-22 07:48:56 +00:00
print_notice ( " If you have imported labels and/or filters, you might need to reload preferences to see your new data. " );
2011-12-27 14:37:07 +00:00
2018-12-07 11:03:33 +00:00
print " <div class='panel panel-scrollable'> " ;
2011-12-12 20:20:53 +00:00
2013-04-17 14:34:18 +00:00
$opml = new Opml ( $_REQUEST );
2011-12-12 20:20:53 +00:00
2012-08-15 11:47:13 +00:00
$opml -> opml_import ( $_SESSION [ " uid " ]);
2011-12-12 20:20:53 +00:00
print " </div> " ;
2019-02-22 07:48:56 +00:00
print " <footer class='text-center'> " ;
print " <button dojoType='dijit.form.Button'
2011-12-27 14:37:07 +00:00
onclick = \ " dijit.byId('opmlImportDlg').execute() \" > " .
2011-12-12 20:20:53 +00:00
__ ( 'Close this window' ) . " </button> " ;
2019-02-22 07:48:56 +00:00
print " </footer> " ;
2011-12-12 20:20:53 +00:00
print " </div> " ;
//return;
}
function pubOPMLUrl () {
2013-04-17 12:23:15 +00:00
$url_path = Opml :: opml_publish_url ();
2011-12-12 20:20:53 +00:00
2019-02-22 07:48:56 +00:00
print " <header> " . __ ( " Your Public OPML URL is: " ) . " </header> " ;
2019-02-20 11:37:59 +00:00
2019-02-22 07:48:56 +00:00
print " <section> " ;
2011-12-12 20:20:53 +00:00
2018-12-09 13:27:29 +00:00
print " <div class='panel text-center'> " ;
2011-12-12 20:20:53 +00:00
print " <a id='pub_opml_url' href=' $url_path ' target='_blank'> $url_path </a> " ;
print " </div> " ;
2019-02-22 07:48:56 +00:00
print " </section> " ;
2019-02-20 11:37:59 +00:00
2019-02-22 07:48:56 +00:00
print " <footer class='text-center'> " ;
2011-12-12 20:20:53 +00:00
2019-02-22 07:48:56 +00:00
print " <button dojoType='dijit.form.Button' onclick= \" return Helpers.OPML.changeKey() \" > " .
2011-12-12 20:20:53 +00:00
__ ( 'Generate new URL' ) . " </button> " ;
2019-02-22 07:48:56 +00:00
print " <button dojoType='dijit.form.Button' onclick= \" return CommonDialogs.closeInfoBox() \" > " .
2011-12-12 20:20:53 +00:00
__ ( 'Close this window' ) . " </button> " ;
2019-02-22 07:48:56 +00:00
print " </footer> " ;
2011-12-12 20:20:53 +00:00
//return;
}
function explainError () {
print " <div class= \" errorExplained \" > " ;
if ( $this -> param == 1 ) {
print __ ( " Update daemon is enabled in configuration, but daemon process is not running, which prevents all feeds from updating. Please start the daemon process or contact instance owner. " );
$stamp = ( int ) file_get_contents ( LOCK_DIRECTORY . " /update_daemon.stamp " );
print " <p> " . __ ( " Last update: " ) . " " . date ( " Y.m.d, G:i " , $stamp );
}
if ( $this -> param == 3 ) {
print __ ( " Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner. " );
$stamp = ( int ) file_get_contents ( LOCK_DIRECTORY . " /update_daemon.stamp " );
print " <p> " . __ ( " Last update: " ) . " " . date ( " Y.m.d, G:i " , $stamp );
}
print " </div> " ;
2019-02-22 07:48:56 +00:00
print " <footer class='text-center'> " ;
2018-12-02 17:07:57 +00:00
print " <button onclick= \" return CommonDialogs.closeInfoBox() \" > " .
2011-12-12 20:20:53 +00:00
__ ( 'Close this window' ) . " </button> " ;
2019-02-22 07:48:56 +00:00
print " </footer> " ;
2011-12-12 20:20:53 +00:00
//return;
}
function printTagCloud () {
2018-12-09 13:27:29 +00:00
print " <div class='panel text-center'> " ;
2011-12-12 20:20:53 +00:00
2011-12-13 12:23:31 +00:00
// from here: http://www.roscripts.com/Create_tag_cloud-71.html
2017-12-01 15:16:58 +00:00
$sth = $this -> pdo -> prepare ( " SELECT tag_name, COUNT(post_int_id) AS count
FROM ttrss_tags WHERE owner_uid = ?
GROUP BY tag_name ORDER BY count DESC LIMIT 50 " );
$sth -> execute ([ $_SESSION [ 'uid' ]]);
2011-12-13 12:23:31 +00:00
$tags = array ();
2017-12-01 15:16:58 +00:00
while ( $line = $sth -> fetch ()) {
2011-12-13 12:23:31 +00:00
$tags [ $line [ " tag_name " ]] = $line [ " count " ];
}
2013-04-17 14:34:18 +00:00
if ( count ( $tags ) == 0 ){ return ; }
2011-12-13 12:23:31 +00:00
ksort ( $tags );
$max_size = 32 ; // max font size in pixels
$min_size = 11 ; // min font size in pixels
// largest and smallest array values
$max_qty = max ( array_values ( $tags ));
$min_qty = min ( array_values ( $tags ));
// find the range of values
$spread = $max_qty - $min_qty ;
if ( $spread == 0 ) { // we don't want to divide by zero
$spread = 1 ;
}
// set the font-size increment
$step = ( $max_size - $min_size ) / ( $spread );
// loop through the tag array
foreach ( $tags as $key => $value ) {
// calculate font-size
// find the $value in excess of $min_qty
// multiply by the font-size increment ($size)
// and add the $min_size set above
$size = round ( $min_size + (( $value - $min_qty ) * $step ));
2021-02-06 14:38:24 +00:00
$key_escaped = str_replace ( " ' " , " \\ ' " , ( string ) $key );
2011-12-13 12:23:31 +00:00
2018-12-02 05:57:22 +00:00
echo " <a href= \" # \" onclick= \" Feeds.open( { feed:' $key_escaped '}) \" style= \" font-size: " .
2011-12-13 12:23:31 +00:00
$size . " px \" title= \" $value articles tagged with " .
$key . '">' . $key . '</a> ' ;
}
2011-12-12 20:20:53 +00:00
print " </div> " ;
2019-02-22 07:48:56 +00:00
print " <footer class='text-center'> " ;
print " <button dojoType='dijit.form.Button'
2018-12-02 17:07:57 +00:00
onclick = \ " return CommonDialogs.closeInfoBox() \" > " .
2011-12-12 20:20:53 +00:00
__ ( 'Close this window' ) . " </button> " ;
2019-02-22 07:48:56 +00:00
print " </footer> " ;
2011-12-12 20:20:53 +00:00
}
function generatedFeed () {
2011-12-13 10:15:42 +00:00
2011-12-12 20:20:53 +00:00
$this -> params = explode ( " : " , $this -> param , 3 );
2017-12-01 15:16:58 +00:00
$feed_id = $this -> params [ 0 ];
2011-12-12 20:20:53 +00:00
$is_cat = ( bool ) $this -> params [ 1 ];
2019-06-20 05:14:06 +00:00
$key = Feeds :: get_feed_access_key ( $feed_id , $is_cat );
2011-12-12 20:20:53 +00:00
$url_path = htmlspecialchars ( $this -> params [ 2 ]) . " &key= " . $key ;
2018-12-02 13:17:36 +00:00
$feed_title = Feeds :: getFeedTitle ( $feed_id , $is_cat );
2019-02-22 07:48:56 +00:00
print " <header> " . T_sprintf ( " %s can be accessed via the following secret URL: " , $feed_title ) . " </header> " ;
2011-12-12 20:20:53 +00:00
2019-02-22 07:48:56 +00:00
print " <section> " ;
2018-12-09 13:27:29 +00:00
print " <div class='panel text-center'> " ;
2011-12-12 20:20:53 +00:00
print " <a id='gen_feed_url' href=' $url_path ' target='_blank'> $url_path </a> " ;
print " </div> " ;
2019-02-22 07:48:56 +00:00
print " </section> " ;
2011-12-12 20:20:53 +00:00
2019-02-22 07:48:56 +00:00
print " <footer> " ;
2019-02-21 13:21:16 +00:00
print " <button dojoType='dijit.form.Button' style='float : left' class='alt-info' onclick='window.open( \" https://tt-rss.org/wiki/GeneratedFeeds \" )'>
< i class = 'material-icons' > help </ i > " .__( " More info ... " ). " </ button > " ;
2011-12-12 20:20:53 +00:00
2019-02-21 13:21:16 +00:00
print " <button dojoType='dijit.form.Button' onclick= \" return CommonDialogs.genUrlChangeKey(' $feed_id ', ' $is_cat ') \" > " .
2011-12-12 20:20:53 +00:00
__ ( 'Generate new URL' ) . " </button> " ;
2019-02-21 13:21:16 +00:00
print " <button dojoType='dijit.form.Button' onclick= \" return CommonDialogs.closeInfoBox() \" > " .
2011-12-12 20:20:53 +00:00
__ ( 'Close this window' ) . " </button> " ;
2019-02-22 07:48:56 +00:00
print " </footer> " ;
2011-12-12 20:20:53 +00:00
//return;
}
2017-12-03 17:46:27 +00:00
function defaultPasswordWarning () {
print_warning ( __ ( " You are using default tt-rss password. Please change it in the Preferences (Personal data / Authentication). " ));
2019-02-22 07:48:56 +00:00
print " <footer class='text-center'> " ;
2020-01-25 10:08:29 +00:00
print " <button dojoType='dijit.form.Button' class='alt-primary'
onclick = \ " document.location.href = 'prefs.php' \" > " .
2017-12-03 17:46:27 +00:00
__ ( 'Open Preferences' ) . " </button> " ;
2019-02-22 07:48:56 +00:00
print " <button dojoType='dijit.form.Button'
2020-01-25 10:02:11 +00:00
onclick = \ " return dijit.byId('defaultPasswordDlg').hide(); \" > " .
2017-12-03 17:46:27 +00:00
__ ( 'Close this window' ) . " </button> " ;
2019-02-22 07:48:56 +00:00
print " </footeer> " ;
2017-12-03 17:46:27 +00:00
}
2019-02-20 11:37:59 +00:00
}