modulo
Publicado CCK 2 para Drupal 6
Carlos — Jue, 06/11/2008 - 10:42
Ya han publicado la versión final de CCK 2. En la noticia de drupal.org podéis ver las novedades o podéis miraros el post que hice con las novedades de Views, CCK y Organic groups.
Ahora todavía falta que publiquen las versiones finales de algunos campos CCK (por ejemplo imagefield) para que ya no tengamos escusa de desarrollar con Drupal 6.
Como modificar Drupal para tener avatares en los comentarios
Carlos — Jue, 17/04/2008 - 09:21
Por defecto en Drupal no se ven las fotos de los usuarios registrados en los comentarios. Pero es una modificación muy fácil que se puede realizar en dos minutos.
Primero vamos a Administrar -> Opciones de Usuario (admin/user/settings) y abajo de esa página activamos las imágenes de usuarios. Ahora los usuarios registrados ya pueden subir su avatar pero todavía no se verán en los comentarios. Para eso hemos de ir a Administrar -> Temas -> Configurar (admin/build/themes/settings) y en cambiar la visualización hemos de activar "Imágenes de los usuarios en los comentarios". Si también queremos que salga nuestra foto en los post activamos también "Imágenes de los usuarios en los envíos".
Lo que no hace por defecto Drupal es que el enlace de los usuarios registrados sea su web sino que pone el enlace a la ficha del usuario en nuestra web en Drupal. Y como queremos que la gente se registre y esto podría ser un motivo para no hacerlo lo tenemos que solucionar.
Primero hemos de conseguir que un usuario pueda añadir su web en su perfil. Activamos el módulo profile y luego vamos a Administrar -> Profiles (admin/user/profile) y añadimos un campo url. Ahora sólo falta que se muestre esa url en el enlace del comentario.
Para conseguir eso hemos de modificar la función que genera ese html pero hay que saber cómo se llama. Un método sería buscar en la API de Drupal algo relacionado con user o comment pero salen muchos resultados y hay un método mejor: el módulo devel. Lo subimos a nuestro Drupal y activamos devel y Theme developer. Una vez hecho esto nos saldrá abajo a la izquierda un checkbox que hemos de activar cuando estemos en la página que contiene el elemento que queremos modificar. Activamos el "Themer info" y hacemos click sobre el elemento a modificar (en este caso el nombre de usuario con el enlace en los comentarios). Nos saldrá una bonita ventana con el nombre de la función a reescribir y sus padres. Si hacemos click en la función nos llevará a la api de Drupal, allí copiamos la función y la pegamos en nuestro template.php del tema que estemos usando. Como yo ya lo he hecho vosotros con copiar la función al final del template.php será suficiente.
En este caso la función se llama theme_username pero para poderla reescribir la hemos de llamar phptemplate_username. La función modificada quedaría así:
<?php
function phptemplate_username($object) {
global $user;
if ($object->uid && $object->name) {
// Shorten the name when it is too long or it will break many tables.
if (drupal_strlen($object->name) > 20) {
$name = drupal_substr($object->name, 0, 15) .'...';
}
else {
$name = $object->name;
}
profile_load_profile($object);
if($object->profile_web != '') {
$output = l($name, $object->profile_web , array('attributes' => array('title' => t('Go to user web page.'), 'absolute' => TRUE)));
}
else {
if (user_access('access user profiles')) {
$output = l($name, 'user/'. $object->uid, array('attributes' => array('title' => t('View user profile.'))));
}
else {
$output = check_plain($name);
}
}
}
else if ($object->name) {
// Sometimes modules display content composed by people who are
// not registered members of the site (e.g. mailing list or news
// aggregator modules). This clause enables modules to display
// the true author of the content.
if (!empty($object->homepage)) {
$output = l($object->name, $object->homepage);
}
else {
$output = check_plain($object->name);
}
$output .= ' ('. t('not verified') .')';
}
else {
$output = variable_get('anonymous', t('Anonymous'));
}
return $output;
}
?>
Además de ponerle su web a los usuarios registrados he quitado el nofollow que tan poco sentido tenía de los usuarios no registrados. Yo llamé a la variable de la web de usuario "web" por lo que se guardó como "profile_web" pero cada uno la puede llamar como quiera mientras también la cambie en esta función.
Enviar a meneame en Drupal con service links
Carlos — Mié, 09/04/2008 - 00:07
El módulo Service Links permite añadir los típicos enlaces para enviar una noticia a los agregadores sociales más populares. Lamentablemente son para los más populares del mundo por lo que quedan fuera los de habla española: meneame, barrapunto, fresqui, etc.
Pero gracias a la gente de Bytecoders ya podemos usar el módulo Service Links con estas webs. Han modificado el módulo para que no tengáis que hacer nada más que usar el que ofrecen en su página.
Pero para los que quieran modificar directamente el módulo service links (por que quieran usar la última versión o la versión para Drupal 6 por ejemplo) las modificaciones son las siguientes:
En el fichero service_links.module en la función service_links_admin_settings hemos de añadir para el caso de meneame:
<?php $form['what_links_to_show']['service_links_show_meneame'] = array(
'#type' => 'checkbox',
'#title' => t('Show Meneame link'),
'#return_value' => 1,
'#default_value' => variable_get('service_links_show_meneame', 1),
);
?>
Si también queremos barrapunto y fresqui:
<?php
$form['what_links_to_show']['service_links_show_fresqui'] = array(
'#type' => 'checkbox',
'#title' => t('Show Fresqui link'),
'#return_value' => 1,
'#default_value' => variable_get('service_links_show_fresqui', 1),
);
$form['what_links_to_show']['service_links_show_barrapunto'] = array(
'#type' => 'checkbox',
'#title' => t('Show Barrapunto link'),
'#return_value' => 1,
'#default_value' => variable_get('service_links_show_barrapunto', 1),
);
?>
y en el mismo fichero en la función service_links_render hay que añadir para meneame:
<?php if (variable_get('service_links_show_meneame', 0)) {
$links['service_links_meneame'] = theme('service_links_build_link', t('Meneame'), "http://www.meneame.net/submit.php?url=$url", t('Menea este post en meneame.net.'), 'images/meneame.png', $nodelink);
}
?>
y si también queremos barrapunto y fresqui:
<?phpif (variable_get('service_links_show_fresqui', 0)) {
$fresqui = theme('service_links_build_link', t('fresqui'), "http://tec.fresqui.com/post?url=$url&title=$title", t('Submit this post on tec.fresqui.com.'), 'images/fresqui.png', $nodelink);
$fresqui = str_replace("?url=http:",'?url=http%3A',$fresqui); /* Si ponemos no ponemos %3A en lugar de : muestra el error warning: parse_url*/
$links['service_links_fresqui'] = $fresqui;
}
if (variable_get('service_links_show_barrapunto', 0)) {
$links[] = theme('service_links_build_link', t('barrapunto'), 'http://barrapunto.com/submit.pl?story=He+leido+en+' ."$site_name" .'+el+articulo+' ."$title&subj=$title.", t('Publish this post on barrapunto.com.'), 'images/barrapunto.png', $nodelink);
}
?>
Finalmente hemos de poner en el directorio images del módulo las siguientes imágenes:
De momento ya he solicitado que se incluya el código pero tal vez no lo quieran incluir o tarden lo suyo (y mi perfecto inglés no ayuda mucho :P)
Mollom, el módulo antispam para Drupal de Dries
Carlos — Mar, 01/04/2008 - 13:00
Dries, el creador de Drupal, acaba de sacar Mollom, un API para gestionar el Spam tipo Akismet.
Según comenta en su blog además facilitar la detección de spam ayuda a detectar la "calidad" de un comentario o una entrada. Esto último más bien creo que ayudará a detectar comentarios con insultos o contenido "sólo para adultos".
Además, al contrario que su otra empresa, Acquia, no se centrarán sólo en Drupal, sino que intentará hacer módulos para otros gestores de contenidos aunque de momento sólo está disponible para Drupal 5 y Drupal 6 y un API para Java.
Yo ya lo he instalado aunque de momento no puedo opinar, con un día de vida no tengo demasiado spam :P
Actualización
De momento Jordi ha hecho alguna prueba enviando unos comentarios. El primero ha puesto un comentario "estándar" de spam pero sin enlaces y ha colado y luego uno con enlaces y ese ha pedido un captcha para confirmar que era humano.
Otra persona (que se hizo llamar anónimo) también quiso probarlo y me dejó un bonito mensaje de spam con su correspondiente bonito enlace aunque creo que Mollom le hizo comprobar que era humano. Es decir, que si es una persona tal como está ahora podrán dejar los mensajes que quieran pero si es un bot no cuela (creo).
Comentarios recientes
hace 3 años 6 semanas
hace 3 años 39 semanas
hace 3 años 47 semanas
hace 4 años 3 días
hace 4 años 8 semanas
hace 4 años 8 semanas
hace 4 años 9 semanas
hace 4 años 10 semanas
hace 4 años 10 semanas
hace 4 años 11 semanas