WordPress.org

Make WordPress Core

Changeset 24


Ignore:
Timestamp:
05/21/03 11:17:09 (11 years ago)
Author:
saxmatt
Message:

Added get_archives, tweaked comment_link.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/b2-include/b2template.functions.php

    r20 r24  
    111111} 
    112112 
     113function get_archives($type, $limit='') { 
     114    global $tableposts, $dateformat, $time_difference, $siteurl, $blogfilename, $querystring_start, $querystring_equal, $month; 
     115    // weekly and daily are *broken* 
     116    dbconnect(); 
     117    if ('' != $limit) { 
     118        $limit = (int) $limit; 
     119        $limit= " LIMIT $limit"; 
     120    } 
     121    // this is what will separate dates on weekly archive links 
     122    $archive_week_separator = '–'; 
     123     
     124     
     125    // archive link url 
     126    $archive_link_m = $siteurl.'/'.$blogfilename.$querystring_start.'m'.$querystring_equal; # monthly archive 
     127    $archive_link_w = $siteurl.'/'.$blogfilename.$querystring_start.'w'.$querystring_equal; # weekly archive 
     128    $archive_link_p = $siteurl.'/'.$blogfilename.$querystring_start.'p'.$querystring_equal; # post-by-post archive 
     129     
     130     
     131    $now = date('Y-m-d H:i:s',(time() + ($time_difference * 3600))); 
     132     
     133    if ($type == 'monthly') { 
     134        $arc_sql="SELECT DISTINCT YEAR(post_date), MONTH(post_date) FROM $tableposts WHERE post_date < '$now' AND post_category > 0 ORDER BY post_date DESC" . $limit; 
     135        $querycount++; 
     136        $arc_result=mysql_query($arc_sql) or die($arc_sql.'<br />'.mysql_error()); 
     137        while($arc_row = mysql_fetch_array($arc_result)) { 
     138            $arc_year  = $arc_row['YEAR(post_date)']; 
     139            $arc_month = $arc_row['MONTH(post_date)']; 
     140            echo "<li><a href=\"$archive_link_m$arc_year".zeroise($arc_month,2).'">'; 
     141            echo $month[zeroise($arc_month,2)].' '.$arc_year; 
     142            echo "</a></li>\n"; 
     143        } 
     144    } elseif ($type == 'daily') { 
     145        $arc_sql="SELECT DISTINCT YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date) FROM $tableposts WHERE post_date < '$now' AND post_category > 0 ORDER BY post_date DESC" . $limit; 
     146        $querycount++; 
     147        $arc_result=mysql_query($arc_sql) or die($arc_sql.'<br />'.mysql_error()); 
     148        while($arc_row = mysql_fetch_array($arc_result)) { 
     149            $arc_year  = $arc_row['YEAR(post_date)']; 
     150            $arc_month = $arc_row['MONTH(post_date)']; 
     151            $arc_dayofmonth = $arc_row['DAYOFMONTH(post_date)']; 
     152            echo "<li><a href=\"$archive_link_m$arc_year".zeroise($arc_month,2).zeroise($arc_dayofmonth,2).'">'; 
     153            echo mysql2date($archive_day_date_format, $arc_year.'-'.zeroise($arc_month,2).'-'.zeroise($arc_dayofmonth,2).' 00:00:00'); 
     154            echo "</a></li>\n"; 
     155        } 
     156    } elseif ($type == 'weekly') { 
     157        if (!isset($start_of_week)) { 
     158            $start_of_week = 1; 
     159        } 
     160        $arc_sql = "SELECT DISTINCT YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date), WEEK(post_date) FROM $tableposts WHERE post_date < '$now' AND post_category > 0 ORDER BY post_date DESC" . $limit; 
     161        $querycount++; 
     162        $arc_result=mysql_query($arc_sql) or die($arc_sql.'<br />'.mysql_error()); 
     163        $arc_w_last = ''; 
     164        while($arc_row = mysql_fetch_array($arc_result)) { 
     165            $arc_year = $arc_row['YEAR(post_date)']; 
     166            $arc_w = $arc_row['WEEK(post_date)']; 
     167            if ($arc_w != $arc_w_last) { 
     168                $arc_w_last = $arc_w; 
     169                $arc_ymd = $arc_year.'-'.zeroise($arc_row['MONTH(post_date)'],2).'-' .zeroise($arc_row['DAYOFMONTH(post_date)'],2); 
     170                $arc_week = get_weekstartend($arc_ymd, $start_of_week); 
     171                $arc_week_start = date_i18n($archive_week_start_date_format, $arc_week['start']); 
     172                $arc_week_end = date_i18n($archive_week_end_date_format, $arc_week['end']); 
     173                echo "<li><a href=\"$siteurl/".$blogfilename."?m=$arc_year&amp;w=$arc_w\">"; 
     174                echo $arc_week_start.$archive_week_separator.$arc_week_end; 
     175                echo "</a></li>\n"; 
     176            } 
     177        } 
     178    } elseif ($type == 'postbypost') { 
     179        $requestarc = " SELECT ID,post_date,post_title FROM $tableposts WHERE post_date < '$now' AND post_category > 0 ORDER BY post_date DESC" . $limit; 
     180        $querycount++; 
     181        $resultarc = mysql_query($requestarc); 
     182        while($row=mysql_fetch_object($resultarc)) { 
     183            if ($row->post_date != '0000-00-00 00:00:00') { 
     184                echo "<li><a href=\"$archive_link_p".$row->ID.'">'; 
     185                $arc_title = stripslashes($row->post_title); 
     186                if ($arc_title) { 
     187                    echo strip_tags($arc_title); 
     188                } else { 
     189                    echo $row->ID; 
     190                } 
     191                echo "</a></li>\n"; 
     192            } 
     193        } 
     194    } 
     195} 
    113196/***** // About-the-blog tags *****/ 
    114197 
     
    871954} 
    872955 
    873 function comments_link($file='') { 
     956function comments_link($file='',$echo=true) { 
    874957    global $id,$pagenow; 
    875958    global $querystring_start, $querystring_equal, $querystring_separator; 
    876959    if ($file == '')    $file = $pagenow; 
    877960    if ($file == '/')   $file = ''; 
    878     echo $file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'c'.$querystring_equal.'1#comments'; 
     961    if (!$echo) return $file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'c'.$querystring_equal.'1#comments'; 
     962    else echo $file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'c'.$querystring_equal.'1#comments'; 
    879963} 
    880964 
Note: See TracChangeset for help on using the changeset viewer.