]> git.mxchange.org Git - friendica.git/commitdiff
Some more direct SQL calls had been replaced
authorMichael <heluecht@pirati.ca>
Tue, 19 Jun 2018 19:06:17 +0000 (19:06 +0000)
committerMichael <heluecht@pirati.ca>
Tue, 19 Jun 2018 19:06:17 +0000 (19:06 +0000)
include/conversation.php
mod/photos.php

index 6ef2e73aa2692f6d64b34aff14a3b0fe30dd0716..5d013014b776c5eaaf0fe80ae788b02c3052ffe8 100644 (file)
@@ -110,14 +110,21 @@ function item_redir_and_replace_images($body, $images, $cid) {
 /**
  * Render actions localized
  */
-function localize_item(&$item) {
-
+function localize_item(&$item)
+{
        $extracted = item_extract_images($item['body']);
        if ($extracted['images']) {
                $item['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $item['contact-id']);
        }
 
-       /// @TODO Separted ???
+       /*
+       heluecht 2018-06-19: from my point of view this whole code part is useless.
+       It just renders the body message of technical posts (Like, dislike, ...).
+       But: The body isn't visible at all. So we do this stuff just because we can.
+       Even if these messages were visible, this would only mean that something went wrong.
+       During the further steps of the database restructuring I would like to address this issue.
+       */
+
        $xmlhead = "<" . "?xml version='1.0' encoding='UTF-8' ?" . ">";
        if (activity_match($item['verb'], ACTIVITY_LIKE)
                || activity_match($item['verb'], ACTIVITY_DISLIKE)
@@ -125,15 +132,11 @@ function localize_item(&$item) {
                || activity_match($item['verb'], ACTIVITY_ATTENDNO)
                || activity_match($item['verb'], ACTIVITY_ATTENDMAYBE)) {
 
-               /// @TODO may hurt performance
-               $r = q("SELECT * FROM `item`, `contact`
-                       WHERE `item`.`contact-id`=`contact`.`id`
-                       AND `item`.`uri`='%s'",
-                       dbesc($item['parent-uri']));
-               if (!DBM::is_result($r)) {
+               $fields = ['author-link', 'author-name', 'verb', 'object-type', 'resource-id', 'body', 'plink'];
+               $obj = Item::selectFirst($fields, ['uri' => $item['parent-uri']]);
+               if (!DBM::is_result($obj)) {
                        return;
                }
-               $obj = $r[0];
 
                $author  = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
                $objauthor =  '[url=' . $obj['author-link'] . ']' . $obj['author-name'] . '[/url]';
@@ -189,7 +192,8 @@ function localize_item(&$item) {
                $links = XML::parseString($xmlhead."<links>".unxmlify($obj->link)."</links>");
 
                $Bname = $obj->title;
-               $Blink = ""; $Bphoto = "";
+               $Blink = "";
+               $Bphoto = "";
                foreach ($links->link as $l) {
                        $atts = $l->attributes();
                        switch ($atts['rel']) {
@@ -249,7 +253,7 @@ function localize_item(&$item) {
 
                // now translate the verb
                $poked_t = trim(sprintf($txt, "", ""));
-               $txt = str_replace( $poked_t, L10n::t($verb), $txt);
+               $txt = str_replace($poked_t, L10n::t($verb), $txt);
 
                // then do the sprintf on the translation string
 
@@ -258,18 +262,12 @@ function localize_item(&$item) {
        }
 
        if (activity_match($item['verb'], ACTIVITY_TAG)) {
-               /// @TODO may hurt performance "joining" two tables + asterisk
-               $r = q("SELECT * FROM `item`, `contact`
-                       WHERE `item`.`contact-id`=`contact`.`id`
-                       AND `item`.`uri`='%s'",
-                       dbesc($item['parent-uri']));
-
-               if (!DBM::is_result($r)) {
+               $fields = ['author-link', 'author-name', 'verb', 'object-type', 'resource-id', 'body', 'plink'];
+               $obj = Item::selectFirst($fields, ['uri' => $item['parent-uri']]);
+               if (!DBM::is_result($obj)) {
                        return;
                }
 
-               $obj = $r[0];
-
                $author  = '[url=' . Contact::magicLinkById($item['author-id']) . ']' . $item['author-name'] . '[/url]';
                $objauthor =  '[url=' . Contact::magicLinkById($obj['author-id']) . ']' . $obj['author-name'] . '[/url]';
 
@@ -299,8 +297,7 @@ function localize_item(&$item) {
                $parsedobj = XML::parseString($xmlhead.$item['object']);
 
                $tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content);
-               $item['body'] = L10n::t('%1$s tagged %2$s\'s %3$s with %4$s', $author, $objauthor, $plink, $tag );
-
+               $item['body'] = L10n::t('%1$s tagged %2$s\'s %3$s with %4$s', $author, $objauthor, $plink, $tag);
        }
 
        if (activity_match($item['verb'], ACTIVITY_FAVORITE)) {
@@ -315,13 +312,9 @@ function localize_item(&$item) {
 
                $obj = XML::parseString($xmlhead.$item['object']);
                if (strlen($obj->id)) {
-                       $r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
-                                       dbesc($obj->id),
-                                       intval($item['uid'])
-                       );
-
-                       if (DBM::is_result($r) && $r[0]['plink']) {
-                               $target = $r[0];
+                       $fields = ['author-link', 'author-name', 'plink'];
+                       $target = Item::selectFirst($fields, ['uri' => $obj->id, 'uid' => $item['uid']]);
+                       if (DBM::is_result($target) && $target['plink']) {
                                $Bname = $target['author-name'];
                                $Blink = $target['author-link'];
                                $A = '[url=' . Contact::magicLink($Alink) . ']' . $Aname . '[/url]';
@@ -1009,7 +1002,7 @@ function format_like($cnt, array $arr, $type, $id) {
                }
                if ($total >= MAX_LIKERS) {
                        $str = implode(', ', $arr);
-                       $str .= L10n::t('and %d other people', $total - MAX_LIKERS );
+                       $str .= L10n::t('and %d other people', $total - MAX_LIKERS);
                }
 
                $likers = $str;
index 9cd3482746734f71696684bcc12af6b8fa6cbd44..e823da59ff1f1a451e56ba6e9659f6cb2495b9db 100644 (file)
@@ -172,7 +172,7 @@ function photos_post(App $a)
        }
 
        if (!$can_post) {
-               notice(L10n::t('Permission denied.') . EOL );
+               notice(L10n::t('Permission denied.') . EOL);
                killme();
        }
 
@@ -275,7 +275,7 @@ function photos_post(App $a)
                        $str_res = implode(',', $res);
 
                        // remove the associated photos
-                       q("DELETE FROM `photo` WHERE `resource-id` IN ( $str_res ) AND `uid` = %d",
+                       q("DELETE FROM `photo` WHERE `resource-id` IN ($str_res) AND `uid` = %d",
                                intval($page_owner_uid)
                        );
 
@@ -372,7 +372,7 @@ function photos_post(App $a)
                        if (DBM::is_result($r)) {
                                $Image = new Image($r[0]['data'], $r[0]['type']);
                                if ($Image->isValid()) {
-                                       $rotate_deg = ( (intval($_POST['rotate']) == 1) ? 270 : 90 );
+                                       $rotate_deg = ((intval($_POST['rotate']) == 1) ? 270 : 90);
                                        $Image->rotate($rotate_deg);
 
                                        $width  = $Image->getWidth();
@@ -918,7 +918,7 @@ function photos_content(App $a)
        require_once 'include/conversation.php';
 
        if (!x($a->data,'user')) {
-               notice(L10n::t('No photos selected') . EOL );
+               notice(L10n::t('No photos selected') . EOL);
                return;
        }
 
@@ -1216,7 +1216,7 @@ function photos_content(App $a)
                        if (DBM::is_result($ph)) {
                                notice(L10n::t('Permission denied. Access to this item may be restricted.'));
                        } else {
-                               notice(L10n::t('Photo not available') . EOL );
+                               notice(L10n::t('Photo not available') . EOL);
                        }
                        return;
                }
@@ -1289,15 +1289,15 @@ function photos_content(App $a)
                        ];
 
                        // lock
-                       $lock = ( ( ($ph[0]['uid'] == local_user()) && (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid'])
-                                       || strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid'])) )
+                       $lock = ((($ph[0]['uid'] == local_user()) && (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid'])
+                                       || strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid'])))
                                        ? L10n::t('Private Message')
                                        : Null);
 
 
                }
 
-               if ( $cmd === 'edit') {
+               if ($cmd === 'edit') {
                        $tpl = get_markup_template('photo_edit_head.tpl');
                        $a->page['htmlhead'] .= replace_macros($tpl,[
                                '$prevlink' => $prevlink,
@@ -1332,7 +1332,8 @@ function photos_content(App $a)
                // The difference is that we won't be displaying the conversation head item
                // as a "post" but displaying instead the photo it is linked to
 
-               $linked_items = q("SELECT * FROM `item` WHERE `resource-id` = '%s' $sql_extra LIMIT 1",
+               /// @todo Rewrite this query. To do so, $sql_extra must be changed
+               $linked_items = q("SELECT `id` FROM `item` WHERE `resource-id` = '%s' $sql_extra LIMIT 1",
                        dbesc($datum)
                );
 
@@ -1340,7 +1341,8 @@ function photos_content(App $a)
                $link_item = [];
 
                if (DBM::is_result($linked_items)) {
-                       $link_item = $linked_items[0];
+                       // This is a workaround to not being forced to rewrite the while $sql_extra handling
+                       $link_item = Item::selectFirstForUser(local_user(), [], ['id' => $linked_items[0]['id']]);
 
                        $r = q("SELECT COUNT(*) AS `total`
                                FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`