• Super User

    Wordpress e una funzione php che non mi valida la pagina

    La questione è abbastanza pelosa, ci sono di mezzo wordpress, una funzione di php, la validazione e purtroppo la mia pignoleria.

    Sto parlando di un plugin per wordpress che restituisce un solo errore alla validazione, e questo errore è da ricercarsi nel file php del plugin, ovvero questo:

    [php]<?php

    /*

    Plugin Name: Whydowork Adsense

    Plugin URI: http://www.whydowork.com/blog/whydowork-adsense-plugin/

    Description: Insert Adsense code in your pages without modifying the template. Show different ads for articles older than 7 days (or as old as you wish).

    Author: Whydowork

    Version: 1.2

    Author URI: http://whydowork.com/

    */

        function whydowork_session(){
    
      $_SESSION['whydowork_posx'] = '';
    
      $_SESSION['whydowork_nri'] = 0;
    
    }
    
        function whydowork_adsense_install(){
    
      add_option("whydowork_adsense_admin",'on');
    
            add_option('whydowork_adsense_oldday', '7');
    
            add_option('whydowork_exclude', '');
    
            for ($i=1;$i<11;$i++){add_option('whydowork_code_'.$i, 'ADSENSE CODE #'.$i);}
    
            for ($i=1;$i<=3;$i++){
    
                add_option('whydowork_front_code_'.$i, 'FALSE');
    
                add_option('whydowork_front_pos_'.$i, 'top');
    
                add_option('whydowork_front_post_'.$i, '1');
    
                add_option('whydowork_page_code'.$i, 'FALSE');
    
                add_option('whydowork_page_pos'.$i, 'top');
    
                add_option('whydowork_single_code'.$i, 'FALSE');
    
                add_option('whydowork_single_pos'.$i, 'top');
    
                add_option('whydowork_singleold_code'.$i, 'top');
    
                add_option('whydowork_singleold_pos'.$i, 'top');
    
            }
    
        }
    
        function whydowork_adsense_menu(){
    
            if (function_exists('add_options_page')){
    
                add_options_page('Whydowork Adsense', 'Whydowork Adsense', 9, 'whydowork_adsense', 'whydowork_adsense_display');
    
            }
    
        }
    
        
    
        
    
        function whydowork_align($align_bd,$align){
    
            if ($align_bd == $align) return ' selected="selected"';
    
            else return '';
    
        }
    
        function whydowork_generate_align_menu($pos){
    
      $pos = 'whydowork_'.$pos;
    
            $align_bd = get_option($pos);
    
    
    
            $output = '            <td align="right" width="15%">Alignment of Ads: </td>'."\n";
    
            $output .= '            <td align="left" width="15%" colspan="2">'."\n";
    
            $output .= '                <select name="'.$pos.'">'."\n";
    
            $output .= '                    <option value="top"'.whydowork_align($align_bd,'top').'>Top</option>'."\n";
    
            $output .= '                    <option value="top-middle"'.whydowork_align($align_bd,'top-middle').'>Top middle</option>'."\n";
    
            $output .= '                    <option value="top-left"'.whydowork_align($align_bd,'top-left').'>Top Left</option>'."\n";
    
            $output .= '                    <option value="top-right"'.whydowork_align($align_bd,'top-right').'>Top Right</option>'."\n";
    
            $output .= '                    <option value="middle"'.whydowork_align($align_bd,'middle').'>Middle</option>'."\n";
    
            $output .= '                    <option value="middle-left"'.whydowork_align($align_bd,'middle-left').'>Middle Left</option>'."\n";
    
            $output .= '                    <option value="middle-right"'.whydowork_align($align_bd,'middle-right').'>Middle Right</option>'."\n";
    
            $output .= '                    <option value="bottom"'.whydowork_align($align_bd,'bottom').'>Bottom</option>'."\n";
    
            $output .= '                    <option value="random"'.whydowork_align($align_bd,'random').'>Random</option>'."\n";
    
            $output .= '                </select>'."\n";
    
            $output .= '            </td>';
    
            return $output;
    
        }
    
        
    
        function whydowork_generate_code_menu($code){
    
      $code = 'whydowork_'.$code;
    
            $code_nr = get_option($code);
    
            
    
            $output = '            <td align="right" width="15%">Code #: </td>'."\n";
    
            $output .= '            <td align="left" width="15%">'."\n";
    
            $output .= '                <select name="'.$code.'">'."\n";
    
            $output .= '                    <option value="FALSE"';
    
            if ($code_nr == FALSE){$output .= ' selected="selected"';}
    
            $output .= '>No code</option>'."\n";
    
            for ($i=1;$i<11;$i++){
    
                $output .= '                    <option value="'.$i.'"';
    
                if ($code_nr == $i){$output .= ' selected="selected"';}
    
                $output .= '>'.$i.'</option>'."\n";
    
            }
    
            $output .= '                </select>'."\n";
    
            $output .= '            </td>';
    
            return $output;
    
        }
    
    
    
    function whydowork_adsense_display(){
    
        if($_POST['Submit']){
    
          update_option("whydowork_adsense_admin", $_POST['whydowork_adsense_admin']);
    
          
    
          // OLD DAY
    
          $oldday = $_POST['whydowork_adsense_oldday'];
    
          if ($oldday<=0){$oldday=1;}
    
          update_option("whydowork_adsense_oldday", $oldday);
    
          
    
          // EXCLUDE
    
          update_option("whydowork_exclude", $_POST['whydowork_exclude']);
    
          
    
          // CODE
    
          update_option("whydowork_code_".$_POST['idx'], $_POST['whydowork_code']);
    
    
    
          for ($i=1;$i<=3;$i++){
    
            // FRONT PAGE
    
            update_option('whydowork_front_code_'.$i, $_POST['whydowork_front_code_'.$i]);
    
            update_option('whydowork_front_pos_'.$i, $_POST['whydowork_front_pos_'.$i]);
    
            update_option('whydowork_front_post_'.$i, $_POST['whydowork_front_post_'.$i]);
    
            
    
            // PAGE
    
            update_option('whydowork_page_code_'.$i, $_POST['whydowork_page_code_'.$i]);
    
            update_option('whydowork_page_pos_'.$i, $_POST['whydowork_page_pos_'.$i]);
    
            
    
            // SINGLE PAGE
    
            update_option('whydowork_single_code_'.$i, $_POST['whydowork_single_code_'.$i]);
    
            update_option('whydowork_single_pos_'.$i, $_POST['whydowork_single_pos_'.$i]);
    
            
    
            // SINGLE PAGE - OLD
    
            update_option('whydowork_singleold_code_'.$i, $_POST['whydowork_singleold_code_'.$i]);
    
            update_option('whydowork_singleold_pos_'.$i, $_POST['whydowork_singleold_pos_'.$i]);
    
          }
    
          echo '<div id="message" class="updated fade"><p>Update successful!</p></div>';
    
      }
    
      $idx = 1;
    
      if (isset($_GET['idcode'])) $idx = $_GET['idcode'];
    
      if ($idx > 10 || $idx < 1) $idx = 1;
    
      
    
      $code = stripslashes(get_option('whydowork_code_'.$idx));
    
    
    
      // SET CODE
    
      $output = '<div class="wrap" align="center">'."\n";
    
      $output .= '<form method="post" action="'.$_SERVER['REQUEST_URI'].'">'."\n";
    
      $output .= '<input type="hidden" name="idx" value="'.$idx.'" />';
    
      for ($i=1;$i<11;$i++){
    
        $output .= '    [<a href="?page=whydowork_adsense&idcode='.$i.'"><font color="';
    
        
    
        if ($i == $idx) $output .= '#ff0000';
    
        else $output .= '#000000';
    
        
    
        $output .= '">Code #'.$i.'</font></a>]'."\n";
    
        
    
        if ($i != 10){$output .= ' - ';}
    
      }
    
      $output .= '</div>'."\n";
    
      
    
      $output .= '<div class="wrap">'."\n";
    
      $output .= '    <table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="left" colspan="2"><h2>Set code #'.$idx.'</h2></td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="right" valign="top" width="15%">Ads Code #'.$idx.': </td>'."\n";
    
      $output .= '            <td align="left"><textarea name="whydowork_code" cols="60" rows="7">'.$code.'</textarea></td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="right" width="15%" valign="top">Preview: </td>'."\n";
    
      $output .= '            <td align="left" colspan="3"><div style="border: 1px solid black;">'.$code.'</div></td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      $output .= '    </table>'."\n";
    
      $output .= '</div>'."\n";
    
      
    
      // GENERAL OPTIONS
    
      $output .= '<div class="wrap">'."\n";
    
      $output .= '    <h2>General options</h2>'."\n";
    
      $output .= '    <p>If the post doesn\'t have at least 2 paragraph, the ads from the middle position will not show.</p>'."\n";
    
      $output .= '    <p>Show adsense to administrator? &nbsp;&nbsp;<input name="whydowork_adsense_admin" type="checkbox"';
    
      if (get_option('whydowork_adsense_admin') == 'on') $output .= ' checked="checked" ';
    
      $output .= '/>';
    
      $output .= '    <table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
    
    
    
      // EXCLUDE POSTS OR/AND PAGES
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="left" colspan="6"><h2>Exclude posts or/and pages</h2></td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="right" width="15%" valign="top">Exclude: </td>'."\n";
    
      $output .= '            <td align="left" colspan="5"><input type="text" name="whydowork_exclude" value="'.get_option('whydowork_exclude').'" /> (Write here the post ID. Example: 1,5,4)<br />Enter multiple "ID" comma separated.<br />"ID" can be found at "Manage" page.</td>'."\n";
    
      $output .= '        </tr>'."\n";
    
    
    
      // Front Page
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="left" colspan="6"><h2>Front Page(categories, archive)</h2></td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      for ($j=1;$j<=3;$j++){            
    
        $output .= '        <tr>'."\n";
    
        $output .= whydowork_generate_code_menu('front_code_'.$j);
    
        $output .= whydowork_generate_align_menu('front_pos_'.$j);
    
        $output .= '            <td align="right" width="15%">Show to post number: </td>'."\n";
    
        $output .= '            <td align="left">'."\n";
    
        $output .= '                <select name="whydowork_front_post_'.$j.'">'."\n";
    
        $post_nr = get_option('whydowork_front_post_'.$j);
    
        for ($i=1;$i<11;$i++){
    
          $selected = '';
    
          if ($i == $post_nr){$selected = ' selected="selected"';}
    
          $output .= '                    <option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n";
    
        }
    
        $output .= '                </select>'."\n";
    
        $output .= '            </td>';
    
        $output .= '        </tr>'."\n";
    
      }
    
      
    
      // PAGE
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="left" colspan="6"><h2>Page</h2></td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      for ($j=1;$j<=3;$j++){        
    
        $output .= '        <tr>'."\n";
    
        $output .= whydowork_generate_code_menu('page_code_'.$j);
    
        $output .= whydowork_generate_align_menu('page_pos_'.$j);
    
        $output .= '        </tr>'."\n";
    
      }
    
      
    
      // Single page
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="left" colspan="6"><h2>Single page</h2></td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      for ($j=1;$j<=3;$j++){            
    
        $output .= '        <tr>'."\n";
    
        $output .= whydowork_generate_code_menu('single_code_'.$j);
    
        $output .= whydowork_generate_align_menu('single_pos_'.$j);
    
        $output .= '        </tr>'."\n";
    
      }
    
      
    
      // Single page - OLD
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="left" colspan="6"><h2>Single Page(older than x days)</h2></td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      for ($j=1;$j<=3;$j++){            
    
        $output .= '        <tr>'."\n";
    
        $output .= whydowork_generate_code_menu('singleold_code_'.$j);
    
        $output .= whydowork_generate_align_menu('singleold_pos_'.$j);
    
        $output .= '        </tr>'."\n";
    
      }
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="right" width="15%">Use these settings for articles older than: </td>'."\n";
    
      $output .= '            <td align="left" colspan="5"><input type="text" name="whydowork_adsense_oldday" value="'.get_option('whydowork_adsense_oldday').'" /> day</td>';
    
      $output .= '        </tr>'."\n";
    
    
    
      $output .= '        <tr>'."\n";
    
      $output .= '            <td align="center" colspan="6">'."\n";
    
      $output .= '                <input type="submit" name="Submit" class="button" value="Update" />&nbsp;&nbsp;'."\n";
    
      $output .= '            </td>'."\n";
    
      $output .= '        </tr>'."\n";
    
      $output .= '    </table>'."\n";
    
      $output .= '</form>';
    
      $output .= '</div>'."\n";
    
      echo $output;
    
    }
    
    
    
    
    
    function whydowork_show_code($idx,$content){
    
      $output = $content;
    
            for ($j=1;$j<=3;$j++){
    
                $codeid = get_option('whydowork_'.$idx.'_code_'.$j);
    
    
    
                $verify = TRUE;
    
                if ($idx == 'front'){
    
                    $post_nr = get_option('whydowork_front_post_'.$j);
    
                    if ($_SESSION['whydowork_nri'] != $post_nr) $verify = FALSE;
    
                }
    
    
    
                if ($codeid != 'FALSE' && $verify){
    
                    $align = get_option('whydowork_'.$idx.'_pos_'.$j);
    
                    $_SESSION['whydowork_posx'] .= $align;
    
                }
    
            }
    
    
    
      for ($i=1;$i<=3;$i++){
    
        $verify = TRUE;
    
        if ($idx == 'front'){
    
          $post_nr = get_option('whydowork_front_post_'.$i);
    
          if ($_SESSION['whydowork_nri'] != $post_nr) $verify = FALSE;
    
        }
    
    
    
        $code_id = get_option('whydowork_'.$idx.'_code_'.$i);
    
        
    
        if ($code_id != 'FALSE' && $verify){
    
          $align = get_option('whydowork_'.$idx.'_pos_'.$i);
    
          
    
          if ($align == 'random'){
    
            $whydowork_posx = $_SESSION['whydowork_posx'];
    
            $align_array = array();
    
            if (!ereg('top',$whydowork_posx)){
    
              $align_array[] = 'top';
    
              $align_array[] = 'top-middle';
    
              $align_array[] = 'top-left';
    
              $align_array[] = 'top-right';
    
            }
    
            if (!ereg('middle',$whydowork_posx)){
    
              $align_array[] = 'middle';
    
              $align_array[] = 'middle-left';
    
              $align_array[] = 'middle-right';
    
            }
    
            if (!ereg('bottom',$whydowork_posx)){
    
              $align_array[] = 'bottom';
    
            }
    
            
    
            $rand = rand(0, count($align_array)-1);
    
            $align = $align_array[$rand];
    
            $_SESSION['whydowork_posx'] .= $align;
    
          }
    
          $output1 = explode('<p></p>', $output);
    
          $c_o1 = count($output1);
    
          
    
          $code = stripslashes(get_option('whydowork_code_'.$code_id));
    
          
    
          if ($align == 'top'){                $output = '<p>'.$code.'</p>'.$output;}
    
          elseif ($align == 'top-middle'){        $output = '<p style="text-align: center;">'.$code.'</p>'.$output;}
    
          elseif ($align == 'top-left'){        $output = '<p style="float: left;margin: 4px;">'.$code.'</p>'.$output.'<p></p>';}
    
          elseif ($align == 'top-right'){        $output = '<p style="float: right;margin: 4px;">'.$code.'</p>'.$output.'<p></p>';}
    
          elseif ($align == 'bottom'){        $output = $output.'<p style="text-align: center;">'.$code.'</p>';}
    
          elseif (ereg('middle',$align) && $c_o1>1){
    
            $output ='';
    
            for ($j=0;$j<$c_o1;$j++){
    
              if ($j == intval(($c_o1/2)-0.5)){
    
                if ($align == 'middle'){            $output.= $output1[$j].''.$code.'</p>';}
    
                elseif ($align == 'middle-left'){    $output .= $output1[$j].'</p><p style="float: left;margin: 4px;">'.$code.'</p>';}
    
                elseif ($align == 'middle-right'){    $output .= $output1[$j].'</p><p style="float: right;margin: 4px;">'.$code.'</p>';}
    
              }
    
              else {
    
                if ($j != 0){$output .= '</p>';}
    
                $output .= $output1[$j];
    
              }
    
            }
    
          }
    
        }
    
      }
    
      return $output;
    
    }
    
    
    
    function whydowork_adsense_filter($content){
    
        global $id,$user_level;
    
        $output = $content;
    
    
    
    if ($user_level != 10 || get_option('whydowork_adsense_admin') == 'on'){
    
      $exclude = FALSE;
    
      $whydowork_exclude = chop(get_option('whydowork_exclude'));
    
      if (ereg(',',$whydowork_exclude)){
    
        $whydowork_exclude = explode(',',$whydowork_exclude);
    
        for ($i=0;$i<count($whydowork_exclude);$i++){
    
          if ($id == $whydowork_exclude* || $exclude == TRUE) $exclude = TRUE;
    
        }
    
      }
    
      elseif ($whydowork_exclude == $id && $whydowork_exclude != '') $exclude = TRUE;
    
      
    
      if (ereg('<!-no-adsense-->',$output)) $exclude = TRUE;
    
      
    
      if (!$exclude){    
    
        if (is_single()){
    
          $whydowork_soc = 0;
    
          for ($i=1;$i<=3;$i++){
    
            $code_id = get_option('whydowork_singleold_code_'.$i);
    
            if ($code_id == 'FALSE') $whydowork_soc += 1;
    
          }
    
          
    
          $oldday = get_option('whydowork_adsense_oldday');
    
          $expire = time() - $oldday*24*60*60;
    
          if (get_the_time('U') < $expire && $whydowork_soc != 3) $output = whydowork_show_code('singleold',$output);  // Single Post - Old day
    
          else $output = whydowork_show_code('single',$output); // Single Post
    
        }
    
        else {
    
          if (is_page()) $output = whydowork_show_code('page',$output); // Page
    
          else {  // Categories, Archive, Front page
    
            $_SESSION['whydowork_nri'] += 1;
    
            $output = whydowork_show_code('front',$output);
    
          }
    
        }
    
      }
    
    }
    
        return $output;
    
    }
    

    /* START WIDGET CODE */

    function widget_whydowork_adsense_init(){

    if (!function_exists('register_sidebar_widget')) return;
    
    
    
    function widget_whydowork_adsense($args){
    
    global $user_level;
    
    extract($args);
    
    echo $before_widget;
    
    if ($user_level != 10 || get_option('whydowork_adsense_admin') == 'on'){
    
      $title = htmlspecialchars(get_option('whydowork_adsense_widget_title'));
    
      echo $before_title.$title.$after_title;
    
      echo '<ul>'."\n";
    
      echo '  <li>'.stripslashes(get_option('whydowork_adsense_widget_code')).'</li>'."\n";
    
      echo '</ul>'."\n";
    
    }
    
    echo $after_widget;
    
    }
    
    function widget_whydowork_adsense_options() {
    
        if ($_POST['whydowork_adsense_title']){
    
            $widget_title = strip_tags(stripslashes($_POST['whydowork_adsense_title']));
    
            update_option('whydowork_adsense_widget_title', $widget_title);
    
            update_option('whydowork_adsense_widget_code', $_POST['whydowork_adsense_code']);
    
        }
    
        $widget_title = htmlspecialchars(get_option('whydowork_adsense_widget_title'));
    
        $code = stripslashes(get_option('whydowork_adsense_widget_code'));
    
    $output .= '<table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
    
    $output .= '    <tr>'."\n";
    
    $output .= '        <td align="right" valign="top" width="25%">Widget Title: </td>'."\n";
    
    $output .= '        <td align="left"><input type="text" name="whydowork_adsense_title" value="'.$widget_title.'" /></td>'."\n";
    
    $output .= '    </tr>'."\n";
    
    $output .= '    <tr>'."\n";
    
    $output .= '        <td align="right" width="25%" valign="top">Code: </td>'."\n";
    
    $output .= '        <td align="left" colspan="3"><textarea name="whydowork_adsense_code" cols="25" rows="5">'.$code.'</textarea></td>'."\n";
    
    $output .= '    </tr>'."\n";
    
    $output .= '</table>'."\n";
    
    echo $output;
    
    }
    
    register_sidebar_widget('Whydowork Adsense', 'widget_whydowork_adsense');
    
    register_widget_control('Whydowork Adsense', 'widget_whydowork_adsense_options', 350, 200);
    

    }

    // Add action

    add_action('plugins_loaded', 'widget_whydowork_adsense_init');

    add_action('wp_head', 'whydowork_session');
    

    add_action('activate_whydowork_adsense.php', 'whydowork_adsense_install');

    add_action('admin_menu', 'whydowork_adsense_menu');

    // Add filter

    add_filter('the_content', 'whydowork_adsense_filter', 25);
    
    add_filter('the_excerpt', 'whydowork_adsense_filter', 25);
    

    ?>[/php]C'è una funzione, che si shiama explode, nel file è questa:

    $output1 = explode('</p>', $output);

    Se io la lascio così, il validatore mi restituisce un errore, e il blog mi fa apparire gli adsense giusti, ovvero nella posizione top e middle. Se metto un tag di apertura del paragrafo, ovvero

    $output1 = explode('<p></p>', $output);

    Allora il validatore mi da risultati positivi, ma dal blog sparisce il blocco degli ads di mezzo dagli articoli.

    E se tolgo la chiusura del tag p, il blog restituisce proprio un errore di sintassi, ovviamente.

    Che parte del file php devo modificare per fare in modo che il validatore non mi dica ciò:

        *Line 90, Column 2*:         document type does not allow element "p" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag.<p**>**Essere così fatalista non è da me e non è mia intenzione far passare questa i           [&#9993;](http://validator.w3.org/feedback.html?uri=http%3A%2F%2Fblog.pikadilly.it%2Fsocieta%2Fe-peggio-venire-risucchiati-dal-buco-nero-dellignoranza.html;errmsg_id=65#errormsg)     
    
                  The mentioned element is not allowed to appear in the context in which       you've placed it; the other mentioned elements are the only ones that       are both allowed there *and* can contain the element mentioned.       This might mean that you need a containing element, or possibly that       you've forgotten to close a previous element.     
             One possible cause for this message is that you have attempted to put a       block-level element (such as "<p>" or "<table>") inside an       inline element (such as "<a>", "<span>", or "<font>").     
    

    Il post è un pò lungo, ma volevo spiegare bene la situazione. Grazie mille. 😉


  • Consiglio Direttivo

    Ciao pika 🙂
    vado in linea teorica ovviamente dato che non ho mai usato o visto quel plugin
    la funzione explode serve ad esplodere (separare) una stringa ogni volta che, in questo caso, incontra un fine paragrafo (</p>) creandoti in questo caso un array $output1, quindi conta quanti pezzi di stringa ha questo array e dopo aver aggiunto (a seconda della posizione) dei pezzi di codice, cicla il contenuto dell'array per dare il definitivo output, mi sa che in tutti questi passaggi scappi qualcosa e quindi alcuni tag vadano a farsi benedire o dove non dovrebbero, forse sarebbe più utile vedere il contenuto di $output e l'html della pagina risultante per capire dove sta l'inguacchio 😉


  • Super User

    Ok, cedo. Allora, l'html è visibile quì:

    blog.pikadilly.it, qualsiasi articolo apri e tenti di validare ti dà quell'errore, per output che intendi? Cioè la funzione l'ho capita, ma l'altro dato non so dove pescarlo. 😉

    Intanto grazie mille Sam. 😉

    Lascio il blog invalidato per far capire, per me è un dolore enorme. 😄

    LOL


  • User Attivo

    Prova con:
    [php]<?php
    /*
    Plugin Name: Whydowork Adsense
    Plugin URI: http://www.whydowork.com/blog/whydowork-adsense-plugin/
    Description: Insert Adsense code in your pages without modifying the template. Show different ads for articles older than 7 days (or as old as you wish).
    Author: Whydowork
    Version: 1.2
    Author URI: http://whydowork.com/
    */
    function whydowork_session(){
    $SESSION['whydowork_posx'] = '';
    $SESSION['whydowork_nri'] = 0;
    }
    function whydowork_adsense_install(){
    add_option("whydowork_adsense_admin",'on');
    add_option('whydowork_adsense_oldday', '7');
    add_option('whydowork_exclude', '');
    for ($i=1;$i<11;$i++){add_option('whydowork_code
    '.$i, 'ADSENSE CODE #'.$i);}
    for ($i=1;$i<=3;$i++){
    add_option('whydowork_front_code
    '.$i, 'FALSE');
    add_option('whydowork_front_pos_'.$i, 'top');
    add_option('whydowork_front_post_'.$i, '1');
    add_option('whydowork_page_code'.$i, 'FALSE');
    add_option('whydowork_page_pos'.$i, 'top');
    add_option('whydowork_single_code'.$i, 'FALSE');
    add_option('whydowork_single_pos'.$i, 'top');
    add_option('whydowork_singleold_code'.$i, 'top');
    add_option('whydowork_singleold_pos'.$i, 'top');
    }
    }
    function whydowork_adsense_menu(){
    if (function_exists('add_options_page')){
    add_options_page('Whydowork Adsense', 'Whydowork Adsense', 9, 'whydowork_adsense', 'whydowork_adsense_display');
    }
    }

        function whydowork_align($align_bd,$align){
            if ($align_bd == $align) return ' selected="selected"';
            else return '';
        }
        function whydowork_generate_align_menu($pos){
      $pos = 'whydowork_'.$pos;
            $align_bd = get_option($pos);
    
            $output = '            <td align="right" width="15%">Alignment of Ads: </td>'."\n";
            $output .= '            <td align="left" width="15%" colspan="2">'."\n";
            $output .= '                <select name="'.$pos.'">'."\n";
            $output .= '                    <option value="top"'.whydowork_align($align_bd,'top').'>Top</option>'."\n";
            $output .= '                    <option value="top-middle"'.whydowork_align($align_bd,'top-middle').'>Top middle</option>'."\n";
            $output .= '                    <option value="top-left"'.whydowork_align($align_bd,'top-left').'>Top Left</option>'."\n";
            $output .= '                    <option value="top-right"'.whydowork_align($align_bd,'top-right').'>Top Right</option>'."\n";
            $output .= '                    <option value="middle"'.whydowork_align($align_bd,'middle').'>Middle</option>'."\n";
            $output .= '                    <option value="middle-left"'.whydowork_align($align_bd,'middle-left').'>Middle Left</option>'."\n";
            $output .= '                    <option value="middle-right"'.whydowork_align($align_bd,'middle-right').'>Middle Right</option>'."\n";
            $output .= '                    <option value="bottom"'.whydowork_align($align_bd,'bottom').'>Bottom</option>'."\n";
            $output .= '                    <option value="random"'.whydowork_align($align_bd,'random').'>Random</option>'."\n";
            $output .= '                </select>'."\n";
            $output .= '            </td>';
            return $output;
        }
        
        function whydowork_generate_code_menu($code){
      $code = 'whydowork_'.$code;
            $code_nr = get_option($code);
            
            $output = '            <td align="right" width="15%">Code #: </td>'."\n";
            $output .= '            <td align="left" width="15%">'."\n";
            $output .= '                <select name="'.$code.'">'."\n";
            $output .= '                    <option value="FALSE"';
            if ($code_nr == FALSE){$output .= ' selected="selected"';}
            $output .= '>No code</option>'."\n";
            for ($i=1;$i<11;$i++){
                $output .= '                    <option value="'.$i.'"';
                if ($code_nr == $i){$output .= ' selected="selected"';}
                $output .= '>'.$i.'</option>'."\n";
            }
            $output .= '                </select>'."\n";
            $output .= '            </td>';
            return $output;
        }
    
    function whydowork_adsense_display(){
        if($_POST['Submit']){
          update_option("whydowork_adsense_admin", $_POST['whydowork_adsense_admin']);
          
          // OLD DAY
          $oldday = $_POST['whydowork_adsense_oldday'];
          if ($oldday<=0){$oldday=1;}
          update_option("whydowork_adsense_oldday", $oldday);
          
          // EXCLUDE
          update_option("whydowork_exclude", $_POST['whydowork_exclude']);
          
          // CODE
          update_option("whydowork_code_".$_POST['idx'], $_POST['whydowork_code']);
    
          for ($i=1;$i<=3;$i++){
            // FRONT PAGE
            update_option('whydowork_front_code_'.$i, $_POST['whydowork_front_code_'.$i]);
            update_option('whydowork_front_pos_'.$i, $_POST['whydowork_front_pos_'.$i]);
            update_option('whydowork_front_post_'.$i, $_POST['whydowork_front_post_'.$i]);
            
            // PAGE
            update_option('whydowork_page_code_'.$i, $_POST['whydowork_page_code_'.$i]);
            update_option('whydowork_page_pos_'.$i, $_POST['whydowork_page_pos_'.$i]);
            
            // SINGLE PAGE
            update_option('whydowork_single_code_'.$i, $_POST['whydowork_single_code_'.$i]);
            update_option('whydowork_single_pos_'.$i, $_POST['whydowork_single_pos_'.$i]);
            
            // SINGLE PAGE - OLD
            update_option('whydowork_singleold_code_'.$i, $_POST['whydowork_singleold_code_'.$i]);
            update_option('whydowork_singleold_pos_'.$i, $_POST['whydowork_singleold_pos_'.$i]);
          }
          echo '<div id="message" class="updated fade"><p>Update successful!</p></div>';
      }
      $idx = 1;
      if (isset($_GET['idcode'])) $idx = $_GET['idcode'];
      if ($idx > 10 || $idx < 1) $idx = 1;
      
      $code = stripslashes(get_option('whydowork_code_'.$idx));
    
      // SET CODE
      $output = '<div class="wrap" align="center">'."\n";
      $output .= '<form method="post" action="'.$_SERVER['REQUEST_URI'].'">'."\n";
      $output .= '<input type="hidden" name="idx" value="'.$idx.'" />';
      for ($i=1;$i<11;$i++){
        $output .= '    [<a href="?page=whydowork_adsense&idcode='.$i.'"><font color="';
        
        if ($i == $idx) $output .= '#ff0000';
        else $output .= '#000000';
        
        $output .= '">Code #'.$i.'</font></a>]'."\n";
        
        if ($i != 10){$output .= ' - ';}
      }
      $output .= '</div>'."\n";
      
      $output .= '<div class="wrap">'."\n";
      $output .= '    <table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="2"><h2>Set code #'.$idx.'</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '        <tr>'."\n";
      $output .= '            <td align="right" valign="top" width="15%">Ads Code #'.$idx.': </td>'."\n";
      $output .= '            <td align="left"><textarea name="whydowork_code" cols="60" rows="7">'.$code.'</textarea></td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '        <tr>'."\n";
      $output .= '            <td align="right" width="15%" valign="top">Preview: </td>'."\n";
      $output .= '            <td align="left" colspan="3"><div style="border: 1px solid black;">'.$code.'</div></td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '    </table>'."\n";
      $output .= '</div>'."\n";
      
      // GENERAL OPTIONS
      $output .= '<div class="wrap">'."\n";
      $output .= '    <h2>General options</h2>'."\n";
      $output .= '    <p>If the post doesn\'t have at least 2 paragraph, the ads from the middle position will not show.</p>'."\n";
      $output .= '    <p>Show adsense to administrator? &nbsp;&nbsp;<input name="whydowork_adsense_admin" type="checkbox"';
      if (get_option('whydowork_adsense_admin') == 'on') $output .= ' checked="checked" ';
      $output .= '/>';
      $output .= '    <table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
    
      // EXCLUDE POSTS OR/AND PAGES
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Exclude posts or/and pages</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '        <tr>'."\n";
      $output .= '            <td align="right" width="15%" valign="top">Exclude: </td>'."\n";
      $output .= '            <td align="left" colspan="5"><input type="text" name="whydowork_exclude" value="'.get_option('whydowork_exclude').'" /> (Write here the post ID. Example: 1,5,4)<br />Enter multiple "ID" comma separated.<br />"ID" can be found at "Manage" page.</td>'."\n";
      $output .= '        </tr>'."\n";
    
      // Front Page
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Front Page(categories, archive)</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      for ($j=1;$j<=3;$j++){            
        $output .= '        <tr>'."\n";
        $output .= whydowork_generate_code_menu('front_code_'.$j);
        $output .= whydowork_generate_align_menu('front_pos_'.$j);
        $output .= '            <td align="right" width="15%">Show to post number: </td>'."\n";
        $output .= '            <td align="left">'."\n";
        $output .= '                <select name="whydowork_front_post_'.$j.'">'."\n";
        $post_nr = get_option('whydowork_front_post_'.$j);
        for ($i=1;$i<11;$i++){
          $selected = '';
          if ($i == $post_nr){$selected = ' selected="selected"';}
          $output .= '                    <option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n";
        }
        $output .= '                </select>'."\n";
        $output .= '            </td>';
        $output .= '        </tr>'."\n";
      }
      
      // PAGE
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Page</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      for ($j=1;$j<=3;$j++){        
        $output .= '        <tr>'."\n";
        $output .= whydowork_generate_code_menu('page_code_'.$j);
        $output .= whydowork_generate_align_menu('page_pos_'.$j);
        $output .= '        </tr>'."\n";
      }
      
      // Single page
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Single page</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      for ($j=1;$j<=3;$j++){            
        $output .= '        <tr>'."\n";
        $output .= whydowork_generate_code_menu('single_code_'.$j);
        $output .= whydowork_generate_align_menu('single_pos_'.$j);
        $output .= '        </tr>'."\n";
      }
      
      // Single page - OLD
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Single Page(older than x days)</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      for ($j=1;$j<=3;$j++){            
        $output .= '        <tr>'."\n";
        $output .= whydowork_generate_code_menu('singleold_code_'.$j);
        $output .= whydowork_generate_align_menu('singleold_pos_'.$j);
        $output .= '        </tr>'."\n";
      }
      $output .= '        <tr>'."\n";
      $output .= '            <td align="right" width="15%">Use these settings for articles older than: </td>'."\n";
      $output .= '            <td align="left" colspan="5"><input type="text" name="whydowork_adsense_oldday" value="'.get_option('whydowork_adsense_oldday').'" /> day</td>';
      $output .= '        </tr>'."\n";
    
      $output .= '        <tr>'."\n";
      $output .= '            <td align="center" colspan="6">'."\n";
      $output .= '                <input type="submit" name="Submit" class="button" value="Update" />&nbsp;&nbsp;'."\n";
      $output .= '            </td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '    </table>'."\n";
      $output .= '</form>';
      $output .= '</div>'."\n";
      echo $output;
    }
    
    
    function whydowork_show_code($idx,$content){
      $output = $content;
            for ($j=1;$j<=3;$j++){
                $codeid = get_option('whydowork_'.$idx.'_code_'.$j);
    
                $verify = TRUE;
                if ($idx == 'front'){
                    $post_nr = get_option('whydowork_front_post_'.$j);
                    if ($_SESSION['whydowork_nri'] != $post_nr) $verify = FALSE;
                }
    
                if ($codeid != 'FALSE' && $verify){
                    $align = get_option('whydowork_'.$idx.'_pos_'.$j);
                    $_SESSION['whydowork_posx'] .= $align;
                }
            }
    
      for ($i=1;$i<=3;$i++){
        $verify = TRUE;
        if ($idx == 'front'){
          $post_nr = get_option('whydowork_front_post_'.$i);
          if ($_SESSION['whydowork_nri'] != $post_nr) $verify = FALSE;
        }
    
        $code_id = get_option('whydowork_'.$idx.'_code_'.$i);
        
        if ($code_id != 'FALSE' && $verify){
          $align = get_option('whydowork_'.$idx.'_pos_'.$i);
          
          if ($align == 'random'){
            $whydowork_posx = $_SESSION['whydowork_posx'];
            $align_array = array();
            if (!ereg('top',$whydowork_posx)){
              $align_array[] = 'top';
              $align_array[] = 'top-middle';
              $align_array[] = 'top-left';
              $align_array[] = 'top-right';
            }
            if (!ereg('middle',$whydowork_posx)){
              $align_array[] = 'middle';
              $align_array[] = 'middle-left';
              $align_array[] = 'middle-right';
            }
            if (!ereg('bottom',$whydowork_posx)){
              $align_array[] = 'bottom';
            }
            
            $rand = rand(0, count($align_array)-1);
            $align = $align_array[$rand];
            $_SESSION['whydowork_posx'] .= $align;
          }
          $output1 = explode('</p>', $output);
          $c_o1 = count($output1);
          
          $code = stripslashes(get_option('whydowork_code_'.$code_id));
          
          if ($align == 'top'){                $output = '<p>'.$code.'</p>'.$output;}
          elseif ($align == 'top-middle'){        $output = '<p style="text-align: center;">'.$code.'</p>'.$output;}
          elseif ($align == 'top-left'){        $output = '<p style="float: left;margin: 4px;">'.$code.'</p>'.$output.'<p></p>';}
          elseif ($align == 'top-right'){        $output = '<p style="float: right;margin: 4px;">'.$code.'</p>'.$output.'<p></p>';}
          elseif ($align == 'bottom'){        $output = $output.'<p style="text-align: center;">'.$code.'</p>';}
          elseif (ereg('middle',$align) && $c_o1>1){
            $output ='';
            for ($j=0;$j<$c_o1;$j++){
              if ($j == intval(($c_o1/2)-0.5)){
                if ($align == 'middle'){            $output.= $output1[$j].'</p><p>'.$code.'';}
                elseif ($align == 'middle-left'){    $output .= $output1[$j].'</p><p style="float: left;margin: 4px;">'.$code.'</p>';}
                elseif ($align == 'middle-right'){    $output .= $output1[$j].'</p><p style="float: right;margin: 4px;">'.$code.'</p>';}
              }
              else {
                if ($j != 0){$output .= '</p>';}
                $output .= $output1[$j];
              }
            }
          }
        }
      }
      return $output;
    }
    
    function whydowork_adsense_filter($content){
        global $id,$user_level;
        $output = $content;
    
    if ($user_level != 10 || get_option('whydowork_adsense_admin') == 'on'){
      $exclude = FALSE;
      $whydowork_exclude = chop(get_option('whydowork_exclude'));
      if (ereg(',',$whydowork_exclude)){
        $whydowork_exclude = explode(',',$whydowork_exclude);
        for ($i=0;$i<count($whydowork_exclude);$i++){
          if ($id == $whydowork_exclude* || $exclude == TRUE) $exclude = TRUE;
        }
      }
      elseif ($whydowork_exclude == $id && $whydowork_exclude != '') $exclude = TRUE;
      
      if (ereg('<!-no-adsense-->',$output)) $exclude = TRUE;
      
      if (!$exclude){    
        if (is_single()){
          $whydowork_soc = 0;
          for ($i=1;$i<=3;$i++){
            $code_id = get_option('whydowork_singleold_code_'.$i);
            if ($code_id == 'FALSE') $whydowork_soc += 1;
          }
          
          $oldday = get_option('whydowork_adsense_oldday');
          $expire = time() - $oldday*24*60*60;
          if (get_the_time('U') < $expire && $whydowork_soc != 3) $output = whydowork_show_code('singleold',$output);  // Single Post - Old day
          else $output = whydowork_show_code('single',$output); // Single Post
        }
        else {
          if (is_page()) $output = whydowork_show_code('page',$output); // Page
          else {  // Categories, Archive, Front page
            $_SESSION['whydowork_nri'] += 1;
            $output = whydowork_show_code('front',$output);
          }
        }
      }
    }
        return $output;
    }
    

    /* START WIDGET CODE */
    function widget_whydowork_adsense_init(){
    if (!function_exists('register_sidebar_widget')) return;

    function widget_whydowork_adsense($args){
    global $user_level;
    extract($args);
    echo $before_widget;
    if ($user_level != 10 || get_option('whydowork_adsense_admin') == 'on'){
      $title = htmlspecialchars(get_option('whydowork_adsense_widget_title'));
      echo $before_title.$title.$after_title;
      echo '<ul>'."\n";
      echo '  <li>'.stripslashes(get_option('whydowork_adsense_widget_code')).'</li>'."\n";
      echo '</ul>'."\n";
    }
    echo $after_widget;
    }
    function widget_whydowork_adsense_options() {
        if ($_POST['whydowork_adsense_title']){
            $widget_title = strip_tags(stripslashes($_POST['whydowork_adsense_title']));
            update_option('whydowork_adsense_widget_title', $widget_title);
            update_option('whydowork_adsense_widget_code', $_POST['whydowork_adsense_code']);
        }
        $widget_title = htmlspecialchars(get_option('whydowork_adsense_widget_title'));
        $code = stripslashes(get_option('whydowork_adsense_widget_code'));
    $output .= '<table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
    $output .= '    <tr>'."\n";
    $output .= '        <td align="right" valign="top" width="25%">Widget Title: </td>'."\n";
    $output .= '        <td align="left"><input type="text" name="whydowork_adsense_title" value="'.$widget_title.'" /></td>'."\n";
    $output .= '    </tr>'."\n";
    $output .= '    <tr>'."\n";
    $output .= '        <td align="right" width="25%" valign="top">Code: </td>'."\n";
    $output .= '        <td align="left" colspan="3"><textarea name="whydowork_adsense_code" cols="25" rows="5">'.$code.'</textarea></td>'."\n";
    $output .= '    </tr>'."\n";
    $output .= '</table>'."\n";
    echo $output;
    }
    register_sidebar_widget('Whydowork Adsense', 'widget_whydowork_adsense');
    register_widget_control('Whydowork Adsense', 'widget_whydowork_adsense_options', 350, 200);
    

    }

    // Add action
    add_action('plugins_loaded', 'widget_whydowork_adsense_init');
    add_action('wp_head', 'whydowork_session');
    add_action('activate_whydowork_adsense.php', 'whydowork_adsense_install');
    add_action('admin_menu', 'whydowork_adsense_menu');

    // Add filter
    add_filter('the_content', 'whydowork_adsense_filter', 25);
    add_filter('the_excerpt', 'whydowork_adsense_filter', 25);
    ?>[/php]

    Ciao


  • Super User

    Ciao Elvino, ti ringrazio dell'aiuto, ma ora restituisce undici errori. 😉


  • Consiglio Direttivo

    Dall'HTML della pagina ho visto che si è mangiato tutti i fine paragrafo dell'articolo, bisogna vedere come mai nella ricostruzione dell'articolo per inserire il codice Adsense non riposiziona i fine paragrafo.....più tardi posso vedere di studiarci :D.


  • Super User

    Ringrazio e chiedo venia, la mia è pignoleria perchè il plugin funziona, la pagina pure, è solo un fatto di validazione. 😞


  • User Attivo

    @pikadilly said:

    Ciao Elvino, ti ringrazio dell'aiuto, ma ora restituisce undici errori. 😉
    e adesso?
    [php]<?php
    /*
    Plugin Name: Whydowork Adsense
    Plugin URI: http://www.whydowork.com/blog/whydowork-adsense-plugin/
    Description: Insert Adsense code in your pages without modifying the template. Show different ads for articles older than 7 days (or as old as you wish).
    Author: Whydowork
    Version: 1.2
    Author URI: http://whydowork.com/
    */
    function whydowork_session(){
    $SESSION['whydowork_posx'] = '';
    $SESSION['whydowork_nri'] = 0;
    }
    function whydowork_adsense_install(){
    add_option("whydowork_adsense_admin",'on');
    add_option('whydowork_adsense_oldday', '7');
    add_option('whydowork_exclude', '');
    for ($i=1;$i<11;$i++){add_option('whydowork_code
    '.$i, 'ADSENSE CODE #'.$i);}
    for ($i=1;$i<=3;$i++){
    add_option('whydowork_front_code
    '.$i, 'FALSE');
    add_option('whydowork_front_pos_'.$i, 'top');
    add_option('whydowork_front_post_'.$i, '1');
    add_option('whydowork_page_code'.$i, 'FALSE');
    add_option('whydowork_page_pos'.$i, 'top');
    add_option('whydowork_single_code'.$i, 'FALSE');
    add_option('whydowork_single_pos'.$i, 'top');
    add_option('whydowork_singleold_code'.$i, 'top');
    add_option('whydowork_singleold_pos'.$i, 'top');
    }
    }
    function whydowork_adsense_menu(){
    if (function_exists('add_options_page')){
    add_options_page('Whydowork Adsense', 'Whydowork Adsense', 9, 'whydowork_adsense', 'whydowork_adsense_display');
    }
    }

        function whydowork_align($align_bd,$align){
            if ($align_bd == $align) return ' selected="selected"';
            else return '';
        }
        function whydowork_generate_align_menu($pos){
      $pos = 'whydowork_'.$pos;
            $align_bd = get_option($pos);
    
            $output = '            <td align="right" width="15%">Alignment of Ads: </td>'."\n";
            $output .= '            <td align="left" width="15%" colspan="2">'."\n";
            $output .= '                <select name="'.$pos.'">'."\n";
            $output .= '                    <option value="top"'.whydowork_align($align_bd,'top').'>Top</option>'."\n";
            $output .= '                    <option value="top-middle"'.whydowork_align($align_bd,'top-middle').'>Top middle</option>'."\n";
            $output .= '                    <option value="top-left"'.whydowork_align($align_bd,'top-left').'>Top Left</option>'."\n";
            $output .= '                    <option value="top-right"'.whydowork_align($align_bd,'top-right').'>Top Right</option>'."\n";
            $output .= '                    <option value="middle"'.whydowork_align($align_bd,'middle').'>Middle</option>'."\n";
            $output .= '                    <option value="middle-left"'.whydowork_align($align_bd,'middle-left').'>Middle Left</option>'."\n";
            $output .= '                    <option value="middle-right"'.whydowork_align($align_bd,'middle-right').'>Middle Right</option>'."\n";
            $output .= '                    <option value="bottom"'.whydowork_align($align_bd,'bottom').'>Bottom</option>'."\n";
            $output .= '                    <option value="random"'.whydowork_align($align_bd,'random').'>Random</option>'."\n";
            $output .= '                </select>'."\n";
            $output .= '            </td>';
            return $output;
        }
        
        function whydowork_generate_code_menu($code){
      $code = 'whydowork_'.$code;
            $code_nr = get_option($code);
            
            $output = '            <td align="right" width="15%">Code #: </td>'."\n";
            $output .= '            <td align="left" width="15%">'."\n";
            $output .= '                <select name="'.$code.'">'."\n";
            $output .= '                    <option value="FALSE"';
            if ($code_nr == FALSE){$output .= ' selected="selected"';}
            $output .= '>No code</option>'."\n";
            for ($i=1;$i<11;$i++){
                $output .= '                    <option value="'.$i.'"';
                if ($code_nr == $i){$output .= ' selected="selected"';}
                $output .= '>'.$i.'</option>'."\n";
            }
            $output .= '                </select>'."\n";
            $output .= '            </td>';
            return $output;
        }
    
    function whydowork_adsense_display(){
        if($_POST['Submit']){
          update_option("whydowork_adsense_admin", $_POST['whydowork_adsense_admin']);
          
          // OLD DAY
          $oldday = $_POST['whydowork_adsense_oldday'];
          if ($oldday<=0){$oldday=1;}
          update_option("whydowork_adsense_oldday", $oldday);
          
          // EXCLUDE
          update_option("whydowork_exclude", $_POST['whydowork_exclude']);
          
          // CODE
          update_option("whydowork_code_".$_POST['idx'], $_POST['whydowork_code']);
    
          for ($i=1;$i<=3;$i++){
            // FRONT PAGE
            update_option('whydowork_front_code_'.$i, $_POST['whydowork_front_code_'.$i]);
            update_option('whydowork_front_pos_'.$i, $_POST['whydowork_front_pos_'.$i]);
            update_option('whydowork_front_post_'.$i, $_POST['whydowork_front_post_'.$i]);
            
            // PAGE
            update_option('whydowork_page_code_'.$i, $_POST['whydowork_page_code_'.$i]);
            update_option('whydowork_page_pos_'.$i, $_POST['whydowork_page_pos_'.$i]);
            
            // SINGLE PAGE
            update_option('whydowork_single_code_'.$i, $_POST['whydowork_single_code_'.$i]);
            update_option('whydowork_single_pos_'.$i, $_POST['whydowork_single_pos_'.$i]);
            
            // SINGLE PAGE - OLD
            update_option('whydowork_singleold_code_'.$i, $_POST['whydowork_singleold_code_'.$i]);
            update_option('whydowork_singleold_pos_'.$i, $_POST['whydowork_singleold_pos_'.$i]);
          }
          echo '<div id="message" class="updated fade"><p>Update successful!</p></div>';
      }
      $idx = 1;
      if (isset($_GET['idcode'])) $idx = $_GET['idcode'];
      if ($idx > 10 || $idx < 1) $idx = 1;
      
      $code = stripslashes(get_option('whydowork_code_'.$idx));
    
      // SET CODE
      $output = '<div class="wrap" align="center">'."\n";
      $output .= '<form method="post" action="'.$_SERVER['REQUEST_URI'].'">'."\n";
      $output .= '<input type="hidden" name="idx" value="'.$idx.'" />';
      for ($i=1;$i<11;$i++){
        $output .= '    [<a href="?page=whydowork_adsense&idcode='.$i.'"><font color="';
        
        if ($i == $idx) $output .= '#ff0000';
        else $output .= '#000000';
        
        $output .= '">Code #'.$i.'</font></a>]'."\n";
        
        if ($i != 10){$output .= ' - ';}
      }
      $output .= '</div>'."\n";
      
      $output .= '<div class="wrap">'."\n";
      $output .= '    <table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="2"><h2>Set code #'.$idx.'</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '        <tr>'."\n";
      $output .= '            <td align="right" valign="top" width="15%">Ads Code #'.$idx.': </td>'."\n";
      $output .= '            <td align="left"><textarea name="whydowork_code" cols="60" rows="7">'.$code.'</textarea></td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '        <tr>'."\n";
      $output .= '            <td align="right" width="15%" valign="top">Preview: </td>'."\n";
      $output .= '            <td align="left" colspan="3"><div style="border: 1px solid black;">'.$code.'</div></td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '    </table>'."\n";
      $output .= '</div>'."\n";
      
      // GENERAL OPTIONS
      $output .= '<div class="wrap">'."\n";
      $output .= '    <h2>General options</h2>'."\n";
      $output .= '    <p>If the post doesn\'t have at least 2 paragraph, the ads from the middle position will not show.</p>'."\n";
      $output .= '    <p>Show adsense to administrator? &nbsp;&nbsp;<input name="whydowork_adsense_admin" type="checkbox"';
      if (get_option('whydowork_adsense_admin') == 'on') $output .= ' checked="checked" ';
      $output .= '/>';
      $output .= '    <table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
    
      // EXCLUDE POSTS OR/AND PAGES
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Exclude posts or/and pages</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '        <tr>'."\n";
      $output .= '            <td align="right" width="15%" valign="top">Exclude: </td>'."\n";
      $output .= '            <td align="left" colspan="5"><input type="text" name="whydowork_exclude" value="'.get_option('whydowork_exclude').'" /> (Write here the post ID. Example: 1,5,4)<br />Enter multiple "ID" comma separated.<br />"ID" can be found at "Manage" page.</td>'."\n";
      $output .= '        </tr>'."\n";
    
      // Front Page
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Front Page(categories, archive)</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      for ($j=1;$j<=3;$j++){            
        $output .= '        <tr>'."\n";
        $output .= whydowork_generate_code_menu('front_code_'.$j);
        $output .= whydowork_generate_align_menu('front_pos_'.$j);
        $output .= '            <td align="right" width="15%">Show to post number: </td>'."\n";
        $output .= '            <td align="left">'."\n";
        $output .= '                <select name="whydowork_front_post_'.$j.'">'."\n";
        $post_nr = get_option('whydowork_front_post_'.$j);
        for ($i=1;$i<11;$i++){
          $selected = '';
          if ($i == $post_nr){$selected = ' selected="selected"';}
          $output .= '                    <option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n";
        }
        $output .= '                </select>'."\n";
        $output .= '            </td>';
        $output .= '        </tr>'."\n";
      }
      
      // PAGE
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Page</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      for ($j=1;$j<=3;$j++){        
        $output .= '        <tr>'."\n";
        $output .= whydowork_generate_code_menu('page_code_'.$j);
        $output .= whydowork_generate_align_menu('page_pos_'.$j);
        $output .= '        </tr>'."\n";
      }
      
      // Single page
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Single page</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      for ($j=1;$j<=3;$j++){            
        $output .= '        <tr>'."\n";
        $output .= whydowork_generate_code_menu('single_code_'.$j);
        $output .= whydowork_generate_align_menu('single_pos_'.$j);
        $output .= '        </tr>'."\n";
      }
      
      // Single page - OLD
      $output .= '        <tr>'."\n";
      $output .= '            <td align="left" colspan="6"><h2>Single Page(older than x days)</h2></td>'."\n";
      $output .= '        </tr>'."\n";
      for ($j=1;$j<=3;$j++){            
        $output .= '        <tr>'."\n";
        $output .= whydowork_generate_code_menu('singleold_code_'.$j);
        $output .= whydowork_generate_align_menu('singleold_pos_'.$j);
        $output .= '        </tr>'."\n";
      }
      $output .= '        <tr>'."\n";
      $output .= '            <td align="right" width="15%">Use these settings for articles older than: </td>'."\n";
      $output .= '            <td align="left" colspan="5"><input type="text" name="whydowork_adsense_oldday" value="'.get_option('whydowork_adsense_oldday').'" /> day</td>';
      $output .= '        </tr>'."\n";
    
      $output .= '        <tr>'."\n";
      $output .= '            <td align="center" colspan="6">'."\n";
      $output .= '                <input type="submit" name="Submit" class="button" value="Update" />&nbsp;&nbsp;'."\n";
      $output .= '            </td>'."\n";
      $output .= '        </tr>'."\n";
      $output .= '    </table>'."\n";
      $output .= '</form>';
      $output .= '</div>'."\n";
      echo $output;
    }
    
    
    function whydowork_show_code($idx,$content){
      $output = $content;
            for ($j=1;$j<=3;$j++){
                $codeid = get_option('whydowork_'.$idx.'_code_'.$j);
    
                $verify = TRUE;
                if ($idx == 'front'){
                    $post_nr = get_option('whydowork_front_post_'.$j);
                    if ($_SESSION['whydowork_nri'] != $post_nr) $verify = FALSE;
                }
    
                if ($codeid != 'FALSE' && $verify){
                    $align = get_option('whydowork_'.$idx.'_pos_'.$j);
                    $_SESSION['whydowork_posx'] .= $align;
                }
            }
    
      for ($i=1;$i<=3;$i++){
        $verify = TRUE;
        if ($idx == 'front'){
          $post_nr = get_option('whydowork_front_post_'.$i);
          if ($_SESSION['whydowork_nri'] != $post_nr) $verify = FALSE;
        }
    
        $code_id = get_option('whydowork_'.$idx.'_code_'.$i);
        
        if ($code_id != 'FALSE' && $verify){
          $align = get_option('whydowork_'.$idx.'_pos_'.$i);
          
          if ($align == 'random'){
            $whydowork_posx = $_SESSION['whydowork_posx'];
            $align_array = array();
            if (!ereg('top',$whydowork_posx)){
              $align_array[] = 'top';
              $align_array[] = 'top-middle';
              $align_array[] = 'top-left';
              $align_array[] = 'top-right';
            }
            if (!ereg('middle',$whydowork_posx)){
              $align_array[] = 'middle';
              $align_array[] = 'middle-left';
              $align_array[] = 'middle-right';
            }
            if (!ereg('bottom',$whydowork_posx)){
              $align_array[] = 'bottom';
            }
            
            $rand = rand(0, count($align_array)-1);
            $align = $align_array[$rand];
            $_SESSION['whydowork_posx'] .= $align;
          }
          $output1 = explode('</p>', $output);
          $c_o1 = count($output1);
          
          $code = stripslashes(get_option('whydowork_code_'.$code_id));
          
          if ($align == 'top'){                $output = '<p>'.$code.'</p>'.$output;}
          elseif ($align == 'top-middle'){        $output = '<p style="text-align: center;">'.$code.'</p>'.$output;}
          elseif ($align == 'top-left'){        $output = '<p style="float: left;margin: 4px;">'.$code.'</p>'.$output.'<p></p>';}
          elseif ($align == 'top-right'){        $output = '<p style="float: right;margin: 4px;">'.$code.'</p>'.$output.'<p></p>';}
          elseif ($align == 'bottom'){        $output = $output.'<p style="text-align: center;">'.$code.'</p>';}
          elseif (ereg('middle',$align) && $c_o1>1){
            $output ='';
            for ($j=0;$j<$c_o1;$j++){
              if ($j == intval(($c_o1/2)-0.5)){
                if ($align == 'middle'){            $output.= '</p>'.$output1[$j].'</p><p>'.$code.'';}
                elseif ($align == 'middle-left'){    $output .= $output1[$j].'</p><p style="float: left;margin: 4px;">'.$code.'</p>';}
                elseif ($align == 'middle-right'){    $output .= $output1[$j].'</p><p style="float: right;margin: 4px;">'.$code.'</p>';}
              }
              else {
                if ($j != 0){$output .= '</p>';}
                $output .= $output1[$j];
              }
            }
          }
        }
      }
      return $output;
    }
    
    function whydowork_adsense_filter($content){
        global $id,$user_level;
        $output = $content;
    
    if ($user_level != 10 || get_option('whydowork_adsense_admin') == 'on'){
      $exclude = FALSE;
      $whydowork_exclude = chop(get_option('whydowork_exclude'));
      if (ereg(',',$whydowork_exclude)){
        $whydowork_exclude = explode(',',$whydowork_exclude);
        for ($i=0;$i<count($whydowork_exclude);$i++){
          if ($id == $whydowork_exclude* || $exclude == TRUE) $exclude = TRUE;
        }
      }
      elseif ($whydowork_exclude == $id && $whydowork_exclude != '') $exclude = TRUE;
      
      if (ereg('<!-no-adsense-->',$output)) $exclude = TRUE;
      
      if (!$exclude){    
        if (is_single()){
          $whydowork_soc = 0;
          for ($i=1;$i<=3;$i++){
            $code_id = get_option('whydowork_singleold_code_'.$i);
            if ($code_id == 'FALSE') $whydowork_soc += 1;
          }
          
          $oldday = get_option('whydowork_adsense_oldday');
          $expire = time() - $oldday*24*60*60;
          if (get_the_time('U') < $expire && $whydowork_soc != 3) $output = whydowork_show_code('singleold',$output);  // Single Post - Old day
          else $output = whydowork_show_code('single',$output); // Single Post
        }
        else {
          if (is_page()) $output = whydowork_show_code('page',$output); // Page
          else {  // Categories, Archive, Front page
            $_SESSION['whydowork_nri'] += 1;
            $output = whydowork_show_code('front',$output);
          }
        }
      }
    }
        return $output;
    }
    

    /* START WIDGET CODE */
    function widget_whydowork_adsense_init(){
    if (!function_exists('register_sidebar_widget')) return;

    function widget_whydowork_adsense($args){
    global $user_level;
    extract($args);
    echo $before_widget;
    if ($user_level != 10 || get_option('whydowork_adsense_admin') == 'on'){
      $title = htmlspecialchars(get_option('whydowork_adsense_widget_title'));
      echo $before_title.$title.$after_title;
      echo '<ul>'."\n";
      echo '  <li>'.stripslashes(get_option('whydowork_adsense_widget_code')).'</li>'."\n";
      echo '</ul>'."\n";
    }
    echo $after_widget;
    }
    function widget_whydowork_adsense_options() {
        if ($_POST['whydowork_adsense_title']){
            $widget_title = strip_tags(stripslashes($_POST['whydowork_adsense_title']));
            update_option('whydowork_adsense_widget_title', $widget_title);
            update_option('whydowork_adsense_widget_code', $_POST['whydowork_adsense_code']);
        }
        $widget_title = htmlspecialchars(get_option('whydowork_adsense_widget_title'));
        $code = stripslashes(get_option('whydowork_adsense_widget_code'));
    $output .= '<table width="100%" border="0" cellspacing="0" cellpadding="6">'."\n";
    $output .= '    <tr>'."\n";
    $output .= '        <td align="right" valign="top" width="25%">Widget Title: </td>'."\n";
    $output .= '        <td align="left"><input type="text" name="whydowork_adsense_title" value="'.$widget_title.'" /></td>'."\n";
    $output .= '    </tr>'."\n";
    $output .= '    <tr>'."\n";
    $output .= '        <td align="right" width="25%" valign="top">Code: </td>'."\n";
    $output .= '        <td align="left" colspan="3"><textarea name="whydowork_adsense_code" cols="25" rows="5">'.$code.'</textarea></td>'."\n";
    $output .= '    </tr>'."\n";
    $output .= '</table>'."\n";
    echo $output;
    }
    register_sidebar_widget('Whydowork Adsense', 'widget_whydowork_adsense');
    register_widget_control('Whydowork Adsense', 'widget_whydowork_adsense_options', 350, 200);
    

    }

    // Add action
    add_action('plugins_loaded', 'widget_whydowork_adsense_init');
    add_action('wp_head', 'whydowork_session');
    add_action('activate_whydowork_adsense.php', 'whydowork_adsense_install');
    add_action('admin_menu', 'whydowork_adsense_menu');

    // Add filter
    add_filter('the_content', 'whydowork_adsense_filter', 25);
    add_filter('the_excerpt', 'whydowork_adsense_filter', 25);
    ?>[/php]


  • Super User

    Funza!!! Ok, che hai fatto per farlo funzionare? Intanto ti ringrazio veramente tanto e ringrazio Samyorn perchè, scommetto tutto quello che ho, che si è legato al dito la questione.

    Insomma ringrazio entrambi veramente, siete stati molto disponibili...

    Dicaci, Elvino, che hai modificato? 😉


  • User Attivo

    @pikadilly said:

    .
    Dicaci, Elvino, che hai modificato? 😉
    Dico dico... :fumato:

    riga 310:
    sostituito:
    [php]if ($align == 'middle'){ $output.= $output1[$j].'</p><p style="float: left;">'.$code.'</p>';}[/php]con:
    [php]if ($align == 'middle'){ $output.= '</p>'.$output1[$j].'</p><p>'.$code;}[/php]

    A quando una pizza? 😉

    Ciau


  • Super User

    Fammi pensare, ho due birre, una cena e ora anche una pizza in sospeso, bisogna che Giorgio mi mette a disposizione un taccuino su cui segnare i debiti eno-gastronomici che ho in giro per il forum. 😄

    Penso che questo thread sarà molto utile ai pignoli come me, ti ringrazio di nuovo per il prezioso aiuto. 😄