<?php
// $Id: og_actions.module,v 1.9.4.2 2009/06/09 01:04:44 weitzman Exp $
/**
* Implementation of hook_menu().
*/
function og_my_menu() {
$items['node/%node/member'] = array(
'title' => '圈子成员',
'page callback' => 'og_member',
'page arguments' => array(1),
'access callback' => 'is_og',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'weight' => 0
);
$items['node/%node/post'] = array(
'title' => '圈子话题',
'page callback' => 'og_post',
'page arguments' => array(1),
'access callback' => 'is_og',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'weight' => 0
);
$items['node/%node/pic'] = array(
'title' => '圈子图片',
'page callback' => 'og_pic',
'page arguments' => array(1),
'access callback' => 'is_og',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'weight' => 0
);
$items['node/%node/members'] = array(
'title' => '审核成员',
'page callback' => 'og_member',
'page arguments' => array(1),
'access callback' => 'og_is_group_admin',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'weight' => 0
);
$items['node/%node/gdpost'] = array(
'title' => '精彩话题',
'page callback' => 'og_gdpost',
'page arguments' => array(1),
'access callback' => 'is_og',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'weight' => 0
);
$items['node/%node/action'] = array(
'title' => '圈子活动',
'page callback' => 'og_action',
'page arguments' => array(1),
'access callback' => 'is_og',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'weight' => 0
);
$items['node/%node/poll'] = array(
'title' => '圈子投票',
'page callback' => 'og_poll',
'page arguments' => array(1),
'access callback' => 'is_og',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'weight' => 0
);
return $items;
}
function og_login($oid,$type,$ly){
if($ly){
return drupal_get_form('user_login');
}else{
drupal_goto('node/'.$oid.'/'.$type, array('destination' => 'node/'.$oid.'/'.$type));
}
}
function is_og($node){
if($node->type == 'og'){
return TRUE;
}
}
function og_post($og){
if(user_is_logged_in()){
if (is_null($limit)) {
$limit = 1;
}
$sql = "SELECT n.nid FROM og_ancestry oa left join node n on oa.nid = n.nid WHERE oa.group_nid = '%d'";
$result = pager_query($sql, $limit, 0, $sql_count, $og->nid);
while($data = db_fetch_object($result)){
$row[] = $data;
}
drupal_set_title('圈子话题');
return theme('og_post', $row);
}else{
return og_login($og->nid,arg(2),$_REQUEST['destination']);
}
}
function og_gdpost($og){
if(user_is_logged_in()){
if (is_null($limit)) {
$limit = 1;
}
$sql = "SELECT n.nid FROM og_ancestry oa left join node n on oa.nid = n.nid WHERE oa.group_nid = '%d' and n.promote = 1";
$result = pager_query($sql, $limit, 0, $sql_count, $og->nid);
while($data = db_fetch_object($result)){
$row[] = $data;
}
drupal_set_title('精彩话题');
return theme('og_post', $row);
}else{
return og_login($og->nid,arg(2),$_REQUEST['destination']);
}
}
function og_action($og,$type='action'){
if(user_is_logged_in()){
if (is_null($limit)) {
$limit = 1;
}
$sql = "SELECT n.nid FROM og_ancestry oa left join node n on oa.nid = n.nid WHERE oa.group_nid = '%d' and n.type = '%s'";
$result = pager_query($sql, $limit, 0, $sql_count, $og->nid,$type);
while($data = db_fetch_object($result)){
$row[] = $data;
}
drupal_set_title('圈子活动');
return theme('og_post', $row);
}else{
return og_login($og->nid,arg(2),$_REQUEST['destination']);
}
}
function og_poll($og,$type='poll'){
if(user_is_logged_in()){
if (is_null($limit)) {
$limit = 1;
}
$sql = "SELECT n.nid FROM og_ancestry oa left join node n on oa.nid = n.nid WHERE oa.group_nid = '%d' and n.type = '%s'";
$result = pager_query($sql, $limit, 0, $sql_count, $og->nid,$type);
while($data = db_fetch_object($result)){
$row[] = $data;
}
drupal_set_title('圈子投票');
return theme('og_poll', $row);
}else{
return og_login($og->nid,arg(2),$_REQUEST['destination']);
}
}
function og_pic($og){
if(user_is_logged_in()){
if (is_null($limit)) {
$limit = 1;
}
$sql = "SELECT nr.nid FROM og_ancestry oa left join node_revisions nr on oa.nid = nr.nid WHERE oa.group_nid = '%d' and nr.body regexp '%s'";
//$sql_count = "SELECT count(*) FROM og_ancestry oa left join node_revisions nr on oa.nid = nr.nid WHERE oa.group_nid = '%d' and nr.body regexp '%s'";
$result = pager_query($sql, $limit, 0, $sql_count, $og->nid,'src');
while($data = db_fetch_object($result)){
$row[] = $data;
}
drupal_set_title('圈子图片');
return theme('og_pic', $row);
}else{
return og_login($og->nid,arg(2),$_REQUEST['destination']);
}
}
function og_member($og){
if(user_is_logged_in()){
if (is_null($limit)) {
$limit = 1;
}
$sql = "SELECT * FROM og_uid WHERE nid = '%d'";
//$sql_count = "SELECT count(*) FROM og WHERE nid = '%d'";
$result = pager_query($sql, 1, 0, $sql_count, $og->nid);
while($data = db_fetch_object($result)){
$row[] = $data;
}
drupal_set_title('圈子成员');
return theme('og_member', $row);
}else{
return og_login($og->nid,arg(2),$_REQUEST['destination']);
}
}
function og_my_theme(){
return array(
'og_member' => array(
'template' => 'og-member',
'arguments' => array('row' => NULL),
'path' => drupal_get_path('module', 'og'). '/modules/og_my'),
'og_pic' => array(
'template' => 'og-pic',
'arguments' => array('row' => NULL),
'path' => drupal_get_path('module', 'og'). '/modules/og_my'),
'og_poll' => array(
'template' => 'og-poll',
'arguments' => array('row' => NULL),
'path' => drupal_get_path('module', 'og'). '/modules/og_my'),
'og_post' => array(
'template' => 'og-post',
'arguments' => array('row' => NULL),
'path' => drupal_get_path('module', 'og'). '/modules/og_my'),
);
}