Obtenir le jour précédent pour un lot SSIS

SSIS

Problématique

Obtenir dans un variable d’un lot SSIS le jour précédent sous le format yymmdd.
Pour avoir le jour précédent DateAdd va nous permettre de le faire, mais impossible de caster un DateAdd en string car il renvoi un DT_DBTIMESTAMP du coup on passe par un DatePart.

Code SSIS

Correction du code suite à la remarque de nicolasbkz.

Changement d’un nom de domaine pour un blog wordpress

J’ai dû récemment procéder au changement d’un nom de domaine pour un site que je maintiens. Pour ne pas perdre en référencement voici la procédure que j’ai suivie.
Pour commencer on fait une sauvegarde de la base.

Puis on créer une redirection depuis le .htaccess. Ce bout de code est à placer en début de fichier.

Avec phpMyAdmin on modifie la table qui contient toutes les options. Pensez à mettre votre préfixe si vous n’utilisez pas wp_.

Maintenant la partie post avec les guides et le contenu.

Pour finir on prévient les moteurs de recherche.

Je pense ne rien avoir oublié.[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Lister les custom taxonomy dans une page WordPress

Ce snippet permet de lister les custom taxonomy dans une page de template wordpress.

Problématique :

Sur un site j’ai utilisé les custom post type et les custom taxonomy pour présenter un produit. Il fallait que je liste sur une page toute les catégories (custom taxonomy) de ces custom post type pour accéder directement au modèle de produit.

Je croyais que les custom taxonomy c’était comme les catégories natives.

J’ai pas mal cherché parce qu’au début j’utilisais la fonction get_categories () qui fonctionne très bien. Autant pour les catégories natives que pour les customs taxonomy. Mais j’ai voulu y ajouter le lien correspondant. Je suis donc passé par la fonction get_category_link().

Et là, problème, impossible d’afficher le lien qui lui correspond j’ai essayé plusieurs solutions sans y arriver. En creusant un peu dans la doc de WordPress je me suis apperçu que je n’utilisais pas du tout les bonnes fonctions.

En effet les customs taxonomy sont attaquable par les fonctions get_terms et get_terms_link et la on obtient toutes les informations désirées.

Solution:

Voici la première version qui ne me retrouve pas les liens :
[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]

    ‘post’,
    ‘orderby’ => ‘name’,
    ‘order’ => ‘ASC’,
    ‘hide_empty’ => 0,
    ‘hierarchical’ => 1,
    ‘taxonomy’ => ‘modeles’,
    ‘pad_counts’ => false );

    $categories = get_categories( $argsCat );
    foreach ($categories as $category) {

    ?>

  • term_id;
    $category_link = get_category_link( $catID );
    ?>

    <a href=" »>cat_name; ?>

    category_description; ?>

[/php]

Voici la version qui fonctionne :
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
$terms = get_terms(‘modeles’,’hide_empty=0′);

echo ‘

    ‘;
    foreach ($terms as $term) {
    $term_link = get_term_link( $term, ‘modeles’ );
    if( is_wp_error( $term_link ) )
    continue;

    echo ‘

  • name . ‘ »>’ . $term->name . ‘
  • ‘;
    }
    echo ‘

‘;
[/php]

Mes sources :
http://codex.wordpress.org/Function_Reference/get_terms
http://codex.wordpress.org/Function_Reference/get_term_link[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Concours OpenPicus en partenariat avec G-Media

Bonjour à tous,
suite à la série d’article qui a été diffusée la semaine dernière sur touteladomotique.com concernant le projet OpenPicus, le site G-Media.fr me laisse vous offrir le prototype de station météo et rajoute même 5 bons de réduction de 20% que vous pourrez utiliser lors votre prochaine commande sur leur boutique au rayon développeur.

Mais comme on n’a rien sans rien, je vous propose de gagner ces lots en participant à un petit concours OpenPicus.

Voici comment va se passer le concours OpenPicus :

Vous allez devoir répondre à 5 questions, à chaque bonne réponse votre score sera incrémenté de 1 point. Pour être tiré au sort vous devez avoir au moins 2 points donc 2 bonnes réponses. La question complémentaire vous permet d’augmenter votre score de 0 à 2 points. Sachant que si vous êtes le ou les gagnant(s) il faut que votre adresse email soit valide. La dernière partie n’est pas obligatoire, elle vous permet juste d’augmenter votre score de 1 à 3 points en relayant le jeu concours sur les réseaux sociaux. Donc si vous avez au moins 2 bonnes réponses vous pouvez participer au tirage, puis le nombre de points qui suivent augmente le nombre de participations au tirage au sort.

Exemple:

Jean a eu 3 bonnes réponses, il peut participer au tirage. Son numéro de tirage est le 31, il a fait une super réponse à la question, il gagne 2 points supplémentaires donc 2 chances de plus. Il participe au tirage avec les numéros 31,32 et 33. Jean a partagé sur les différents réseaux il obtient 3 points supplémentaires soit 3 numéros de plus. Soit la possibilité de jouer avec les numéros 31,32,33,34,35 et 36.

Place au dieu Random pour ce concours OpenPicus, je ferais 6 tirages. A chaque tirage le gagnant déterminé sera retiré de la liste des participants.

Le premier tirage donnera le gagnant du prototype de station météo puis les 5 autres détermineront les gagnants des coupons de 20% réduction.

Le concours OpenPicus commence dès à présent et se clôture le mercredi 17 juillet 2013 à 23h59. Le tirage se fera après avoir mis un score à la question complémentaire des participants ayant eu au moins deux bonnes réponses. Les gagnants seront contacté par mail, si l’adresse est erronée ou que la personne ne me contact pas dans les 7 jours pour me transmettre son adresse ou une confirmation alors je procéderai à un nouveau tirage au sort pour le lot en question.

Bonne chance les copains … Continuer la lecture de « Concours OpenPicus en partenariat avec G-Media »

Abandon du projet – piloter la freebox server

Parce que je n’irai pas plus loin avec la Freebox V6 et que je n’ai jamais pris le temps de faire un article sur le blog voici les références que j’ai pu noter pour intégrer au sein de mon système domotique la freebox de Free.

Ce que j’ai pu utiliser toutes les nuits depuis longtemps c’est la possibilité de désactiver le wifi la nuit quand nous dormions et la journée lorsque nous étions absents. Les sources du script provenaient du site https://www.ekinode.info/it/activerdesactiver-le-wifi-dune-freebox-v6/
J’avais également repéré en PHP :

Ce dépôt contient un ensemble de classes PHP permettant de piloter les différentes fonctions de la « console d’administration Free ». L’objectif premier était pour moi de programmer des enregistrements récurrents fonction ayant disparu avec la nouvelle Freebox dite Révolution.

J’aurais bien aimé intégrer à SARAH cette fonctionnalité en m’appuyant sur le projet node-freebox-sdk. Mais peut être que jpEncausse le créateur de SARAH prendra le temps de le faire.
Pour rappel je quitte Free pour les raisons suivantes.

TSQL – supprimer les tables d’une base par schéma

Il arrive de vouloir supprimer certaines tables dans une base, mais sans forcément dropper toute la base.
En se basant sur les tables système il est rapidement facile de supprimer les tables d’un schéma.

Une requête TSQL et c’est parti …

[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][sql]
— =============================================
— Author: Djo
— Create date: 28 mars 2012
— Description: Permet de supprimer toutes les tables d’une base sous SQLSERVER
— =============================================

DECLARE @requete VARCHAR(MAX), @nomSchema VARCHAR(MAX), @nomTable VARCHAR(MAX)

DECLARE supprimToutesLesTablesDeLaBase CURSOR FOR

SELECT tab.name as nomTable
,sch.name as nomSchema
FROM sys.tables as tab
INNER JOIN sys.schemas as sch ON tab.schema_id = sch.schema_id
WHERE type = ‘U’ AND sch.name <> ‘DBO’

OPEN supprimToutesLesTablesDeLaBase
FETCH NEXT FROM supprimToutesLesTablesDeLaBase INTO @nomTable, @nomSchema
WHILE(@@FETCH_STATUS = 0)
BEGIN
SET @requete = ‘DROP TABLE ‘ + @nomSchema + ‘.’ + @nomTable
EXEC (@requete)
FETCH NEXT FROM supprimToutesLesTablesDeLaBase INTO @nomTable, @nomSchema
END
CLOSE supprimToutesLesTablesDeLaBase
DEALLOCATE supprimToutesLesTablesDeLaBase
[/sql][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

PHP – Tester l’existence d’un fichier distant

Voici 3 fonctions qui finalement permettent de tester l’existence d’un fichier distant.

Nécessite CURL
[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
function getInfos($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_exec($ch);
return curl_getinfo($ch);
}

$infos = getInfos(‘https://hotfirenet.com/blog’);
if($infos[‘http_code’] == 200){
// OK
}else{
// pas ok
}
[/php]

Apparemment consommatrice car elle télécharge une partie du fichier.
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
function remote_file_exists ( $url ) {
ini_set(‘allow_url_fopen’, ‘1’);
if (@fclose(@fopen($url, ‘r’))) { return true; }
else { return false; }
}
[/php]

UNIQUEMENT possible depuis PHP5
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
function sys_file_exists($f = NULL)
{
$h = array();
$ret = FALSE;
if(!is_null($f)):
if(preg_match(‘/^http|https|ftp/’,$f)): //test protocol EXTERN
$h = @get_headers($f);
if(array_key_exists(0,$h)) :
$ret = (bool) preg_match(‘/200|301/’,$h[0]); /* HTTP/1.1 301 DAP (directory) */
endif;
else: //else FS
$ret = (file_exists($f) && is_readable($f));
endif;
endif;

return (($ret === TRUE) ? TRUE : FALSE);
}
[/php][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

WordPress – Shortcode trouve mon age

Il parait que l’on change d’âge tous les ans ?
Parce que je n’ai pas envie de faire update tous les ans de ma page de présentation et que l’informatique ça sert à être faignant 🙂 voici un shortcode pour WordPress qui te permettra d’afficher l’âge par rapport à la date de naissance passée en paramètre.

Le code:
[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
//Permet de retrouver l’age par rapport a la date de naissance
//la fonction accepte le format francais et anglais
//utlisation [trouveMonAge date="1984-06-12"] ou [trouveMonAge date="12-06-1984"]
function trouveMonAgeFCT($atts){
extract(shortcode_atts(array(‘date’ =>  »), $atts));
$age = date(‘Y’) – date(‘Y’, strtotime($date));
if (date(‘md’) < date(‘md’, strtotime($date))) {
return $age – 1;
}
return $age;
}
add_shortcode(‘trouveMonAge’, ‘trouveMonAgeFCT’);
[/php]

Utilisation:
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]

Utilisation du shortcode trouveMonAge
[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

NPDS – Méta-mot trouve mon age

Il parait que l’on change d’âge tous les ans ?
Parce que je n’ai pas envie de faire update tous les ans de ma page de présentation et que l’informatique ça sert à être faignant 🙂 voici un méta-mot pour NPDS qui te permettra d’afficher l’âge par rapport à la date de naissance passée en paramètre.

Le code :
[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
function MM_trouveMonAge($date){
$date = arg_filter($date);
$age = date(‘Y’) – date(‘Y’, strtotime($date));
if (date(‘md’) < date(‘md’, strtotime($date))) {
return $age – 1;
}
return $age;
}
[/php]

Utilisation :
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]

Utilisation du Méta mot trouveMonAge

[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

WordPress – Customiser la galerie native de wordpress

[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][heading size= »5″ style= »underline »] Utilisation du shortcode [/heading]
Quoi tu m’as pris pour le codex ou quoi ?

[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][fusion_separator/]
[heading size= »5″ style= »underline »] Refonte de la css [/heading]
A partir de la version WordPress 3.1 il est possible de faire un reset de la css. Dans le fichier « functions.php » de ton thème il faut rajouter en fin de fichier :
[php] add_filter( ‘use_default_gallery_style’, ‘__return_false’ ); [/php]

Puis copie/colle la css soit dans le fichier « style.css« , je me doute bien que tu vas pas tout retaper 🙂
[css]
/* The Gallery container (div) */
.gallery { }

/* A Gallery item container,
for 3, 2 and 4 column galleries */
.gallery .gallery-item { }
.gallery-columns-2 .gallery-item { }
.gallery-columns-4 .gallery-item { }

/* The actual image inside a container
for 3, 2 and 4 column galleries */
.gallery img { }
.gallery-columns-2 .attachment-medium { }
.gallery-columns-4 .attachment-thumbnail { }

/* A gallery image caption */
.gallery .gallery-caption { }

/* Definition lists elements */
.gallery dl, .gallery dt { }

/* Pick the second line break if two
line breaks are adjacent */
.gallery br+br { }
[/css]

Sinon,
[php]
add_filter( ‘gallery_style’, ‘hfnCssGallery’ );

function hfnCssGallery() {
$css = &quot;&lt;style type=’text/css’&gt;
.gallery { margin: 0 auto 18px; }
.gallery .gallery-item {
float: left;
margin-top: 0;
text-align: center;
width: 33%;
}
.gallery-columns-2 .gallery-item { width: 50%; }
.gallery-columns-4 .gallery-item { width: 25%; }
.gallery img {
box-shadow: 0px 0px 4px #999;
border: 1px solid white;
padding: 8px;
background: #f2f2f2;
}
.gallery img:hover {
background: white;
}
.gallery-columns-2 .attachment-medium {
max-width: 92%;
height: auto;
}
.gallery-columns-4 .attachment-thumbnail {
max-width: 84%;
height: auto;
}
.gallery .gallery-caption {
color: #888;
font-size: 12px;
margin: 0 0 12px;
}
.gallery dl, .gallery dt { margin: 0; }
.gallery br+br { display: none; }
&lt;/style&gt;
&lt;div id=’$selector’ class=’gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}’&gt;&quot;;
return $css;
}
[/php]

[fusion_separator/]
[heading size= »5″ style= »underline »] Mise en place d’une lightbox [/heading]
En mode faignant l’utilisation de plugin genre :

  • Cleaner Gallery
  • jQuery Lightbox For Native Galleries

Mais les plugins c’est mal on ne nous dit pas tout !!

Tu es developpeur, bidouilleur ou encore tu n’y connais rien mais tu es curieux et tu n’as même pas peur ?
Voici d’autre méthodes un peu mieux, un bon vieux hack.

A la mode barbare, dans le fichier « wp-includes/post-template.php » de remplacer :
[php]return apply_filters( ‘wp_get_attachment_link’, &quot;&lt;a href=’$url’ title=’$post_title’&gt;$link_text&quot;, $id, $size, $permalink, $icon );[/php]
par
[php]return apply_filters( ‘wp_get_attachment_link’, &quot;&lt;a href=’$url’ title=’$post_title’&gt;$link_text&quot;, $id, $size, $permalink, $icon );[/php]
Le problème de cette méthode c’est lors de la prochaine mis à jour le fichier sera écraser et il l’opération sera a renouveller.

Donc cette solution est mal !!

Deux autres méthodes a rajouter dans le fichier fonction de ton thème :
[php]
add_filter( ‘wp_get_attachment_link’ , ‘add_lighbox_rel’ );
function add_lighbox_rel( $attachment_link ) {
if( strpos( $attachment_link , ‘a href’) != false &amp;amp;&amp;amp; strpos( $attachment_link , ‘img src’) != false )
$attachment_link = str_replace( ‘a href’ , ‘a rel=&amp;quot;prettyPhoto[]&amp;quot; href’ , $attachment_link );
return $attachment_link;
}
[/php]

ou encore
perso j’aime bien celle-ci car elle va permettre de rajouter a tout mes liens contenant une image l’attribut ici « rel= »prettyPhoto »« .

[php]
// Adapted and Modified from http://wordpress.org/extend/plugins/add-lightbox/
// Adds a rel=&quot;prettyPhoto&quot; tag to all linked image files

add_filter(‘the_content’, ‘addlightboxrel_replace’, 12);
add_filter(‘get_comment_text’, ‘addlightboxrel_replace’);
function addlightboxrel_replace ($content)
{ global $post;
$pattern = &quot;/&lt;a(.*?)href=(‘|&quot;)([^&gt;]*).(bmp|gif|jpeg|jpg|png)(‘|&quot;)(.*?)&gt;(.*?)&lt;/a&gt;/i&quot;;
$replacement = ‘&lt;a$1href=$2$3.$4$5 rel=&quot;prettyPhoto[‘.$post-&gt;ID.’]&quot;$6&gt;$7&lt;/a&gt;’;
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
[/php]

Il y’a la possibilité également de le faire en javascript et sinon si tu es un grand malade et tu ne sais pas quoi faire ?
Tu te dis pourquoi ne pas reprendre le shortcode et faire le miens ?
Et pourquoi pas …

Direction « wp-include/media.php » et trouve :
[php]add_shortcode(‘gallery’, ‘gallery_shortcode’);

/**
* The Gallery shortcode.
*
* This implements the functionality of the Gallery Shortcode for displaying
* WordPress images on a post.
*
* @since 2.5.0
*
* @param array $attr Attributes of the shortcode.
* @return string HTML content to display gallery.
*/
function gallery_shortcode($attr) {
[/php]

Mes sources ?

  • WordPress › Support » How-To and Troubleshooting[resolved] Add rel= »xyz » to Gallery Link
  • Web2Fenua, creation de site web a Tahiti
  • Le codex bien sur !!

[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]