<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] #1.1 sp_文章及模板 ## sp_content_page() > X1.0新增 ```php sp_content_page($content,$pagetpl') ``` 功能: 對文本內容進行分頁處理,返回當前頁的內容,和分頁html。 參數: `$content`:要處理的文本內容;里面含有百度編輯器的分頁標記; `$pagetpl`:分頁模板;默認值{first}{prev}{list}{next}{last} 返回: 類型數組 ```php array( "content"=>"",//當前頁內容 "page"=>""產生的分頁html ); ``` ## sp_getcontent_imgs() 示例: ```php <?php $content='html格式內容'; $imgs=sp_getcontent_imgs($content); //獲取內容中圖片信息 print_r($imginfo); ?> ``` 返回字段說明: `title`:圖片的title屬性 `alt`:圖片的alt屬性 `src`:圖片的資源路徑 ## sp_get_theme_path() > X1.1新增 ```php sp_get_theme_path() ``` 功能: 獲取當前模板的地址 參數: 無 返回: 類型string 當前模板的地址,如當前模板是`simplebootx`,則返回`/tpl/simplebootx/` #1.2 sp_菜單 ## sp_get_menu() 模板中用法: ```html <php> $effected_id="menu-header"; $filetpl="<a href='\$href' target='\$target'>\$label</a>"; $foldertpl="<a class='dropdown-toggle' href='\$href' target='\$target'>\$label</a>"; $ul_class="dropdown-menu" ;/*內部ul標簽的class屬性值*/ $li_class="" ;/*內部li標簽的class屬性值*/ $style="nav";/*最外層ul標簽的class屬性值*/ $showlevel=6;/*顯示的層級*/ $dropdown='dropdown';/*含有子目錄的li標簽的class屬性值*/ </php> {:sp_get_menu("main",$effected_id,$filetpl,$foldertpl,$ul_class,$li_class,$style,$showlevel,$dropdown)} ``` ```html <!--生成的代碼如下:--> <ul class="nav"> <li class="active" id="menu-item-1"><a href="/" target="">首頁</a></li> <li class="" id="menu-item-11"><a href="" target="">產品與服務</a></li> <li class="dropdown" id="menu-item-12"> <a class="dropdown-toggle" href="" target="">企業新聞</a> <ul class="dropdown-menu"> <li class="" id="menu-item-11"> <a href="" target="">產品與服務</a> </li> </ul> </li> </ul> ``` ## sp_get_relative_url() > X1.0新增 ```php sp_get_relative_url($url) ``` 功能: 獲取域名后的地址,如 http://dakaifa.net/news.html ,轉化后為/news.html 參數: `$url`:要轉化的url 返回: 類型string; 域名后的地址,如 http://dakaifa.net/news.html,轉化后為/news.html #1.3 sp_文件圖片緩存 ## sp_asset_relative_url() > V1.1.1新增 ```php <?php $file='/data/upload/1.png';//文件路徑 $path=sp_get_asset_upload_path($file);//轉化 echo $path;//輸出數據庫保存的文件路徑(都是相對于data/upload文件夾的),結果為1.png ``` ## sp_clear_cache() ```php <?php sp_clear_cache();//無返回值 ?> ``` ## sp_file_write() > V1.1.1新增 ```php <?php $file='./data/upload/1.png'; $content=""; $path=sp_file_write($file,$content);// echo $path;//輸出 ?> ``` ## sp_get_asset_upload_path 暫無 #1.4 sp_評論 ## sp_get_comments() > X1.2新增 ```php sp_get_comments($tag,$where); ``` 功能: 獲取評論; 參數: `$tag`:查詢標簽,默認:field:\*;limit:0,5;order:createtime desc; `$where`:查詢where數組,按照thinkphp where array格式; 返回: 數組,評論 ## Comments() > V1.1.1新增 模板中使用 ```php {:Comments("posts",$object_id)} <!-- 評論文章表里的某個ID為$object_id的文章--> ``` #1.5 sp_用戶密碼 ## sp_check_user_action() > X1.1新增 ```php sp_check_user_action($object,$count_limit,$ip_limit,$expire) ``` **功能: ** 檢查用戶對某個url,內容的可訪問性,用于記錄如是否贊過,是否訪問過等等;開發者可以自由控制,對于沒有必要做的檢查可以不做,以減少服務器壓力 **參數說明:** `$object`: 訪問對象的id,格式:不帶前綴的表名+id;如posts1表示xx_posts表里id為1的記錄;如果object為空,表示只檢查對某個url訪問的合法性 `$count_limit`: 訪問次數限制,如1,表示只能訪問一次 `$ip_limit`: ip限制,false為不限制,true為限制 `$expire`: 距離上次訪問的最小時間單位s,0表示不限制,大于0表示最后訪問$expire秒后才可以訪問 返回: `true`可訪問,`false`不可訪問 ##sp_get_current_admin_id() > X1.4.0新增 ```php sp_get_current_admin_id() ``` 功能: 獲取當前登錄管理員id,同get_current_admin_id() 參數: 無 返回: 類型int ## sp_get_current_user() ```php sp_get_current_user() ``` 功能: 獲取當前登錄的用戶,包括users表里詳細信息; 參數: 無 返回: 數組,用戶包括users表里詳細信息 ## sp_get_current_userid() ```php sp_get_current_userid() ``` 功能: 獲取當前登錄的用戶id 參數: 無 返回: int,當前登錄的用戶id,如果未登錄返回0 ## sp_get_users() > X1.2新增 ```php sp_get_users($tag,$where) ``` 功能: 獲取符合條件的用戶; 參數: `$tag`:查詢標簽,默認:field:\*;limit:0,8;order:create_time desc; `$where`:查詢where數組,按照thinkphp where array格式; 返回: 數組,符合條件的用戶 ## sp_is_user_login() X1.0新增 sp_is_user_login() 功能: 判斷用戶是否已經登錄 參數: 無 返回: 類型布爾 true/false ## sp_password() ```php <?php $pw='simplewind'; $afpw=sp_password($pw);//加密字符串 echo $afpw;//輸出加密后的字符串 ?> ``` ##sp_update_current_user() > X1.0新增 ```php sp_update_current_user($user) ``` 功能: 更新session里當前登錄用戶的信息 參數: `$user`:當前登錄用戶的最新信息 返回: 無 #1.6 sp_用戶收藏 ## sp_get_favorite_key() > X1.0新增 ```php sp_get_favorite_key($table,$object_id) ``` 功能: 用于生成收藏內容用的安全key,收藏時必用 參數: `$table`:收藏內容所在表,不帶表前綴 `$object_id`:收藏內容的id 返回: 類型string,收藏內容用的安全key #1.7 sp_幻燈管理 ## sp_getslide() 示例: ```php <?php> $slides=sp_getslide('top_slide'); //top_slide是你在后臺創建的幻燈片標識 print_r($slides); //打印出獲取的結果 ?> ``` 模板中用法: ```html <php> $slides=sp_getslide('top_slide'); print_r($slides); </php> <foreach name="slides" item="vo"> <!--{$vo.slide_id}幻燈片id--> <!--{$vo.slide_cid}幻燈片分類id,對應于slide_cat表里的cid--> <!--{$vo.slide_name}幻燈片名稱--> <!--{$vo.slide_pic}幻燈片圖片路徑相對于upload文件夾/data/upload/--> <!--{$vo.slide_url}幻燈片鏈接地址--> <!--{$vo.slide_des}幻燈片描述--> <!--{$vo.slide_content}幻燈片內容--> <a href="{$vo.slide_url}" target="_blank" title="{$vo.slide_content}"> <img src="/data/upload/{$vo.slide_pic}"/> </a> </foreach> ``` #1.8 sp_廣告管理 ## sp_getad() 示例: ```php <?php $ad_name='top_ad'; $ad_content=sp_getad('top_ad'); //獲取廣告內容 echo $ad_content; ``` 模板中用法: ```html <div> {:sp_getad('top_ad')} <!--top_ad是后臺設置的廣告名稱--> </div> ``` #1.9 sp_友情鏈接管理 ## sp_getlinks() 示例: ```php <?php $links=sp_getlinks(); /*獲取友情鏈接*/ print_r($links); /*打印出獲取的結果*/ ``` 模板中用法: ```html <php> $links=sp_getlinks(); </php> <foreach name="links" item="vo"> {$vo.link_name} <!--鏈接名稱--> {$vo.link_url} <!--鏈接地址--> {$vo.link_target} <!--打開方式--> {$vo.link_description} <!--描述--> /*常見用法*/ <a href="{$vo.link_url}" target="{$vo.link_target}"> {$vo.link_name} </a> </foreach> ``` #1.10 sp_鉤子插件 ## hook() > X1.4.0新增 ```php hook($hook,$param) ``` 功能: 在模板里添加鉤子 參數: `$hook`:鉤子名稱 `$param`:傳入參數,默認為空數組 返回: 無 模板使用: ```php {:hook('footer')} {:hook('sider',array('text'=>'hello ThinkCMF')} ``` ## sp_get_plugin_config() > X1.4.0新增 ```php sp_get_plugin_config($name) ``` 功能: 獲取插件的配置 參數: `$name`:插件名 返回: 類型數組,發送狀態和信息 ## sp_plugin_url() > X1.4.0新增 ```php sp_plugin_url($url,$param,$domain) ``` 功能: 生成訪問插件的url 參數: `$url`: url 格式:插件名://控制器名/方法 `$param`:額外參數,默認為空數組 `$domain`:是否添加域名,默認false 返回: 類型url 模板使用: ```php {:sp_plugin_url('Demo://Index/index',array('id'=>2),true)} {:sp_plugin_url('Demo://List/index',array('id'=>2))} ``` #1.11 sp_郵件 ## sp_send_email() > X1.0新增 ```php sp_send_email($address,$subject,$message) ``` 功能: 發送郵件 參數: `$address`:收件人地址 `$subject`:郵件主題 `$message`:郵件內容 返回: 類型數組,發送狀態和信息 ```php array( "error"=>"1",//有錯誤 "message"=>""錯誤信息 ); array( "error"=>"0",//成功發送,無錯誤 ); ``` #1.12 sp_系統安全加密驗證碼 ## leuu()/UU() UU和leuu是ThinkCMF X1.2增加有url美化方法,兩個用法完全一樣,UU就是leuu的別名; 用法和U方法一樣;對于需要美化的url要用到這個方法; leuu方法的定義規則如下(方括號內參數根據實際應用決定): ```php leuu('地址表達式',['參數'],['偽靜態后綴'],['顯示域名']) ``` 地址表達式的格式定義如下: ```php [應用/控制器/操作#錨點@域名]?參數1=值1&參數2=值2... leuu('portal/list/index',array('id'=>1)) ``` leuu方法要配置后臺設置的url規則才能完成url的美化;如果沒有相應規則,則和U方法生成的url一樣; url的美化規則寫法: 進入ThinkCMF后臺 后臺 設置->網站信息->URL美化 原始網址規則:應用名(小寫)/控制器名/操作名?參數 如:portal/list/index?id=1 顯示網址:英文字母加數字,不帶后綴; 列出常用的優化方案: ``` portal/list/index?id=1 news http://demo.thinkcmf.com/news.html portal/list/index?id=2 discovery http://demo.thinkcmf.com/discovery.html portal/page/index?id=2 contacts http://demo.thinkcmf.com/contacts.html portal/page/index?id=14 about http://demo.thinkcmf.com/about.html portal/article/index article/:id\d http://demo.thinkcmf.com/article/1.html portal/list/index list/:id\d http://demo.thinkcmf.com/list/1.html ``` ![](image/57a977b1af477.png) ## sp_get_cmf_settings() > X1.2新增 ```php sp_get_cmf_settings($key); ``` 功能: 獲取cmf的設置;如果key為空則返回所有設置,如果key不為空,則返回相應key的設置 參數: `$key`:默認為空,設置的key 返回: 如果key為空則返回所有設置,如果key不為空,則返回相應key的設置 ## sp_auth_check() > X1.5.0新增 ```php sp_auth_check($uid,$name=null,$relation='or') ``` 功能: 檢查權限 參數: `$uid`: 當前登錄用戶或者管理員的id `$name`:需要驗證的規則列表,支持逗號分隔的權限規則或索引數組,默認為當前url `$relation`:如果為 'or' 表示滿足任一條規則即通過驗證;如果為 'and'則表示需滿足所有規則才能通過驗證 返回: 類型boolean 通過驗證返回true;失敗返回false 使用: ```php sp_auth_check(2); sp_auth_check(2,'admin/ad/index'); sp_auth_check(2,array('admin/ad/index')); sp_auth_check(2,'admin/ad/index,admin/ad/add','and'); ``` ## sp_authcode() > V1.1.1新增 ```php <?php $string='1324123i412qewrwerqwe'; $string=sp_authcode($string);//解密字符串 echo $string;//輸出解密后的字符串 ?> ``` ## sp_authencode() > V1.1.1新增 ```php <?php $string='666666'; $string=sp_authencode($string);//加密字符串 echo $string;//輸出加密后的字符串 ?> ``` ## sp_get_host() > X1.0新增 ```php sp_get_host() ``` 功能: 返回帶協議的域名 參數: 無 返回: 類型string 帶協議的域名,如 http://www.baidu.com ## sp_check_verify_code() > X1.6.0新增 ```php sp_check_verify_code() ``` 功能: 驗證碼檢查,驗證完后銷毀驗證碼增加安全性 參數: 無 返回: 類型boolean true|false; 使用: ```php <?php if(!sp_check_verify_code()){ echo '驗證碼不正確'; } ``` > 注:表單提交時驗證碼name為verify;支持POST和GET方法 ## sp_verifycode_img() 示例: ```php <?php $img=sp_verifycode_img();//不傳入參數,全部使用默認值 echo $img; $img=sp_verifycode_img('code_len=4&font_size=20&width=238','title="點擊獲取"'); //傳入參數 echo $img; ?> ``` ```html {:sp_verifycode_img()} 參數1: $style ='code_len=4&font_size=15&width=100&height=35&charset=1234567890'; code_len 字符長度 font_size 字體大小 width 生成圖片寬度 heigh 生成圖片高度 charset 要顯示的字符集 ``` > 注:此函數僅生成img標簽,應該配合在表單加入name=verify的input標簽 #1.13 sp_面包屑函數 ## sp_get_path_list >面包屑-列表頁及文章頁路徑 ``` //面包屑-列表頁及文章頁路徑 function sp_get_path_list($cid, $title=""){ $term = sp_get_term($cid); $html="<ul class=\"breadcrumb\" style=\"background:none;\"> <li>你所在的位置:<a href=\"__ROOT__\">首頁</a> </li>"; $parent = sp_get_term($term['parent']); if($parent){ $url=UU('portal/list/index',array(id=>$term['parent'])); $html.="<li><a href=\"$url\">${parent['name']}</a> </li>"; } if(empty($title)){ $html.="<li class=\"active\">${term['name']}</li></ul>"; }else{ $url=UU('portal/list/index',array(id=>$cid)); $html.="<li><a href=\"$url\">${term['name']}</a></li>"; $html.="<li class=\"active\">$title</li></ul>"; } echo $html; } ``` **用法:** 1、列表頁中{:sp_get_path_list($cat_id)} 2、文章頁中{:sp_get_path_list($term['term_id'], $post_title)} **模板快速使用方法:** 在模板中輸入 `tcpos` 會智能提示 1、在列表頁中輸入 `tcpos_list` 2、在內容頁中輸入 `tcpos_tcpos_article` ![](image/57c91ab399bc1.png) ## sp_get_path_page >面包屑-列表頁及文章頁路徑 ``` //面包屑-單頁面路徑 function sp_get_path_page($id){ $page=sp_sql_page($id); $html="<ul class=\"breadcrumb\" style=\"background:none;\"> <li>你所在的位置:<a href=\"__ROOT__\">首頁</a></li>"; if($page){ $title = $page['post_title']; $html.="<li class=\"active\">$title</li>"; } $html.="</ul>"; echo $html; } ``` **用法:** 在單頁面中 {:sp_get_path_page($id)} **模板快速使用方法:** 在單頁中輸入 `tcpost_page`,如圖所示: ![](image/57c91b6ab8d2a.png) **實現結果如圖所示:** ![](image/57c91b9c397f0.png) #1.11 sp_其他 ## sp_set_dynamic_config() > V1.1.1新增 ```php <?php $data=array("URL_HTML_SUFFIX"=>".html"); $result=sp_set_dynamic_config($data); ?> ``` ## sp_random_string() ```php <?php $random=sp_random_string();//不指定位數,默認為6位 echo $random; //或者 $random=sp_random_string(8);//指定返回8位隨機字符串 echo $random; ?> ``` ## sp_is_mobile() > 1.4.0新增 ```php sp_is_mobile() ``` 功能: 判斷是不是手機 參數: 無 返回: 類型boolean true/false ## sp_param_lable() ```php <?php $result=sp_param_lable('id:2;cat:home'); print_r($result); ?> ``` ## sp_is_sae() > X1.5.0新增 ```php sp_is_sae() ``` 功能: 判斷是否為SAE 參數: 無 返回: 類型boolean true|false 使用: ```php $is_sae=sp_is_sae(); ``` # 2.1 sp_門戶 ## sp_get_child_terms() ```php sp_get_child_terms($term_id) ``` 功能: 返回指定分類下的子分類 參數: `$term_id`:分類id 返回: 類型數組,指定分類下的子分類 示例: ```php <?php $term_id=1; $terms=sp_get_child_terms($term_id ); //獲取子分類信息 print_r($terms); //打印出子分類信息 ?> ``` 返回數組item說明: `term_id`:分類id `name`:分類名稱 `taxonomy`:分類的類型,用字符串表示,article表示文章 `description`:分類描述 `parent`:分類父級id,terms表中的term_id `seo_title` `seo_keywords` `seo_description` `list_tpl`:分類列表頁的模板,對應于模板目錄下Portal/文件名+.html,文件名默認為list `one_tpl`: 分類單文章頁的模板,對應于模板目錄下Portal/文件名+.html,文件名默認為article 模板中用法: ```php <php> $term_id=1; $terms=sp_get_child_terms($term_id ); //獲取子分類信息 </php> <foreach name="terms" item="vo"> {$vo.name}<!--打印出分類名稱 --> </foreach> ``` ## sp_get_child_terms_num() ```php sp_get_child_terms_num($term_id,$num) ``` 功能: 返回指定分類下的子分類 參數: `$term_id`:分類id `$num`:分類的數量 返回: 類型數組,指定分類下的子分類的數量。這個較前一個多了一個數量! 示例: ```php <?php $term_id=1; $num = 10; $terms=sp_get_child_terms($term_id,$num ); //獲取子分類信息 print_r($terms); //打印出子分類信息 ?> ``` 返回數組item說明: `term_id`:分類id `name`:分類名稱 `taxonomy`:分類的類型,用字符串表示,article表示文章 `description`:分類描述 `parent`:分類父級id,terms表中的term_id `seo_title` `seo_keywords` `seo_description` `list_tpl`:分類列表頁的模板,對應于模板目錄下Portal/文件名+.html,文件名默認為list `one_tpl`: 分類單文章頁的模板,對應于模板目錄下Portal/文件名+.html,文件名默認為article 模板中用法: ```php <php> $term_id=1; $terms=sp_get_child_terms($term_id ); //獲取子分類信息 </php> <foreach name="terms" item="vo"> {$vo.name}<!--打印出分類名稱 --> </foreach> ``` ## sp_get_term() ```php sp_get_term($term_id) ``` 功能: 返回指定分類 參數: `$term_id`:分類id 返回: 類型數組,符合條件的分類 示例: ```php <?php $term_id=1; $term=sp_get_term($term_id ); //獲取分類信息 print_r($term); //打印出分類信息 ?> ``` 返回數組說明: `term_id`:分類id `name`:分類名稱 `taxonomy`:分類的類型,用字符串表示,article表示文章 `description`: 分類描述 `parent`:分類父級id,terms表中的term_id `seo_title` `seo_keywords` `seo_description` `list_tpl`:分類列表頁的模板,對應于模板目錄下Portal/文件名+.html,文件名默認為list `one_tpl`:分類單文章頁的模板,對應于模板目錄下Portal/文件名+.html,文件名默認為article ## sp_get_terms() ```php sp_get_terms($tag) ``` 功能: 返回符合條件的所有分類 參數: `$tag`:查詢標簽,以字符串方式傳入,例:"ids:1,2;field:term_id,name,description,seo_title;limit:0,8;order:path asc,listorder desc;where:term_id>0;" ``` ids:調用指定id的一個或多個數據,如 1,2,3 field:調用terms表里的指定字段,如(term_id,name...) 默認全部,用*代表全部 limit:數據條數,默認值為10,可以指定從第幾條開始,如3,8(表示共調用8條,從第3條開始) order:排序方式,如:path desc,listorder asc; where:查詢條件,字符串形式,和sql語句一樣 ``` 返回: 類型數組,符合條件的所有分類 示例: ```html <php> $tag='ids:1,2;field:post_date,post_content;limit:10;order:post_date DESC;'; /* $tag規則:ids分類id,以逗號隔開;field需要取出的內容,默認取出所有信息;order排序方式,可根據任何取出的字段排序,默認為按發布時間排序。 $tag這是一個格式化的字符串,這種方式最大的好處就是方便日后擴展,它格式如《field+冒號+field支持的值,以英文逗號隔開+分號》 */ /*關于此函數的field: .它的可選值是: term_id 分類id name 分類名稱 taxonomy 分類的類型,用字符串表示,article表示文章 description 分類描述 parent 分類父級id,terms表中的term_id path 用于無限級分類的path,如0-1-29 seo_title seo_keywords seo_description list_tpl 分類列表頁的模板,對應于模板目錄下Portal/文件名+.html,文件名默認為list one_tpl 分類單文章頁的模板,對應于模板目錄下Portal/文件名+.html,文件名默認為article listorder 分類排序 status 分類狀態0已回收,1正常 */ $terms=sp_get_terms($tag); </php> <foreach name="terms" item="vo"> {$vo.name }<br> {$vo.taxonomy }<br> {$vo.seo_title }<br> {$vo.seo_keywords }<br> {$vo.seo_description}<br> </foreach> ``` ## sp_sql_page() ```php sp_sql_page($id) ``` 功能: 獲取指定id的頁面 參數: `$id`:頁面的id 返回: 類型數組,符合條件的頁面 示例: ```php <?php $ID=1000; // $page=sp_sql_page($ID); print_r($page); ``` ## sp_sql_post() 示例: ```php <?php $tid=1000; //文章tid $posts=sp_sql_post($tid,'field:post_title,post_content;'); print_r($posts); //field 的可選參數已在sp_sql_posts()中說明 //smeta 處理方法已在sp_sql_posts()中說明 ?> ``` ## sp_sql_posts() ```php sp_sql_posts($tag,$where) ``` 功能: 查詢文章列表,不做分頁 參數: `$tag`:查詢語句(見$tag規則) `$where`:查詢條件,(暫只支持數組),格式和thinkphp where方法一樣; 返回: array 文章列表 示例: ```php <?php $tag='cid:6;field:post_title,post_content;order:listorder asc'; $posts=sp_sql_posts($tag); print_r($posts); $smeta=json_decode($vo['smeta'],true); //smeta處理方法,將其轉化為數組 ?> ``` `$tag`規則: cid 分類id; field 需要取出的內容,默認取出所有信息;order排序方式,可根據任何取出的字段排序,默認為按發布時間排序。 ``` field可選參數: term_id 文章分類id post_author 文章作者id,后臺管理員,對應于表users里的ID; post_keywords post_date 文章發布日期 格式2014-01-01 00:00:00 post_content 文章內容 post_title 文章標題 post_excerpt 文章摘要 post_modified 文章更新日期 格式2014-01-01 00:00:00 smeta 文章擴展屬性,以json格式保存,如屬性thumb文章縮略圖 user_nicename 管理員昵稱 user_email 管理員郵箱 ``` 模板中用法: ```html <php> $posts=sp_sql_posts('cid:6;field:post_title,post_content;order:listorder asc'); </php> <foreach name="posts" item="vo"> /* 遍歷數組 */ {$vo.term_id }<br> {$vo.post_author }<br> {$vo.post_keywords }<br> {$vo.post_date }<br> {$vo.post_content }<br> {$vo.post_title }<br> {$vo.post_excerpt }<br> {$vo.post_modified}<br> {$vo.user_nicename }<br> {$vo.user_email }<br> <php> $smeta=json_decode($vo['smeta'],true);/* 把smeta轉化成數組 */ </php> <img src="{:sp_get_asset_upload_path($smeta['thumb'])}"/> </foreach> ``` ## sp_sql_posts_bycatid() > X1.2新增 ```php sp_sql_posts_bycatid($cid,$tag,$where) ``` 功能: 根據分類文章分類ID 獲取該分類下所有文章(包含子分類中文章),調用方式同sp_sql_posts 參數: `$cid`:分類id `$tag`:查詢標簽,以字符串方式傳入,例:"order:post_date desc,listorder desc;"field:調用post指定字段,如(id,post_title...) 默認全部 ;limit:數據條數,默認值為10,可以指定從第幾條開始,如3,8(表示共調用8條,從第3條開始);order:推薦方式(post_date) (desc/asc/rand()) `$where`:按照thinkphp where array格式 返回: 類型數組,符合條件的文章列表 ## sp_sql_posts_paged() ```php sp_sql_posts_paged($tag,$pagesize,$pagetpl) ``` 功能: 文章分頁查詢方法 參數: `$tag`:查詢標簽,以字符串方式傳入,例:"field:post_title,post_content;limit:0,8;order:post_date desc,listorder desc;where:id>0;" ``` field:調用post指定字段,如(id,post_title...) 默認全部 limit:數據條數,默認值為10,可以指定從第幾條開始,如3,8(表示共調用8條,從第3條開始) order:排序方式,如:post_date desc where:查詢條件,字符串形式,和sql語句一樣 $pagesize:每頁顯示文章數 $pagetpl:分頁模板,例:"{first}{prev}{liststart}{list}{listend}{next}{last}" ``` 返回: 類型數組,帶分頁數據的文章列表 示例: ```php <? php $tag='cid:6;field:post_title,post_content;order:listorder asc'; $content=sp_sql_posts_paged($tag); $posts=$content['posts']; $pager=$content['page']; ?> ``` $tag規則: cid 分類id; field 需要取出的內容,默認取出所有信息;order排序方式,可根據任何取出的字段排序,默認為按發布時間排序。 field可選參數: term_id 文章分類id post_author 文章作者id,后臺管理員,對應于表users里的ID; post_keywords post_date 文章發布日期 格式2014-01-01 00:00:00 post_content 文章內容 post_title 文章標題 post_excerpt 文章摘要 post_modified 文章更新日期 格式2014-01-01 00:00:00 smeta 文章擴展屬性,以json格式保存,如屬性thumb文章縮略圖 user_nicename 管理員昵稱 user_email 管理員郵箱 模板中用法: ```html <php> $content=sp_sql_posts_paged('cid:6;field:post_title,post_content;order:listorder asc'); </php> <foreach name="content['posts']" item="vo"> /* 遍歷數組 */ {$vo.term_id }<br> {$vo.post_author }<br> {$vo.post_keywords }<br> {$vo.post_date }<br> {$vo.post_content }<br> {$vo.post_title }<br> {$vo.post_excerpt }<br> {$vo.post_modified}<br> {$vo.user_nicename }<br> {$vo.user_email }<br> <php> $smeta=json_decode($vo['smeta'],true);/* 把smeta轉化成數組 */ </php> <img src="/data/upload/{$smeta.thumb}"/> </foreach> <div>{$content.page}</div><!--分頁--> ``` ##sp_sql_posts_paged_bycatid() > X1.2新增 ```php sp_sql_posts_paged_bycatid($cid,$tag,$pagesize,$pagetpl) ``` 功能: 根據分類文章分類ID 獲取該分類下所有文章(包含子分類中文章),已經分頁,調用方式同sp_sql_posts_paged 參數: ``` `$cid`:分類id `$tag`:查詢標簽,以字符串方式傳入,例:"field:post_title,post_content;limit:0,8;order:post_date desc,listorder desc;where:id>0;" field:調用post指定字段,如(id,post_title...) 默認全部 limit:數據條數,默認值為10,可以指定從第幾條開始,如3,8(表示共調用8條,從第3條開始) order:排序方式,如:post_date desc where:查詢條件,字符串形式,和sql語句一樣 $pagesize:每頁顯示文章數 $pagetpl:分頁模板,例:"{first}{prev}{liststart}{list}{listend}{next}{last}" ``` 返回: 類型數組,符合條件的文章列表,及分頁html ```php array( 'content'=>'',//符合條件的文章列表 'page'=>''//分頁html ) ``` 模板使用方法: ```html <div class="main-title"> <php> $result=sp_sql_posts_paged_bycatid($cat_id,"",20); </php> </div> <volist name="result['posts']" id="vo"> <php> $smeta=json_decode($vo['smeta'], true); </php> <div class="list-boxes"> <h2><a href="{:leuu('article/index',array('id'=>$vo['tid']))}">{$vo.post_title}</a></h2> <p>{$vo.post_excerpt}</p> <div> <div class="pull-left"> <div class="list-actions"> <a href="javascript:;"><i class="fa fa-eye"></i><span>{$vo.post_hits}</span></a> <a href="{:U('article/do_like',array('id'=>$vo['object_id']))}" class="J_count_btn"><i class="fa fa-thumbs-up"></i><span class="count">{$vo.post_like}</span></a> <a href="{:U('user/favorite/do_favorite',array('id'=>$vo['object_id']))}" class="J_favorite_btn" data-title="{$vo.post_title}" data-url="{:U('portal/article/index',array('id'=>$vo['tid']))}" data-key="{:sp_get_favorite_key('posts',$vo['object_id'])}"> <i class="fa fa-star-o"></i> </a> </div> </div> <a class="btn btn-warning pull-right" href="{:leuu('article/index',array('id'=>$vo['tid']))}">查看更多</a> </div> </div> </volist> <div class="pagination"> <ul> {$result['page']} </ul> </div> ``` ##sp_sql_posts_paged_bykeyword() > X1.2新增 ```php sp_sql_posts_paged_bykeyword($keyword,$tag,$pagesize=20,$pagetpl) ``` 功能: 根據分類文章分類ID 獲取該分類下所有文章(包含子分類中文章),已經分頁,調用方式同sp_sql_posts_paged 參數: `$keyword`:查詢關鍵字; `$tag`:查詢標簽,以字符串方式傳入,例:"field:post_title,post_content;limit:0,8;order:post_date desc,listorder desc;where:id>0;" ``` field:調用post指定字段,如(id,post_title...) 默認全部 limit:數據條數,默認值為10,可以指定從第幾條開始,如3,8(表示共調用8條,從第3條開始) order:排序方式,如:post_date desc where:查詢條件,字符串形式,和sql語句一樣 $pagesize:每頁顯示文章數 $pagetpl:分頁模板,例:"{first}{prev}{liststart}{list}{listend}{next}{last}" ``` 返回: 類型數組,符合條件的文章列表,文章總數及分頁html ```php array( 'posts=>'',//符合條件的文章列表 'page'=>'',//分頁html 'count'=>'',//符合條件的文章總數 ) ``` 模板使用方法: ```html <div class="main-title"> <php> $result=sp_sql_posts_paged_bykeyword($keyword,"",20); </php> <h3>'{$keyword}' 搜索結果 </h3> <p>{$result['count']}條結果</p> </div> <volist name="result['posts']" id="vo"> <php> $smeta=json_decode($vo['smeta'], true); </php> <div class="list-boxes"> <h2><a href="{:leuu('article/index',array('id'=>$vo['tid']))}">{$vo.post_title}</a></h2> <p>{$vo.post_excerpt}</p> <div> <div class="pull-left"> <div class="list-actions"> <a href="javascript:;"><i class="fa fa-eye"></i><span>{$vo.post_hits}</span></a> <a href="{:U('article/do_like',array('id'=>$vo['object_id']))}" class="J_count_btn"><i class="fa fa-thumbs-up"></i><span class="count">{$vo.post_like}</span></a> <a href="{:U('user/favorite/do_favorite',array('id'=>$vo['object_id']))}" class="J_favorite_btn" data-title="{$vo.post_title}" data-url="{:U('portal/article/index',array('id'=>$vo['tid']))}" data-key="{:sp_get_favorite_key('posts',$vo['object_id'])}"> <i class="fa fa-star-o"></i> </a> </div> </div> <a class="btn btn-warning pull-right" href="{:leuu('article/index',array('id'=>$vo['tid']))}">查看更多</a> </div> </div> </volist> <div class="pagination"> <ul> {$result['page']} </ul> </div> ``` ## sp_make_tree() 說明:生成無限級樹算法。 ``` /** * 生成無限級樹算法 * @author Baiyu 2014-04-01 * @param array $arr 輸入數組 * @param number $pid 根級的pid * @param string $column_name 列名,id|pid父id的名字|children子數組的鍵名 * @return array $ret */ function sp_make_tree($arr, $pid = 0, $column_name = 'id|pid|children') { list($idname, $pidname, $cldname) = explode('|', $column_name); $ret = array(); foreach ($arr as $k => $v) { if ($v [$pidname] == $pid) { $tmp = $arr [$k]; unset($arr [$k]); $tmp [$cldname] = sp_make_tree($arr, $v [$idname], $column_name); $ret [] = $tmp; } } return $ret; } ``` 函數的使用方法: ``` $output_array = sp_make_tree($original_array); ``` 或者: ``` $output_array = sp_make_tree($original_array,0,'id|pid|children'); ``` 相關處理前的數組與處理后的數組: 如圖是數據庫的源數據: ![](https://box.kancloud.cn/1e91a2b0789d647be1c5fdcfa862ceac_246x168.png) ``` //從數據庫中取出的分類數據 $original_array=array( array( 'id' => 1, 'pid' => 0, 'name' => '新聞分類' ), array( 'id' => 2, 'pid' => 0, 'name' => '最新公告' ), array( 'id' => 3, 'pid' => 1, 'name' => '國內新聞' ), array( 'id' => 4, 'pid' => 1, 'name' => '國際新聞' ), array( 'id' => 5, 'pid' => 0, 'name' => '圖片分類' ), array( 'id' => 6, 'pid' => 5, 'name' => '新聞圖片' ), array( 'id' => 7, 'pid' => 5, 'name' => '其它圖片' ), ), ``` ``` //整理后的分類數據 $output_array = array( array( 'id' => 1, 'pid' => 0, 'name' => '新聞分類', 'children' => array( array( 'id' => 3, 'pid' => 1, 'name' => '國內新聞' ), array( 'id' => 4, 'pid' => 1, 'name' => '國際新聞' ), ), ), array( 'id' => 2, 'pid' => 0, 'name' => '最新公告', ), array( 'id' => 5, 'pid' => 0, 'name' => '圖片分類', 'children' => array( array( 'id' => 6, 'pid' => 5, 'name' => '新聞圖片' ), array( 'id' => 7, 'pid' => 5, 'name' => '其它圖片' ), ), ), ); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看