$method = strtolower($_REQUEST["op"]);
- $handler = new API(Db::get(), $_REQUEST);
+ $handler = new API($_REQUEST);
if ($handler->before($method)) {
if ($method && method_exists($handler, $method)) {
header("Content-Type: text/json");
if (!$_SESSION["uid"] && $method != "login" && $method != "isloggedin") {
- print $this->wrap(self::STATUS_ERR, array("error" => 'NOT_LOGGED_IN'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'NOT_LOGGED_IN'));
return false;
}
if ($_SESSION["uid"] && $method != "logout" && !get_pref('ENABLE_API_ACCESS')) {
- print $this->wrap(self::STATUS_ERR, array("error" => 'API_DISABLED'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'API_DISABLED'));
return false;
}
function getVersion() {
$rv = array("version" => VERSION);
- print $this->wrap(self::STATUS_OK, $rv);
+ $this->wrap(self::STATUS_OK, $rv);
}
function getApiLevel() {
$rv = array("level" => self::API_LEVEL);
- print $this->wrap(self::STATUS_OK, $rv);
+ $this->wrap(self::STATUS_OK, $rv);
}
function login() {
}
if (!$uid) {
- print $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
+ $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
return;
}
if (get_pref("ENABLE_API_ACCESS", $uid)) {
if (authenticate_user($login, $password)) { // try login with normal password
- print $this->wrap(self::STATUS_OK, array("session_id" => session_id(),
+ $this->wrap(self::STATUS_OK, array("session_id" => session_id(),
"api_level" => self::API_LEVEL));
} else if (authenticate_user($login, $password_base64)) { // else try with base64_decoded password
- print $this->wrap(self::STATUS_OK, array("session_id" => session_id(),
+ $this->wrap(self::STATUS_OK, array("session_id" => session_id(),
"api_level" => self::API_LEVEL));
} else { // else we are not logged in
- print $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
+ $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
}
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => "API_DISABLED"));
+ $this->wrap(self::STATUS_ERR, array("error" => "API_DISABLED"));
}
}
function logout() {
logout_user();
- print $this->wrap(self::STATUS_OK, array("status" => "OK"));
+ $this->wrap(self::STATUS_OK, array("status" => "OK"));
}
function isLoggedIn() {
- print $this->wrap(self::STATUS_OK, array("status" => $_SESSION["uid"] != ''));
+ $this->wrap(self::STATUS_OK, array("status" => $_SESSION["uid"] != ''));
}
function getUnread() {
$is_cat = $this->dbh->escape_string($_REQUEST["is_cat"]);
if ($feed_id) {
- print $this->wrap(self::STATUS_OK, array("unread" => getFeedUnread($feed_id, $is_cat)));
+ $this->wrap(self::STATUS_OK, array("unread" => getFeedUnread($feed_id, $is_cat)));
} else {
- print $this->wrap(self::STATUS_OK, array("unread" => getGlobalUnread()));
+ $this->wrap(self::STATUS_OK, array("unread" => getGlobalUnread()));
}
}
/* Method added for ttrss-reader for Android */
function getCounters() {
- print $this->wrap(self::STATUS_OK, getAllCounters());
+ $this->wrap(self::STATUS_OK, getAllCounters());
}
function getFeeds() {
$feeds = $this->api_get_feeds($cat_id, $unread_only, $limit, $offset, $include_nested);
- print $this->wrap(self::STATUS_OK, $feeds);
+ $this->wrap(self::STATUS_OK, $feeds);
}
function getCategories() {
}
}
- print $this->wrap(self::STATUS_OK, $cats);
+ $this->wrap(self::STATUS_OK, $cats);
}
function getHeadlines() {
$include_attachments, $since_id, $search, $search_mode,
$include_nested, $sanitize_content);
- print $this->wrap(self::STATUS_OK, $headlines);
+ $this->wrap(self::STATUS_OK, $headlines);
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
}
}
}
}
- print $this->wrap(self::STATUS_OK, array("status" => "OK",
+ $this->wrap(self::STATUS_OK, array("status" => "OK",
"updated" => $num_updated));
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
}
}
}
}
- print $this->wrap(self::STATUS_OK, $articles);
+ $this->wrap(self::STATUS_OK, $articles);
}
$config["num_feeds"] = (int)$num_feeds;
- print $this->wrap(self::STATUS_OK, $config);
+ $this->wrap(self::STATUS_OK, $config);
}
function updateFeed() {
update_rss_feed($feed_id, true);
- print $this->wrap(self::STATUS_OK, array("status" => "OK"));
+ $this->wrap(self::STATUS_OK, array("status" => "OK"));
}
function catchupFeed() {
catchup_feed($feed_id, $is_cat);
- print $this->wrap(self::STATUS_OK, array("status" => "OK"));
+ $this->wrap(self::STATUS_OK, array("status" => "OK"));
}
function getPref() {
$pref_name = $this->dbh->escape_string($_REQUEST["pref_name"]);
- print $this->wrap(self::STATUS_OK, array("value" => get_pref($pref_name)));
+ $this->wrap(self::STATUS_OK, array("value" => get_pref($pref_name)));
}
function getLabels() {
"checked" => $checked));
}
- print $this->wrap(self::STATUS_OK, $rv);
+ $this->wrap(self::STATUS_OK, $rv);
}
function setArticleLabel() {
}
}
- print $this->wrap(self::STATUS_OK, array("status" => "OK",
+ $this->wrap(self::STATUS_OK, array("status" => "OK",
"updated" => $num_updated));
}
if ($plugin && method_exists($plugin, $method)) {
$reply = $plugin->$method();
- print $this->wrap($reply[0], $reply[1]);
+ $this->wrap($reply[0], $reply[1]);
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => 'UNKNOWN_METHOD', "method" => $method));
+ $this->wrap(self::STATUS_ERR, array("error" => 'UNKNOWN_METHOD', "method" => $method));
}
}
$content = $this->dbh->escape_string(strip_tags($_REQUEST["content"]));
if (Article::create_published_article($title, $url, $content, "", $_SESSION["uid"])) {
- print $this->wrap(self::STATUS_OK, array("status" => 'OK'));
+ $this->wrap(self::STATUS_OK, array("status" => 'OK'));
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => 'Publishing failed'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'Publishing failed'));
}
}
if ($this->dbh->num_rows($result) != 0) {
Pref_Feeds::remove_feed($feed_id, $_SESSION["uid"]);
- print $this->wrap(self::STATUS_OK, array("status" => "OK"));
+ $this->wrap(self::STATUS_OK, array("status" => "OK"));
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => "FEED_NOT_FOUND"));
+ $this->wrap(self::STATUS_ERR, array("error" => "FEED_NOT_FOUND"));
}
}
$password = $this->dbh->escape_string($_REQUEST["password"]);
if ($feed_url) {
- $rc = subscribe_to_feed($feed_url, $category_id,
- $login, $password, false);
+ $rc = subscribe_to_feed($feed_url, $category_id, $login, $password);
- print $this->wrap(self::STATUS_OK, array("status" => $rc));
+ $this->wrap(self::STATUS_OK, array("status" => $rc));
} else {
- print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
+ $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
}
}
if ($pf){
$data = $pf->makefeedtree();
- print $this->wrap(self::STATUS_OK, array("categories" => $data));
+ $this->wrap(self::STATUS_OK, array("categories" => $data));
} else {
- print $this->wrap(self::STATUS_ERR, array("error" =>
+ $this->wrap(self::STATUS_ERR, array("error" =>
'UNABLE_TO_INSTANTIATE_OBJECT'));
}
$this->dbh->query("UPDATE ttrss_user_entries SET
score = '$score' WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]);
- print json_encode(array("id" => $id,
+ print json_encode(array("id" => $ids,
"score_pic" => get_score_pic($score)));
}
// Auto-creates specified user if allowed by system configuration
// Can be used instead of find_user_by_login() by external auth modules
- function auto_create_user($login) {
+ function auto_create_user($login, $password) {
if ($login && defined('AUTH_AUTO_CREATE') && AUTH_AUTO_CREATE) {
$user_id = $this->find_user_by_login($login);
}
function last_error() {
- return join(" ", $pdo->errorInfo());
+ return join(" ", $this->pdo->errorInfo());
}
function init() {
header('Content-Type: text/html; charset=utf-8');
print "<html><head><title>Tiny Tiny RSS</title>";
- print stylesheet_tag("utility.css");
- print javascript_tag("lib/prototype.js");
- print javascript_tag("lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls");
+ stylesheet_tag("utility.css");
+ javascript_tag("lib/prototype.js");
+ javascript_tag("lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls");
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
</head><body id='sharepopup'>";
$feed_url = $this->dbh->escape_string(trim($_REQUEST["feed_url"]));
$cat_id = $this->dbh->escape_string($_REQUEST["cat_id"]);
$from = $this->dbh->escape_string($_REQUEST["from"]);
+ $feed_urls = array();
/* only read authentication information from POST */
break;
case 4:
print_notice(__("Multiple feed URLs found."));
-
- $feed_urls = get_feeds_from_html($feed_url);
+ $contents = @fetch_file_contents($url, false, $auth_login, $auth_pass);
+ if (is_html($contents)) {
+ $feed_urls = get_feeds_from_html($url, $contents);
+ }
break;
case 5:
print_error(T_sprintf("Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL.", $feed_url));
header('Content-Type: text/html; charset=utf-8');
print "<html><head><title>Tiny Tiny RSS</title>";
- print stylesheet_tag("utility.css");
- print javascript_tag("lib/prototype.js");
+ stylesheet_tag("utility.css");
+ javascript_tag("lib/prototype.js");
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
</head><body id='forgotpass'>";
}
}
- function del_handler($handler, $method) {
+ function del_handler($handler, $method, $sender) {
$handler = str_replace("-", "_", strtolower($handler));
$method = strtolower($method);
function load_data($force = false) {
if ($this->owner_uid) {
- $plugin = $this->dbh->escape_string($plugin);
-
$result = $this->dbh->query("SELECT name, content FROM ttrss_plugin_storage
WHERE owner_uid = '".$this->owner_uid."'");
}
}
- $feed_title = getFeedTitle($feed);
-
$qfh_ret = queryFeedHeadlines(-4, 30, "", false, false, false,
"date_entered DESC", 0, $_SESSION["uid"], $filter);
$system_enabled = array_map("trim", explode(",", PLUGINS));
$user_enabled = array_map("trim", explode(",", get_pref("_ENABLED_PLUGINS")));
- $tmppluginhost = new PluginHost(Db::get());
+ $tmppluginhost = new PluginHost();
$tmppluginhost->load_all($tmppluginhost::KIND_ALL, $_SESSION["uid"]);
$tmppluginhost->load_data(true);
$reply = array();
- if ($seq) $reply['seq'] = $seq;
+ if (!empty($_REQUEST['seq'])) $reply['seq'] = (int) $_REQUEST['seq'];
if ($last_article_id != getLastArticleId()) {
$reply['counters'] = getAllCounters();
$id = 0;
}
- print_feed_cat_select("cat_id", $id);
+ print_feed_cat_select("cat_id", $id, '');
}
// Silent
$this->Host = $pair[0];\r
$this->Port = $pair[1];\r
\r
- if (!$Port) $Port = 25;\r
+ if (!$this->Port) $this->Port = 25;\r
} else {\r
$this->Host = '';\r
$this->Port = '';\r
} else {
$s = $del_Max / $var_Max;
- $del_R = ((($max - $var_R ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
- $del_G = ((($max - $var_G ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
- $del_B = ((($max - $var_B ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
+ $del_R = ((($var_Max - $var_R ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
+ $del_G = ((($var_Max - $var_G ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
+ $del_B = ((($var_Max - $var_B ) / 6 ) + ($del_Max / 2 ) ) / $del_Max;
if ($var_R == $var_Max) $h = $del_B - $del_G;
else if ($var_G == $var_Max) $h = (1 / 3 ) + $del_R - $del_B;
else if ($var_B == $var_Max) $h = (2 / 3 ) + $del_G - $del_R;
- if ($H < 0) $h++;
- if ($H > 1) $h--;
+ if ($h < 0) $h++;
+ if ($h > 1) $h--;
}
return array($h, $s, $v);
$data = array_merge($data, getVirtCounters());
$data = array_merge($data, getLabelCounters());
- $data = array_merge($data, getFeedCounters($active_feed));
+ $data = array_merge($data, getFeedCounters());
$data = array_merge($data, getCategoryCounters());
return $data;
return $unread;
} else if ($cat == -1) {
- return getFeedUnread(-1) + getFeedUnread($link, -2) + getFeedUnread($link, -3) + getFeedUnread($link, 0);
+ return getFeedUnread(-1) + getFeedUnread(-2) + getFeedUnread(-3) + getFeedUnread(0);
} else if ($cat == -2) {
$result = db_query("
}
if (!$root_id) {
- $is_selected = ($default_id == "CAT:0") ? "selected=\"1\"" : "";
+ $default_is_cat = ($default_id == "CAT:0");
+ $is_selected = $default_is_cat ? "selected=\"1\"" : "";
printf("<option $is_selected value='CAT:0'>%s</option>",
__("Uncategorized"));
preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches);
$url = trim(str_replace($matches[1],"",$matches[0]));
$url_parsed = parse_url($url);
- return (isset($url_parsed))? geturl($url, $referer):'';
+ return (isset($url_parsed))? geturl($url):'';
}
$oline='';
foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';}
}
$pluginhost = new PluginHost();
- $pluginhost->set_debug($debug_enabled, $debug_enabled);
+ $pluginhost->set_debug($debug_enabled);
$user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
$pluginhost->load(PLUGINS, PluginHost::KIND_ALL);
_debug("checking favicon...", $debug_enabled);
- check_feed_favicon($site_url, $feed, $link);
+ check_feed_favicon($site_url, $feed);
$favicon_modified_new = @filemtime($favicon_file);
if ($favicon_modified_new > $favicon_modified)
<head>
<title>Tiny Tiny RSS</title>
- <?php echo stylesheet_tag("lib/dijit/themes/claro/claro.css"); ?>
- <?php echo stylesheet_tag("tt-rss.css"); ?>
- <?php echo stylesheet_tag("cdm.css"); ?>
+ <?php stylesheet_tag("lib/dijit/themes/claro/claro.css"); ?>
+ <?php stylesheet_tag("tt-rss.css"); ?>
+ <?php stylesheet_tag("cdm.css"); ?>
<?php if ($_SESSION["uid"]) {
$theme = get_pref( "USER_CSS_THEME", $_SESSION["uid"], false);
if ($theme) {
- echo stylesheet_tag("themes/$theme");
+ stylesheet_tag("themes/$theme");
}
}
?>
"lib/dojo/tt-rss-layer.js",
"errors.php?mode=js") as $jsfile) {
- echo javascript_tag($jsfile);
+ javascript_tag($jsfile);
} ?>
<span><img src=\"../images/sign_info.svg\"></span><span>$msg</span></div>";
}
- function db_connect($host, $user, $pass, $db, $type, $port) {
+ function db_connect($host, $user, $pass, $db, $type, $port = false) {
if ($type == "pgsql") {
$string = "dbname=$db user=$user";
$this->openBlocksTab[$this->currentNestingLevel] = $blockNo;\r
$this->currentNestingLevel += 1;\r
if ($this->currentNestingLevel > $this->maxNestingLevel) {\r
- $trhis->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin.");\r
+ $this->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin.");\r
return false; }\r
return true; }\r
\r
$fh = fopen($fileName,"rb");\r
if ($fh === false) return false;\r
$fileSize = filesize($fileName);\r
- if ($fileSize === false) {close ($fh); return false; }\r
+ if ($fileSize === false) {fclose ($fh); return false; }\r
$s = fread($fh,$fileSize);\r
fclose ($fh);\r
if (strlen($s) != $fileSize) return false;\r
protected function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly=false) {
$b = 0;
$bitMask = array();
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);
if ($maskGenOnly) {
return;
}
$p += 2;
}
$this->items = $this->appendNewInputItem($this->items, QR_MODE_KJ, $p, str_split($this->dataStr));
- return $run;
+ return $p;
}
/**
break;
}
case QR_MODE_KJ: {
- if ($hint == QR_MODE_KJ) {
+ if ($this->hint == QR_MODE_KJ) {
$length = $this->eatKanji();
} else {
$length = $this->eat8();
$stringLen = strlen($this->dataStr);
$p = 0;
while ($p < $stringLen) {
- $mode = $this->identifyMode(substr($this->dataStr, $p), $this->hint);
+ $mode = $this->identifyMode(substr($this->dataStr, $p));
if ($mode == QR_MODE_KJ) {
$p += 2;
} else {
case QR_MODE_NUM: $length = $this->eatNum(); break;\r
case QR_MODE_AN: $length = $this->eatAn(); break;\r
case QR_MODE_KANJI:\r
- if ($hint == QR_MODE_KANJI)\r
+ if ($this->modeHint == QR_MODE_KANJI)\r
$length = $this->eatKanji();\r
else $length = $this->eat8();\r
break;\r
$p = 0;\r
\r
while ($p<$stringLen) {\r
- $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint);\r
+ $mode = self::identifyMode(substr($this->dataStr, $p));\r
if($mode == QR_MODE_KANJI) {\r
$p += 2;\r
} else {\r
if (file_exists($fileName)) {\r
$bitMask = self::unserial(file_get_contents($fileName));\r
} else {\r
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);\r
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);\r
if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))\r
mkdir(QR_CACHE_DIR.'mask_'.$maskNo);\r
file_put_contents($fileName, self::serial($bitMask));\r
}\r
} else {\r
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);\r
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);\r
}\r
\r
if ($maskGenOnly)\r
//----------------------------------------------------------------------\r
public function getCode()\r
{\r
- $ret;\r
+ $ret = 0;\r
\r
if($this->count < $this->dataLength) {\r
$row = $this->count % $this->blocks;\r
$input = new QRinput($version, $level);\r
if($input == NULL) return NULL;\r
\r
- $ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string));\r
+ $ret = $input->append(QR_MODE_8, strlen($string), str_split($string));\r
if($ret < 0) {\r
unset($input);\r
return NULL;\r
//----------------------------------------------------------------------\r
public function getCode()\r
{\r
- $ret;\r
+ $ret = 0;\r
\r
if($this->count < $this->dataLength) {\r
$row = $this->count % $this->blocks;\r
if (file_exists($fileName)) {\r
$bitMask = self::unserial(file_get_contents($fileName));\r
} else {\r
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);\r
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);\r
if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))\r
mkdir(QR_CACHE_DIR.'mask_'.$maskNo);\r
file_put_contents($fileName, self::serial($bitMask));\r
}\r
} else {\r
- $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);\r
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s);\r
}\r
\r
if ($maskGenOnly)\r
if($ret < 0)\r
return -1;\r
\r
- return $run;\r
+ return $ret;\r
}\r
\r
//----------------------------------------------------------------------\r
case QR_MODE_NUM: $length = $this->eatNum(); break;\r
case QR_MODE_AN: $length = $this->eatAn(); break;\r
case QR_MODE_KANJI:\r
- if ($hint == QR_MODE_KANJI)\r
+ if ($this->modeHint == QR_MODE_KANJI)\r
$length = $this->eatKanji();\r
else $length = $this->eat8();\r
break;\r
$p = 0;\r
\r
while ($p<$stringLen) {\r
- $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint);\r
+ $mode = self::identifyMode(substr($this->dataStr, $p));\r
if($mode == QR_MODE_KANJI) {\r
$p += 2;\r
} else {\r
\r
return $split->splitString();\r
}\r
- }
\ No newline at end of file
+ }
preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches);
$url = trim(str_replace($matches[1],"",$matches[0]));
$url_parsed = parse_url($url);
- return (isset($url_parsed))? geturl($url, $referer):'';
+ return (isset($url_parsed))? geturl($url):'';
}
$oline='';
foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';}
$return = urlencode($_REQUEST["return"]);
?><html>
<head><title>Tiny Tiny RSS</title></head>
- <?php echo stylesheet_tag("utility.css") ?>
+ <?php stylesheet_tag("utility.css") ?>
<body class="otp"><div class="content">
<form action="public.php?return=<?php echo $return ?>"
method="POST" class="otpform">
# if (!$try_login) $try_login = "test_qqq";
if ($try_login) {
- $user_id = $this->base->auto_create_user($try_login);
+ $user_id = $this->base->auto_create_user($try_login, $password);
if ($user_id) {
$_SESSION["fake_login"] = $try_login;
<head>
<title>Tiny Tiny RSS : <?php echo __("Preferences") ?></title>
- <?php echo stylesheet_tag("lib/dijit/themes/claro/claro.css"); ?>
- <?php echo stylesheet_tag("tt-rss.css"); ?>
- <?php echo stylesheet_tag("prefs.css"); ?>
+ <?php stylesheet_tag("lib/dijit/themes/claro/claro.css"); ?>
+ <?php stylesheet_tag("tt-rss.css"); ?>
+ <?php stylesheet_tag("prefs.css"); ?>
<?php if ($_SESSION["uid"]) {
$theme = get_pref( "USER_CSS_THEME", $_SESSION["uid"], false);
if ($theme) {
- echo stylesheet_tag("themes/$theme");
+ stylesheet_tag("themes/$theme");
}
}
?>
"lib/dojo/tt-rss-layer.js",
"errors.php?mode=js") as $jsfile) {
- echo javascript_tag($jsfile);
+ javascript_tag($jsfile);
} ?>
}
if (isset($options["list-plugins"])) {
- $tmppluginhost = new PluginHost(Db::get());
+ $tmppluginhost = new PluginHost();
$tmppluginhost->load_all($tmppluginhost::KIND_ALL);
$enabled = array_map("trim", explode(",", PLUGINS));