update to D 7.17

Signed-off-by: bachy <git@g-u-i.net>
This commit is contained in:
bachy
2012-12-08 11:35:42 +01:00
parent 975d758599
commit 5396b3e2b5
284 changed files with 3674 additions and 1854 deletions

View File

@@ -140,7 +140,7 @@ function taxonomy_entity_info() {
}
/**
* Entity uri callback.
* Entity URI callback.
*/
function taxonomy_term_uri($term) {
return array(
@@ -323,8 +323,8 @@ function taxonomy_menu() {
);
$items['admin/structure/taxonomy/%taxonomy_vocabulary_machine_name'] = array(
'title callback' => 'taxonomy_admin_vocabulary_title_callback',
'title arguments' => array(3),
'title callback' => 'entity_label',
'title arguments' => array('taxonomy_vocabulary', 3),
'page callback' => 'drupal_get_form',
'page arguments' => array('taxonomy_overview_terms', 3),
'access arguments' => array('administer taxonomy'),
@@ -375,7 +375,13 @@ function taxonomy_term_edit_access($term) {
}
/**
* Return the vocabulary name given the vocabulary object.
* Returns the sanitized name of a vocabulary.
*
* Deprecated. This function was previously used as a menu item title callback
* but has been replaced by using entity_label() (which does not
* sanitize the title, since the menu system does that automatically). In
* Drupal 7, use that function for title callbacks, and call check_plain()
* directly if you need a sanitized title.
*/
function taxonomy_admin_vocabulary_title_callback($vocabulary) {
return check_plain($vocabulary->name);
@@ -386,7 +392,8 @@ function taxonomy_admin_vocabulary_title_callback($vocabulary) {
*
* @param $vocabulary
* A vocabulary object with the following properties:
* - vid: The ID of the vocabulary.
* - vid: (optional) The ID of the vocabulary (omit if creating a new
* vocabulary; only use to update an existing vocabulary).
* - name: The human-readable name of the vocabulary.
* - machine_name: The machine name of the vocabulary.
* - description: (optional) The vocabulary's description.
@@ -401,7 +408,7 @@ function taxonomy_admin_vocabulary_title_callback($vocabulary) {
*
* @return
* Status constant indicating whether the vocabulary was inserted (SAVED_NEW)
* or updated(SAVED_UPDATED).
* or updated (SAVED_UPDATED).
*/
function taxonomy_vocabulary_save($vocabulary) {
// Prevent leading and trailing spaces in vocabulary names.
@@ -735,6 +742,114 @@ function taxonomy_term_delete($tid) {
}
}
/**
* Generates an array which displays a term detail page.
*
* @param term
* A taxonomy term object.
* @return
* A $page element suitable for use by drupal_page_render().
*/
function taxonomy_term_show($term) {
return taxonomy_term_view_multiple(array($term->tid => $term), 'full');
}
/**
* Constructs a drupal_render() style array from an array of loaded terms.
*
* @param $terms
* An array of taxonomy terms as returned by taxonomy_term_load_multiple().
* @param $view_mode
* View mode, e.g. 'full', 'teaser'...
* @param $weight
* An integer representing the weight of the first taxonomy term in the list.
* @param $langcode
* (optional) A language code to use for rendering. Defaults to the global
* content language of the current request.
*
* @return
* An array in the format expected by drupal_render().
*/
function taxonomy_term_view_multiple($terms, $view_mode = 'teaser', $weight = 0, $langcode = NULL) {
field_attach_prepare_view('taxonomy_term', $terms, $view_mode, $langcode);
entity_prepare_view('taxonomy_term', $terms, $langcode);
$build = array();
foreach ($terms as $term) {
$build['taxonomy_terms'][$term->tid] = taxonomy_term_view($term, $view_mode, $langcode);
$build['taxonomy_terms'][$term->tid]['#weight'] = $weight;
$weight++;
}
$build['taxonomy_terms']['#sorted'] = TRUE;
return $build;
}
/**
* Builds a structured array representing the term's content.
*
* The content built for the taxonomy term (field values, file attachments or
* other term components) will vary depending on the $view_mode parameter.
*
* Drupal core defines the following view modes for terms, with the following
* default use cases:
* - full (default): term is displayed on its own page (taxonomy/term/123)
* Contributed modules might define additional view modes, or use existing
* view modes in additional contexts.
*
* @param $term
* A taxonomy term object.
* @param $view_mode
* View mode, e.g. 'full', 'teaser'...
* @param $langcode
* (optional) A language code to use for rendering. Defaults to the global
* content language of the current request.
*/
function taxonomy_term_build_content($term, $view_mode = 'full', $langcode = NULL) {
if (!isset($langcode)) {
$langcode = $GLOBALS['language_content']->language;
}
// Remove previously built content, if exists.
$term->content = array();
// Allow modules to change the view mode.
$context = array(
'entity_type' => 'taxonomy_term',
'entity' => $term,
'langcode' => $langcode,
);
drupal_alter('entity_view_mode', $view_mode, $context);
// Add the term description if the term has one and it is visible.
$type = 'taxonomy_term';
$entity_ids = entity_extract_ids($type, $term);
$settings = field_view_mode_settings($type, $entity_ids[2]);
$fields = field_extra_fields_get_display($type, $entity_ids[2], $view_mode);
if (!empty($term->description) && isset($fields['description']) && $fields['description']['visible']) {
$term->content['description'] = array(
'#markup' => check_markup($term->description, $term->format, '', TRUE),
'#weight' => $fields['description']['weight'],
'#prefix' => '<div class="taxonomy-term-description">',
'#suffix' => '</div>',
);
}
// Build fields content.
// In case of a multiple view, taxonomy_term_view_multiple() already ran the
// 'prepare_view' step. An internal flag prevents the operation from running
// twice.
field_attach_prepare_view('taxonomy_term', array($term->tid => $term), $view_mode, $langcode);
entity_prepare_view('taxonomy_term', array($term->tid => $term), $langcode);
$term->content += field_attach_view('taxonomy_term', $term, $view_mode, $langcode);
// Allow modules to make their own additions to the taxonomy term.
module_invoke_all('taxonomy_term_view', $term, $view_mode, $langcode);
module_invoke_all('entity_view', $term, 'taxonomy_term', $view_mode, $langcode);
// Make sure the current view mode is stored if no module has already
// populated the related key.
$term->content += array('#view_mode' => $view_mode);
}
/**
* Generate an array for rendering the given term.
*
@@ -754,31 +869,23 @@ function taxonomy_term_view($term, $view_mode = 'full', $langcode = NULL) {
$langcode = $GLOBALS['language_content']->language;
}
field_attach_prepare_view('taxonomy_term', array($term->tid => $term), $view_mode, $langcode);
entity_prepare_view('taxonomy_term', array($term->tid => $term), $langcode);
// Populate $term->content with a render() array.
taxonomy_term_build_content($term, $view_mode, $langcode);
$build = $term->content;
$build = array(
// We don't need duplicate rendering info in $term->content.
unset($term->content);
$build += array(
'#theme' => 'taxonomy_term',
'#term' => $term,
'#view_mode' => $view_mode,
'#language' => $langcode,
);
$build += field_attach_view('taxonomy_term', $term, $view_mode, $langcode);
// Add term description if the term has one.
if (!empty($term->description)) {
$build['description'] = array(
'#markup' => check_markup($term->description, $term->format, '', TRUE),
'#weight' => 0,
'#prefix' => '<div class="taxonomy-term-description">',
'#suffix' => '</div>',
);
}
$build['#attached']['css'][] = drupal_get_path('module', 'taxonomy') . '/taxonomy.css';
// Allow modules to modify the structured term.
// Allow modules to modify the structured taxonomy term.
$type = 'taxonomy_term';
drupal_alter(array('taxonomy_term_view', 'entity_view'), $build, $type);
@@ -1000,8 +1107,8 @@ function taxonomy_get_tree($vid, $parent = 0, $max_depth = NULL, $load_entities
$parents = &drupal_static(__FUNCTION__ . ':parents', array());
$terms = &drupal_static(__FUNCTION__ . ':terms', array());
// We cache trees, so it's not CPU-intensive to call get_tree() on a term
// and its children, too.
// We cache trees, so it's not CPU-intensive to call taxonomy_get_tree() on a
// term and its children, too.
if (!isset($children[$vid])) {
$children[$vid] = array();
$parents[$vid] = array();
@@ -1914,7 +2021,7 @@ function taxonomy_taxonomy_term_delete($term) {
* Converts EntityFieldQuery instances on taxonomy terms that have an entity
* condition on term bundles (vocabulary machine names). Since the vocabulary
* machine name is not present in the {taxonomy_term_data} table itself, we have
* to convert the bundle condition into a proprety condition of vocabulary IDs
* to convert the bundle condition into a property condition of vocabulary IDs
* to match against {taxonomy_term_data}.vid.
*/
function taxonomy_entity_query_alter($query) {