Joomla vs Drupal: modelo de negocios

En este post habla mucho de como se esta extendiendo la comunidad Drupalera, y como al dialogar con muchas de las empresas de Joomla expresaron que estaban en el proceso de adopción de productos y servicios para Drupal.

Se destaca tambien la evolución de Drupal y su nueva versión que posiblemente estará disponible para Julio de este año.

Encuentra el articulo completo en la siguiente dirección:

http://www.drwsoluciones.net/blogs/joomla-vs-drupal-modelo-de-negocios

Saludos.

Actualizar FCKeditor personalizado

Como sabemos el FCKeditor es un editor WYSIWYG que nos sirve para editar o dar formato a nuestros contenidos en algunos CMS como Drupal.

En este post voy a explicar como actualizar nuestro editor, cuando tenemos algunos archivos personalizados por nosotros, en mi caso puntual son aquellos que se refieren al tratamiento de tablas y a la inclusion de plugins como Linktocontent y ImageManager, estoy olvidando tambien la modificacion del codigo para poder subir archivos a nuestro sitio en forma personalizada.

http://www.drwsoluciones.net/trackback/183
http://www.drwsoluciones.net/blogs/actualizar-fckeditor-personalizado

Saludos

Personalizar more link en Drupal

Logo de DrupalEn varias ocasiones para diseñar un sitio web accesible nos encontramos con que el enlace de “leer más” se repite en los bloques que generamos desde las vistas, bueno para eso hay una solución que la detallaré a continuación.

Cabe indicar que este sirve para la versión 5 o 6 de Drupal.

Bueno una vez que hemos creado la vista y estamos generando desde ella el bloque debemos no activar el “more link” en cambio el pie o el encabezado dependiendo de donde necesitemos poner el enlace debemos activarlo para personalizar nuestro leer mas sobre la vista, en mi caso necesito ponerlo en el pie.

Para esto lo activo al pie, modifico el tipo de entrada del pie que será “Full HTML” y una vez dentro del cuadro de texto puedo poner el siguiente código:

<div class="more-link">

<a href=”miurl”>Leer sobre Noticias</a>

</div>

Y con eso ya tenemos personalizado nuestro “leer mas” o en algunos casos “más” la clase  que estoy utilizando en el div es la misma que se utiliza cuando se genera desde el bloque generado por la vista.. el “more link”.

Saludos y espero les sea de mucha ayuda.

Problema de menus en actualizacion Drupal

drupal

Este post va dirigido a todos aquellos usuarios de Drupal que estan migrando o actualizando la version de Drupal 5.x a la 6.x me sucedio que no me aparecían los menus que habia creado en la versión 5.x y buscando por ahí di con la solución en ingles, como saben no hay mucha información en nuestra lengua asi que aporto con este post para que le sirva a mas de uno.
El problema pasa porque en la actualización no se define el padre de los nodos cuando se realiza el upgrade.
Es decir si tenemos un:
Hola
–> Hola mundo
——> Que tal
como estructura de un menu, podemos ver mediante mysql-query-browser en la tabla menu_links que los padres no apuntan a ningun lado, explicado de forma mas formal podemos hacer la siguiente consulta
SELECT * FROM `menu_links` where `router_path` ='' and menu_name not in ('primary-links' ,'admin_menu')

Y para resolverlo lo que tenemos que hacer es ponerle a los padres un valor que puede ser “node” pero ojo solo a quienes no tienen link es decir los elementos padre para lo cual haremos un update como el siguiente:

update menu_links set link_path ='node' WHERE link_path = '' AND menu_name NOT IN ('primary-links', 'admin_menu')

Una vez realizada esta operación procedemos a limpiar el cache mediante configuración del sitio –> rendimiento y ahi limpiamos el cache y veremos que vuelven a visualizarse y funcionar los menus.

Saludos y espero les sirva cuando hagamos nuevamente una actualización.

Módulos Drupal para la Web Semántica

rdfEl nuevo enfoque de la web esta cambiando y debemos tambien tomar este nuevo rumbo al futuro para lo cual necesitamos adaptar nuestros contenidos a darle forma y estructura es decir a hacer nuestros datos mas inteligentes para que puedan ser parte de esta nueva base de datos en la web, no preciso que se tendrá un motor de base de datos sino que toda la red funcionara como una enorme base de datos enlazando todos nuestros contenidos siempre y cuando cumplan con esta nueva forma de trabajar nuestros datos y su publicación.

El CMS drupal ha avanzado mucho en lo que es la implementación de nuevas herramientas para que nuestros contenidos esten marcados como contenido inteligente.

Los módulos que existen actualmente para Drupal en sus diferentes versiones los voy a listar con una breve explicación o mejor dicho una breve tradcucion de algunos que no he utilizado aun.

Herramientas Drupal para la web semántica

Basta de palabrería y vamos con la lista.

Módulo

Descripción

Calais Crea automaticamente metadatos enriquecidos en semántica para los envio. Analiza el contenido y obtiene las entidades dentro.
Calais Marmoset Agrega un tab en el nodo o publicacion que cuando selecciona mostrara los datos de microformatos devueltos por mi marmoset
Citation Counts Recupera cuenta de citas para articulos academicos
CodeMetrics Provee analisis de codigo estatico y software de medida para proyectos PHP y codigo base de Drupal en particular
Create from Web Refuerza la creacion de contenido recuperando valores de los atributos desde la web a tu nodo o publicacion.
DAV Provee un WebDAV
Exhibit Muestra datos estructurados en la forma de visualizacion enriquecida que puede ser buscada.
FeedAPI RDF Processor Guarda items del feed en formato RDF
File Framework Los metadatos de los archivos subidos es extraido usando EXIF, getID3, pdfInfo y guardados en almacenamiento RDF.
Machine Tags Crea taxonomias complejas y de alta calidad. Folksonomias y taggins para hacer mas accesible la implementacion.
MOAT Plugin que provee una facil y colaborativa forma de publicar contenido semantico desde un etiquetado libre.
RDF Cck
Relations API Provee un API para una relacion arbitraria de nodos basados en RDF
Resource Activa la creacion de nodos recurso que servira como referencia a contenidos remotos identificados por URI y publicaciones en formato RDF
RDF Modela y comparte conocimiento distribuido basado en una asumpcion de mundo descentralizado
Semantic Search Modulo de busqueda del front-end para contenido almacenados en RDF en el back-end.
SIOC Comunidades online interconectadas semanticamente
SPARQL Activa el uso de consultar SPARQL con el API RDF de Drupal
Views DataSource Es un conjunto de pluggins para Vistas de Drupal para dar nodos de contenido en un numero de compartible y formato reusable basado en XML, JSON y XHTML

Saludos y espero le sirva a mas de uno

Migrando de Joomla a Drupal

Migración de Joomla a Drupal

Esta guía se enfoca en la migración de Joomla 1.0.x a Drupal 4.7.x/5.x. Antes de migrar debes entender algunas diferencias entre ellos para asegurarte que la migración sea satisfactoria.

Tomado de la versión en ingles de http://drupal.org/node/80195, para ayudar a la comunidad latina de usuarios Drupal. He migrado un sitio de Joomla a Drupal haciendo uso de este articulo.

En esta direccion podras encontrar el módulo que hace posible la migración: http://drupal.org/project/joomla

En mi sitio voy a publicar algunos tips mas para el trabajo con Drupal: http://www.drwsoluciones.net

Joomla! vs Drupal

  1. Joomla solo soporta una Seccion y una Categoria por cada contenido, mientras en Drupal puedes asignar al contenido varias Secciones/Categorias.
  2. Joomla no permite la configuración de multiples sitios, por lo que la migración debe estar en un solo sitio si tienes configuración multi sitio con Drupal.
  3. En esta guia asumo que tienes un foro en tu sitio Joomla. Drupal tiene generado un foro de discusion por lo que no necesitas instalar ningun modulo adicional.
  4. El termino Blog en Joomla no tiene la misma definición como el blog del diccionario de Internet. El termino ‘Blog’ en Joomla es actualmente una vista broma de contenido: Titulo, Introducción y un enlace de Leer Mas. ‘Blog’ en la terminología Joomla no es un ‘WebBlog’. Si uno pregunta si Joomla esta apoyando a un blog por defecto la respuesta es afirmativa pero con diferente significado.
  5. Comentarios en contenidos no estan disponibles en Joomla por defecto, pero Drupal por defecto soporta comentarios en todo tipo de contenido.


Terminología Joomla vs. Drupal

Hay algunas diferencias de diferentes términos entre Joomla y Drupal. Aqui esta una lista para entenderlo rapidamente:

  1. Template en Joomla es llamado Theme(Tema) en Drupal.
  2. Componente = Modulo.
  3. Modulo = Bloque
  4. Mambot/Plugin = Input filter.
  5. Menu-Horizontal = Primary Links (Enlaces primarios)
  6. Menu-Vertical = Navigation (Navegacion)
  7. Contenido Dinamico = Story (Historia)
  8. Contenido Estatico= Page (Pagina)
  9. Back-end = No hay back-end en Drupal, pero modulos como Administration Menu provee similar interface.
  10. SEF = URL limpios (pero algunos docs se refieren a SEF, tambien).
  11. Seccion = Taxonomy Vocabulary/Term (Taxonomia Vocabulario/Termino)
  12. Section Title = Taxonomy Term (Termino Taxonomia)
  13. Category = Taxonomy Term (Termino Taxonomia)
  14. Introtext = Teaser
  15. Maintext = Body (see explanation below)
  16. Pathway = Breadcrumb

Otros terminos son los mismos como: foro de discusion, editor, busqueda, region, comentario, asunto/titulo, vista previa, tag html, vista, editar, publicidad/banner, log in/log out, perfil, avatar, control de acceso, logs, cache, mantenimiento del sitio, RSS, padre-hijo y fragmentos.

Migrando Contenido/Items de Joomla

Primero, debes transferir todas las Secciones Joomla a Categoria Drupal y transferir Categorias a Term en Drupal acorde a su padre(pariente), Despues que tu puedas transferir Contenido/Item de Joomla desde la tabla jos_content. Las tablas Drupal para guardar articulos son drupal.node y drupal.node_revisions!

Migrando Introtext de Joomla

Introtext vs Teaser, esto es muy importante, debes saber que Drupal puede automaticamente cambiar el inicio de un articulo en un introtext, El introtext es llamado teaser en Drupal. Ahora, como convertir Introtext a Drupal ?.

  1. Copiar el Joomla Introtext a drupal.node_revisions:teaser
  2. Copiar el Joomla Introtext+Maintext a drupal.node_revisions:body (cuerpo)

Puedes confundirte porque el paso #2 incluye el Introtext nuevamente? Porque en Drupal, hay una posibilidad de establecer un diferente Teaser desde el primer párrafo del contenido. En otras palabras, El primer parrafo de Drupal no siempre sera un Teaser !
Si quieres editar el contenido migrado luego en Drupal, deberias copiar
Introtext + “” + Maintext
en paso #2.

Migrando el Foro de Joomla

Supongo que usas el foro Joomlaboard para Joomla. En Drupal es generado internamente, entonces debes solamente activarlo en el administrador de modulos mostrarlo en la pagina principal mediante el administrador de bloques. Debes transferir la Categoria Padre del foro a Contenedor de Foro Drupal y la categoria Hija del Foro a Categoria del Foro Drupal. Nuevamente, estoy usando SQLyog para transferir la entrada de contenidos del foro. SQLyog es muy facil porque es un Entorno grafico.

Editor

Drupal por defecto no tiene editor WYSIWYG, significa que debes tipear cualquier contenido HTML manualmente para darle formato al articulo. Joomla tiene el editor TinyMCE interno. En Drupal, puedes usar la contribucion de editores de los usuarios como el TinyMCE Editor o FCKeditor.

Consejos

Usualmente mejor es instalar Drupal en una carpeta como nombrededominio/drupal, puedes entonces accesar a los dos sitios durante la migración. Mejor no conviertas el template de Joomla a Tema de drupal, pero edita cualquier tema drupal existente al conocer tus requerimientos porque Drupal soporta temas de tipo (PHPTemplate) y separa templates como comment.tpl.php significa que puedes aplicar cualquier comentario.

Módulos de ayuda

Puedes tambien querer chequear los siguientes modulos:
User Import – for users (para usuarios) http://drupal.org/project/user_import
Node Import – for content (para contenido) http://drupal.org/project/node_import
Joomla migration (not on drupal.org) http://joomla2drupal.teodorani.com/

Cabes destacar que trabaje por algun tiempo con Joomla y se que es muy amigable en sus interfaces pero al momento de querer implementar nuestro propio codigo.. realmente es un dolor de cabez.

Saludos.

Control Panel en otros idiomas

En dias anteriores habia instalado el modulo de control panel para que tenga una interaccion mas amigable de la administracion de drupal el cual funcionaba a toda maquina hasta que instale el modulo de multilenguaje i18n con el cual se danio todo es decir l a presentacion porque ya no aparecian los iconos personalizados para cada seccion en el control panel excepto el icono por defecto para lo cual buscando y buscando di con una solucion implementada en el sitio de drupal cabe destacar que esta correccion sirve para la version 5.x que es con la que estoy trabajando segun tengo entendido todavia no hay nada para la version 6.x en este sentido.

Bueno basta de palabreria y vamos con la solucion:

En la solucion debemos ubicar la funcion control_panel_view y reemplazarla con lo siguiente podran observar que se hace una comprobacion de que existe el modulo i18n.


function theme_controlpanel_panel_view($pid, $block = NULL) {
$content = '';
$menu = menu_get_menu();
$menu_visible = $menu['visible'];
$theme_path = path_to_theme() . '/controlpanel/' . variable_get('controlpanel_icon_size' . $block, '48x48');

if (file_exists($theme_path . '/control_panel_default.png')) {
$image_directory = $theme_path;
} else {
$image_directory = drupal_get_path('module', 'controlpanel') . '/images/' . variable_get('controlpanel_icon_size' . $block, '48x48');
}

$content .= '<div id="control-panel-' . $pid . '" class="control-panel">';
if (isset(
$menu_visible[$pid]) && $menu_visible[$pid]['children']) {
foreach (
$menu_visible[$pid]['children'] as $mid) {
if (
$menu_visible[$mid]['children'] && (variable_get('controlpanel_build_children' . $block, 0) != 0)) {
//do nothing
}
else {
$content .= '<div class="control-panel-item control-panel-icon-size-' . variable_get('controlpanel_icon_size' . $block, '48x48') . '">';
$content .= '<a href="' . url($menu_visible[$mid]['path']) . '">';
$working_path = drupal_get_path_alias($menu_visible[$mid]['path']);
if (
module_exists('i18n')) {
global
$i18n_langpath;
$current_lang = is_null($i18n_langpath) ? i18n_default_language() : $i18n_langpath;
$working_path_parts = explode('/', $working_path);
if (
$working_path_parts[0] == $current_lang) {
unset(
$working_path_parts[0]);
}
$working_path = implode('/', $working_path_parts);
}
if (
is_numeric(substr($working_path, strrpos($working_path, "/") + 1))) {
$working_path = substr($working_path, 0, strrpos($working_path, "/"));
}
$file_name = $image_directory . '/' . str_replace('/', '_', $working_path) . '.png';
//drupal_set_message($file_name);
if (file_exists($file_name)) {
$src = $file_name;
}
else {
$src = $image_directory . '/control_panel_default.png';
}
$content .= '<span style="display:block;">';
$content .= '<img src="' . base_path() . $src . '" alt="'. $menu_visible[$mid]['title'] .'" title="'. $menu_visible[$mid]['title'] .'" />';
$content .= '<br />' . $menu_visible[$mid]['title'];
$content .= '</span>';
$content .= '</a>';
$content .= '</div>';
}
}
}
$content .= '</div>';
return
$content;
}

Espero les sea de mucha ayuda y saludos.