Skip to:
Content

BuddyPress.org

Changeset 3


Ignore:
Timestamp:
03/31/2008 10:38:39 PM (17 years ago)
Author:
mrwiblog
Message:

Chris T: Added formatting functions (friendly date, check integer, pagination etc)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp_core.php

    r1 r3  
    348348}
    349349
     350// get the IDs of user blogs in a comma-separated list for use in SQL statements
     351function bp_get_blog_ids_of_user($id, $all = false)
     352{
     353    $blogs = get_blogs_of_user($id, $all);
     354    $blog_ids = "";
     355    if ($blogs && count($blogs) > 0)
     356    {
     357        foreach($blogs as $blog)
     358        {
     359            $blog_ids .= $blog->blog_id.",";
     360        }
     361    }
     362    $blog_ids = trim($blog_ids, ",");
     363    return $blog_ids;
     364}
     365
     366// return a tick for a checkbox for a true boolean value
     367function bp_boolean_ticked($bool)
     368{
     369    if ($bool)
     370    {
     371        return " checked=\"checked\"";
     372    }
     373    return "";
     374}
     375
     376// return a tick for a checkbox for a particular value
     377function bp_value_ticked($var, $value)
     378{
     379    if ($var == $value)
     380    {
     381        return " checked=\"checked\"";
     382    }
     383    return "";
     384}
     385
     386// return true for a boolean value from a checkbox
     387function bp_boolean($value = 0)
     388{
     389    if ($value != "")
     390    {
     391        return 1;
     392    } else {
     393        return 0;
     394    }
     395}
     396
     397// return an integer
     398function bp_int($var,$nullToOne=false)
     399{
     400    if (@$var == "")
     401    {
     402        if ($nullToOne)
     403        {
     404            return 1;
     405        } else {
     406            return 0;
     407        }
     408    } else {
     409        return (int)$var;
     410    }
     411}
     412
     413// get the start number for pagination
     414function bp_get_page_start($p, $num)
     415{
     416    $p = bp_int($p);
     417    $num = bp_int($num);
     418    if ($p == "")
     419    {
     420        return 0;
     421    } else {
     422        return ($p*$num)-$num;
     423    }
     424}
     425
     426// get the page number from the $_GET["p"] variable
     427function bp_get_page()
     428{
     429    if (isset($_GET["p"]) ? $page = (int)$_GET["p"] : $page = 1);
     430    return $page;
     431}
     432
     433// generate page links
     434function bp_generate_pages_links($totalRows,$maxPerPage=25,$linktext="",$var,$attributes="")
     435{
     436    // loop all the pages in the result set
     437    for ($i = 1; $i <= ceil($totalRows/$maxPerPage); $i++)
     438    {
     439        // if the current page is different to this link, create the querystring
     440        $page = bp_int(@$var,true);
     441        if ($i != $page)
     442        {
     443            if ($linktext == ""){
     444                $link = "?p=" . $i;
     445            } else {
     446                $link = str_replace("%%", $i, $linktext);
     447            }
     448            $links["link"][] = $link;
     449            $links["text"][] = $i;
     450            $links["attributes"][] = str_replace("%%", $i, $attributes);
     451            // otherwise make the link empty
     452        } else {
     453            $links["link"][] = "";
     454            $links["text"][] = $i;
     455            $links["attributes"][] = str_replace("%%", $i, $attributes);
     456        }
     457    }
     458    // return the links
     459    return $links;
     460}
     461
     462// generate page link list
     463function bp_paginate($links,$currentPage=1, $firstItem="", $listclass="")
     464{
     465    $return = "";
     466    // check the parameter is an array with more than 1 items in
     467    if (is_array($links) && count($links["text"]) > 1)
     468    {
     469        // get the total number of links
     470        $totalPages = count($links["text"]);
     471        // set showstart and showend to false
     472        $showStart = false;
     473        $showEnd = false;
     474        // if the total number of pages is greater than 10
     475        if ($totalPages > 10)
     476        {
     477            // if the current page is less than 5 from the start
     478            if ($currentPage <= 5)
     479            {
     480                // set the minimum and maximum pages to show
     481                $minimum = 0;
     482                $maximum = 9;
     483                $showEnd = true;
     484            }
     485            // if the current page is less than 5 from the end
     486            if ($currentPage >= ($totalPages-5))
     487            {
     488                // set the minumum and maximum pages to show
     489                $minimum = $totalPages-9;
     490                $maximum = $totalPages;
     491                $showStart = true;
     492            }
     493            // if the current page is somewhere in the middle
     494            if ($currentPage > 5 && $currentPage < ($totalPages-5))
     495            {
     496                $showEnd = true;
     497                $showStart = true;
     498                $minimum = $currentPage-4;
     499                $maximum = $currentPage+4;
     500            }
     501        } else {
     502            $minimum = 0;
     503            $maximum = $totalPages;
     504        }
     505        // print the start of the list
     506        $return .= "\n\n<ul class=\"pagelinks";
     507        if ($listclass!=""){ $return .= " ".$listclass; }
     508        $return .= "\">\n";
     509        // print the first item, it if is set
     510        if ($firstItem != "")
     511        {
     512            $return .= "<li>".$firstItem."</li>\n";
     513        }
     514        // print the page text
     515        $return .= "<li>Pages:</li>\n";
     516        // if set, show the start
     517        if ($showStart){
     518            $return .= "<li><a href=\"" . str_replace("&", "&amp;", $links["link"][0]) . "\">" . $links["text"][0] . "...</a></li>\n";
     519        }
     520        // loop the links
     521        for ($i = $minimum; $i < $maximum; $i++)
     522        {
     523            if ($i == ($currentPage-1))
     524            {
     525                $url = "<li class=\"current\">" . $links["text"][$i] . "</li>\n";
     526            } else {
     527                if ($links["attributes"][$i] != "")
     528                {
     529                    $attributes = " ".$links["attributes"][$i];
     530                } else {
     531                    $attributes = "";
     532                }
     533                $url = "<li><a href=\"" . str_replace("&", "&amp;", $links["link"][$i]) . "\"".$attributes.">" . $links["text"][$i] . "</a></li>\n";
     534            }
     535            $return .= $url;
     536        }
     537        // if set, show the end
     538        if ($showEnd){
     539            $return .= "<li><a href=\"" . str_replace("&", "&amp;", $links["link"][$totalPages-1]) . "\">..." . $links["text"][$totalPages-1] . "</a></li>\n";
     540        }
     541        $return .= "</ul>\n\n";
     542    }
     543return $return;
     544}
     545
     546// show a friendly date
     547function bp_friendly_date($timestamp)
     548{
     549    // set the timestamp to now if it hasn't been given
     550    if (strlen($timestamp) == 0){ $timestamp = time(); }
     551   
     552    // create the date string
     553    if (date("m", $timestamp)==date("m") && date("d", $timestamp)==date("d")-1 && date("Y", $timestamp)==date("Y")){
     554        return "yesterday at ".date("g:i a", $timestamp);
     555    } else if (date("m", $timestamp)==date("m") && date("d", $timestamp)==date("d") && date("Y", $timestamp)==date("Y")){
     556        return "at ".date("g:i a", $timestamp);
     557    } else if (date("m", $timestamp)==date("m") && date("d", $timestamp)>date("d")-5 && date("Y", $timestamp)==date("Y")){
     558        return "on ".date("l", $timestamp)." at ".date("g:i a", $timestamp);
     559    } else if (date("Y", $timestamp)==date("Y")){
     560        return "on ".date("F jS", $timestamp);
     561    } else {
     562        return "on ".date("F jS Y", $timestamp);
     563    }
     564}
     565
     566// search users
     567function bp_search_users($q, $start = 0, $num = 10)
     568{
     569    if (trim($q) != "")
     570    {
     571        global $wpdb;
     572        global $wpmuBaseTablePrefix;
     573        global $current_user;
     574        $sql = "select SQL_CALC_FOUND_ROWS id, user_login, display_name, user_nicename from ".$wpmuBaseTablePrefix."users
     575                where (user_nicename like '%".$wpdb->escape($q)."%'
     576                or user_email like '%".$wpdb->escape($q)."%'
     577                or display_name like '%".$wpdb->escape($q)."%')
     578                and (id <> ".$current_user->ID." and id > 1)
     579                limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
     580                //print $sql;
     581        $users = $wpdb->get_results($sql);
     582        $rows = $wpdb->get_var("SELECT found_rows() AS found_rows");
     583        if (is_array($users) && count($users) >0)
     584        {
     585            for ($i = 0; $i < count($users); $i++)
     586            {
     587                $user = $users[$i];
     588                $user->siteurl = $user->user_url;
     589                $user->blogs = "";
     590                $user->blogs = get_blogs_of_user($user->id);
     591                $user->rows = $rows;
     592            }
     593            return $users;
     594        } else {
     595            return false;
     596        }
     597    } else {
     598        return false;
     599    }
     600}
     601
     602// return a ' if the text ends in an "s", or "'s" otherwise
     603function bp_end_with_s($string)
     604{
     605    if (substr(strtolower($string), -1) == "s")
     606    {
     607        return $string."'";
     608    } else {
     609        return $string."'s";
     610    }
     611}
     612
     613// pluralise a string
     614function bp_plural($num, $ifone="", $ifmore="s")
     615{
     616    if (bp_int($num) <> 1)
     617    {
     618        return $ifmore;
     619    } else {
     620        return $ifone;
     621    }
     622}
     623
    350624?>
Note: See TracChangeset for help on using the changeset viewer.