boardom Forum Index boardom
b2 message board
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

word count?

 
Post new topic   Reply to topic    boardom Forum Index -> Hacks
View previous topic :: View next topic  
Author Message
Mizkie



Joined: 19 Mar 2003
Posts: 51
Location: Bloomington, IN

PostPosted: Wed Jul 09, 2003 9:12 pm    Post subject: word count? Reply with quote

I know it's possible and exists, but can't find it. Anyone have a link or anything?
_________________
Mick

HSS = High School Sucks
Back to top
View user's profile Send private message Visit poster's website AIM Address
Candle



Joined: 23 Dec 2002
Posts: 541

PostPosted: Wed Jul 09, 2003 9:24 pm    Post subject: .......... Reply with quote

Open b2templates.funtions.php and find ;
Code:
function get_the_content($more_link_text='(more...)', $stripteaser=0, $more_file='') {
   global $id,$postdata,$more,$c,$withcomments,$page,$pages,$multipage,$numpages;
   global $HTTP_SERVER_VARS, $preview;
   global $querystring_start, $querystring_equal, $querystring_separator;
   $output = '';
   if ($more_file != '') {
      $file=$more_file;
   } else {
      $file=$HTTP_SERVER_VARS['PHP_SELF'];
   }
   $content=$pages[$page-1];
   $content=explode('<!--more-->', $content);
   if ((preg_match('/<!--noteaser-->/', $postdata['Content']) && ((!$multipage) || ($page==1))))
      $stripteaser=1;
   $teaser=$content[0];
   if (($more) && ($stripteaser))
      $teaser='';
   $output .= $teaser;
   if (count($content)>1) {
      if ($more) {
         $output .= '<a name="more'.$id.'"></a>'.$content[1];
      } else {
      $output .= '<span id="varP'.$id.'"><br /><a href="'.$file.'#'.$id.'" onclick="showMore('.$id.',\''.$file.'#'.$id.'\'); return false">read more »</a></span><div id="varXYZ'.$id.'" style="display: none">'.$content[1].'<br />
      <a href="#'.$id.'" onclick="showMore('.$id.',0); return true">« hide more</a></div>';
      }
   }
   if ($preview) { // preview fix for javascript bug with foreign languages
      $output =  preg_replace('/\%u([0-9A-F]{4,4})/e',  "'&#'.base_convert('\\1',16,10).';'", $output);
   }
   return($output);
}

And insert this right after .
Code:

function get_words() {
        $content = get_the_content($more_link_text,$stripteaser,$more_file);
        $content = convert_bbcode($content);
        $content = convert_gmcode($content);
        $content = convert_smilies($content);
        $content = convert_chars($content,"html");
        $stripper = "";
        $wordcount = strip_tags($content,$stripper);
        $wordcount = explode(" ",$wordcount);
        $wordcount = count($wordcount);
        echo "$wordcount words in this post";
}

Call with .

<?php get_words()?>
_________________
Play Aliens Awaken mY new Game .
Back to top
View user's profile Send private message
Mizkie



Joined: 19 Mar 2003
Posts: 51
Location: Bloomington, IN

PostPosted: Wed Jul 09, 2003 11:22 pm    Post subject: Reply with quote

oh man, thanks. big help. Smile
_________________
Mick

HSS = High School Sucks
Back to top
View user's profile Send private message Visit poster's website AIM Address
Mizkie



Joined: 19 Mar 2003
Posts: 51
Location: Bloomington, IN

PostPosted: Wed Jul 09, 2003 11:32 pm    Post subject: Reply with quote

Fatal error: Cannot redeclare get_words() in /home/sites/site3/web/b2-include/b2template.functions.php on line 396


What exactly does that mean?
_________________
Mick

HSS = High School Sucks
Back to top
View user's profile Send private message Visit poster's website AIM Address
Candle



Joined: 23 Dec 2002
Posts: 541

PostPosted: Wed Jul 09, 2003 11:36 pm    Post subject: ....... Reply with quote

missed a spot .. all put my whole file here and just copy that one so you wont have to add it to yours brb ..
_________________
Play Aliens Awaken mY new Game .
Back to top
View user's profile Send private message
Mizkie



Joined: 19 Mar 2003
Posts: 51
Location: Bloomington, IN

PostPosted: Wed Jul 09, 2003 11:36 pm    Post subject: Reply with quote

alright, thanks... not sure how to fix.. trying. hehe...ahhhh
_________________
Mick

HSS = High School Sucks
Back to top
View user's profile Send private message Visit poster's website AIM Address
Candle



Joined: 23 Dec 2002
Posts: 541

PostPosted: Wed Jul 09, 2003 11:39 pm    Post subject: ............ Reply with quote

Code:
<?php

/* new and improved ! now with more querystring stuff ! */

if (!isset($querystring_start)) {
   $querystring_start = '?';
   $querystring_equal = '=';
   $querystring_separator = '&';
}



/* template functions... */


// @@@ These are template tags, you can edit them if you know what you're doing...



/***** About-the-blog tags *****/
/* Note: these tags go anywhere in the template */

function bloginfo($show='') {
   $info = get_bloginfo($show);
   $info = convert_bbcode($info);
   $info = convert_gmcode($info);
   $info = convert_smilies($info);
   $info = apply_filters('bloginfo', $info);
   echo convert_chars($info, 'html');
}

function bloginfo_rss($show='') {
   $info = strip_tags(get_bloginfo($show));
   echo convert_chars($info, 'unicode');
}

function bloginfo_unicode($show='') {
   $info = get_bloginfo($show);
   echo convert_chars($info, 'unicode');
}

function get_bloginfo($show='') {
   global $siteurl, $blogfilename, $blogname, $blogdescription, $pathserver, $admin_email;
   switch($show) {
      case "url":
         $output = $siteurl."/".$blogfilename;
         break;
      case "description":
         $output = $blogdescription;
         break;
      case "rdf_url":
         $output = $siteurl.'/b2rdf.php';
         break;
      case "rss_url":
         $output = $siteurl.'/b2rss.php';
         break;
      case "rss2_url":
         $output = $siteurl.'/b2rss2.php';
         break;
      case "pingback_url":
         $output = $pathserver.'/xmlrpc.php';
         break;
      case "admin_email":
         $output = $admin_email;
         break;
      case "name":
      default:
         $output = $blogname;
         break;
   }
   return($output);
}

function single_post_title($prefix = '', $display = 1) {
   global $p;
   if (intval($p)) {
      $post_data = get_postdata($p);
      $title = $post_data['Title'];
      $title = apply_filters('single_post_title', $title);
      if ($display) {
         echo $prefix.strip_tags(stripslashes($title));
      } else {
         return strip_tags(stripslashes($title));
      }
   }
}

function single_cat_title($prefix = '', $display = 1 ) {
   global $cat;
   if(!empty($cat) && !(strtoupper($cat) == 'ALL')) {
      $my_cat_name = get_the_category_by_ID($cat);
      if(!empty($my_cat_name)) {
         if ($display)
            echo $prefix.strip_tags(stripslashes($my_cat_name));
         else
            return strip_tags(stripslashes($my_cat_name));
      }
   }
}

function single_month_title($prefix = '', $display = 1 ) {
   global $m, $month;
   if(!empty($m)) {
      $my_year = substr($m,0,4);
      $my_month = $month[substr($m,4,2)];
      if ($display)
         echo $prefix.$my_month.$prefix.$my_year;
      else
         return $m;
   }
}

/***** // About-the-blog tags *****/




/***** Date/Time tags *****/

function the_date($d='', $before='', $after='', $echo = 1) {
   global $id, $postdata, $day, $previousday,$dateformat,$newday;
   $the_date = '';
   if ($day != $previousday) {
      $the_date .= $before;
      if ($d=='') {
         $the_date .= mysql2date($dateformat, $postdata['Date']);
      } else {
         $the_date .= mysql2date($d, $postdata['Date']);
      }
      $the_date .= $after;
      $previousday = $day;
   }
   $the_date = apply_filters('the_date', $the_date);
   if ($echo) {
      echo $the_date;
   } else {
      return $the_date;
   }
}

function the_time($d='', $echo = 1) {
   global $id,$postdata,$timeformat;
   if ($d=='') {
      $the_time = mysql2date($timeformat, $postdata['Date']);
   } else {
      $the_time = mysql2date($d, $postdata['Date']);
   }
   $the_time = apply_filters('the_time', $the_time);
   if ($echo) {
      echo $the_time;
   } else {
      return $the_time;
   }
}

function the_weekday() {
   global $weekday,$id,$postdata;
   $the_weekday = $weekday[mysql2date('w', $postdata['Date'])];
   $the_weekday = apply_filters('the_weekday', $the_weekday);
   echo $the_weekday;
}

function the_weekday_date($before='',$after='') {
   global $weekday,$id,$postdata,$day,$previousweekday;
   $the_weekday_date = '';
   if ($day != $previousweekday) {
      $the_weekday_date .= $before;
      $the_weekday_date .= $weekday[mysql2date('w', $postdata['Date'])];
      $the_weekday_date .= $after;
      $previousweekday = $day;
   }
   $the_weekday_date = apply_filters('the_weekday_date', $the_weekday_date);
   echo $the_weekday_date;
}

/***** // Date/Time tags *****/




/***** Author tags *****/

function the_author() {
   global $id,$authordata;
   $i = $authordata['user_idmode'];
   if ($i == 'nickname')   echo $authordata['user_nickname'];
   if ($i == 'login')   echo $authordata['user_login'];
   if ($i == 'firstname')   echo $authordata['user_firstname'];
   if ($i == 'lastname')   echo $authordata['user_lastname'];
   if ($i == 'namefl')   echo $authordata['user_firstname'].' '.$authordata['user_lastname'];
   if ($i == 'namelf')   echo $authordata['user_lastname'].' '.$authordata['user_firstname'];
   if (!$i) echo $authordata['user_nickname'];
}

function the_author_login() {
   global $id,$authordata;   echo $authordata['user_login'];
}

function the_author_firstname() {
   global $id,$authordata;   echo $authordata['user_firstname'];
}

function the_author_lastname() {
   global $id,$authordata;   echo $authordata['user_lastname'];
}

function the_author_nickname() {
   global $id,$authordata;   echo $authordata['user_nickname'];
}

function the_author_ID() {
   global $id,$authordata;   echo $authordata['ID'];
}

function the_author_email() {
   global $id,$authordata;   echo antispambot($authordata['user_email']);
}

function the_author_url() {
   global $id,$authordata;   echo $authordata['user_url'];
}

function the_author_icq() {
   global $id,$authordata;   echo $authordata['user_icq'];
}

function the_author_aim() {
   global $id,$authordata;   echo str_replace(' ', '+', $authordata['user_aim']);
}

function the_author_yim() {
   global $id,$authordata;   echo $authordata['user_yim'];
}

function the_author_msn() {
   global $id,$authordata;   echo $authordata['user_msn'];
}

function the_author_posts() {
   global $id,$postdata;   $posts=get_usernumposts($postdata['Author_ID']);   echo $posts;
}

/***** // Author tags *****/




/***** Post tags *****/

function the_ID() {
   global $id;
   echo $id;
}

function the_title($before='',$after='') {
   $title = get_the_title();
   $title = convert_bbcode($title);
   $title = convert_gmcode($title);
   $title = convert_smilies($title);
   $title = apply_filters('the_title', $title);
   if ($title) {
      echo convert_chars($before.$title.$after, 'html');
   }
}
function the_title_rss() {
   $title = get_the_title();
   $title = convert_bbcode($title);
   $title = convert_gmcode($title);
   $title = strip_tags($title);
   if (trim($title)) {
      echo convert_chars($title, 'unicode');
   }
}
function the_title_unicode($before='',$after='') {
   $title = get_the_title();
   $title = convert_bbcode($title);
   $title = convert_gmcode($title);
   $title = apply_filters('the_title_unicode', $title);
   if (trim($title)) {
      echo convert_chars($before.$title.$after, 'unicode');
   }
}
function get_the_title() {
   global $id,$postdata;
   $output = stripslashes($postdata['Title']);
   $output = apply_filters('the_title', $output);
   return($output);
}

function the_content($more_link_text='(more...)', $stripteaser=0, $more_file='') {
   $content = get_the_content($more_link_text,$stripteaser,$more_file);
   $content = convert_bbcode($content);
   $content = convert_gmcode($content);
   $content = convert_smilies($content);
   $content = convert_chars($content, 'html');
   $content = apply_filters('the_content', $content);
   echo $content;
}
function the_content_rss($more_link_text='(more...)', $stripteaser=0, $more_file='', $cut = 0, $encode_html = 0) {
   $content = get_the_content($more_link_text,$stripteaser,$more_file);
   $content = convert_bbcode($content);
   $content = convert_gmcode($content);
   $content = convert_chars($content, 'unicode');
   if ($cut && !$encode_html) {
      $encode_html = 2;
   }
   if ($encode_html == 1) {
      $content = htmlspecialchars($content);
      $cut = 0;
   } elseif ($encode_html == 0) {
      $content = make_url_footnote($content);
   } elseif ($encode_html == 2) {
      $content = strip_tags($content);
   }
   if ($cut) {
      $blah = explode(' ', $content);
      if (count($blah) > $cut) {
         $k = $cut;
         $use_dotdotdot = 1;
      } else {
         $k = count($blah);
         $use_dotdotdot = 0;
      }
      for ($i=0; $i<$k; $i++) {
         $excerpt .= $blah[$i].' ';
      }
      $excerpt .= ($use_dotdotdot) ? '...' : '';
      $content = $excerpt;
   }
   echo $content;
}
function the_content_unicode($more_link_text='(more...)', $stripteaser=0, $more_file='') {
   $content = get_the_content($more_link_text,$stripteaser,$more_file);
   $content = convert_bbcode($content);
   $content = convert_gmcode($content);
   $content = convert_smilies($content);
   $content = convert_chars($content, 'unicode');
   $content = apply_filters('the_content_unicode', $content);
   echo $content;
}
function get_the_content($more_link_text='(more...)', $stripteaser=0, $more_file='') {
   global $id,$postdata,$more,$c,$withcomments,$page,$pages,$multipage,$numpages;
   global $HTTP_SERVER_VARS, $preview;
   global $querystring_start, $querystring_equal, $querystring_separator;
   $output = '';
   if ($more_file != '') {
      $file=$more_file;
   } else {
      $file=$HTTP_SERVER_VARS['PHP_SELF'];
   }
   $content=$pages[$page-1];
   $content=explode('<!--more-->', $content);
   if ((preg_match('/<!--noteaser-->/', $postdata['Content']) && ((!$multipage) || ($page==1))))
      $stripteaser=1;
   $teaser=$content[0];
   if (($more) && ($stripteaser))
      $teaser='';
   $output .= $teaser;
   if (count($content)>1) {
      if ($more) {
         $output .= '<a name="more'.$id.'"></a>'.$content[1];
      } else {
      $output .= '<span id="varP'.$id.'"><br /><a href="'.$file.'#'.$id.'" onclick="showMore('.$id.',\''.$file.'#'.$id.'\'); return false">read more »</a></span><div id="varXYZ'.$id.'" style="display: none">'.$content[1].'<br />
      <a href="#'.$id.'" onclick="showMore('.$id.',0); return true">« hide more</a></div>';
      }
   }
   if ($preview) { // preview fix for javascript bug with foreign languages
      $output =  preg_replace('/\%u([0-9A-F]{4,4})/e',  "'&#'.base_convert('\\1',16,10).';'", $output);
   }
   return($output);
}
function get_words() {
        $content = get_the_content($more_link_text,$stripteaser,$more_file);
        $content = convert_bbcode($content);
        $content = convert_gmcode($content);
        $content = convert_smilies($content);
        $content = convert_chars($content,"html");
        $stripper = "";
        $wordcount = strip_tags($content,$stripper);
        $wordcount = explode(" ",$wordcount);
        $wordcount = count($wordcount);
        echo "$wordcount words in this post";
}

function link_pages($before='<br />', $after='<br />', $next_or_number='number', $nextpagelink='next page', $previouspagelink='previous page', $pagelink='%', $more_file='') {
   global $id,$page,$numpages,$multipage,$more;
   global $blogfilename;
   global $querystring_start, $querystring_equal, $querystring_separator;
   if ($more_file != '') {
      $file = $more_file;
   } else {
      $file = $blogfilename;
   }
   if (($multipage)) { // && ($more)) {
      echo $before;
      if ($next_or_number=='number') {
         for ($i = 1; $i < ($numpages+1); $i = $i + 1) {
            $j=str_replace('%',"$i",$pagelink);
            echo " ";
            if (($i != $page) || ((!$more) && ($page==1)))
               echo '<a href="'.$file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'more'.$querystring_equal.'1'.$querystring_separator.'page'.$querystring_equal.$i.'">';
            echo $j;
            if (($i != $page) || ((!$more) && ($page==1)))
               echo '</a>';
         }
      } else {
         $i=$page-1;
         if ($i)
            echo ' <a href="'.$file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'page'.$querystring_equal.$i.'">'.$previouspagelink.'</a>';
         $i=$page+1;
         if ($i<=$numpages)
            echo ' <a href="'.$file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'page'.$querystring_equal.$i.'">'.$nextpagelink.'</a>';
      }
      echo $after;
   }
}


function previous_post($format='%', $previous='previous post: ', $title='yes', $in_same_cat='no', $limitprev=1, $excluded_categories='') {
   global $tableposts, $id, $postdata, $siteurl, $blogfilename, $querycount;
   global $p, $posts, $posts_per_page, $s;
   global $querystring_start, $querystring_equal, $querystring_separator;

   if(($p) || ($posts_per_page==1)) {
      
      $current_post_date = $postdata['Date'];
      $current_category = $postdata['Category'];

      $sqlcat = '';
      if ($in_same_cat != 'no') {
         $sqlcat = " AND post_category='$current_category' ";
      }

      $sql_exclude_cats = '';
      if (!empty($excluded_categories)) {
         $blah = explode('and', $excluded_categories);
         foreach($blah as $category) {
            $category = intval($category);
            $sql_exclude_cats .= " AND post_category != $category";
         }
      }

      $limitprev--;
      $sql = "SELECT ID,post_title FROM $tableposts WHERE post_date < '$current_post_date' AND post_category > 0 $sqlcat $sql_exclude_cats ORDER BY post_date DESC LIMIT $limitprev,1";

      $query = @mysql_query($sql);
      $querycount++;
      if (($query) && (mysql_num_rows($query))) {
         $p_info = mysql_fetch_object($query);
         $p_title = $p_info->post_title;
         $p_id = $p_info->ID;
         $string = '<a href="'.$blogfilename.$querystring_start.'p'.$querystring_equal.$p_id.$querystring_separator.'more'.$querystring_equal.'1'.$querystring_separator.'c'.$querystring_equal.'1">'.$previous;
         if (!($title!='yes')) {
            $string .= stripslashes($p_title);
         }
         $string .= '</a>';
         $format = str_replace('%',$string,$format);
         echo $format;
      }
   }
}

function next_post($format='%', $next='next post: ', $title='yes', $in_same_cat='no', $limitnext=1, $excluded_categories='') {
   global $tableposts, $p, $posts, $id, $postdata, $siteurl, $blogfilename, $querycount;
   global $time_difference;
   global $querystring_start, $querystring_equal, $querystring_separator;
   if(($p) || ($posts==1)) {
      
      $current_post_date = $postdata['Date'];
      $current_category = $postdata['Category'];

      $sqlcat = '';
      if ($in_same_cat != 'no') {
         $sqlcat = " AND post_category='$current_category' ";
      }

      $sql_exclude_cats = '';
      if (!empty($excluded_categories)) {
         $blah = explode('and', $excluded_categories);
         foreach($blah as $category) {
            $category = intval($category);
            $sql_exclude_cats .= " AND post_category != $category";
         }
      }

      $now = date('Y-m-d H:i:s',(time() + ($time_difference * 3600)));

      $limitnext--;
      $sql = "SELECT ID,post_title FROM $tableposts WHERE post_date > '$current_post_date' AND post_date < '$now' AND post_category > 0 $sqlcat $sql_exclude_cats ORDER BY post_date ASC LIMIT $limitnext,1";

      $query = @mysql_query($sql);
      $querycount++;
      if (($query) && (mysql_num_rows($query))) {
         $p_info = mysql_fetch_object($query);
         $p_title = $p_info->post_title;
         $p_id = $p_info->ID;
         $string = '<a href="'.$blogfilename.$querystring_start.'p'.$querystring_equal.$p_id.$querystring_separator.'more'.$querystring_equal.'1'.$querystring_separator.'c'.$querystring_equal.'1">'.$next;
         if ($title=='yes') {
            $string .= stripslashes($p_title);
         }
         $string .= '</a>';
         $format = str_replace('%',$string,$format);
         echo $format;
      }
   }
}





function next_posts($max_page = 0) { // original by cfactor at cooltux.org
   global $HTTP_SERVER_VARS, $siteurl, $blogfilename, $p, $paged, $what_to_show;
   global $querystring_start, $querystring_equal, $querystring_separator;
   if (empty($p) && ($what_to_show == 'paged')) {
      $qstr = $HTTP_SERVER_VARS['QUERY_STRING'];
      if (!empty($qstr)) {
         $qstr = preg_replace("/&paged=\d{0,}/","",$qstr);
         $qstr = preg_replace("/paged=\d{0,}/","",$qstr);
      } elseif ('' != $qstr = str_replace($HTTP_SERVER_VARS['SCRIPT_NAME'], '',
                                 $HTTP_SERVER_VARS['REQUEST_URI']) ) {
         $qstr = preg_replace("/^\//", "", $qstr);
         $qstr = preg_replace("/paged\/\d{0,}\//", "", $qstr);      
         $qstr = preg_replace("/paged\/\d{0,}/", "", $qstr);
         $qstr = preg_replace("/\/$/", "", $qstr);
      }
      if (!$paged) $paged = 1;
      $nextpage = intval($paged) + 1;
      if (!$max_page || $max_page >= $nextpage) {
         echo  $siteurl.'/'.$blogfilename.$querystring_start.
            ($qstr == '' ? '' : $qstr.$querystring_separator) .
            'paged'.$querystring_equal.$nextpage;
      }
   }
}

function next_posts_link($label='Next Page >>', $max_page=0) {
   global $p, $paged, $result, $request, $posts_per_page, $what_to_show;
   if ($what_to_show == 'paged') {
      if (!$max_page) {
         $nxt_request = $request;
         if ($pos = strpos(strtoupper($request), 'LIMIT')) {
            $nxt_request = substr($request, 0, $pos);
         }
         $nxt_result = mysql_query($nxt_request);
         $numposts = mysql_num_rows($nxt_result);
         $max_page = intval($numposts / $posts_per_page) +1;
      }
      if (!$paged) $paged = 1;
      $nextpage = intval($paged) + 1;
      if (empty($p) && (empty($paged) || $nextpage <= $max_page)) {
         echo '<a href="';
         echo next_posts($max_page);
         echo '">'. htmlspecialchars($label) .'</a>';
      }
   }
}


function previous_posts() { // original by cfactor at cooltux.org
   global $HTTP_SERVER_VARS, $siteurl, $blogfilename, $p, $paged, $what_to_show;
   global $querystring_start, $querystring_equal, $querystring_separator;
   if (empty($p) && ($what_to_show == 'paged')) {
      $qstr = $HTTP_SERVER_VARS['QUERY_STRING'];
      if (!empty($qstr)) {
         $qstr = preg_replace("/&paged=\d{0,}/","",$qstr);
         $qstr = preg_replace("/paged=\d{0,}/","",$qstr);
      } elseif ('' != $qstr = str_replace($HTTP_SERVER_VARS['SCRIPT_NAME'], '',
                                 $HTTP_SERVER_VARS['REQUEST_URI']) ) {
         $qstr = preg_replace("/^\//", "", $qstr);
         $qstr = preg_replace("/paged\/\d{0,}\//", "", $qstr);      
         $qstr = preg_replace("/paged\/\d{0,}/", "", $qstr);
         $qstr = preg_replace("/\/$/", "", $qstr);
      }
      $nextpage = intval($paged) - 1;
      if ($nextpage < 1) $nextpage = 1;
      echo $siteurl.'/'.$blogfilename.$querystring_start.
         ($qstr == '' ? '' : $qstr.$querystring_separator) .
         'paged'.$querystring_equal.$nextpage;
   }
}

function previous_posts_link($label='<< Previous Page') {
   global $p, $paged, $what_to_show;
   if (empty($p)  && ($paged > 1) && ($what_to_show == 'paged')) {
      echo '<a href="';
      echo previous_posts();
      echo '">'.  htmlspecialchars($label) .'</a>';
   }
}

function posts_nav_link($sep=' :: ', $prelabel='<< Previous Page', $nxtlabel='Next Page >>') {
   global $p, $what_to_show, $request, $posts_per_page;
   if (empty($p) && ($what_to_show == 'paged')) {
      $nxt_request = $request;
      if ($pos = strpos(strtoupper($request), 'LIMIT')) {
         $nxt_request = substr($request, 0, $pos);
      }
      $nxt_result = mysql_query($nxt_request);
      $numposts = mysql_num_rows($nxt_result);
      $max_page = intval($numposts / $posts_per_page) +1;
      if ($max_page > 1) {
         previous_posts_link($prelabel);
         echo htmlspecialchars($sep);
         next_posts_link($nxtlabel, $max_page);
      }
   }
}

/***** // Post tags *****/




/***** Category tags *****/

function the_category() {
   $category = get_the_category();
   $category = apply_filters('the_category', $category);
   echo convert_chars($category, 'html');
}
function the_category_rss() {
   echo convert_chars(strip_tags(get_the_category()), 'xml');
}
function the_category_unicode() {
   $category = get_the_category();
   $category = apply_filters('the_category_unicode', $category);
   echo convert_chars($category, 'unicode');
}
function get_the_category() {
   global $id,$postdata,$tablecategories,$querycount,$cache_categories,$use_cache;
   $cat_ID = $postdata['Category'];
   if ((empty($cache_categories[$cat_ID])) OR (!$use_cache)) {
      $query="SELECT cat_name FROM $tablecategories WHERE cat_ID = '$cat_ID'";
      $result=mysql_query($query);
      $querycount++;
      $myrow = mysql_fetch_array($result);
      $cat_name = $myrow[0];
      $cache_categories[$cat_ID] = $cat_name;
   } else {
      $cat_name = $cache_categories[$cat_ID];
   }
   return(stripslashes($cat_name));
}

function get_the_category_by_ID($cat_ID) {
   global $id,$tablecategories,$querycount,$cache_categories,$use_cache;
   if ((!$cache_categories[$cat_ID]) OR (!$use_cache)) {
      $query="SELECT cat_name FROM $tablecategories WHERE cat_ID = '$cat_ID'";
      $result=mysql_query($query);
      $querycount++;
      $myrow = mysql_fetch_array($result);
      $cat_name = $myrow[0];
      $cache_categories[$cat_ID] = $cat_name;
   } else {
      $cat_name = $cache_categories[$cat_ID];
   }
   return(stripslashes($cat_name));
}

function the_category_ID() {
   global $id,$postdata;   echo $postdata['Category'];
}

function the_category_head($before='',$after='') {
   global $id, $postdata, $currentcat, $previouscat,$dateformat,$newday;
   $currentcat = $postdata['Category'];
   if ($currentcat != $previouscat) {
      echo $before;
      echo get_the_category_by_ID($currentcat);
      echo $after;
      $previouscat = $currentcat;
   }
}

// out of the b2 loop
function dropdown_cats($optionall = 1, $all = 'All') {
   global $cat, $tablecategories, $querycount;
   $query="SELECT * FROM $tablecategories";
   $result=mysql_query($query);
   $querycount++;
   echo "<select name=\"cat\" class=\"postform\">\n";
   if (intval($optionall) == 1) {
      echo "\t<option value=\"all\">$all</option>\n";
   }
   while($row = mysql_fetch_object($result)) {
      echo "\t<option value=\"".$row->cat_ID."\"";
      if ($row->cat_ID == $cat)
         echo ' selected="selected"';
      echo '>'.stripslashes($row->cat_name)."</option>\n";
   }
   echo "</select>\n";
}

// out of the b2 loop
function list_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc', $file = 'blah') {
   global $tablecategories,$querycount;
   global $pagenow;
   global $querystring_start, $querystring_equal, $querystring_separator;
   $file = ($file == 'blah') ? $pagenow : $file;
   $sort_column = 'cat_'.$sort_column;
   $query="SELECT * FROM $tablecategories WHERE cat_ID > 0 ORDER BY $sort_column $sort_order";
   $result=mysql_query($query);
   $querycount++;
   if (intval($optionall) == 1) {
      $all = apply_filters('list_cats', $all);
      echo "\t<a href=\"".$file.$querystring_start.'cat'.$querystring_equal.'all">'.$all."</a><br />\n";
   }
   while($row = mysql_fetch_object($result)) {
      $cat_name = $row->cat_name;
      $cat_name = apply_filters('list_cats', $cat_name);
      echo "\t<a href=\"".$file.$querystring_start.'cat'.$querystring_equal.$row->cat_ID.'">';
      echo stripslashes($cat_name)."</a><br />\n";
   }
}

/***** // Category tags *****/




/***** <Link> tags *****/



/***** // <Link> tags *****/




/***** Comment tags *****/

// generic comments/trackbacks/pingbacks numbering
function generic_ctp_number($post_id, $mode = 'comments') {
   global $postdata, $tablecomments, $querycount, $cache_ctp_number, $use_cache;
   if (!isset($cache_ctp_number[$post_id]) || (!$use_cache)) {
      $post_id = intval($post_id);
      $query = "SELECT * FROM $tablecomments WHERE comment_post_ID = $post_id";
      $result = mysql_query($query) or die('SQL query: '.$query.'<br />MySQL Error: '.mysql_error());
      $querycount++;
      $ctp_number = array();
      while($row = mysql_fetch_object($result)) {
         if (substr($row->comment_content, 0, 13) == '<trackback />') {
            $ctp_number['trackbacks']++;
         } elseif (substr($row->comment_content, 0, 12) == '<pingback />') {
            $ctp_number['pingbacks']++;
         } else {
            $ctp_number['comments']++;
         }
         $ctp_number['ctp']++;
      }
      $cache_ctp_number[$post_id] = $ctp_number;
   } else {
      $ctp_number = $cache_ctp_number[$post_id];
   }
   if (($mode != 'comments') && ($mode != 'trackbacks') && ($mode != 'pingbacks') && ($mode != 'ctp')) {
      $mode = 'ctp';
   }
   return $ctp_number[$mode];
}

function comments_number($zero='no comment', $one='1 comment', $more='% comments') {
   // original hack by [email protected]
   global $id,$postdata,$tablecomments,$c,$querycount,$cache_commentsnumber,$use_cache;
   $number = generic_ctp_number($id, 'comments');
   if ($number == 0) {
      $blah = $zero;
   } elseif ($number == 1) {
      $blah = $one;
   } elseif ($number  > 1) {
      $n = $number;
      $more=str_replace('%', $n, $more);
      $blah = $more;
   }
   echo $blah;
}

function comments_link($file='') {
   global $id,$pagenow;
   global $querystring_start, $querystring_equal, $querystring_separator;
   if ($file == '')   $file = $pagenow;
   if ($file == '/')   $file = '';
   echo $file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'c'.$querystring_equal.'1#comments';
}

function comments_popup_script($width=400, $height=400, $file='b2commentspopup.php', $trackbackfile='b2trackbackpopup.php', $pingbackfile='b2pingbackspopup.php') {
   global $b2commentspopupfile, $b2trackbackpopupfile, $b2pingbackpopupfile, $b2commentsjavascript;
   $b2commentspopupfile = $file;
   $b2trackbackpopupfile = $trackbackfile;
   $b2pingbackpopupfile = $pingbackfile;
   $b2commentsjavascript = 1;
   $javascript = "<script language=\"javascript\" type=\"text/javascript\">\n<!--\nfunction b2open (macagna) {\n    window.open(macagna, '_blank', 'width=$width,height=$height,scrollbars=yes,status=yes');\n}\n//-->\n</script>\n";
   echo $javascript;
}

function comments_popup_link($zero='no comment', $one='1 comment', $more='% comments', $CSSclass='') {
   global $id, $b2commentspopupfile, $b2commentsjavascript;
   global $querystring_start, $querystring_equal, $querystring_separator;
   echo '<a href="';
   if ($b2commentsjavascript) {
      echo $b2commentspopupfile.'?p='.$id.'&c=1';
      echo '" onclick="b2open(this.href); return false"';
   } else {
      // if comments_popup_script() is not in the template, display simple comment link
      comments_link();
      echo '"';
   }
   if (!empty($CSSclass)) {
      echo ' class="'.$CSSclass.'"';
   }
   echo '>';
   comments_number($zero, $one, $more);
   echo '</a>';
}

function comment_ID() {
   global $commentdata;   echo $commentdata['comment_ID'];
}

function comment_author() {
   global $commentdata;   echo stripslashes($commentdata['comment_author']);
}

function comment_author_email() {
   global $commentdata;   echo antispambot(stripslashes($commentdata['comment_author_email']));
}

function comment_author_url() {
   global $commentdata;
   $url = trim(stripslashes($commentdata['comment_author_url']));
   $url = (!stristr($url, '://')) ? 'http://'.$url : $url;
   // convert & into &
   $url = preg_replace('#&([^amp\;])#is', '&$1', $url);
   if ($url != 'http://url') {
      echo $url;
   }
}

function comment_author_email_link($linktext='', $before='', $after='') {
   global $commentdata;
   $email=$commentdata['comment_author_email'];
   if ((!empty($email)) && ($email != '@')) {
      $display = ($linktext != '') ? $linktext : antispambot(stripslashes($email));
      echo $before;
      echo '<a href="mailto:'.antispambot(stripslashes($email)).'">'.$display.'</a>';
      echo $after;
   }
}

function comment_author_url_link($linktext='', $before='', $after='') {
   global $commentdata;
   $url = trim(stripslashes($commentdata['comment_author_url']));
   $url = preg_replace('#&([^amp\;])#is', '&$1', $url);
   $url = (!stristr($url, '://')) ? 'http://'.$url : $url;
   if ((!empty($url)) && ($url != 'http://') && ($url != 'http://url')) {
      $display = ($linktext != '') ? $linktext : stripslashes($url);
      echo $before;
      echo '<a href="'.stripslashes($url).'" target="_blank">'.$display.'</a>';
      echo $after;
   }
}

function comment_author_IP() {
   global $commentdata;   echo stripslashes($commentdata['comment_author_IP']);
}

function comment_text() {
   global $commentdata;
   $comment = stripslashes($commentdata['comment_content']);
   $comment = str_replace('<trackback />', '', $comment);
   $comment = str_replace('<pingback />', '', $comment);
   $comment = convert_chars($comment);
   $comment = convert_bbcode($comment);
   $comment = convert_gmcode($comment);
   $comment = convert_smilies($comment);
   $comment = make_clickable($comment);
   $comment = balanceTags($comment);
   $comment = apply_filters('comment_text', $comment);
   echo $comment;
}

function comment_date($d='') {
   global $commentdata,$dateformat;
   if ($d == '') {
      echo mysql2date($dateformat, $commentdata['comment_date']);
   } else {
      echo mysql2date($d, $commentdata['comment_date']);
   }
}

function comment_time($d='') {
   global $commentdata,$timeformat;
   if ($d == '') {
      echo mysql2date($timeformat, $commentdata['comment_date']);
   } else {
      echo mysql2date($d, $commentdata['comment_date']);
   }
}

/***** // Comment tags *****/



/***** TrackBack tags *****/

function trackback_url($display = 1) {
   global $pathserver, $id;
   $tb_url = $pathserver.'/b2trackback.php/'.$id;
   if ($display) {
      echo $tb_url;
   } else {
      return $tb_url;
   }
}

function trackback_number($zero='no trackback', $one='1 trackback', $more='% trackbacks') {
   global $id, $tablecomments, $tb, $querycount, $cache_trackbacknumber, $use_cache;
   $number = generic_ctp_number($id, 'trackbacks');
   if ($number == 0) {
      $blah = $zero;
   } elseif ($number == 1) {
      $blah = $one;
   } elseif ($number  > 1) {
      $n = $number;
      $more=str_replace('%', $n, $more);
      $blah = $more;
   }
   echo $blah;
}

function trackback_link($file='') {
   global $id,$pagenow;
   global $querystring_start, $querystring_equal, $querystring_separator;
   if ($file == '')   $file = $pagenow;
   if ($file == '/')   $file = '';
   echo $file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'tb'.$querystring_equal.'1#trackback';
}

function trackback_popup_link($zero='no trackback', $one='1 trackback', $more='% trackbacks', $CSSclass='') {
   global $id, $b2trackbackpopupfile, $b2commentsjavascript;
   global $querystring_start, $querystring_equal, $querystring_separator;
   echo '<a href="';
   if ($b2commentsjavascript) {
      echo $b2trackbackpopupfile.'?p='.$id.'&tb=1';
      echo '" onclick="b2open(this.href); return false"';
   } else {
      // if comments_popup_script() is not in the template, display simple comment link
      trackback_link();
      echo '"';
   }
   if (!empty($CSSclass)) {
      echo ' class="'.$CSSclass.'"';
   }
   echo '>';
   trackback_number($zero, $one, $more);
   echo '</a>';
}

function trackback_rdf($timezone=0) {
   global $pathserver, $id, $HTTP_SERVER_VARS;
   if (!stristr($HTTP_SERVER_VARS['HTTP_USER_AGENT'], 'W3C_Validator')) {
      echo '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" '."\n";
      echo '    xmlns:dc="http://purl.org/dc/elements/1.1/"'."\n";
      echo '    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">'."\n";
      echo '<rdf:Description'."\n";
      echo '    rdf:about="';
      permalink_single();
      echo '"'."\n";
      echo '    dc:identifier="';
      permalink_single();
      echo '"'."\n";
      echo '    dc:title="'.addslashes(get_the_title()).'"'."\n";
      echo '    trackback:ping="'.trackback_url(0).'"'."\n";
      echo '</rdf:RDF>';
   }
}

/***** // TrackBack tags *****/



/***** PingBack tags *****/

function pingback_number($zero='no pingback', $one='1 pingback', $more='% pingbacks') {
   global $id, $tablecomments, $tb, $querycount, $cache_pingbacknumber, $use_cache;
   $number = generic_ctp_number($id, 'pingbacks');
   if ($number == 0) {
      $blah = $zero;
   } elseif ($number == 1) {
      $blah = $one;
   } elseif ($number  > 1) {
      $n = $number;
      $more=str_replace('%', $n, $more);
      $blah = $more;
   }
   echo $blah;
}

function pingback_link($file='') {
   global $id,$pagenow;
   global $querystring_start, $querystring_equal, $querystring_separator;
   if ($file == '')   $file = $pagenow;
   if ($file == '/')   $file = '';
   echo $file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'pb'.$querystring_equal.'1#pingbacks';
}

function pingback_popup_link($zero='no pingback', $one='1 pingback', $more='% pingbacks', $CSSclass='') {
   global $id, $b2pingbackpopupfile, $b2commentsjavascript;
   global $querystring_start, $querystring_equal, $querystring_separator;
   echo '<a href="';
   if ($b2commentsjavascript) {
      echo $b2pingbackpopupfile.'?p='.$id.'&pb=1';
      echo '" onclick="b2open(this.href); return false"';
   } else {
      // if comments_popup_script() is not in the template, display simple comment link
      pingback_link();
      echo '"';
   }
   if (!empty($CSSclass)) {
      echo ' class="'.$CSSclass.'"';
   }
   echo '>';
   pingback_number($zero, $one, $more);
   echo '</a>';
}



/***** // PingBack tags *****/



/***** Permalink tags *****/

function permalink_anchor($mode = 'id') {
   global $id, $postdata;
   switch(strtolower($mode)) {
      case 'title':
         $title = preg_replace('/[^a-zA-Z0-9_\.-]/', '_', $postdata['Title']);
         echo '<a name="'.$title.'"></a>';
         break;
      case 'id':
      default:
         echo '<a name="'.$id.'"></a>';
         break;
   }
}

function permalink_link($file='', $mode = 'id') {
   global $id, $postdata, $pagenow, $cacheweekly;
   global $querystring_start, $querystring_equal, $querystring_separator;
   $file = ($file=='') ? $pagenow : $file;
   switch(strtolower($mode)) {
      case 'title':
         $title = preg_replace('/[^a-zA-Z0-9_\.-]/', '_', $postdata['Title']);
         $anchor = $title;
         break;
      case 'id':
      default:
         $anchor = $id;
         break;
   }
   $archive_mode = get_settings('archive_mode');
   switch($archive_mode) {
      case 'daily':
         echo $file.$querystring_start.'m'.$querystring_equal.substr($postdata['Date'],0,4).substr($postdata['Date'],5,2).substr($postdata['Date'],8,2).'#'.$anchor;
         break;
      case 'monthly':
         echo $file.$querystring_start.'m'.$querystring_equal.substr($postdata['Date'],0,4).substr($postdata['Date'],5,2).'#'.$anchor;
         break;
      case 'weekly':
         if((!isset($cacheweekly)) || (empty($cacheweekly[$postdata['Date']]))) {
            $sql = "SELECT WEEK('".$postdata['Date']."')";
            $result = mysql_query($sql);
            $row = mysql_fetch_row($result);
            $cacheweekly[$postdata['Date']] = $row[0];
         }
         echo $file.$querystring_start.'m'.$querystring_equal.substr($postdata['Date'],0,4).$querystring_separator.'w'.$querystring_equal.$cacheweekly[$postdata['Date']].'#'.$anchor;
         break;
      case 'postbypost':
         echo $file.$querystring_start.'p'.$querystring_equal.$id;
         break;
   }
}

function permalink_single($file='') {
   global $id,$postdata,$pagenow;
   global $querystring_start, $querystring_equal, $querystring_separator;
   if ($file=='')
      $file=$pagenow;
   echo $file.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'more'.$querystring_equal.'1'.$querystring_separator.'c'.$querystring_equal.'1';
}

function permalink_single_rss($file='b2rss.xml') {
   global $id,$postdata,$pagenow,$siteurl,$blogfilename;
   global $querystring_start, $querystring_equal, $querystring_separator;
      echo $siteurl.'/'.$blogfilename.$querystring_start.'p'.$querystring_equal.$id.$querystring_separator.'c'.$querystring_equal.'1';
}

/***** // Permalink tags *****/




// @@@ These aren't template tags, do not edit them

function start_b2() {
   global $row, $id, $postdata, $authordata, $day, $preview, $page, $pages, $multipage, $more, $numpages;
   global $preview_userid,$preview_date,$preview_content,$preview_title,$preview_category,$preview_notify,$preview_make_clickable,$preview_autobr;
   global $pagenow;
   global $HTTP_GET_VARS;
   if (!$preview) {
      $id = $row->ID;
      $postdata=get_postdata2($id);
   } else {
      $id = 0;
      $postdata = array (
         'ID' => 0,
         'Author_ID' => $HTTP_GET_VARS['preview_userid'],
         'Date' => $HTTP_GET_VARS['preview_date'],
         'Content' => $HTTP_GET_VARS['preview_content'],
         'Title' => $HTTP_GET_VARS['preview_title'],
         'Category' => $HTTP_GET_VARS['preview_category'],
         'Notify' => 1,
         'Clickable' => 1,
         'Karma' => 0 // this isn't used yet
         );
      if (!empty($HTTP_GET_VARS['preview_autobr'])) {
         $postdata['Content'] = autobrize($postdata['Content']);
      }
   }
   $authordata = get_userdata($postdata['Author_ID']);
   $day = mysql2date('d.m.y',$postdata['Date']);
   $currentmonth = mysql2date('m',$postdata['Date']);
   $numpages=1;
   if (!$page)
      $page=1;
   if (isset($p))
      $more=1;
   $content = $postdata['Content'];
   if (preg_match('/<!--nextpage-->/', $postdata['Content'])) {
      if ($page > 1)
         $more=1;
      $multipage=1;
      $content=stripslashes($postdata['Content']);
      $content = str_replace("\n<!--nextpage-->\n", '<!--nextpage-->', $content);
      $content = str_replace("\n<!--nextpage-->", '<!--nextpage-->', $content);
      $content = str_replace("<!--nextpage-->\n", '<!--nextpage-->', $content);
      $pages=explode('<!--nextpage-->', $content);
      $numpages=count($pages);
   } else {
      $pages[0]=stripslashes($postdata['Content']);
      $multipage=0;
   }
   return true;
}

function is_new_day() {
   global $day, $previousday;
   if ($day != $previousday) {
      return(1);
   } else {
      return(0);
   }
}

function apply_filters($tag, $string) {
   global $b2_filter;
   if (isset($b2_filter['all'])) {
      $b2_filter['all'] = (is_string($b2_filter['all'])) ? array($b2_filter['all']) : $b2_filter['all'];
      $b2_filter[$tag] = array_merge($b2_filter['all'], $b2_filter[$tag]);
      $b2_filter[$tag] = array_unique($b2_filter[$tag]);
   }
   if (isset($b2_filter[$tag])) {
      $b2_filter[$tags] = (is_string($b2_filter[$tag])) ? array($b2_filter[$tag]) : $b2_filter[$tag];
      $functions = $b2_filter[$tag];
      foreach($functions as $function) {
         $string = $function($string);
      }
   }
   return $string;
}

function add_filter($tag, $function_to_add) {
   global $b2_filter;
   if (isset($b2_filter[$tag])) {
      $functions = $b2_filter[$tag];
      if (is_array($functions)) {
         foreach($functions as $function) {
            $new_functions[] = $function;
         }
      } elseif (is_string($functions)) {
         $new_functions[] = $functions;
      }
/* this is commented out because it just makes PHP die silently
   for no apparent reason
      if (is_array($function_to_add)) {
         foreach($function_to_add as $function) {
            if (!in_array($function, $b2_filter[$tag])) {
               $new_functions[] = $function;
            }
         }
      } else */if (is_string($function_to_add)) {
         if (!@in_array($function_to_add, $b2_filter[$tag])) {
            $new_functions[] = $function_to_add;
         }
      }
      $b2_filter[$tag] = $new_functions;
   } else {
      $b2_filter[$tag] = array($function_to_add);
   }
   return true;
}
function getcustomfield($name){
   global $tableposts,$id;
   $sql = "SELECT ".$name." from ".$tableposts." where id = ".$id." LIMIT 1";
   $result = mysql_query($sql);
   while ($row = mysql_fetch_array($result)){
      $output = $row[$name];
   }
   $output = convert_bbcode(convert_smilies(stripslashes($output)));
   echo $output;
}
?>

_________________
Play Aliens Awaken mY new Game .
Back to top
View user's profile Send private message
Mizkie



Joined: 19 Mar 2003
Posts: 51
Location: Bloomington, IN

PostPosted: Wed Jul 09, 2003 11:45 pm    Post subject: Reply with quote

thanks
_________________
Mick

HSS = High School Sucks
Back to top
View user's profile Send private message Visit poster's website AIM Address
fplanque



Joined: 22 Dec 2002
Posts: 53
Location: Montpellier, South of France

PostPosted: Thu Aug 28, 2003 12:45 am    Post subject: Reply with quote

for better performance, you should calculate the word count once for all at post time, store it in th DB, and then display it at no extra performance cost.

this is what we do in b2evolution (0.8.3-beta1) (implementation by Swirlee)
_________________
-François
Check out : a blogtool for bloggers who want more!
Back to top
View user's profile Send private message Visit poster's website
Jacqueline



Joined: 16 Nov 2003
Posts: 4
Location: Canadar

PostPosted: Mon Nov 17, 2003 12:17 am    Post subject: Reply with quote

wow thanks, that was really helpful! Smile
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    boardom Forum Index -> Hacks All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB 2 © 2001, 2002 phpBB Group