diff options
-rwxr-xr-x | include/controls.php | 6 | ||||
-rw-r--r-- | plugins/bookmarklets/init.php | 71 |
2 files changed, 41 insertions, 36 deletions
diff --git a/include/controls.php b/include/controls.php index d8506877b..a60b1e0b0 100755 --- a/include/controls.php +++ b/include/controls.php @@ -23,7 +23,7 @@ } function button_tag(string $value, string $type, array $attributes = []) { - return "<button dojoType=\"dijit.form.Button\" ".attributes_to_string($attributes)." type=\"$type\">".htmlspecialchars($value)."</button>"; + return "<button dojoType=\"dijit.form.Button\" ".attributes_to_string($attributes)." type=\"$type\">$value</button>"; } function submit_tag(string $value, array $attributes = []) { @@ -34,6 +34,10 @@ return button_tag($value, "", array_merge(["onclick" => "App.dialogOf(this).hide()"], $attributes)); } + function icon(string $icon, array $attributes = []) { + return "<i class=\"material-icons\" ".attributes_to_string($attributes).">$icon</i>"; + } + function select_tag(string $name, $value, array $values, array $attributes = [], string $id = "") { $attributes_str = attributes_to_string($attributes); $dojo_type = strpos($attributes_str, "dojoType") === false ? "dojoType='fox.form.Select'" : ""; diff --git a/plugins/bookmarklets/init.php b/plugins/bookmarklets/init.php index 9e0f8f348..a9dc3e69d 100644 --- a/plugins/bookmarklets/init.php +++ b/plugins/bookmarklets/init.php @@ -1,59 +1,60 @@ <?php class Bookmarklets extends Plugin { - private $host; - - function about() { - return array(1.0, - "Easy feed subscription and web page sharing using bookmarklets", - "fox", - false, - "https://git.tt-rss.org/fox/tt-rss/wiki/ShareAnything"); + private $host; + + function about() { + return array(1.0, + "Easy feed subscription and web page sharing using bookmarklets", + "fox", + false, + "https://git.tt-rss.org/fox/tt-rss/wiki/ShareAnything"); } - function init($host) { - $this->host = $host; + function init($host) { + $this->host = $host; - $host->add_hook($host::HOOK_PREFS_TAB, $this); - } + $host->add_hook($host::HOOK_PREFS_TAB, $this); + } - private function subscribe_to_feed_url() { + private function subscribe_to_feed_url() { $url_path = get_self_url_prefix() . "/public.php?op=subscribe&feed_url=%s"; return $url_path; } - function hook_prefs_tab($args) { - if ($args == "prefFeeds") { - - print "<div dojoType=\"dijit.layout.AccordionPane\" - title=\"<i class='material-icons'>bookmark</i> ".__('Bookmarklets')."\">"; + function hook_prefs_tab($args) { + if ($args != "prefFeeds") + return; - print "<h3>" . __("Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it.") . "</h3>"; + $bm_subscribe_url = str_replace('%s', '', $this->subscribe_to_feed_url()); + $confirm_str = str_replace("'", "\'", __('Subscribe to %s in Tiny Tiny RSS?')); + $bm_subscribe_url = htmlspecialchars("javascript:{if(confirm('$confirm_str'.replace('%s',window.location.href)))window.location.href='$bm_subscribe_url'+encodeURIComponent(window.location.href)}"); - $bm_subscribe_url = str_replace('%s', '', $this->subscribe_to_feed_url()); + $bm_share_url = htmlspecialchars("javascript:(function(){var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='".get_self_url_prefix()."/public.php?op=sharepopup',l=d.location,e=encodeURIComponent,g=f+'&title='+((e(s))?e(s):e(document.title))+'&url='+e(l.href);function a(){if(!w.open(g,'t','toolbar=0,resizable=0,scrollbars=1,status=1,width=500,height=250')){l.href=g;}}a();})()"); + ?> - $confirm_str = str_replace("'", "\'", __('Subscribe to %s in Tiny Tiny RSS?')); + <div dojoType="dijit.layout.AccordionPane" + title="<i class='material-icons'>bookmark</i> <?= __('Bookmarklets') ?>"> - $bm_url = htmlspecialchars("javascript:{if(confirm('$confirm_str'.replace('%s',window.location.href)))window.location.href='$bm_subscribe_url'+encodeURIComponent(window.location.href)}"); + <h3><?= __("Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it.") ?></h3> - print "<p><label class='dijitButton'>"; - print "<a href=\"$bm_url\">" . __('Subscribe in Tiny Tiny RSS'). "</a>"; - print "</label></p>"; + <label class='dijitButton'> + <a href="<?= $bm_subscribe_url ?>"><?= __('Subscribe in Tiny Tiny RSS') ?></a> + </label> - print "<h3>" . __("Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS") . "</h3>"; + <h3><?= __("Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS") ?></h3> - print "<label class='dijitButton'>"; - $bm_url = htmlspecialchars("javascript:(function(){var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='".get_self_url_prefix()."/public.php?op=sharepopup',l=d.location,e=encodeURIComponent,g=f+'&title='+((e(s))?e(s):e(document.title))+'&url='+e(l.href);function a(){if(!w.open(g,'t','toolbar=0,resizable=0,scrollbars=1,status=1,width=500,height=250')){l.href=g;}}a();})()"); - print "<a href=\"$bm_url\">" . __('Share with Tiny Tiny RSS'). "</a>"; - print "</label>"; + <label class='dijitButton'> + <a href="<?= $bm_share_url ?>"><?= __('Share with Tiny Tiny RSS') ?></a> + </label> - print "<button dojoType='dijit.form.Button' class='alt-info' onclick='window.open(\"https://tt-rss.org/wiki/ShareAnything\")'> - <i class='material-icons'>help</i> ".__("More info...")."</button>"; + <?= \Controls\button_tag(\Controls\icon("help") . " " . __("More info..."), "", + ["class" => 'alt-info', "onclick" => "window.open('https://tt-rss.org/wiki/ShareAnything')"]) ?> - print "</div>"; #pane + </div> - } - } + <?php + } function api_version() { return 2; |