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 /> &#124; <txp:site_name />' />
    <txp:else />
    <txp:if_category>
      <txp:variable name="page-title" value='<txp:text item="category" /> <txp:category title="1" /> &#124; <txp:site_name />' />
    <txp:else />
    <txp:if_author>
      <txp:variable name="page-title" value='<txp:text item="author" /> <txp:author /> &#124; <txp:site_name />' />
    <txp:else />
      <txp:variable name="page-title" value='<txp:site_slogan /> &#124; <txp:site_name />' />
    </txp:if_author>
    </txp:if_category>
    </txp:if_search>
  <txp:else />
    <txp:variable name="page-title" value='<txp:title /> &#124; <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" /> &#124; <txp:site_name />' />
  <txp:else />
    <txp:variable name="page-title" value='<txp:title /> &#124; <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 &raquo;</a></div>";
  }
  if($variable["page"]-1) {
    echo "<div class=\"newer\"><a href=\"?page=". ($variable["page"]-1) ."\">&laquo; Newer articles</a></div>";
  }
</txp:php>

Reference:


动态创建页面 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

資源鏈接


常见问题汇总

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、内容

评论已关闭。Comments are turned off for this article.