<?php
///////////////////////////////////////////////////
/// ** 標籤調用函數擴展文件cms.func.xinga.php ** ///
//////////////////////////////////////////////////
/*
  此文件是用來擴展系統調用標籤的函數文件
  請在setting/cms.ini.php中(就是在系統後台的系統函數擴展菜單)的頭部加入以下兩行語句:
  if( file_exists("cms.func.xinga.php") )
	include_once "cms.func.xinga.php";
  然後把cms.func.xinga.php拷貝到系統目錄下的setting這個目錄中
  然後在模板中就可以調用擴展標籤了
*/

//擴展調用函數從此行下開始



/* -----------------------------------------------------------------------------
   TextWater()  文本水印函數    by easyT@2005.02.20

      用途: 在文本字符串中的每一個<br>標籤上加上指定的水印文字
      調用: TextWater($water_text, $water_color, $message)
            $water_text 水印文字
            $water_color 水印文字的前景色,一般和背景色相同
            $message 要加水印的文本字符串
      例子: TextWater('信加公司www.xinga.biz版權所有', '#FFFFFF', $Content)
----------------------------------------------------------------------------- */

function TextWater($water_text, $water_color, $message) {

  if ($water_text=='') $water_text = "貴州信加公司xinga.biz版權所有";  //默認要隱藏加入的水印文字

  $message = str_replace('<br />','<br>',$message);   //先把所有的<br />標籤統一換成<br>標籤
  $message = str_replace('<BR />','<br>',$message);   //把所有的<BR />標籤統一換成<br>標籤
  $message = str_replace('<BR>','<br>',$message);   //先把所有的<BR>標籤統一換成<br>標籤
  $message = str_replace('\n', '<br />', $message);  //把回車符變成<br />標籤

  $hkh_msg_array = explode('<br>', $message);  //按br標籤拆開成數組
  $hkh_msg = '';
  foreach ($hkh_msg_array as $key => $hkh_val) {
    srand((double)microtime()*100000000);   //打亂隨機種子
    $randtext = rand();   //生成一個隨機數
    $hkh_val=str_replace('<br />','\n',$hkh_val);  //拆開字符串後再把<br />標籤全換成回車符

    $em_str='';
    switch ( ($key % 5) ) {
    case 0:
      $em_str = 'span'; break; //裝水印的容器標籤種類
    case 1:
      $em_str = 'em'; break;  //裝水印的容器標籤種類
    case 2:
      $em_str = 'ins'; break;  //裝水印的容器標籤種類
    case 3:
      $em_str = 'strong'; break;  //裝水印的容器標籤種類
    default:
      $em_str = 'font'; break;  //裝水印的容器標籤種類
    }

    if ($water_color == '') {
        $before_str = '<'.$em_str.' style="display:none;">';  //前導串,讓水印標籤不顯示
       }
    else {
        $before_str = '<'.$em_str.' style="color:' . $water_color . ';">';  //前導串,用標籤定義水印前色
    }
    $end_str = '</'.$em_str.'>';  //後導串,結束標籤
    //把拆開的字符串加起來,中間加上水印文字
    $hkh_msg .= $hkh_val.$before_str.$randtext.'?'.$water_text.'?'.$randtext.$end_str.'<br />';
  }

  return $hkh_msg;             //返回加好水印的字符串
}
// -----------------------------------------------------------------------------
// TextWater函數結束






/* -----------------------------------------------------------------------------
   HavePhoto()  獲取指定的內容字段中的圖片地址    by e345@2005.04.17

      用途:  返回傳入的字段(如文章內容$Content)中包含的圖片地址，可以按指定的順序返回
      調用方法一:  HavePhoto($var.content,1);  //返回指定的
      調用方法二:  $photos = HavePhoto($var.content);  //返回所有圖片列表
                  $photos[0] ;//第一張圖片
                  $photos[1] ;//第二張圖片
      例子:  <if HavePhoto($var.Content,1)!="">
                <a href="[@HavePhoto($var.Content,1)]" target=blank>(圖)</a>
              </if> 
----------------------------------------------------------------------------- */
function HavePhoto($photo_content, $which = '') {
    $pattern = "/<img.*src=.*([^\"'].*)[\"']?[\s].*>/isU";
    @preg_match_all($pattern, $photo_content, $out);
    if ($which != '')
      {
        return $out[1][$which-1];
      }
    else
      {
        for($i = 0; $i < sizeof($out[1]); $i++) $photos_data[$i+1] = $out[1][$i];
        return $photos_data;
      }
} 
// -----------------------------------------------------------------------------
// HavePhoto函數結束



// 文件結束
?>