Issues (1369)

classes/Pages/Helpers/PageHelperAlly.php (4 issues)

1
<?php
2
/**
3
 * Created by Gorlum 19.08.2019 19:12
4
 */
5
6
namespace Pages\Helpers;
7
8
9
use Alliance\Alliance;
10
use classLocale;
11
use mysqli_result;
12
use SN;
13
use SnTemplate;
14
use template;
15
16
class PageHelperAlly {
17
  /**
18
   * @param             $mode
19
   * @param array       $user
20
   * @param classLocale $lang
21
   */
22
23
  public static function pageExternalSearch($mode, array $user, classLocale $lang) {
24
    if (!defined('SN_IN_ALLY') || SN_IN_ALLY !== true) {
25
      SN::$debug->error("Attempt to call ALLIANCE page mode {$mode} directly - not from alliance.php", 'Forbidden', 403);
0 ignored issues
show
The method error() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

25
      SN::$debug->/** @scrutinizer ignore-call */ 
26
                  error("Attempt to call ALLIANCE page mode {$mode} directly - not from alliance.php", 'Forbidden', 403);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
26
    }
27
28
    $template = SnTemplate::gettemplate('ali_search', true);
0 ignored issues
show
true of type true is incompatible with the type null|template expected by parameter $template of SnTemplate::gettemplate(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

28
    $template = SnTemplate::gettemplate('ali_search', /** @scrutinizer ignore-type */ true);
Loading history...
29
30
    $ali_search_text = sys_get_param_str('searchtext');
31
32
    if ($ali_search_text) {
33
      $template->assign_var('SEARCH_TEXT', $ali_search_text);
34
35
      $search = doquery("SELECT DISTINCT * FROM {{alliance}} WHERE `ally_name` LIKE '%{$ali_search_text}%' OR `ally_tag` LIKE '%{$ali_search_text}%' LIMIT 30");
0 ignored issues
show
Deprecated Code introduced by
The function doquery() has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

35
      $search = /** @scrutinizer ignore-deprecated */ doquery("SELECT DISTINCT * FROM {{alliance}} WHERE `ally_name` LIKE '%{$ali_search_text}%' OR `ally_tag` LIKE '%{$ali_search_text}%' LIMIT 30");
Loading history...
36
      if (SN::$db->db_num_rows($search)) {
37
        PageHelperAlly::allyFetchFromResult($template, $search, $user['total_points']);
38
      }
39
    }
40
41
    self::externalSearchRecommend($user, $template);
42
43
    SnTemplate::display($template, $lang['ali_search_title']);
44
  }
45
46
47
  /**
48
   * @param template           $template
49
   * @param mysqli_result|null $result
50
   * @param int                $playerPoints
51
   */
52
  public static function allyFetchFromResult(template $template, $result, $playerPoints = 0) {
53
    while ($ally_row = db_fetch($result)) {
0 ignored issues
show
Deprecated Code introduced by
The function db_fetch() has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

53
    while ($ally_row = /** @scrutinizer ignore-deprecated */ db_fetch($result)) {
Loading history...
54
      $perPlayer  = $ally_row['total_points'] / $ally_row['ally_members'];
55
      $pointsDiff = round($playerPoints - $perPlayer);
56
57
      $pointsRate = $playerPoints / $perPlayer;
58
      $pointsRate = round($pointsRate, 2);
59
60
//    $pointsRate && $pointsRate < 1 ? $pointsRate = "1 / " . round(1 / $pointsRate, 2) : false;
61
62
      $template->assign_block_vars('alliances', array(
63
        'ID'          => $ally_row['id'],
64
        'TAG'         => $ally_row['ally_tag'],
65
        'NAME'        => $ally_row['ally_name'],
66
        'MEMBERS'     => $ally_row['ally_members'],
67
        'NO_REQUESTS' => $ally_row['ally_request_notallow'],
68
        'DIFF'        => $pointsDiff,
69
        'RATE'        => $pointsRate,
70
      ));
71
    }
72
  }
73
74
  /**
75
   * @param array    $user
76
   * @param template $template
77
   */
78
  public static function externalSearchRecommend(array $user, template $template) {
79
    if (empty($user['ally_id'])) {
80
      $recommended = Alliance::recommend($user['total_points']);
81
      if (SN::$db->db_num_rows($recommended)) {
82
        $template->assign_block_vars('alliances', array(
83
          'ID' => -1,
84
        ));
85
        PageHelperAlly::allyFetchFromResult($template, $recommended, $user['total_points']);
86
      }
87
    }
88
89
    $template->assign_vars(['PAGE_HINT' => SN::$lang['ali_search_result_tip']]);
90
  }
91
92
}
93