Insertant blocks manualment a qualsevol lloc de les plantilles Twig a Drupal 8

Image
Body

Ací en aquest article vull contar ràpidament una necessitat suficientment comuna a Drupal, però ara per a Drupal 8. Primer de tot, hem d'instal·lar el mòdul Twig Tweak, que té moltes funcions extres per al desenvolupament dels teus projectes web amb les plantilles Twig.

Una vegada està instal·lat, ja podem afegir el següent codi a la regió o div que vullguem de la nostra plantilla page.html.twig. Per exemple, vaig a mostrar un block que s'anomena "nom_del_meu_blog" amb:


{{ content.field_refhero }}

artícles
17

Solventant un error de settings_form_submit' not found or invalid function

Body

A Drupal 8, quan guardava un nou logo per a la web, m'apareixia un error que deia, més o menys: _settings_form_submit' not found or invalid function name in Drupal\Core\Form\FormSubmitter->executeSubmitHandlers() (line 116 of /home/leopathu/Public/drupal-8.0.0/core/lib/Drupal/Core/Form/FormSubmitter.php) i, finalment, no hem desava la informació i continuava tenint a la web el logo antic.

Vaig trobar la solució al comentari 3 del següent enllaç: https://www.drupal.org/node/2640208

artícles
17

Detectant la ruta de Drupal 8 per a fer canvis dinàmics

Image
Body

Ací un truquet molt xulo per a la versió 8 de Drupal. Per a començar, hem de saber que al fitxer EL_TEU_TEMA.theme és on deixem les variables que podrem anomenar més tard a les plantilles del nostre theme. Al meu cas, vaig a declarar la variable "el_path" que guarde la ruta actual.


// Vull controlar la ruta de Drupal 8 en cada moment
// per a fer seccions o blocks dinàmics segons la secció on navegue l'usuari.

$variables['el_path'] = $current_path = \Drupal::request()->getRequestUri();

artícles
17

Limitant el número de caràcters a les descripcions de les notícies de Klaku

Image
Body

Per tal de maquetar bé el llistat de notícies populars i notícies pendents o ĵuŝaj novaĵoj, aleshores tant des del PHP/MySQL he limitat a 180 caràcters des de la part del Frontend de Bootstrap com ara, he limitat el formulari d'inserció de les notícies.

El javascript que controla el textarea fent un contador i, si es passa de 180 caràcters atura l'escriptura i pinta el text de color roig:

I el HTML de Bootstrap és el següent:


Eblas skribi maksimume 180 literojn

artícles
17

Repensant KLAKU des de zero amb Bootstrap, PHP i Javascript

Image
Body

Després d'un estiu on cada setmana anava avançant alguna funcionalitat durant algunes hores lliures que trobava, vaig anar fent coses com Migrant un Drupal complet a un nou Drupal o nodes entre distints Drupals && Evolució, anades d'olla i millores al projecte web Klaku.net && Exportant tots els valors dels vots de Vote up/down de Drupal a una base de dades externa && Exportem dades des de Drupal 6 a un repositori central CSV i importem en les noves taules ara ja tenim funcionant KLAKU amb Bootstrap i PHP des de zero.

El sistema de puntuació es made in Joan sense widgets ni snippets externets, els ususaris i contrasenyes són els usuaris de l'antiga Klaku amb Drupal, encara que ara amb encriptació SHA1 més un algoritme propi per complicar-ho més, jeje, també les notícies, les categories i els comentaris són heretats de l'antiga web.

Encara queden algunes coses per fer, com urls netes, un sistema anti-spam, i altres coses, i també vindran problemes i petades màximes de coses que tal vegada no s'han analitzat bé, però ja està tot en marxa i a bon ritme ho anirem implementant.

artícles
17

Mostrant un block colapsat dins d'un Panel de Drupal fàcilment

Body

Mostrant un block colapsat dins d'un Panel de Drupal fàcilment

La idea és fer un formulari de satisfacció baix de totes les pàgines, però que ens aparega colapsat, i quan l'usuari fa clic sobre el títol, es desplega i et mostra el formulari pertinent.

Caldrà tenir instal·lat el Webform, per als formularis, el Panels Style Collapsible i el Collapsiblock, perquè els webform els transformarem a Block, i el farem amb l'efecte "collapsible".

L'afegim al Panel, com de costum, a la secció 'miscelanious', i una vegada el tenim posicionat, modifiquem la part de l'estil i li direm collapsible. I ja està.

Mostrant un block colapsat dins d'un Panel de Drupal fàcilment

Si volem que el formulari no es mostre a totes i cada una de les webs, anirem a la part de configuració del Block (perquè recorda que hem convertit eixa regió del Panel en un block) i afegim les pàgines que volem amagar, com de costum es fa als Blocks de Drupal.

Finalment, com que tenim una web amb el mòdul i18n en dues llengues, he tocat les regles de visibilitat per a que es mostre un formulari en castellà quan estem a la llengua espanyol, i un formulari en català quan l'usuari navega en català.

artícles
17

Exportem dades des de Drupal 6 a un repositori central CSV i importem en les noves taules

Image
Body

La idea és clara: faig consultes MySQL amb la informació que vull exportar, em cree un fitxer CSV i més tard importe eixa informació a la nova base de dades personalitzada.

Amb la següent consulta SQL aconseguisc tota la informació de la base de dades Drupal 6 de Klaku.net relativa a les notícies (codi id, títol, autor, categoria, url_font_noticia, vots_positius, vots_negatius i descripció).

artícles
17

Exportant tots els valors dels vots de Vote up/down de Drupal a una base de dades externa

Image
Body

La puntuació de les notícies del nou Klaku.net ha d'heretar les puntuacions de tots aquestos anys, no em val un "reiniciar i començar de nou" sinó que, tot i que vaig a reescriure la web i les bases de dades, vull que siga mantenint les dades de puntuacions dels anys passats a Drupal. Però, per a fer açò tenia que investigar com funciona el vote api i el mòdul vote up/dwn de Drupal 6.

M'he fet una consulta MySQL que contatena el sumatori dels vots positius amb un condicional i també els dels vots negatius amb un condicional, i finalment també els valors totals fent POSITIUS+(-NEGATIUS):


SELECT content_id, Sum(Case When value > 0 then value else 0 end) totalPositius, Sum(Case When value

Concretament, la consulta que veus a la captura de pantalla és aquesta:


SELECT content_id, Sum(Case When value > 0 then value else 0 end) totalPositius, Sum(Case When value

artícles
17

Evolució, anades d'olla i millores al projecte web Klaku.net

Body

Després de moltes hores intentant migrar Klaku.net des de l'actual versió Drupal 6 a versions més modernes (D6 6.38, D7 o D8), he tingut unes quantes reflexions personals i finalment he decidit migrar i evolucionar Klaku.net a una base de dades personalitzada i un desenvolupament amb Bootstrap + CSS3 + HTML5 com a front-end i PHP + MySQL + Ajax com a back-end

De moment, he fet el següent disseny:


CREATE TABLE novajxo ( id_novajxo int not null auto_increment, dato date, uzanto varchar(20), titolo varchar(140), ligilo varchar(200), total_pozitivoj int(6), total_malpozitivoj int(6), etikedoj varchar(140), kategorio varchar(50), sxtato varchar(10), PRIMARY KEY(id_novajxo));

CREATE TABLE uzanto ( id_uzanto int not null auto_increment, dato date, nomo varchar(20), retadreso varchar(100), pasvorto varchar(100), bildo varchar(60), PRIMARY KEY(id_uzanto));

CREATE TABLE kontrolo ( id_kontrolo int not null auto_increment, id_novajxo int(6), uzanto varchar(20), ip varchar(60), dato date, tipo_baloto varchar(20), PRIMARY KEY(id_kontrolo));

CREATE TABLE komento (id_komento int not null auto_increment, novajxo_id int(6), uzanto varchar(20), priskribo text, PRIMARY KEY (id_komento));

CREATE TABLE sekcioj (id_sekcio int not null auto_increment, nomo_sekcio varchar(50), PRIMARY KEY (id_sekcio));

artícles
17
Subscribe to categoria-drupal-i-php