IT

IT/Customisation de Wordpress

Wordpress offre une API permettant d'ajouter facilement des boutons dans l'éditeur, la Quicktags_API.

Il est donc facile de rajouter un bouton avec un appel du type :

QTags.addButton( id, display, arg1, arg2, access_key, title, priority, instance );

On peut ajouter dans le fichier functions.php du thème des appels de fonction du type (exemple avec un ajout de bouton pour le plugin Piwigo :

// Add Quicktags
function piwitag() {
  if ( wp_script_is( 'quicktags' ) ) {
  ?>
  <script type="text/javascript">
  QTags.addButton( 'piwitag', 'Piwitag', '[PiwigoPress id=xxx url="PIWIGO_URL" size="me" class="img-shadow"]', '', 'Piwitag', '', 'piwitag',  );
  </script>
  <?php
 }
}
add_action( 'admin_print_footer_scripts', 'piwitag' );

J'en profite pour noter la fonction pour déclencher une commande à la publication d'un post (dans mon cas, publication sur une room Matrix):

function published_send_notif( $post_id ){

 // If this is just a revision, don't send the email.
 if ( wp_is_post_revision( $post_id ) )
         return;
 //if( get_post( $post_id ) == null ) {
 $post_title = get_the_title( $post_id );
 $post_url = get_permalink( $post_id );
 $subject = 'Nouveau post';

 $message = "Nouveau post:/n /n";
 $message .= $post_title . ": " . $post_url;

 // Send notification in Matrix room.
 $command = "";
 exec(escapeshellcmd($command) . " " . escapeshellarg($post_title) . " " . escapeshellarg($post_url));
 // }
}
add_action( 'publish_post', 'published_send_notif' );

 

11 février 2020 Aucun commentaire

IT/Rendre un thème Wordpress responsive

Pour qu'un thème Wordpress soit responsive, il faut éviter que les tailles ne soit définies en dur : au lieu de :

#content{
    width:700px;
}

préferer :

#content{
    max-width: 700px;
    width: 100%;
}

On peut également inclure des requêtes média, pour modifier l'affichage selon la taille de l'écran. Exemple pour blog.linuxine.net :

/*Responsive media queries*/
@media screen and ( max-width: 800px ) {
    #header {
        width: 100%;
     }

    #logos {
        clear: both;
        display: block;
        float: left;
        margin-left: 20px
        width: 100%;
    }
    #social_icons {
        display:none;
    }    
    #content {
        clear: both;
        display: block;
        width: 100%;
    }
    #sidebar{
        display:none;
    }
}

/! Ne pas oublier d'inclure dans le header


Sinon les media queries ne sont pas executées ; le initial-scale est indispensable pour un affichage correct sous Opera mobile.

11 février 2020 Aucun commentaire

IT/Mémo sur les xpath

Lien contenant une classe :

//a[@class='classe_exacte']
//a[contains(@class,'select2-choice')]

Div contenant du texte :

//div[text()="Collection"]
//div[contains(text(),'collection')]

Classe et texte :

xpath="//div[@class='alert alert-danger alert-dismissable']/ul/li[contains(text(),'collection: collection is required')]

Trouver une balise :

//*[local-name='circle']

Trouver le parent :

//div[@id=1]/parent::*

Deux conditions combinées, pour trouver ce lien :

 A 
//a[@data-event='scenario:view' and contains(text(),'A')]

Le 3e td apres ce lui, qui contient le texte "editing"

//td/a[@data-event='scenario:view' and contains(text(),'A')]/../following-sibling::td[3][contains(text(),'Editing')]

 

11 février 2020 Aucun commentaire

IT/iotop

Une petite commande bien pratique pour savoir quels process utilisent des I/O : iotop ! Avec l’option -o, il n’affiche que ceux utilisant effectivement des I/O. Et l’option -a permet d’avoir un cumul depuis le lancement de la commande, ce qui évite que les process disparaissent et réapparaissent super rapidement s’ils font des I/O par intermittence.

# iotop -a -o

Total DISK READ : 0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE:       7.75 K/s
TID    PRIO  USER    DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND          
1436   be/3  root        0.00 B   160.00 K        0.00 %     0.46 %   [jbd2/dm-9-8]
2903   be/4  root        0.00 B       8.00 K        0.00 %     0.00 %   nmbd -D
2219   be/4  root        0.00 B       4.00 K        0.00 %     0.00 %   rsyslogd ~ain Q:Reg]
4376   be/4  aline       0.00 B       8.00 K        0.00 %     0.00 %   psi-plus
8865   be/4  aline       0.00 B       4.00 K        0.00 %     0.00 %   iceweasel~ache2 I/O]
8884   be/4  aline       0.00 B   504.00 K        0.00 %     0.00 %   iceweasel~torage #1]
8890   be/4  aline       0.00 B   120.00 K        0.00 %     0.00 %   iceweasel~OM Worker]
1295   be/4  aline       0.00 B       8.00 K        0.00 %     0.00 %   iceweasel~ache2 I/O]
05 février 2020 Aucun commentaire

IT/Smem

Pour avoir une idée de la conso mémoire d’un programme, sous Linux, j’utilise smem. Sa particularité, outre de présenter les résultats sous forme bien sympa si on utilise les bons arguments, est de proposer plusieurs indicateurs : la consommation mémoire standard, RSS ou resident set size, mais aussi une mesure tenant compte des zones mémoires partagées par plusieurs applications, et donc moins surestimée : la proportional set size (PSS).

Une fois installé via yum ou apt, on peut le lancer directement sans argument, pour avoir la liste des process consommant de la mémoire pour l’utilisateur. Si on rajoute l’option -t, on a une ligne avec le total. L’option -k permet d’ajouter l’unité (Mb ou Gb). On peut aussi lui demander la conso mémoire d’un process en particulier, avec -P (on met un crochet sur la 1ere lettre pour éviter de voir apparaitre la commande smem dans la liste :

$ smem -t -k -P [i]ceweasel
PID User     Command                         Swap      USS      PSS      RSS 
24263 aline    /usr/lib/iceweasel/plugin-c        0   102.4M   106.2M   116.9M 
21283 aline    iceweasel -P -no-remote            0   435.1M   439.2M   455.0M 
28465 aline    iceweasel -P -no-remote            0   812.6M   815.3M   831.3M 
-------------------------------------------------------------------------------
  154 1                                           0     1.3G     1.3G     1.4G

J’aime bien cet affichage, car il est lisible et permet d’avoir d’un coup d’œil la somme de la mémoire consommée par tous les process liés à une application… et en unités compréhensibles, en plus ! Si on est fan de graphiques, smem permet aussi de représenter la consommation mémoire sous forme de pie chart, ou de barres. Par exemple, le consommation de tous les processus de l’utilisateur, par nom :

$ smem --pie=name

Donnera l’image suivante :

Un graphique en barre de la consommation mémoire sur les processus de Chrome donnera :

$ smem -P [c]hrome --bar=name

Et pour finir, un petit camenbert sur la consommation de Iceweasel :

$ smem -P [i]ceweasel --pie=name

Ce n’est pas super sexy, mais c’est tout de même très lisible, je trouve, et bien plus parlant qu’un tableau avec des unités en octets ! :p

30 janvier 2020 Aucun commentaire