[Помогите] Вызов определённого виджета в wordpress напрямую в шаблоне, через php функцию или шорткод.

Тема в разделе "Wordpress", создана пользователем r0nin, 26 мар 2012.

Статус темы:
Закрыта.
Модераторы: DzSoft, Sorcus
  1. r0nin

    r0nin Постоялец

    Регистр.:
    12 апр 2010
    Сообщения:
    80
    Симпатии:
    4
    Вообщем нужно что-то вроде плагина который показывает "Hot Topics" или простыми словами говоря актуальные темы. Через некоторое время пришло в голову следующее решение - последние теги. Решил протестить плагин wp recent tags который выводит последние теги - то есть теги с последних постов.
    Но вот в чём проблема - данный плагин работает только в режиме виджета, а я хотел его вызывать из шаблона. Либо как-то надо вызывать функцию плагина , либо надо вызывать сам виджет.

    Вот плагин ксати :
    PHP:
    <?php
    /*
    Plugin Name: WP Recent Tags
    Plugin URI: http://www.mashget.com/2008/09/18/wp-recent-tags-for-wordpress/
    Description: Show the recent tags.
    Author: Andrew Zhang
    Version: 0.1.1
    Author URI: http://www.mashget.com
    */
    if  (!class_exists('RecentTags')):
    class 
    RecentTags
    {
        var 
    $plugin_name="WP Recent Tags";
        var 
    $plugin_version="0.1.1";
        var 
    $plugin_uri="http://www.mashget.com";
     
        var 
    $wptTable;
        var 
    $post_tag_update_count_callback;
        var 
    $tagcount_update_log=array();
        var 
    $rtOptions;
     
        function 
    RecentTags()
        {
            global 
    $wpdb;
            
    $this->wptTable=$wpdb->prefix 'wpt_recent_tagcount';
            
    $this->rtOptions=get_option('widget_recent_tags');
            if(!
    $this->rtOptions)
            {
                
    $this->rtOptions=$this->get_def_options();
            }
            
    $taxonomy get_taxonomy('post_tag');       
            if (!empty(
    $taxonomy->update_count_callback) )
            {
                
    $this->post_tag_update_count_callback=$taxonomy->update_count_callback;
                
    $taxonomy->update_count_callback=array(&$this,'post_tag_update_count');
                
    add_action('wp_insert_post', array(&$this,'check_tagcount_update_log'), PHP_INT_MAX2);
            }
            if(
    $this->rtOptions['style_css_enabled'])
            {
                
    add_action('wp_head', array(&$this,'generate_rtstyle'));
            }
           
            
    add_action('delete_term', array(&$this,'deletetagstat'));
            
    add_action('widgets_init', array(&$this'register_wrt_widget' ));
            
    add_action('admin_menu', array(&$this,'add_options_page'));
        }
       
        function 
    get_def_options()
        {
            return array(
                    
    'title'=>'Recent Tags',
                    
    'postsnum'=>10,
                    
    'tagsnum'=>15,
                    
    'style'=>'cloud',
                    
    "style_css_enabled" => "1",
                    
    "cloud_style_css" =>"ul.recent-tags li { display:inline; border:0; }
                        ul.recent-tags li a { font-weight:400; line-height:120%; margin:0 0.5em 0 0; }
                        ul.recent-tags li .S3 { font-size:13pt; }
                        ul.recent-tags li .S2 { font-size:11pt; }
                        ul.recent-tags li .S1 { font-size:8pt; }
                        "
    ,
                    
    "list_style_css" =>"ul.recent-tags li { border:0; }
                        ul.recent-tags li a { font-weight:400; line-height:120%; margin:0 0.5em 0 0; }
                        "
    ,
                );
        }
       
        function 
    add_options_page()
        {
            if (
    function_exists('add_options_page'))
            {
                
    add_options_page$this->plugin_name$this->plugin_name8basename(__FILE__), array(&$this,'wp_recent_tags_options_subpanel'));
            }
        }
     
        function 
    wp_recent_tags_options_subpanel()
        {
            if(
    $_POST["wp_rt_submit"])
            {
                
    $wp_settings = array (
                    
    "style_css_enabled" => $_POST['style_css_enabled']? "1":false,
                    
    "cloud_style_css" => $_POST['cloud_style_css'],
                    
    "list_style_css" => $_POST['list_style_css'],
                );
                
    $wp_settings=array_merge($this->rtOptions$wp_settings);
                
    update_option("widget_recent_tags",$wp_settings);
                echo 
    '<div id="message" class="updated fade"><p>Options Updated</p></div>';
            }
            else if(
    $_POST["wp_rt_load_default"])
            {
                
    $def=$this->get_def_options();
                
    $wp_settings = array (
                    
    "cloud_style_css" => $def["cloud_style_css"],
                    
    "list_style_css" => $def["list_style_css"],
                );
                
    $wp_settings=array_merge($this->rtOptions$wp_settings);
                
    update_option("widget_recent_tags",$wp_settings);
                echo 
    '<div id="message" class="updated fade"><p>Options Reset</p></div>';
            }
            else
            {
                
    $wp_settings=$this->rtOptions;
            }
            
    ?>
            <div class="wrap">
              <form action="<?php echo $_SERVER['PHP_SELF']; ?>?page=recent-tags.php" method="post">
                <h2><?php echo $this->plugin_name;?> Options</h2>
                <table class="form-table">
                  <tr valign="top">
                    <td>       
                    <input name="style_css_enabled" type="checkbox" id="style_css_enabled" value="1" <?php checked('1', ($wp_settings["style_css_enabled"]==="1")); ?> />
                    <label for=style_css_enabled><strong>Output style in the page</strong></label> (Or you may want to put these in your own css)
                    <p>
                        <a name="rt-cloud"></a>
                        <label>For Cloud</label>
                        <br/>
                        <textarea name="cloud_style_css" rows="5" cols="80"><?php echo str_replace("\t","",$wp_settings["cloud_style_css"]); ?></textarea>
                    </p>
                    <p>
                        <a name="rt-list"></a>
                        <label>For List</label>
                        <br/>
                        <textarea name="list_style_css" rows="5" cols="80"><?php echo str_replace("\t","",$wp_settings["list_style_css"]); ?></textarea>
                    </p>
                    </td>
                  </tr>
                </table>
                <p class="submit">
                  <input type="submit" name="wp_rt_load_default" value="Reset to Default Options &raquo;" class="button" onclick="return confirm('Are you sure to reset options?')" />
                  <input type="submit" name="wp_rt_submit" value="Save Options &raquo;" class="button" style="margin-left:15px;" />
                </p> 
              </form>
            </div>
            <?php
        
    }
       
        function 
    register_wrt_widget()
        {
            if (!
    function_exists'register_sidebar_widget' ))return;
            
    register_sidebar_widget($this->plugin_name, array(&$this'generate_wrt_widget' ));
            
    register_widget_control($this->plugin_name, array(&$this'wrt_widget_control' ) );
        }
     
        function 
    wrt_widget_control()
        {   
            
    $options $newoptions $this->rtOptions;
            if (isset(
    $_POST['recent-tags-title']))
            {
                
    $newoptions['title'] =(stripslashes($_POST['recent-tags-title']));
                
    $newoptions['postsnum']=intval($_POST['recent-tags-rcposts-num']);
                
    $newoptions['tagsnum']=intval($_POST['recent-tags-maxtags-num']);
                
    $newoptions['style']=($_POST['recent-tags-style']);
            }
            if ( 
    $options != $newoptions )
            {
                if(
    $newoptions['postsnum'] > $options['postsnum'])
                {
                    
    $this->preRtdata(intval($newoptions['postsnum']));
                }
                
    $options $newoptions;
                
    update_option('widget_recent_tags'$options);
            }       
           
            
    $title attribute_escape($options['title'] );
            
    $postsnum $options['postsnum'];
            
    $tagsnum =$options['tagsnum'];
           
            if(!
    class_exists("WidgetCache"))
            {
                
    ?>
                <p>
                <i>
                You might use <a href='http://wordpress.org/extend/plugins/wp-widget-cache/' target='_blank'>
                WP Widget Cache</a>
                to improve performance</i>
                </p>
                <?php
            
    }
            
    ?>
            <p>
            <label for="recent-tags-title">
            Title: <input type="text" id="recent-tags-title" name="recent-tags-title" value="<?php echo $title ?>" style="width: 200px;"/>
            </label>
            </p>
            <p>
            <label for="recent-tags-maxtags-num">
            Number of tags to show: <input type="text" size="2" id="recent-tags-maxtags-num" name="recent-tags-maxtags-num" value="<?php echo $tagsnum ?>"  style="text-align:center;"/>
            </label>
            </p>
            <p>
            <label for="recent-tags-rcposts-num">
            Show the tags in recent <input type="text" size="2" id="recent-tags-rcposts-num" name="recent-tags-rcposts-num" value="<?php echo $postsnum ?>" style="text-align:center;"/> posts
            </label> (<a href="http://www.mashget.com/2008/09/18/wp-recent-tags-for-wordpress/#recent" target="_blank">?</a>)
            </p>   
            <p>
            Output style:
                <label for="recent-tags-style-cloud">
                    <input type="radio" id="recent-tags-style-cloud" name="recent-tags-style" value="cloud" <?php checked('1'$options['style']=="cloud"); ?> /> Cloud
                </label> (<a href='/wp-admin/options-general.php?page=recent-tags.php#rt-cloud' target='_blank'>css</a>)
                <label for="recent-tags-style-list">
                    <input type="radio" id="recent-tags-style-list" name="recent-tags-style" value="list" <?php checked('1'$options['style']=="list"); ?> /> List
                </label> (<a href='/wp-admin/options-general.php?page=recent-tags.php#rt-list' target='_blank'>css</a>)
            </p>
            <?php
        
    }
     
        function 
    generate_rtstyle()
        {
            echo 
    "<!--$this->plugin_name $this->plugin_version ($this->plugin_uri) Begin -->\n";
            echo 
    "<style>\n";
            echo 
    str_replace("\t","",$this->rtOptions[$this->rtOptions['style']."_style_css"]);
            echo 
    "</style>\n";
            echo 
    "<!--$this->plugin_name End -->\n";
        }
       
        function 
    generate_wrt_widget($args)
        {
            
    extract($args);
            {
                
    $options $this->rtOptions;
               
                
    $title $options['title'];
                
    $postsnum =intval($options['postsnum']);   
                
    $tagsnum intval($options['tagsnum']);
               
                if(!(
    $postsnum>0&&$tagsnum>0))return;
               
                echo 
    "<!--$this->plugin_name $this->plugin_version ($this->plugin_uri) Begin -->\n";
                echo 
    $before_widget;
                echo 
    $before_title.$title$after_title;
     
                
    $sdate=$this->getRecentPostDate($postsnum);
               
                echo 
    "<ul class='recent-tags'>";
                if(
    $options['style']=='cloud')
                {   
                    
    $rts=$this->getRecentTagCloud($tagsnum$sdate3);   
                    foreach (
    $rts as $lpterm)
                    {
                    
    ?>
                        <li><a class="S<?php echo $lpterm['slevel']; ?>" href="<?php echo $lpterm['link']; ?>" title="View all posts tagged with <?php echo $lpterm['name'];?>"><?php echo $lpterm['name'];?></a></li>
                    <?php
                    
    }
                    echo 
    "</ul>";
                }
                else
                {
                    
    $rts=$this->getRecentTagNameLinks($tagsnum$sdate);   
                    echo 
    "<ul class='recent-tags'>";
                    foreach (
    $rts as $lpterm)
                    {
                    
    ?>
                        <li><a href="<?php echo $lpterm['link']; ?>" title="View all posts tagged with <?php echo $lpterm['name'];?>"><?php echo $lpterm['name'];?></a></li>
                    <?php
                    
    }
                }
                echo 
    "</ul>";
                echo 
    $after_widget;
                echo 
    "<!--$this->plugin_name End -->\n";
            }
        }
     
        function 
    post_tag_update_count($terms)
        {
            global 
    $wpdb;
            
    $msg="";
            foreach ( 
    $terms as $term )
            {
                if(!
    $this->tagcount_update_log[$term])
                {
                    
    $this->tagcount_update_log[$term]=array();
     
                    
    $rec=$wpdb->get_row($wpdb->prepare("SELECT count, term_id FROM $wpdb->term_taxonomy WHERE term_taxonomy_id = %d"$term ));
                    if(!
    $rec) continue;
     
                    
    $oldcount=$rec->count;
                    
    $term_id=$rec->term_id;
                }
                else
                {
                    
    $oldcount=$this->tagcount_update_log[$term]['oldcount'];
                    
    $term_id=$this->tagcount_update_log[$term]['term_id'];
                }
     
                
    $newcount $wpdb->get_var($wpdb->prepare"SELECT COUNT(*) FROM $wpdb->term_relationships$wpdb->posts WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id AND post_status = 'publish' AND post_type = 'post' AND term_taxonomy_id = %d"$term ) );
                
    //$wpdb->update($wpdb->term_taxonomy, compact( 'count' ), array( 'term_taxonomy_id' => $term ));
     
                
    $this->tagcount_update_log[$term]=array(
                
    'oldcount'=>intval($oldcount),
                
    'newcount'=>intval($newcount),
                
    'term_id'=>intval($term_id)
                );
            }
            
    //call_user_func($this->post_tag_update_count_callback, $terms);
        
    }
     
        function 
    check_tagcount_update_log($post_id=0$post=null)
        {
            if(!(
    $post_id 0))return;
            if(!
    $post || 'publish' != $post->post_status)return;
           
            global 
    $wpdb;
            foreach (
    $this->tagcount_update_log as $term_taxonomy_id=>$termArr)
            {
                if(
    $termArr['oldcount']!=$termArr['newcount'])
                {
                    
    $v=$wpdb->update($wpdb->term_taxonomy, array('count'=>$termArr['newcount']), array( 'term_taxonomy_id' => $term_taxonomy_id ));
                    
    //file_put_contents(dirname(__File__)."/".$term_taxonomy_id,var_export($termArr,true));
                    
    $this->updatetagstat($termArr['term_id'], $termArr['newcount']-$termArr['oldcount']);
                }
            }
            
    $this->tagcount_update_log=array();
        }
     
        function 
    updatetagstat($term_id=0$countchange=0$timestamp=null)
        {
            
    $term_id=intval($term_id);
            
    $countchange=intval($countchange);
           
            global 
    $wpdb;
            if(!(
    $term_id>0) || $countchange==) return;
     
            if(!
    $timestamp)$timestamp=time();
            if(!
    is_int($timestamp))$timestamp=strtotime($timestamp);
     
            
    $today date("Ymd"$timestamp);
            
    $tomorrow =date("Ymd"mktime(000date("m",$timestamp)  , date("d",$timestamp)+1date("Y",$timestamp)));
     
            
    $sql="select wpt_id, count from $this->wptTable where term_id='$term_id' and inc_date>='$today' and inc_date<'$tomorrow'";
            
    $rec=$wpdb->get_row($sql);
           
            
    $sql="";
            if(
    $rec)
            {
                
    $recid=$rec->wpt_id;       
                if(
    $countchange 0)
                {
                    if(
    $countchange < -$rec->count)
                    {
                        
    $countchange = -$rec->count;
                    }
                }
                
    $sql="update $this->wptTable set count=count + ($countchange) where wpt_id ='$recid'";
            }
            else if(
    $countchange 0)
            {
                
    $sql="insert into $this->wptTable (term_id,count,inc_date) values ('$term_id','$countchange','$today')";
            }
            if(
    $sql)$wpdb->query($sql);
        }
     
        function 
    deletetagstat($term=0$tt_id=0$taxonomy=0)
        {
            global 
    $wpdb;
            if(!(
    $term 0))return;
            
    $sql="delete from $this->wptTable where term_id='$term'";
            
    $wpdb->query($sql);
        }
     
        function 
    install()
        {
            global 
    $wpdb;
            
    $wptTable=$this->wptTable;
     
            if(
    $wpdb->get_var("show tables like '$wptTable'") != $wptTable) {
     
                
    $sql="CREATE TABLE {$wptTable}
                    (
                        wpt_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
                        term_id BIGINT(20) UNSIGNED NOT NULL,
                        count BIGINT(20) UNSIGNED default '0',
                        inc_date DATETIME NOT NULL default '0000-00-00 00:00:00',
                        PRIMARY KEY  (wpt_id),
                        INDEX inc_date (inc_date),
                        INDEX term_id (term_id)
                    )"
    ;
     
                
    $wpdb->query($sql);           
                
    $this->preRtdata(10);
                
    //file_put_contents(dirname(__File__)."/active",$wpdb->query($sql));
            
    }
        }
     
        function 
    preRtdata($num)
        {   
            if(
    $num<=0)return;
            
    set_time_limit(0);
            global 
    $wpdb;
            
    $termArr=$this->getTagsInRecentPosts($num);
            
    $lastTerm=$termArr[sizeof($termArr)-1];
            
    $sql="Delete from $this->wptTable where inc_date < '{$lastTerm['date']}'";
            
    $wpdb->query($sql);
            foreach (
    $termArr as $term)
            {
                
    $this->updatetagstat($term['term_id'], 1$term['date']);
            }
        }
       
        function 
    getRecentTags($limit$days)
        {       
            global 
    $wpdb;
            
    $where="";
            if( 
    is_int($days) && $days 0)
            {
                
    $mday =date("Ymd"mktime(000date("m")  , date("d")-$daysdate("Y")));
                
    $where=" WHERE inc_date >= '$mday' ";
            }
            else if( 
    is_object($days) && $days->post_date)
            {
                
    $days=strtotime($days->post_date);
                
    $mday=date("Ymd"mktime(000date("m",$days)  , date("d",$days), date("Y",$days)));
                
    $where=" WHERE inc_date >= '$mday' ";
            }
            
    $sql"SELECT sum(count) as sum , t.term_id, name FROM $this->wptTable As s INNER JOIN $wpdb->terms As t on s.term_id=t.term_id $where GROUP BY term_id ORDER BY sum DESC LIMIT 0, $limit";
            
    $terms $wpdb->get_results($sql);
            return 
    $terms;
        }
     
        function 
    getRecentTagNameLinks($limit$days)
        {
            
    $res=array();
            
    $terms=$this->getRecentTags($limit$days);
            foreach (
    $terms as $term)
            {
                
    $res[] = array(
                
    "id"=>$term->term_id,
                
    "name"=>$term->name,
                
    "link"=>clean_url(get_tag_link($term->term_id)),
                
    "sum"=>$term->sum
                
    );
            }
            return 
    $res;
        }
     
        function 
    cmplp($a$b)
        {
            return 
    strcmp($a["name"], $b["name"]);
        }
     
        function 
    getRecentTagCloud($limit$days$levelcount)
        {
            
    $lpterms=$this->getRecentTagNameLinks($limit$days);
     
            
    $lpsize=sizeof($lpterms);
            
    $lpStep=floor($lpsize/$levelcount);
            
    $lpfp=0;
            
    $lplevel=$levelcount;
     
            
    $minsum=intval($lpterms[$lpsize-1]['sum'])-1;
            
    $maxsum=intval($lpterms[0]['sum']);
     
            foreach (
    $lpterms as $key => $lpterm)
            {
                
    $lpterms[$key]['slevel']=ceil(((floatval($lpterm['sum']))-$minsum)/($maxsum-$minsum)*$levelcount);
                
    $lpterms[$key]['level']=$lplevel;
                
    $lpfp++;
                if(
    $lpfp == $lpStep)
                {
                    
    $lplevel--;
                    
    $lpfp=0;
                }
            }
     
            
    usort($lpterms, array(&$this'cmplp' ));
            return 
    $lpterms;
        }
     
        function 
    cleartagstat($days)
        {
            global 
    $wpdb;
            
    $mday =date("Ymd"mktime(000date("m")  , date("d")-$daysdate("Y")));
            
    $sql "delete FROM $this->wptTable WHERE inc_date < '$mday' ";
            return 
    $wpdb->query($sql);
        }
       
        function 
    getRecentPostDate($num)
        {
            global 
    $wpdb$tableposts;   
            
    $q "SELECT post_date FROM $tableposts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_date DESC limit $num, 1";
            
    $res$wpdb->get_results($q);
            return 
    $res[0];
        }
       
        function 
    getTagsInRecentPosts($num)
        {
            global 
    $wpdb$tableposts;   
            
    $q "SELECT ID, post_date FROM $tableposts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_date DESC limit $num";
            
    $res$wpdb->get_results($q);
            
    $termIdArr=array();
            foreach (
    $res as $post)
            {     
                
    $tags get_the_tags($post->ID);
                if (
    $tags && is_array($tags))
                {
                    foreach (
    $tags as $tag)
                    {
                        
    $termIdArr[]= array(
                            
    "term_id"=>$tag->term_id,
                            
    "date"=>$post->post_date
                        
    );               
                    }
                }
            }       
            return 
    $termIdArr;
        }
    }
    endif;
     
    $recentTags= & new RecentTags();
    register_activation_hook(__File__, array($recentTags,"install"));
    ?>
    Да и вообще подскажите пожалуйста какие нибудь решения на ваш взшляд для вывода самых актуальных и популярных "тем".
     
    recasher2k12 нравится это.
  2. recasher2k12

    recasher2k12

    Регистр.:
    19 фев 2012
    Сообщения:
    156
    Симпатии:
    79
    Если тебе надо распечатать виждет в контенте по шорттегу, можешь провернуть следующее:
    PS код приблизительный, правильность не гарантирую
    1) Вставить в класс два метода:
    PHP:
    function my_function_cntnt_callback($matches) {
        
    ob_start();
        
    // Вызов этого метода выдает содержание виджета
        
    $this->generate_wrt_widget(array(/*Параметры*/));
        return 
    ob_get_clean();
    }
     
    function 
    my_function_cntnt($content) {
        return 
    preg_replace_callback('/\[mytags\]/i',array(&$this,'my_function_cntnt_callback'),$content);
    }
    2) В конструктор класса добавить:
    PHP:
    add_filter('the_content', array(&$this,'my_function_cntnt'));
    Как это работает?
    В контенте, если вставить [mytags], оно заменится на твой виждет.
     
    r0nin нравится это.
  3. xbreaker

    xbreaker Вверх ногами

    Регистр.:
    15 авг 2007
    Сообщения:
    245
    Симпатии:
    52


    Зачем такой костыль? Почему просто не повесить шорткод на первую функцию:
    PHP:
    add_shortcode('mytags', array($thismy_function_cntnt_callback'));
     
    recasher2k12 и r0nin нравится это.
  4. recasher2k12

    recasher2k12

    Регистр.:
    19 фев 2012
    Сообщения:
    156
    Симпатии:
    79
    Да, так заметно проще... Видимо, я поклонник регулярок...
     
    r0nin нравится это.
  5. r0nin

    r0nin Постоялец

    Регистр.:
    12 апр 2010
    Сообщения:
    80
    Симпатии:
    4
    PHP:
    add_shortcode('mytags', array($this'my_function_cntnt_callback'));

    Не могу повесить на него шорткод, выдаёт ошибку.
    Да и к тому же вопрос - а если повесить этот шорткод на первую функцию, то он будет выводить именно конечный результат плагина?
    То есть не будет ли он выводит панель настройки этого плагина ? :)
     
    recasher2k12 нравится это.
  6. recasher2k12

    recasher2k12

    Регистр.:
    19 фев 2012
    Сообщения:
    156
    Симпатии:
    79
    Вы пропустили амперсант & перед $this, правильно:
    PHP:
    add_shortcode('mytags', array(&$this'my_function_cntnt_callback'));
     
    r0nin нравится это.
  7. r0nin

    r0nin Постоялец

    Регистр.:
    12 апр 2010
    Сообщения:
    80
    Симпатии:
    4
    Да я сделал это, просто забыл здесь вставить :)
    Но я только сейчас заметил что плагин даже в форме виджета не рабоатет к сожалению, а ведь функция очень полезная, многие искали.
    Думаю попытаться найти его ошибку.

    Не могу исправить ошибку.
    Дебаггер выдаёт - Notice: Undefined offset: 0 in *\www\wp-content\plugins\wp-recent-tags\recent-tags.php on line 482

    Line 482 - это выделенный.

    PHP:
            function getRecentPostDate($num)
        {
            global 
    $wpdb$tableposts;
            
    $q "SELECT post_date FROM $tableposts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_date DESC limit $num, 1";
            
    $res$wpdb->get_results($q);
            return 
    $res[0];. // line 482
        
    }
    Если у кого есть идеи относительно альтернативных методов пишите пожалуйста , думаю многим поможете.
     
    recasher2k12 нравится это.
  8. xbreaker

    xbreaker Вверх ногами

    Регистр.:
    15 авг 2007
    Сообщения:
    245
    Симпатии:
    52
    Нужно вывести через тот же print_r что возвращает нам SQL-запрос, скорее всего он пустой и из-за этого вылетает нотис
     
    r0nin нравится это.
Статус темы:
Закрыта.