]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #5740 from annando/fix-fatal
authorHypolite Petovan <mrpetovan@eml.cc>
Thu, 6 Sep 2018 15:58:07 +0000 (11:58 -0400)
committerGitHub <noreply@github.com>
Thu, 6 Sep 2018 15:58:07 +0000 (11:58 -0400)
Fix fatal error due to missing "use"

23 files changed:
doc/Quick-Start-groupsandpages.md
mod/contacts.php
mod/dfrn_notify.php
mod/dirfind.php
mod/events.php
mod/lockview.php
mod/notifications.php
mod/parse_url.php
mod/unfollow.php
src/App.php
src/Content/Text/BBCode.php
src/Model/Contact.php
src/Model/Event.php
src/Protocol/DFRN.php
src/Util/HTTPSignature.php
src/Util/ParseUrl.php
src/Worker/Notifier.php
view/theme/frio/js/mod_photos.js
view/theme/frio/js/modal.js
view/theme/frio/templates/album_edit.tpl
view/theme/frio/templates/events_js.tpl
view/theme/frio/templates/photo_album.tpl
view/theme/frio/theme.php

index 652407d642ec6fc040e96e9f6f24921aa16db114..d4680f65f2b5aa575b1f128bb21241f2360007b2 100644 (file)
@@ -15,6 +15,6 @@ Remember the link at the top of this page will bring you back here.
 
 Once you've added some groups, <a href="help/Quick-Start-andfinally">move on to the next section</a>.
 
-<iframe src="http://dir.friendica.com/directory/forum" width="950" height="600"></iframe>
+<iframe src="http://dir.friendica.social/directory" width="950" height="600"></iframe>
 
 
index 70a582c6ee36b729111d652cc1c985049138238e..68f68fec3b94f10f97096bd524544acd9d0554d1 100644 (file)
@@ -368,7 +368,7 @@ function _contact_drop($orig_record)
                return;
        }
 
-       Contact::terminateFriendship($r[0], $orig_record);
+       Contact::terminateFriendship($r[0], $orig_record, true);
        Contact::remove($orig_record['id']);
 }
 
index 88f706385baa3d6f7878b816a42b4bf60d71eb3e..f653faca9599ade707593cf0de2df6c287f193ff 100644 (file)
@@ -322,8 +322,8 @@ function dfrn_notify_content(App $a) {
                $encrypted_id = '';
                $id_str       = $my_id . '.' . mt_rand(1000,9999);
 
-               $prv_key = trim($importer['prvkey']);
-               $pub_key = trim($importer['pubkey']);
+               $prv_key = trim($importer['cprvkey']);
+               $pub_key = trim($importer['cpubkey']);
                $dplx    = intval($importer['duplex']);
 
                if (($dplx && strlen($prv_key)) || (strlen($prv_key) && !strlen($pub_key))) {
index f4ddba45d4be253efade4b848c6b1b2048d43c19..332fe90f6c48cf5af9b0a170fb8e6783b2b2581a 100644 (file)
@@ -44,7 +44,7 @@ function dirfind_content(App $a, $prefix = "") {
 
        $local = Config::get('system','poco_local_search');
 
-       $search = $prefix.notags(trim($_REQUEST['search']));
+       $search = $prefix.notags(trim(defaults($_REQUEST, 'search', '')));
 
        $header = '';
 
index 91474022fcdc6277d9afa99e7f0438e9abd6333f..c4d40252d37c72e905ec2175de5fe512a0c4cc51 100644 (file)
@@ -54,11 +54,11 @@ function events_post(App $a) {
        $cid = (x($_POST, 'cid') ? intval($_POST['cid']) : 0);
        $uid = local_user();
 
-       $start_text  = escape_tags($_REQUEST['start_text']);
-       $finish_text = escape_tags($_REQUEST['finish_text']);
+       $start_text  = escape_tags(defaults($_REQUEST, 'start_text', ''));
+       $finish_text = escape_tags(defaults($_REQUEST, 'finish_text', ''));
 
-       $adjust   = intval($_POST['adjust']);
-       $nofinish = intval($_POST['nofinish']);
+       $adjust   = intval(defaults($_POST, 'adjust', 0));
+       $nofinish = intval(defaults($_POST, 'nofinish', 0));
 
        // The default setting for the `private` field in event_store() is false, so mirror that
        $private_event = false;
@@ -91,9 +91,9 @@ function events_post(App $a) {
        // and we'll waste a bunch of time responding to it. Time that
        // could've been spent doing something else.
 
-       $summary  = escape_tags(trim($_POST['summary']));
-       $desc     = escape_tags(trim($_POST['desc']));
-       $location = escape_tags(trim($_POST['location']));
+       $summary  = escape_tags(trim(defaults($_POST, 'summary', '')));
+       $desc     = escape_tags(trim(defaults($_POST, 'desc', '')));
+       $location = escape_tags(trim(defaults($_POST, 'location', '')));
        $type     = 'event';
 
        $action = ($event_id == '') ? 'new' : "event/" . $event_id;
@@ -117,7 +117,7 @@ function events_post(App $a) {
                goaway($onerror_url);
        }
 
-       $share = (intval($_POST['share']) ? intval($_POST['share']) : 0);
+       $share = intval(defaults($_POST, 'share', 0));
 
        $c = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1",
                intval(local_user())
@@ -482,8 +482,10 @@ function events_content(App $a) {
 
                $perms = ACL::getDefaultUserPermissions($orig_event);
 
-               if ($mode === 'new' || $mode === 'copy') {
-                       $acl = ($cid ? '' : ACL::getFullSelectorHTML($a->user, false, $orig_event));
+               if (!$cid && in_array($mode, ['new', 'copy'])) {
+                       $acl = ACL::getFullSelectorHTML($a->user, false, $orig_event);
+               } else {
+                       $acl = '';
                }
 
                // If we copy an old event, we need to remove the ID and URI
index 893764c4d9fa3266b6e22145eddca365ea191a09..0d87e1551034d24739e867f79388d185f762cd10 100644 (file)
@@ -8,27 +8,31 @@ use Friendica\Core\L10n;
 use Friendica\Database\DBA;
 use Friendica\Model\Item;
 
-function lockview_content(App $a) {
-
+function lockview_content(App $a)
+{
        $type = (($a->argc > 1) ? $a->argv[1] : 0);
        if (is_numeric($type)) {
                $item_id = intval($type);
-               $type='item';
+               $type = 'item';
        } else {
                $item_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
        }
 
-       if (!$item_id)
+       if (!$item_id) {
                killme();
+       }
 
-       if (!in_array($type, ['item','photo','event']))
+       if (!in_array($type, ['item','photo','event'])) {
                killme();
+       }
 
-       $fields = ['uid', 'private', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid'];
+       $fields = ['uid', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid'];
        $condition = ['id' => $item_id];
+
        if ($type != 'item') {
                $item = DBA::selectFirst($type, $fields, $condition);
        } else {
+               $fields[] = 'private';
                $item = Item::selectFirst($fields, $condition);
        }
 
@@ -43,18 +47,20 @@ function lockview_content(App $a) {
                killme();
        }
 
-
-       if (($item['private'] == 1) && empty($item['allow_cid']) && empty($item['allow_gid'])
-               && empty($item['deny_cid']) && empty($item['deny_gid'])) {
-
+       if ($item['private'] == 1
+               && empty($item['allow_cid'])
+               && empty($item['allow_gid'])
+               && empty($item['deny_cid'])
+               && empty($item['deny_gid']))
+       {
                echo L10n::t('Remote privacy information not available.') . '<br />';
                killme();
        }
 
-       $allowed_users = expand_acl($item['allow_cid']);
+       $allowed_users  = expand_acl($item['allow_cid']);
        $allowed_groups = expand_acl($item['allow_gid']);
-       $deny_users = expand_acl($item['deny_cid']);
-       $deny_groups = expand_acl($item['deny_gid']);
+       $deny_users     = expand_acl($item['deny_cid']);
+       $deny_groups    = expand_acl($item['deny_gid']);
 
        $o = L10n::t('Visible to:') . '<br />';
        $l = [];
@@ -63,36 +69,44 @@ function lockview_content(App $a) {
                $r = q("SELECT `name` FROM `group` WHERE `id` IN ( %s )",
                        DBA::escape(implode(', ', $allowed_groups))
                );
-               if (DBA::isResult($r))
-                       foreach($r as $rr)
+               if (DBA::isResult($r)) {
+                       foreach ($r as $rr) {
                                $l[] = '<b>' . $rr['name'] . '</b>';
+                       }
+               }
        }
+
        if (count($allowed_users)) {
                $r = q("SELECT `name` FROM `contact` WHERE `id` IN ( %s )",
-                       DBA::escape(implode(', ',$allowed_users))
+                       DBA::escape(implode(', ', $allowed_users))
                );
-               if (DBA::isResult($r))
-                       foreach($r as $rr)
+               if (DBA::isResult($r)) {
+                       foreach ($r as $rr) {
                                $l[] = $rr['name'];
-
+                       }
+               }
        }
 
        if (count($deny_groups)) {
                $r = q("SELECT `name` FROM `group` WHERE `id` IN ( %s )",
                        DBA::escape(implode(', ', $deny_groups))
                );
-               if (DBA::isResult($r))
-                       foreach($r as $rr)
+               if (DBA::isResult($r)) {
+                       foreach ($r as $rr) {
                                $l[] = '<b><strike>' . $rr['name'] . '</strike></b>';
+                       }
+               }
        }
+
        if (count($deny_users)) {
                $r = q("SELECT `name` FROM `contact` WHERE `id` IN ( %s )",
-                       DBA::escape(implode(', ',$deny_users))
+                       DBA::escape(implode(', ', $deny_users))
                );
-               if (DBA::isResult($r))
-                       foreach($r as $rr)
+               if (DBA::isResult($r)) {
+                       foreach ($r as $rr) {
                                $l[] = '<strike>' . $rr['name'] . '</strike>';
-
+                       }
+               }
        }
 
        echo $o . implode(', ', $l);
index bc581b6dd34ef24cda3791cb2ae9bc8f36e3914c..091323d998c725b136ad038abe5f185b6cbaba2c 100644 (file)
@@ -87,10 +87,11 @@ function notifications_content(App $a)
        $perpage = 20;
        $startrec = ($page * $perpage) - $perpage;
 
+       $notif_header = L10n::t('Notifications');
+
        // Get introductions
        if ((($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) {
                Nav::setSelected('introductions');
-               $notif_header = L10n::t('Notifications');
 
                $all = (($a->argc > 2) && ($a->argv[2] == 'all'));
 
@@ -132,12 +133,8 @@ function notifications_content(App $a)
 
        $notif_tpl = get_markup_template('notifications.tpl');
 
-       if (!isset($notifs['ident'])) {
-               logger('Missing data in notifs: ' . json_encode($a->argv), LOGGER_DEBUG);
-       }
-
        // Process the data for template creation
-       if ($notifs['ident'] === 'introductions') {
+       if (defaults($notifs, 'ident', '') === 'introductions') {
                $sugg = get_markup_template('suggestions.tpl');
                $tpl = get_markup_template("intros.tpl");
 
@@ -280,7 +277,7 @@ function notifications_content(App $a)
                }
 
        // Normal notifications (no introductions)
-       } else {
+       } elseif (!empty($notifs['notifications'])) {
                // The template files we need in different cases for formatting the content
                $tpl_item_like = 'notifications_likes_item.tpl';
                $tpl_item_dislike = 'notifications_dislikes_item.tpl';
index 3309a74b9f0d22041a9e529924e96f3c94f28343..ebe34875b76937221baa98bdf6b33044b9ae9ae3 100644 (file)
  * information and does format this information to BBCode
  *
  * @see ParseUrl::getSiteinfo() for more information about scraping embeddable content
-*/
-
+ */
 use Friendica\App;
 use Friendica\Core\Addon;
 use Friendica\Util\Network;
 use Friendica\Util\ParseUrl;
 
-require_once("include/items.php");
-
-function parse_url_content(App $a) {
+require_once 'include/items.php';
 
+function parse_url_content(App $a)
+{
        $text = null;
-       $str_tags = "";
+       $str_tags = '';
 
        $br = "\n";
 
-       if (!empty($_GET["binurl"])) {
-               $url = trim(hex2bin($_GET["binurl"]));
+       if (!empty($_GET['binurl'])) {
+               $url = trim(hex2bin($_GET['binurl']));
        } else {
-               $url = trim($_GET["url"]);
+               $url = trim($_GET['url']);
        }
 
-       if (!empty($_GET["title"])) {
-               $title = strip_tags(trim($_GET["title"]));
+       if (!empty($_GET['title'])) {
+               $title = strip_tags(trim($_GET['title']));
        }
 
-       if (!empty($_GET["description"])) {
-               $text = strip_tags(trim($_GET["description"]));
+       if (!empty($_GET['description'])) {
+               $text = strip_tags(trim($_GET['description']));
        }
 
-       if (!empty($_GET["tags"])) {
-               $arr_tags = ParseUrl::convertTagsToArray($_GET["tags"]);
+       if (!empty($_GET['tags'])) {
+               $arr_tags = ParseUrl::convertTagsToArray($_GET['tags']);
                if (count($arr_tags)) {
-                       $str_tags = $br . implode(" ", $arr_tags) . $br;
+                       $str_tags = $br . implode(' ', $arr_tags) . $br;
                }
        }
 
        // Add url scheme if it is missing
        $arrurl = parse_url($url);
-       if (!x($arrurl, "scheme")) {
-               if (x($arrurl, "host")) {
-                       $url = "http:".$url;
+       if (!x($arrurl, 'scheme')) {
+               if (x($arrurl, 'host')) {
+                       $url = 'http:' . $url;
                } else {
-                       $url = "http://".$url;
+                       $url = 'http://' . $url;
                }
        }
 
-       logger("prse_url: " . $url);
+       logger($url);
 
        // Check if the URL is an image, video or audio file. If so format
        // the URL with the corresponding BBCode media tag
        $redirects = 0;
        // Fetch the header of the URL
-       $result = Network::curl($url, false, $redirects, ["novalidate" => true, "nobody" => true]);
-       if($result["success"]) {
+       $result = Network::curl($url, false, $redirects, ['novalidate' => true, 'nobody' => true]);
+
+       if ($result['success']) {
                // Convert the header fields into an array
                $hdrs = [];
-               $h = explode("\n", $result["header"]);
+               $h = explode("\n", $result['header']);
                foreach ($h as $l) {
-                       $header = array_map("trim", explode(":", trim($l), 2));
+                       $header = array_map('trim', explode(':', trim($l), 2));
                        if (count($header) == 2) {
-                               list($k,$v) = $header;
+                               list($k, $v) = $header;
                                $hdrs[$k] = $v;
                        }
                }
-               if (array_key_exists("Content-Type", $hdrs)) {
-                       $type = $hdrs["Content-Type"];
+               if (array_key_exists('Content-Type', $hdrs)) {
+                       $type = $hdrs['Content-Type'];
                }
                if ($type) {
-                       if(stripos($type, "image/") !== false) {
-                               echo $br . "[img]" . $url . "[/img]" . $br;
-                               killme();
+                       if (stripos($type, 'image/') !== false) {
+                               echo $br . '[img]' . $url . '[/img]' . $br;
+                               exit();
                        }
-                       if (stripos($type, "video/") !== false) {
-                               echo $br . "[video]" . $url . "[/video]" . $br;
-                               killme();
+                       if (stripos($type, 'video/') !== false) {
+                               echo $br . '[video]' . $url . '[/video]' . $br;
+                               exit();
                        }
-                       if (stripos($type, "audio/") !== false) {
-                               echo $br . "[audio]" . $url . "[/audio]" . $br;
-                               killme();
+                       if (stripos($type, 'audio/') !== false) {
+                               echo $br . '[audio]' . $url . '[/audio]' . $br;
+                               exit();
                        }
                }
        }
 
-       $template = "[bookmark=%s]%s[/bookmark]%s";
+       $template = '[bookmark=%s]%s[/bookmark]%s';
 
-       $arr = ["url" => $url, "text" => ""];
+       $arr = ['url' => $url, 'text' => ''];
 
-       Addon::callHooks("parse_link", $arr);
+       Addon::callHooks('parse_link', $arr);
 
-       if (strlen($arr["text"])) {
-               echo $arr["text"];
-               killme();
+       if (strlen($arr['text'])) {
+               echo $arr['text'];
+               exit();
        }
 
        // If there is already some content information submitted we don't
        // need to parse the url for content.
        if (!empty($url) && !empty($title) && !empty($text)) {
+               $title = str_replace(["\r", "\n"], ['', ''], $title);
 
-               $title = str_replace(["\r","\n"],["",""],$title);
-
-               $text = "[quote]" . trim($text) . "[/quote]" . $br;
+               $text = '[quote]' . trim($text) . '[/quote]' . $br;
 
                $result = sprintf($template, $url, ($title) ? $title : $url, $text) . $str_tags;
 
-               logger("parse_url (unparsed): returns: " . $result);
+               logger('(unparsed): returns: ' . $result);
 
                echo $result;
-               killme();
+               exit();
        }
 
        // Fetch the information directly from the webpage
        $siteinfo = ParseUrl::getSiteinfo($url);
 
-       unset($siteinfo["keywords"]);
+       unset($siteinfo['keywords']);
 
        // Format it as BBCode attachment
        $info = add_page_info_data($siteinfo);
 
        echo $info;
 
-       killme();
+       exit();
 }
 
 /**
@@ -151,7 +150,8 @@ function parse_url_content(App $a) {
  * @todo Remove this function after all Addons has been changed to use
  *    ParseUrl::getSiteinfoCached
  */
-function parseurl_getsiteinfo_cached($url, $no_guessing = false, $do_oembed = true) {
+function parseurl_getsiteinfo_cached($url, $no_guessing = false, $do_oembed = true)
+{
        $siteinfo = ParseUrl::getSiteinfoCached($url, $no_guessing, $do_oembed);
        return $siteinfo;
 }
index 0af16ec671e2bff5a4c2306b7ce986d5c1420dc5..b80263a3ecd33349047e177f8ff964547b4c56d8 100644 (file)
@@ -22,14 +22,14 @@ function unfollow_post()
                // NOTREACHED
        }
 
-       if ($_REQUEST['cancel']) {
+       if (!empty($_REQUEST['cancel'])) {
                goaway($return_url);
        }
 
        $uid = local_user();
        $url = notags(trim(defaults($_REQUEST, 'url', '')));
 
-       $condition = ["`uid` = ? AND (`rel` = ? OR `rel` = ?) AND (`nurl` = ? OR `alias` = ? OR `alias` = ?) AND `network` != ?",
+       $condition = ["`uid` = ? AND (`rel` = ? OR `rel` = ?) AND (`nurl` = ? OR `alias` = ? OR `alias` = ?)",
                $uid, Contact::SHARING, Contact::FRIEND, normalise_link($url),
                normalise_link($url), $url];
        $contact = DBA::selectFirst('contact', [], $condition);
@@ -46,13 +46,15 @@ function unfollow_post()
                // NOTREACHED
        }
 
+       $dissolve = ($contact['rel'] == Contact::SHARING);
+
        $owner = User::getOwnerDataById($uid);
        if ($owner) {
-               Contact::terminateFriendship($owner, $contact);
+               Contact::terminateFriendship($owner, $contact, $dissolve);
        }
 
        // Sharing-only contacts get deleted as there no relationship any more
-       if ($contact['rel'] == Contact::SHARING) {
+       if ($dissolve) {
                Contact::remove($contact['id']);
                $return_path = 'contacts';
        } else {
index 2a5fba854146b78ae7b88a08ac40f8ef41cb5bb6..488c2301b6738be5a9162383862b9b4de9b726d4 100644 (file)
@@ -1074,7 +1074,11 @@ class App
 
                $meminfo = [];
                foreach ($memdata as $line) {
-                       list($key, $val) = explode(':', $line);
+                       $data = explode(':', $line);
+                       if (count($data) != 2) {
+                               continue;
+                       }
+                       list($key, $val) = $data;
                        $meminfo[$key] = (int) trim(str_replace('kB', '', $val));
                        $meminfo[$key] = (int) ($meminfo[$key] / 1024);
                }
index 41f89e65dc84e8f35518e4e37da6fe4f36303f7c..55fc24273da7954b3ae45701706c3e6fb384be2b 100644 (file)
@@ -578,9 +578,7 @@ class BBCode extends BaseObject
                                        $return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br />', $data["url"], self::proxyUrl($data["preview"], $simplehtml), $data["title"]);
                                }
 
-                               if (($data["type"] == "photo") && !empty($data["url"]) && !empty($data["image"])) {
-                                       $return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a>', $data["url"], self::proxyUrl($data["image"], $simplehtml), $data["title"]);
-                               } else {
+                               if (!empty($data['title']) && !empty($data['url'])) {
                                        $return .= sprintf('<h4><a href="%s">%s</a></h4>', $data['url'], $data['title']);
                                }
 
@@ -589,7 +587,8 @@ class BBCode extends BaseObject
                                        $bbcode = HTML::toBBCode($data["description"]);
                                        $return .= sprintf('<blockquote>%s</blockquote>', trim(self::convert($bbcode)));
                                }
-                               if ($data["type"] == "link") {
+
+                               if (!empty($data['url'])) {
                                        $return .= sprintf('<sup><a href="%s">%s</a></sup>', $data['url'], parse_url($data['url'], PHP_URL_HOST));
                                }
 
index d53126f6ff2aed90db3f1eda8c393f79f205a79b..1bbc0228a806a46dc7729ef1a852e7d12d53cb81 100644 (file)
@@ -17,6 +17,7 @@ use Friendica\Model\Profile;
 use Friendica\Network\Probe;
 use Friendica\Object\Image;
 use Friendica\Protocol\Diaspora;
+use Friendica\Protocol\DFRN;
 use Friendica\Protocol\OStatus;
 use Friendica\Protocol\PortableContact;
 use Friendica\Protocol\Salmon;
@@ -528,13 +529,16 @@ class Contact extends BaseObject
        /**
         * @brief Sends an unfriend message. Does not remove the contact
         *
-        * @param array $user    User unfriending
-        * @param array $contact Contact unfriended
+        * @param array   $user     User unfriending
+        * @param array   $contact  Contact unfriended
+        * @param boolean $dissolve Remove the contact on the remote side
         * @return void
         */
-       public static function terminateFriendship(array $user, array $contact)
+       public static function terminateFriendship(array $user, array $contact, $dissolve = false)
        {
-               if (in_array($contact['network'], [Protocol::OSTATUS, Protocol::DFRN])) {
+               if (($contact['network'] == Protocol::DFRN) && $dissolve) {
+                       DFRN::deliver($user, $contact, 'placeholder', true);
+               } elseif (in_array($contact['network'], [Protocol::OSTATUS, Protocol::DFRN])) {
                        // create an unfollow slap
                        $item = [];
                        $item['verb'] = NAMESPACE_OSTATUS . "/unfollow";
index 992b77badabaf8042907aae3df0b7d5af4eb0353..016d1f8d9e3974a47ec0197223a1ec4fda5ece83 100644 (file)
@@ -12,6 +12,7 @@ use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
 use Friendica\Core\System;
 use Friendica\Database\DBA;
+use Friendica\Model\Contact;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Map;
 
@@ -589,6 +590,12 @@ class Event extends BaseObject
                                $title = strip_tags(html_entity_decode($title, ENT_QUOTES, 'UTF-8'));
                        }
 
+                       $author_link = $event['author-link'];
+                       $plink       = $event['plink'];
+
+                       $event['author-link'] = Contact::magicLink($author_link);
+                       $event['plink']       = Contact::magicLink($author_link, $plink);
+
                        $html = self::getHTML($event);
                        $event['desc']     = BBCode::convert($event['desc']);
                        $event['location'] = BBCode::convert($event['location']);
index c4355503137923dc9c662f38e626b040b2be20c3..b207c3ca87cde7b4be9d705e936150c26a2c4cac 100644 (file)
@@ -81,7 +81,8 @@ class DFRN
                                return [];
                        }
 
-                       $user['importer_uid']  = $user['uid'];
+                       $user['importer_uid'] = $user['uid'];
+                       $user['uprvkey'] = $user['prvkey'];
                } else {
                        $user = ['importer_uid' => 0, 'uprvkey' => '', 'timezone' => 'UTC',
                                'nickname' => '', 'sprvkey' => '', 'spubkey' => '',
@@ -1168,10 +1169,12 @@ class DFRN
                $a = get_app();
 
                // At first try the Diaspora transport layer
-               $ret = self::transmit($owner, $contact, $atom);
-               if ($ret >= 200) {
-                       logger('Delivery via Diaspora transport layer was successful with status ' . $ret);
-                       return $ret;
+               if (!$dissolve) {
+                       $ret = self::transmit($owner, $contact, $atom);
+                       if ($ret >= 200) {
+                               logger('Delivery via Diaspora transport layer was successful with status ' . $ret);
+                               return $ret;
+                       }
                }
 
                $idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']);
index f88b0423c56e88971cf45a398908cbc7d63a5ebe..911de4308e5f7eb0b371f6c277f48d88386232e8 100644 (file)
@@ -125,6 +125,8 @@ class HTTPSignature
                        $key = $key($sig_block['keyId']);
                }
 
+               logger('Got keyID ' . $sig_block['keyId']);
+
                // We don't use Activity Pub at the moment.
 //             if (!$key) {
 //                     $result['signer'] = $sig_block['keyId'];
index 3be372767bd7b3fc1e53023dcb0011c064be20e6..2c134542a0392e279dd6f64f4008ec7cf8e52c74 100644 (file)
@@ -118,13 +118,13 @@ class ParseUrl
                // Check if the URL does contain a scheme
                $scheme = parse_url($url, PHP_URL_SCHEME);
 
-               if ($scheme == "") {
-                       $url = "http://".trim($url, "/");
+               if ($scheme == '') {
+                       $url = 'http://' . trim($url, '/');
                }
 
                if ($count > 10) {
-                       logger("parseurl_getsiteinfo: Endless loop detected for ".$url, LOGGER_DEBUG);
-                       return($siteinfo);
+                       logger('Endless loop detected for ' . $url, LOGGER_DEBUG);
+                       return $siteinfo;
                }
 
                $url = trim($url, "'");
@@ -132,220 +132,223 @@ class ParseUrl
 
                $url = Network::stripTrackingQueryParams($url);
 
-               $siteinfo["url"] = $url;
-               $siteinfo["type"] = "link";
+               $siteinfo['url'] = $url;
+               $siteinfo['type'] = 'link';
 
                $data = Network::curl($url);
                if (!$data['success']) {
-                       return($siteinfo);
+                       return $siteinfo;
                }
 
                // If the file is too large then exit
-               if ($data["info"]["download_content_length"] > 1000000) {
-                       return($siteinfo);
+               if ($data['info']['download_content_length'] > 1000000) {
+                       return $siteinfo;
                }
 
                // If it isn't a HTML file then exit
-               if (($data["info"]["content_type"] != "") && !strstr(strtolower($data["info"]["content_type"]), "html")) {
-                       return($siteinfo);
+               if (($data['info']['content_type'] != '') && !strstr(strtolower($data['info']['content_type']), 'html')) {
+                       return $siteinfo;
                }
 
-               $header = $data["header"];
-               $body = $data["body"];
+               $header = $data['header'];
+               $body = $data['body'];
 
                if ($do_oembed) {
                        $oembed_data = OEmbed::fetchURL($url);
 
                        if (!empty($oembed_data->type)) {
-                               if (!in_array($oembed_data->type, ["error", "rich", ""])) {
-                                       $siteinfo["type"] = $oembed_data->type;
+                               if (!in_array($oembed_data->type, ['error', 'rich', ''])) {
+                                       $siteinfo['type'] = $oembed_data->type;
                                }
 
-                               if (($oembed_data->type == "link") && ($siteinfo["type"] != "photo")) {
+                               if (($oembed_data->type == 'link') && ($siteinfo['type'] != 'photo')) {
                                        if (isset($oembed_data->title)) {
-                                               $siteinfo["title"] = trim($oembed_data->title);
+                                               $siteinfo['title'] = trim($oembed_data->title);
                                        }
                                        if (isset($oembed_data->description)) {
-                                               $siteinfo["text"] = trim($oembed_data->description);
+                                               $siteinfo['text'] = trim($oembed_data->description);
                                        }
                                        if (isset($oembed_data->thumbnail_url)) {
-                                               $siteinfo["image"] = $oembed_data->thumbnail_url;
+                                               $siteinfo['image'] = $oembed_data->thumbnail_url;
                                        }
                                }
                        }
                }
 
                // Fetch the first mentioned charset. Can be in body or header
-               $charset = "";
-               if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches)) {
+               $charset = '';
+               if (preg_match('/charset=(.*?)[\'"\s\n]/', $header, $matches)) {
                        $charset = trim(trim(trim(array_pop($matches)), ';,'));
                }
 
-               if ($charset == "") {
-                       $charset = "utf-8";
+               if ($charset == '') {
+                       $charset = 'utf-8';
                }
 
-               if (($charset != "") && (strtoupper($charset) != "UTF-8")) {
-                       logger("parseurl_getsiteinfo: detected charset ".$charset, LOGGER_DEBUG);
-                       //$body = mb_convert_encoding($body, "UTF-8", $charset);
-                       $body = iconv($charset, "UTF-8//TRANSLIT", $body);
+               if (($charset != '') && (strtoupper($charset) != 'UTF-8')) {
+                       logger('detected charset ' . $charset, LOGGER_DEBUG);
+                       $body = iconv($charset, 'UTF-8//TRANSLIT', $body);
                }
 
-               $body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
+               $body = mb_convert_encoding($body, 'HTML-ENTITIES', 'UTF-8');
 
                $doc = new DOMDocument();
                @$doc->loadHTML($body);
 
-               XML::deleteNode($doc, "style");
-               XML::deleteNode($doc, "script");
-               XML::deleteNode($doc, "option");
-               XML::deleteNode($doc, "h1");
-               XML::deleteNode($doc, "h2");
-               XML::deleteNode($doc, "h3");
-               XML::deleteNode($doc, "h4");
-               XML::deleteNode($doc, "h5");
-               XML::deleteNode($doc, "h6");
-               XML::deleteNode($doc, "ol");
-               XML::deleteNode($doc, "ul");
+               XML::deleteNode($doc, 'style');
+               XML::deleteNode($doc, 'script');
+               XML::deleteNode($doc, 'option');
+               XML::deleteNode($doc, 'h1');
+               XML::deleteNode($doc, 'h2');
+               XML::deleteNode($doc, 'h3');
+               XML::deleteNode($doc, 'h4');
+               XML::deleteNode($doc, 'h5');
+               XML::deleteNode($doc, 'h6');
+               XML::deleteNode($doc, 'ol');
+               XML::deleteNode($doc, 'ul');
 
                $xpath = new DOMXPath($doc);
 
-               $list = $xpath->query("//meta[@content]");
+               $list = $xpath->query('//meta[@content]');
                foreach ($list as $node) {
-                       $attr = [];
+                       $meta_tag = [];
                        if ($node->attributes->length) {
                                foreach ($node->attributes as $attribute) {
-                                       $attr[$attribute->name] = $attribute->value;
+                                       $meta_tag[$attribute->name] = $attribute->value;
                                }
                        }
 
-                       if (@$attr["http-equiv"] == "refresh") {
-                               $path = $attr["content"];
-                               $pathinfo = explode(";", $path);
-                               $content = "";
+                       if (@$meta_tag['http-equiv'] == 'refresh') {
+                               $path = $meta_tag['content'];
+                               $pathinfo = explode(';', $path);
+                               $content = '';
                                foreach ($pathinfo as $value) {
-                                       if (substr(strtolower($value), 0, 4) == "url=") {
+                                       if (substr(strtolower($value), 0, 4) == 'url=') {
                                                $content = substr($value, 4);
                                        }
                                }
-                               if ($content != "") {
+                               if ($content != '') {
                                        $siteinfo = self::getSiteinfo($content, $no_guessing, $do_oembed, ++$count);
-                                       return($siteinfo);
+                                       return $siteinfo;
                                }
                        }
                }
 
-               $list = $xpath->query("//title");
+               $list = $xpath->query('//title');
                if ($list->length > 0) {
-                       $siteinfo["title"] = trim($list->item(0)->nodeValue);
+                       $siteinfo['title'] = trim($list->item(0)->nodeValue);
                }
 
-               //$list = $xpath->query("head/meta[@name]");
-               $list = $xpath->query("//meta[@name]");
+               $list = $xpath->query('//meta[@name]');
                foreach ($list as $node) {
-                       $attr = [];
+                       $meta_tag = [];
                        if ($node->attributes->length) {
                                foreach ($node->attributes as $attribute) {
-                                       $attr[$attribute->name] = $attribute->value;
+                                       $meta_tag[$attribute->name] = $attribute->value;
                                }
                        }
 
-                       if (!empty($attr["content"])) {
-                               $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
-
-                               switch (strtolower($attr["name"])) {
-                                       case "fulltitle":
-                                               $siteinfo["title"] = trim($attr["content"]);
-                                               break;
-                                       case "description":
-                                               $siteinfo["text"] = trim($attr["content"]);
-                                               break;
-                                       case "thumbnail":
-                                               $siteinfo["image"] = $attr["content"];
-                                               break;
-                                       case "twitter:image":
-                                               $siteinfo["image"] = $attr["content"];
-                                               break;
-                                       case "twitter:image:src":
-                                               $siteinfo["image"] = $attr["content"];
-                                               break;
-                                       case "twitter:card":
-                                               if (($siteinfo["type"] == "") || ($attr["content"] == "photo")) {
-                                                       $siteinfo["type"] = $attr["content"];
-                                               }
-                                               break;
-                                       case "twitter:description":
-                                               $siteinfo["text"] = trim($attr["content"]);
-                                               break;
-                                       case "twitter:title":
-                                               $siteinfo["title"] = trim($attr["content"]);
-                                               break;
-                                       case "dc.title":
-                                               $siteinfo["title"] = trim($attr["content"]);
-                                               break;
-                                       case "dc.description":
-                                               $siteinfo["text"] = trim($attr["content"]);
-                                               break;
-                                       case "keywords":
-                                               $keywords = explode(",", $attr["content"]);
-                                               break;
-                                       case "news_keywords":
-                                               $keywords = explode(",", $attr["content"]);
-                                               break;
-                               }
+                       if (empty($meta_tag['content'])) {
+                               continue;
                        }
-                       if ($siteinfo["type"] == "summary") {
-                               $siteinfo["type"] = "link";
+
+                       $meta_tag['content'] = trim(html_entity_decode($meta_tag['content'], ENT_QUOTES, 'UTF-8'));
+
+                       switch (strtolower($meta_tag['name'])) {
+                               case 'fulltitle':
+                                       $siteinfo['title'] = trim($meta_tag['content']);
+                                       break;
+                               case 'description':
+                                       $siteinfo['text'] = trim($meta_tag['content']);
+                                       break;
+                               case 'thumbnail':
+                                       $siteinfo['image'] = $meta_tag['content'];
+                                       break;
+                               case 'twitter:image':
+                                       $siteinfo['image'] = $meta_tag['content'];
+                                       break;
+                               case 'twitter:image:src':
+                                       $siteinfo['image'] = $meta_tag['content'];
+                                       break;
+                               case 'twitter:card':
+                                       // Obsolete card type
+                                       if ($meta_tag['content'] == 'photo') {
+                                               $siteinfo['type'] = 'summary_large_image';
+                                       } else {
+                                               $siteinfo['type'] = $meta_tag['content'];
+                                       }
+                                       break;
+                               case 'twitter:description':
+                                       $siteinfo['text'] = trim($meta_tag['content']);
+                                       break;
+                               case 'twitter:title':
+                                       $siteinfo['title'] = trim($meta_tag['content']);
+                                       break;
+                               case 'dc.title':
+                                       $siteinfo['title'] = trim($meta_tag['content']);
+                                       break;
+                               case 'dc.description':
+                                       $siteinfo['text'] = trim($meta_tag['content']);
+                                       break;
+                               case 'keywords':
+                                       $keywords = explode(',', $meta_tag['content']);
+                                       break;
+                               case 'news_keywords':
+                                       $keywords = explode(',', $meta_tag['content']);
+                                       break;
                        }
                }
 
+               if ($siteinfo['type'] == 'summary' || $siteinfo['type'] == 'summary_large_image') {
+                       $siteinfo['type'] = 'link';
+               }
+
                if (isset($keywords)) {
-                       $siteinfo["keywords"] = [];
+                       $siteinfo['keywords'] = [];
                        foreach ($keywords as $keyword) {
-                               if (!in_array(trim($keyword), $siteinfo["keywords"])) {
-                                       $siteinfo["keywords"][] = trim($keyword);
+                               if (!in_array(trim($keyword), $siteinfo['keywords'])) {
+                                       $siteinfo['keywords'][] = trim($keyword);
                                }
                        }
                }
 
-               //$list = $xpath->query("head/meta[@property]");
-               $list = $xpath->query("//meta[@property]");
+               $list = $xpath->query('//meta[@property]');
                foreach ($list as $node) {
-                       $attr = [];
+                       $meta_tag = [];
                        if ($node->attributes->length) {
                                foreach ($node->attributes as $attribute) {
-                                       $attr[$attribute->name] = $attribute->value;
+                                       $meta_tag[$attribute->name] = $attribute->value;
                                }
                        }
 
-                       if (!empty($attr["content"])) {
-                               $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
+                       if (!empty($meta_tag['content'])) {
+                               $meta_tag['content'] = trim(html_entity_decode($meta_tag['content'], ENT_QUOTES, 'UTF-8'));
 
-                               switch (strtolower($attr["property"])) {
-                                       case "og:image":
-                                               $siteinfo["image"] = $attr["content"];
+                               switch (strtolower($meta_tag['property'])) {
+                                       case 'og:image':
+                                               $siteinfo['image'] = $meta_tag['content'];
                                                break;
-                                       case "og:title":
-                                               $siteinfo["title"] = trim($attr["content"]);
+                                       case 'og:title':
+                                               $siteinfo['title'] = trim($meta_tag['content']);
                                                break;
-                                       case "og:description":
-                                               $siteinfo["text"] = trim($attr["content"]);
+                                       case 'og:description':
+                                               $siteinfo['text'] = trim($meta_tag['content']);
                                                break;
                                }
                        }
                }
 
-               if ((@$siteinfo["image"] == "") && !$no_guessing) {
-                       $list = $xpath->query("//img[@src]");
+               if ((@$siteinfo['image'] == '') && !$no_guessing) {
+                       $list = $xpath->query('//img[@src]');
                        foreach ($list as $node) {
-                               $attr = [];
+                               $img_tag = [];
                                if ($node->attributes->length) {
                                        foreach ($node->attributes as $attribute) {
-                                               $attr[$attribute->name] = $attribute->value;
+                                               $img_tag[$attribute->name] = $attribute->value;
                                        }
                                }
 
-                               $src = self::completeUrl($attr["src"], $url);
+                               $src = self::completeUrl($img_tag['src'], $url);
                                $photodata = Image::getInfoFromURL($src);
 
                                if (($photodata) && ($photodata[0] > 150) && ($photodata[1] > 150)) {
@@ -357,70 +360,72 @@ class ParseUrl
                                                $photodata[0] = round($photodata[0] * (300 / $photodata[1]));
                                                $photodata[1] = 300;
                                        }
-                                       $siteinfo["images"][] = ["src" => $src,
-                                                                       "width" => $photodata[0],
-                                                                       "height" => $photodata[1]];
+                                       $siteinfo['images'][] = [
+                                               'src'    => $src,
+                                               'width'  => $photodata[0],
+                                               'height' => $photodata[1]
+                                       ];
                                }
                        }
-               } elseif (!empty($siteinfo["image"])) {
-                       $src = self::completeUrl($siteinfo["image"], $url);
+               } elseif (!empty($siteinfo['image'])) {
+                       $src = self::completeUrl($siteinfo['image'], $url);
 
-                       unset($siteinfo["image"]);
+                       unset($siteinfo['image']);
 
                        $photodata = Image::getInfoFromURL($src);
 
                        if (($photodata) && ($photodata[0] > 10) && ($photodata[1] > 10)) {
-                               $siteinfo["images"][] = ["src" => $src,
-                                                               "width" => $photodata[0],
-                                                               "height" => $photodata[1]];
+                               $siteinfo['images'][] = ['src' => $src,
+                                       'width' => $photodata[0],
+                                       'height' => $photodata[1]];
                        }
                }
 
-               if ((@$siteinfo["text"] == "") && (@$siteinfo["title"] != "") && !$no_guessing) {
-                       $text = "";
+               if ((@$siteinfo['text'] == '') && (@$siteinfo['title'] != '') && !$no_guessing) {
+                       $text = '';
 
-                       $list = $xpath->query("//div[@class='article']");
+                       $list = $xpath->query('//div[@class="article"]');
                        foreach ($list as $node) {
                                if (strlen($node->nodeValue) > 40) {
-                                       $text .= " ".trim($node->nodeValue);
+                                       $text .= ' ' . trim($node->nodeValue);
                                }
                        }
 
-                       if ($text == "") {
-                               $list = $xpath->query("//div[@class='content']");
+                       if ($text == '') {
+                               $list = $xpath->query('//div[@class="content"]');
                                foreach ($list as $node) {
                                        if (strlen($node->nodeValue) > 40) {
-                                               $text .= " ".trim($node->nodeValue);
+                                               $text .= ' ' . trim($node->nodeValue);
                                        }
                                }
                        }
 
                        // If none text was found then take the paragraph content
-                       if ($text == "") {
-                               $list = $xpath->query("//p");
+                       if ($text == '') {
+                               $list = $xpath->query('//p');
                                foreach ($list as $node) {
                                        if (strlen($node->nodeValue) > 40) {
-                                               $text .= " ".trim($node->nodeValue);
+                                               $text .= ' ' . trim($node->nodeValue);
                                        }
                                }
                        }
 
-                       if ($text != "") {
-                               $text = trim(str_replace(["\n", "\r"], [" ", " "], $text));
+                       if ($text != '') {
+                               $text = trim(str_replace(["\n", "\r"], [' ', ' '], $text));
 
-                               while (strpos($text, "  ")) {
-                                       $text = trim(str_replace("  ", " ", $text));
+                               while (strpos($text, '  ')) {
+                                       $text = trim(str_replace('  ', ' ', $text));
                                }
 
-                               $siteinfo["text"] = trim(html_entity_decode(substr($text, 0, 350), ENT_QUOTES, "UTF-8").'...');
+                               $siteinfo['text'] = trim(html_entity_decode(substr($text, 0, 350), ENT_QUOTES, 'UTF-8') . '...');
                        }
                }
 
-               logger("parseurl_getsiteinfo: Siteinfo for ".$url." ".print_r($siteinfo, true), LOGGER_DEBUG);
+               logger('Siteinfo for ' . $url . ' ' . print_r($siteinfo, true), LOGGER_DEBUG);
 
-               Addon::callHooks("getsiteinfo", $siteinfo);
+               Addon::callHooks('getsiteinfo', $siteinfo);
 
-               return($siteinfo);
+               return $siteinfo;
        }
 
        /**
index 6d2733b8ee2153671a43ce872fa32aadfb25e4a3..61eaba388b2d365a58829bcf4abddcb1bda54874 100644 (file)
@@ -96,7 +96,7 @@ class Notifier
                                return;
                        }
                        foreach ($r as $contact) {
-                               Contact::terminateFriendship($user, $contact);
+                               Contact::terminateFriendship($user, $contact, true);
                        }
                        return;
                } elseif ($cmd == Delivery::RELOCATION) {
index b8d03b5db91feda7e6e7f6c5e99af9d8903e8075..77173385b192ddf27bd6f555c934a126a6348dab 100644 (file)
@@ -15,7 +15,14 @@ $(document).ready(function() {
 
        }).trigger('change');
 
+       // Click event listener for the album edit link/button.
+       $("body").on('click', '#album-edit-link', function() {
+               var modalUrl = $(this).attr("data-modal-url");
 
+               if (typeof modalUrl !== "undefined") {
+                       addToModal(modalUrl, 'photo-album-edit-wrapper');
+               }
+       });
 });
 
 $(window).load(function() {
index 2b3059eaf1693fd3acf9fe38a13ea6cbfefe0db4..9a15cab52a67862845b5482dbd69bb52d13637bd 100644 (file)
@@ -188,14 +188,25 @@ function loadModalTitle() {
        }
 }
 
-// This function loads html content from a friendica page
-// into a modal.
-function addToModal(url) {
+
+/**
+ * This function loads html content from a friendica page into a modal.
+ * 
+ * @param {string} url The url with html content.
+ * @param {string} id The ID of a html element (can be undefined).
+ * @returns {void}
+ */
+function addToModal(url, id) {
        var char = qOrAmp(url);
 
        url = url + char + 'mode=none';
        var modal = $('#modal').modal();
 
+       // Only search for an element if we have an ID.
+       if (typeof id !== "undefined") {
+               url = url + " div#" + id;
+       }
+
        modal
                .find('#modal-body')
                .load(url, function (responseText, textStatus) {
@@ -215,7 +226,7 @@ function addToModal(url) {
                });
 }
 
-// Add a element (by it's id) to a bootstrap modal.
+// Add an element (by its id) to a bootstrap modal.
 function addElmToModal(id) {
        var elm = $(id).html();
        var modal = $('#modal').modal();
index 583eb6d1b7154e2c0e8ce0dff30fc79144e1d662..f4a60b7d038716e5933959ae5f2039b6d78a7067 100644 (file)
@@ -1,14 +1,15 @@
 <div id="photo-album-edit-wrapper">
-<form name="photo-album-edit-form" id="photo-album-edit-form" action="photos/{{$nickname}}/album/{{$hexalbum}}" method="post" >
-       <label id="photo-album-edit-name-label" for="photo-album-edit-name" >{{$nametext}}</label>
-       <div class="pull-left photo-album-edit-name">
-       <input class="form-control" type="text" size="64" name="albumname" value="{{$album|escape:'html'}}" id="photo-album-edit-name" style="width: 100%;">
-       </div>
-       
-       <div class="pull-right">
-       <input class="btn-primary btn btn-small" id="photo-album-edit-submit" type="submit" name="submit" value="{{$submit|escape:'html'}}" />
-       <input class="btn-primary btn btn-small" id="photo-album-edit-drop" type="submit" name="dropalbum" value="{{$dropsubmit|escape:'html'}}" onclick="return confirmDelete();" />
-       </div>
-</form>
+       <form name="photo-album-edit-form" id="photo-album-edit-form" action="photos/{{$nickname}}/album/{{$hexalbum}}" method="post" >
+               <label id="photo-album-edit-name-label" for="photo-album-edit-name" >{{$nametext}}</label>
+               <div class="pull-left photo-album-edit-name">
+                       <input class="form-control" type="text" size="64" name="albumname" value="{{$album|escape:'html'}}" id="photo-album-edit-name">
+               </div>
+
+               <div class="pull-right">
+                       <input class="btn-primary btn btn-small" id="photo-album-edit-submit" type="submit" name="submit" value="{{$submit|escape:'html'}}" />
+                       <input class="btn-primary btn btn-small" id="photo-album-edit-drop" type="submit" name="dropalbum" value="{{$dropsubmit|escape:'html'}}" onclick="return confirmDelete();" />
+               </div>
+       </form>
+       <div class="clear"></div>
 </div>
 <div class="clear"></div>
index 31debbe310954ba4bf1b2a616ebba9bc851f0504..a4ca9004cd08295688c58dc3969d09ce7937cd2c 100644 (file)
@@ -3,11 +3,13 @@
        {{include file="section_title.tpl" title=$title pullright=1}}
 
        {{* The link to create a new event *}}
+       {{if $new_event.0}}
        <div class="pull-right" id="new-event-link">
                <button type="button" class="btn-link page-action faded-icon" onclick="addToModal('{{$new_event.0}}')" title="{{$new_event.1}}" data-toggle="tooltip">
                        <i class="fa fa-plus"></i>
                </button>
        </div>
+       {{/if}}
 
        {{* We create our own fullcallendar header (with title & calendar view *}}
        <div id="fc-header" class="clear">
index c991b03cfc949afff607506eeab44d8b51d6c642..235b9c46db65968485b746913bfe61299ec10d71 100644 (file)
@@ -12,9 +12,9 @@
 
                {{if $edit}}
                <span class="icon-padding"> </span>
-               <a id="album-edit-link" class="page-action faded-icon" href="{{$edit.1}}" title="{{$edit.0}}" data-toggle="tooltip">
+               <button id="album-edit-link" class="btn-link page-action faded-icon" type="button" data-modal-url="{{$edit.1}}" title="{{$edit.0}}" data-toggle="tooltip">
                        <i class="fa fa-pencil"></i>
-               </a>
+               </button>
                {{/if}}
 
                {{if ! $noorder}}
index 4e01289624e822e9c0eb944c64ff567429aa779d..72e5ab0b6140b693464ec8d8170e19281d008bdd 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Name: frio
  * Description: Bootstrap V3 theme. The theme is currently under construction, so it is far from finished. For further information have a look at the <a href="https://github.com/friendica/friendica/tree/develop/view/theme/frio/README.md">ReadMe</a>.
- * Version: V.0.8
+ * Version: V.0.8.5
  * Author: Rabuzarus <https://friendica.kommune4.de/profile/rabuzarus>
  *
  */