00001 <?php
00002
00020 function translation_views_data_alter(&$data) {
00021
00022
00023 $data['node']['table']['join']['node'] = array(
00024 'left_field' => 'tnid',
00025 'field' => 'tnid',
00026 );
00027
00028
00029 $data['node']['language'] = array(
00030 'group' => t('Content translation'),
00031 'title' => t('Language'),
00032 'help' => t('The language the content is in.'),
00033 'field' => array(
00034 'handler' => 'views_handler_field_node_language',
00035 'click sortable' => TRUE,
00036 ),
00037 'filter' => array(
00038 'handler' => 'views_handler_filter_node_language',
00039 ),
00040 'argument' => array(
00041 'handler' => 'views_handler_argument_node_language',
00042 ),
00043 'sort' => array(
00044 'handler' => 'views_handler_sort',
00045 ),
00046 );
00047
00048
00049 $data['node']['tnid'] = array(
00050 'group' => t('Content translation'),
00051 'title' => t('Translation set node ID'),
00052 'help' => t('The ID of the translation set the content belongs to.'),
00053 'field' => array(
00054 'handler' => 'views_handler_field_node',
00055 'click sortable' => TRUE,
00056 ),
00057 'filter' => array(
00058 'handler' => 'views_handler_filter_numeric',
00059 ),
00060 'argument' => array(
00061 'handler' => 'views_handler_argument_node_tnid',
00062 'name field' => 'title',
00063 'numeric' => TRUE,
00064 'validate type' => 'tnid',
00065 ),
00066 'sort' => array(
00067 'handler' => 'views_handler_sort',
00068 ),
00069 'relationship' => array(
00070 'title' => t('Source translation'),
00071 'help' => t('The source that this content was translated from.'),
00072 'base' => 'node',
00073 'base field' => 'nid',
00074 'handler' => 'views_handler_relationship',
00075 'label' => t('Source translation'),
00076 ),
00077 );
00078
00079
00080 $data['node']['translation'] = array(
00081 'group' => t('Content translation'),
00082 'title' => t('Translations'),
00083 'help' => t('Versions of content in different languages.'),
00084 'relationship' => array(
00085 'title' => t('Translations'),
00086 'help' => t('Versions of content in different languages.'),
00087 'base' => 'node',
00088 'base field' => 'tnid',
00089 'relationship table' => 'node',
00090 'relationship field' => 'nid',
00091 'handler' => 'views_handler_relationship_translation',
00092 'label' => t('Translations'),
00093 ),
00094 );
00095
00096
00097 $data['node']['source_translation'] = array(
00098 'group' => t('Content translation'),
00099 'title' => t('Source translation'),
00100 'help' => t('Content that is either untranslated or is the original version of a translation set.'),
00101 'filter' => array(
00102 'handler' => 'views_handler_filter_node_tnid',
00103 ),
00104 );
00105
00106
00107 $data['node']['child_translation'] = array(
00108 'group' => t('Node translation'),
00109 'title' => t('Child translation'),
00110 'help' => t('Content that is a translation of a source translation.'),
00111 'filter' => array(
00112 'handler' => 'views_handler_filter_node_tnid_child',
00113 ),
00114 );
00115
00116
00117 $data['node']['translate'] = array(
00118 'group' => t('Content translation'),
00119 'title' => t('Translation status'),
00120 'help' => t('The translation status of the content - whether or not the translation needs to be updated.'),
00121 'field' => array(
00122 'handler' => 'views_handler_field_boolean',
00123 'click sortable' => TRUE,
00124 ),
00125 'filter' => array(
00126 'handler' => 'views_handler_filter_boolean_operator',
00127 'label' => t('Outdated'),
00128 'type' => 'yes-no',
00129 ),
00130 'sort' => array(
00131 'handler' => 'views_handler_sort',
00132 ),
00133 );
00134
00135
00136 $data['node']['translate_node'] = array(
00137 'group' => t('Content translation'),
00138 'title' => t('Translate link'),
00139 'help' => t('Provide a simple link to translate the node.'),
00140 'field' => array(
00141 'handler' => 'views_handler_field_node_link_translate',
00142 ),
00143 );
00144
00145
00146 }
00147