承接 pickles2/px2-multitheme 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pickles2/px2-multitheme

Composer 安装命令:

composer require pickles2/px2-multitheme

包简介

px2-multitheme は、複数のテーマを同時に管理する機能を Pickles 2 に追加します。

关键字:

README 文档

README

Linux Windows
master
develop

px2-multitheme は、複数のテーマを同時に管理する機能を Pickles2 に追加します。

導入方法 - Setup

Pickles 2 をセットアップします。

composer.json と同階層に移動し、次のコマンドを実行します。

composer require pickles2/px2-multitheme

次に、px-files/config.php に設定を記述します。

$conf->funcs->processor->html = [
	// テーマ
	'theme'=>'tomk79\pickles2\multitheme\theme::exec' ,
];

コンフィグオプション - Config Options

テーマ切り替えのパラメータ名 - param_theme_switch

テーマ切り替えスイッチとして使用するGETパラメータ名を設定します。デフォルトは THEME です。

テーマ名を記憶するクッキー名 - cookie_theme_switch

切り替えたテーマ名を記憶するクッキー名を設定します。デフォルトは THEME です。

レイアウト切り替えのパラメータ名 - param_layout_switch

レイアウト切り替えスイッチとして使用するGETパラメータ名を設定します。デフォルトは LAYOUT です。

テーマコレクションディレクトリ - path_theme_collection

テーマ格納ディレクトリのパスを設定します。 相対パスの起点は、.px_execute.php が置かれているパスです。

初期値は ./px-files/themes/ です。

px2-multitheme はこのディレクトリの他にも、vendor ディレクトリにロードされたパッケージの一覧を検索し、theme が実装されたパッケージを選択候補に加えます。

bowl名(コンテンツエリア名)を格納する属性名 - attr_bowl_name_by

Pickles2DesktopTool のGUI編集機能に対応する設定です。Pickles2DesktopTool は、ここに設定した属性の値からbowl名を取得し、GUI編集画面の構成するように振る舞います。 デフォルトは data-contents-area です。

デフォルトのテーマID - default_theme_id

デフォルトで適用するテーマのIDです。初期値は default です。

テーマコレクションディレクトリに定義されたテーマを指定する場合は theme_id などの様にディレクトリ名を、composerパッケージからテーマを指定する場合は vendorname/packagename のように、スラッシュで区切られたパッケージ名を設定します。

オプション - options

テーマが個別に定義するオプション値を設定します。 設定できるオプションはテーマによって異なります。詳しくは各テーマのドキュメントを参照してください。

コンフィグオプションの実装例 - Config Sample

$conf->funcs->processor->html = [
	// テーマ
	'theme'=>'tomk79\pickles2\multitheme\theme::exec('.json_encode([
		'param_theme_switch'=>'THEME',
		'cookie_theme_switch'=>'THEME',
		'param_layout_switch'=>'LAYOUT',
		'path_theme_collection'=>'./px-files/themes/',
		'attr_bowl_name_by'=>'data-contents-area',
		'default_theme_id'=>'pickles2',
		'options'=>array(
			'pickles2'=>array( // テーマ pickles2 に対するオプション
				'sample_param'=>'hoge' // テーマ側からは、 `$theme->get_option('sample_param')` で受け取ることができます。
			)
		)
	]).')'
];

テーマの実装

各テーマは、テーマコレクションディレクトリの直下にディレクトリとして設置します。 例えば、 sample という名前のテーマは、 ディレクトリ <theme_collection_dir>/sample/ の中に実装されます。

テーマディレクトリの直下には、 (レイアウト名).html という命名規則で、複数のレイアウトを定義できます。

規定のレイアウトは、 default.html (=デフォルト), popup.html, top.html, plain.html, naked.html があり、 サイトマップCSV の layout 列に名前を指定して選択します。この使い方については、Pickles 2 のドキュメントを参照してください。

テーマレイアウトで使える主なAPI

Pickles 2 の API

Pickles 2 が提供するAPIのうち、テーマの実装でよく利用するAPIには、次のものがあります。 詳しい使い方は、Pickles 2 の APIドキュメント を参照してください。

  • $px->href()
  • $px->mk_link()
  • $px->conf()
  • $px->bowl()->pull()
  • $px->site()->get_current_page_info()
  • $px->site()->get_children()
  • $px->site()->is_page_in_breadcrumb()
  • $px->site()->path_plugin_files()
  • $px->site()->get_category_top()

px2-multitheme が提供する API

Pickles 2 にある機能の他に、 px2-multitheme の独自のAPIも提供されます。

  • $theme->get_option()
  • $theme->get_layout()
  • $theme->get_attr_bowl_name_by()
  • $theme->files()
  • $theme->mk_global_menu()
  • $theme->mk_shoulder_menu()
  • $theme->mk_sub_menu()
  • $theme->mk_megafooter_menu()
  • $theme->mk_breadcrumb()

theme_files

テーマフォルダの直下に ディレクトリ theme_files/ を設置すると、ここにテーマ固有のリソースファイル(画像やCSSなど)を置くことができます。

theme_files に置かれたファイルは、 Pickles 2 の公開キャッシュディレクトリ(デフォルトでは /caches/*) の中に複製が作られ、ブラウザから参照できるようになります。

テーマからこれらのファイルを呼び出す場合、次のように実装してください。

<p>'theme_files/hoge/fuga.png' を呼び出す</p>
<img src="<?= htmlspecialchars( $theme->files('/hoge/fuga.png') ); ?>" alt="" />

テーマパッケージの公開

テーマは、独立したパッケージとして Packagist などで公開できます。

/theme/default.html に、デフォルトのレイアウトをセットしてください。 /theme/ 以下の構成は、テーマコレクションと同じです。

更新履歴 - Change log

pickles2/px2-multitheme v2.2.0 (2025年7月29日)

  • kflow形式のテーマを処理できるようになった。

pickles2/px2-multitheme v2.1.2 (2025年4月3日)

  • 同梱のプラグインが、より直接的な表現で設定できるようになった。
  • $theme->realpath_theme_dir() を追加した。

pickles2/px2-multitheme v2.1.1 (2023年2月11日)

  • 内部コードの細かい修正。

pickles2/px2-multitheme v2.1.0 (2022年1月8日)

  • サポートするPHPのバージョンを >=7.3.0 に変更。
  • PHP 8.1 に対応した。

pickles2/px2-multitheme v2.0.6 (2018年8月30日)

  • 細かい不具合の修正。

pickles2/px2-multitheme v2.0.5 (2018年1月24日)

  • 新しい設定項目 $param_layout_switch を追加。 GETパラメータで一時的にレイアウトを切り替えて表示できるようになった。
  • ./theme_files/〜〜 という記述でテーマリソースにアクセスできるようになった。 $theme->files() が暗黙的に呼ばれ、置き換えられる。

pickles2/px2-multitheme v2.0.4 (2017年7月28日)

  • 異なるテーマで同時アクセスしたときに、リソースのパスが混在する問題を修正。

pickles2/px2-multitheme v2.0.3 (2017年7月11日)

  • テーマテンプレートの実装を助ける目的ではないメソッドを $theme から分離して隠蔽した。
  • $theme->files() を追加。
  • px2package を参照してテーマを検索するようになった。

pickles2/px2-multitheme v2.0.2 (2016年7月27日)

  • パンくず上にカレントページがある場合に、リンクではなくなるようになった。
  • 誤ったテーマIDを選択した場合に、仮のテーマに包んで画面を返すようになった。
  • その他、不具合の修正とパフォーマンス向上。

pickles2/px2-multitheme v2.0.1 (2016年6月30日)

  • ローカルナビゲーションの生成ルールを変更: パンくず上にないページの子要素は開かないようにした。

pickles2/px2-multitheme v2.0.0 (2016年3月4日)

  • 初版リリース。

ライセンス - License

MIT License

作者 - Author

開発者向け情報 - for Developer

テスト - Test

$ php ./vendor/phpunit/phpunit/phpunit

pickles2/px2-multitheme 适用场景与选型建议

pickles2/px2-multitheme 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10.12k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2016 年 02 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「pickles2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 pickles2/px2-multitheme 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 pickles2/px2-multitheme 我们能提供哪些服务?
定制开发 / 二次开发

基于 pickles2/px2-multitheme 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 10.12k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 45
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-02-09