a-blog cms PHP API Reference

Resolver
in package

テンプレート内のHTML要素のパス解決を行うクラス a-blog cms 公式ドキュメントに記載の通り、テンプレート内のパスを解決する。

Tags
see
https://developer.a-blogcms.jp/document/template/entry-1443.html

Viteを参考に、以下の要素・属性の相対パスをテーマディレクトリ基準で解決する。

see
https://ja.vite.dev/guide/features#html

対応要素・属性:

  • img: src, srcset
  • input, script, frame, iframe: src
  • audio, video, embed, track: src
  • video: poster
  • source: src, srcset
  • link: href, imagesrcset
  • object: data, archives
  • applet: archives
  • 汎用: background
  • styleタグ・インラインstyle: url()(background, background-image等のCSSプロパティ内)
  • a: href(ブログコード付きURLに変換)
  • form: action(ブログコード付きURLに変換)
  • meta: content(og:image, og:audio, og:video, twitter:image, msapplication-* 等)
  • SVG image, use: href, xlink:href(#で始まるシンボル参照は除く)

Table of Contents

Methods

resolvePath()  : string
指定されたパスをテーマ、テンプレートパスを考慮したパスを変換
rewritePaths()  : string
テンプレートのパスを解決して変換
nextSearchOffset()  : int
substr_replace後の次の検索開始オフセットを計算する
resolveCssUrl()  : string
styleタグ・インラインstyle属性内のCSS url()のパス解決
resolveFilePath()  : string
ファイルパスの解決
resolveLink()  : string|null
ブログを考慮したリンクに変換
resolveLinkAttribute()  : string
リンク属性のパス解決
resolveMetaAttribute()  : string
meta要素のcontent属性のパス解決(OGP/Twitter Card/Windows Tile画像等)
resolveObjectArchives()  : string
object/applet要素のarchives属性のパス解決
resolveSrcSetAttribute()  : string
srcset属性のパス解決
resolveSvgAttribute()  : string
SVG要素(image, use)のhref/xlink:href属性のパス解決
resolveVideoPoster()  : string
video要素のposter属性のパス解決

Methods

resolvePath()

指定されたパスをテーマ、テンプレートパスを考慮したパスを変換

public resolvePath(string $path, string $theme, string $tplPath) : string
Parameters
$path : string

変換対象のパス

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス・../ 解決の基準となる。ルート等の場合は '/'

Return values
string

rewritePaths()

テンプレートのパスを解決して変換

public rewritePaths(string $txt, string $theme, string $tplPath, int $bid) : string
Parameters
$txt : string

パスを含むテンプレート文字列

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス解決の基準となる。ルート等の場合は '/'

$bid : int

ブログID

Return values
string

nextSearchOffset()

substr_replace後の次の検索開始オフセットを計算する

private nextSearchOffset(array<int, array{string, int}> $match[, int $lengthDelta = 0 ]) : int

正規表現マッチのフルマッチ末尾を基準に、置換による文字列長の変化を加味して次の検索開始位置を返す。

Parameters
$match : array<int, array{string, int}>

PREG_OFFSET_CAPTURE のマッチ結果

$lengthDelta : int = 0

置換による文字列長の変化量(strlen(replacement) - strlen(original))。置換なしの場合は0。

Return values
int

resolveCssUrl()

styleタグ・インラインstyle属性内のCSS url()のパス解決

private resolveCssUrl(string $txt, string $theme, string $tplPath) : string
Parameters
$txt : string

パスを含むテンプレート文字列

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス解決の基準となる。ルート等の場合は '/'

Return values
string

resolveFilePath()

ファイルパスの解決

private resolveFilePath(string $txt, string $theme, string $tplPath) : string
Parameters
$txt : string

パスを含むテンプレート文字列

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス解決の基準となる。ルート等の場合は '/'

Return values
string

ブログを考慮したリンクに変換

private resolveLink(string $link[, int $bid = 0 ]) : string|null
Parameters
$link : string

変換対象のリンクURL

$bid : int = 0

ブログID

Return values
string|null

resolveLinkAttribute()

リンク属性のパス解決

private resolveLinkAttribute(string $txt, int $bid) : string
Parameters
$txt : string

パスを含むテンプレート文字列

$bid : int

ブログID

Return values
string

resolveMetaAttribute()

meta要素のcontent属性のパス解決(OGP/Twitter Card/Windows Tile画像等)

private resolveMetaAttribute(string $txt, string $theme, string $tplPath) : string
Parameters
$txt : string

パスを含むテンプレート文字列

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス解決の基準となる。ルート等の場合は '/'

Return values
string

resolveObjectArchives()

object/applet要素のarchives属性のパス解決

private resolveObjectArchives(string $txt, string $theme, string $tplPath) : string

resolveFilePathの正規表現は1マッチで1属性しか処理できないため、 data属性と同一タグに存在するarchives属性は別パスで解決する。

Parameters
$txt : string

パスを含むテンプレート文字列

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス解決の基準となる。ルート等の場合は '/'

Return values
string

resolveSrcSetAttribute()

srcset属性のパス解決

private resolveSrcSetAttribute(string $txt, string $theme, string $tplPath) : string
Parameters
$txt : string

パスを含むテンプレート文字列

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス解決の基準となる。ルート等の場合は '/'

Return values
string

resolveSvgAttribute()

SVG要素(image, use)のhref/xlink:href属性のパス解決

private resolveSvgAttribute(string $txt, string $theme, string $tplPath) : string
Parameters
$txt : string

パスを含むテンプレート文字列

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス解決の基準となる。ルート等の場合は '/'

Return values
string

resolveVideoPoster()

video要素のposter属性のパス解決

private resolveVideoPoster(string $txt, string $theme, string $tplPath) : string

resolveFilePathの正規表現は1マッチで1属性しか処理できないため、 src属性と同一タグに存在するposter属性は別パスで解決する。

Parameters
$txt : string

パスを含むテンプレート文字列

$theme : string

テーマ名

$tplPath : string

パスが記述されているテンプレートファイルのパス。相対パス解決の基準となる。ルート等の場合は '/'

Return values
string

        
On this page

Search results