Passed
Push — master ( 1007d6...492b54 )
by Alxarafe
26:10
created

AjaxLib   F

Complexity

Total Complexity 91

Size/Duplication

Total Lines 158
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 71
dl 0
loc 158
rs 2
c 0
b 0
f 0
wmc 91

1 Method

Rating   Name   Duplication   Size   Complexity  
D selectSearchBox() 0 152 91

How to fix   Complexity   

Complex Class

Complex classes like AjaxLib often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use AjaxLib, and based on these observations, apply Extract Interface, too.

1
<?php
2
namespace Alixar\Helpers;
3
4
/**
5
 * Description of AjaxLib
6
 *
7
 * @author Rafael
8
 */
9
class AjaxLib
10
{
11
12
    //put your code here
13
14
15
    static function selectSearchBox()
16
    {
17
        if (!isset($usedbyinclude) || empty($usedbyinclude)) {
0 ignored issues
show
Comprehensibility Best Practice introduced by alxarafe
The variable $usedbyinclude seems to never exist and therefore isset should always be false.
Loading history...
18
            if (!defined('NOTOKENRENEWAL')) {
19
                define('NOTOKENRENEWAL', 1); // Disables token renewal
20
            }
21
            if (!defined('NOREQUIREMENU')) {
22
                define('NOREQUIREMENU', '1');
23
            }
24
            if (!defined('NOREQUIREHTML')) {
25
                define('NOREQUIREHTML', '1');
26
            }
27
            if (!defined('NOREQUIREAJAX')) {
28
                define('NOREQUIREAJAX', '1');
29
            }
30
            if (!defined('NOREDIRECTBYMAINTOLOGIN')) {
31
                define('NOREDIRECTBYMAINTOLOGIN', '1');
32
            }
33
34
            $res = @include '../../main.inc.php';
35
            if ($res == 'ERROR_NOT_LOGGED') {
36
                $langs->load("other");
0 ignored issues
show
Comprehensibility Best Practice introduced by alxarafe
The variable $langs seems to be never defined.
Loading history...
37
                $arrayresult['jumptologin'] = array('img' => 'object_generic', 'label' => $langs->trans("JumpToLogin"), 'text' => '<span class="fa fa-sign-in"></span> ' . $langs->trans("JumpToLogin"), 'url' => DOL_URL_ROOT . '/index.php');
0 ignored issues
show
Comprehensibility Best Practice introduced by alxarafe
$arrayresult was never initialized. Although not strictly required by PHP, it is generally a good practice to add $arrayresult = array(); before regardless.
Loading history...
38
                print json_encode($arrayresult);
39
                /*
40
                  if (is_object($db))
41
                  $db->close();
42
                 */
43
                exit;
0 ignored issues
show
Best Practice introduced by alxarafe
Using exit here is not recommended.

In general, usage of exit should be done with care and only when running in a scripting context like a CLI script.

Loading history...
44
            }
45
        }
46
47
        // include_once DOL_DOCUMENT_ROOT . '/core/lib/json.lib.php';
48
//global Globals::$hookManager;
49
        Globals::$hookManager->initHooks(array('searchform'));
50
51
        $search_boxvalue = DolUtils::GETPOST('q', 'none');
52
53
        $arrayresult = array();
54
55
// Define $searchform
56
57
        if (!empty($conf->adherent->enabled) && empty($conf->global->MAIN_SEARCHFORM_ADHERENT_DISABLED) && $user->rights->adherent->lire) {
0 ignored issues
show
Comprehensibility Best Practice introduced by alxarafe
The variable $conf seems to be never defined.
Loading history...
Comprehensibility Best Practice introduced by alxarafe
The variable $user seems to be never defined.
Loading history...
58
            $arrayresult['searchintomember'] = array('position' => 8, 'shortcut' => 'M', 'img' => 'object_user', 'label' => $langs->trans("SearchIntoMembers", $search_boxvalue), 'text' => img_picto('', 'object_user') . ' ' . $langs->trans("SearchIntoMembers", $search_boxvalue), 'url' => DOL_URL_ROOT . '/adherents/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
59
        }
60
61
        if (((!empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || !empty($conf->fournisseur->enabled)) && empty($conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED) && $user->rights->societe->lire) {
62
            $arrayresult['searchintothirdparty'] = array('position' => 10, 'shortcut' => 'T', 'img' => 'object_company', 'label' => $langs->trans("SearchIntoThirdparties", $search_boxvalue), 'text' => img_picto('', 'object_company') . ' ' . $langs->trans("SearchIntoThirdparties", $search_boxvalue), 'url' => DOL_URL_ROOT . '/societe/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
63
        }
64
65
        if (!empty($conf->societe->enabled) && empty($conf->global->MAIN_SEARCHFORM_CONTACT_DISABLED) && $user->rights->societe->lire) {
66
            $arrayresult['searchintocontact'] = array('position' => 15, 'shortcut' => 'A', 'img' => 'object_contact', 'label' => $langs->trans("SearchIntoContacts", $search_boxvalue), 'text' => img_picto('', 'object_contact') . ' ' . $langs->trans("SearchIntoContacts", $search_boxvalue), 'url' => DOL_URL_ROOT . '/contact/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
67
        }
68
69
        if (((!empty($conf->product->enabled) && $user->rights->produit->lire) || (!empty($conf->service->enabled) && $user->rights->service->lire)) && empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE_DISABLED)) {
0 ignored issues
show
introduced by alxarafe
Consider adding parentheses for clarity. Current Interpretation: (! empty($conf->product-...RODUITSERVICE_DISABLED), Probably Intended Meaning: ! empty($conf->product->...ODUITSERVICE_DISABLED))
Loading history...
70
            $arrayresult['searchintoproduct'] = array('position' => 30, 'shortcut' => 'P', 'img' => 'object_product', 'label' => $langs->trans("SearchIntoProductsOrServices", $search_boxvalue), 'text' => img_picto('', 'object_product') . ' ' . $langs->trans("SearchIntoProductsOrServices", $search_boxvalue), 'url' => DOL_URL_ROOT . '/product/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
71
        }
72
73
        if (!empty($conf->projet->enabled) && empty($conf->global->MAIN_SEARCHFORM_PROJECT_DISABLED) && $user->rights->projet->lire) {
74
            $arrayresult['searchintoprojects'] = array('position' => 40, 'shortcut' => 'Q', 'img' => 'object_projectpub', 'label' => $langs->trans("SearchIntoProjects", $search_boxvalue), 'text' => img_picto('', 'object_projectpub') . ' ' . $langs->trans("SearchIntoProjects", $search_boxvalue), 'url' => DOL_URL_ROOT . '/projet/list.php' . ($search_boxvalue ? '?search_all=' . urlencode($search_boxvalue) : ''));
75
        }
76
77
        if (!empty($conf->projet->enabled) && empty($conf->global->MAIN_SEARCHFORM_TASK_DISABLED) && $user->rights->projet->lire) {
78
            $arrayresult['searchintotasks'] = array('position' => 45, 'img' => 'object_task', 'label' => $langs->trans("SearchIntoTasks", $search_boxvalue), 'text' => img_picto('', 'object_task') . ' ' . $langs->trans("SearchIntoTasks", $search_boxvalue), 'url' => DOL_URL_ROOT . '/projet/tasks/list.php' . ($search_boxvalue ? '?search_all=' . urlencode($search_boxvalue) : ''));
79
        }
80
81
        if (!empty($conf->propal->enabled) && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_PROPAL_DISABLED) && $user->rights->propal->lire) {
82
            $arrayresult['searchintopropal'] = array('position' => 60, 'img' => 'object_propal', 'label' => $langs->trans("SearchIntoCustomerProposals", $search_boxvalue), 'text' => img_picto('', 'object_propal') . ' ' . $langs->trans("SearchIntoCustomerProposals", $search_boxvalue), 'url' => DOL_URL_ROOT . '/comm/propal/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
83
        }
84
85
        if (!empty($conf->commande->enabled) && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_ORDER_DISABLED) && $user->rights->commande->lire) {
86
            $arrayresult['searchintoorder'] = array('position' => 70, 'img' => 'object_order', 'label' => $langs->trans("SearchIntoCustomerOrders", $search_boxvalue), 'text' => img_picto('', 'object_order') . ' ' . $langs->trans("SearchIntoCustomerOrders", $search_boxvalue), 'url' => DOL_URL_ROOT . '/commande/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
87
        }
88
89
        if (!empty($conf->expedition->enabled) && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_SHIPMENT_DISABLED) && $user->rights->expedition->lire) {
90
            $arrayresult['searchintoshipment'] = array('position' => 80, 'img' => 'object_sending', 'label' => $langs->trans("SearchIntoCustomerShipments", $search_boxvalue), 'text' => img_picto('', 'object_sending') . ' ' . $langs->trans("SearchIntoCustomerShipments", $search_boxvalue), 'url' => DOL_URL_ROOT . '/expedition/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
91
        }
92
93
        if (!empty($conf->facture->enabled) && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_INVOICE_DISABLED) && $user->rights->facture->lire) {
94
            $arrayresult['searchintoinvoice'] = array('position' => 90, 'img' => 'object_bill', 'label' => $langs->trans("SearchIntoCustomerInvoices", $search_boxvalue), 'text' => img_picto('', 'object_bill') . ' ' . $langs->trans("SearchIntoCustomerInvoices", $search_boxvalue), 'url' => DOL_URL_ROOT . '/compta/facture/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
95
        }
96
97
        if (!empty($conf->supplier_proposal->enabled) && empty($conf->global->MAIN_SEARCHFORM_SUPPLIER_PROPAL_DISABLED) && $user->rights->supplier_proposal->lire) {
98
            $arrayresult['searchintosupplierpropal'] = array('position' => 100, 'img' => 'object_propal', 'label' => $langs->trans("SearchIntoSupplierProposals", $search_boxvalue), 'text' => img_picto('', 'object_propal') . ' ' . $langs->trans("SearchIntoSupplierProposals", $search_boxvalue), 'url' => DOL_URL_ROOT . '/supplier_proposal/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
99
        }
100
101
        if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_SEARCHFORM_SUPPLIER_ORDER_DISABLED) && $user->rights->fournisseur->commande->lire) {
102
            $arrayresult['searchintosupplierorder'] = array('position' => 110, 'img' => 'object_order', 'label' => $langs->trans("SearchIntoSupplierOrders", $search_boxvalue), 'text' => img_picto('', 'object_order') . ' ' . $langs->trans("SearchIntoSupplierOrders", $search_boxvalue), 'url' => DOL_URL_ROOT . '/fourn/commande/list.php' . ($search_boxvalue ? '?search_all=' . urlencode($search_boxvalue) : ''));
103
        }
104
105
        if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_SEARCHFORM_SUPPLIER_INVOICE_DISABLED) && $user->rights->fournisseur->facture->lire) {
106
            $arrayresult['searchintosupplierinvoice'] = array('position' => 120, 'img' => 'object_bill', 'label' => $langs->trans("SearchIntoSupplierInvoices", $search_boxvalue), 'text' => img_picto('', 'object_bill') . ' ' . $langs->trans("SearchIntoSupplierInvoices", $search_boxvalue), 'url' => DOL_URL_ROOT . '/fourn/facture/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
107
        }
108
109
        if (!empty($conf->contrat->enabled) && empty($conf->global->MAIN_SEARCHFORM_CONTRACT_DISABLED) && $user->rights->contrat->lire) {
110
            $arrayresult['searchintocontract'] = array('position' => 130, 'img' => 'object_contract', 'label' => $langs->trans("SearchIntoContracts", $search_boxvalue), 'text' => img_picto('', 'object_contract') . ' ' . $langs->trans("SearchIntoContracts", $search_boxvalue), 'url' => DOL_URL_ROOT . '/contrat/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
111
        }
112
113
        if (!empty($conf->ficheinter->enabled) && empty($conf->global->MAIN_SEARCHFORM_FICHINTER_DISABLED) && $user->rights->ficheinter->lire) {
114
            $arrayresult['searchintointervention'] = array('position' => 140, 'img' => 'object_intervention', 'label' => $langs->trans("SearchIntoInterventions", $search_boxvalue), 'text' => img_picto('', 'object_intervention') . ' ' . $langs->trans("SearchIntoInterventions", $search_boxvalue), 'url' => DOL_URL_ROOT . '/fichinter/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
115
        }
116
117
// HR
118
        if (!empty($conf->user->enabled) && empty($conf->global->MAIN_SEARCHFORM_USER_DISABLED) && $user->rights->user->user->lire) {
119
            $arrayresult['searchintouser'] = array('position' => 200, 'shortcut' => 'U', 'img' => 'object_user', 'label' => $langs->trans("SearchIntoUsers", $search_boxvalue), 'text' => img_picto('', 'object_user') . ' ' . $langs->trans("SearchIntoUsers", $search_boxvalue), 'url' => DOL_URL_ROOT . '/user/list.php' . ($search_boxvalue ? '?sall=' . urlencode($search_boxvalue) : ''));
120
        }
121
122
        if (!empty($conf->expensereport->enabled) && empty($conf->global->MAIN_SEARCHFORM_EXPENSEREPORT_DISABLED) && $user->rights->expensereport->lire) {
123
            $arrayresult['searchintoexpensereport'] = array('position' => 210, 'img' => 'object_trip', 'label' => $langs->trans("SearchIntoExpenseReports", $search_boxvalue), 'text' => img_picto('', 'object_trip') . ' ' . $langs->trans("SearchIntoExpenseReports", $search_boxvalue), 'url' => DOL_URL_ROOT . '/expensereport/list.php?mainmenu=hrm' . ($search_boxvalue ? '&sall=' . urlencode($search_boxvalue) : ''));
124
        }
125
126
        if (!empty($conf->holiday->enabled) && empty($conf->global->MAIN_SEARCHFORM_HOLIDAY_DISABLED) && $user->rights->holiday->read) {
127
            $arrayresult['searchintoleaves'] = array('position' => 220, 'img' => 'object_holiday', 'label' => $langs->trans("SearchIntoLeaves", $search_boxvalue), 'text' => img_picto('', 'object_holiday') . ' ' . $langs->trans("SearchIntoLeaves", $search_boxvalue), 'url' => DOL_URL_ROOT . '/holiday/list.php?mainmenu=hrm' . ($search_boxvalue ? '&sall=' . urlencode($search_boxvalue) : ''));
128
        }
129
130
131
        /* Do we really need this. We already have a select for users, and we should be able to filter into user list on employee flag
132
          if (! empty($conf->hrm->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_EMPLOYEE) && $user->rights->hrm->employee->read)
133
          {
134
          $langs->load("hrm");
135
          $searchform.=printSearchForm(DOL_URL_ROOT.'/hrm/employee/list.php', DOL_URL_ROOT.'/hrm/employee/list.php', $langs->trans("Employees"), 'employee', 'search_all', 'M', 'searchleftemployee', img_object('','user'));
136
          }
137
         */
138
139
// Execute hook addSearchEntry
140
        $parameters = array('search_boxvalue' => $search_boxvalue, 'arrayresult' => $arrayresult);
141
        $reshook = Globals::$hookManager->executeHooks('addSearchEntry', $parameters);
142
        if (empty($reshook)) {
143
            $arrayresult = array_merge($arrayresult, Globals::$hookManager->resArray);
144
        } else
145
            $arrayresult = Globals::$hookManager->resArray;
146
147
// This allow to keep a search entry to the top
148
        if (!empty($conf->global->DEFAULT_SEARCH_INTO_MODULE)) {
149
            $key = 'searchinto' . $conf->global->DEFAULT_SEARCH_INTO_MODULE;
150
            if (array_key_exists($key, $arrayresult))
151
                $arrayresult[$key]['position'] = -10;
152
        }
153
154
// Sort on position
155
        $arrayresult = DolUtils::dol_sort_array($arrayresult, 'position');
156
157
// Print output if called by ajax or do nothing (var $arrayresult will be used) if called by an include
158
        if (!isset($usedbyinclude) || empty($usedbyinclude)) {
159
            print json_encode($arrayresult);
160
            /*
161
              if (is_object($db))
162
              $db->close();
163
             */
164
        }
165
166
        return $arrayresult;
167
    }
168
}
169