Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2011, 02:41
Avatar de engonga
engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
mi primer plugin

he creado un plugin que me cuenta los usuarios de opinan en los posts

Wordpress me activa bien el pluguin, el widget me sale bien y lo puedo colocar pero después no me sale nada en la web

Código PHP:
     <?php
/*
Plugin Name: Simple Top Reviewers
Plugin URI: 
Description: Ranquin de rewviewers de tu sitio
Version: 1.0
Author: Joan Blanch
Author URI: http://www.boombrash.com/
License: GPL2
*/
/*

/**
 * Add function to widgets_init that'll load our widget.
 * @since 0.1
 */
add_action'widgets_init''SimpleTopReviewersInit' );

/**
 * Register our widget.
 * 'SimpleTopReviewers' is the widget class used below.
 *
 * @since 0.1
 */
function SimpleTopReviewersInit() {
    
register_widget'SimpleTopReviewers' );
}

/**
 * SimpleTopReviwers class.
 * This class handles everything that needs to be handled with the widget:
 * the settings, form, display, and update.  Nice!
 *
 * @since 0.1
 */
class SimpleTopReviewers extends WP_Widget {

    
/**
     * Widget setup.
     */
    
function SimpleTopReviewers() {
        
/* Widget settings. */
        
$widget_ops = array( 'classname' => 'example''description' => __('Lista de usuarios Reviewers de tu sitio') );

        
/* Widget control settings. */
        
$control_ops = array( 'width' => 300'height' => 350'id_base' => 'Simple-Top-Reviewers' );

        
/* Create the widget. */
        
$this->WP_Widget'Simple-Top-Reviewers'__('SimpleTopReviewers'), $widget_ops$control_ops );
    }

    
/**
     * Cómo mostrar el widget en la pantalla.
     */
    
function widget$args$instance ) {
        
extract$args );

        
/* Our variables from the widget settings. */
        
$title apply_filters('widget_title'$instance['title'] );
        
$name $instance['excludeReviewers'];
        
$identifier $instance['identifier'];
        
$limit $instance['limit'];
        
$showReviewsLabel $instance['show_reviews_label'];

        
/* Before widget (defined by themes). */
        
echo $before_widget;

        
/* Display the widget title if one was input (before and after defined by themes). */
        
if ( $title )
            echo 
$before_title $title $after_title;

        
/* Process variables */
        
if ($instance['excludeReviewers'] != ""){
            
$excludedReviewers trim($instance['excludeReviewers']);
            
$excludedReviewers explode(","$excludedReviewers);
        }
        else{
            
$excludedReviewers = array('');
        }
        
        
$excludedEmailQuery '';
        for (
$l=0$l<count($excludedReviewers); $l++){
            
$excludedEmailQuery .= " AND user_email != '".trim($excludedReviewers[$l])."' \r";
        }
        
        
$excludedNameQuery '';
        for (
$m=0$m<count($excludedReviewers); $m++){
            
$excludedNameQuery .= " AND user_nicename != '".trim($excludedReviewers[$m])."' \r";
        }
        
        
//if ($identifier == 'name'){
            
$groupByQuery 'GROUP BY user_email';
        
//}
        //else{
            //$groupByQuery = 'GROUP BY post_author_email';
        //}
        
        
settype($limit'int');
        
        if ((
$limit 0) && (is_int($limit) == true)){
            
$limitQuery 'LIMIT '.$limit;
        }
        else{
            
$limitQuery '';
        }
        
//}
        
        /* MySQL query */
        
global $wpdb;
        
$Reviewers $wpdb->get_results("
            SELECT count(*) as qty, key1.id, key1.user_nicename, key1.user_email, key1.display_name
                FROM $wpdb->users key1 
                INNER JOIN $wpdb->posts key2 ON key1.id = key2.post_author
                WHERE key2.post_type='reviews'
                AND key2.post_status='publish'
                $excludedEmailQuery
                $excludedNameQuery
                $groupByQuery
                ORDER BY qty DESC
                $limitQuery
        "
);
        
        
/* Display list */
        
?>
        <!-- opening ul tag to contain the list -->
        <ul>
        <?php
            
if(is_array($Reviewers)) {
                
                
//only shows "comments" if "show comments label" is set to true
                
if($showReviewsLabel == true){
                    foreach (
$Reviewers as $k) {
                        
//only puts the "s" on comments if it is grammatically appropriate
                        
if($k->qty != 1){
                            echo (
'<li>'.$k->display_name.': '.$k->qty.' Opiniones</li>');
                        }
                        else{
                            echo (
'<li>'.$k->display_name.': '.$k->qty.' Opiniones</li>');
                        }
                    } 
//end for loop
                
// end if showCommentsLabel == on
                
                //if "show comments label" is set to false, does not show "comments"
                
else{
                    foreach (
$Reviewers as $w) {
                        echo (
'<li>'.$w->display_name.': '.$w->qty);
                    } 
//end for loop
                
}
                
                
            } 
//end if is array
        
?>
        <!-- closing ul tag to contain the list -->
        </ul>
        <?php
        
        
/* After widget (defined by themes). */
        
echo $after_widget;
    }

    
/**
     * Update the widget settings.
     */
    
function update$new_instance$old_instance ) {
        
$instance $old_instance;

        
/* Strip tags for title and name to remove HTML (important for text inputs). */
        
$instance['title'] = strip_tags$new_instance['title'] );
        
$instance['excludeReviewers'] = strip_tags$new_instance['excludeReviewers'] );
        
$instance['limit'] = strip_tags$new_instance['limit'] );

        
/* No need to strip tags for these inputs */
        
$instance['identifier'] = $new_instance['identifier'];
        
$instance['show_reviews_label'] = isset($new_instance['show_reviews_label']);

        return 
$instance;
    }

    
/**
     * Displays the widget settings controls on the widget panel.
     * Make use of the get_field_id() and get_field_name() function
     * when creating your form elements. This handles the confusing stuff.
     */
    
function form$instance ) {

        
/* Set up some default widget settings. */
        
$defaults = array( 'title' => __('Top Reviewers''example'), 'excludeReviewers' => __('''example'), 'identifier' => 'email''limit' => 5'show_reviews_label' => true );
        
$instance wp_parse_args( (array) $instance$defaults ); ?>

        <!-- Widget Title: Text Input -->
        <p>
            <label for="<?php echo $this->get_field_id'title' ); ?>"><?php _e('Title:''hybrid'); ?></label>
            <input id="<?php echo $this->get_field_id'title' ); ?>" name="<?php echo $this->get_field_name'title' ); ?>" value="<?php echo $instance['title']; ?>"/>
        </p>

        <!-- Define Commenters Select Box -->
        <p>
            <label for="<?php echo $this->get_field_id'identifier' ); ?>"><?php _e('Define comentarios:''example'); ?></label> 
            <select id="<?php echo $this->get_field_id'identifier' ); ?>" name="<?php echo $this->get_field_name'identifier' ); ?>">
                <option <?php if ( 'email' == $instance['identifier'] ) echo 'selected="selected"'?>>email</option>
                <option <?php if ( 'name' == $instance['identifier'] ) echo 'selected="selected"'?>>name</option>
            </select>
        </p>
        
        <!-- Your Name: Text Input -->
        <p>
            <label for="<?php echo $this->get_field_id'excludeReviewers' ); ?>"><?php _e('Usuarios para Excluir: (separated by comma)''jim, [email protected]'); ?></label>
            <input id="<?php echo $this->get_field_id'excludeReviewers' ); ?>" name="<?php echo $this->get_field_name'excludeReviewers' ); ?>" value="<?php echo $instance['excludeReviewers']; ?>"/>
        </p>
        
        <!-- Limit -->
        <p>
            <label for="<?php echo $this->get_field_id'limit' ); ?>"><?php _e('# Num de usuarios: (leave blank to list all)''5'); ?></label>
            <input id="<?php echo $this->get_field_id'limit' ); ?>" name="<?php echo $this->get_field_name'limit' ); ?>" value="<?php echo $instance['limit']; ?>" style="width:2em;" />
        </p>
        
        <!-- Show "comments label" Checkbox -->
        <p>
            <input class="checkbox" type="checkbox" <?php checked(isset( $instance['show_reviews_label']) ? $instance['show_reviews_label'] : ); ?> id="<?php echo $this->get_field_id'show_reviews_label' ); ?>" name="<?php echo $this->get_field_name'show_reviews_label' ); ?>" /> 
            <label for="<?php echo $this->get_field_id'show_reviews_label' ); ?>"><?php _e('Mostrar?''example'); ?></label>
        </p>

    <?php
    
}
}
?>