Texpattern Tips:TXP使用技术汇总
关键词: Textpattern,TXP,TXP参考,Texpattern 文章技巧,TXP模板制作
实现对当前Section的内容进行搜索
这里是有关通过 <txp:search_input />
and <txp:article />
两个标签实现搜索的结果为当前Section的内容,而不是全部。比如:当浏览用户在「文档」Section搜索后显示的结果中,并不希望同时让用户看到 「博客」的文章,那么这个方法很适用。
First, you need to point the search input to the current section page, by adding to the <txp:search_input />
the attribute section with the current section name as the value.
Then, in order to display the search results only for that section, you have to add searchall="0"
as attribute for the <txp:article />
tag on that page.
via: textpattern.com/faq/108/how-do-i-search-in-the-current-section-only
自定义页面标题
http://sheshui.me/articles/page-title-custom-for-txp
Textpattern 4.5.0 新版已经发布,果断升级,发现多了全新的界面 Hive 也发现越来越喜欢上这个博客系统了~ 真心好用,而且模板标签真实强大。
下面是一个自定义页面标题的例子,其实也可以使用默认的 <txp:page_title />
<!-- is this the default section? -->
<txp:if_section name=",">
<txp:if_article_list>
<txp:if_search>
<txp:variable name="page-title" value='<txp:text item="search_results" /> <txp:search_term /> | <txp:site_name />' />
<txp:else />
<txp:if_category>
<txp:variable name="page-title" value='<txp:text item="category" /> <txp:category title="1" /> | <txp:site_name />' />
<txp:else />
<txp:if_author>
<txp:variable name="page-title" value='<txp:text item="author" /> <txp:author /> | <txp:site_name />' />
<txp:else />
<txp:variable name="page-title" value='<txp:site_slogan /> | <txp:site_name />' />
</txp:if_author>
</txp:if_category>
</txp:if_search>
<txp:else />
<txp:variable name="page-title" value='<txp:title /> | <txp:site_name />' />
</txp:if_article_list>
<!-- is this not the default section? -->
<txp:else />
<txp:if_article_list>
<txp:variable name="page-title" value='<txp:section title="1" /> | <txp:site_name />' />
<txp:else />
<txp:variable name="page-title" value='<txp:title /> | <txp:site_name />' />
</txp:if_article_list>
</txp:if_section>
<title><txp:variable name="page-title" /></title>
via: Github
使用PHP翻页
英文标题:Textpattern Pagination without any plugin-ins
不使用插件在Textpattern中实现翻页功能
<txp:php>
// Initial setup
global $variable;
$variable["article-limit"] = 10; // Set to whatever you want
$variable["article-count"] = 0;
if(isset($_GET["page"])) { $variable["page"] = $_GET["page"]; }
else { $variable["page"] = 1; }
$variable["offset"] = ($variable["page"]-1)*$variable["article-limit"];
</txp:php>
<txp:article_custom section="whatever sections you'd like" limit="9999" status="4">
<txp:php>
// Count the articles
global $variable;
$variable["article-count"]++;
</txp:php>
</txp:article_custom>
<txp:php>
// Determine the page count
global $variable;
$variable["page-count"] = ceil($variable["article-count"] / $variable["article-limit"]);
</txp:php>
<txp:article_custom section="whatever sections you'd like" pgonly="0" status="4" limit='<txp:variable name="article-limit" />' offset='<txp:variable name="offset" />' />
<txp:php>
// Output pagination
global $variable;
if(($variable["page"]+1) <= $variable["page-count"]) {
echo "<div class=\"older\"><a href=\"?page=". ($variable["page"]+1) ."\">Older articles »</a></div>";
}
if($variable["page"]-1) {
echo "<div class=\"newer\"><a href=\"?page=". ($variable["page"]-1) ."\">« Newer articles</a></div>";
}
</txp:php>
Reference:
- txptips.com/enable-pagination-with-article_custom-article-listings
- forum.textpattern.com/viewtopic.php?id=33821
动态创建页面 Meta 描述
在Textpattern 4.6.0以下版本中为每个独立的科目及文章创建动态的Meta描述(4.6.0+版本 直接使用 <txp:meta_description />
)。
1、进入后台管理菜单: Preferences -> Advanced Preferences
2、找到【自定义字段】
更多参考:sheshui.me/docs/create-textpattern-meta-description-20120418
动态读取作者列表的方法
方法一:
<txp:php>
$authors = safe_rows('Realname, privs', 'txp_users', 'privs > 2');
if ($authors > 1) {
echo '<h3>Our Authors:</h3>'."\r".'<ul>'."\r";
foreach($authors as $key => $value) {
$name = sanitizeForUrl($authors[$key][Realname]);
echo '<li><a href="'.hu.'author/'.$name.'" title="About this author...">'.$authors[$key][Realname].'</a></li>';
}
echo '</ul>'."\r";
}
方法二:
</txp:php>
<txp:article_custom sort="Posted desc ">
<txp:if_variable name='<txp:author title="0" />'>
<txp:hide>seen, do nothing</txp:hide>
<txp:else />
<txp:variable name='<txp:author title="0" />' value="1" />
<txp:author link="1" />
</txp:if_variable>
</txp:article_custom>
参考: http://forum.textpattern.com/viewtopic.php?pid=269155
使用插件
插件安装
进入您的网站后台: www.yourdomain.com/textpattern/index.php?event=plugin
把插件文件里的文本拷贝到这,然后点击上传开始安装. 任何拥有相同名字的插件将会覆盖你先前安装的那个.
你所复制的文本_并非_php_代码, 只是通过base64加密过了的文本, 通常包含了一些间断的有关插件的信息(例如插件的名字,版本和描述,作者名字等等). 通过 插件 获取更多有用信息.
插件资源
1、在文章编辑页面提供可视化图片上传功能,适合配合可视化编辑器一起使用。该插件替换现有的Article image输入图片ID的方式 www.redbot.it/txp/plugin-bot_image_upload
2、 批量上传图片 github.com/jbach/jbx_multiple_image_upload // 此插件需开启浏览器Flash支持。
密码查看
如果版本是4.7.0+ ,则可以使用系统新增的标签 <txp:if_logged_in>
,用法如下所示:
<txp:if_individual_article>
<txp:if_logged_in>
<a href="<txp:site_url type="admin" />?event=article&step=edit&ID=<txp:article_id />">Edit this article</a>
</txp:if_logged_in>
</txp:if_individual_article>
如果版本还不支持该标签,则可以使用第三方脚本 password_protect.php
,以密码保护方式满足业务需要。
这里采用一套PHP密码保护脚本(password_protect.php)实现对前端页面访问权限的控制。
安裝步驟
1、從這裡下載腳本 www.zubrag.com/scripts/password-protect.php
2、解壓得到password_protect.php
3、打開編輯password_protect.php 修改一些參數:
##################################################################
# SETTINGS START
##################################################################
// Add login/password pairs below, like described above
// NOTE: all rows except last must have comma "," at the end of line
$LOGIN_INFORMATION = array(
'zubrag' => 'root',
'admin' => 'adminpass'
);
// request login? true - show login and password boxes, false - password box only
define('USE_USERNAME', true);
// User will be redirected to this page after logout
define('LOGOUT_URL', 'http://www.example.com/');
// time out after NN minutes of inactivity. Set to 0 to not timeout
define('TIMEOUT_MINUTES', 0);
// This parameter is only useful when TIMEOUT_MINUTES is not zero
// true - timeout time from last activity, false - timeout time from login
define('TIMEOUT_CHECK_ACTIVITY', true);
##################################################################
# SETTINGS END
##################################################################
文件中,默認有兩組用戶:
User: zubrag
Password: root
User: admin
Password: adminpass
教程參考: www.zubrag.com/forum/index.php?topic=45.0
資源鏈接
- 下載地址: www.zubrag.com/downloads/password-protect.zip
- 高級版: www.zubrag.com/scripts/password-protect-advanced.php
- 表單設計: www.zubrag.com/forum/index.php/topic,94.0.html
- 使用方法: forum.textpattern.com/viewtopic.php?id=17729&p=2
常见问题汇总
datetime值错误问题
internal_error "Incorrect datetime value: '1' for column 'Expires' at row 1"
in E:\SiteRoot\robinu.com\textpattern\lib\txplib_db.php at line 95.
adminErrorHandler()
E:\SiteRoot\robinu.com\textpattern\lib\txplib_db.php:95 trigger_error()
E:\SiteRoot\robinu.com\textpattern\lib\txplib_db.php:129 safe_query()
E:\SiteRoot\robinu.com\textpattern\include\txp_article.php:186 safe_insert()
E:\SiteRoot\robinu.com\textpattern\include\txp_article.php:64 article_post()
I'm sorry. I'm afraid I can't do that. I think article publish is no safe operation at this time.
Ref. http://forum.textpattern.com/viewtopic.php?id=29059
1.See docs.
2.SQL mode is determined upon MySQL server’s startup and not changed for a single database.
3.Try to locate MySQL’s configuration file my.ini or my.cnf. For XAMPP, this file would live somewhere around c:\xampp\myqsl\bin\.
4.Disable STRICT_TRANS_TABLES by removing a line similar to sql_mode=STRICT_TRANS_TABLES from this file (you can prepend a # to change it into an inoperational comment)
5.Stop and restart MySQL server
6.Report back
Textpattern案例
这是2011年9月16日整理的一篇文章,现在汇总更新如下:
国内Textpattern 用户博客集合 /blogs/20110916
随着时间的推移,发现这类用户越来越少了,当然坚持写独立博客的用户本身也越来越少。
前段时间RIB xTWO Team的部分同事promotion,遂今晚他们请客整个team 成员去腐败,地点:堂会(Music Box)……
明天上午,深圳行… 约见表格、Loading 及腾讯其他熟悉的同事… 聊聊工作,聊聊生活
后天,或许是香港自由行… 也是第一次通关出行。
关于系统
越来越不能接受 WP 频繁的版本更新,也更不能习惯WP那个臃肿的后台,故自个这个全新的博客系统迁移至 textpattern . 此次个人网站改版,未作IE兼容测试,为了达到最佳浏览效果,建议使用FF4.0++,Chrome,Opera,Safari。 ——涉水轻舟
国内用户
Plugins
参考: github.com/drmonkeyninja/awesome-textpattern
1、后台
- cbe_frontauth – Manage backend connections from frontend and protect content from non-logged in users.
- hak_tinymce – TinyMCE integration for Textpattern.
- jbx_multiple_image_upload – Multiple image upload.
- rah_privileges – Configure Textpattern’s admin-side user-group privileges through the Preferences panel.
- spf_codemirror – CodeMirror syntax-highlighting and Emmet code-completion for Pages, Forms, Styles, etc.
- spf_js – JavaScript management (similar to Presentation → Styles).
- tom_image_grid – Provides a more compact grid interface for the image admin panel.
- yab_copy_to_new – Allows for easy copying of articles from the Write panel.
2、内容
- glz_custom_fields – Unlimited custom fields.
- smd_tags – Unlimited, structured taxonomy across content types.