1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
*## TbExtendedTooltipAction class file |
4
|
|
|
* |
5
|
|
|
* @author antonio ramirez <[email protected]> |
6
|
|
|
*/ |
7
|
|
|
|
8
|
|
|
/** |
9
|
|
|
*## Class TbExtendedTooltipAction |
10
|
|
|
* |
11
|
|
|
* @package booster.actions |
12
|
|
|
*/ |
13
|
|
|
class TbExtendedTooltipAction extends CAction |
14
|
|
|
{ |
15
|
|
|
/** |
16
|
|
|
* @var string the name of the table for keeping applied migration information. |
17
|
|
|
* This table will be automatically created if not exists. Defaults to 'tbl_tooltip'. |
18
|
|
|
* The table structure is: (key varchar(255) primary key, tooltip varchar(255)) |
19
|
|
|
*/ |
20
|
|
|
public $tooltipTable = 'tbl_tooltip'; |
21
|
|
|
|
22
|
|
|
/** |
23
|
|
|
* @var string the application component ID that specifies the database connection for |
24
|
|
|
* storing tooltip information. Defaults to 'db'. |
25
|
|
|
*/ |
26
|
|
|
public $connectionID = 'db'; |
27
|
|
|
|
28
|
|
|
/** |
29
|
|
|
* @var CDbConnection |
30
|
|
|
*/ |
31
|
|
|
protected $_db; |
32
|
|
|
|
33
|
|
|
/** |
34
|
|
|
* CAction run's method |
35
|
|
|
*/ |
36
|
|
|
public function run() |
37
|
|
|
{ |
38
|
|
|
$key = yii::app()->request->getParam('name'); |
39
|
|
|
$tooltip = Yii::app()->request->getParam('value'); |
40
|
|
|
if (!$key || !$tooltip) { |
41
|
|
|
throw new CHttpException(404, Yii::t('zii', 'Unauthorized request')); |
42
|
|
|
} |
43
|
|
|
|
44
|
|
|
if (!$this->getDbConnection() |
45
|
|
|
->createCommand() |
46
|
|
|
->update($this->tooltipTable, array('tooltip' => $tooltip), 'tooltip_key=:key', array(':key' => $key)) |
47
|
|
|
) { |
48
|
|
|
$this->getDbConnection() |
49
|
|
|
->createCommand() |
50
|
|
|
->insert($this->tooltipTable, array('tooltip_key' => $key, 'tooltip' => $tooltip)); |
51
|
|
|
} |
52
|
|
|
} |
53
|
|
|
|
54
|
|
|
/** |
55
|
|
|
* Returns the currently active database connection. |
56
|
|
|
* By default, the 'db' application component will be returned and activated. |
57
|
|
|
* You can call {@link setDbConnection} to switch to a different database connection. |
58
|
|
|
* Methods such as {@link insert}, {@link createTable} will use this database connection |
59
|
|
|
* to perform DB queries. |
60
|
|
|
* @throws CException |
61
|
|
|
* @return CDbConnection the currently active database connection |
62
|
|
|
*/ |
63
|
|
|
protected function getDbConnection() |
64
|
|
|
{ |
65
|
|
|
if ($this->_db === null) { |
66
|
|
|
$db = Yii::app()->getComponent('db'); |
67
|
|
|
if (!$db instanceof CDbConnection) |
|
|
|
|
68
|
|
|
throw new CException(Yii::t( 'zii', 'The "db" application component must be configured to be a CDbConnection object.' )); |
69
|
|
|
|
70
|
|
|
$this->_db = $db; |
71
|
|
|
} |
72
|
|
|
|
73
|
|
|
return $this->_db; |
74
|
|
|
} |
75
|
|
|
} |
76
|
|
|
|
This error could be the result of:
1. Missing dependencies
PHP Analyzer uses your
composer.json
file (if available) to determine the dependencies of your project and to determine all the available classes and functions. It expects thecomposer.json
to be in the root folder of your repository.Are you sure this class is defined by one of your dependencies, or did you maybe not list a dependency in either the
require
orrequire-dev
section?2. Missing use statement
PHP does not complain about undefined classes in
ìnstanceof
checks. For example, the following PHP code will work perfectly fine:If you have not tested against this specific condition, such errors might go unnoticed.