jcatala.net

Compartint el coneixement

UNIX

GNU/Linux

Drupal i PHP

XHTML/CSS

Python

Android

Viatges

Off Topic



El meu Twitter El meu Flickr El meu Youtube El meu Instagram El meu Linkedin El meu Tumblr El RSS de la pagina
Logo Jcatala

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

19 de Juliol de 2016 per joan

exportant camps de Drupal 6 a fitxers CSV
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ó).

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

19 de Juliol de 2016 per joan

Drupal Vote Up Down export data to external MySQL
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 < 0 then value else 0 end) totalNegatius, SUM(value) AS Sumeta FROM votingapi_vote WHERE content_type="node" GROUP BY content_id;

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 < 0 then value else 0 end) totalNegatius, SUM(value) AS Sumeta FROM votingapi_vote WHERE content_type="node" AND content_id="3873" GROUP BY content_id

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

18 de Juliol de 2016 per joan

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

Migrant un Drupal complet a un nou Drupal o nodes entre distints Drupals

16 de Juliol de 2016 per joan

Migrant Drupal
En aquest article intente explicar breument alguns camins per al repte de migrar un projecte web Drupal 6 a un Drupal 7, o si no fas servir massa funcionalitats amb mòduls, directament a Drupal 8. Per què no? la valoració l'has de fer tu analitzant les funcionalitats i requisits tècnics de la teua web. Drupal 8 encara està una miqueta verd, en comparació amb Drupal 7, però el core és molt millor, sense dubte.

El primer pas quan vols actualitzar i migrar tot un Drupal a una nova versió és el camí tradicional: fer servir de update.php fins a tenir la última versió de Drupal 6, i a continuació descarregar la última versió de la nova versió del core que vullgues, 7.x o 8.x i fer un upgrade.

Funció de PHP que acurta simplement el domini d'una adreça determinada

15 de Juliol de 2016 per joan

A la web de Klaku, tinc la funcionalitat just baix de la notícia que mostra el host des d'on ve la notícia. Per exemple, si la notícia té una adreça llarga tipo "vilaweb.cat/seccio/cultura/pep-botifarra-tocara-dema", jo el que vull mostrar es: Font --> vilaweb.cat.

Aleshores, amb la funció preg_match podem abreviar tota una url llarga i, fins i tot, ja siga aquesta http o https:

<!-- formateig del host de la font de la noticia.  -->

<?php
preg_match
("/^(https?:\/\/)?([^\/]+)/i",$myrow['ligilo'], $coin);
$nombre_host_fuente_noticia = $coin[2];
?>


<span class="noticia_informacio_publicacio1">Adreso: <?php echo $nombre_host_fuente_noticia;?></span><br />

Drush or die

11 de Juliol de 2016 per joan

Els meus apunts de Drushejant, que és gerundi

Ací vaig apuntant alguns apunts i cosetes diverses, aleshores aquest article també anirà ampliant-se conforme durant el temps necessite apuntar noves idees i alguns truquets. Per a resumir: avui en dia instal·lem drupals, els actualitzem, instal·lem mòduls i els activem, esborrem cachés i més coses des de la consola, sense necessita de fer clicks ni descàrregues manuals des de la web del projecte Drupal.


Informacions bàsiques
---------------------------------------------------------------

Drush és programari lliure, amb Python, i està disponible a totes les plataformes com FreeBSD, OpenBSD, GNU/Linux i altres merdes. Amb Drush, executem una ordre en consola i rebem una resposta. Per exemple, per tal de saber l'estat de la nostra instal·lació, les versions dels llenguatges i sistema operatiu, etc:

# drush core-status

Drupal version                  :  7.50                        
Site URI                        :  http://default              
Database driver                 :  mysql                       
Database username               :  joan                        
Database name                   :  drupal1_db                  
Database                        :  Connected                   
Drupal bootstrap                :  Successful                  
Drupal user                     :  Anonymous                   
Default theme                   :  bartik                      
Administration theme            :  seven                       
PHP executable                  :  /usr/local/bin/php          
PHP configuration               :                              
PHP OS                          :  FreeBSD                     
Drush version                   :  6.5.0                       
Drush configuration             :                              
Drush alias files               :                              
Drupal root                     :  /usr/local/www/apache24/data
Site path                       :  sites/default               
File directory path             :  sites/default/files         
Temporary file directory path   :  /tmp 

A partir d'ara, no cal anar ficant les respotes, simplement explique breument què fa cada ordre principal de Drush. Comencem.

Quins mòduls tinc instal·lat?

drush pml

Quins mòduls tinc a /sites/all/modules?

drush pm-list --type=Module

Quins themes tinc a /sites/all/themes?

drush pm-list --type=Theme

Clean URLs / URLs netes de Drupal a l'Apache amb FreeBSD

10 de Juliol de 2016 per joan

Clean URLs / URLs netes de Drupal a Apache amb FreeBSD

Ja siga si tens un únic lloc web o tens una configuració de virtual hosts a l'Apache (versió 2.4, en el meu cas), per a tenir les URLs netes cal activar el mod_rewrite de l'Apache.

Editarem /usr/local/etc/apache24/httpd.conf i descomentem:

LoadModule rewrite_module libexec/apache24/mod_rewrite.so

Reiniciem el servei de l'Apache, i ja pots configurar les URLs netes des de Drupal.

Apache 2.4 + PHP 5.6 + MySQL + PhpMyAdmin a FreeBSD

9 de Juliol de 2016 per joan

Apache 2.4 + PHP 5.6 + MySQL + PhpMyAdmin a FreeBSDCompilem ports amb make install clean o si volem configurar els ports farem make config:

/usr/ports/www/apache24
/usr/ports/www/php56
/usr/ports/www/php56-extensions
/usr/ports/www/mod_php56
/usr/ports/databases/mysql56-server
/usr/ports/databases/phpmyadmin

Afegim a la configuració d'Apache /usr/local/etc/apache24/httpd.conf:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
   SetHandler application/x-httpd-php-source
</FilesMatch>

Podem saber en tot moment els mòduls que tenim activats a l'Apache amb apachectl -t -D DUMP_MODULES

[joan@pcbsd-1186] /usr/ports# apachectl -t -D DUMP_MODULES
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
mpm_prefork_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)
php5_module (shared)
[joan@pcbsd-1186] /usr/ports#

Al fitxer rc.conf afegirem:

apache24_enable="YES"
mysql_enable="YES"
php_fpm_enable="YES"

Uns apunts per a tenir activada la llibreria Animate.css

6 de Juliol de 2016 per joan

El Codi del projecte el tenim a https://github.com/daneden/animate.css i la demo dels efectes la tenim ací. Si volem tindre-ho configurat al nostre projecte web, afegim al head les següents dos línies:

<link rel="stylesheet" type="text/css" media="all" href="css/animate.css">

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

I també el següent codi javascript:

<script language="javascript">
$(function() {
$("#ref").click(function() {
         animate(".demo", 'rubberBand');
         return false;
    });
});

function animate(element_ID, animation) {
     $(element_ID).addClass(animation);
     var wait = window.setTimeout( function(){
     $(element_ID).removeClass(animation)}, 1300
     );
}
</script>

Migrant un servidor d'una antiga Raspberry a una Raspberry Pi 2

2 de Juliol de 2016 per joan

Migrant un servidor amb serveis web i de bases de dades principalment
Per a facilitar les gestions d'administració, d'accés SSH i tal, afegirem a /etc/hosts els noms i IPs de ambdues RPi 2, i li anomenarem "nuvolet.benicass.im" i "nuvolet2.benicass.im".

192.168.1.105   nuvolet    nuvolet.benicass.im
192.168.1.109   nuvolet2   nuvolet2.benicass.im

M'he baixat la FreeBSD 11-CURRENT del repositori oficial de FreeBSD i he cremat la tarjeta MicroSD. Per defecte, aquest sistema arm té l'usuari root amb contrasenya 'root', i l'usuari freebsd amb contrasenya 'freebsd'. I té l'SSH activat.

Primer pas, instal·lació de paquets a la nova Raspberry:

Mirem les aplicacions que tenim instal·lades a la Rasberry nuvolet.benicass.im amb pkg info i procedim a fer les instal·lacions en el nuvolet2:

pkg install nmap bash emacs-nox11 freecolor nload tmux nginx php55 php55-curl php55-ctype php55-gd php55-json php55-mysql php55-pdo_mysql php55-xml php55-zip php55-zlib mysql56-server mysql56-client git dropbox-uploader