Index: dashboard_blocks.module =================================================================== RCS file: dashboard_blocks.module diff -N dashboard_blocks.module --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ dashboard_blocks.module 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,130 @@ + 'recent_content_refresh', + 'access arguments' => array('access dashboard'), + 'type' => MENU_CALLBACK, + ); + return $items; +} + +function dashboard_blocks_theme(){ + return array( + 'comment_approval_block' => array( + 'arguments' => array('cids'=> null), + ), + ); +} +/** + * Implementation of hook_block_info() + */ +function dashboard_blocks_block_info(){ + $blocks = array(); + $blocks['recent_content']= array( + 'info' => t('recently published content'), + ); + $blocks['comment_approval']=array( + 'info' => t('comments to be approved'), + ); + return $blocks; +} + +/** + * Implementation of hook_block_view(). + */ +function dashboard_blocks_block_view($delta=''){ + switch($delta){ + case 'recent_content': + drupal_add_js(drupal_get_path('module', 'recent_content') . '/recent_content.js'); + $settings = array( + 'recent_content' => array( + 'refresh' => url('recent_content/refresh'), + ), + ); + drupal_add_js($settings, array('type' => 'setting')); + $block = array( + 'subject' => 'Recent content', + 'content' => recent_content_display_block() + ); + return $block; + case 'comment_approval': + $block = array( + 'subject' => 'Recent comments', + 'content' => comment_approval_display_block() + ); + return $block; + } +} + +function recent_content_display_block(){ + $result = db_query_range('SELECT n.nid,n.changed FROM {node} n WHERE status = 1 ORDER BY n.changed DESC',0,10,array()); + $items = array(); + $nids = array(); + foreach($result as $record){ + $nids[] = $record->nid; + + } + + $nodes=node_load_multiple($nids); + foreach($nodes as $nid => $node){ + if(node_access('view',$node)){ + $item = l($node->title,'node/'. $nid); + if(node_access('update',$node)){ + $item .= l(' [edit]','node/'. $nid .'/edit'); + } + $items[] = $item; + } + } + return theme('item_list',$items); +} + +function comment_approval_display_block(){ + $result = db_query('SELECT c.cid,c.timestamp FROM {comment} c WHERE c.status = :status ORDER BY c.timestamp DESC',array(':status'=>COMMENT_NOT_PUBLISHED)); + $cids = array(); + foreach($result as $record){ + $cids[] = $record->cid; + } + return theme('comment_approval_block',$cids); +} + +function theme_comment_approval_block($cids){ + $output =''; + $uids = array(); + $comments = comment_load_multiple($cids); + foreach($comments as $comment){ + $uids[] = $comment->uid; + } + $users=user_load_multiple($uids); + foreach($comments as $comment){ + $output .= "