タグの定義場所

タグ クラス :: メソッド
archives tagmanager_archive :: tag_archives
archive tagmanager_archive :: tag_expand
archive:is_active tagmanager_archive :: tag_is_active
archive:period tagmanager_archive :: tag_simple_value
archive:active_class tagmanager_archive :: tag_simple_value
articles tagmanager_article :: tag_articles
articles:article tagmanager_article :: tag_articles_article
article tagmanager_article :: tag_article
article:content tagmanager_article :: tag_simple_content
article:active_class tagmanager_article :: tag_simple_value
article:view tagmanager_article :: tag_simple_value
article:next tagmanager_article :: tag_next_article
article:prev tagmanager_article :: tag_prev_article
article:type tagmanager_article :: tag_simple_value
article:deny_code tagmanager_article :: tag_simple_value
article:deny tagmanager_article :: tag_article_deny
authority tagmanager_authority :: tag_authority
authority:can tagmanager_authority :: tag_authority_can
categories tagmanager_category :: tag_categories
category tagmanager_category :: tag_expand
category:is_active tagmanager_category :: tag_is_active
category:active_class tagmanager_category :: tag_simple_value
category:current tagmanager_category :: tag_category_current
element tagmanager_element :: tag_element
element:items tagmanager_element :: tag_element_items
element:items:item tagmanager_element :: tag_expand
element:description tagmanager_element :: tag_simple_value
form tagmanager_form :: tag_form
form:field tagmanager_form :: tag_expand
form:radio tagmanager_form :: tag_expand
form:checkbox tagmanager_form :: tag_expand
form:select tagmanager_form :: tag_expand
form:error tagmanager_form :: tag_expand
medias tagmanager_media :: tag_medias
media tagmanager_media :: tag_media
media:src tagmanager_media :: tag_media_src
media:thumb_folder tagmanager_media :: tag_media_thumb_folder
media:size tagmanager_media :: tag_media_size
media:alt tagmanager_media :: tag_simple_value
media:base_path tagmanager_media :: tag_simple_value
media:path tagmanager_media :: tag_simple_value
media:link tagmanager_media :: tag_simple_value
media:file_name tagmanager_media :: tag_simple_value
medias:description tagmanager_media :: tag_simple_value
medias:copyright tagmanager_media :: tag_simple_value
medias:extension tagmanager_media :: tag_simple_value
medias:provider tagmanager_media :: tag_simple_value
medias:mime tagmanager_media :: tag_simple_value
navigation tagmanager_navigation :: tag_navigation
navigation:url tagmanager_navigation :: tag_navigation_url
navigation:href tagmanager_navigation :: tag_navigation_href
navigation:nav_title tagmanager_navigation :: tag_navigation_nav_title
navigation:active_class tagmanager_navigation :: tag_simple_value
navigation:is_active tagmanager_navigation :: tag_is_active
tree_navigation tagmanager_navigation :: tag_tree_navigation
tree_navigation:active_class tagmanager_navigation :: tag_simple_value
tree_navigation:is_active tagmanager_navigation :: tag_is_active
sub_navigation tagmanager_navigation :: tag_sub_navigation
sub_navigation_title tagmanager_navigation :: tag_sub_navigation_title
languages tagmanager_navigation :: tag_languages
languages:language tagmanager_navigation :: tag_languages_language
language tagmanager_navigation :: tag_language
language:code tagmanager_navigation :: tag_language_code
language:active_class tagmanager_navigation :: tag_simple_value
language:default tagmanager_navigation :: tag_language_default
language:online tagmanager_navigation :: tag_simple_value
language:dir tagmanager_navigation :: tag_language_dir
language:is_active tagmanager_navigation :: tag_is_active
pages tagmanager_page :: tag_pages
page tagmanager_page :: tag_page
page:view tagmanager_page :: tag_page_view
page:next tagmanager_page :: tag_next_page
page:prev tagmanager_page :: tag_prev_page
breadcrumb tagmanager_page :: tag_breadcrumb
pagination tagmanager_pagination :: tag_pagination
tags tagmanager_tag :: tag_tags
tag tagmanager_tag :: tag_expand
tag:nb tagmanager_tag :: tag_simple_value
tag:is_active tagmanager_tag :: tag_is_active
tag:active_class tagmanager_tag :: tag_simple_value
tag:current tagmanager_tag :: tag_tag_current
user tagmanager_user :: tag_user
user:name tagmanager_user :: tag_user_name
user:activation_key tagmanager_user :: tag_simple_value
user:group tagmanager_user :: tag_user_group
user:group:name tagmanager_user :: tag_user_group_name
user:group:title tagmanager_user :: tag_user_group_title
user:logged tagmanager_user :: tag_user_logged
writer tagmanager_writer :: tag_writer
writer:name tagmanager_writer :: tag_writer_name
writer:join_date tagmanager_writer :: tag_simple_date
writer:last_visit tagmanager_writer :: tag_simple_date
writer:email tagmanager_writer :: tag_simple_value
writer:firstname tagmanager_writer :: tag_simple_value
writer:lastname tagmanager_writer :: tag_simple_value
writer:gender tagmanager_writer :: tag_simple_value
writer:birth_date tagmanager_writer :: tag_simple_value
id tagmanager_contact :: tag_id
url tagmanager_contact :: tag_url
get tagmanager_contact :: tag_get
index tagmanager_contact :: tag_simple_value
count tagmanager_contact :: tag_count
name tagmanager_contact :: tag_simple_value
title tagmanager_contact :: tag_simple_value
subtitle tagmanager_contact :: tag_simple_value
description tagmanager_contact :: tag_simple_value
date tagmanager_contact :: tag_simple_date
created tagmanager_contact :: tag_simple_date
updated tagmanager_contact :: tag_simple_date
extend tagmanager_contact :: tag_extend
list tagmanager_contact :: tag_list
config tagmanager_contact :: tag_config
base_url tagmanager_contact :: tag_base_url
home_url tagmanager_contact :: tag_home_url
lang_url tagmanager_contact :: tag_lang_url
uri tagmanager_contact :: tag_uri
uri:entity tagmanager_contact :: tag_simple_value
partial tagmanager_contact :: tag_partial
widget tagmanager_contact :: tag_widget
translation tagmanager_contact :: tag_lang
lang tagmanager_contact :: tag_lang
site_title tagmanager_contact :: tag_site_title
meta_title tagmanager_contact :: tag_meta_title
meta_keywords tagmanager_contact :: tag_meta_keywords
meta_description tagmanager_contact :: tag_meta_description
google_analytics tagmanager_contact :: tag_google_analytics
setting tagmanager_contact :: tag_setting
uniq tagmanager_contact :: tag_uniq
if tagmanager_contact :: tag_if
else tagmanager_contact :: tag_else
set tagmanager_contact :: tag_set
jslang tagmanager_contact :: tag_jslang
browser tagmanager_contact :: tag_browser
session tagmanager_contact :: tag_session
session:set tagmanager_contact :: tag_session_set
session:get tagmanager_contact :: tag_session_get
request tagmanager_contact :: tag_request
request:post tagmanager_contact :: tag_request_post
request:getpost tagmanager_contact :: tag_request_getpost
request:get tagmanager_contact :: tag_request_get
attr tagmanager_contact :: tag_attr
partial:attr tagmanager_contact :: tag_partial_attr
trace tagmanager_contact :: tag_trace
nesting tagmanager_contact :: tag_nesting

師走

最近は Ionize CMSなるものを弄っている。多言語対応のCMSで複数言語を横に並べて編集できるので便利。
ただし、まだバージョン 1.0.5 なので作りこみが甘くて不便。

オペレータが皆 HTMLを手打ちできるなら最高なんだけどタグ構成を壊す人がいるのでシステム的に同一レイアウトを強制するために採用。

CodeIgnitierベースだが、独自実装のTagManagerなるテンプレートエンジンが痒すぎて手が届かない上に手自体が痒い。

かゆ、うま。

Book☆Walker PC Viewerの分析

自宅の蔵書管理システムにBook☆Walkerと連携する機能を組み込みたいので分析してみることにする。
Book☆Walkerからは600冊以上購入しているし、Amazonと違って表紙の裏等もデジタイズされていて丁重だから
自炊の代用としては良い線を行っていそうだ。

  • ローカルに保存される購入書籍情報はここ(sqlite形式・ログオン情報等は含まれない)。

%USERPROFILE%\AppData\Roaming\jp.bookwalker.PCViewer\Local Store\database\index.db

  • 画像のローカルキャッシュはここ。

%USERPROFILE%\AppData\Roaming\jp.bookwalker.PCViewer\Local Store\thumbnail

  • Book☆Walker の書籍情報は以下からアクセスできる(UUIDは適宜置換のこと)。

http://bwcommercial-external-texts.s3.amazonaws.com/438f32dd-2e5e-4291-9840-065865f0437c.txt
形式はUTF-8JSON。構造はこんな感じ。

{ "data" : { 
      "authorList" : [ { "authorId" : 110,
            "authorName" : "河野裕",
            "authorNameKana" : "コウノユタカ",
            "authorTypeName" : "",
            "displaySeqNo" : 1
          } ],
      "categoryId" : 3,
      "categoryName" : "ライトノベル",
      "companyName" : "KADOKAWA / 角川書店",
      "copyrightString" : "(C) Yutaka KONO 2010 ",
      "coverFileName" : "coverImage_863.jpg",
      "drmTimeLimit" : null,
      "finishFlag" : false,
      "labelId" : 5,
      "labelName" : "角川スニーカー文庫",
      "labelType" : "01",
      "moralTypeCode" : "01",
      "moralTypeName" : "Free",
      "openFlag" : true,
      "productExplanationDetails" : "「リセット」たった一言。それだけで、世界は、三日分死ぬ──。能力者が集う街、咲良田。浅井ケイは、記憶の保持する能力をもった高校一年生。春埼美空は、「リセット」──世界を三日分巻き戻す能力をもっており、ケイの指示で発動する。高校の「奉仕クラブ」に所属する彼らは、ある日「死んだ猫を生き返らせてほしい」という依頼を受けるのだが……。リセット後の世界で「現実(いま)」に立ち向かう、少年と少女の物語。大ヒットシリーズ、第1弾! ",
      "productExplanationShort" : "「リセット」たった一言。それだけで、世界は、三日分死ぬ。大ヒットシリーズ第1弾! ",
      "productId" : 10123,
      "productName" : "サクラダリセット CAT,GHOST and REVOLUTION SUNDAY",
      "productNameEnglish" : null,
      "productNameKana" : "サクラダリセット01キャットゴーストアンドレボリューションサンデイ",
      "publisherAcCode" : "kgx00548",
      "publisherMnType" : "U00N5X",
      "saleCompanyId" : 1,
      "saleEndTime" : "9999-12-31T23:59:59",
      "saleStartTime" : "2010-12-01T12:00:00",
      "seriesId" : 55,
      "seriesName" : "サクラダリセット",
      "seriesNameKana" : "サクラダリセット",
      "thumbnailFileName" : "thumbnailImage_864.jpg",
      "uuid" : "438f32dd-2e5e-4291-9840-065865f0437c"
    } 
}
  • 表紙の画像は以下から。

http://bwcommercial-external-images.s3.amazonaws.com/438f32dd-2e5e-4291-9840-065865f0437c.jpg

  • thumbnailImageやcoverImageは以下から

http://cc.bookwalker.jp/thumbnailImage_864.jpg
http://cc.bookwalker.jp/coverImage_863.jpg

ISBNは www.bookwalker.com から拾ってくるしか無いのかな。

  • 尚、bookwalker.jp の商品ページのURLにはUUIDの前に「Digital Edition」の略で「de」の接頭字がつく。

http://bookwalker.jp/de438f32dd-2e5e-4291-9840-065865f0437c/

米Godaddy の Shared Linux Hostingで PATH_INFO を必要とするPHPスクリプトを動かす方法。

  • Godaddyの担当者を今すぐLANケーブルで首吊らせたいです。マジで。

PATH_INFOやらAcceptPathInfoが徹底的に無効化されているGoDaddyでPATH_INFOを使う方法です。

  1. .htaccess に以下の追記をする。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,E=PATH_INFO:$1]
</IfModule>
  • いわずとしれた、存在しないファイルを index.php にリダイレクトするRewriteRuleです。
  • ミソはフラグで、
    • QSA - クエリ部分を末尾に追記する
    • E=PATH_INFO:$1 - $1 に該当する部分を環境変数 REDIRECT_PATH_INFO に代入する。

あとはスクリプト側で以下をやるだけです。

if (isset($_SERVER['REDIRECT_PATH_INFO'])) {
        $_SERVER['PATH_INFO'] = $_SERVER['REDIRECT_PATH_INFO'];
}

Concrete5 CMSをGodaddyで使いたいときには以下もやってしまいましょう。

define('URL_REWRITING_ALL', TRUE);
ob_start('ob_index_handler');

function ob_index_handler($source) {
        $source = str_replace('index.php/', '', $source);
        return $source;
}

これを見つけるのに時間がかかりすぎたので現在 絶賛徹夜で残業中。

CISCOルーターでDNSリレー

  • 所謂 DNS Proxy、DNS Forwarder なるもの
  • NAT裏(プライベートアドレス)にあるFTPサーバをグローバル側に公開したいのだが、ポート20/21だけをNAPTで通して、FTPのコントロール接続のNATと連動して動的に書き換えることはできるんだろうか、と調査中。
    • 以前使用していた NTT のルータはコントロール接続の PORTコマンドの書換に対応していたので便利だったのだが。
#configure terminal
(config)#!--- 内蔵 DNSサーバを有効にする
(config)#ip dns server
(config)#!--- 名前解決を有効にする
(config)#ip domain-lookup
(config)#!--- DNS view のデフォルト設定を開く
(config)#ip dns view default
(cfg-dns-view)#!-- DNS Forwardingを有効にする
(cfg-dns-view)#dns forwarding
(cfg-dns-view)#!--- DNS Forwarding時にクエリするネームサーバのIPアドレスを指定する (複数ある場合は複数行)
(cfg-dns-view)#dns forwarder x.x.x.x
(cfg-dns-view)#dns forwarder x.x.x.x
(cfg-dns-view)#dns forwarder x.x.x.x

で動作する筈。

常に偽のIPアドレスへ解決させたい場合は

(config)#ip dns spoofing x.x.x.x
(config)#no ip domain-lookup

とすると常に指定された偽のIPアドレスへ解決されるようになる。