| 1 |
<?php
|
| 2 |
// $Id: nodetypeviews.pages.inc,v 1.2 2009/02/02 21:37:38 yaph Exp $
|
| 3 |
|
| 4 |
/**
|
| 5 |
* @file
|
| 6 |
* Page callback file for the Node Type Views module.
|
| 7 |
*/
|
| 8 |
|
| 9 |
/**
|
| 10 |
* Create the teaser list for the given node type
|
| 11 |
*
|
| 12 |
* @param String $type
|
| 13 |
* @return String $output - the HTML markup of the view
|
| 14 |
*/
|
| 15 |
function nodetypeviews_type_teaser_view($type) {
|
| 16 |
if (!nodetypeviews_check_type($type)) {
|
| 17 |
return '';
|
| 18 |
}
|
| 19 |
$output = '';
|
| 20 |
$result = pager_query(db_rewrite_sql("SELECT n.nid, n.created FROM {node} n WHERE n.type = '%s' AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC"), variable_get('default_nodes_main', 10), 0, NULL, $type);
|
| 21 |
while ($node = db_fetch_object($result)) {
|
| 22 |
$output .= node_view(node_load($node->nid), 1);
|
| 23 |
}
|
| 24 |
$output .= theme('pager', NULL, variable_get('default_nodes_main', 10));
|
| 25 |
drupal_add_feed(url($type .'/feed'), t('RSS - '. $type));
|
| 26 |
return $output;
|
| 27 |
}
|
| 28 |
|
| 29 |
/**
|
| 30 |
* Create an RSS feed for the given node type
|
| 31 |
*
|
| 32 |
* @param String $type
|
| 33 |
* @return String - the XML feed
|
| 34 |
*/
|
| 35 |
function nodetypeviews_type_teaser_feed($type) {
|
| 36 |
if (!nodetypeviews_check_type($type)) {
|
| 37 |
return '';
|
| 38 |
}
|
| 39 |
$result = db_query_range(db_rewrite_sql("SELECT n.nid, n.created FROM {node} n WHERE n.type = '%s' AND n.status = 1 ORDER BY n.created DESC"), $type, 0, variable_get('feed_default_items', 10));
|
| 40 |
$channel['title'] = variable_get('site_name', 'Drupal') .' '. $type;
|
| 41 |
$channel['link'] = url($type, array('absolute' => TRUE));
|
| 42 |
$channel['description'] = $term->description;
|
| 43 |
|
| 44 |
$items = array();
|
| 45 |
while ($row = db_fetch_object($result)) {
|
| 46 |
$items[] = $row->nid;
|
| 47 |
}
|
| 48 |
|
| 49 |
node_feed($items, $channel);
|
| 50 |
}
|