dlg.php 5.29 KB
Newer Older
Andrew Dolgov's avatar
Andrew Dolgov committed
1
<?php
Andrew Dolgov's avatar
Andrew Dolgov committed
2
class Dlg extends Handler_Protected {
Andrew Dolgov's avatar
Andrew Dolgov committed
3
	private $param;
Andrew Dolgov's avatar
Andrew Dolgov committed
4
    private $params;
Andrew Dolgov's avatar
Andrew Dolgov committed
5

Andrew Dolgov's avatar
Andrew Dolgov committed
6
    function before($method) {
7
		if (parent::before($method)) {
8 9
			header("Content-Type: text/html"); # required for iframe

Andrew Dolgov's avatar
Andrew Dolgov committed
10
			$this->param = $_REQUEST["param"];
Andrew Dolgov's avatar
Andrew Dolgov committed
11 12 13 14
			return true;
		}
		return false;
	}
Andrew Dolgov's avatar
Andrew Dolgov committed
15

Andrew Dolgov's avatar
Andrew Dolgov committed
16
	function importOpml() {
Andrew Dolgov's avatar
Andrew Dolgov committed
17 18
		print __("If you have imported labels and/or filters, you might need to reload preferences to see your new data.") . "</p>";

Andrew Dolgov's avatar
Andrew Dolgov committed
19 20
		print "<div class=\"prefFeedOPMLHolder\">";

21
		print "<ul class='nomarks'>";
Andrew Dolgov's avatar
Andrew Dolgov committed
22

23
		$opml = new Opml($_REQUEST);
Andrew Dolgov's avatar
Andrew Dolgov committed
24

25
		$opml->opml_import($_SESSION["uid"]);
Andrew Dolgov's avatar
Andrew Dolgov committed
26

Andrew Dolgov's avatar
Andrew Dolgov committed
27
		print "</ul>";
Andrew Dolgov's avatar
Andrew Dolgov committed
28 29 30 31
		print "</div>";

		print "<div align='center'>";
		print "<button dojoType=\"dijit.form.Button\"
Andrew Dolgov's avatar
Andrew Dolgov committed
32
			onclick=\"dijit.byId('opmlImportDlg').execute()\">".
Andrew Dolgov's avatar
Andrew Dolgov committed
33 34 35 36 37 38 39 40 41
			__('Close this window')."</button>";
		print "</div>";

		print "</div>";

		//return;
	}

	function pubOPMLUrl() {
Andrew Dolgov's avatar
Andrew Dolgov committed
42
		$url_path = Opml::opml_publish_url();
Andrew Dolgov's avatar
Andrew Dolgov committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98

		print __("Your Public OPML URL is:");

		print "<div class=\"tagCloudContainer\">";
		print "<a id='pub_opml_url' href='$url_path' target='_blank'>$url_path</a>";
		print "</div>";

		print "<div align='center'>";

		print "<button dojoType=\"dijit.form.Button\" onclick=\"return opmlRegenKey()\">".
			__('Generate new URL')."</button> ";

		print "<button dojoType=\"dijit.form.Button\" onclick=\"return closeInfoBox()\">".
			__('Close this window')."</button>";

		print "</div>";

		//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>";

		print "<div align='center'>";

		print "<button onclick=\"return closeInfoBox()\">".
			__('Close this window')."</button>";

		print "</div>";

		//return;
	}

	function printTagCloud() {
		print "<div class=\"tagCloudContainer\">";

99 100
		// from here: http://www.roscripts.com/Create_tag_cloud-71.html

Andrew Dolgov's avatar
Andrew Dolgov committed
101 102 103 104
		$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']]);
105 106 107

		$tags = array();

Andrew Dolgov's avatar
Andrew Dolgov committed
108
		while ($line = $sth->fetch()) {
109 110 111
			$tags[$line["tag_name"]] = $line["count"];
		}

112
        if(count($tags) == 0 ){ return; }
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141

		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));

			$key_escaped = str_replace("'", "\\'", $key);

142
			echo "<a href=\"javascript:viewfeed({feed:'$key_escaped'}) \" style=\"font-size: " .
143 144 145 146 147
				$size . "px\" title=\"$value articles tagged with " .
				$key . '">' . $key . '</a> ';
		}


Andrew Dolgov's avatar
Andrew Dolgov committed
148 149 150 151 152 153 154 155 156 157 158 159

		print "</div>";

		print "<div align='center'>";
		print "<button dojoType=\"dijit.form.Button\"
			onclick=\"return closeInfoBox()\">".
			__('Close this window')."</button>";
		print "</div>";

	}

	function generatedFeed() {
Andrew Dolgov's avatar
Andrew Dolgov committed
160

Andrew Dolgov's avatar
Andrew Dolgov committed
161
		$this->params = explode(":", $this->param, 3);
Andrew Dolgov's avatar
Andrew Dolgov committed
162
		$feed_id = $this->params[0];
Andrew Dolgov's avatar
Andrew Dolgov committed
163 164
		$is_cat = (bool) $this->params[1];

165
		$key = get_feed_access_key($feed_id, $is_cat);
Andrew Dolgov's avatar
Andrew Dolgov committed
166 167 168

		$url_path = htmlspecialchars($this->params[2]) . "&key=" . $key;

169
		print "<h2>".__("You can view this feed as RSS using the following URL:")."</h2>";
Andrew Dolgov's avatar
Andrew Dolgov committed
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

		print "<div class=\"tagCloudContainer\">";
		print "<a id='gen_feed_url' href='$url_path' target='_blank'>$url_path</a>";
		print "</div>";

		print "<div align='center'>";

		print "<button dojoType=\"dijit.form.Button\" onclick=\"return genUrlChangeKey('$feed_id', '$is_cat')\">".
			__('Generate new URL')."</button> ";

		print "<button dojoType=\"dijit.form.Button\" onclick=\"return closeInfoBox()\">".
			__('Close this window')."</button>";

		print "</div>";

		//return;
	}

188 189 190 191 192 193 194 195 196 197 198 199
	function defaultPasswordWarning() {

    	print_warning(__("You are using default tt-rss password. Please change it in the Preferences (Personal data / Authentication)."));

		print "<div align='center'>";
		print "<button dojoType=\"dijit.form.Button\" onclick=\"gotoPreferences()\">".
			__('Open Preferences')."</button> ";
		print "<button dojoType=\"dijit.form.Button\"
			onclick=\"return closeInfoBox()\">".
			__('Close this window')."</button>";
		print "</div>";
	}
200
}