Image
Esquivando jQuery
Mostrar y ocultar un elemento con CSS esquivando jQuery

Mostrar y ocultar un elemento con CSS esquivando jQuery.

Como hacer que un elemento aparezca y desaparezca desde un lado de la pantalla solo con CSS.

Como frontend hay veces que por exigencias del guion nos vemos en la tesitura de no poder usar jquery, ya sea por no saber usarlo, porque el cliente no quiere, por cuestiones de rendimiento, … En este artículo se explica un truco para poder hacer que un elemento aparezca de uno de los lados.

Son dos las condiciones que necesitamos para este truco, la primera y la mas obvia es saber CSS, y la otra, la que nos va a dar toda la lógica, es el combinado de un <label> con su atributo “for” y un <input type=”checkbox” con su “id”.

Por un lado pondremos la label en donde nos interese dentro de nuestro html y la maquetaremos para que tenga el aspecto de botón que queremos. Por otro lado, y este es uno de los puntos importantes a tener en cuenta, pondremos el checkbox justo por delante del div o el tag que vayamos a hacer que entre y salga de la pantalla.

Image
Mostrar y ocultar un elemento con CSS esquivando jQuery

Ahora toca dejar esto visualmente listo para que haga su magia.

Por un lado debemos poner el body con “overflow: hidden;”, también valdría hacerlo sobre un contenedor que encapsule tanto al checkbox como al div que le acompaña.

El checkbox lo maquetaremos de la siguiente manera:

.view-option-anchor{    
    display: inline-block;
    width: 0;
    height: 0;
    opacity: 0;
    visibility: hidden;
}

Es importante que no pongamos “display: none;“ ya que aunque no lo veamos es indispensable que este dentro del documento.

Ahora vamos con la caja que queremos que se oculte y se muestre, en este caso es el div con la clase “filter-content”.

Para ello lo que vamos a hacer es maquetarlo, posicionándolo para que posteriormente nos aparezca desde el lado derecho de la pantalla.

. filter-content{
    height: 100vh;
    width: 100 vw;
    position: fixed;
    top: 0;
    left: 100%;
    z-index: 9999;
    transition: left 0.4s ease;
}

Bien, ahora ya está colocado cada elemento donde debe estar en su posición inicial. En este caso no veremos el div “filter-content” porque sobresale de la ventana por la derecha. Para verlo, y aquí es donde está la magia, no ayudaremos de su posición con respecto el checkbox de la siguiente manera.

 .view-option-anchor:checked + .filter-content{
    left: 0;
}

De esta forma haremos que el div que está justo al lado de checkbox entre dentro de la pantalla.

Por último, para hacer totalmente usable este elemento que sale y entra de la pantalla, necesitaremos un botón de cierre, o más bien un nuevo <label> en el que su “for” apunte también al “id” de este checkbox y que se encuentre dentro de el div que entra y sale. Con lo que la estructura html nos quedaría así:

Image
Mostrar y ocultar un elemento con CSS esquivando jQuery

Y con esto tendríamos la funcionalidad completa. Todo lo referente al aspecto de estos label como botones queda en tu mano para ponerlos a tu gusto.

Esta forma de usar el checkbox puede aplicarse a diferentes situaciones, la única condición es usar y posicionar los elementos de la forma descrita, así que toca experimentar todo lo que se te ocurra.

Y esto ha sido mostrar y ocultar un elemento con CSS, recordad que tenéis este y otros manuales de ayuda en el blog y si aun así no halláis respuesta a vuestro problema, podéis publicar vuestras preguntas en el tablón, donde la comunidad os ayudará a resolverlas.

 

 

Image
navegador de entidades
Drupal Navegador de Entidades: Como hacer que muestre lo preseleccionado.

Vamos a ver: Drupal Navegador de Entidades: Como hacer que muestre lo preseleccionado. 

Con el módulo Entity Browser podemos seleccionar una taxonomía, medio o nodo con un método más visual y cómodo que una autocomplete o una lista, ya que nos abre una ventana modal o iframe que contiene una vista que podemos customizar de la manera que queramos

Pero, además de que no es un modulo sencillo por si mismo, de manera natural tiene una funcionabilidad que no es la apropiada cuando vas a seleccionar una entidad, pues cada vez que quieras seleccionar una nueva entidad te la suma, no modifica.

Para que su comportamiento sea el de remplazo de tu preselección, te ponemos los pasos que has de seguir:

Lo primero del todo es en la entidad nueva de  “entity browser” , desplegar la última opción de “selection display” y seleccionar  “multi step selection display” e indicarle que tipo de entidad estas usando en el campo que vas a mostrar con este display.

Drupal entity browser

Lo siguiente ( que ya te lo pide el modulo) es crear una vista del tipo “navegador de entidades”  que muestre las entidades tal como quieres que se vean , que hagas los filtros que necesites y sobre todo, muy importante, que como filtro contextual  añadas la ID de la entidad que estas mostrando.

Drupal navegador de entidades

En mi caso, como estoy mostrando una taxonomia es TID ( Taxonomy ID) desde el filtro contextual , marcando “entity browser Context”

drupal entity browser Context

Por último, en el formulario del campo que quieres que se muestre con “entity browser” , le das a la tuerquecita de la derecha y en selection mode marcas “edit selection”

Drupal entity edit selection

Un consejo: aplícale unos pocos estilos custom al modal que se te abre o será ilegible o incomodo de usar.

Esto ha sido: Drupal Navegador de Entidades: Como hacer que muestre lo preseleccionado. 

Esperamos haberos ayudado, dejad comentarios si necesitáis mas detalles o no os funciona

Image
Restablecer la contraseña de admin de Drupal 8
Restablecer la contraseña de admin de Drupal 8

Seguro que conocéis los scripts incluidos en el core de Drupal 8 para restablecer la contraseña del admin, pero no todos los servicios de alojamiento permiten el acceso SSH necesario para ejecutarlos, lo que hace que sea imposible recuperar la contraseña de la cuenta de administrador de Drupal 8 a través de la línea de comandos.
Este método solo debe emplearse como última opción cuando todo lo demás falla.
Esta forma de restablecer la contraseña, usa un script PHP que debe cargarse en el servidor web, por lo que debemos poseer la capacidad de cargar dicho PHP en el servidor donde está alojado el sitio web.
En esencia, el script PHP ejecuta un bootstrap completo de Drupal para obtener acceso a las funciones necesarias que generan la contraseña administrativa y luego actualiza la base de datos con la nueva contraseña que especificamos desde de la URL cuando ejecutamos el script mediante el navegador web.


OJO: dejar este script en el servidor después de restablecer la contraseña constituye un agujero de seguridad muy grave que permite a cualquier persona restablecer la contraseña de administrador. Úsalo con cuidado y elimínalo siempre que hayas terminado de usarlo.

Empecemos:

1.    Primero, crea un archivo con un nombre cualquiera (auladrupal.php por ejemplo).
2.    Copia y pega el siguiente código de Drupal en el archivo y guárdalo.

<?php
use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpFoundation\Request;

if (pathinfo(__FILE__, PATHINFO_FILENAME) == 'admin-pass-reset') {
  die('Please change your file name to a random string to continue');
}

// Boot Drupal.
$autoloader = require __DIR__ . '/autoload.php';

$request = Request::createFromGlobals();
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod', FALSE);
$kernel->boot();

// Get password hasher service.
$password_hasher = $kernel->getContainer()->get('password');

// Hash password.
if (isset($_GET['pass']) && !empty($_GET['pass'])) {
 $newhash =  $password_hasher->hash($_GET['pass']);
}
else {
  die('Retry with ?pass=PASSWORD set in the URL');
}

// Update user password.
$updatepass = Drupal::database()->update('users_field_data')
  ->fields(array(
    'pass' => $newhash,
//  'name' => 'admin',
//    'mail' => 'yourmail@example.com'
  ))
  ->condition('uid', '1', '=')
  ->execute();

// Clean user 1 cache.
Drupal::cache('entity')->delete('values:user:1');

print "Listo. Por favor, borra este archivo lo antes posible";

 

3.    Sube el archivo a la raíz del directorio de instalación de Drupal (es decir, donde existen index.php, update.php, robots.txt y otros archivos y directorios).
4.    Ejecuta el script, solicitando el archivo en un navegador web utilizando el siguiente patrón de URL:

http://auladrupal.com/auladrupal.php?pass=mypassword

5.    En la URL anterior:

  • cambia auladrupal.com con tu nombre de dominio real.
  • cambia auladrupal.php con el nombre de archivo real que especificó en el paso uno anterior,
  • cambia mypassword con la nueva contraseña deseada.


6.    Nota: Te recomiendo que elijas una contraseña que contenga letras y números en mayúsculas y minúsculas, y que tenga al menos 12 caracteres.
7.    Si la secuencia de comandos se ejecuta correctamente, verás el texto "Listo" en tu navegador web. La contraseña de la cuenta administrativa creada al instalar Drupal (es decir, usuario / 1) se cambiará a "mypassword" (o cualquier valor que especifiques).
8.    Finalmente, elimina el archivo del directorio raíz de instalación de Drupal.

Cambiar el nombre de usuario de la cuenta de administrador

Si no recuerdas (o simplemente no sabes) el nombre de usuario de la cuenta de administrador, en el script anterior, descomenta la linea // 'name' => 'admin', a 'name' => 'admin', y el nombre de usuario también se cambiará a "admin".
También puedes restablecer la dirección de correo electrónico del administrador de la misma manera, descomentando (elimina las //) la línea de la dirección de correo electrónico en el script anterior.

Por último, no olvides eliminar el archivo tan pronto como hayas cambiado la contraseña.

Y este es el método para restablecer la contraseña del admin en Drupal 8

Si necesitas más ayuda, visita este enlace o contacta con un desarrollador.

Image
Resolver conflictos de GIT
Resolver conflictos de GIT con PhpStorm

Cuantas veces trabajando en nuestro día a día, nos llevamos las manos a la cabeza al ver un conflicto en GIT? demasiadas. Por eso, que PhpStorm tenga una herramienta para resolver conflictos de GIT, tan visual y tan sencilla es lo que mas nos puede ayudar en este caso. 

Para ver como resolver conflictos de git con PhpStorm, he creado el siguiente caso: En mi rama local de Develop he querido fusionar ( merge) una rama que contenía  dos conflictos por tanto la fusión falló. 

Resolver conflictos de GIT

Image
vlc_kC8DMNaRJL

En el Fallo me ha dado los archivos exactos que generan conflicto y sus rutas, asique me dirijo al árbol de la izquierda y busco uno de esos archivos que tienen el conflicto. 

Pulsamos encima de el con el botón derecho y bajamos hasta GIT y despues Resolve Conflicts

Image
Resolver conflictos de GIT

Se nos abrirá una ventana con todos los archivos que tienen conflictos y a la derecha tenemos 3 opciones: 

Accept Yours: Con esta opción aceptaras todos los cambios que estén en la rama local, descartando los de la rama remota. 

Accept Theirs: Con esta opción aceptaras todos los cambios que estén en la rama remota que has querido fusionar, descartando los locales. 

Merge: Con esta opción abrimos la zona de edición manual

Image
vlc_mTNkRONg9d

En la zona de edición manual se nos abre una ventana con tres columnas

Image
vlc_5nynlz69dx

En la columna de la Izquierda te abre el archivo con los cambios de la rama develop (locales).

En la columna de la derecha te abre el mismo archivo pero con los cambios que hay en la rama remota que has intentado fusionar (ED-75). 

Y en el centro el resultado de como quedará el archivo una vez vayamos seleccionando que cambios, de cada lado, queremos. Para ello nos ayudamos de las flechas que hay al lado de los cambios. 

 

Hemos visto como resolver conflictos de git con PhpStorm. 

Si necesitas mas ayuda con PhpStorm, visita este enlace

Image
Compilar SASS o SCSS con PHPstorm
Compilar SASS o SCSS con PHPstorm : File Watcher

File Watcher es un procesador para compilar SASS o SCSS con PHPstorm, nuestra herramienta favorita de desarrollo con Drupal. :)

Vamos a mostrar como configurarla, paso a paso:

Lo primero que tenemos que hacer es tener nuestros archivos bien ordenados dentro de nuestro theme. 

Compilar SASS o SCSS con PHPstormDentro del theme, en la raíz del mismo,  tendremos una carpeta llamada CSS con los archivos que compilará  File Watcher. Y en la misma ruta otra carpeta con los SASS o SCSS que necesitamos compilar, ejemplo:

En mi theme, mi estructura es la siguiente: todo el css se compila en el archivo Style.css, pero dentro de la carpeta sass, tengo toda una estructura de componentes que se cargan en mi Style.scss con un @import.

De esta manera todos mis estilos están ordenados y los proceso según el orden que me beneficie.

Previo a todos los pasos debemos tener instalado, Sass en nuestro sistema, aqui os dejo el comando de ubuntu: 

npm install -g sass

Ahora vamos a configurar la herramienta del PhpStorm:Como configurar una FTP en PHPStorm

Vamos a Inicio - Settings  y dentro en  tools - File Watcher . Pulsamos el botón + para añadir un nuevo compilador. Elegimos el  tipo de hoja de estilo que vamos a usar de la lista (SASS y SCSS usan el mismo motor), y una vez dentro,  abrimos  el desplegable

Working Directory and Environment Variables.

Compilar SASS o SCSS con PHPstorm  Compilar SASS o SCSS con PHPstorm  Compilar SASS o SCSS con PHPstorm

Dentro hay 3 imputs (marcadas en rojo en la imagen) que tenemos que reescribir con nuestras rutas:

Arguments$FileName$:$ProjectFileDir$/web/themes/custom/auladrupal/css/$FileNameWithoutExtension$.css

Output paths to refresh: $ProjectFileDir$/web/themes/custom/auladrupal/css/$FileNameWithoutExtension$.css:$ProjectFileDir$/web/themes/custom/auladrupal/css/$FileNameWithoutExtension$.css.map

Working directory: $ProjectFileDir$/web/themes/custom/auladrupal/sass/

Como configurar una FTP en PHPStorm

una vez tengamos todo configurado, solo tenemos que probar a realizar algún cambio en nuestro código Front para ver si se compila. Este proceso es muy rápido por tanto seguramente no veáis que lo ha hecho. Para comprobarlo, id a la carpeta CSS y verificar que ese cambio esta en el style.css  

 

Hemos aprendido a Compilar SASS o SCSS con PHPstorm usando File Watcher

Si necesitas mas ayuda de PHPstorm ve al blog desde aqui 

Enlace para descargar el PHPStorm

Image
Como configurar una FTP en PHPStorm
Como configurar una FTP en PHPStorm

PhpStorm tiene muchas utilidades de las cuales hablaremos en varios artículos de ayuda. Ahora vamos a explicar cómo configurar una FTP en PHPStorm.

Esto nos puede ser de mucha utilidad cuando no trabajamos con git, o cuando necesitamos subir archivos 

En el menú superior, desplegamos Tools y dentro Deployement. Abajo del todo vamos a la ultima opción “Browse Remote Host

Como configurar una FTP en PHPStorm

 

Para añadir nuestro servidor debemos cubrir el host ( IP o dominio ), el Username y el Password. Probaremos con el Test conectión si nuestros datos son los correctos y a continuación abriremos el icono de la carpetita en Root path para indicarle la ruta “dentro del server” en la que nos queremos situar.

 

Como configurar una FTP en PHPStorm

 

En la siguiente pestaña de Mappings es importante igualar el directorio remo al local, de la tal manera que ambos contengan las carpetas vendor, web etc… bajo la misma raíz.

 

Como configurar una FTP en PHPStorm

 

Una vez tengamos bien configurado nuestro FTP, es muy útil para poder hacer subidas, descargas e incluso comparaciones con el servidor. Solo tenemos que pulsar con el botón derecho sobre un archivo o ruta, bajamos hasta Deployement y se nos abrirán las opciones de subida, bajada y sincronización.

 

Como configurar una FTP en PHPStorm

Esto ha sido Como configurar una FTP en PHPStorm

Puedes descargar PHPStorm desde aqui