123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- /**
- * @file
- * Node translation handler for the entity translation module.
- */
- /**
- * Node translation handler.
- *
- * Overrides default behaviours for Node properties.
- */
- class EntityTranslationNodeHandler extends EntityTranslationDefaultHandler {
- public function __construct($entity_type, $entity_info, $entity) {
- parent::__construct('node', $entity_info, $entity);
- }
- /**
- * @see EntityTranslationDefaultHandler::isRevision()
- */
- public function isRevision() {
- return !empty($this->entity->revision);
- }
- /**
- * @see EntityTranslationDefaultHandler::getAccess()
- */
- public function getAccess($op) {
- return node_access($op, $this->entity);
- }
- /**
- * @see EntityTranslationDefaultHandler::getTranslationAccess()
- */
- public function getTranslationAccess($langcode) {
- return user_access('bypass node access') || parent::getTranslationAccess($langcode);
- }
- /**
- * Convert the translation update status fieldset into a vartical tab.
- */
- public function entityForm(&$form, &$form_state) {
- parent::entityForm($form, $form_state);
- // Move the translation fieldset to a vertical tab.
- if (isset($form['translation'])) {
- $form['translation'] += array(
- '#group' => 'additional_settings',
- '#weight' => 100,
- '#attached' => array(
- 'js' => array(drupal_get_path('module', 'entity_translation') . '/entity_translation.node-form.js'),
- ),
- );
- if (!$this->isTranslationForm()) {
- $form['translation']['name']['#access'] = FALSE;
- $form['translation']['created']['#access'] = FALSE;
- }
- }
- // Path aliases natively support multilingual values.
- if (isset($form['path'])) {
- $form['path']['#multilingual'] = TRUE;
- }
- }
- /**
- * @see EntityTranslationDefaultHandler::menuForm()
- */
- protected function menuForm(&$form, &$form_state) {
- entity_translation_i18n_menu_form($form, $form_state);
- }
- /**
- * @see EntityTranslationDefaultHandler::entityFormLanguageWidgetSubmit()
- */
- function entityFormLanguageWidgetSubmit($form, &$form_state) {
- $this->updateFormLanguage($form_state);
- }
- /**
- * @see EntityTranslationDefaultHandler::entityFormSubmit()
- */
- public function entityFormSubmit($form, &$form_state) {
- if (!isset($form_state['values']['translation'])) {
- // Always publish the original values when we have no translations.
- $form_state['values']['translation'] = array('status' => TRUE);
- }
- $values = &$form_state['values']['translation'];
- if (!$this->isTranslationForm()) {
- // Inherit entity authoring information for the original values.
- $values['name'] = $form_state['values']['name'];
- if (!empty($form_state['values']['date'])) {
- $values['created'] = $form_state['values']['date'];
- }
- }
- parent::entityFormSubmit($form, $form_state);
- }
- /**
- * @see EntityTranslationDefaultHandler::entityFormTitle()
- */
- protected function entityFormTitle() {
- $type_name = node_type_get_name($this->entity);
- return t('<em>Edit @type</em> @title', array('@type' => $type_name, '@title' => $this->getLabel()));
- }
- /**
- * @see EntityTranslationDefaultHandler::getStatus()
- */
- protected function getStatus() {
- return (boolean) $this->entity->status;
- }
- }
|