PHP,
pasted
on Feb 12:
|
function display_ARE( $atts ) {
// Attributes
extract( shortcode_atts(
array(
'cat_x' => '',
'cat_y' => '',
'notemax' => ''
), $atts )
);
// Code
global $wpdb;
$order = 'id ASC' ;
$yrow = '';
$echo;
// A vérifier avec utilisation d'une table
$cat_separator = "/" ;
// Récupération de la liste des attributs des deux axes
$xattr_array = $wpdb->get_results('SELECT * FROM wp_are WHERE category="'.$atts['cat_x'].'" ORDER BY '.$order);
$yrow_array = $wpdb->get_results('SELECT * FROM wp_are WHERE category="'.$atts['cat_y'].'" ORDER BY '.$order);
// Chargement des icones de notation
if ($atts['notemax']==4){
$notes[0] = "note0";
$notes[1] = "note1";
$notes[2] = "note2";
$notes[3] = "note3";
$notes[4] = "note4";
}
elseif ($atts['notemax']==2){
$notes[0] = "note0";
$notes[1] = "note2";
$notes[2] = "note4";
}
// Initialisation de la table de gauche
$echo .= '<div class="table_ARE" id="table_ARE_left"><table>';
// Titre de la table
$echo .= '<thead><tr><th>' . $atts['cat_x'] . $cat_separator . $atts['cat_y'] . '</th></thead><tbody>' ;
// Titre de chaque colonne
foreach ($yrow_array as $yr){
// Titre de la ligne
$yrow = '<tr><td>' . utf8_encode($yr->name);
// Taxonomy de la ligne
if (!empty($yr->taxonomy)){
$yrow .= '<i class="taxonomy">' . utf8_encode($yr->taxonomy) . '</i>' ;
}
// Fin de ligne
$yrow .= '</td></tr>';
$echo .= $yrow;
}
// Fin de la table de gauche
$echo .= '</tbody></table></div>';
// Initialisation de la table de droite
// $echo .= '<div class="table_ARE" id="table_ARE_right"><table><thead>';
$echo .= '<div class="table_ARE" id="double-scroll"><table id="very-wide-element"><thead>';
// Mise en forme de l'axe X -> titre de chaque colonne -> header de la table
foreach ($xattr_array as $xa){
$xattr .= '<th>' . utf8_encode($xa->name) ;
if (!empty($xa->taxonomy)){
$xattr .= '<i class="taxonomy">' . utf8_encode($xa->taxonomy) . '</i>' ;
}
}
$xattr .= '</th>';
$echo .= $xattr;
$echo .= '</tr></thead>';
// Initialisation du corps de table
$echo .= '<tbody>';
// Mise en forme de chaque ligne du tableau
foreach ($yrow_array as $yr){
// Initialisation de la ligne
$yrow = '<tr>';
// Remplissage des relations
foreach ($xattr_array as $xa){
// Récupération de la relation
$relation = $wpdb->get_results('SELECT * FROM wp_are_rel WHERE left_id="'.$yr->id.'" AND right_id="'.$xa->id.'"');
if (!empty($relation)){
$stren = $relation[0]->strength;
}
else {
$stren = 0;
}
$noteclass = $notes[$stren];
$yrow .= '<td class="note ' . $noteclass . '"></td>';
}
// Fin de ligne
$yrow .= '</tr>';
$echo .= $yrow;
}
if (count($yrow_array)>8)
{
// Footer de la table
$echo .= '</tbody><tfoot><tr>';
// Mise en forme de l'axe X -> titre de chaque colonne -> footer de la table
foreach ($xattr_array as $xa){
$fxattr .= '<td>' . utf8_encode($xa->name) ;
if (!empty($xa->taxonomy)){
$fxattr .= '<i class="taxonomy">' . utf8_encode($xa->taxonomy) . '</i>' ;
}
$fxattr .= '</td>';
}
$echo .= $fxattr . '</tr></tfoot>';
}
// Conclusion de la table
$echo .= '</table></div>';
// Snippet JS
$echo .= '<script type="text/javascript">
jQuery(document).ready(function($){
jQuery("#double-scroll").doubleScroll();
});
</script>';
// Affichage du résultat
return $echo;
}
add_shortcode( 'ARE', 'display_ARE' );
// Ajout du script pour la double scrollbar
function dsb_adding_scripts() {
wp_register_script('doubleScroll', get_stylesheet_directory_uri() . '/js/jquery.doubleScroll.js', array('jquery'),'0.3', true);
wp_enqueue_script('doubleScroll');
}
add_action( 'wp_enqueue_scripts', 'dsb_adding_scripts' );
|
Output:
|
function display_ARE( $atts ) {
// Attributes
extract( shortcode_atts(
array(
'cat_x' => '',
'cat_y' => '',
'notemax' => ''
), $atts )
);
// Code
global $wpdb;
$order = 'id ASC' ;
$yrow = '';
$echo;
// A vérifier avec utilisation d'une table
$cat_separator = "/" ;
// Récupération de la liste des attributs des deux axes
$xattr_array = $wpdb->get_results('SELECT * FROM wp_are WHERE category="'.$atts['cat_x'].'" ORDER BY '.$order);
$yrow_array = $wpdb->get_results('SELECT * FROM wp_are WHERE category="'.$atts['cat_y'].'" ORDER BY '.$order);
// Chargement des icones de notation
if ($atts['notemax']==4){
$notes[0] = "note0";
$notes[1] = "note1";
$notes[2] = "note2";
$notes[3] = "note3";
$notes[4] = "note4";
}
elseif ($atts['notemax']==2){
$notes[0] = "note0";
$notes[1] = "note2";
$notes[2] = "note4";
}
// Initialisation de la table de gauche
$echo .= '<div class="table_ARE" id="table_ARE_left"><table>';
// Titre de la table
$echo .= '<thead><tr><th>' . $atts['cat_x'] . $cat_separator . $atts['cat_y'] . '</th></thead><tbody>' ;
// Titre de chaque colonne
foreach ($yrow_array as $yr){
// Titre de la ligne
$yrow = '<tr><td>' . utf8_encode($yr->name);
// Taxonomy de la ligne
if (!empty($yr->taxonomy)){
$yrow .= '<i class="taxonomy">' . utf8_encode($yr->taxonomy) . '</i>' ;
}
// Fin de ligne
$yrow .= '</td></tr>';
$echo .= $yrow;
}
// Fin de la table de gauche
$echo .= '</tbody></table></div>';
// Initialisation de la table de droite
// $echo .= '<div class="table_ARE" id="table_ARE_right"><table><thead>';
$echo .= '<div class="table_ARE" id="double-scroll"><table id="very-wide-element"><thead>';
// Mise en forme de l'axe X -> titre de chaque colonne -> header de la table
foreach ($xattr_array as $xa){
$xattr .= '<th>' . utf8_encode($xa->name) ;
if (!empty($xa->taxonomy)){
$xattr .= '<i class="taxonomy">' . utf8_encode($xa->taxonomy) . '</i>' ;
}
}
$xattr .= '</th>';
$echo .= $xattr;
$echo .= '</tr></thead>';
// Initialisation du corps de table
$echo .= '<tbody>';
// Mise en forme de chaque ligne du tableau
foreach ($yrow_array as $yr){
// Initialisation de la ligne
$yrow = '<tr>';
// Remplissage des relations
foreach ($xattr_array as $xa){
// Récupération de la relation
$relation = $wpdb->get_results('SELECT * FROM wp_are_rel WHERE left_id="'.$yr->id.'" AND right_id="'.$xa->id.'"');
if (!empty($relation)){
$stren = $relation[0]->strength;
}
else {
$stren = 0;
}
$noteclass = $notes[$stren];
$yrow .= '<td class="note ' . $noteclass . '"></td>';
}
// Fin de ligne
$yrow .= '</tr>';
$echo .= $yrow;
}
if (count($yrow_array)>8)
{
// Footer de la table
$echo .= '</tbody><tfoot><tr>';
// Mise en forme de l'axe X -> titre de chaque colonne -> footer de la table
foreach ($xattr_array as $xa){
$fxattr .= '<td>' . utf8_encode($xa->name) ;
if (!empty($xa->taxonomy)){
$fxattr .= '<i class="taxonomy">' . utf8_encode($xa->taxonomy) . '</i>' ;
}
$fxattr .= '</td>';
}
$echo .= $fxattr . '</tr></tfoot>';
}
// Conclusion de la table
$echo .= '</table></div>';
// Snippet JS
$echo .= '<script type="text/javascript">
jQuery(document).ready(function($){
jQuery("#double-scroll").doubleScroll();
});
</script>';
// Affichage du résultat
return $echo;
}
add_shortcode( 'ARE', 'display_ARE' );
// Ajout du script pour la double scrollbar
function dsb_adding_scripts() {
wp_register_script('doubleScroll', get_stylesheet_directory_uri() . '/js/jquery.doubleScroll.js', array('jquery'),'0.3', true);
wp_enqueue_script('doubleScroll');
}
add_action( 'wp_enqueue_scripts', 'dsb_adding_scripts' );
|
|