additionalDetails.php ➔ additionalDetailsMeeting()   F
last analyzed

Complexity

Conditions 13
Paths 960

Size

Total Lines 69
Code Lines 46

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 182
Metric Value
cc 13
eloc 46
nc 960
nop 1
dl 0
loc 69
ccs 0
cts 58
cp 0
crap 182
rs 2.8985

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
3
/*********************************************************************************
4
 * SugarCRM Community Edition is a customer relationship management program developed by
5
 * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
6
7
 * SuiteCRM is an extension to SugarCRM Community Edition developed by Salesagility Ltd.
8
 * Copyright (C) 2011 - 2014 Salesagility Ltd.
9
 *
10
 * This program is free software; you can redistribute it and/or modify it under
11
 * the terms of the GNU Affero General Public License version 3 as published by the
12
 * Free Software Foundation with the addition of the following permission added
13
 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
14
 * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
15
 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
16
 *
17
 * This program is distributed in the hope that it will be useful, but WITHOUT
18
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
19
 * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
20
 * details.
21
 *
22
 * You should have received a copy of the GNU Affero General Public License along with
23
 * this program; if not, see http://www.gnu.org/licenses or write to the Free
24
 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
25
 * 02110-1301 USA.
26
 *
27
 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
28
 * SW2-130, Cupertino, CA 95014, USA. or at email address [email protected].
29
 *
30
 * The interactive user interfaces in modified source and object code versions
31
 * of this program must display Appropriate Legal Notices, as required under
32
 * Section 5 of the GNU Affero General Public License version 3.
33
 *
34
 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
35
 * these Appropriate Legal Notices must retain the display of the "Powered by
36
 * SugarCRM" logo and "Supercharged by SuiteCRM" logo. If the display of the logos is not
37
 * reasonably feasible for  technical reasons, the Appropriate Legal Notices must
38
 * display the words  "Powered by SugarCRM" and "Supercharged by SuiteCRM".
39
 ********************************************************************************/
40
41
42
function additionalDetailsMeeting($fields) {
43
    global $timedate;
44
    static $mod_strings;
45
    if(empty($mod_strings)) {
46
        global $current_language;
47
        $mod_strings = return_module_language($current_language, 'Meetings');
48
    }
49
//    ini_set('display_errors', true);
50
//    print_r($fields);
51
    $overlib_string = '';
52
    $overlib_string .= '<input id="type" type="hidden" value="Meeting"/>';
53
    if(!empty($fields['ID'])) {
54
        $overlib_string .= '<input id="id" type="hidden" value="'. $fields['ID'];
55
        $overlib_string .= '"/>';
56
    }
57
58
    $overlib_string .= '<h2><img src="index.php?entryPoint=getImage&themeName=' . SugarThemeRegistry::current()->name .'&imageName=Meetings.gif"/> '.$mod_strings['LBL_MEETING'].'</h2>';
0 ignored issues
show
Documentation introduced by
The property $name is declared protected in SugarTheme. Since you implemented __get(), maybe consider adding a @property or @property-read annotation. This makes it easier for IDEs to provide auto-completion.

Since your code implements the magic setter _set, this function will be called for any write access on an undefined variable. You can add the @property annotation to your class or interface to document the existence of this variable.

<?php

/**
 * @property int $x
 * @property int $y
 * @property string $text
 */
class MyLabel
{
    private $properties;

    private $allowedProperties = array('x', 'y', 'text');

    public function __get($name)
    {
        if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
            return $properties[$name];
        } else {
            return null;
        }
    }

    public function __set($name, $value)
    {
        if (in_array($name, $this->allowedProperties)) {
            $properties[$name] = $value;
        } else {
            throw new \LogicException("Property $name is not defined.");
        }
    }

}

Since the property has write access only, you can use the @property-write annotation instead.

Of course, you may also just have mistyped another name, in which case you should fix the error.

See also the PhpDoc documentation for @property.

Loading history...
59
60
    if(!empty($fields['NAME'])) {
61
        $overlib_string .= '<b>'.$mod_strings['LBL_SUBJECT'].'</b> <a href="index.php?action=DetailView&module=Meetings&record='.$fields['ID'].'">'. $fields['NAME'] . '</a>';
62
        $overlib_string .= '<br>';
63
    }
64
    if(!empty($fields['DATE_START']))  {
65
        // Make it easy to select for sorting in schedule bar
66
        $data_date = $timedate->fromUser($fields['DATE_START'])->format('Y-m-d H:i:s');
67
        $overlib_string .= '<span data-field="DATE_START" data-date="'.$data_date.'">';
68
        $overlib_string .= '<b>'. $mod_strings['LBL_DATE_TIME'] . '</b> ' . $fields['DATE_START'] . ' <br>';
69
        $overlib_string .= '</span>';
70
    }
71
72
    if(isset($fields['DURATION_HOURS']) || isset($fields['DURATION_MINUTES'])) {
73
        $overlib_string .= '<b>'. $mod_strings['LBL_DURATION'] . '</b> ';
74
        if(isset($fields['DURATION_HOURS'])) {
75
            $overlib_string .= $fields['DURATION_HOURS'] . $mod_strings['LBL_HOURS_ABBREV'] . ' ';
76
        }
77
        if(isset($fields['DURATION_MINUTES'])) {
78
            $overlib_string .=  $fields['DURATION_MINUTES'] . $mod_strings['LBL_MINSS_ABBREV'];
79
        }
80
        $overlib_string .=  '<br>';
81
    }
82
    if (!empty($fields['PARENT_ID']))
83
    {
84
        $overlib_string .= "<b>". $mod_strings['LBL_RELATED_TO'] . "</b> ".
85
            "<a href='index.php?module=".$fields['PARENT_TYPE']."&action=DetailView&record=".$fields['PARENT_ID']."'>".
86
            $fields['PARENT_TYPE'] .' - '. $fields['PARENT_NAME'] . "</a>";
87
        $overlib_string .= '<br>';
88
    }
89
90
    if(!empty($fields['STATUS'])) {
91
        $overlib_string .= '<b>'. $mod_strings['LBL_STATUS'] . '</b> ' . $fields['STATUS'];
92
        $overlib_string .= '<br>';
93
    }
94
95
    if(!empty($fields['DESCRIPTION'])) {
96
        $overlib_string .= '<b>'. $mod_strings['LBL_DESCRIPTION'] . '</b> ' . substr($fields['DESCRIPTION'], 0, 300);
97
        if(strlen($fields['DESCRIPTION']) > 300) $overlib_string .= '...';
98
        $overlib_string .= '<br>';
99
    }
100
    $overlib_string .= '<br>';
101
102
    $editLink = "index.php?action=EditView&module=Meetings&record={$fields['ID']}";
103
    $viewLink = "index.php?action=DetailView&module=Meetings&record={$fields['ID']}";
104
105
    return array('fieldToAddTo' => 'NAME',
106
        'string' => $overlib_string,
107
        'editLink' => $editLink,
108
        'viewLink' => $viewLink);
109
110
}
111
112
?>