www.keopx.net https://www.keopx.net/rss.xml es Drupal Template Helper para Drupal 8 https://www.keopx.net/blog/drupal-template-helper-para-drupal-8 <span class="field field--name-title field--type-string field--label-hidden">Drupal Template Helper para Drupal 8</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><strong>Drupal Template Helper</strong> sirve para destacar las plantillas twig sugeridas en cada caso y el preprocess a utilizar.</p> <p>Esta herramienta es muy cómoda y sencilla de utilizar, facilita muchísimo el poder encontrar las plantillas que son necesarias para cada caso y saber ademas que las esta utilizando.</p> <p>Recordad que es necesario limpiar la cache tras añadir una nueva plantilla para que Drupal sea capaz de reconocer dicho fichero.</p> <p>Este post es únicamente un traducción de la documentación oficial: <a href="https://github.com/arshad/drupal-template-helper">https://github.com/arshad/drupal-template-helper</a></p> <h2>Drupal Template Helper</h2> <p>Es una extensión de <em>Chrome DevTools</em> para las plantillas de Drupal 8, Drupal 7 y Backdrop CMS: <a href="https://chrome.google.com/webstore/detail/ppiceaegogijpjodfpiimifhbnaifbnn">https://chrome.google.com/webstore/detail/ppiceaegogijpjodfpiimifhbnaifbnn</a></p> <p><a href="https://cloud.githubusercontent.com/assets/124599/14293486/d561f37e-fb7d-11e5-8ed0-952d520678a4.png" target="_blank"><img alt="drupal-template-helper" src="https://cloud.githubusercontent.com/assets/124599/14293486/d561f37e-fb7d-11e5-8ed0-952d520678a4.png" /></a></p> <h3>Instalación</h3> <h5>PASO 1: InstalAR Y configurAR.</h5> <ol><li>Descargue e instale la extensión <em>Drupal Template Helper</em> para <em>Chrome</em>.</li> <li>Haga clic en el icono de la extensión.</li> <li>Haga clic en <em>Opciones</em> bajo <strong>Drupal Template Helper</strong>.</li> <li>Agregue las URL de los sitios para habilitar la extensión. Ejemplo: <a href="http://drupal.dev">http://drupal.dev</a>, <a href="http://www.drupal.dev">http://www.drupal.dev</a>.</li> <li>Guardar.</li> </ol><h5>PASO 2: HABILITAR LA API EXPERIMENTAL DEL CHROME.</h5> <ol><li>Ve a <em>chrome://flags/#enable-devtools-experiments</em>, busca <strong>Experimental Extension APIs</strong> y <strong>Developer Tools experiments</strong>, hacer click en "<em>Enable</em>" enlaces, y reinicia Chrome.</li> <li>Abrir <em>DevTools</em> y hacer click en <em>Settings</em>.</li> <li>Busca en la pestaña <strong>Experiments</strong> y activa <strong>Allow custom UI themes</strong>. Ver la siguiente captura. No olvides reiniciar nuevamente Chrome.</li> </ol><p><a href="https://cloud.githubusercontent.com/assets/124599/14293054/e6350e72-fb7b-11e5-973a-31794db51e4d.png" target="_blank"><img alt="drupal-template-devtools-theme-ui" src="https://cloud.githubusercontent.com/assets/124599/14293054/e6350e72-fb7b-11e5-973a-31794db51e4d.png" /></a></p> <p>Nota: Si desea ocultar los comentarios de Twig, desactive <strong>Show HTML comments</strong> en <strong>Preferences</strong>.</p> <p><a href="https://cloud.githubusercontent.com/assets/124599/21719927/b5c16cb2-d439-11e6-8cc7-a84192aa822a.png" target="_blank"><img alt="drupal-template-devtools-preferences" src="https://cloud.githubusercontent.com/assets/124599/21719927/b5c16cb2-d439-11e6-8cc7-a84192aa822a.png" /></a></p> <h5>PASO 3: HABILITAR EL TEMA DEBUG</h5> <ul><li>Para Drupal 8, ver el articulo de Phil's article: <a href="https://www.chapterthree.com/blog/drupal-8-theming-setting-theme-debugging">https://www.chapterthree.com/blog/drupal-8-theming-setting-theme-debugging</a></li> <li>Para Drupal 7, ver <a href="https://www.drupal.org/node/223440">https://www.drupal.org/node/223440</a>.</li> </ul><h3>Uso</h3> <p>Inspeccionar un elemento usando <em>DevTools</em> y haciendo click sobre <strong>Templates</strong> en la barra de <em>DevTools</em>.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Lun, 03/07/2017 - 15:02</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/drupal-7x" hreflang="es">Drupal 7.x</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/drupal-7x" hreflang="es">Drupal 7.x</a></div> <div class="field__item"><a href="/tag/twig" hreflang="es">Twig</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=272&amp;2=field_comments&amp;3=comment" token="d96fs2f8NKd88q03-l2WzEa5JPGEsqEWuRLD9OvvCsM"></drupal-render-placeholder> </section> Mon, 03 Jul 2017 13:02:10 +0000 keopx 272 at https://www.keopx.net https://www.keopx.net/blog/drupal-template-helper-para-drupal-8#comments Debugging Drush scripts con Xdebug y PhpStorm https://www.keopx.net/blog/debugging-drush-scripts-con-xdebug-y-phpstorm <span class="field field--name-title field--type-string field--label-hidden">Debugging Drush scripts con Xdebug y PhpStorm</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Para configurar correctamente un entornos para depurar con <a href="https://xdebug.org/">Xdebug</a> y <a href="https://www.jetbrains.com/phpstorm/">PhpStorm</a> los comandos <a href="https://github.com/drush-ops/drush">Drush</a> es necesario realizar una serie de configuración especifica.</p> <ul><li>Configurar una <strong><em>PHP Web Application</em> </strong>para depurar por la línea de comandos.</li> <li>Todo el código ejecutado debe estar disponible en el proyecto, incluyendo <strong>drush</strong>. <ul><li>Ej. Instalando drush como dependencia de composer (también, recuerde ejecutar drush desde su proyecto).</li> </ul></li> <li>Habilitar depuración <strong>xdebug</strong> para la línea de comandos.</li> </ul><pre> <code class="language-bash">sudo phpenmod xdebug</code></pre><ul><li>Un enlace simbólico de xdebug.ini de mi directorio<em> /etc/php/7.0/cli/conf.d</em> como estaba usando en <em>/etc/php/7.0/apache/conf.d</em> para la depuración web.</li> <li> <ul></ul><p> Ejemplo de configuración:</p></li> </ul><pre> <code class="language-bash">sudo vi /etc/php/7.0/cli/conf.d/20-xdebug.ini</code></pre><p>Y añadimos:</p> <pre> <code class="language-ini">zend_extension=xdebug.so xdebug.remote_connect_back = 1 xdebug.default_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_enable = 1 xdebug.remote_port = 9000 xdebug.remote_handler = dbgp xdebug.max_nesting_level = 500 xdebug.idekey = PHPSTORM xdebug.profiler_enable_trigger = 1</code></pre><p>Utilice el botón "<strong>Listen for PHP Debug connections</strong>" de <strong>PhpStorm</strong>:</p> <ul><li>Establezca el cliente de depuración remota en la línea de comandos utilizando:</li> <li>Editamos ~/.bashrc y añadimos:</li> </ul><pre> <code class="language-bash"># PHPstorm drush debug export XDEBUG_CONFIG="idekey=PHPSTORM" </code></pre><ul><li>Establezca la configuración del servidor. Asegúrese de que el nombre que utiliza coincide con el nombre del servidor que configuró en PhpStorm: <ul><li>PHP_IDE_CONFIG = PHPSTORM</li> </ul></li> <li>Ejecute drush.</li> </ul><p>Si quereis correr <a href="https://xdebug.org/">Xdebug</a> con <a href="https://www.docker.com/">Docker</a> y/o <a href="https://www.vagrantup.com/">Vagrant</a> os recomiendo este post: <a href="http://blokspeed.net/blog/2016/02/debugging-drush-scripts-with-xdebug-and-phpstorm-on-vagrant-in-2016/">http://blokspeed.net/blog/2016/02/debugging-drush-scripts-with-xdebug-and-phpstorm-on-vagrant-in-2016/</a></p> <p>La verdad es que no recordaba como se configuraba el Xdebug para PhpStorm y Drush y gracias a <a href="https://twitter.com/jansev3n">Juanen</a> (<a href="https://www.drupal.org/u/jansete">jansete en Drupal</a>) me he vuelto a ponermelo bien y que menos que contribuirlo :D</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mar, 20/06/2017 - 19:32</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/drush" hreflang="es">Drush</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drush" hreflang="es">Drush</a></div> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/drupal-7x" hreflang="es">Drupal 7.x</a></div> <div class="field__item"><a href="/tag/xdebug" hreflang="es">Xdebug</a></div> <div class="field__item"><a href="/tag/debug" hreflang="es">debug</a></div> <div class="field__item"><a href="/tag/phpstorm" hreflang="es">PhpStorm</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=270&amp;2=field_comments&amp;3=comment" token="wgGKbiUh3crzk0RxGFdWGRUMK3JE0HDt8lHarEqlY3Q"></drupal-render-placeholder> </section> Tue, 20 Jun 2017 17:32:56 +0000 keopx 270 at https://www.keopx.net https://www.keopx.net/blog/debugging-drush-scripts-con-xdebug-y-phpstorm#comments Cómo instalar y configurar Redis en Drupal 8 https://www.keopx.net/blog/como-instalar-y-configurar-redis-en-drupal-8 <span class="field field--name-title field--type-string field--label-hidden">Cómo instalar y configurar Redis en Drupal 8</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Voy a explicar cómo <strong>instalar y configurar Redis en Drupal 8.</strong> </p> <p>Redis es una base de datos popular basado en key-value.</p> <p>En el caso de <a href="https://www.drupal.org">Drupal</a> se usa como sistema de cache para la parte (backend) de gestión de contenidos, donde el sistema de cachea "estático" de las paginas no es suficiente.</p> <p>Con Redis notaremos rápidamente la fluidez y rapidez con la que se puede gestionar toda la parte que requiere de usuarios autenticados.</p> <ol><li>Instalar <em>Redis</em>:<br /><pre> <code class="language-bash">sudo apt-get install redis-server</code></pre><p>También puedes ver <a href="https://github.com/keopx/docker-redis/blob/master/3.2/Dockerfile">Dockerfile</a></p> </li> <li>Instalar soporte de <em>Redis</em> para PHP:<br /><pre> <code class="language-bash">sudo apt-get install php7.0-redis sudo a2enmod php7.0-redis</code></pre><p>También puedes ver <a href="https://github.com/keopx/docker-apache-php/blob/master/7.0/Dockerfile">Dockerfile</a></p> </li> <li>Instalar el modulo <em>redis</em> de <em>Drupal</em>:<br /><pre> <code class="language-bash">composer require drupal/redis</code></pre><p>o</p> <pre> <code class="language-bash">drush dl redis</code></pre></li> <li> <p>Configurar <strong>redis</strong> para <strong>Drupal</strong>:</p> </li> </ol><p>En el <strong>settings.php</strong> o mejor en el drush añadir lo siguiente:</p> <pre> <code class="language-php">&lt;?php /** * Set redis configuration. */ /** @see: https://docs.platform.sh/frameworks/drupal8/redis.html */ if (extension_loaded('redis')) { // Set Redis as the default backend for any cache bin not otherwise specified. // $settings['cache']['default'] = 'cache.backend.redis'; $settings['redis.connection']['interface'] = 'PhpRedis'; // Can be "Predis". $settings['redis.connection']['host'] = 'redis'; $settings['redis.connection']['port'] = '6379'; // $settings['redis.connection']['password'] = "mypassword"; // If you are using passwords, otherwise, omit // Apply changes to the container configuration to better leverage Redis. // This includes using Redis for the lock and flood control systems, as well // as the cache tag checksum. Alternatively, copy the contents of that file // to your project-specific services.yml file, modify as appropriate, and // remove this line. $settings['container_yamls'][] = 'modules/contrib/redis/example.services.yml'; // Allow the services to work before the Redis module itself is enabled. $settings['container_yamls'][] = 'modules/contrib/redis/redis.services.yml'; // Manually add the classloader path, this is required for the container cache bin definition below // and allows to use it without the redis module being enabled. $class_loader-&gt;addPsr4('Drupal\\redis\\', 'modules/contrib/redis/src'); // Use redis for container cache. // The container cache is used to load the container definition itself, and // thus any configuration stored in the container itself is not available // yet. These lines force the container cache to use Redis rather than the // default SQL cache. $settings['bootstrap_container_definition'] = [ 'parameters' =&gt; [], 'services' =&gt; [ 'redis.factory' =&gt; [ 'class' =&gt; 'Drupal\redis\ClientFactory', ], 'cache.backend.redis' =&gt; [ 'class' =&gt; 'Drupal\redis\Cache\CacheBackendFactory', 'arguments' =&gt; ['@redis.factory', '@cache_tags_provider.container', '@serialization.phpserialize'], ], 'cache.container' =&gt; [ 'class' =&gt; '\Drupal\redis\Cache\PhpRedis', 'factory' =&gt; ['@cache.backend.redis', 'get'], 'arguments' =&gt; ['container'], ], 'cache_tags_provider.container' =&gt; [ 'class' =&gt; 'Drupal\redis\Cache\RedisCacheTagsChecksum', 'arguments' =&gt; ['@redis.factory'], ], 'serialization.phpserialize' =&gt; [ 'class' =&gt; 'Drupal\Component\Serialization\PhpSerialize', ], ], ]; /** Optional prefix for cache entries */ $settings['cache_prefix'] = 'any-text-you-want'; /** @see: https://pantheon.io/docs/redis/ */ // Always set the fast backend for bootstrap, discover and config, otherwise // this gets lost when redis is enabled. $settings['cache']['bins']['bootstrap'] = 'cache.backend.chainedfast'; $settings['cache']['bins']['discovery'] = 'cache.backend.chainedfast'; $settings['cache']['bins']['config'] = 'cache.backend.chainedfast'; /** @see: https://github.com/md-systems/redis */ // Use for all bins otherwise specified. $settings['cache']['default'] = 'cache.backend.redis'; // Use this to only use it for specific cache bins. $settings['cache']['bins']['render'] = 'cache.backend.redis'; // Use for all queues unless otherwise specified for a specific queue. $settings['queue_default'] = 'queue.redis'; // Or if you want to use reliable queue implementation. $settings['queue_default'] = 'queue.redis_reliable'; // Use this to only use Redis for a specific queue (aggregator_feeds in this case). $settings['queue_service_aggregator_feeds'] = 'queue.redis'; // Or if you want to use reliable queue implementation. $settings['queue_service_aggregator_feeds'] = 'queue.redis_reliable'; } </code></pre><p>Ver <a href="https://gist.github.com/keopx/7d5fe4d7a890c792c43bb79cf56718e0">https://gist.github.com/keopx/7d5fe4d7a890c792c43bb79cf56718e0</a></p> <p>Una ves hecho esto ir a la pagina de estado (<em>/admin/reports/status</em>) para comprobar que todo esta bien.</p> <p><img alt="Drupal Redis Setup" data-entity-type="file" data-entity-uuid="54abaecf-03e5-4c6e-8bfe-f1e23743c011" src="/sites/default/files/inline-images/Drupal_redis.png" /></p> <p>NOTA: si veis que cualquier parametrización es mejor, por favor comentadlo. Gracias.</p> <p>Referencias:</p> <ul><li><a href="https://gist.github.com/keopx/7d5fe4d7a890c792c43bb79cf56718e0">https://gist.github.com/keopx/7d5fe4d7a890c792c43bb79cf56718e0</a></li> <li><a href="https://docs.platform.sh/frameworks/drupal8/redis.html">https://docs.platform.sh/frameworks/drupal8/redis.html</a></li> <li><a href="https://pantheon.io/docs/redis/">https://pantheon.io/docs/redis/</a></li> <li><a href="https://github.com/md-systems/redis">https://github.com/md-systems/redis</a></li> <li><a href="https://github.com/keopx/docker-lamp">https://github.com/keopx/docker-lamp</a></li> </ul><p> </p> <p> </p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Dom, 18/06/2017 - 17:25</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/redis" hreflang="es">Redis</a></div> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/redis" hreflang="es">Redis</a></div> <div class="field__item"><a href="/tag/php" hreflang="es">php</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=269&amp;2=field_comments&amp;3=comment" token="qCV33nxDY_ejWnQ4sUSyDpnaLr7joysNjRbFgsrijWE"></drupal-render-placeholder> </section> Sun, 18 Jun 2017 15:25:35 +0000 keopx 269 at https://www.keopx.net https://www.keopx.net/blog/como-instalar-y-configurar-redis-en-drupal-8#comments Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao] https://www.keopx.net/talk/docker-entorno-de-trabajo-configurado-en-1-minuto-wcbilbao <span class="field field--name-title field--type-string field--label-hidden">Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 13/05/2017 - 16:09</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><a href="https://2017.bilbao.wordcamp.org/programa/">Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]</a></p> <p>Hablaremos de:</p> <ul><li>¿Qué es Docker?</li> <li>Ventajas de trabajar con Docker (vs VM)</li> <li>Instalación de Docker</li> <li>Componentes de Docker</li> <li>Principales comandos de Docker</li> <li>Docker-Compose</li> <li>Introducción a DockerHub</li> <li>DevOps</li> <li>Cómo usarlo en el día a día.</li> <li>Demo time.</li> </ul><p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/IhCNZCNJuoRy4m" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" width="595"></iframe></p> <div class="text-align-center" style="margin-bottom:5px"><strong><a href="//www.slideshare.net/keopx/docker-entorno-de-trabajo-configurado-en-1-minuto-wcbilbao" target="_blank" title="Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]">Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]</a> </strong> de <strong><a href="https://www.slideshare.net/keopx" target="_blank">Keopx </a></strong></div> </div> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/wordpress" hreflang="es">WordPress</a></div> <div class="field__item"><a href="/categoria/wordcamp" hreflang="es">WordCamp</a></div> <div class="field__item"><a href="/categoria/docker" hreflang="es">Docker</a></div> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/wordpress" hreflang="es">WordPress</a></div> <div class="field__item"><a href="/tag/wordcamp" hreflang="es">WordCamp</a></div> <div class="field__item"><a href="/tag/docker" hreflang="es">Docker</a></div> <div class="field__item"><a href="/tag/devops" hreflang="es">DevOps</a></div> <div class="field__item"><a href="/tag/wcbilbao" hreflang="es">WCBilbao</a></div> </div> </div> Sat, 13 May 2017 14:09:25 +0000 keopx 274 at https://www.keopx.net Contribuir a Drupal, de 0 a 100 https://www.keopx.net/talk/contribuir-drupal-de-0-100 <span class="field field--name-title field--type-string field--label-hidden">Contribuir a Drupal, de 0 a 100</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 06/05/2017 - 16:37</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><a href="https://2017.drupalcamp.es/sessions/contribuir-drupal-por-donde-comenzar-de-0-100-regiguren">Contribuir a Drupal, de 0 a 100, por donde empezar</a></p> <p>Suele suceder que cuando queremos contribuir a Drupal, no solemos encontrar los recursos necesarios para comenzar a contribuir. En esta presentación se pretende iniciar a la gente explicando cual es la mejor forma de comenzar y facilitar los recursos para el aprendizaje sin morir en el intento.</p> <p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/hLXeOBWMOYluOE" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" width="595"></iframe></p> <div class="text-align-center" style="margin-bottom:5px"><strong><a href="//www.slideshare.net/keopx/drupal-campspain2017-contribuir-a-drupal-de-0-a-100" target="_blank" title="[Drupal campspain2017] Contribuir a Drupal, de 0 a 100">Contribuir a Drupal, de 0 a 100</a> </strong> de <strong><a href="https://www.slideshare.net/keopx" target="_blank">Keopx </a></strong></div> <p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="540" mozallowfullscreen="" src="https://player.vimeo.com/video/218626931" webkitallowfullscreen="" width="960"></iframe></p> <p class="text-align-center"><a href="https://vimeo.com/218626931">Contribuir a Drupal de 0 a 100 - Rubén Egiguren #DrupalCampES</a></p> </div> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/contribuir" hreflang="es">Contribuir</a></div> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupalcamp" hreflang="es">DrupalCamp</a></div> </div> </div> Sat, 06 May 2017 14:37:07 +0000 keopx 275 at https://www.keopx.net Drupal 8: El poder de webform (antes yamlform) https://www.keopx.net/talk/drupal-8-el-poder-de-webform-antes-yamlform <span class="field field--name-title field--type-string field--label-hidden">Drupal 8: El poder de webform (antes yamlform)</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 06/05/2017 - 15:25</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Drupal 8: <a href="https://2017.drupalcamp.es/sessions/el-poder-de-webform-antes-yamform-regiguren">El poder de webform (antes yamlform)</a></p> <p>Sesión realizada en la <a href="https://2017.drupalcamp.es">DrupalCamp</a> 2017 en Madrid.</p> <p class="text-align-center"> <iframe allowfullscreen="true" frameborder="0" height="569" mozallowfullscreen="true" src="https://docs.google.com/presentation/d/1ucPeKBqHsU6oZOZtrprBzx-9FWvh-mSjgWZ55Pb1t-I/embed?start=false&amp;loop=false&amp;delayms=3000" webkitallowfullscreen="true" width="960"></iframe></p> <p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="https://player.vimeo.com/video/218628416" webkitallowfullscreen="" width="640"></iframe></p> <p class="text-align-center"><a href="https://vimeo.com/218628416">El poder de Webform (antes YamlForm) - Ruben Egiguren (keopx) y David Gil</a></p> </div> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> <div class="field__item"><a href="/categoria/talk" hreflang="es">Talk</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupalcamp" hreflang="es">DrupalCamp</a></div> <div class="field__item"><a href="/tag/webform" hreflang="es">Webform</a></div> </div> </div> Sat, 06 May 2017 13:25:22 +0000 keopx 273 at https://www.keopx.net Instalar certificados de Let's Encrypt - Free SSL/TLS Certificates en Debian / Ubuntu https://www.keopx.net/blog/instalar-certificados-de-lets-encrypt-free-ssltls-certificates-en-debian-ubuntu <span class="field field--name-title field--type-string field--label-hidden">Instalar certificados de Let&#039;s Encrypt - Free SSL/TLS Certificates en Debian / Ubuntu</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Activamos ssl para apache:</p> <pre> <code class="language-bash">a2enmod ssl</code></pre><p>Añadimos a nuestro site la configuración correcta:</p> <pre> <code class="language-apache">... &lt;VirtualHost *:443&gt; ServerAdmin keopx@keopx.net ServerName www.keopx.net DocumentRoot /var/www/keopx.net/docroot &lt;Directory /var/www/keopx.net/docroot/&gt; # Options FollowSymLinks Options SymLinksIfOwnerMatch AllowOverride All Require all granted &lt;/Directory&gt; ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On SSLCertificateFile /etc/letsencrypt/live/www.keopx.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.keopx.net/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf &lt;/VirtualHost&gt; &lt;VirtualHost *:80&gt; ServerName keopx.net Redirect 301 / http://www.keopx.net/ &lt;/VirtualHost&gt; ....</code></pre><p>Procedemos a instalar <strong>letsencrypt:</strong></p> <pre> <code class="language-bash">cd /opt git clone https://github.com/certbot/certbot.git letsencrypt</code></pre><p>Configuramos <strong>letsencrypt</strong>:</p> <pre> <code class="language-bash">nano /etc/letsencrypt/keopx.ini</code></pre><pre> <code class="language-ini">authenticator = webroot webroot-path = /var/www/keopx.net/docroot renew-by-default agree-dev-preview agree-tos email = keopx@keopx.net</code></pre><p>Procedemos a crear el certificado (duran 3 meses):</p> <pre> <code class="language-bash">/opt/letsencrypt/certbot-auto --config /etc/letsencrypt/keopx.ini --user-agent letsencrypt-ubuntu-webroo -d www.keopx.net certonly</code></pre><p>Ahora es necesario reiniciar apache:</p> <pre> <code class="language-bash">service apache2 reload</code></pre><h2>Automatizar renovaciones automáticas:</h2> <p>crontab -e</p> <pre> <code class="language-bash">6 0 1 * * /opt/letsencrypt/certbot-auto --config /etc/letsencrypt/phpmyadmin.isarea.ini --user-agent letsencrypt-ubuntu-webroot -d phpmyadmin.isarea.com certonly &amp;&amp; service apache2 reload</code></pre><p> </p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Vie, 09/12/2016 - 19:41</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/letsencrypt" hreflang="es">letsencrypt</a></div> <div class="field__item"><a href="/categoria/sistemas" hreflang="es">Sistemas</a></div> <div class="field__item"><a href="/categoria/gnu-linux" hreflang="es">GNU Linux</a></div> <div class="field__item"><a href="/categoria/apache2" hreflang="es">Apache2</a></div> <div class="field__item"><a href="/categoria/debian" hreflang="es">Debian</a></div> <div class="field__item"><a href="/categoria/ubuntu" hreflang="es">Ubuntu</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/ssl" hreflang="es">SSL</a></div> <div class="field__item"><a href="/tag/apache" hreflang="es">apache</a></div> <div class="field__item"><a href="/tag/sistemas" hreflang="es">Sistemas</a></div> <div class="field__item"><a href="/tag/gnu-linux" hreflang="es">GNU Linux</a></div> <div class="field__item"><a href="/tag/debian" hreflang="es">Debian</a></div> <div class="field__item"><a href="/tag/ubuntu" hreflang="es">Ubuntu</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title">Comentarios</h2> <a id="comment-2406"></a> <article role="article" data-comment-user-id="0" about="/comment/2406" typeof="schema:Comment" class="comment js-comment by-anonymous clearfix"> <span class="hidden" data-comment-timestamp="1481529425"></span> <footer class="comment__meta"> <article typeof="schema:Person" about="/user/0" class="profile"> </article> <p class="comment__author"><span rel="schema:author"><a rel="nofollow" href="http://front.id" lang="" typeof="schema:Person" property="schema:name" datatype="" class="username">Capy (no verificado)</a></span> </p> <p class="comment__time">Sáb, 10/12/2016 - 15:43 <span property="schema:dateCreated" content="2016-12-10T14:43:06+00:00" class="rdf-meta hidden"></span> </p> <p class="comment__permalink"><a href="/comment/2406#comment-2406" hreflang="es">Enlace permanente</a></p> </footer> <div class="comment__content"> <h3 property="schema:name" datatype=""><a href="/comment/2406#comment-2406" class="permalink" rel="bookmark" hreflang="es">Muy bueno</a></h3> <div property="schema:text" class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Gracias tenía agendado hacer esto en mi web y todavía no lo había buscado. A los favoritos!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2406&amp;1=default&amp;2=es&amp;3=" token="XKZRmaQE02eOBhDwVf2FSfXRCPk_vEfNYu7q-LsQSy4"></drupal-render-placeholder> </div> </article> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=268&amp;2=field_comments&amp;3=comment" token="ViRdZ4E193bGeokwU7Vx3JhRTMv5dcCOesVVnXH3wco"></drupal-render-placeholder> </section> Fri, 09 Dec 2016 18:41:34 +0000 keopx 268 at https://www.keopx.net https://www.keopx.net/blog/instalar-certificados-de-lets-encrypt-free-ssltls-certificates-en-debian-ubuntu#comments Jornada de Contribuir a Drupal en Biko https://www.keopx.net/talk/jornada-de-contribuir-drupal-en-biko <span class="field field--name-title field--type-string field--label-hidden">Jornada de Contribuir a Drupal en Biko</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Vie, 25/11/2016 - 16:50</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>En <a href="http://www.biko2.com/">Biko<sup>2</sup></a><span style="font-size: 11.6667px;"> realizamos una <a href="http://www.biko2.com/bikolabs/jornada-de-contribucion-a-drupal/">jornada de contribución a Drupal</a> para internamente poder aportar a la comunidad parte de lo que nos aporta.</span></p> <p><span style="font-size: 11.6667px;">Tras finalizar la jornada el resultado fue que tuvimos <strong>tres issues fixed</strong> y <strong>dos en RTBC</strong>, de ellas<strong> dos al Core</strong> y <strong>otra a contrib</strong>.</span></p> <p>Podéis darle un vistazo en:</p> <ul><li><a href="https://github.com/keopx/docker-drupal-contrib">https://github.com/keopx/docker-drupal-contrib</a></li> </ul><p>Este entorno contiene unos script para iniciar rápidamente el proyecto:</p> <ul><li><a href="https://github.com/keopx/docker-drupal-contrib#install-drupal">https://github.com/keopx/docker-drupal-contrib#install-drupal</a></li> </ul><p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/feQE7zd6BUc5f3" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" width="595"></iframe></p> <div class="text-align-center" style="margin-bottom:5px"><strong><a href="//www.slideshare.net/keopx/contribuir-a-drupal-67829228" target="_blank" title="Contribuir a Drupal">Contribuir a Drupal en Biko</a> </strong>de <strong><a href="https://www.slideshare.net/keopx" target="_blank">Keopx </a></strong></div> <p> </p> </div> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/contribuir" hreflang="es">Contribuir</a></div> <div class="field__item"><a href="/tag/biko" hreflang="es">Biko</a></div> </div> </div> Fri, 25 Nov 2016 15:50:36 +0000 keopx 276 at https://www.keopx.net Drupal 8: View con contenido relacionado filtrado con autocompletado https://www.keopx.net/blog/drupal-8-view-con-contenido-relacionado-filtrado-con-autocompletado <span class="field field--name-title field--type-string field--label-hidden">Drupal 8: View con contenido relacionado filtrado con autocompletado</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Vamos a ver como crear una <strong>view con contenido relacionado filtrado con autocompletado</strong> en <strong>Drupal 8.</strong></p> <p>He estado varios días dándole vueltas a este caso, probando diferentes módulos etc.</p> <p>Pregunte en los diferentes canales de <a href="https://www.drupal.org/irc">#IRC de Drupal</a> y nadie supo resolverlo, ni siquiera en el equipo dábamos con la opción correcta. Entre los que intentaron ayudarme, gracias por vuestro tiempo, no logramos dar con la solución. Puede que no me explicase bien, suele pasarme.</p> <p>Después de varios intentos fallido me empeñe en mirar en <strong>Relationships</strong> y probar varias opciones hasta que di con ello. Además de esto también es necesario el modulo <a href="https://www.drupal.org/project/views_autocomplete_filters">Views Autocomplete Filters</a>.</p> <p>Como es bastante complicado de explicarlo, me <strong>he creado un vídeo y un módulo</strong> con el ejemplo real para que pueda usarse como base.</p> <p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="480" src="https://www.youtube.com/embed/YT3HeSmZW1c" width="853"></iframe></p> <p>El ejemplo esta disponible en github con el nombre <strong>Demo Views Related Content with Automplete Filter</strong>:</p> <ul><li>Nombre del modulo: <a href="https://github.com/keopx/demo_related_autocomplete">demo_related_autocomplete</a></li> </ul><p>En caso de tener alguna duda siempre podréis contactarme por el IRC o añadir un comentario.</p> <p>Gracias por vuestro tiempo:</p> <ul><li><a href="https://www.drupal.org/u/aitor">Aitor Resano</a></li> <li><a href="https://www.drupal.org/u/fernandomagan">Fernando Magan</a></li> <li><a href="https://www.drupal.org/u/marcoscano">Marcos Cano</a></li> <li><a href="https://www.drupal.org/u/jlbellido">Jose Luis Bellido</a></li> <li> <p><a href="https://www.drupal.org/u/jsbalsera">Jesús Sánchez Balsera</a></p> </li> </ul></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 17/09/2016 - 17:29</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/views" hreflang="es">Views</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title">Comentarios</h2> <a id="comment-1820"></a> <article role="article" data-comment-user-id="0" about="/comment/1820" typeof="schema:Comment" class="comment js-comment by-anonymous clearfix"> <span class="hidden" data-comment-timestamp="1477127810"></span> <footer class="comment__meta"> <article typeof="schema:Person" about="/user/0" class="profile"> </article> <p class="comment__author"><span rel="schema:author"><a rel="nofollow" href="http://ecapy.com" lang="" typeof="schema:Person" property="schema:name" datatype="" class="username">Capy (no verificado)</a></span> </p> <p class="comment__time">Lun, 19/09/2016 - 11:32 <span property="schema:dateCreated" content="2016-09-19T09:32:11+00:00" class="rdf-meta hidden"></span> </p> <p class="comment__permalink"><a href="/comment/1820#comment-1820" hreflang="es">Enlace permanente</a></p> </footer> <div class="comment__content"> <h3 property="schema:name" datatype=""><a href="/comment/1820#comment-1820" class="permalink" rel="bookmark" hreflang="es">Muy buen aporte. Sobre todo…</a></h3> <div property="schema:text" class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Muy buen aporte. Sobre todo la forma en la que se aplican los exposed filters usando arguments. Eso fue nuevo para mi!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1820&amp;1=default&amp;2=es&amp;3=" token="CjYchAeWTDYYRW411lOgC_s_qn5Hx74xJWAUt3r5ghI"></drupal-render-placeholder> </div> </article> <a id="comment-3035"></a> <article role="article" data-comment-user-id="0" about="/comment/3035" typeof="schema:Comment" class="comment js-comment by-anonymous clearfix"> <span class="hidden" data-comment-timestamp="1493460627"></span> <footer class="comment__meta"> <article typeof="schema:Person" about="/user/0" class="profile"> </article> <p class="comment__author"><span rel="schema:author"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Isaw (no verificado)</span></span> </p> <p class="comment__time">Mar, 18/04/2017 - 15:33 <span property="schema:dateCreated" content="2017-04-18T13:33:48+00:00" class="rdf-meta hidden"></span> </p> <p class="comment__permalink"><a href="/comment/3035#comment-3035" hreflang="es">Enlace permanente</a></p> </footer> <div class="comment__content"> <h3 property="schema:name" datatype=""><a href="/comment/3035#comment-3035" class="permalink" rel="bookmark" hreflang="es">Genial!</a></h3> <div property="schema:text" class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Gracias por post!<br /> Me ha resuelto mi problema :-)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=3035&amp;1=default&amp;2=es&amp;3=" token="9LUv6iaNhDfKgF3fCKxEDLnnuFedfIbfiiXn7irm0MM"></drupal-render-placeholder> </div> </article> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=267&amp;2=field_comments&amp;3=comment" token="kEA1cFZdzalf_JIyBC-WFYxvNktoKNcYwm95EV6vqKo"></drupal-render-placeholder> </section> Sat, 17 Sep 2016 15:29:11 +0000 keopx 267 at https://www.keopx.net https://www.keopx.net/blog/drupal-8-view-con-contenido-relacionado-filtrado-con-autocompletado#comments Coder Sniffer for Drupal Coding Standards https://www.keopx.net/blog/coder-sniffer-drupal-coding-standards <span class="field field--name-title field--type-string field--label-hidden">Coder Sniffer for Drupal Coding Standards</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Install Coder with composer:</p> <pre> <code class="language-bash">composer global require drupal/coder</code></pre><p><strong>Custom setup using for Drupal Coding Standards.</strong></p> <p>Add symbolic path to support <em>Drupal</em> and <em>DrupalPractice</em> Standard:</p> <pre> <code class="language-bash">$ ln -s ~/.composer/vendor/drupal/coder/coder_sniffer/Drupal ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/Drupal $ ln -s ~/.composer/vendor/drupal/coder/coder_sniffer/DrupalPractice ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/DrupalPractice</code></pre><p>If you're using <em>bash</em>, edit <em>$HOME/.bashrc</em> (or <em>$HOME/.bash_profile</em>).</p> <pre> <code class="language-bash">alias drupalcs="~/.composer/vendor/bin/phpcs --colors --standard=~/.composer/vendor/drupal/coder/coder_sniffer/Drupal --extensions=php,module,inc,install,test,profile,theme,js,css,info,txt,md"</code></pre><p>Or if you added symbolic links:</p> <pre> <code class="language-bash">alias drupalcs="~/.composer/vendor/bin/phpcs --colors --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,js,css,info,txt,md"</code></pre><pre> <code class="language-bash">source .bashrc</code></pre><p>Execution example:</p> <pre> <code class="language-bash">$ drupalcs modules/custom/custom_crm FILE: ...ww/docroot/modules/custom/custom_crm/src/CrmConfigUri.php ---------------------------------------------------------------------- FOUND 3 ERRORS AFFECTING 3 LINES ---------------------------------------------------------------------- 3 | ERROR | [x] There must be one blank line after the namespace | | declaration 6 | ERROR | [x] Missing class doc comment 28 | ERROR | [x] Expected 1 newline at end of file; 0 found ---------------------------------------------------------------------- PHPCBF CAN FIX THE 3 MARKED SNIFF VIOLATIONS AUTOMATICALLY ---------------------------------------------------------------------- Time: 157ms; Memory: 7.75Mb </code></pre><p>References:</p> <ul><li><a href="https://www.drupal.org/project/coder">Coder</a></li> <li><a href="https://www.drupal.org/node/1419988">Installing Coder Sniffer</a></li> <li><a href="https://www.drupal.org/node/1587138">Command Line Usage</a></li> </ul></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 16/07/2016 - 11:38</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/drupal-7x" hreflang="es">Drupal 7.x</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal-7x" hreflang="es">Drupal 7.x</a></div> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/quality" hreflang="es">Quality</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=266&amp;2=field_comments&amp;3=comment" token="gqLjaRVS46gQeekKVb4H5xj9BaiDawhrBhoEKGIhT7s"></drupal-render-placeholder> </section> Sat, 16 Jul 2016 09:38:42 +0000 keopx 266 at https://www.keopx.net https://www.keopx.net/blog/coder-sniffer-drupal-coding-standards#comments