<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://carlos.rinconsanchez.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Blog de Carlos Rincón - modulo</title>
 <link>http://carlos.rinconsanchez.com/taxonomy/term/21/0</link>
 <description></description>
 <language>es</language>
<item>
 <title>Publicado CCK 2 para Drupal 6</title>
 <link>http://carlos.rinconsanchez.com/publicado-cck-2-para-drupal-6</link>
 <description>&lt;p&gt;Ya han publicado la versión final de &lt;a href=&quot;http://drupal.org/project/cck&quot;&gt;CCK 2&lt;/a&gt;. En la noticia de drupal.org podéis &lt;a href=&quot;http://drupal.org/node/329969&quot;&gt;ver las novedades&lt;/a&gt; o podéis miraros el post que hice con las novedades de &lt;a href=&quot;http://carlos.rinconsanchez.com/release-candidate-de-views-2-cck-2-y-organic-groups&quot;&gt;Views, CCK y Organic groups&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ahora todavía falta que publiquen las versiones finales de algunos campos CCK (por ejemplo &lt;a href=&quot;http://drupal.org/project/imagefield&quot;&gt;imagefield&lt;/a&gt;) para que ya no tengamos escusa de desarrollar con Drupal 6.&lt;/p&gt;
</description>
 <comments>http://carlos.rinconsanchez.com/publicado-cck-2-para-drupal-6#comments</comments>
 <category domain="http://carlos.rinconsanchez.com/category/temas/ckk">ckk</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/drupal">drupal</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/drupal-6">drupal 6</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/modulo">modulo</category>
 <pubDate>Thu, 06 Nov 2008 08:42:16 +0000</pubDate>
 <dc:creator>Carlos</dc:creator>
 <guid isPermaLink="false">141 at http://carlos.rinconsanchez.com</guid>
</item>
<item>
 <title>Como modificar Drupal para tener avatares en los comentarios</title>
 <link>http://carlos.rinconsanchez.com/como-modificar-drupal-para-tener-avatares-en-los-comentarios</link>
 <description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Primero vamos a &lt;strong&gt;Administrar -&amp;gt; Opciones de Usuario&lt;/strong&gt; (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 &lt;strong&gt;Administrar -&amp;gt; Temas -&amp;gt; Configurar&lt;/strong&gt; (admin/build/themes/settings) y en cambiar la visualización hemos de activar &quot;Imágenes de los usuarios en los comentarios&quot;. Si también queremos que salga nuestra foto en los post activamos también &quot;Imágenes de los usuarios en los envíos&quot;.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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 -&amp;gt; Profiles (admin/user/profile) y añadimos un campo url. Ahora sólo falta que se muestre esa url en el enlace del comentario.&lt;/p&gt;
&lt;p&gt;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 &lt;a href=&quot;http://api.drupal.org&quot;&gt;la API de Drupal&lt;/a&gt; algo relacionado con user o comment pero salen muchos resultados y hay un método mejor: el &lt;a href=&quot;http://drupal.org/project/devel&quot;&gt;módulo devel&lt;/a&gt;. Lo subimos a nuestro Drupal y activamos &lt;strong&gt;devel&lt;/strong&gt; y  &lt;strong&gt;Theme developer&lt;/strong&gt;. 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 &quot;Themer info&quot; 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.&lt;/p&gt;
&lt;p&gt;En este caso la función se llama &lt;strong&gt;theme_username&lt;/strong&gt; pero para poderla reescribir la hemos de llamar &lt;strong&gt;phptemplate_username&lt;/strong&gt;. La función modificada quedaría así:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;
function phptemplate_username($object) {&lt;br /&gt;
  global $user;&lt;/p&gt;
&lt;p&gt;  if ($object-&amp;gt;uid &amp;amp;&amp;amp; $object-&amp;gt;name) {&lt;br /&gt;
    // Shorten the name when it is too long or it will break many tables.&lt;br /&gt;
    if (drupal_strlen($object-&amp;gt;name) &amp;gt; 20) {&lt;br /&gt;
      $name = drupal_substr($object-&amp;gt;name, 0, 15) .&#039;...&#039;;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      $name = $object-&amp;gt;name;&lt;br /&gt;
    }&lt;/p&gt;
&lt;p&gt;    profile_load_profile($object);&lt;/p&gt;
&lt;p&gt;    if($object-&amp;gt;profile_web != &#039;&#039;) {&lt;br /&gt;
	$output = l($name, $object-&amp;gt;profile_web , array(&#039;attributes&#039; =&amp;gt; array(&#039;title&#039; =&amp;gt; t(&#039;Go to user web page.&#039;), &#039;absolute&#039; =&amp;gt; TRUE)));&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
	if (user_access(&#039;access user profiles&#039;)) {&lt;br /&gt;
	$output = l($name, &#039;user/&#039;. $object-&amp;gt;uid, array(&#039;attributes&#039; =&amp;gt; array(&#039;title&#039; =&amp;gt; t(&#039;View user profile.&#039;))));&lt;br /&gt;
	}&lt;br /&gt;
	else {&lt;br /&gt;
	$output = check_plain($name);&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if ($object-&amp;gt;name) {&lt;br /&gt;
    // Sometimes modules display content composed by people who are&lt;br /&gt;
    // not registered members of the site (e.g. mailing list or news&lt;br /&gt;
    // aggregator modules). This clause enables modules to display&lt;br /&gt;
    // the true author of the content.&lt;br /&gt;
    if (!empty($object-&amp;gt;homepage)) {&lt;br /&gt;
      $output = l($object-&amp;gt;name, $object-&amp;gt;homepage);&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      $output = check_plain($object-&amp;gt;name);&lt;br /&gt;
    }&lt;/p&gt;
&lt;p&gt;    $output .= &#039; (&#039;. t(&#039;not verified&#039;) .&#039;)&#039;;&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    $output = variable_get(&#039;anonymous&#039;, t(&#039;Anonymous&#039;));&lt;br /&gt;
  }&lt;/p&gt;
&lt;p&gt;  return $output;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;/p&gt;
&lt;p&gt;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 &quot;web&quot; por lo que se guardó como  &quot;profile_web&quot; pero cada uno la puede llamar como quiera mientras también la cambie en esta función.&lt;/p&gt;
</description>
 <comments>http://carlos.rinconsanchez.com/como-modificar-drupal-para-tener-avatares-en-los-comentarios#comments</comments>
 <category domain="http://carlos.rinconsanchez.com/category/temas/avatares">avatares</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/comentarios">comentarios</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/devel">devel</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/drupal">drupal</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/fotos">fotos</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/modulo">modulo</category>
 <pubDate>Thu, 17 Apr 2008 07:21:53 +0000</pubDate>
 <dc:creator>Carlos</dc:creator>
 <guid isPermaLink="false">24 at http://carlos.rinconsanchez.com</guid>
</item>
<item>
 <title>Enviar a meneame en Drupal con service links</title>
 <link>http://carlos.rinconsanchez.com/enviar-a-meneame-en-drupal-con-service-links</link>
 <description>&lt;p&gt;El módulo &lt;a href=&quot;http://drupal.org/project/service_links&quot;&gt;Service Links&lt;/a&gt; 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: &lt;a href=&quot;http://meneame.net/&quot;&gt;meneame&lt;/a&gt;, &lt;a href=&quot;http://barrapunto.com/&quot;&gt;barrapunto&lt;/a&gt;, &lt;a href=&quot;http://www.fresqui.com/&quot;&gt;fresqui&lt;/a&gt;, etc.&lt;/p&gt;
&lt;p&gt;Pero gracias a la gente de &lt;a href=&quot;http://bytecoders.homelinux.com/&quot;&gt;Bytecoders&lt;/a&gt; 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 &lt;a href=&quot;http://bytecoders.homelinux.com/content/release-oficial-de-service-links-5.x-1.0-con-enlaces-meneame-fresqui-y-barrapunto.html&quot;&gt;ofrecen en su página&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pero para los que quieran modificar directamente el módulo &lt;a href=&quot;http://carlos.rinconsanchez.com/category/temas/service+links&quot;&gt;service links&lt;/a&gt; (por que quieran usar la última versión o la versión para Drupal 6 por ejemplo) las modificaciones son las siguientes:&lt;/p&gt;
&lt;p&gt;En el fichero &lt;strong&gt;service_links.module&lt;/strong&gt; en la función &lt;strong&gt;service_links_admin_settings&lt;/strong&gt; hemos de añadir para el caso de meneame:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php  $form[&#039;what_links_to_show&#039;][&#039;service_links_show_meneame&#039;] = array(&lt;br /&gt;
    &#039;#type&#039; =&gt; &#039;checkbox&#039;,&lt;br /&gt;
    &#039;#title&#039; =&gt; t(&#039;Show Meneame link&#039;),&lt;br /&gt;
    &#039;#return_value&#039; =&gt; 1,&lt;br /&gt;
    &#039;#default_value&#039; =&gt; variable_get(&#039;service_links_show_meneame&#039;, 1),&lt;br /&gt;
  );&lt;br /&gt;
?&gt;&lt;/p&gt;
&lt;p&gt;Si también queremos &lt;strong&gt;barrapunto&lt;/strong&gt; y &lt;strong&gt;fresqui&lt;/strong&gt;:&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
 $form[&#039;what_links_to_show&#039;][&#039;service_links_show_fresqui&#039;] = array(&lt;br /&gt;
    &#039;#type&#039; =&gt; &#039;checkbox&#039;,&lt;br /&gt;
    &#039;#title&#039; =&gt; t(&#039;Show Fresqui link&#039;),&lt;br /&gt;
    &#039;#return_value&#039; =&gt; 1,&lt;br /&gt;
    &#039;#default_value&#039; =&gt; variable_get(&#039;service_links_show_fresqui&#039;, 1),&lt;br /&gt;
  );&lt;br /&gt;
  $form[&#039;what_links_to_show&#039;][&#039;service_links_show_barrapunto&#039;] = array(&lt;br /&gt;
    &#039;#type&#039; =&gt; &#039;checkbox&#039;,&lt;br /&gt;
    &#039;#title&#039; =&gt; t(&#039;Show Barrapunto link&#039;),&lt;br /&gt;
    &#039;#return_value&#039; =&gt; 1,&lt;br /&gt;
    &#039;#default_value&#039; =&gt; variable_get(&#039;service_links_show_barrapunto&#039;, 1),&lt;br /&gt;
  );&lt;br /&gt;
?&gt;&lt;/p&gt;
&lt;p&gt;y en el mismo fichero en la función &lt;strong&gt;service_links_render&lt;/strong&gt; hay que añadir para meneame:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php  if (variable_get(&#039;service_links_show_meneame&#039;, 0)) {&lt;br /&gt;
    $links[&#039;service_links_meneame&#039;] = theme(&#039;service_links_build_link&#039;, t(&#039;Meneame&#039;), &quot;http://www.meneame.net/submit.php?url=$url&quot;, t(&#039;Menea este post en meneame.net.&#039;), &#039;images/meneame.png&#039;, $nodelink);&lt;br /&gt;
  }&lt;br /&gt;
?&gt;&lt;/p&gt;
&lt;p&gt;y si también queremos &lt;strong&gt;barrapunto&lt;/strong&gt; y &lt;strong&gt;fresqui&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&amp;lt;?phpif (variable_get(&#039;service_links_show_fresqui&#039;, 0)) {&lt;br /&gt;
    $fresqui = theme(&#039;service_links_build_link&#039;, t(&#039;fresqui&#039;), &quot;http://tec.fresqui.com/post?url=$url&amp;amp;title=$title&quot;, t(&#039;Submit this post on tec.fresqui.com.&#039;), &#039;images/fresqui.png&#039;, $nodelink);&lt;br /&gt;
    $fresqui = str_replace(&quot;?url=http:&quot;,&#039;?url=http%3A&#039;,$fresqui);  /* Si ponemos no ponemos %3A en lugar de : muestra el error warning: parse_url*/&lt;br /&gt;
    $links[&#039;service_links_fresqui&#039;] = $fresqui;&lt;br /&gt;
  }&lt;br /&gt;
  if (variable_get(&#039;service_links_show_barrapunto&#039;, 0)) {&lt;br /&gt;
    $links[] = theme(&#039;service_links_build_link&#039;, t(&#039;barrapunto&#039;), &#039;http://barrapunto.com/submit.pl?story=He+leido+en+&#039; .&quot;$site_name&quot; .&#039;+el+articulo+&lt;a href=&quot;&#039; .&quot;$url&quot; .&#039;&quot;&gt;&#039; .&quot;$title&lt;/a&gt;&amp;amp;subj=$title.&quot;, t(&#039;Publish this post on barrapunto.com.&#039;), &#039;images/barrapunto.png&#039;, $nodelink);&lt;br /&gt;
  }&lt;br /&gt;
?&gt;&lt;/p&gt;
&lt;p&gt;Finalmente hemos de poner en el directorio images del módulo las siguientes imágenes:&lt;br /&gt;
&lt;img src=&quot;http://carlos.rinconsanchez.com/sites/all/modules/drupal.org/service_links/images/meneame.png&quot; alt=&quot;Icono de Meneame&quot; title=&quot;Icono de Meneame&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://carlos.rinconsanchez.com/sites/all/modules/drupal.org/service_links/images/barrapunto.png&quot; alt=&quot;Icono de Barrapunto&quot; title=&quot;Icono de Barrapunto&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://carlos.rinconsanchez.com/sites/all/modules/drupal.org/service_links/images/fresqui.png&quot; alt=&quot;Icono de Fresqui&quot; title=&quot;Icono de Fresqui&quot; /&gt;&lt;/p&gt;
&lt;p&gt;De momento ya he solicitado que se &lt;a href=&quot;http://drupal.org/node/244551&quot;&gt;incluya el código&lt;/a&gt; pero tal vez no lo quieran incluir o tarden lo suyo (y mi perfecto inglés no ayuda mucho :P)&lt;/p&gt;
</description>
 <comments>http://carlos.rinconsanchez.com/enviar-a-meneame-en-drupal-con-service-links#comments</comments>
 <category domain="http://carlos.rinconsanchez.com/category/temas/barrapunto">barrapunto</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/drupal">drupal</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/fresqui">fresqui</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/meneame">meneame</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/modulo">modulo</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/service-links">service links</category>
 <pubDate>Tue, 08 Apr 2008 22:07:19 +0000</pubDate>
 <dc:creator>Carlos</dc:creator>
 <guid isPermaLink="false">23 at http://carlos.rinconsanchez.com</guid>
</item>
<item>
 <title>Mollom, el módulo antispam para Drupal de Dries</title>
 <link>http://carlos.rinconsanchez.com/mollom-el-modulo-antispam-para-drupal-de-dries</link>
 <description>&lt;div class=&quot;img_div&quot; style=&quot;margin:auto;width:300px&quot;&gt;&lt;div class=&quot;img_box &quot; style=&quot;width:288px&quot;&gt;&lt;div class=&quot;img_image&quot; style=&quot;width:278px;height:79px&quot;&gt;&lt;img src=&quot;http://carlos.rinconsanchez.com/sites/default/files/logo-top-5k.gif&quot; alt=&quot;logo-top-5k.gif&quot; title=&quot;logo-top-5k.gif&quot;  class=&quot;img&quot; width=&quot;278px&quot; height=&quot;79px&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&quot;http://buytaert.net&quot;&gt;Dries&lt;/a&gt;, el creador de Drupal, acaba de sacar &lt;a href=&quot;http://mollom.com/&quot;&gt;Mollom&lt;/a&gt;, un API para gestionar el Spam tipo &lt;a href=&quot;http://akismet.com/&quot;&gt;Akismet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Según &lt;a href=&quot;http://buytaert.net/mollom-my-content-monitoring-startup&quot;&gt;comenta en su blog&lt;/a&gt; además facilitar la detección de spam ayuda a detectar la &quot;calidad&quot; de un comentario o una entrada. Esto último más bien creo que ayudará a detectar comentarios con insultos o contenido &quot;sólo para adultos&quot;.&lt;/p&gt;
&lt;p&gt;Además, al contrario que su otra empresa, &lt;a href=&quot;http://acquia.com/&quot;&gt;Acquia&lt;/a&gt;, no se centrarán sólo en &lt;a href=&quot;http://drupal.org&quot;&gt;Drupal&lt;/a&gt;, 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.&lt;/p&gt;
&lt;p&gt;Yo ya lo he instalado aunque de momento no puedo opinar, con un día de vida no tengo demasiado spam :P&lt;/p&gt;
&lt;h3&gt;Actualización&lt;/h3&gt;
&lt;p&gt;De momento Jordi ha hecho alguna prueba enviando unos comentarios. El primero ha puesto un comentario &quot;estándar&quot; de spam pero sin enlaces y ha colado y luego uno con enlaces y ese ha pedido un captcha para confirmar que era humano.&lt;/p&gt;
&lt;p&gt;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).&lt;/p&gt;
</description>
 <comments>http://carlos.rinconsanchez.com/mollom-el-modulo-antispam-para-drupal-de-dries#comments</comments>
 <category domain="http://carlos.rinconsanchez.com/category/temas/dries">dries</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/drupal">drupal</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/modulo">modulo</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/mollom">mollom</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/spam">spam</category>
 <pubDate>Tue, 01 Apr 2008 11:00:58 +0000</pubDate>
 <dc:creator>Carlos</dc:creator>
 <guid isPermaLink="false">9 at http://carlos.rinconsanchez.com</guid>
</item>
</channel>
</rss>
