Astuce Ordre des champs en ExtraData Astuce Tester si une chaîne

Transcription

Astuce Ordre des champs en ExtraData Astuce Tester si une chaîne
Astuce
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Initialiser une variable de classe
Lorsqu'on utilise des variables statiques, on peut souvent les initialiser directement à leur déclaration :
public class MaClasse {
public static String myStaticString = "Ma chaîne";
public static String[] myStaticArray = {"Ma chaîne 1", "Ma chaîne 2"};
}
Mais si vous avez une Collection ou un autre Objet en variable de classe, vous ne pourrez pas l'initialiser de
cette manière.
Vous pouvez donc déclarer un bloc statique, qui sera exécuté une seule fois, à la première utilisation de la
classe. Dans ce bloc, appelez une fonction statique qui se chargera d'initialiser votre variable :
public class MaClasse {
public static List<String> myStaticList = new ArrayList<String>();
static {
MaClasse.initMyStaticList();
}
private static void initMyStaticList() {
MaClasse.myStaticList.add("Ma chaîne 1");
MaClasse.myStaticList.add("Ma chaîne 2");
}
}
Publié le : 05/12/2014 Modifié le : 09/04/2015
Astuce
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Ajouter un espace (ou autre) tous les
n caractères
Si vous souhaitez formater un numéro de téléphone, un IBAN, ou n'importe quelle chaîne en y ajoutant
régulièrement un séparateur, cette fonction peut vous être utile :
/**
* Formate une chaîne en ajoutant un séparateur tous les <code>length</code> caractères.
*
* @param string Chaîne à formater
* @param separator Séparateur à ajouter
* @param length Taille des groupes de caractères à séparer
* @return La chaîne formatée
*/
public static String addChar(String string, String separator, int length) {
if (string != null && string.length() > length) {
string = string.replaceAll("([^\\s]{" + length + "})", "$0" + separator);
}
return string;
}
Publié le : 03/12/2014 Modifié le : 09/04/2015
Astuce
Créer un lien symbolique entre deux
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
répertoire sous Windows
Pour créer un lien symbolique sous Windows, il faut utiliser la commande symlink :
mklink [[/D] | [/H] | [/J]] <Lien> <Cible>
Pour cela, lancez une invite de commande :
Menu démarrer
Exécuter...
Tapez cmd et validez
Si par exemple vous souhaitez pouvoir accéder au répertoire C:\Windows\System32\drivers\etc directement via
C:\etc, tapez cette commande :
mklink /J C:\etc C:\Windows\System32\drivers\etc
Remarques :
Selon le lien que vous souhaitez créer, vous devrez peut-être être admin de votre machine (ou lancer
l'invite de commande en mode administrateur).
Si vous voulez créez un lien vers un répertoire qui n'existe pas (encore) sur votre système, utilisez
l'option /D et non pas /J. Cela créera un lien symbolique et non pas une jonction.
Image not readable or empty
DOS
Tags : /extension/devnotebook/design/devnotebook/images/icon/tag.png
DOS
Publié le : 01/12/2014 Modifié le : 15/04/2016
Astuce
Afficher une erreur dans JCMS
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Dans JCMS (7 et +) les erreurs sont affichées dans un bloc ressemblant à ça.
Message d'erreur JCMS
Image not readable or empty
/var/devnotebook/storage/images/media/images/message-d-erreur-jcms/857-1-fre-FR/Messag
Transmettre le message
Vous devez tout d'abord transmettre votre message à JCMS.
Si vous êtes dans une JSP, utilisez l'une ou l'autre de ces méthodes :
// Ajoute un message d'erreur dans la request
setErrorMsg("Le téléchargement du document a échoué", request);
// Ajoute un message d'erreur dans la session
setErrorMsgSession("Le téléchargement du document a échoué", request);
Pour faire la même chose dans une classe Java, utilisez l'une de celles-ci :
// Ajoute un message d'erreur dans la request
JcmsContext.setErrorMsg("An error occured while saving your content", request);
// Ajoute un message d'erreur dans la session
JcmsContext.setErrorMsgSession("An error occured while saving your content"
, request);
Remarque :
Des méthodes équivalentes existent pour les messages d'information et d'avertissement.
Afficher le message
Une fois le message transmis, il reste à l'afficher. Il suffit pour cela d'inclure ce bout de code :
<%@ include file='/jcore/doMessageBox.jsp' %>
Cette JSP fournie par JCMS va récupérer tous les messages d'information, d'avertissement ou d'erreur
présents en session, dans les paramètres de la request et dans le contexte de la page. Si un de ces message
est présent il sera affiché.
Remarque :
Depuis la version 7.1 JCMS utilise Bootstrap. Si vous êtes en version antérieure, le message d'erreur ne
ressemblera pas à celui ci-dessus.
Source : API Jalios JCMS 7.0.0
Publié le : 27/11/2014 Modifié le : 09/04/2015
Astuce
Ordre des champs en ExtraData
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Lors de l'affichage des champs en ExtraData, JCMS utilise l'ordre l'alphabétique des clés des propriétés
d'ExtraData.
Si vous avez en propriété les champs suivants dans votre plugin.prop :
extra.Category.jcmsplugin.monplugin.premierchamp
extra.Category.jcmsplugin.monplugin.champ2
extra.Category.jcmsplugin.monplugin.champ3
extra.Category.jcmsplugin.monplugin.dernierchamp
Il s'afficheront dans cet ordre :
champ2
champ3
dernierchamp
premierchamp
Publié le : 25/11/2014 Modifié le : 09/04/2015
Astuce
Tester si une chaîne est vide ou ne contient
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
que des espaces
Voici une méthode pour tester si une chaîne est vide ou contient uniquement des espaces :
/**
* Retourne si la chaîne en argument est vide ou contient uniquement des espaces.
*
* @param string Chaîne
* @return <code>true</code> si la chaîne est nulle, vide, ou s'il ne contient que des caractèr
*/
public static boolean isEmpty(String string) {
boolean isEmpty = true;
if (string != null) {
isEmpty = "".equals(string.replaceAll("[\\s\\u00A0]+$", ""));
}
return isEmpty;
}
Remarque :
\u00A0 représente les espaces insécables. Si on utilise uniquement \s dans le remplacement, ils ne seront pas
considérés comme des espaces.
Publié le : 14/11/2014 Modifié le : 09/04/2015
Astuce
Activer automatiquement tous les modules
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
d'un profil
Si vous utiliser Drush dans Drupal, vous pouvez activer automatiquement tous les modules déclarés en
dépendance dans votre profil.
Pour cela utilisez cette commande :
drush en $(grep dependencies /path/to/my-site/profiles/my_profile/my_profile.info |
sed -n 's/dependencies\[\]=\(.*\)/\1/p')
Version : 7.x, Drush 6.2
Tags :
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/tag.png
Drush
Drush
Publié le : 18/09/2014 Modifié le : 22/11/2016
Astuce
Effectuer des requêtes sur une autre base
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
de données
Il est possible d'effectuer des requêtes SQL sur une base de données autre que celle de Drupal, tout en
utilisant les fonctions db_select(), db_query(), ....
Pour cela, il faut déclarer la ou les bases externes dans le fichier site/default/settings.php :
$databases = array (
'default' => array (
'default' => array (
'database' => 'drupal',
'username' => 'username',
'password' => 'password',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
'ma_nouvelle_base' => array (
'default' => array (
'database' => 'db1',
'username' => 'username2',
'password' => 'password2',
'host' => 'db.example.com',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
Vous pouvez maintenant utiliser les nouvelles bases dans vos modules, grâce à la fonction db_set_active() :
// Sélection de la nouvelle base
db_set_active('ma_nouvelle_base');
// Exécution d'un requête
$results = db_query($sql);
// Retour à la base par défaut
db_set_active('default');
Version : 7.x
Publié le : 18/09/2014 Modifié le : 22/06/2016
Astuce
Un décompilateur Java dans Eclipse
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
L'application Java Decompiler permet de décompiler un fichier .class simple ou tout ceux présent dans un JAR :
ezembed
Le site de l'application fournit un plugin Eclipse qui ne fonctionne pas avec les dernières versions (testé avec
Eclipse Juno). Plusieurs fork du ont été créés et ce site en propose un qui fonctionne : JDEclipse-Realign.
Pour l'installer:
cliquez sur Help > Install New Software... dans le menu d'Eclipse
Ajoutez un nouveau site via le bouton Add...
Choisissez un nom (ex: JDEclipse-Realign) et cette URL : http://mchr3k-eclipse.appspot.com/
Cochez JavaDecompiler Eclipse Plug-in > JD-Eclipse (Realign Edition) et suivez la procédure
d'installation
Une fois installé et Eclipse redémarré, vérifiez l'association des fichiers :
Windows > Preferences > General > Editors > File Associations
Pour *.class without source sélectionnez Class File Editor par défaut
Si vous ouvrez un fichier .class (via F3 ou Ctrl+clic sur le nom d'une classe) vous devriez maintenant voir la
source décompilée.
Publié le : 30/07/2014 Modifié le : 09/04/2015
Astuce
Passer des variables supplémentaires au
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
template node.tpl.php
Lorsque vous affichez un n?ud dans le template node.tpl.php ou une de ses surcharges (ex: node-article.tpl.php), vous avez souvent besoin d'effectuer des traitements particuliers.
Pour séparer les parties traitement et affichage, il est préférable de mettre le maximum de code PHP dans
votre fichier mymodule.module. Pour cela, utilisez le hook_node_view().
Par exemple si dans le template d'un article on veut afficher les 3 derniers articles publiés :
/**
* Implements hook_node_view().
*/
function mymodule_node_view($node, $view_mode, $langcode) {
global $language;
switch ($node->type) {
case 'article':
// Last published articles
$query = db_select('node', 'n')
->fields('n', array('nid'))
->condition('status', 1)
->condition('bundle', 'article')
->orderBy('changed', 'DESC')
->range(0, 3);
$nids = $query->execute()->fetchCol();
$nodes = !empty($nids) ? node_load_multiple($nids) : array();
$node->content['last_published_articles'] = $nodes;
break;
}
}
Explications :
Pour n'effectuer le traitement que pour les articles, on utilise un switch sur le type de n?ud.
La requête récupère les nids des n?uds recherchés. Ils sont ensuite chargés.
Les n?uds sont envoyés en paramètre au template. La variable $content['last_published_articles']
sera disponible dans le template.
Remarque :
En général on ajoute une condition sur le type d?affichage ($view_mode), pour éviter un traitement
inutile à chaque affichage du n?ud.
Source : Documentation officielle du hook
Version : 7.x
Publié le : 18/07/2014 Modifié le : 22/06/2016
« PrécédentSuivant » 1 2 3 4 5 6 7 8 9 10 11 12 ...26