Enviado por Oskar el 05 de Julio de 2009.
in
El código me funciona pero cada usuario ve su propia pestaña de "my buddys activity", y me gustaría que todos pudiesen ver la de todos.
<?php
/**
* Implementation of hook_perm().
*/
function buddysactivity_perm() {
return array('my buddys activity');
}
/**
* Implementation of hook_menu().
*/
function buddysactivity_menu($may_cache) {
$items = array();
if ($may_cache != true) {
if (arg(0) == 'user') {
$items[] = array(
'path' => 'user/'. arg(1) .'/buddy',
'title' => t('my buddys activity'),
'callback' => 'my_buddy_activity',
'callback arguments' =>array('user', arg(1)),
'access' => user_access('my buddys activity'),
'type' => MENU_LOCAL_TASK,
);
}
}
return $items;
}
/*
*
*submit de la información.
*
*/
function my_buddy_activity (){
$pared = '<div id="pared"><ul>';
if ((arg(0) == 'user') && is_numeric(arg(1)) && (arg(2) == 'buddy'))
{ $arg1 = arg(1);}
$query="SELECT a.buddy, u.name, u.picture, n.created, n.title, n.nid, n.status
FROM {users} u, {buddylist} a, {node} n
WHERE u.uid = a.buddy
AND a.uid =%d
AND a.buddy = n.uid
AND n.status =1
order by n.created DESC";
$result = db_query_range($query, $arg1, 0, 30);
while ($data = db_fetch_object($result)) {
$pared .= '<li>
<a href="'.base_path().'node/'.$data->nid.'" alt="'.$data->title.'" title="'.$data->title.'">
'.$data->title.'
</a>'. t('by') .' <a href="'.base_path().'user/'.$data->buddy.'" title="'.$data->name.'" alt="'.$data->name.'">'.$data->name.'</a>';
}
$pared .= '</ul></div>';
return $pared;
}
?>Un saludo
Oskar
- Añadir nuevo comentario
- 717 lecturas
Inicio de sesión
Comentarios recientes
- Mi estimado muy bueno tu
hace 2 semanas 4 días - Ya !!
hace 3 semanas 2 días - RE: mis primera experiencia con drupal 6
hace 3 semanas 4 días - hola
hace 3 semanas 4 días - mis primera experiencia con drupal 6
hace 3 semanas 5 días - Consulta sobre imagecache
hace 3 semanas 5 días - Pude sacar el error eses que
hace 4 semanas 5 días - Yo tambien tengo el mismo
hace 4 semanas 5 días - no aparece la galeria de galerias
hace 4 semanas 6 días - dependencia de modulo desaparecida
hace 5 semanas 10 horas

Pienso que...
Hola Oskar,
puedes probar por favor lo siguiente.
Cuando te refieres a todos me imagino que te refieres a los usuarios autentificados.
Controla si los usuarios tienen permisos de ver el perfil de otros usuarios "access user profiles".
entonces para mayor seguridad puedes anadir al array del menu:
...$items[] = array(
'path' => 'user/'. arg(1) .'/buddy',
'title' => t('my buddys activity'),
'callback' => 'my_buddy_activity',
'callback arguments' =>array('user', arg(1)),
'access' => user_access('access user profiles', 'my buddys activity'),
'type' => MENU_LOCAL_TASK
);
...
No tomes a mal que te mande aquí como debiera estar formateado el codigo pero creo que es una ayuda tambien.
Si algún dia contribuyes en Drupal no te queda de otra hacerlo así.
<?php
/**
* Implementation of hook_perm().
*/
function buddysactivity_perm() {
return array('my buddys activity');
}
/**
* Implementation of hook_menu().
*/
function buddysactivity_menu($may_cache) {
$items = array();
if ($may_cache != true) {
if (arg(0) == 'user') {
$items[] = array(
'path' => 'user/'. arg(1) .'/buddy',
'title' => t('my buddys activity'),
'callback' => 'my_buddy_activity',
'callback arguments' =>array('user', arg(1)),
'access' => user_access('access user profiles', 'my buddys activity'),
'type' => MENU_LOCAL_TASK,
);
}
}
return $items;
}
/**
* Submit de la información.
*/
function my_buddy_activity (){
if ((arg(0) == 'user') && is_numeric(arg(1)) && (arg(2) == 'buddy')) {
$arg1 = arg(1);
}
else {
// Si uno de los datos esperados por la condicion no existen, para que seguir?
return '';
}
$query="SELECT a.buddy, u.name, u.picture, n.created, n.title, n.nid, n.status
FROM {users} u, {buddylist} a, {node} n
WHERE u.uid = a.buddy
AND a.uid =%d
AND a.buddy = n.uid
AND n.status =1
order by n.created DESC";
$result = db_query_range($query, $arg1, 0, 30);
while ($data = db_fetch_object($result)) {
$list[] = t('@title by @buddy', array(
'@title' => l($data->title, base_path() .'node/'. $data->nid, $data->title, $data->title),
'@buddy' => l($data->name, base_path().'user/'.$data->buddy, $data->name, $data->name)
));
}
$attributes = array(
'id' => 'pared',
);
$output = '<div '. drupal_attributes($attributes) .'>';
$output .= theme('item_list', $list, '', 'ul');
$output .= '</div>';
// Si los datos esperados por la condicion existen pero no hay resultados, para que mandar un div vacio?
return !empty($list) ? $output : '';
}
?>
Bueno espero esto ayude.
Saludos desde alemania
Juan Carlos
simple.puntolatinoclub.de