ttrss/include/controls.php

142 lines
4.9 KiB
PHP
Raw Normal View History

<?php
namespace Controls;
function button_tag(string $value, string $type, $attributes = "") {
return "<button dojoType=\"dijit.form.Button\" $attributes type=\"$type\">".htmlspecialchars($value)."</button>";
}
function submit_tag(string $value, $attributes = "") {
return button_tag($value, "submit", "class=\"alt-primary\" $attributes");
}
function select_tag(string $name, $value, array $values, string $attributes = "", string $id = "") {
$dojo_type = strpos($attributes, "dojoType") === false ? "dojoType='fox.form.Select'" : "";
$rv = "<select $dojo_type name=\"".htmlspecialchars($name)."\"
id=\"".htmlspecialchars($id)."\" name=\"".htmlspecialchars($name)."\" $attributes>";
foreach ($values as $v) {
$is_sel = ($v == $value) ? "selected=\"selected\"" : "";
$rv .= "<option value=\"".htmlspecialchars($v)."\" $is_sel>".htmlspecialchars($v)."</option>";
}
$rv .= "</select>";
return $rv;
}
function select_labels(string $name, string $value, string $attributes = "", string $id = "") {
$pdo = \Db::pdo();
$sth = $pdo->prepare("SELECT caption FROM ttrss_labels2
WHERE owner_uid = ? ORDER BY caption");
$sth->execute([$_SESSION['uid']]);
$values = [];
while ($row = $sth->fetch()) {
array_push($values, $row["caption"]);
}
return select_tag($name, $value, $values, $attributes, $id);
}
function select_hash(string $name, $value, array $values, string $attributes = "", string $id = "") {
$dojo_type = strpos($attributes, "dojoType") === false ? "dojoType='fox.form.Select'" : "";
$rv = "<select $dojo_type name=\"".htmlspecialchars($name)."\"
id=\"".htmlspecialchars($id)."\" name=\"".htmlspecialchars($name)."\" $attributes>";
foreach ($values as $k => $v) {
$is_sel = ($k == $value) ? "selected=\"selected\"" : "";
$rv .= "<option value=\"".htmlspecialchars($k)."\" $is_sel>".htmlspecialchars($v)."</option>";
}
$rv .= "</select>";
return $rv;
}
function hidden_tag(string $name, string $value) {
return "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\"
name=\"".htmlspecialchars($name)."\" value=\"".htmlspecialchars($value)."\">";
}
2021-02-16 12:05:32 +00:00
function checkbox_tag(string $name, bool $checked = false, string $value = "", string $attributes = "", string $id = "") {
$is_checked = $checked ? "checked" : "";
$value_str = $value ? "value=\"".htmlspecialchars($value)."\"" : "";
return "<input dojoType='dijit.form.CheckBox' name=\"".htmlspecialchars($name)."\"
2021-02-16 12:05:32 +00:00
$value_str $is_checked $attributes id=\"".htmlspecialchars($id)."\">";
}
function select_feeds_cats(string $name, int $default_id = null, string $attributes = "",
bool $include_all_cats = true, string $root_id = null, int $nest_level = 0, string $id = "") {
2017-12-01 12:10:05 +00:00
$ret = "";
if (!$root_id) {
$ret .= "<select name=\"".htmlspecialchars($name)."\"
id=\"".htmlspecialchars($id)."\"
default=\"".((string)$default_id)."\"
dojoType=\"fox.form.Select\" $attributes>";
}
$pdo = \Db::pdo();
if (!$root_id) $root_id = null;
$sth = $pdo->prepare("SELECT id,title,
(SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE
c2.parent_cat = ttrss_feed_categories.id) AS num_children
FROM ttrss_feed_categories
WHERE owner_uid = :uid AND
(parent_cat = :root_id OR (:root_id IS NULL AND parent_cat IS NULL)) ORDER BY title");
$sth->execute([":uid" => $_SESSION['uid'], ":root_id" => $root_id]);
$found = 0;
2017-12-01 12:10:05 +00:00
while ($line = $sth->fetch()) {
++$found;
if ($line["id"] == $default_id) {
$is_selected = "selected=\"1\"";
} else {
$is_selected = "";
}
for ($i = 0; $i < $nest_level; $i++)
$line["title"] = "" . $line["title"];
if ($line["title"])
$ret .= sprintf("<option $is_selected value='%d'>%s</option>",
$line["id"], htmlspecialchars($line["title"]));
if ($line["num_children"] > 0)
$ret .= select_feeds_cats($id, $default_id, $attributes,
$include_all_cats, $line["id"], $nest_level+1, $id);
}
if (!$root_id) {
if ($include_all_cats) {
if ($found > 0) {
$ret .= "<option disabled=\"1\">―――――――――――――――</option>";
}
if ($default_id == 0) {
$is_selected = "selected=\"1\"";
} else {
$is_selected = "";
}
$ret .= "<option $is_selected value=\"0\">".__('Uncategorized')."</option>";
}
$ret .= "</select>";
}
2017-12-01 12:10:05 +00:00
return $ret;
}