LesOlivex

Servicios informáticos



Drupal – Menú desplegable con Nice Menús

Category : Drupal mar 15th, 2016

Instalamos nice_menus y special_menu_items que nos permite tener una sección padre sin que apunte a ninguna pagina. Configuramos special_menu_items en admin/config/system/special_menu_items

  • HTML tag for “nolink”:

De esta forma mantenemos la estética de los enlaces. Configuramos nice_menus en admin/config/user-interface/nice_menus

  • Desactivamos: “Use javascript” para evitar incompatibilidades.

Añadimos bloque nice_menus_1 en “Navegación”. Configuramos:

  • Menú padre: <Menú principal>
  • Menu style: down.
/* Menú principal */
ul.nice-menu-down li {
  list-style-type: unset !important;
  background: transparent none repeat scroll 0 0 !important;
  border: 0 none;
  margin: 0 6px !important;
  background: rgba(0, 0, 0, 0) none repeat scroll 0 0;
  border: medium none;
  display: inline-block;
  list-style-type: none;
  padding: 0;
}
ul.nice-menu-down li a {
  text-decoration: none;
  font-weight: 700;
  text-transform: uppercase;
}

Drupal – Bloques con shortcode

Category : Drupal mar 15th, 2016

Bajamos y activamos módulo shortcode

Bajamos y activamos módulo block_shortcode

Configuramos formatos de entrada:

  • admin/config/content/formats/full_html para activar los shortcode.

Ahora podremos ver en la configuración de los bloques el shortcode que podemos añadir en los textarea con formato “Full HTML”.

 

Drupal multi-idioma

Category : Drupal mar 14th, 2016

Activamos módulos:

  • “Menu translation”
  • “Multilingual content”


drush en i18n i18n_menu i18n_node i18n_block i18n_contact i18n_taxonomy i18n_translation title

Traducciones del mismo drupal:


drush en l10n_update

Editamos tipo de contenido “Pagina web” y activamos “Require language (Do not allow Language Neutral)” en “Multilingual setting”.

y en “Opciones de publicación” – “Soporte multilenguaje”

  • Habilitado, con traducción

Esto nos coloca un botón para traducir al estar editando un contenido.

Documentación:

Iniciar: http://www.soltel.es/es/internacionalizacion-en-drupal-7

Muy completo: http://es.slideshare.net/jrguitar21/los-abc-de-multiidioma-en-drupal-7

Activamos traducción de nodos y campo title siguiendo los pasos de enlace.

  • Views.

Si queremos que en las vistas se muestre el titulo del idioma actual se debe añadir el campo “Entity translation: Titulo.

Podemos darle formato “linked and wrapper” para que enlace al contenido.

Campos de usuarios en drupal

Category : Drupal, php, Programación mar 3rd, 2015

Drupal

Desde nuestro módulo podemos añadir o modificar los campos de un usuario.


//set up the user fields
$fields = array(
'name' => $data['UID'],
'mail' => ( $GLOBALS['anonymous'] ) ? 'test-'.$data['UID'].'@test.com' : $data['Email'],
'pass' => $password,
'status' => ( $data['Locked'] == 0 ) ? 1 : 0 ,
// 'init' => ( $GLOBALS['anonymous'] ) ? 'test-'.$data['UID'].'@test.com' : $data['Email'],
'language' => ( isset($langs[$data['Lang']]) ) ? $langs[$data['Lang']] : $langs['default'] ,
'roles' => array(
DRUPAL_AUTHENTICATED_RID => 'authenticated user',
),

// User custom fields
'ces_firstname' => array(LANGUAGE_NONE => array(array('value' => $data['Firstname']))),
'ces_surname' => array(LANGUAGE_NONE => array(array('value' => $data['Surname']))),
'ces_address' => array(LANGUAGE_NONE => array(array('value' => $data['Address1']."\n".$data['Address2']))),
'ces_town' => array(LANGUAGE_NONE => array(array('value' => $data['Address3']))),
'ces_postcode' => array(LANGUAGE_NONE => array(array('value' => $data['Postcode']))),
'ces_phonemobile' => array(LANGUAGE_NONE => array(array('value' => $data['PhoneM']))),
'ces_phonework' => array(LANGUAGE_NONE => array(array('value' => $data['PhoneW']))),
'ces_phonehome' => array(LANGUAGE_NONE => array(array('value' => $data['PhoneH']))),
'ces_website' => array(LANGUAGE_NONE => array(array('value' => $data['WebSite']))),

);

$user_drupal = user_save('', $fields);

Tema hijo en wordpress

Category : Programación, Wordpress ene 27th, 2015

Creamos una carpeta en wp-content/themes/tema-hijo Añadimos nuestro functions.php que se sumara al del tema base Añadimos nuestro style.css que cogerá el del tema base:

/*
Theme Name: Tema hijo
Theme URI: -
Description: Tema derivado de Padre
Author: Eduardo Magrané
Author URI: -
Template: tema_padre
Version: 1.0
*/

@import url('../carpeta_padre/style.css');

#css_propio {
   border: 1px solid green;
}

* El Template: define el tema padre y debe ser el nombre del directorio que lo contiene.

Copiamos los archivos que queremos modificar como header.php a nuestro directorio

Recoger los campos personalizados de los posts en wordpress – post meta

Category : Programación, Wordpress ene 27th, 2015

Recoger los datos de los campos personalizados en los posts:

$datos = get_post_meta (get_the_ID(),array(), false);

if ( isset($datos['edad_de_los_hijos']) && ! empty($datos['fecha'][0]) ) {
   echo "<p><span class='info_taxonomia_dades_titol'>Edad de los niños: </span>"
       ."<span class='valor_fecha'>"
       .mysql2date(get_option('date_format'),$datos['fecha'][0], true)
       ."</span>"
       ."</p>";
   }

Recoger la información de los campos personalizados de una taxonomía en wordpress

Category : Programación, Wordpress ene 27th, 2015

Ejemplo sobre una taxonomía denominada where.

$slug_taxonomia_actual = get_query_var('where');
if ( $slug_taxonomia_actual ) {
   $taxonomia_actual = get_term_by('slug', $slug_taxonomia_actual,'where');
   $location = get_field('Location', 'where_'.$taxonomia_actual->term_id);
}

Presentar imagen aleatoria de un post en wordpress

Category : Programación, Wordpress ene 27th, 2015

Creamos shortcode de gallery con una sola imagen aleatoria sobre el post actual en single.php

// Presentar una sola imagen aleatoria del post

 $consulta_img = "SELECT ID FROM wp_posts 
    WHERE post_parent=".get_the_ID()." AND post_type like 'attachment' 
    ORDER BY RAND() LIMIT 1";

 $lista_imagenes = FALSE ;
 $resultado_img = $wpdb->get_results( $consulta_img );
 if ( count($resultado_img) != 0 ) $lista_imagenes = TRUE;

 if ( $lista_imagenes ) {

  $lista_imagenes = "";
  foreach ( $resultado_img as $fila ) { $lista_imagenes .= $fila->ID."," ; }
  $lista_imagenes = rtrim($lista_imagenes,',');

  // Galería de imágenes

  ?>
  <p>
  <div id="galeria_pais">
  <?php echo _do_shortcode('[_gallery columns="1" link="file" include="'.$lista_imagenes.'"]'); ?>
  </div>
  </p>
  <?php
}

Añado guiones bajos para que no lo interprete wordpress.

Depurar en wordpress

Category : Programación, Wordpress ene 27th, 2015

Activar la depuración

Desde wp-config.php:

// DEBUG

//define('WP_DEBUG', fasle);

 // Enable WP_DEBUG mode
define('WP_DEBUG', true);

// Enable Debug logging to the /wp-content/debug.log file
define('WP_DEBUG_LOG', true);

// Disable display of errors and warnings
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define('SCRIPT_DEBUG', true);

Utilizar el identificativo de tu usuario para algo sin que afecte a otros usuarios.


global $current_user;
if ( $current_user->ID == 12 ) {
   echo "<pre>" ; print_r($themename) ; echo "</pre>"; // DEV
   }

Hacer que funcione thinkbox con versiones nuevas de jquery

Category : Diseño web, Programación ene 27th, 2015

Para que funcione el sistema de galerías de imágenes de thinkbox con versiones posteriores de jquery 1.2 se debe realizar un cambio en thinkbox.js

Modificando la linea:

TB_TempArray = $("a[@rel="+imageGroup+"]").get();

Eliminando la arroba, quedando:

TB_TempArray = $("a[rel="+imageGroup+"]").get();