webmaster@1
|
1 <?php |
webmaster@1
|
2 // $Id: blog.pages.inc,v 1.6.2.1 2008/02/08 21:15:12 goba Exp $ |
webmaster@1
|
3 |
webmaster@1
|
4 /** |
webmaster@1
|
5 * @file |
webmaster@1
|
6 * Page callback file for the blog module. |
webmaster@1
|
7 */ |
webmaster@1
|
8 |
webmaster@1
|
9 /** |
webmaster@1
|
10 * Menu callback; displays a Drupal page containing recent blog entries of a given user. |
webmaster@1
|
11 */ |
webmaster@1
|
12 function blog_page_user($account) { |
webmaster@1
|
13 global $user; |
webmaster@1
|
14 |
webmaster@1
|
15 drupal_set_title($title = t("@name's blog", array('@name' => $account->name))); |
webmaster@1
|
16 |
webmaster@1
|
17 $items = array(); |
webmaster@1
|
18 |
webmaster@1
|
19 if (($account->uid == $user->uid) && user_access('create blog entries')) { |
webmaster@1
|
20 $items[] = l(t('Post new blog entry.'), "node/add/blog"); |
webmaster@1
|
21 } |
webmaster@1
|
22 else if ($account->uid == $user->uid) { |
webmaster@1
|
23 $items[] = t('You are not allowed to post a new blog entry.'); |
webmaster@1
|
24 } |
webmaster@1
|
25 |
webmaster@1
|
26 $output = theme('item_list', $items); |
webmaster@1
|
27 |
webmaster@1
|
28 $result = pager_query(db_rewrite_sql("SELECT n.nid, n.sticky, n.created FROM {node} n WHERE n.type = 'blog' AND n.uid = %d AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC"), variable_get('default_nodes_main', 10), 0, NULL, $account->uid); |
webmaster@1
|
29 $has_posts = FALSE; |
webmaster@1
|
30 |
webmaster@1
|
31 while ($node = db_fetch_object($result)) { |
webmaster@1
|
32 $output .= node_view(node_load($node->nid), 1); |
webmaster@1
|
33 $has_posts = TRUE; |
webmaster@1
|
34 } |
webmaster@1
|
35 |
webmaster@1
|
36 if ($has_posts) { |
webmaster@1
|
37 $output .= theme('pager', NULL, variable_get('default_nodes_main', 10)); |
webmaster@1
|
38 } |
webmaster@1
|
39 else { |
webmaster@1
|
40 if ($account->uid == $user->uid) { |
webmaster@1
|
41 drupal_set_message(t('You have not created any blog entries.')); |
webmaster@1
|
42 } |
webmaster@1
|
43 else { |
webmaster@1
|
44 drupal_set_message(t('!author has not created any blog entries.', array('!author' => theme('username', $account)))); |
webmaster@1
|
45 } |
webmaster@1
|
46 } |
webmaster@1
|
47 drupal_add_feed(url('blog/'. $account->uid .'/feed'), t('RSS - !title', array('!title' => $title))); |
webmaster@1
|
48 |
webmaster@1
|
49 return $output; |
webmaster@1
|
50 } |
webmaster@1
|
51 |
webmaster@1
|
52 /** |
webmaster@1
|
53 * Menu callback; displays a Drupal page containing recent blog entries of all users. |
webmaster@1
|
54 */ |
webmaster@1
|
55 function blog_page_last() { |
webmaster@1
|
56 global $user; |
webmaster@1
|
57 |
webmaster@1
|
58 $output = ''; |
webmaster@1
|
59 $items = array(); |
webmaster@1
|
60 |
webmaster@1
|
61 if (user_access('edit own blog')) { |
webmaster@1
|
62 $items[] = l(t('Create new blog entry.'), "node/add/blog"); |
webmaster@1
|
63 } |
webmaster@1
|
64 |
webmaster@1
|
65 $output = theme('item_list', $items); |
webmaster@1
|
66 |
webmaster@1
|
67 $result = pager_query(db_rewrite_sql("SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC"), variable_get('default_nodes_main', 10)); |
webmaster@1
|
68 $has_posts = FALSE; |
webmaster@1
|
69 |
webmaster@1
|
70 while ($node = db_fetch_object($result)) { |
webmaster@1
|
71 $output .= node_view(node_load($node->nid), 1); |
webmaster@1
|
72 $has_posts = TRUE; |
webmaster@1
|
73 } |
webmaster@1
|
74 |
webmaster@1
|
75 if ($has_posts) { |
webmaster@1
|
76 $output .= theme('pager', NULL, variable_get('default_nodes_main', 10)); |
webmaster@1
|
77 } |
webmaster@1
|
78 else { |
webmaster@1
|
79 drupal_set_message(t('No blog entries have been created.')); |
webmaster@1
|
80 } |
webmaster@1
|
81 drupal_add_feed(url('blog/feed'), t('RSS - blogs')); |
webmaster@1
|
82 |
webmaster@1
|
83 return $output; |
webmaster@1
|
84 } |
webmaster@1
|
85 |
webmaster@1
|
86 /** |
webmaster@1
|
87 * Menu callback; displays an RSS feed containing recent blog entries of a given user. |
webmaster@1
|
88 */ |
webmaster@1
|
89 function blog_feed_user($account) { |
webmaster@1
|
90 $result = db_query_range(db_rewrite_sql("SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.uid = %d AND n.status = 1 ORDER BY n.created DESC"), $account->uid, 0, variable_get('feed_default_items', 10)); |
webmaster@1
|
91 $channel['title'] = $account->name ."'s blog"; |
webmaster@1
|
92 $channel['link'] = url('blog/'. $account->uid, array('absolute' => TRUE)); |
webmaster@1
|
93 |
webmaster@1
|
94 $items = array(); |
webmaster@1
|
95 while ($row = db_fetch_object($result)) { |
webmaster@1
|
96 $items[] = $row->nid; |
webmaster@1
|
97 } |
webmaster@1
|
98 node_feed($items, $channel); |
webmaster@1
|
99 } |
webmaster@1
|
100 |
webmaster@1
|
101 /** |
webmaster@1
|
102 * Menu callback; displays an RSS feed containing recent blog entries of all users. |
webmaster@1
|
103 */ |
webmaster@1
|
104 function blog_feed_last() { |
webmaster@1
|
105 $result = db_query_range(db_rewrite_sql("SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 ORDER BY n.created DESC"), 0, variable_get('feed_default_items', 10)); |
webmaster@1
|
106 $channel['title'] = variable_get('site_name', 'Drupal') .' blogs'; |
webmaster@1
|
107 $channel['link'] = url('blog', array('absolute' => TRUE)); |
webmaster@1
|
108 |
webmaster@1
|
109 $items = array(); |
webmaster@1
|
110 while ($row = db_fetch_object($result)) { |
webmaster@1
|
111 $items[] = $row->nid; |
webmaster@1
|
112 } |
webmaster@1
|
113 |
webmaster@1
|
114 node_feed($items, $channel); |
webmaster@1
|
115 } |