diff options
Diffstat (limited to 'view')
-rw-r--r-- | view/theme/dispy-dark/communityhome.tpl | 4 | ||||
-rw-r--r-- | view/theme/dispy-dark/experimental | 0 | ||||
-rw-r--r-- | view/theme/dispy-dark/fpostit/README | 8 | ||||
-rwxr-xr-x | view/theme/dispy-dark/fpostit/fpostit.js | 14 | ||||
-rw-r--r-- | view/theme/dispy-dark/fpostit/fpostit.php | 134 | ||||
-rw-r--r-- | view/theme/dispy-dark/fpostit/friendica-32.png | bin | 0 -> 1593 bytes | |||
-rw-r--r-- | view/theme/dispy-dark/fpostit/friendika-32.png | bin | 0 -> 1593 bytes | |||
-rw-r--r-- | view/theme/dispy-dark/style.css | 56 | ||||
-rw-r--r-- | view/theme/dispy-dark/theme.php | 30 | ||||
-rw-r--r-- | view/theme/dispy-dark/wallwall_item.tpl | 5 | ||||
-rw-r--r-- | view/theme/dispy/communityhome.tpl | 4 | ||||
-rw-r--r-- | view/theme/dispy/fpostit/README | 8 | ||||
-rwxr-xr-x | view/theme/dispy/fpostit/fpostit.js | 14 | ||||
-rw-r--r-- | view/theme/dispy/fpostit/fpostit.php | 134 | ||||
-rw-r--r-- | view/theme/dispy/fpostit/friendica-32.png | bin | 0 -> 1593 bytes | |||
-rw-r--r-- | view/theme/dispy/fpostit/friendika-32.png | bin | 0 -> 1593 bytes | |||
-rw-r--r-- | view/theme/dispy/style.css | 27 | ||||
-rw-r--r-- | view/theme/dispy/theme.php | 30 | ||||
-rw-r--r-- | view/theme/dispy/wallwall_item.tpl | 5 |
19 files changed, 455 insertions, 18 deletions
diff --git a/view/theme/dispy-dark/communityhome.tpl b/view/theme/dispy-dark/communityhome.tpl new file mode 100644 index 000000000..0659ebe20 --- /dev/null +++ b/view/theme/dispy-dark/communityhome.tpl @@ -0,0 +1,4 @@ +{{ if $lastusers_title }} +<h3>PostIt to Friendica</h3> +<div style="padding-left: 8px;"><span >Post to Friendica from anywhere by bookmarking this <a href="$fostitJS" title="PostIt">Link</a>.</span></div> +{{ endif }} diff --git a/view/theme/dispy-dark/experimental b/view/theme/dispy-dark/experimental deleted file mode 100644 index e69de29bb..000000000 --- a/view/theme/dispy-dark/experimental +++ /dev/null diff --git a/view/theme/dispy-dark/fpostit/README b/view/theme/dispy-dark/fpostit/README new file mode 100644 index 000000000..39b7c5761 --- /dev/null +++ b/view/theme/dispy-dark/fpostit/README @@ -0,0 +1,8 @@ +fpostit + +original author: Devlon Duthied + +see his blog posting: +http://blog.duthied.com/2011/09/13/node-agnostic-friendika-bookmarklet/ + +original published at github https://github.com/duthied/Friendika-Bookmarklet diff --git a/view/theme/dispy-dark/fpostit/fpostit.js b/view/theme/dispy-dark/fpostit/fpostit.js new file mode 100755 index 000000000..eb593d838 --- /dev/null +++ b/view/theme/dispy-dark/fpostit/fpostit.js @@ -0,0 +1,14 @@ +javascript: (function() { + the_url = 'view/theme/dispy-dark/fpostit/fpostit.php?url=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' + + encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ? + document.getSelection() : document.selection.createRange().text)); + a_funct = function() { + if (!window.open(the_url, 'fpostit','location=yes,links=no,scrollbars=no,toolbar=no,width=600,height=300')) { + location.href = the_url + }; + if (/Firefox/.test(navigator.userAgent)) { + setTimeout(a_funct, 0) + } else { + a_funct(); + } + })();" diff --git a/view/theme/dispy-dark/fpostit/fpostit.php b/view/theme/dispy-dark/fpostit/fpostit.php new file mode 100644 index 000000000..d00182946 --- /dev/null +++ b/view/theme/dispy-dark/fpostit/fpostit.php @@ -0,0 +1,134 @@ +<?php +if (!isset($_POST["friendica_acct_name"])) $_POST["friendica_acct_name"] = ''; +if (!isset($_COOKIE['username'])) $_COOKIE['username'] = ''; +if (!isset($_COOKIE['password'])) $_COOKIE['password'] = ''; +if (!isset($hostname)) $hostname = ''; +if (!isset($username)) $username = ''; + + +if (($_POST["friendica_acct_name"] != '') && ($_POST["friendica_password"] != '')) { + setcookie("username", $_POST["friendica_acct_name"], time()+60*60*24*300); + setcookie("password", $_POST["friendica_password"], time()+60*60*24*300); +} + +?> +<html> +<head> + <style> + body { + font-family: sans-serif; + margin: 0px; + } + .wrap1 { + padding: 2px 5px; + background-color: #000; + margin-bottom: 10px; + } + .wrap2 { + margin-left: 10px; + font-size: 12px; + } + .logo { + margin-left: 3px; + margin-right: 5px; + float: left; + } + h2 { + color: #ffffff; + } + .error { + background-color: #FFFF66; + font-size: 12px; + margin-left: 10px; + } + </style> +</head> + +<body> +<?php + +if (isset($_GET['title'])) { + $title = $_GET['title']; +} +if (isset($_GET['text'])) { + $text = $_GET['text']; +} +if (isset($_GET['url'])) { + $url = $_GET['url']; +} + +if ((isset($title)) && (isset($text)) && (isset($url))) { + $content = "$title\nsource:$url\n\n$text"; +} else { + $content = $_POST['content']; +} + +if (isset($_POST['submit'])) { + + if (($_POST["friendica_acct_name"] != '') && ($_POST["friendica_password"] != '')) { + $acctname = $_POST["friendica_acct_name"]; + $tmp_account_array = explode("@", $acctname); + if (isset($tmp_account_array[1])) { + $username = $tmp_account_array[0]; + $hostname = $tmp_account_array[1]; + } + $password = $_POST["friendica_password"]; + $content = $_POST["content"]; + + $url = "http://" . $hostname . '/api/statuses/update'; + $data = array('status' => $content); + + // echo "posting to: $url<br/>"; + + $c = curl_init(); + curl_setopt($c, CURLOPT_URL, $url); + curl_setopt($c, CURLOPT_USERPWD, "$username:$password"); + curl_setopt($c, CURLOPT_POSTFIELDS, $data); + curl_setopt($c, CURLOPT_RETURNTRANSFER, true); + curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); + $c_result = curl_exec($c); + if(curl_errno($c)){ + $error = curl_error($c); + showForm($error, $content); + } + + curl_close($c); + if (!isset($error)) { + echo '<script language="javascript" type="text/javascript">window.close();</script>'; + } + + } else { + $error = "Missing account name and/or password. Please try again."; + showForm($error, $content); + } + +} else { + showForm(null, $content); +} + +function showForm($error, $content) { + $username_cookie = $_COOKIE['username']; + $password_cookie = $_COOKIE['password']; + + echo <<<EOF + <div class="wrap1"> + <h2><img class="logo" src="friendica-32.png" align="middle" />Friendica Bookmarklet</h2> + </div> + + <div class="wrap2"> + <form method="post" action="{$_SERVER['PHP_SELF']}"> + Enter the email address of the Friendica Account that you want to cross-post to: (example: user@friendica.org)<br /><br /> + Account ID: <input type="text" name="friendica_acct_name" value="{$username_cookie}" size="50" /><br /> + Password: <input type="password" name="friendica_password" value="{$password_cookie}" size="50" /><br /> + <textarea name="content" id="content" rows="6" cols="70">{$content}</textarea><br /> + <input type="submit" value="PostIt!" name="submit" />  <span class="error">$error</span> + </form> + <p></p> + </div> +EOF; + +} +?> + +</body> +</html> diff --git a/view/theme/dispy-dark/fpostit/friendica-32.png b/view/theme/dispy-dark/fpostit/friendica-32.png Binary files differnew file mode 100644 index 000000000..61764bf20 --- /dev/null +++ b/view/theme/dispy-dark/fpostit/friendica-32.png diff --git a/view/theme/dispy-dark/fpostit/friendika-32.png b/view/theme/dispy-dark/fpostit/friendika-32.png Binary files differnew file mode 100644 index 000000000..61764bf20 --- /dev/null +++ b/view/theme/dispy-dark/fpostit/friendika-32.png diff --git a/view/theme/dispy-dark/style.css b/view/theme/dispy-dark/style.css index ba0270ac9..ba8cda3c6 100644 --- a/view/theme/dispy-dark/style.css +++ b/view/theme/dispy-dark/style.css @@ -60,6 +60,9 @@ option { padding: 3px; vertical-align: middle; } +li { + padding: 0 0 0 2px; +} /* remember to define focus styles! */ :focus { outline: 0; @@ -200,6 +203,10 @@ input[type=submit] { .action { margin: 5px 0; } +.tool { + margin: 5px 0; + list-style: none; +} /** @@ -688,12 +695,17 @@ aside #viewcontacts { padding:.2em .5em; } #netsearch-box { - margin: 30px 0px; + margin: 20px 0px 30px; + width: 150px; +} +#netsearch-box #search-submit { + margin: 5px 0px 0px 0px; } .ttright { margin: 0px 0px 0px 0px; } + /** * contacts block */ @@ -1819,10 +1831,12 @@ div[id$="wrapper"] br { * contacts selector */ .group-delete-wrapper { - margin: -31px 122px 0 0; + margin: -31px 50px 0 0; float: right; } - +/*.group-delete-icon { + margin: 0 0 0 10px; +}*/ #group-edit-submit-wrapper { margin: 0 0 10px 0; display: inline; @@ -1862,6 +1876,7 @@ div[id$="wrapper"] br { display: none; } + /** * profile */ @@ -2096,13 +2111,13 @@ div[id$="wrapper"] br { #group-sidebar { margin-bottom: 10px; } -.group-selected, .nets-selected { +.group-selected, .nets-selected, .fileas-selected { padding: 3px; color: #2e2f2e; background: #88a9d2; font-weight: bold; } -.group-selected:hover, .nets-selected:hover { +.group-selected:hover, .nets-selected:hover, .fileas-selected:hover { color: #2e2f2e; } .groupsideedit { @@ -2172,13 +2187,7 @@ div[id$="wrapper"] br { .nets-all { margin-left: 0px; } -#netsearch-box { - margin-top: 20px; - width: 150px; -} -#netsearch-box #search-submit { - margin: 5px 0px 0px 0px; -} + /** * ADMIN @@ -2794,6 +2803,29 @@ footer { .network-star.icon.starred { display: inline-block; } +#fileas-sidebar { + +} +.fileas-ul { + padding: 0; +} + + + +/* + * ADDONS THEMING + */ + +#sidebar-page-list { + +} +#sidebar-page-list ul { + padding: 0; + margin: 5px 0; +} +#sidebar-page-list li { + list-style: none; +} @media handheld { diff --git a/view/theme/dispy-dark/theme.php b/view/theme/dispy-dark/theme.php index 700136173..cded68c48 100644 --- a/view/theme/dispy-dark/theme.php +++ b/view/theme/dispy-dark/theme.php @@ -3,9 +3,10 @@ /* * Name: Dispy Dark * Description: Dispy Dark, Friendica theme - * Version: 0.9 + * Version: 1.0 * Author: Simon <http://simon.kisikew.org/> * Maintainer: Simon <http://simon.kisikew.org/> + * Screenshot: <a href="screenshot.png">screenshot</a> */ @@ -126,3 +127,30 @@ $(document).ready(function() { </script> EOT; +function dispy_community_info() { + $a = get_app(); + + $fostitJS = "javascript: (function() { + the_url = '".$a->get_baseurl($ssl_state)."/view/theme/dispy-dark/fpostit/fpostit.php?url=' + + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' + + encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ? + document.getSelection() : document.selection.createRange().text)); + a_funct = function() { + if (!window.open(the_url, 'fpostit', 'location=yes,links=no,scrollbars=no,toolbar=no,width=600,height=300')) { + location.href = the_url; + } + if (/Firefox/.test(navigator.userAgent)) { + setTimeout(a_funct, 0) + } else { + a_funct(); + } + })();" ; + + $aside['$fostitJS'] = $fostitJS; + $url = $a->get_baseurl($ssl_state); + $aside['$url'] = $url; + + $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl'); + $a->page['right_aside'] = replace_macros($tpl, $aside); +} + diff --git a/view/theme/dispy-dark/wallwall_item.tpl b/view/theme/dispy-dark/wallwall_item.tpl index f251d7352..b25d13409 100644 --- a/view/theme/dispy-dark/wallwall_item.tpl +++ b/view/theme/dispy-dark/wallwall_item.tpl @@ -38,11 +38,14 @@ <a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a> {{ if $item.vote.share }} - <a href="#" id="share-$item.id" + <a href="#" id="share-$item.id" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }} <img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" /> </div> {{ endif }} + {{ if $item.filer }} + <div class="wall-item-filer-wrapper"><a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item icon file-as" title="$item.star.filer"></a></div> + {{ endif }} {{ if $item.plink }} <div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" target="external-link" class="icon remote-link"></a></div> {{ endif }} diff --git a/view/theme/dispy/communityhome.tpl b/view/theme/dispy/communityhome.tpl new file mode 100644 index 000000000..0659ebe20 --- /dev/null +++ b/view/theme/dispy/communityhome.tpl @@ -0,0 +1,4 @@ +{{ if $lastusers_title }} +<h3>PostIt to Friendica</h3> +<div style="padding-left: 8px;"><span >Post to Friendica from anywhere by bookmarking this <a href="$fostitJS" title="PostIt">Link</a>.</span></div> +{{ endif }} diff --git a/view/theme/dispy/fpostit/README b/view/theme/dispy/fpostit/README new file mode 100644 index 000000000..39b7c5761 --- /dev/null +++ b/view/theme/dispy/fpostit/README @@ -0,0 +1,8 @@ +fpostit + +original author: Devlon Duthied + +see his blog posting: +http://blog.duthied.com/2011/09/13/node-agnostic-friendika-bookmarklet/ + +original published at github https://github.com/duthied/Friendika-Bookmarklet diff --git a/view/theme/dispy/fpostit/fpostit.js b/view/theme/dispy/fpostit/fpostit.js new file mode 100755 index 000000000..d18f5d345 --- /dev/null +++ b/view/theme/dispy/fpostit/fpostit.js @@ -0,0 +1,14 @@ +javascript: (function() { + the_url = 'view/theme/dispy/fpostit/fpostit.php?url=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' + + encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ? + document.getSelection() : document.selection.createRange().text)); + a_funct = function() { + if (!window.open(the_url, 'fpostit','location=yes,links=no,scrollbars=no,toolbar=no,width=600,height=300')) { + location.href = the_url + }; + if (/Firefox/.test(navigator.userAgent)) { + setTimeout(a_funct, 0) + } else { + a_funct(); + } + })();" diff --git a/view/theme/dispy/fpostit/fpostit.php b/view/theme/dispy/fpostit/fpostit.php new file mode 100644 index 000000000..d00182946 --- /dev/null +++ b/view/theme/dispy/fpostit/fpostit.php @@ -0,0 +1,134 @@ +<?php +if (!isset($_POST["friendica_acct_name"])) $_POST["friendica_acct_name"] = ''; +if (!isset($_COOKIE['username'])) $_COOKIE['username'] = ''; +if (!isset($_COOKIE['password'])) $_COOKIE['password'] = ''; +if (!isset($hostname)) $hostname = ''; +if (!isset($username)) $username = ''; + + +if (($_POST["friendica_acct_name"] != '') && ($_POST["friendica_password"] != '')) { + setcookie("username", $_POST["friendica_acct_name"], time()+60*60*24*300); + setcookie("password", $_POST["friendica_password"], time()+60*60*24*300); +} + +?> +<html> +<head> + <style> + body { + font-family: sans-serif; + margin: 0px; + } + .wrap1 { + padding: 2px 5px; + background-color: #000; + margin-bottom: 10px; + } + .wrap2 { + margin-left: 10px; + font-size: 12px; + } + .logo { + margin-left: 3px; + margin-right: 5px; + float: left; + } + h2 { + color: #ffffff; + } + .error { + background-color: #FFFF66; + font-size: 12px; + margin-left: 10px; + } + </style> +</head> + +<body> +<?php + +if (isset($_GET['title'])) { + $title = $_GET['title']; +} +if (isset($_GET['text'])) { + $text = $_GET['text']; +} +if (isset($_GET['url'])) { + $url = $_GET['url']; +} + +if ((isset($title)) && (isset($text)) && (isset($url))) { + $content = "$title\nsource:$url\n\n$text"; +} else { + $content = $_POST['content']; +} + +if (isset($_POST['submit'])) { + + if (($_POST["friendica_acct_name"] != '') && ($_POST["friendica_password"] != '')) { + $acctname = $_POST["friendica_acct_name"]; + $tmp_account_array = explode("@", $acctname); + if (isset($tmp_account_array[1])) { + $username = $tmp_account_array[0]; + $hostname = $tmp_account_array[1]; + } + $password = $_POST["friendica_password"]; + $content = $_POST["content"]; + + $url = "http://" . $hostname . '/api/statuses/update'; + $data = array('status' => $content); + + // echo "posting to: $url<br/>"; + + $c = curl_init(); + curl_setopt($c, CURLOPT_URL, $url); + curl_setopt($c, CURLOPT_USERPWD, "$username:$password"); + curl_setopt($c, CURLOPT_POSTFIELDS, $data); + curl_setopt($c, CURLOPT_RETURNTRANSFER, true); + curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); + $c_result = curl_exec($c); + if(curl_errno($c)){ + $error = curl_error($c); + showForm($error, $content); + } + + curl_close($c); + if (!isset($error)) { + echo '<script language="javascript" type="text/javascript">window.close();</script>'; + } + + } else { + $error = "Missing account name and/or password. Please try again."; + showForm($error, $content); + } + +} else { + showForm(null, $content); +} + +function showForm($error, $content) { + $username_cookie = $_COOKIE['username']; + $password_cookie = $_COOKIE['password']; + + echo <<<EOF + <div class="wrap1"> + <h2><img class="logo" src="friendica-32.png" align="middle" />Friendica Bookmarklet</h2> + </div> + + <div class="wrap2"> + <form method="post" action="{$_SERVER['PHP_SELF']}"> + Enter the email address of the Friendica Account that you want to cross-post to: (example: user@friendica.org)<br /><br /> + Account ID: <input type="text" name="friendica_acct_name" value="{$username_cookie}" size="50" /><br /> + Password: <input type="password" name="friendica_password" value="{$password_cookie}" size="50" /><br /> + <textarea name="content" id="content" rows="6" cols="70">{$content}</textarea><br /> + <input type="submit" value="PostIt!" name="submit" />  <span class="error">$error</span> + </form> + <p></p> + </div> +EOF; + +} +?> + +</body> +</html> diff --git a/view/theme/dispy/fpostit/friendica-32.png b/view/theme/dispy/fpostit/friendica-32.png Binary files differnew file mode 100644 index 000000000..61764bf20 --- /dev/null +++ b/view/theme/dispy/fpostit/friendica-32.png diff --git a/view/theme/dispy/fpostit/friendika-32.png b/view/theme/dispy/fpostit/friendika-32.png Binary files differnew file mode 100644 index 000000000..61764bf20 --- /dev/null +++ b/view/theme/dispy/fpostit/friendika-32.png diff --git a/view/theme/dispy/style.css b/view/theme/dispy/style.css index 9b480385d..935ca507e 100644 --- a/view/theme/dispy/style.css +++ b/view/theme/dispy/style.css @@ -2086,13 +2086,13 @@ div[id$="wrapper"] br { #group-sidebar { margin-bottom: 10px; } -.group-selected, .nets-selected { +.group-selected, .nets-selected, .fileas-selected { padding: 3px; color: #111; background: #f8f8f8; font-weight: bold; } -.group-selected:hover, .nets-selected:hover { +.group-selected:hover, .nets-selected:hover, .fileas-selected:hover { color: #111; } .groupsideedit { @@ -2784,6 +2784,29 @@ footer { .network-star.icon.starred { display: inline-block; } +#fileas-sidebar { + +} +.fileas-ul { + padding: 0; +} + + + +/* + * ADDONS THEMING + */ + +#sidebar-page-list { + +} +#sidebar-page-list ul { + padding: 0; + margin: 5px 0; +} +#sidebar-page-list li { + list-style: none; +} @media handheld { diff --git a/view/theme/dispy/theme.php b/view/theme/dispy/theme.php index 26e07b1f7..e898346ef 100644 --- a/view/theme/dispy/theme.php +++ b/view/theme/dispy/theme.php @@ -3,9 +3,10 @@ /* * Name: Dispy * Description: Dispy, Friendica theme - * Version: 0.9 + * Version: 1.0 * Author: unknown * Maintainer: Simon <http://simon.kisikew.org/> + * Screenshot: <a href="screenshot.png">Screenshot</a> */ @@ -126,3 +127,30 @@ $(document).ready(function() { </script> EOT; +function dispy_community_info() { + $a = get_app(); + + $fostitJS = "javascript: (function() { + the_url = '".$a->get_baseurl($ssl_state)."/view/theme/dispy-dark/fpostit/fpostit.php?url=' + + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' + + encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ? + document.getSelection() : document.selection.createRange().text)); + a_funct = function() { + if (!window.open(the_url, 'fpostit', 'location=yes,links=no,scrollbars=no,toolbar=no,width=600,height=300')) { + location.href = the_url; + } + if (/Firefox/.test(navigator.userAgent)) { + setTimeout(a_funct, 0) + } else { + a_funct(); + } + })();" ; + + $aside['$fostitJS'] = $fostitJS; + $url = $a->get_baseurl($ssl_state); + $aside['$url'] = $url; + + $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl'); + $a->page['right_aside'] = replace_macros($tpl, $aside); +} + diff --git a/view/theme/dispy/wallwall_item.tpl b/view/theme/dispy/wallwall_item.tpl index f251d7352..b25d13409 100644 --- a/view/theme/dispy/wallwall_item.tpl +++ b/view/theme/dispy/wallwall_item.tpl @@ -38,11 +38,14 @@ <a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a> {{ if $item.vote.share }} - <a href="#" id="share-$item.id" + <a href="#" id="share-$item.id" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }} <img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" /> </div> {{ endif }} + {{ if $item.filer }} + <div class="wall-item-filer-wrapper"><a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item icon file-as" title="$item.star.filer"></a></div> + {{ endif }} {{ if $item.plink }} <div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" target="external-link" class="icon remote-link"></a></div> {{ endif }} |