/** * * * @param unknown $params * @param unknown $bBlog (reference) * @return unknown */ function smarty_function_getrecentposts($params, &$bBlog) { $ar = array(); $opt = array(); // If "assign" is not set... we'll establish a default. if ($params['assign'] == '') { $params['assign'] = 'posts'; } // If "archive" is set, order them ASCENDING by posttime. if ($params['archive'] == 'TRUE') { $opt['order'] = " ORDER BY posttime "; } // If num is set, we'll only get that many results in return if (is_numeric($params['num'])) { $opt['num'] = $params['num']; } // If skip is set, we'll skip that many results if (is_numeric($params['skip'])) { $opt['num'] = $params['skip']; } if ($params['section'] != '') { $opt['sectionid'] = $bBlog->sect_by_name[$params['section']]; } if ($bBlog->show_section) { $opt['sectionid'] = $bBlog->show_section; } $opt['home'] = $params['home']; $q = $bBlog->make_post_query($opt); $ar['posts'] = $bBlog->get_posts($q); // No posts. if (!is_array($ar['posts'])) { return ''; } $lastmonth = 0; $lastdate = 0; foreach ($ar['posts'] as $key => $value) { // It seems silly to do this. Especially since, // this kind of check can be done in Smarty template. // Additionally, since {newday} and {newmonth} require // the data to be in a variable named "post" it may not // function at all. // // We'll leave it here for now. /* check if new day - used by block.newday.php */ if (date('Ymd', $ar['posts'][$key]['posttime']) != $lastdate) { $ar['posts'][$key]['newday'] = TRUE; } $lastdate = date('Ymd', $ar['posts'][$key]['posttime']); /* check if new month - use by block.newmonth.php */ if (date('Fy', $ar['posts'][$key]['posttime']) != $lastmonth) { $ar['posts'][$key]['newmonth'] = TRUE; } $lastmonth = date('Fy', $ar['posts'][$key]['posttime']); } $bBlog->assign($params['assign'], $ar['posts']); return ''; }
/** * * * @param unknown $params * @param unknown $bBlog (reference) * @return unknown */ function smarty_function_getpost($params, &$bBlog) { $ar = array(); // If "assign" is not set... we'll establish a default. if ($params['assign'] == '') { $params['assign'] = 'post'; } if ($params['postid'] == '') { $bBlog->trigger_error('postid is a required parameter'); return ''; } $q = $bBlog->make_post_query(array("postid" => $params['postid'])); $ar['posts'] = $bBlog->get_posts($q); // No posts. if (!is_array($ar['posts'])) { return false; } $ar['posts'][0]['newday'] = 'yes'; $ar['posts'][0]['newmonth'] = 'yes'; $bBlog->assign($params['assign'], $ar['posts'][0]); return ''; }
/** * * * @param unknown $params * @param unknown $bBlog (reference) */ function smarty_function_calendar($params, &$bBlog) { $date = getdate(); $today = $date["mday"]; $month = $date["mon"]; $year = $date["year"]; $new_month = $_GET["month"]; $new_year = $_GET["year"]; if ($new_month && $new_year) { $date = getdate(mktime(0, 0, 0, $new_month, 1, $new_year)); $show_month = $date["mon"]; $show_year = $date["year"]; } else { $show_month = $month; $show_year = $year; } $q = $bBlog->make_post_query(array("where" => " AND month(FROM_UNIXTIME(posttime)) = {$show_month} and year(FROM_UNIXTIME(posttime)) = {$show_year} ", "num" => "999")); $dayindex = array(); global $dayindex; $posts = $bBlog->get_posts($q); if (is_array($posts)) { foreach ($posts as $post) { $d = date('j', $post['posttime']); $dayindex[$d][] = array("id" => $post['post'], "title" => $post['title'], "url" => $bBlog->_get_entry_permalink($post['postid'])); } } $left_year = $right_year = $show_year; $left_month = $show_month - 1; if ($left_month < 1) { $left_month = 12; $left_year--; } $right_month = $show_month + 1; if ($right_month > 12) { $right_month = 1; $right_year++; } $bBlog->assign("left", $_SERVER["PHP_SELF"] . "?month={$left_month}&year={$left_year}"); $bBlog->assign("right", $_SERVER["PHP_SELF"] . "?month={$right_month}&year={$right_year}"); $bBlog->assign("header", strftime("%B %Y", mktime(0, 0, 0, $show_month, 1, $show_year))); $first_date = mktime(0, 0, 0, $show_month, 1, $show_year); $date = getdate($first_date); $first_wday = $date["wday"]; $last_date = mktime(0, 0, 0, $show_month + 1, 0, $show_year); $date = getdate($last_date); $last_day = $date["mday"]; $wday = ""; // echo($params["locale"]); if ($params["locale"]) { @setlocale(LC_TIME, $params["locale"]); } $week_start = $params["week_start"]; if ($week_start < 0 || $week_start > 6) { $week_start = 1; } for ($counter = $week_start; $counter < $week_start + 7; $counter++) { if ($counter > 6) { $wday[] = strftime("%a", mktime(0, 0, 0, 3, $counter - 7, 2004)); } else { $wday[] = strftime("%a", mktime(0, 0, 0, 3, $counter, 2004)); } } $bBlog->assign("wday", $wday); $week_array = ""; $month_array = ""; $pre_counter = $first_wday - $week_start; if ($pre_counter < 0) { $pre_counter += 7; } $day = 1; while (true) { $week_array = ""; for ($counter = 0; $counter < 7; $counter++) { if ($day > $last_day) { $week_array[] = array(0 => false, 1 => " ", 2 => false); } else { if ($pre_counter > 0) { $week_array[] = array(0 => false, 1 => " ", 2 => false); $pre_counter--; } else { getDateLink($day, &$values); $week_array[] = array(0 => $dayindex["{$day}"] ? true : false, 1 => $day, 2 => $day == $today && $month == $show_month && $year == $show_year ? true : false); $day++; } } } $month_array[] = $week_array; if ($day > $last_day) { break; } } $bBlog->assign("month", $month_array); $bBlog->assign("values", $values); $bBlog->display("calendar.html", FALSE); }
/** * * * @param unknown $params * @param unknown $bBlog (reference) * @return unknown */ function smarty_function_getarchiveposts($params, &$bBlog) { $ar = array(); $opt = array(); // If "assign" is not set... we'll establish a default. if ($params['assign'] == '') { $params['assign'] = 'posts'; } // If "archive" is set, order them ASCENDING by posttime. if ($params['archive']) { $opt['order'] = " ORDER BY posttime "; } if (is_numeric($params['num'])) { $opt['num'] = $params['num']; } if (is_numeric($params['year'])) { if (strlen($params['year']) != 4) { $bBlog->trigger_error('getarchiveposts: year parameter requires a 4 digit year'); return ''; } $opt['year'] = $params['year']; } if (is_numeric($params['month'])) { if (strlen($params['month']) != 2) { $bBlog->trigger_error('getarchiveposts: month parameter requires a 2 digit month'); return ''; } $opt['month'] = $params['month']; } if (is_numeric($params['day'])) { if (strlen($params['day']) != 2) { $bBlog->trigger_error('getarchiveposts: day parameter requires a 2 digit day'); return ''; } $opt['day'] = $params['day']; } if (is_numeric($params['hour'])) { if (strlen($params['hour']) != 2) { $bBlog->trigger_error('getarchiveposts: hour parameter requires a 2 digit hour'); return ''; } $opt['hour'] = $params['hour']; } if (is_numeric($params['minute'])) { if (strlen($params['minute']) != 2) { $bBlog->trigger_error('getarchiveposts: minute parameter requires a 2 digit minute'); return ''; } $opt['minute'] = $params['minute']; } if (is_numeric($params['second'])) { if (strlen($params['second']) != 2) { $bBlog->trigger_error('getarchiveposts: second parameter requires a 2 digit second'); return ''; } $opt['second'] = $params['second']; } if ($params['section'] != '') { $opt['sectionid'] = $bBlog->sect_by_name[$params['section']]; } $q = $bBlog->make_post_query($opt); $ar['posts'] = $bBlog->get_posts($q); // No posts. if (!is_array($ar['posts'])) { return ''; } $lastmonth = ''; $lastdate = ''; foreach ($ar['posts'] as $key => $value) { // It seems silly to do this. Especially since, // this kind of check can be done in Smarty template. // Additionally, since {newday} and {newmonth} require // the data to be in a variable named "post" it may not // function at all. // // We'll leave it here for now. if (date('Fy', $ar['posts'][$key]['posttime']) != $lastmonth) { $ar['posts'][$key]['newmonth'] = 'yes'; } $lastmonth = date('Fy', $ar['posts'][$key]['posttime']); if (date('Ymd', $ar['posts'][$key]['posttime']) != $lastdate) { $ar['posts'][$key]['newday'] = 'yes'; } $lastdate = date('Ymd', $ar['posts'][$key]['posttime']); } $bBlog->assign($params['assign'], $ar['posts']); return ''; }
/** * * * @param unknown $params * @param unknown $bBlog (reference) * @return unknown */ function smarty_function_recentposts($params, &$bBlog) { $num = 5; $mode = "br"; $sep = "<br />"; $titlelen = 30; $skip = 0; $linkcode = ''; if (isset($params['sep'])) { $sep = $params['sep']; } if (isset($params['num'])) { $num = $params['num']; } if (isset($params['mode'])) { $mode = $params['mode']; } if (isset($params['skip'])) { $skip = $params['skip']; } if (isset($params['titlelen'])) { $titlelen = $params['titlelen']; } $q = $bBlog->make_post_query(array("num" => $num, "skip" => $skip)); $posts = $bBlog->get_posts($q); if ($mode == "list") { $linkcode .= "<ul>"; } $i = 0; if (is_array($posts)) { /* <a([^<]*)?href=(\"|')?([a-zA-Z]*://[a-zA-Z0-9]*\.[a-zA-Z0-9]*\.[a-zA-Z]*([^>]*)?)(\"|')?([^>]*)?>([^<]*)</a> */ // This should match any protocol, any port, any URL, any title. URL's like www.yest.com are supported, and should be treated as HTTP by browsers. $regex = "#<a([^<]*)?href=(\"|')?(([a-zA-Z]*://)?[a-zA-Z0-9]*\\.[a-zA-Z0-9]*\\.[a-zA-Z]*(:[0-9]*)?([^>\"\\']*)?)(\"|')?([^>]*)?>([^<]*)</a>#i"; foreach ($posts as $post) { $title = $post["title"]; $fulltitle = $title; //wont be cut off if (preg_match($regex, $title, $matches) == 1) { $title = $matches[9]; } $i++; if ($mode == "list") { $linkcode .= "<li>"; } // we using arrays in the template and objects in the core.. $url = $post['permalink']; $title = truncate($title, $titlelen, '...', FALSE); $linkcode .= "<a href='{$url}' title='{$fulltitle}'>{$title}</a>"; if ($mode == "br" && $num > $i) { $linkcode .= $sep; } if ($mode == "list") { $linkcode .= "</li>"; } } } if ($mode == "list") { $linkcode .= "</ul>"; } return $linkcode; }
/** * * * @param unknown $params * @param unknown $bBlog (reference) * @return unknown */ function smarty_function_getposts($params, &$bBlog) { $ar = array(); $opt = array(); if (is_numeric($params['postid']) && $params['postid'] > 0) { $postid = $params['postid']; } else { $postid = FALSE; } // If "assign" is not set... we'll establish a default. if ($params['assign'] == '') { if ($postid) { $params['assign'] = 'post'; } else { $params['assign'] = 'posts'; } } if ($postid) { //we've been given a post id so we'll just get it and get outta here. $q = $bBlog->make_post_query(array("postid" => $params['postid'])); $ar['posts'] = $bBlog->get_posts($q); // No post. if (!is_array($ar['posts'])) { return false; } $ar['posts'][0]['newday'] = 'yes'; $ar['posts'][0]['newmonth'] = 'yes'; $bBlog->assign($params['assign'], $ar['posts'][0]); return ''; // so if postid is given this is the last line processed } // If "archive" is set, order them ASCENDING by posttime. if ($params['archive']) { $opt['order'] = " ORDER BY posttime "; } // If num is set, we'll only get that many results in return if (is_numeric($params['num'])) { $opt['num'] = $params['num']; } // If skip is set, we'll skip that many results if (is_numeric($params['skip'])) { $opt['skip'] = $params['skip']; } if ($params['section'] != '') { $opt['sectionid'] = $bBlog->sect_by_name[$params['section']]; } if ($bBlog->show_section) { $opt['sectionid'] = $bBlog->show_section; } if (is_numeric($params['year'])) { if (strlen($params['year']) != 4) { $bBlog->trigger_error('getposts: year parameter requires a 4 digit month'); return ''; } $opt['year'] = $params['year']; } if (is_numeric($params['month'])) { if (strlen($params['month']) != 2) { $bBlog->trigger_error('getposts: month parameter requires a 2 digit month'); return ''; } $opt['month'] = $params['month']; } if (is_numeric($params['day'])) { if (strlen($params['day']) != 2) { $bBlog->trigger_error('getposts: day parameter requires a 2 digit day'); return ''; } $opt['day'] = $params['day']; } if (is_numeric($params['hour'])) { if (strlen($params['hour']) != 2) { $bBlog->trigger_error('getposts: hour parameter requires a 2 digit hour'); return ''; } $opt['hour'] = $params['hour']; } if (is_numeric($params['minute'])) { if (strlen($params['minute']) != 2) { $bBlog->trigger_error('getposts: minute parameter requires a 2 digit minute'); return ''; } $opt['minute'] = $params['minute']; } if (is_numeric($params['second'])) { if (strlen($params['second']) != 2) { $bBlog->trigger_error('getposts: second parameter requires a 2 digit second'); return ''; } $opt['second'] = $params['second']; } $opt['home'] = $params['home']; $q = $bBlog->make_post_query($opt); $ar['posts'] = $bBlog->get_posts($q); // No posts. if (!is_array($ar['posts'])) { return ''; } $lastmonth = 0; $lastdate = 0; foreach ($ar['posts'] as $key => $value) { /* check if new day - used by block.newday.php */ if (date('Ymd', $ar['posts'][$key]['posttime']) != $lastdate) { $ar['posts'][$key]['newday'] = TRUE; } $lastdate = date('Ymd', $ar['posts'][$key]['posttime']); /* check if new month - use by block.newmonth.php */ if (date('Fy', $ar['posts'][$key]['posttime']) != $lastmonth) { $ar['posts'][$key]['newmonth'] = TRUE; } $lastmonth = date('Fy', $ar['posts'][$key]['posttime']); } $bBlog->assign($params['assign'], $ar['posts']); return ''; }
/** * * * @param unknown $bBlog (reference) */ function admin_plugin_sections_run(&$bBlog) { // Again, the plugin API needs work. if (isset($_GET['sectdo'])) { $sectdo = $_GET['sectdo']; } elseif (isset($_POST['sectdo'])) { $sectdo = $_POST['sectdo']; } else { $sectdo = ''; } switch ($sectdo) { case 'new': // sections are being editied $bBlog->query("insert into " . T_SECTIONS . "\n\t\t\tset nicename='" . my_addslashes($_POST['nicename']) . "',\n\t\t\tname='" . my_addslashes($_POST['urlname']) . "'"); $insid = $bBlog->insert_id; $bBlog->get_sections(); // update the section cache break; case "Delete": // delete section // have to remove all references to the section in the posts $sect_id = $bBlog->sect_by_name[$_POST['sname']]; if ($sect_id > 0) { // $posts_in_section_q = $bBlog->make_post_query(array("sectionid" => $sect_id)); $posts_in_section = $bBlog->get_posts($posts_in_section_q, TRUE); if ($posts_in_section) { foreach ($posts_in_section as $post) { unset($tmpr); $tmpr = array(); $tmpsections = explode(":", $post->sections); foreach ($tmpsections as $tmpsection) { if ($tmpsection != $sect_id) { $tmpr[] = $tmpsection; } } $newsects = implode(":", $tmpr); // update the posts to remove the section $bBlog->query("update " . T_POSTS . " set sections='{$newsects}'\n \twhere postid='{$post->postid}'"); } // end foreach ($post_in_section as $post) } // end if($posts_in_section) // delete the section //$bBlog->get_results("delete from ".T_SECTIONS." where sectionid='$sect_id'"); $bBlog->query("delete from " . T_SECTIONS . " where sectionid='{$sect_id}'"); //echo "delete from ".T_SECTIONS." where sectionid='$sect_id'"; $bBlog->get_sections(); //$bBlog->debugging=TRUE; } // else show error // else show error case "Save": $sect_id = $bBlog->sect_by_name[$_POST['sname']]; if ($sect_id < 1) { break; } $bBlog->query("update " . T_SECTIONS . " set nicename='" . my_addslashes($_POST['nicename']) . "'\n where sectionid='{$sect_id}'"); $bBlog->get_sections(); // update section cache break; default: // show form break; } $bBlog->assign('esections', $bBlog->sections); }