Image
Drupal Modular net4gym
Drupal modular: AulaDrupal lanza su primera APP de Drupal

En AulaDrupal estamos de celebración, ya que acabamos de lanzar de manera oficial, nuestra primera aplicación web de Drupal modular, para centros deportivos y gimnasios .

Esta aplicación web es un software de gestión de cuotas de gimnasio,  actividades, bonos de entrenamiento y productos de tienda, así como control de entradas, inscripciones en eventos, tareas, remesas bancarias, auto-renovación de cuotas, control de stock, inventario, QR.... y muchísimos más módulos que hacen más ameno y ágil el día a día en un centro deportivo.

Con esta aplicación los clientes podrán autogestionarse, no necesitarán contactar para contratar o gestionar ningún servicio ya que podrán dar de alta y baja cada uno de los módulos que tenemos en función de sus necesidades. 

 

Todo lo que se necesita en un software, presentado de la manera más sencilla.

 

Un software completo, no tiene porque ser difícil de manejar.

Net4Gym busca el mayor rendimiento oculto tras el más sencillo sistema.

A mayor sencillez mayor usabilidad.

Es un programa ágil, completo y con intuitivas opciones que harán que tu día a día sea más ameno. Reduciendo al completo todas las horas de gestión, contabilidad y control de los empleados, productos, local,...

 

Image
Drupal modular NetforGym

 

Visita la web de la aplicación para conocer más nuestra primera aplicación de Drupal modular. 

Puedes visitar la web del software en https://www.netforgym.com. 

100% Drupal, 100% modular y autogestionable.

 

 

 

 

 

Image
Como ajustar y centrar una imagen en un videoframe
Como ajustar y centrar una imagen en un videoframe

Como ajustar y centrar una imagen en un videoframe. En este tutorial vamos a ver como ajustar y centrar una imagen subida por nosotros como poster al frame de un video.

Soluciones hay diversas, y cada maestrillo tiene su librillo, pero aquí voy a explicar la que me ha servido para hacer el ajuste.

Nos encontramos con la situación de que si el video es un video subido por nosotros, por defecto lo encontraremos como “display: none” hasta que se ejecute el play, y de ser un video de Youtube o Vimeo embebido en un iframe encontraremos que el iframe también está en “display: none” y además posicionado en absoluto. En ambos casos, si nos basamos en estos dos elementos como base, veremos que el contendor no tiene ni altura ni anchura, ya que ningún hijo se la está dando.

Image
Como ajustar y centrar una imagen en un videoframe

Para empezar con la solución lo primero es ir a modules/contrib/layoutcomponent/modules/lc_simple_video/templates donde encontraremos un twig con el siguiente código:

<div class="videoimage">
    {{ content.field_sv_image }}
    {#      {{ content|without('field_sv_video_type', 'field_sv_upload_video', 'field_sv_video') }}#}
    {% if content.field_sv_video_type['#items'][0].value == 'video_url' %}
        {{ content.field_sv_video }}
    {% else %}
        {{ content.field_sv_upload_video }}
    {% endif %}
</div>
Image
Como ajustar y centrar una imagen en un videoframe

 

Copiamos el archivo del twig y lo ponemos en la parte custom de nuestro tema. Así que iremos a themes/custom/nombre_del_proyecto/templates y lo pegamos ahí.

Como se dan dos situaciones de video, un video embebido de una url y un video subido por nosotros, lo vamos a separar en dos bloques diferentes ayudándonos de la variable que nos proporciona el twig, dejando un código de la siguiente manera:

<div class="videoimage">
    {#      {{ content|without('field_sv_video_type', 'field_sv_upload_video', 'field_sv_video') }}#}
    {% if content.field_sv_video_type['#items'][0].value == 'video_url' %}
    <div class="videoimage-url">
        {{ content.field_sv_image }}
      <div class="videoimage__video">
        {{ content.field_sv_video }}
      </div>
    </div>
    {% else %}
      <div class="videoimage-upload">
          {{ content.field_sv_image }}
          <div class="videoimage__video">
            {{ content.field_sv_upload_video }}
          </div>
      </div>
    {% endif %}
</div>
Image
Como ajustar y centrar una imagen en un videoframe

 

Con esto tenemos listo el twig, ahora vamos a hacer la magia en el CSS, bueno, en nuestro caso SCSS.

Para ello hay que tener clara una cosa, ya que la imagen va a ser posicionada y como  tanto el video como el iframe en ambos casos están a “display: none” o posicionados, ninguno de ellos genera altura en el contendor, por lo que la imagen no se verá.

En el caso de un video subido por nosotros, pondremos el video a “display: block”, esto generará la altura y anchura que debe de tener la caja. Ahora basta con posicionar la imagen y por encima, para ello nos aseguramos que todos los padres de la imagen tengan la altura y la anchura del contendor, que todo lo que sobresalga de ellos no se visualice y que cuando tengan la clase “hidden” desaparezcan.

Ahora, con la imagen subida, hacemos que la imagen tenga una anchura y altura adaptable pero que como mínimo siempre sea la del contendor y su máximo sea la que deba por defecto, con esto hecho la posicionamos en el medio.

En el caso de un video embebido de Youtube o Vimeo, como necesitamos que el contendor tenga una altura y que esta altura sea variable para que la maquetación sea líquida y que el responsive nos venga ya dado, no declararemos un height en el contendor, si no que usaremos un paddíng en porcentaje sabiendo el ratio entre el alto y el ancho de nuestro video. En nuestro caso el ratio en porcentaje de nuestro video es de 56.25%.

Una vez añadido este padding, nuestra caja ya tiene una altura, por lo que posicionar la imagen será igual que como con el vídeo subido, hacemos que los padres tengan un tamaño igual al contenedor, que se oculten si tienen la clase “hidden” y posicionamos la imagen de la misma manera.

El código SCSS resultante de todo esto quedaría así:

.videoimage{
  position: relative;
  &-upload{
    .field--name-field-sv-image{
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 1;
      overflow: hidden;
      margin:0;
      .contextual-region,
      .field--name-field-media-image,
      .field__item{
        display: block;
        width: 100%;
        height: 100%;
        overflow: hidden;
        &.hidden{
          display: none;
        }
      }
      img{
        position: absolute;
        width: auto;
        height: auto;
        min-height: 100%;
        min-width: 100%;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        max-height: initial!important;
      }
    }
    .videoimage__video{
      video{
        display: block!important;
      }
    }
  }
  &-url{
    .field--name-field-sv-image {
      margin: 0;
      padding-top: 56.25%;
      overflow: hidden;
      .contextual-region,
      .field--name-field-media-image,
      .field__item{
        display: block;
        width: 100%;
        height: 100%;
        overflow: hidden;
        &.hidden{
          display: none;
        }
      }
      .contextual-region{
        position: absolute;
        top: 0;
        left: 0;
      }
      img{
        position: absolute;
        width: auto;
        height: auto;
        min-height: 100%;
        min-width: 100%;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        max-height: initial!important;
      }
    }
  }
}
Image
Como ajustar y centrar una imagen en un videoframe
Image
Como ajustar y centrar una imagen en un videoframe

 En caso de trabajar directamente en CSS el código sería:

.videoimage {
  position: relative;
}
.videoimage-upload .field--name-field-sv-image {
  position: absolute;
top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
  margin: 0;
}
.videoimage-upload .field--name-field-sv-image .contextual-region,
.videoimage-upload .field--name-field-sv-image .field--name-field-media-image,
.videoimage-upload .field--name-field-sv-image .field__item {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.videoimage-upload .field--name-field-sv-image .contextual-region.hidden,
.videoimage-upload .field--name-field-sv-image .field--name-field-media-image.hidden,
.videoimage-upload .field--name-field-sv-image .field__item.hidden {
  display: none;
}
.videoimage-upload .field--name-field-sv-image img {
  position: absolute;
  width: auto;
  height: auto;
  min-height: 100%;
  min-width: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-height: initial !important;
}
.videoimage-upload .videoimage__video video {
  display: block !important;
}
.videoimage-url .field--name-field-sv-image {
  margin: 0;
  padding-top: 56.25%;
  overflow: hidden;
}
.videoimage-url .field--name-field-sv-image .contextual-region,
.videoimage-url .field--name-field-sv-image .field--name-field-media-image,
.videoimage-url .field--name-field-sv-image .field__item {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.videoimage-url .field--name-field-sv-image .contextual-region.hidden,
.videoimage-url .field--name-field-sv-image .field--name-field-media-image.hidden,
.videoimage-url .field--name-field-sv-image .field__item.hidden {
  display: none;
}
.videoimage-url .field--name-field-sv-image .contextual-region {
  position: absolute;
  top: 0;
  left: 0;
}
.videoimage-url .field--name-field-sv-image img {
  position: absolute;
  width: auto;
  height: auto;
  min-height: 100%;
  min-width: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-height: initial !important;
}

Y esto ha sido como ajustar y centrar una imagen a un frame de video, 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.

 

Esto ha sido:  Como ajustar y centrar una imagen en un videoframe.

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
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
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