diff --git a/modules/node.views.inc b/modules/node.views.inc index 70abd1d..ce1bcc3 100644 --- a/modules/node.views.inc +++ b/modules/node.views.inc @@ -262,6 +262,15 @@ function node_views_data() { ), ); + $data['node']['readmore_node']['moved to'] = array('views_entity_node', 'readmore_node'); + $data['views_entity_node']['readmore_node'] = array( + 'field' => array( + 'title' => t('Read more link'), + 'help' => t('Provide a read more link to the content.'), + 'handler' => 'views_handler_field_node_readmore', + ), + ); + $data['node']['path'] = array( 'field' => array( 'title' => t('Path'), diff --git a/modules/node/views_handler_field_node_readmore.inc b/modules/node/views_handler_field_node_readmore.inc new file mode 100644 index 0000000..0785c8f --- /dev/null +++ b/modules/node/views_handler_field_node_readmore.inc @@ -0,0 +1,42 @@ + FALSE); + $form['alter']['external'] = array('#access' => FALSE); + $form['alter']['alt'] = array('#access' => FALSE); + $form['alter']['rel'] = array('#access' => FALSE); + } + + function render($values) { + if ($entity = $this->get_value($values)) { + return $this->render_link($entity, $values); + } + } + + function render_link($node, $values) { + if (node_access('view', $node)) { + $this->options['alter']['make_link'] = TRUE; + $this->options['alter']['path'] = "node/$node->nid"; + $node_title_stripped = strip_tags($node->title); + $text = t('Read more about @title', array('@title' => $node_title_stripped)); + $this->options['alter']['alt'] = $node_title_stripped; + $this->options['alter']['rel'] = 'tag'; + return $text; + } + } +} diff --git a/views.info b/views.info index 24bf497..e8115bf 100644 --- a/views.info +++ b/views.info @@ -122,6 +122,7 @@ files[] = modules/node/views_handler_field_node.inc files[] = modules/node/views_handler_field_node_link.inc files[] = modules/node/views_handler_field_node_link_delete.inc files[] = modules/node/views_handler_field_node_link_edit.inc +files[] = modules/node/views_handler_field_node_readmore.inc files[] = modules/node/views_handler_field_node_revision.inc files[] = modules/node/views_handler_field_node_revision_link.inc files[] = modules/node/views_handler_field_node_revision_link_delete.inc