Révision 4444412d
Ajouté par Julien Enselme il y a presque 10 ans
drupal7/CHANGELOG.txt | ||
---|---|---|
1 | 1 |
|
2 |
Drupal 7.28, 2014-05-08 |
|
3 |
----------------------- |
|
4 |
- Fixed a regression introduced in Drupal 7.27 that caused JavaScript to break |
|
5 |
on older browsers (such as Internet Explorer 8 and earlier) when Ajax was |
|
6 |
used. |
|
7 |
- Increased the timeout used by the Update Manager module when it fetches data |
|
8 |
from drupal.org (from 5 seconds to 30 seconds), to work around a problem |
|
9 |
which causes incomplete information about security updates to be presented to |
|
10 |
site administrators. This fix may lead to a performance slowdown on the |
|
11 |
Update Manager administration pages, when installing Drupal distributions, |
|
12 |
and (for sites that use the automated cron feature) on occasional page loads |
|
13 |
by site visitors. |
|
14 |
- Fixed the behavior of the token system's "[node:summary]" token when the body |
|
15 |
field does not have a manual summary. |
|
16 |
- Changed the behavior of db_query_temporary() so that it works on SELECT |
|
17 |
queries even when they have leading comments/whitespace. A side effect of |
|
18 |
this fix is that db_query_temporary() will now fail with an error if it is |
|
19 |
ever used on non-SELECT queries. |
|
20 |
- Added a "node_admin_filter" tag to the database query used to build the list |
|
21 |
of nodes on the content administration page, to make it easier to alter. |
|
22 |
- Made the cron queue system log any exceptions that are thrown while an item |
|
23 |
in the queue is being processed, rather than stopping the entire PHP request. |
|
24 |
- Improved screen reader support by adding an aria-live HTML attribute to file |
|
25 |
upload fields when there is an error uploading the file (minor markup |
|
26 |
change). |
|
27 |
- Made the pager on the Tracker module listing pages show the same number of |
|
28 |
items as other pagers throughout Drupal core (minor UI change). |
|
29 |
- Fixed a bug which caused caches not to be properly cleared when a file entity |
|
30 |
was saved or deleted. |
|
31 |
- Added several missing countries to the default list returned by |
|
32 |
country_get_list() (string change). |
|
33 |
- Replaced the term "weight" with "influence" in the content ranking settings |
|
34 |
for search, and added help text for administrators (string change). |
|
35 |
- Fixed untranslatable text strings in the administrative interface for the |
|
36 |
"Crop" effect provided by the Image module (minor string change). |
|
37 |
- Fixed a bug in the Taxonomy module update function introduced in Drupal 7.26 |
|
38 |
that caused memory and CPU problems on sites with very large numbers of |
|
39 |
unpublished nodes. |
|
40 |
- Numerous small bug fixes. |
|
41 |
- Numerous API documentation improvements. |
|
42 |
- Additional automated test coverage. |
|
43 |
|
|
2 | 44 |
Drupal 7.27, 2014-04-16 |
3 | 45 |
---------------------- |
4 | 46 |
- Fixed security issues (information disclosure). See SA-CORE-2014-002. |
drupal7/INSTALL.mysql.txt | ||
---|---|---|
20 | 20 |
Again, you will be asked for the 'username' database password. At the MySQL |
21 | 21 |
prompt, enter the following command: |
22 | 22 |
|
23 |
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER |
|
24 |
ON databasename.* |
|
23 |
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
|
|
24 |
CREATE TEMPORARY TABLES ON databasename.*
|
|
25 | 25 |
TO 'username'@'localhost' IDENTIFIED BY 'password'; |
26 | 26 |
|
27 |
where |
|
27 |
where:
|
|
28 | 28 |
|
29 | 29 |
'databasename' is the name of your database |
30 |
'username@localhost' is the username of your MySQL account |
|
30 |
'username' is the username of your MySQL account |
|
31 |
'localhost' is the web server host where Drupal is installed |
|
31 | 32 |
'password' is the password required for that username |
32 | 33 |
|
33 |
Note: Unless your database user has all of the privileges listed above, you will |
|
34 |
not be able to run Drupal. |
|
34 |
Note: Unless the database user/host combination for your Drupal installation |
|
35 |
has all of the privileges listed above (except possibly CREATE TEMPORARY TABLES, |
|
36 |
which is currently only used by Drupal core automated tests and some |
|
37 |
contributed modules), you will not be able to install or run Drupal. |
|
35 | 38 |
|
36 | 39 |
If successful, MySQL will reply with: |
37 | 40 |
|
drupal7/README.txt | ||
---|---|---|
71 | 71 |
sites that were installed with that specific profile. |
72 | 72 |
|
73 | 73 |
More about installation profiles and distributions: |
74 |
* Read about the difference between installation profiles and distributions: |
|
75 |
http://drupal.org/node/1089736 |
|
76 |
* Download contributed installation profiles and distributions: |
|
77 |
http://drupal.org/project/distributions |
|
78 |
* Develop your own installation profile or distribution: |
|
79 |
http://drupal.org/developing/distributions |
|
74 |
* Read about the difference between installation profiles and distributions:
|
|
75 |
http://drupal.org/node/1089736
|
|
76 |
* Download contributed installation profiles and distributions:
|
|
77 |
http://drupal.org/project/distributions
|
|
78 |
* Develop your own installation profile or distribution:
|
|
79 |
http://drupal.org/developing/distributions
|
|
80 | 80 |
|
81 | 81 |
APPEARANCE |
82 | 82 |
---------- |
drupal7/includes/bootstrap.inc | ||
---|---|---|
8 | 8 |
/** |
9 | 9 |
* The current system version. |
10 | 10 |
*/ |
11 |
define('VERSION', '7.27');
|
|
11 |
define('VERSION', '7.28');
|
|
12 | 12 |
|
13 | 13 |
/** |
14 | 14 |
* Core API compatibility. |
drupal7/includes/common.inc | ||
---|---|---|
458 | 458 |
$result = array(); |
459 | 459 |
if (!empty($query)) { |
460 | 460 |
foreach (explode('&', $query) as $param) { |
461 |
$param = explode('=', $param); |
|
461 |
$param = explode('=', $param, 2);
|
|
462 | 462 |
$result[$param[0]] = isset($param[1]) ? rawurldecode($param[1]) : ''; |
463 | 463 |
} |
464 | 464 |
} |
... | ... | |
1426 | 1426 |
* valid UTF-8. |
1427 | 1427 |
* |
1428 | 1428 |
* @see drupal_validate_utf8() |
1429 |
* @ingroup sanitization |
|
1430 | 1429 |
*/ |
1431 | 1430 |
function filter_xss($string, $allowed_tags = array('a', 'em', 'strong', 'cite', 'blockquote', 'code', 'ul', 'ol', 'li', 'dl', 'dt', 'dd')) { |
1432 | 1431 |
// Only operate on valid UTF-8 strings. This is necessary to prevent cross |
... | ... | |
5067 | 5066 |
* @param $value |
5068 | 5067 |
* An additional value to base the token on. |
5069 | 5068 |
* |
5069 |
* The generated token is based on the session ID of the current user. Normally, |
|
5070 |
* anonymous users do not have a session, so the generated token will be |
|
5071 |
* different on every page request. To generate a token for users without a |
|
5072 |
* session, manually start a session prior to calling this function. |
|
5073 |
* |
|
5070 | 5074 |
* @return string |
5071 | 5075 |
* A 43-character URL-safe token for validation, based on the user session ID, |
5072 | 5076 |
* the hash salt provided from drupal_get_hash_salt(), and the |
... | ... | |
5290 | 5294 |
$end = time() + (isset($info['time']) ? $info['time'] : 15); |
5291 | 5295 |
$queue = DrupalQueue::get($queue_name); |
5292 | 5296 |
while (time() < $end && ($item = $queue->claimItem())) { |
5293 |
$function($item->data); |
|
5294 |
$queue->deleteItem($item); |
|
5297 |
try { |
|
5298 |
$function($item->data); |
|
5299 |
$queue->deleteItem($item); |
|
5300 |
} |
|
5301 |
catch (Exception $e) { |
|
5302 |
// In case of exception log it and leave the item in the queue |
|
5303 |
// to be processed again later. |
|
5304 |
watchdog_exception('cron', $e); |
|
5305 |
} |
|
5295 | 5306 |
} |
5296 | 5307 |
} |
5297 | 5308 |
// Restore the user. |
... | ... | |
5946 | 5957 |
/** |
5947 | 5958 |
* Renders children of an element and concatenates them. |
5948 | 5959 |
* |
5949 |
* This renders all children of an element using drupal_render() and then |
|
5950 |
* joins them together into a single string. |
|
5951 |
* |
|
5952 |
* @param $element |
|
5960 |
* @param array $element |
|
5953 | 5961 |
* The structured array whose children shall be rendered. |
5954 |
* @param $children_keys |
|
5955 |
* If the keys of the element's children are already known, they can be passed |
|
5956 |
* in to save another run of element_children(). |
|
5962 |
* @param array $children_keys |
|
5963 |
* (optional) If the keys of the element's children are already known, they |
|
5964 |
* can be passed in to save another run of element_children(). |
|
5965 |
* |
|
5966 |
* @return string |
|
5967 |
* The rendered HTML of all children of the element. |
|
5968 |
|
|
5969 |
* @see drupal_render() |
|
5957 | 5970 |
*/ |
5958 | 5971 |
function drupal_render_children(&$element, $children_keys = NULL) { |
5959 | 5972 |
if ($children_keys === NULL) { |
... | ... | |
7827 | 7840 |
} |
7828 | 7841 |
|
7829 | 7842 |
/** |
7830 |
* Get the entity controller class for an entity type. |
|
7843 |
* Gets the entity controller for an entity type. |
|
7844 |
* |
|
7845 |
* @return DrupalEntityControllerInterface |
|
7846 |
* The entity controller object for the specified entity type. |
|
7831 | 7847 |
*/ |
7832 | 7848 |
function entity_get_controller($entity_type) { |
7833 | 7849 |
$controllers = &drupal_static(__FUNCTION__, array()); |
drupal7/includes/database/database.inc | ||
---|---|---|
28 | 28 |
* Most Drupal database SELECT queries are performed by a call to db_query() or |
29 | 29 |
* db_query_range(). Module authors should also consider using the PagerDefault |
30 | 30 |
* Extender for queries that return results that need to be presented on |
31 |
* multiple pages, and the Tablesort Extender for generating appropriate queries |
|
32 |
* for sortable tables. |
|
31 |
* multiple pages (see https://drupal.org/node/508796), and the TableSort |
|
32 |
* Extender for generating appropriate queries for sortable tables |
|
33 |
* (see https://drupal.org/node/1848372). |
|
33 | 34 |
* |
34 | 35 |
* For example, one might wish to return a list of the most recent 10 nodes |
35 | 36 |
* authored by a given user. Instead of directly issuing the SQL query |
36 | 37 |
* @code |
37 |
* SELECT n.nid, n.title, n.created FROM node n WHERE n.uid = $uid LIMIT 0, 10; |
|
38 |
* SELECT n.nid, n.title, n.created FROM node n WHERE n.uid = $uid |
|
39 |
* ORDER BY n.created DESC LIMIT 0, 10; |
|
38 | 40 |
* @endcode |
39 | 41 |
* one would instead call the Drupal functions: |
40 | 42 |
* @code |
41 | 43 |
* $result = db_query_range('SELECT n.nid, n.title, n.created |
42 |
* FROM {node} n WHERE n.uid = :uid', 0, 10, array(':uid' => $uid)); |
|
44 |
* FROM {node} n WHERE n.uid = :uid |
|
45 |
* ORDER BY n.created DESC', 0, 10, array(':uid' => $uid)); |
|
43 | 46 |
* foreach ($result as $record) { |
44 | 47 |
* // Perform operations on $record->title, etc. here. |
45 | 48 |
* } |
... | ... | |
2380 | 2383 |
} |
2381 | 2384 |
|
2382 | 2385 |
/** |
2383 |
* Executes a query string and saves the result set to a temporary table. |
|
2386 |
* Executes a SELECT query string and saves the result set to a temporary table.
|
|
2384 | 2387 |
* |
2385 | 2388 |
* The execution of the query string happens against the active database. |
2386 | 2389 |
* |
2387 | 2390 |
* @param $query |
2388 |
* The prepared statement query to run. Although it will accept both named and
|
|
2389 |
* unnamed placeholders, named placeholders are strongly preferred as they are
|
|
2390 |
* more self-documenting. |
|
2391 |
* The prepared SELECT statement query to run. Although it will accept both
|
|
2392 |
* named and unnamed placeholders, named placeholders are strongly preferred
|
|
2393 |
* as they are more self-documenting.
|
|
2391 | 2394 |
* @param $args |
2392 | 2395 |
* An array of values to substitute into the query. If the query uses named |
2393 | 2396 |
* placeholders, this is an associative array in any order. If the query uses |
drupal7/includes/database/mysql/database.inc | ||
---|---|---|
90 | 90 |
|
91 | 91 |
public function queryTemporary($query, array $args = array(), array $options = array()) { |
92 | 92 |
$tablename = $this->generateTemporaryTableName(); |
93 |
$this->query(preg_replace('/^SELECT/i', 'CREATE TEMPORARY TABLE {' . $tablename . '} Engine=MEMORY SELECT', $query), $args, $options);
|
|
93 |
$this->query('CREATE TEMPORARY TABLE {' . $tablename . '} Engine=MEMORY ' . $query, $args, $options);
|
|
94 | 94 |
return $tablename; |
95 | 95 |
} |
96 | 96 |
|
drupal7/includes/database/pgsql/database.inc | ||
---|---|---|
146 | 146 |
|
147 | 147 |
public function queryTemporary($query, array $args = array(), array $options = array()) { |
148 | 148 |
$tablename = $this->generateTemporaryTableName(); |
149 |
$this->query(preg_replace('/^SELECT/i', 'CREATE TEMPORARY TABLE {' . $tablename . '} AS SELECT', $query), $args, $options);
|
|
149 |
$this->query('CREATE TEMPORARY TABLE {' . $tablename . '} AS ' . $query, $args, $options);
|
|
150 | 150 |
return $tablename; |
151 | 151 |
} |
152 | 152 |
|
drupal7/includes/database/select.inc | ||
---|---|---|
596 | 596 |
|
597 | 597 |
public function hasAnyTag() { |
598 | 598 |
$args = func_get_args(); |
599 |
return call_user_func_array(array($this->query, 'hasAnyTags'), $args);
|
|
599 |
return call_user_func_array(array($this->query, 'hasAnyTag'), $args); |
|
600 | 600 |
} |
601 | 601 |
|
602 | 602 |
public function addMetaData($key, $object) { |
drupal7/includes/database/sqlite/database.inc | ||
---|---|---|
250 | 250 |
$prefixes[$tablename] = ''; |
251 | 251 |
$this->setPrefix($prefixes); |
252 | 252 |
|
253 |
$this->query(preg_replace('/^SELECT/i', 'CREATE TEMPORARY TABLE ' . $tablename . ' AS SELECT', $query), $args, $options);
|
|
253 |
$this->query('CREATE TEMPORARY TABLE ' . $tablename . ' AS ' . $query, $args, $options);
|
|
254 | 254 |
return $tablename; |
255 | 255 |
} |
256 | 256 |
|
drupal7/includes/entity.inc | ||
---|---|---|
360 | 360 |
// This ensures the same behavior whether loading from memory or database. |
361 | 361 |
if ($conditions) { |
362 | 362 |
foreach ($entities as $entity) { |
363 |
$entity_values = (array) $entity; |
|
364 |
if (array_diff_assoc($conditions, $entity_values)) { |
|
365 |
unset($entities[$entity->{$this->idKey}]); |
|
363 |
// Iterate over all conditions and compare them to the entity |
|
364 |
// properties. We cannot use array_diff_assoc() here since the |
|
365 |
// conditions can be nested arrays, too. |
|
366 |
foreach ($conditions as $property_name => $condition) { |
|
367 |
if (is_array($condition)) { |
|
368 |
// Multiple condition values for one property are treated as OR |
|
369 |
// operation: only if the value is not at all in the condition array |
|
370 |
// we remove the entity. |
|
371 |
if (!in_array($entity->{$property_name}, $condition)) { |
|
372 |
unset($entities[$entity->{$this->idKey}]); |
|
373 |
continue 2; |
|
374 |
} |
|
375 |
} |
|
376 |
elseif ($condition != $entity->{$property_name}) { |
|
377 |
unset($entities[$entity->{$this->idKey}]); |
|
378 |
continue 2; |
|
379 |
} |
|
366 | 380 |
} |
367 | 381 |
} |
368 | 382 |
} |
drupal7/includes/file.inc | ||
---|---|---|
621 | 621 |
module_invoke_all('entity_update', $file, 'file'); |
622 | 622 |
} |
623 | 623 |
|
624 |
// Clear internal properties. |
|
624 | 625 |
unset($file->original); |
626 |
// Clear the static loading cache. |
|
627 |
entity_get_controller('file')->resetCache(array($file->fid)); |
|
628 |
|
|
625 | 629 |
return $file; |
626 | 630 |
} |
627 | 631 |
|
... | ... | |
1293 | 1297 |
if (file_unmanaged_delete($file->uri)) { |
1294 | 1298 |
db_delete('file_managed')->condition('fid', $file->fid)->execute(); |
1295 | 1299 |
db_delete('file_usage')->condition('fid', $file->fid)->execute(); |
1300 |
entity_get_controller('file')->resetCache(); |
|
1296 | 1301 |
return TRUE; |
1297 | 1302 |
} |
1298 | 1303 |
return FALSE; |
... | ... | |
1402 | 1407 |
* Temporary files are periodically cleaned. To make the file a permanent file, |
1403 | 1408 |
* assign the status and use file_save() to save the changes. |
1404 | 1409 |
* |
1405 |
* @param $source |
|
1406 |
* A string specifying the filepath or URI of the uploaded file to save. |
|
1410 |
* @param $form_field_name |
|
1411 |
* A string that is the associative array key of the upload form element in |
|
1412 |
* the form array. |
|
1407 | 1413 |
* @param $validators |
1408 | 1414 |
* An optional, associative array of callback functions used to validate the |
1409 | 1415 |
* file. See file_validate() for a full discussion of the array format. |
... | ... | |
1414 | 1420 |
* (Beware: this is not safe and should only be allowed for trusted users, if |
1415 | 1421 |
* at all). |
1416 | 1422 |
* @param $destination |
1417 |
* A string containing the URI $source should be copied to.
|
|
1418 |
* This must be a stream wrapper URI. If this value is omitted, Drupal's
|
|
1419 |
* temporary files scheme will be used ("temporary://").
|
|
1423 |
* A string containing the URI that the file should be copied to. This must
|
|
1424 |
* be a stream wrapper URI. If this value is omitted, Drupal's temporary
|
|
1425 |
* files scheme will be used ("temporary://"). |
|
1420 | 1426 |
* @param $replace |
1421 | 1427 |
* Replace behavior when the destination file already exists: |
1422 | 1428 |
* - FILE_EXISTS_REPLACE: Replace the existing file. |
... | ... | |
1434 | 1440 |
* - source: Path to the file before it is moved. |
1435 | 1441 |
* - destination: Path to the file after it is moved (same as 'uri'). |
1436 | 1442 |
*/ |
1437 |
function file_save_upload($source, $validators = array(), $destination = FALSE, $replace = FILE_EXISTS_RENAME) {
|
|
1443 |
function file_save_upload($form_field_name, $validators = array(), $destination = FALSE, $replace = FILE_EXISTS_RENAME) {
|
|
1438 | 1444 |
global $user; |
1439 | 1445 |
static $upload_cache; |
1440 | 1446 |
|
1441 | 1447 |
// Return cached objects without processing since the file will have |
1442 | 1448 |
// already been processed and the paths in _FILES will be invalid. |
1443 |
if (isset($upload_cache[$source])) {
|
|
1444 |
return $upload_cache[$source];
|
|
1449 |
if (isset($upload_cache[$form_field_name])) {
|
|
1450 |
return $upload_cache[$form_field_name];
|
|
1445 | 1451 |
} |
1446 | 1452 |
|
1447 | 1453 |
// Make sure there's an upload to process. |
1448 |
if (empty($_FILES['files']['name'][$source])) {
|
|
1454 |
if (empty($_FILES['files']['name'][$form_field_name])) {
|
|
1449 | 1455 |
return NULL; |
1450 | 1456 |
} |
1451 | 1457 |
|
1452 | 1458 |
// Check for file upload errors and return FALSE if a lower level system |
1453 | 1459 |
// error occurred. For a complete list of errors: |
1454 | 1460 |
// See http://php.net/manual/features.file-upload.errors.php. |
1455 |
switch ($_FILES['files']['error'][$source]) {
|
|
1461 |
switch ($_FILES['files']['error'][$form_field_name]) {
|
|
1456 | 1462 |
case UPLOAD_ERR_INI_SIZE: |
1457 | 1463 |
case UPLOAD_ERR_FORM_SIZE: |
1458 |
drupal_set_message(t('The file %file could not be saved, because it exceeds %maxsize, the maximum allowed size for uploads.', array('%file' => $_FILES['files']['name'][$source], '%maxsize' => format_size(file_upload_max_size()))), 'error');
|
|
1464 |
drupal_set_message(t('The file %file could not be saved, because it exceeds %maxsize, the maximum allowed size for uploads.', array('%file' => $_FILES['files']['name'][$form_field_name], '%maxsize' => format_size(file_upload_max_size()))), 'error');
|
|
1459 | 1465 |
return FALSE; |
1460 | 1466 |
|
1461 | 1467 |
case UPLOAD_ERR_PARTIAL: |
1462 | 1468 |
case UPLOAD_ERR_NO_FILE: |
1463 |
drupal_set_message(t('The file %file could not be saved, because the upload did not complete.', array('%file' => $_FILES['files']['name'][$source])), 'error');
|
|
1469 |
drupal_set_message(t('The file %file could not be saved, because the upload did not complete.', array('%file' => $_FILES['files']['name'][$form_field_name])), 'error');
|
|
1464 | 1470 |
return FALSE; |
1465 | 1471 |
|
1466 | 1472 |
case UPLOAD_ERR_OK: |
1467 | 1473 |
// Final check that this is a valid upload, if it isn't, use the |
1468 | 1474 |
// default error handler. |
1469 |
if (is_uploaded_file($_FILES['files']['tmp_name'][$source])) {
|
|
1475 |
if (is_uploaded_file($_FILES['files']['tmp_name'][$form_field_name])) {
|
|
1470 | 1476 |
break; |
1471 | 1477 |
} |
1472 | 1478 |
|
1473 | 1479 |
// Unknown error |
1474 | 1480 |
default: |
1475 |
drupal_set_message(t('The file %file could not be saved. An unknown error has occurred.', array('%file' => $_FILES['files']['name'][$source])), 'error');
|
|
1481 |
drupal_set_message(t('The file %file could not be saved. An unknown error has occurred.', array('%file' => $_FILES['files']['name'][$form_field_name])), 'error');
|
|
1476 | 1482 |
return FALSE; |
1477 | 1483 |
} |
1478 | 1484 |
|
... | ... | |
1480 | 1486 |
$file = new stdClass(); |
1481 | 1487 |
$file->uid = $user->uid; |
1482 | 1488 |
$file->status = 0; |
1483 |
$file->filename = trim(drupal_basename($_FILES['files']['name'][$source]), '.');
|
|
1484 |
$file->uri = $_FILES['files']['tmp_name'][$source];
|
|
1489 |
$file->filename = trim(drupal_basename($_FILES['files']['name'][$form_field_name]), '.');
|
|
1490 |
$file->uri = $_FILES['files']['tmp_name'][$form_field_name];
|
|
1485 | 1491 |
$file->filemime = file_get_mimetype($file->filename); |
1486 |
$file->filesize = $_FILES['files']['size'][$source];
|
|
1492 |
$file->filesize = $_FILES['files']['size'][$form_field_name];
|
|
1487 | 1493 |
|
1488 | 1494 |
$extensions = ''; |
1489 | 1495 |
if (isset($validators['file_validate_extensions'])) { |
... | ... | |
1540 | 1546 |
return FALSE; |
1541 | 1547 |
} |
1542 | 1548 |
|
1543 |
$file->source = $source;
|
|
1549 |
$file->source = $form_field_name;
|
|
1544 | 1550 |
// A URI may already have a trailing slash or look like "public://". |
1545 | 1551 |
if (substr($destination, -1) != '/') { |
1546 | 1552 |
$destination .= '/'; |
... | ... | |
1549 | 1555 |
// If file_destination() returns FALSE then $replace == FILE_EXISTS_ERROR and |
1550 | 1556 |
// there's an existing file so we need to bail. |
1551 | 1557 |
if ($file->destination === FALSE) { |
1552 |
drupal_set_message(t('The file %source could not be uploaded because a file by that name already exists in the destination %directory.', array('%source' => $source, '%directory' => $destination)), 'error');
|
|
1558 |
drupal_set_message(t('The file %source could not be uploaded because a file by that name already exists in the destination %directory.', array('%source' => $form_field_name, '%directory' => $destination)), 'error');
|
|
1553 | 1559 |
return FALSE; |
1554 | 1560 |
} |
1555 | 1561 |
|
... | ... | |
1568 | 1574 |
else { |
1569 | 1575 |
$message .= ' ' . array_pop($errors); |
1570 | 1576 |
} |
1571 |
form_set_error($source, $message);
|
|
1577 |
form_set_error($form_field_name, $message);
|
|
1572 | 1578 |
return FALSE; |
1573 | 1579 |
} |
1574 | 1580 |
|
... | ... | |
1576 | 1582 |
// directory. This overcomes open_basedir restrictions for future file |
1577 | 1583 |
// operations. |
1578 | 1584 |
$file->uri = $file->destination; |
1579 |
if (!drupal_move_uploaded_file($_FILES['files']['tmp_name'][$source], $file->uri)) {
|
|
1580 |
form_set_error($source, t('File upload error. Could not move uploaded file.'));
|
|
1585 |
if (!drupal_move_uploaded_file($_FILES['files']['tmp_name'][$form_field_name], $file->uri)) {
|
|
1586 |
form_set_error($form_field_name, t('File upload error. Could not move uploaded file.'));
|
|
1581 | 1587 |
watchdog('file', 'Upload error. Could not move uploaded file %file to destination %destination.', array('%file' => $file->filename, '%destination' => $file->uri)); |
1582 | 1588 |
return FALSE; |
1583 | 1589 |
} |
... | ... | |
1597 | 1603 |
// If we made it this far it's safe to record this file in the database. |
1598 | 1604 |
if ($file = file_save($file)) { |
1599 | 1605 |
// Add file to the cache. |
1600 |
$upload_cache[$source] = $file;
|
|
1606 |
$upload_cache[$form_field_name] = $file;
|
|
1601 | 1607 |
return $file; |
1602 | 1608 |
} |
1603 | 1609 |
return FALSE; |
drupal7/includes/form.inc | ||
---|---|---|
15 | 15 |
* reference the form builder function using \@see. For examples, of this see |
16 | 16 |
* system_modules_uninstall() or user_pass(), the latter of which has the |
17 | 17 |
* following in its doxygen documentation: |
18 |
* |
|
19 |
* \@ingroup forms |
|
20 |
* \@see user_pass_validate(). |
|
21 |
* \@see user_pass_submit(). |
|
18 |
* - \@ingroup forms |
|
19 |
* - \@see user_pass_validate() |
|
20 |
* - \@see user_pass_submit() |
|
22 | 21 |
* |
23 | 22 |
* @} |
24 | 23 |
*/ |
... | ... | |
3101 | 3100 |
* @param $variables |
3102 | 3101 |
* An associative array containing: |
3103 | 3102 |
* - element: An associative array containing the properties of the element. |
3104 |
* Properties used: #title, #value, #return_value, #description, #required, |
|
3105 |
* #attributes, #checked. |
|
3103 |
* Properties used: #id, #name, #attributes, #checked, #return_value. |
|
3106 | 3104 |
* |
3107 | 3105 |
* @ingroup themeable |
3108 | 3106 |
*/ |
... | ... | |
4294 | 4292 |
* returns any user input in the 'results' or 'message' keys of $context, |
4295 | 4293 |
* it must also sanitize them first. |
4296 | 4294 |
* |
4297 |
* Sample batch operations:
|
|
4295 |
* Sample callback_batch_operation():
|
|
4298 | 4296 |
* @code |
4299 | 4297 |
* // Simple and artificial: load a node of a given type for a given user |
4300 | 4298 |
* function my_function_1($uid, $type, &$context) { |
... | ... | |
4346 | 4344 |
* } |
4347 | 4345 |
* @endcode |
4348 | 4346 |
* |
4349 |
* Sample 'finished' callback:
|
|
4347 |
* Sample callback_batch_finished():
|
|
4350 | 4348 |
* @code |
4351 | 4349 |
* function batch_test_finished($success, $results, $operations) { |
4352 | 4350 |
* // The 'success' parameter means no fatal PHP errors were detected. All |
... | ... | |
4385 | 4383 |
* @param $batch_definition |
4386 | 4384 |
* An associative array defining the batch, with the following elements (all |
4387 | 4385 |
* are optional except as noted): |
4388 |
* - operations: (required) Array of function calls to be performed. |
|
4386 |
* - operations: (required) Array of operations to be performed, where each |
|
4387 |
* item is an array consisting of the name of an implementation of |
|
4388 |
* callback_batch_operation() and an array of parameter. |
|
4389 | 4389 |
* Example: |
4390 | 4390 |
* @code |
4391 | 4391 |
* array( |
4392 |
* array('my_function_1', array($arg1)),
|
|
4393 |
* array('my_function_2', array($arg2_1, $arg2_2)),
|
|
4392 |
* array('callback_batch_operation_1', array($arg1)),
|
|
4393 |
* array('callback_batch_operation_2', array($arg2_1, $arg2_2)),
|
|
4394 | 4394 |
* ) |
4395 | 4395 |
* @endcode |
4396 | 4396 |
* - title: A safe, translated string to use as the title for the progress |
... | ... | |
4402 | 4402 |
* @elapsed. Defaults to t('Completed @current of @total.'). |
4403 | 4403 |
* - error_message: Message displayed if an error occurred while processing |
4404 | 4404 |
* the batch. Defaults to t('An error has occurred.'). |
4405 |
* - finished: Name of a function to be executed after the batch has
|
|
4406 |
* completed. This should be used to perform any result massaging that may
|
|
4407 |
* be needed, and possibly save data in $_SESSION for display after final
|
|
4408 |
* page redirection. |
|
4405 |
* - finished: Name of an implementation of callback_batch_finished(). This is
|
|
4406 |
* executed after the batch has completed. This should be used to perform
|
|
4407 |
* any result massaging that may be needed, and possibly save data in
|
|
4408 |
* $_SESSION for display after final page redirection.
|
|
4409 | 4409 |
* - file: Path to the file containing the definitions of the 'operations' and |
4410 | 4410 |
* 'finished' functions, for instance if they don't reside in the main |
4411 | 4411 |
* .module file. The path should be relative to base_path(), and thus should |
drupal7/includes/iso.inc | ||
---|---|---|
53 | 53 |
'BM' => $t('Bermuda'), |
54 | 54 |
'BN' => $t('Brunei'), |
55 | 55 |
'BO' => $t('Bolivia'), |
56 |
'BQ' => $t('Caribbean Netherlands'), |
|
56 | 57 |
'BR' => $t('Brazil'), |
57 | 58 |
'BS' => $t('Bahamas'), |
58 | 59 |
'BT' => $t('Bhutan'), |
... | ... | |
74 | 75 |
'CO' => $t('Colombia'), |
75 | 76 |
'CR' => $t('Costa Rica'), |
76 | 77 |
'CU' => $t('Cuba'), |
77 |
'CW' => $t('Curaçao'), |
|
78 | 78 |
'CV' => $t('Cape Verde'), |
79 |
'CW' => $t('Curaçao'), |
|
79 | 80 |
'CX' => $t('Christmas Island'), |
80 | 81 |
'CY' => $t('Cyprus'), |
81 | 82 |
'CZ' => $t('Czech Republic'), |
... | ... | |
230 | 231 |
'SN' => $t('Senegal'), |
231 | 232 |
'SO' => $t('Somalia'), |
232 | 233 |
'SR' => $t('Suriname'), |
234 |
'SS' => $t('South Sudan'), |
|
233 | 235 |
'ST' => $t('Sao Tome and Principe'), |
234 | 236 |
'SV' => $t('El Salvador'), |
237 |
'SX' => $t('Sint Maarten'), |
|
235 | 238 |
'SY' => $t('Syria'), |
236 | 239 |
'SZ' => $t('Swaziland'), |
237 | 240 |
'TC' => $t('Turks and Caicos Islands'), |
drupal7/includes/menu.inc | ||
---|---|---|
1000 | 1000 |
} |
1001 | 1001 |
|
1002 | 1002 |
/** |
1003 |
* Returns a rendered menu tree.
|
|
1003 |
* Returns an output structure for rendering a menu tree.
|
|
1004 | 1004 |
* |
1005 | 1005 |
* The menu item's LI element is given one of the following classes: |
1006 | 1006 |
* - expanded: The menu item is showing its submenu. |
drupal7/includes/path.inc | ||
---|---|---|
560 | 560 |
elseif ($dynamic_allowed && preg_match('/\/\%/', $path)) { |
561 | 561 |
// Path is dynamic (ie 'user/%'), so check directly against menu_router table. |
562 | 562 |
if ($item = db_query("SELECT * FROM {menu_router} where path = :path", array(':path' => $path))->fetchAssoc()) { |
563 |
$item['link_path'] = $form_item['link_path'];
|
|
564 |
$item['link_title'] = $form_item['link_title'];
|
|
563 |
$item['link_path'] = $item['path'];
|
|
564 |
$item['link_title'] = $item['title'];
|
|
565 | 565 |
$item['external'] = FALSE; |
566 | 566 |
$item['options'] = ''; |
567 | 567 |
_menu_link_translate($item); |
drupal7/includes/registry.inc | ||
---|---|---|
10 | 10 |
* @{ |
11 | 11 |
* The code registry engine. |
12 | 12 |
* |
13 |
* Drupal maintains an internal registry of all functions or classes in the
|
|
13 |
* Drupal maintains an internal registry of all interfaces or classes in the
|
|
14 | 14 |
* system, allowing it to lazy-load code files as needed (reducing the amount |
15 | 15 |
* of code that must be parsed on each request). |
16 | 16 |
*/ |
... | ... | |
120 | 120 |
} |
121 | 121 |
|
122 | 122 |
/** |
123 |
* Parse all files that have changed since the registry was last built, and save their function and class listings. |
|
123 |
* Parse all changed files and save their interface and class listings. |
|
124 |
* |
|
125 |
* Parse all files that have changed since the registry was last built, and save |
|
126 |
* their interface and class listings. |
|
124 | 127 |
* |
125 | 128 |
* @param $files |
126 | 129 |
* The list of files to check and parse. |
... | ... | |
149 | 152 |
} |
150 | 153 |
|
151 | 154 |
/** |
152 |
* Parse a file and save its function and class listings.
|
|
155 |
* Parse a file and save its interface and class listings.
|
|
153 | 156 |
* |
154 | 157 |
* @param $filename |
155 | 158 |
* Name of the file we are going to parse. |
drupal7/misc/ajax.js | ||
---|---|---|
622 | 622 |
* Command to update a form's build ID. |
623 | 623 |
*/ |
624 | 624 |
updateBuildId: function(ajax, response, status) { |
625 |
$('input[name="form_build_id"][value="' + response.old + '"]').val(response.new);
|
|
625 |
$('input[name="form_build_id"][value="' + response['old'] + '"]').val(response['new']);
|
|
626 | 626 |
} |
627 | 627 |
}; |
628 | 628 |
|
drupal7/modules/aggregator/aggregator.info | ||
---|---|---|
7 | 7 |
configure = admin/config/services/aggregator/settings |
8 | 8 |
stylesheets[all][] = aggregator.css |
9 | 9 |
|
10 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
11 |
version = "7.27"
|
|
10 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
11 |
version = "7.28"
|
|
12 | 12 |
project = "drupal" |
13 |
datestamp = "1397687057"
|
|
13 |
datestamp = "1399522731"
|
|
14 | 14 |
|
drupal7/modules/aggregator/aggregator.install | ||
---|---|---|
260 | 260 |
'primary key' => array('iid'), |
261 | 261 |
'indexes' => array( |
262 | 262 |
'fid' => array('fid'), |
263 |
'timestamp' => array('timestamp'), |
|
263 | 264 |
), |
264 | 265 |
'foreign keys' => array( |
265 | 266 |
'aggregator_feed' => array( |
... | ... | |
325 | 326 |
db_add_index('aggregator_feed', 'url', array(array('url', 255))); |
326 | 327 |
} |
327 | 328 |
|
329 |
/** |
|
330 |
* Add index on timestamp. |
|
331 |
*/ |
|
332 |
function aggregator_update_7004() { |
|
333 |
if (!db_index_exists('aggregator_item', 'timestamp')) { |
|
334 |
db_add_index('aggregator_item', 'timestamp', array('timestamp')); |
|
335 |
} |
|
336 |
} |
|
337 |
|
|
328 | 338 |
/** |
329 | 339 |
* @} End of "addtogroup updates-7.x-extra" |
330 | 340 |
*/ |
drupal7/modules/aggregator/aggregator.test | ||
---|---|---|
288 | 288 |
return $GLOBALS['base_url'] . '/' . drupal_get_path('module', 'aggregator') . '/tests/aggregator_test_atom.xml'; |
289 | 289 |
} |
290 | 290 |
|
291 |
function getHtmlEntitiesSample() { |
|
292 |
return $GLOBALS['base_url'] . '/' . drupal_get_path('module', 'aggregator') . '/tests/aggregator_test_title_entities.xml'; |
|
293 |
} |
|
294 |
|
|
291 | 295 |
/** |
292 | 296 |
* Creates sample article nodes. |
293 | 297 |
* |
... | ... | |
1016 | 1020 |
$this->assertText('Some text.'); |
1017 | 1021 |
$this->assertEqual('urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a', db_query('SELECT guid FROM {aggregator_item} WHERE link = :link', array(':link' => 'http://example.org/2003/12/13/atom03'))->fetchField(), 'Atom entry id element is parsed correctly.'); |
1018 | 1022 |
} |
1023 |
|
|
1024 |
/** |
|
1025 |
* Tests a feed that uses HTML entities in item titles. |
|
1026 |
*/ |
|
1027 |
function testHtmlEntitiesSample() { |
|
1028 |
$feed = $this->createFeed($this->getHtmlEntitiesSample()); |
|
1029 |
aggregator_refresh($feed); |
|
1030 |
$this->drupalGet('aggregator/sources/' . $feed->fid); |
|
1031 |
$this->assertResponse(200, format_string('Feed %name exists.', array('%name' => $feed->title))); |
|
1032 |
$this->assertRaw("Quote" Amp&"); |
|
1033 |
} |
|
1019 | 1034 |
} |
drupal7/modules/aggregator/tests/aggregator_test.info | ||
---|---|---|
5 | 5 |
core = 7.x |
6 | 6 |
hidden = TRUE |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
9 |
version = "7.27"
|
|
8 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
9 |
version = "7.28"
|
|
10 | 10 |
project = "drupal" |
11 |
datestamp = "1397687057"
|
|
11 |
datestamp = "1399522731"
|
|
12 | 12 |
|
drupal7/modules/aggregator/tests/aggregator_test_title_entities.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<rss version="0.91"> |
|
3 |
<channel> |
|
4 |
<title>Example with Entities</title> |
|
5 |
<link>http://example.com</link> |
|
6 |
<description>Example RSS Feed With HTML Entities in Title</description> |
|
7 |
<language>en-us</language> |
|
8 |
<item> |
|
9 |
<title>Quote" Amp&</title> |
|
10 |
<link>http://example.com/example-turns-one</link> |
|
11 |
<description>Some text.</description> |
|
12 |
</item> |
|
13 |
</channel> |
|
14 |
</rss> |
drupal7/modules/block/block.api.php | ||
---|---|---|
87 | 87 |
* and any value provided can be modified by a user on the block |
88 | 88 |
* configuration screen. |
89 | 89 |
* - pages: (optional) See 'visibility' above. A string that contains one or |
90 |
* more page paths separated by '\n', '\r', or '\r\n' when 'visibility' is
|
|
91 |
* set to BLOCK_VISIBILITY_NOTLISTED or BLOCK_VISIBILITY_LISTED, or custom
|
|
92 |
* PHP code when 'visibility' is set to BLOCK_VISIBILITY_PHP. Paths may use
|
|
93 |
* '*' as a wildcard (matching any number of characters); '<front>'
|
|
94 |
* designates the site's front page. For BLOCK_VISIBILITY_PHP, the PHP
|
|
95 |
* code's return value should be TRUE if the block is to be made visible or
|
|
96 |
* FALSE if the block should not be visible. |
|
90 |
* more page paths separated by "\n", "\r", or "\r\n" when 'visibility' is
|
|
91 |
* set to BLOCK_VISIBILITY_NOTLISTED or BLOCK_VISIBILITY_LISTED (example:
|
|
92 |
* "<front>\nnode/1"), or custom PHP code when 'visibility' is set to
|
|
93 |
* BLOCK_VISIBILITY_PHP. Paths may use '*' as a wildcard (matching any
|
|
94 |
* number of characters); '<front>' designates the site's front page. For
|
|
95 |
* BLOCK_VISIBILITY_PHP, the PHP code's return value should be TRUE if the
|
|
96 |
* block is to be made visible or FALSE if the block should not be visible.
|
|
97 | 97 |
* |
98 | 98 |
* For a detailed usage example, see block_example.module. |
99 | 99 |
* |
drupal7/modules/block/block.info | ||
---|---|---|
6 | 6 |
files[] = block.test |
7 | 7 |
configure = admin/structure/block |
8 | 8 |
|
9 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
10 |
version = "7.27"
|
|
9 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
10 |
version = "7.28"
|
|
11 | 11 |
project = "drupal" |
12 |
datestamp = "1397687057"
|
|
12 |
datestamp = "1399522731"
|
|
13 | 13 |
|
drupal7/modules/block/tests/block_test.info | ||
---|---|---|
5 | 5 |
core = 7.x |
6 | 6 |
hidden = TRUE |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
9 |
version = "7.27"
|
|
8 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
9 |
version = "7.28"
|
|
10 | 10 |
project = "drupal" |
11 |
datestamp = "1397687057"
|
|
11 |
datestamp = "1399522731"
|
|
12 | 12 |
|
drupal7/modules/block/tests/themes/block_test_theme/block_test_theme.info | ||
---|---|---|
13 | 13 |
regions[highlighted] = Highlighted |
14 | 14 |
regions[help] = Help |
15 | 15 |
|
16 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
17 |
version = "7.27"
|
|
16 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
17 |
version = "7.28"
|
|
18 | 18 |
project = "drupal" |
19 |
datestamp = "1397687057"
|
|
19 |
datestamp = "1399522731"
|
|
20 | 20 |
|
drupal7/modules/blog/blog.info | ||
---|---|---|
5 | 5 |
core = 7.x |
6 | 6 |
files[] = blog.test |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
9 |
version = "7.27"
|
|
8 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
9 |
version = "7.28"
|
|
10 | 10 |
project = "drupal" |
11 |
datestamp = "1397687057"
|
|
11 |
datestamp = "1399522731"
|
|
12 | 12 |
|
drupal7/modules/book/book.info | ||
---|---|---|
7 | 7 |
configure = admin/content/book/settings |
8 | 8 |
stylesheets[all][] = book.css |
9 | 9 |
|
10 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
11 |
version = "7.27"
|
|
10 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
11 |
version = "7.28"
|
|
12 | 12 |
project = "drupal" |
13 |
datestamp = "1397687057"
|
|
13 |
datestamp = "1399522731"
|
|
14 | 14 |
|
drupal7/modules/color/color.info | ||
---|---|---|
5 | 5 |
core = 7.x |
6 | 6 |
files[] = color.test |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
9 |
version = "7.27"
|
|
8 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
9 |
version = "7.28"
|
|
10 | 10 |
project = "drupal" |
11 |
datestamp = "1397687057"
|
|
11 |
datestamp = "1399522731"
|
|
12 | 12 |
|
drupal7/modules/comment/comment.info | ||
---|---|---|
9 | 9 |
configure = admin/content/comment |
10 | 10 |
stylesheets[all][] = comment.css |
11 | 11 |
|
12 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
13 |
version = "7.27"
|
|
12 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
13 |
version = "7.28"
|
|
14 | 14 |
project = "drupal" |
15 |
datestamp = "1397687057"
|
|
15 |
datestamp = "1399522731"
|
|
16 | 16 |
|
drupal7/modules/comment/comment.module | ||
---|---|---|
2304 | 2304 |
$variables['signature'] = $comment->signature; |
2305 | 2305 |
|
2306 | 2306 |
$uri = entity_uri('comment', $comment); |
2307 |
$uri['options'] += array('attributes' => array('class' => 'permalink', 'rel' => 'bookmark'));
|
|
2307 |
$uri['options'] += array('attributes' => array('class' => array('permalink'), 'rel' => 'bookmark'));
|
|
2308 | 2308 |
|
2309 | 2309 |
$variables['title'] = l($comment->subject, $uri['path'], $uri['options']); |
2310 | 2310 |
$variables['permalink'] = l(t('Permalink'), $uri['path'], $uri['options']); |
drupal7/modules/contact/contact.info | ||
---|---|---|
6 | 6 |
files[] = contact.test |
7 | 7 |
configure = admin/structure/contact |
8 | 8 |
|
9 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
10 |
version = "7.27"
|
|
9 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
10 |
version = "7.28"
|
|
11 | 11 |
project = "drupal" |
12 |
datestamp = "1397687057"
|
|
12 |
datestamp = "1399522731"
|
|
13 | 13 |
|
drupal7/modules/contextual/contextual.info | ||
---|---|---|
5 | 5 |
core = 7.x |
6 | 6 |
files[] = contextual.test |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
9 |
version = "7.27"
|
|
8 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
9 |
version = "7.28"
|
|
10 | 10 |
project = "drupal" |
11 |
datestamp = "1397687057"
|
|
11 |
datestamp = "1399522731"
|
|
12 | 12 |
|
drupal7/modules/dashboard/dashboard.info | ||
---|---|---|
7 | 7 |
dependencies[] = block |
8 | 8 |
configure = admin/dashboard/customize |
9 | 9 |
|
10 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
11 |
version = "7.27"
|
|
10 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
11 |
version = "7.28"
|
|
12 | 12 |
project = "drupal" |
13 |
datestamp = "1397687057"
|
|
13 |
datestamp = "1399522731"
|
|
14 | 14 |
|
drupal7/modules/dblog/dblog.info | ||
---|---|---|
5 | 5 |
core = 7.x |
6 | 6 |
files[] = dblog.test |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
9 |
version = "7.27"
|
|
8 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
9 |
version = "7.28"
|
|
10 | 10 |
project = "drupal" |
11 |
datestamp = "1397687057"
|
|
11 |
datestamp = "1399522731"
|
|
12 | 12 |
|
drupal7/modules/field/field.api.php | ||
---|---|---|
1 | 1 |
<?php |
2 |
/** |
|
3 |
* @file |
|
4 |
* Hooks provided by the Field module. |
|
5 |
*/ |
|
2 | 6 |
|
3 | 7 |
/** |
4 | 8 |
* @addtogroup hooks |
... | ... | |
37 | 41 |
* - delete: (optional) String containing markup (normally a link) used as the |
38 | 42 |
* element's 'delete' operation in the administration interface. Only for |
39 | 43 |
* 'form' context. |
44 |
* |
|
45 |
* @ingroup field_types |
|
40 | 46 |
*/ |
41 | 47 |
function hook_field_extra_fields() { |
42 | 48 |
$extra['node']['poll'] = array( |
... | ... | |
76 | 82 |
* The associative array of 'pseudo-field' components. |
77 | 83 |
* |
78 | 84 |
* @see hook_field_extra_fields() |
85 |
* |
|
86 |
* @ingroup field_types |
|
79 | 87 |
*/ |
80 | 88 |
function hook_field_extra_fields_alter(&$info) { |
81 | 89 |
// Force node title to always be at the top of the list by default. |
... | ... | |
656 | 664 |
* The source entity from which field values are being copied. |
657 | 665 |
* @param $source_langcode |
658 | 666 |
* The source language from which field values are being copied. |
667 |
* |
|
668 |
* @ingroup field_language |
|
659 | 669 |
*/ |
660 | 670 |
function hook_field_prepare_translation($entity_type, $entity, $field, $instance, $langcode, &$items, $source_entity, $source_langcode) { |
661 | 671 |
// If the translating user is not permitted to use the assigned text format, |
... | ... | |
1250 | 1260 |
*/ |
1251 | 1261 |
|
1252 | 1262 |
/** |
1253 |
* @ingroup field_attach
|
|
1263 |
* @addtogroup field_attach
|
|
1254 | 1264 |
* @{ |
1255 | 1265 |
*/ |
1256 | 1266 |
|
... | ... | |
1312 | 1322 |
* This hook is invoked after the field module has performed the operation. |
1313 | 1323 |
* |
1314 | 1324 |
* See field_attach_validate() for details and arguments. |
1325 |
* |
|
1326 |
* @param $entity_type |
|
1327 |
* The type of $entity; e.g., 'node' or 'user'. |
|
1328 |
* @param $entity |
|
1329 |
* The entity with fields to validate. |
|
1330 |
* @param array $errors |
|
1331 |
* An associative array of errors keyed by field_name, language, delta. |
|
1315 | 1332 |
*/ |
1316 | 1333 |
function hook_field_attach_validate($entity_type, $entity, &$errors) { |
1317 | 1334 |
// @todo Needs function body. |
... | ... | |
1516 | 1533 |
* - entity_type: The type of the entity to be displayed. |
1517 | 1534 |
* - entity: The entity with fields to render. |
1518 | 1535 |
* - langcode: The language code $entity has to be displayed in. |
1536 |
* |
|
1537 |
* @ingroup field_language |
|
1519 | 1538 |
*/ |
1520 | 1539 |
function hook_field_language_alter(&$display_language, $context) { |
1521 | 1540 |
// Do not apply core language fallback rules if they are disabled or if Locale |
... | ... | |
1537 | 1556 |
* An associative array containing: |
1538 | 1557 |
* - entity_type: The type of the entity the field is attached to. |
1539 | 1558 |
* - field: A field data structure. |
1559 |
* |
|
1560 |
* @ingroup field_language |
|
1540 | 1561 |
*/ |
1541 | 1562 |
function hook_field_available_languages_alter(&$languages, $context) { |
1542 | 1563 |
// Add an unavailable language. |
... | ... | |
1587 | 1608 |
* @param $entity_type |
1588 | 1609 |
* The type of entity; for example, 'node' or 'user'. |
1589 | 1610 |
* @param $bundle |
1590 |
* The bundle that was just deleted. |
|
1611 |
* The name of the bundle that was just deleted.
|
|
1591 | 1612 |
* @param $instances |
1592 | 1613 |
* An array of all instances that existed for the bundle before it was |
1593 | 1614 |
* deleted. |
... | ... | |
1602 | 1623 |
} |
1603 | 1624 |
|
1604 | 1625 |
/** |
1605 |
* @} End of "defgroup field_attach".
|
|
1626 |
* @} End of "addtogroup field_attach".
|
|
1606 | 1627 |
*/ |
1607 | 1628 |
|
1608 | 1629 |
/** |
... | ... | |
2262 | 2283 |
} |
2263 | 2284 |
} |
2264 | 2285 |
|
2286 |
/** |
|
2287 |
* @} End of "addtogroup field_storage |
|
2288 |
*/ |
|
2289 |
|
|
2265 | 2290 |
/** |
2266 | 2291 |
* Returns the maximum weight for the entity components handled by the module. |
2267 | 2292 |
* |
... | ... | |
2275 | 2300 |
* @param $context |
2276 | 2301 |
* The context for which the maximum weight is requested. Either 'form', or |
2277 | 2302 |
* the name of a view mode. |
2303 |
* |
|
2278 | 2304 |
* @return |
2279 | 2305 |
* The maximum weight of the entity's components, or NULL if no components |
2280 | 2306 |
* were found. |
2307 |
* |
|
2308 |
* @ingroup field_info |
|
2281 | 2309 |
*/ |
2282 | 2310 |
function hook_field_info_max_weight($entity_type, $bundle, $context) { |
2283 | 2311 |
$weights = array(); |
... | ... | |
2289 | 2317 |
return $weights ? max($weights) : NULL; |
2290 | 2318 |
} |
2291 | 2319 |
|
2320 |
/** |
|
2321 |
* @addtogroup field_types |
|
2322 |
* @{ |
|
2323 |
*/ |
|
2324 |
|
|
2292 | 2325 |
/** |
2293 | 2326 |
* Alters the display settings of a field before it gets displayed. |
2294 | 2327 |
* |
... | ... | |
2355 | 2388 |
} |
2356 | 2389 |
} |
2357 | 2390 |
|
2391 |
/** |
|
2392 |
* @} End of "addtogroup field_types |
|
2393 |
*/ |
|
2394 |
|
|
2358 | 2395 |
/** |
2359 | 2396 |
* Alters the display settings of pseudo-fields before an entity is displayed. |
2360 | 2397 |
* |
... | ... | |
2370 | 2407 |
* - entity_type: The entity type; e.g., 'node' or 'user'. |
2371 | 2408 |
* - bundle: The bundle name. |
2372 | 2409 |
* - view_mode: The view mode, e.g. 'full', 'teaser'... |
2410 |
* |
|
2411 |
* @ingroup field_types |
|
2373 | 2412 |
*/ |
2374 | 2413 |
function hook_field_extra_fields_display_alter(&$displays, $context) { |
2375 | 2414 |
if ($context['entity_type'] == 'taxonomy_term' && $context['view_mode'] == 'full') { |
... | ... | |
2399 | 2438 |
* - instance: The instance of the field. |
2400 | 2439 |
* |
2401 | 2440 |
* @see hook_field_widget_properties_alter() |
2441 |
* |
|
2442 |
* @ingroup field_widget |
|
2402 | 2443 |
*/ |
2403 | 2444 |
function hook_field_widget_properties_ENTITY_TYPE_alter(&$widget, $context) { |
2404 | 2445 |
// Change a widget's type according to the time of day. |
... | ... | |
2409 | 2450 |
} |
2410 | 2451 |
} |
2411 | 2452 |
|
2412 |
/** |
|
2413 |
* @} End of "addtogroup field_storage". |
|
2414 |
*/ |
|
2415 |
|
|
2416 | 2453 |
/** |
2417 | 2454 |
* @addtogroup field_crud |
2418 | 2455 |
* @{ |
... | ... | |
2608 | 2645 |
* |
2609 | 2646 |
* @param $field |
2610 | 2647 |
* The field being purged. |
2648 |
* |
|
2649 |
* @ingroup field_storage |
|
2611 | 2650 |
*/ |
2612 | 2651 |
function hook_field_storage_purge_field($field) { |
2613 | 2652 |
$table_name = _field_sql_storage_tablename($field); |
... | ... | |
2625 | 2664 |
* |
2626 | 2665 |
* @param $instance |
2627 | 2666 |
* The instance being purged. |
2667 |
* |
|
2668 |
* @ingroup field_storage |
|
2628 | 2669 |
*/ |
2629 | 2670 |
function hook_field_storage_purge_field_instance($instance) { |
2630 | 2671 |
db_delete('my_module_field_instance_info') |
... | ... | |
2646 | 2687 |
* The (possibly deleted) field whose data is being purged. |
2647 | 2688 |
* @param $instance |
2648 | 2689 |
* The deleted field instance whose data is being purged. |
2690 |
* |
|
2691 |
* @ingroup field_storage |
|
2649 | 2692 |
*/ |
2650 | 2693 |
function hook_field_storage_purge($entity_type, $entity, $field, $instance) { |
2651 | 2694 |
list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity); |
... | ... | |
2685 | 2728 |
* |
2686 | 2729 |
* @return |
2687 | 2730 |
* TRUE if the operation is allowed, and FALSE if the operation is denied. |
2731 |
* |
|
2732 |
* @ingroup field_types |
|
2688 | 2733 |
*/ |
2689 | 2734 |
function hook_field_access($op, $field, $entity_type, $entity, $account) { |
2690 | 2735 |
if ($field['field_name'] == 'field_of_interest' && $op == 'edit') { |
drupal7/modules/field/field.info | ||
---|---|---|
11 | 11 |
required = TRUE |
12 | 12 |
stylesheets[all][] = theme/field.css |
13 | 13 |
|
14 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
15 |
version = "7.27"
|
|
14 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
15 |
version = "7.28"
|
|
16 | 16 |
project = "drupal" |
17 |
datestamp = "1397687057"
|
|
17 |
datestamp = "1399522731"
|
|
18 | 18 |
|
drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info | ||
---|---|---|
7 | 7 |
files[] = field_sql_storage.test |
8 | 8 |
required = TRUE |
9 | 9 |
|
10 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
11 |
version = "7.27"
|
|
10 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
11 |
version = "7.28"
|
|
12 | 12 |
project = "drupal" |
13 |
datestamp = "1397687057"
|
|
13 |
datestamp = "1399522731"
|
|
14 | 14 |
|
drupal7/modules/field/modules/list/list.info | ||
---|---|---|
7 | 7 |
dependencies[] = options |
8 | 8 |
files[] = tests/list.test |
9 | 9 |
|
10 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
11 |
version = "7.27"
|
|
10 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
11 |
version = "7.28"
|
|
12 | 12 |
project = "drupal" |
13 |
datestamp = "1397687057"
|
|
13 |
datestamp = "1399522731"
|
|
14 | 14 |
|
drupal7/modules/field/modules/list/tests/list_test.info | ||
---|---|---|
5 | 5 |
version = VERSION |
6 | 6 |
hidden = TRUE |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
9 |
version = "7.27"
|
|
8 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
9 |
version = "7.28"
|
|
10 | 10 |
project = "drupal" |
11 |
datestamp = "1397687057"
|
|
11 |
datestamp = "1399522731"
|
|
12 | 12 |
|
drupal7/modules/field/modules/number/number.info | ||
---|---|---|
6 | 6 |
dependencies[] = field |
7 | 7 |
files[] = number.test |
8 | 8 |
|
9 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
10 |
version = "7.27"
|
|
9 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
10 |
version = "7.28"
|
|
11 | 11 |
project = "drupal" |
12 |
datestamp = "1397687057"
|
|
12 |
datestamp = "1399522731"
|
|
13 | 13 |
|
drupal7/modules/field/modules/options/options.info | ||
---|---|---|
6 | 6 |
dependencies[] = field |
7 | 7 |
files[] = options.test |
8 | 8 |
|
9 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
10 |
version = "7.27"
|
|
9 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
10 |
version = "7.28"
|
|
11 | 11 |
project = "drupal" |
12 |
datestamp = "1397687057"
|
|
12 |
datestamp = "1399522731"
|
|
13 | 13 |
|
drupal7/modules/field/modules/text/text.info | ||
---|---|---|
7 | 7 |
files[] = text.test |
8 | 8 |
required = TRUE |
9 | 9 |
|
10 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
11 |
version = "7.27"
|
|
10 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
11 |
version = "7.28"
|
|
12 | 12 |
project = "drupal" |
13 |
datestamp = "1397687057"
|
|
13 |
datestamp = "1399522731"
|
|
14 | 14 |
|
drupal7/modules/field/tests/field_test.info | ||
---|---|---|
6 | 6 |
version = VERSION |
7 | 7 |
hidden = TRUE |
8 | 8 |
|
9 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
10 |
version = "7.27"
|
|
9 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
10 |
version = "7.28"
|
|
11 | 11 |
project = "drupal" |
12 |
datestamp = "1397687057"
|
|
12 |
datestamp = "1399522731"
|
|
13 | 13 |
|
drupal7/modules/field_ui/field_ui.admin.inc | ||
---|---|---|
936 | 936 |
$field_label_options = array( |
937 | 937 |
'above' => t('Above'), |
938 | 938 |
'inline' => t('Inline'), |
939 |
'hidden' => t('<Hidden>'),
|
|
939 |
'hidden' => '<' . t('Hidden') . '>',
|
|
940 | 940 |
); |
941 | 941 |
$extra_visibility_options = array( |
942 | 942 |
'visible' => t('Visible'), |
... | ... | |
992 | 992 |
); |
993 | 993 |
|
994 | 994 |
$formatter_options = field_ui_formatter_options($field['type']); |
995 |
$formatter_options['hidden'] = t('<Hidden>');
|
|
995 |
$formatter_options['hidden'] = '<' . t('Hidden') . '>';
|
|
996 | 996 |
$table[$name]['format'] = array( |
997 | 997 |
'type' => array( |
998 | 998 |
'#type' => 'select', |
drupal7/modules/field_ui/field_ui.info | ||
---|---|---|
6 | 6 |
dependencies[] = field |
7 | 7 |
files[] = field_ui.test |
8 | 8 |
|
9 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
10 |
version = "7.27"
|
|
9 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
10 |
version = "7.28"
|
|
11 | 11 |
project = "drupal" |
12 |
datestamp = "1397687057"
|
|
12 |
datestamp = "1399522731"
|
|
13 | 13 |
|
drupal7/modules/file/file.field.inc | ||
---|---|---|
768 | 768 |
$langcode = $element['#language']; |
769 | 769 |
$parents = $element['#field_parents']; |
770 | 770 |
|
771 |
$submitted_values = drupal_array_get_nested_value($form_state['values'], array_slice($button['#array_parents'], 0, -2));
|
|
771 |
$submitted_values = drupal_array_get_nested_value($form_state['values'], array_slice($button['#parents'], 0, -2)); |
|
772 | 772 |
foreach ($submitted_values as $delta => $submitted_value) { |
773 | 773 |
if (!$submitted_value['fid']) { |
774 | 774 |
unset($submitted_values[$delta]); |
... | ... | |
779 | 779 |
$submitted_values = array_values($submitted_values); |
780 | 780 |
|
781 | 781 |
// Update form_state values. |
782 |
drupal_array_set_nested_value($form_state['values'], array_slice($button['#array_parents'], 0, -2), $submitted_values);
|
|
782 |
drupal_array_set_nested_value($form_state['values'], array_slice($button['#parents'], 0, -2), $submitted_values); |
|
783 | 783 |
|
784 | 784 |
// Update items. |
785 | 785 |
$field_state = field_form_get_state($parents, $field_name, $langcode, $form_state); |
drupal7/modules/file/file.info | ||
---|---|---|
6 | 6 |
dependencies[] = field |
7 | 7 |
files[] = tests/file.test |
8 | 8 |
|
9 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
10 |
version = "7.27"
|
|
9 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
10 |
version = "7.28"
|
|
11 | 11 |
project = "drupal" |
12 |
datestamp = "1397687057"
|
|
12 |
datestamp = "1399522731"
|
|
13 | 13 |
|
drupal7/modules/file/file.js | ||
---|---|---|
83 | 83 |
'%filename': this.value.replace('C:\\fakepath\\', ''), |
84 | 84 |
'%extensions': extensionPattern.replace(/\|/g, ', ') |
85 | 85 |
}); |
86 |
$(this).closest('div.form-managed-file').prepend('<div class="messages error file-upload-js-error">' + error + '</div>'); |
|
86 |
$(this).closest('div.form-managed-file').prepend('<div class="messages error file-upload-js-error" aria-live="polite">' + error + '</div>');
|
|
87 | 87 |
this.value = ''; |
88 | 88 |
return false; |
89 | 89 |
} |
drupal7/modules/file/tests/file_module_test.info | ||
---|---|---|
5 | 5 |
core = 7.x |
6 | 6 |
hidden = TRUE |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
9 |
version = "7.27"
|
|
8 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
9 |
version = "7.28"
|
|
10 | 10 |
project = "drupal" |
11 |
datestamp = "1397687057"
|
|
11 |
datestamp = "1399522731"
|
|
12 | 12 |
|
drupal7/modules/filter/filter.info | ||
---|---|---|
7 | 7 |
required = TRUE |
8 | 8 |
configure = admin/config/content/formats |
9 | 9 |
|
10 |
; Information added by Drupal.org packaging script on 2014-04-16
|
|
11 |
version = "7.27"
|
|
10 |
; Information added by Drupal.org packaging script on 2014-05-08
|
|
11 |
version = "7.28"
|
|
12 | 12 |
project = "drupal" |
13 |
datestamp = "1397687057"
|
|
13 |
datestamp = "1399522731"
|
|
14 | 14 |
|
drupal7/modules/filter/filter.module | ||
---|---|---|
739 | 739 |
* @param $text |
740 | 740 |
* The text to be filtered. |
741 | 741 |
* @param $format_id |
742 |
* (optional) The format ID of the text to be filtered. If no format is
|
|
743 |
* assigned, the fallback format will be used. Defaults to NULL.
|
|
742 |
* (optional) The machine name of the filter format to be used to filter the
|
|
743 |
* text. Defaults to the fallback format. See filter_fallback_format().
|
|
744 | 744 |
* @param $langcode |
745 | 745 |
* (optional) The language code of the text to be filtered, e.g. 'en' for |
746 | 746 |
* English. This allows filters to be language aware so language specific |
Formats disponibles : Unified diff
Update drupal 7.27 -> 7.28