Révision c304a780
Ajouté par Assos Assos il y a environ 6 ans
drupal7/sites/all/modules/ctools/includes/object-cache.inc | ||
---|---|---|
43 | 43 |
} |
44 | 44 |
|
45 | 45 |
if (!array_key_exists($key, $cache)) { |
46 |
$data = db_query('SELECT * FROM {ctools_object_cache} WHERE sid = :session_id AND obj = :object AND name = :name', array(':session_id' => $sid, ':object' => $obj, ':name' => $name)) |
|
47 |
->fetchObject(); |
|
46 |
$data = db_query('SELECT * FROM {ctools_object_cache} WHERE sid = :session_id AND obj = :object AND name = :name', array( |
|
47 |
':session_id' => $sid, |
|
48 |
':object' => $obj, |
|
49 |
':name' => md5($name), |
|
50 |
))->fetchObject(); |
|
48 | 51 |
if ($data) { |
49 | 52 |
$cache[$key] = unserialize($data->data); |
50 | 53 |
} |
... | ... | |
84 | 87 |
->fields(array( |
85 | 88 |
'sid' => $sid, |
86 | 89 |
'obj' => $obj, |
87 |
'name' => $name,
|
|
90 |
'name' => md5($name),
|
|
88 | 91 |
'data' => serialize($cache), |
89 | 92 |
'updated' => REQUEST_TIME, |
90 | 93 |
)) |
... | ... | |
104 | 107 |
* defaults to session_id(). |
105 | 108 |
*/ |
106 | 109 |
function ctools_object_cache_clear($obj, $name, $sid = NULL) { |
107 |
|
|
108 | 110 |
if (!$sid) { |
109 | 111 |
$sid = session_id(); |
110 | 112 |
} |
... | ... | |
112 | 114 |
db_delete('ctools_object_cache') |
113 | 115 |
->condition('sid', $sid) |
114 | 116 |
->condition('obj', $obj) |
115 |
->condition('name', $name)
|
|
117 |
->condition('name', md5($name))
|
|
116 | 118 |
->execute(); |
117 | 119 |
// Ensure the static cache is emptied of this obj:name set. |
118 | 120 |
drupal_static_reset('ctools_object_cache_get'); |
... | ... | |
142 | 144 |
$sid = session_id(); |
143 | 145 |
} |
144 | 146 |
|
145 |
return db_query('SELECT s.uid, c.updated FROM {ctools_object_cache} c INNER JOIN {sessions} s ON c.sid = s.sid WHERE s.sid <> :session_id AND c.obj = :obj AND c.name = :name ORDER BY c.updated ASC', array(':session_id' => $sid, ':obj' => $obj, ':name' => $name)) |
|
146 |
->fetchObject(); |
|
147 |
return db_query('SELECT s.uid, c.updated FROM {ctools_object_cache} c INNER JOIN {sessions} s ON c.sid = s.sid WHERE s.sid <> :session_id AND c.obj = :obj AND c.name = :name ORDER BY c.updated ASC', array( |
|
148 |
':session_id' => $sid, |
|
149 |
':obj' => $obj, |
|
150 |
':name' => md5($name), |
|
151 |
))->fetchObject(); |
|
147 | 152 |
} |
148 | 153 |
|
149 | 154 |
/** |
... | ... | |
162 | 167 |
* An array of objects containing the UID and updated date for each name found. |
163 | 168 |
*/ |
164 | 169 |
function ctools_object_cache_test_objects($obj, $names) { |
170 |
array_walk($names, 'md5'); |
|
165 | 171 |
return db_query("SELECT c.name, s.uid, c.updated FROM {ctools_object_cache} c INNER JOIN {sessions} s ON c.sid = s.sid WHERE c.obj = :obj AND c.name IN (:names) ORDER BY c.updated ASC", array(':obj' => $obj, ':names' => $names)) |
166 | 172 |
->fetchAllAssoc('name'); |
167 | 173 |
} |
... | ... | |
180 | 186 |
function ctools_object_cache_clear_all($obj, $name) { |
181 | 187 |
db_delete('ctools_object_cache') |
182 | 188 |
->condition('obj', $obj) |
183 |
->condition('name', $name)
|
|
189 |
->condition('name', md5($name))
|
|
184 | 190 |
->execute(); |
185 | 191 |
// Ensure the static cache is emptied of this obj:name set. |
186 | 192 |
$cache = &drupal_static('ctools_object_cache_get', array()); |
Formats disponibles : Unified diff
Weekly update of contrib modules