MODx Community Forums
The MODx Blog
Donations
Feedburner Feeds
Documentation
Bugs & Requests
The Wiki
download MODx
plugins, modules, snippets
online demo
Nov 20, 2008, 06:15 PM
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Search via SMF
or Google:
modx forums
all of modxcms.com
web
MODxCMS.com
Forums
Help
Login
Register
News
:Read what MODx Developers say:
MODx Dev. Blogs
MODx Community Forums
»
Japanese Community
»
サポート
»
モジュール・プラグイン・スニペット・本体
(Moderators:
yama
,
にっく (smallworld)
,
soushi
,
yomoro
,
thr
)
»
テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
Pages: [
1
]
Go Down
« Previous topic
Next topic »
Print
Author
Topic: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい (Read 2443 times)
0 Members and 1 Guest are viewing this topic.
MEGU
Committed to MODx
Posts: 817
テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
on:
Jul 26, 2007, 04:00 AM »
こんにちは。よろしくお願い致します。
やりたいことは、表題の通りなのですが、どうにかすれば可能なのでしょうか?
具体的には、PHxプラグインをテンプレートごとに「有効/無効」の切り替えができないか?と
考えているのですが。。
…と言いますのも、PHxは非常に便利なプラグインなんですが、場合によっては
不都合もあるのです。そんなわけで、PHxを導入している環境でも、テンプレートに
何かおまじないをすることによって、そのテンプレートを利用しているドキュメントでは
PHxが無効になるという。。そんなことができればと思うのです。
何か良い方法はありますでしょうか。どうぞよろしくお願い致します。
«
Last Edit: Jul 26, 2007, 09:00 PM by MEGU
»
Logged
ZeRo
Sr. Member
Posts: 379
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #1 on:
Jul 28, 2007, 01:50 AM »
んーー、スニペット内でテンプレートをチェックして、呼び出さないようにするとかにしないといけなさそうですねぇ。
Logged
WCMアナリスト兼アドバイザー兼デベロッパー兼・・・・
MEGU
Committed to MODx
Posts: 817
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #2 on:
Jul 28, 2007, 04:44 AM »
ZeRoさん。いつもありがとうございます。
MODx0.9.5 に標準で実装されていた「Template Switcher」は
テンプレートにあるおまじないをかくと、そのテンプレートを利用しているドキュメントで
無効にできましたよね。。あんなのを想像したんですけれども、あれは、
Template Switcher 側にそういう機能?(おまじないを書くと無効にできる機能)が
あったわけですよね。。ということは、PHxにそういうのを仕込むとか、あるいは、
ページの最初の方に、Phxを無効にするスニペットを書くとか?そういう感じに
なるのでしょうか。。
Logged
ZeRo
Sr. Member
Posts: 379
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #3 on:
Jul 29, 2007, 11:49 PM »
templateSwitherは、プラグインなのでドキュメントの全文をチェックして、おまじないがあれば処理しないっていう仕組みができるんですが、PHxはスニペットの中から呼び出される仕組みなので、ココのスニペットでこのおまじない(またはテンプレート)をチェックしてPHxを呼び出さないようにするとかの処理を入れる必要があるかと思います。
処理しないようにして問題がない?(表示として)かどうかがちょっと微妙かも知れませんねぇ。
Logged
WCMアナリスト兼アドバイザー兼デベロッパー兼・・・・
MEGU
Committed to MODx
Posts: 817
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #4 on:
Jul 30, 2007, 07:34 AM »
こんにちは。
ZeRoさん。ありがとうございます。
Code:
PHxはスニペットの中から呼び出される仕組みなので、ココのスニペットでこのおまじない(またはテンプレート)をチェックしてPHxを呼び出さないようにするとかの処理を入れる必要があるかと思います。
これは、たとえば、Dittoにはphxファンクションを無効にするパラメータがあるんですけれども、
このパラメータは、Ditto(のPhxファンクション)にだけ関与するわけですよね(変な日本語?)。
Dittoで処理されている部分にだけ影響するといいますか...?
こういった機能が、個々のスニペットに必要と言うことなんですね?
PHxファンクションを導入しているスニペットを利用する場合には、
PHxプラグインを無効にする機能があれば私的には嬉しいかも。。
Logged
ZeRo
Sr. Member
Posts: 379
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #5 on:
Jul 30, 2007, 08:54 AM »
Quote from: MEGU on Jul 30, 2007, 07:34 AM
こういった機能が、個々のスニペットに必要と言うことなんですね?
PHxファンクションを導入しているスニペットを利用する場合には、
PHxプラグインを無効にする機能があれば私的には嬉しいかも。。
そのとおりっす。
PHx実は使ったことなかったりするんで、細かい部分はわかっていませんけど。
たとえば、templateSwitcherのプラグインと連動させるなら、templateSwictherのおまじないと同じような形で
ドキュメントにPHx無効おまじないを書いておいて、templateSwitcherのプラグインにそのおまじないがあれば、PHx無効フラグみたいなものを立て、それをDittoのスニペットのPHx無効の変数に被せるっていう手でもいけそうですね。
ほかのPHxを利用するスニペットも同じようにすればできるかなぁ
たとえば、templateSwitherのおまじないのチェックの次に以下のようにフラグを$modx->configに設定して
Code:
$modx->config["phx_disable_flag"] = false;
if (strstr($modx->documentContent,"無効化のおまじないコード"))
{
$modx->config["phx_disable_flag"] = true;
}
Dittoの方で
Code:
if ($modx->config["phx_disable_flag"] == true)
{
PHxの無効化の変数をセットする
}
とかにすれば、いけそうな気がします。
と思ってPHxのドキュメントみてみたんですが、プラグインみたいなので
PHxのプラグインの方で処理しないようにする方が楽ですねぇ
PHxのプラグイン(MODxのリソースで入れる部分)を以下のようにしちゃえばいけるかと思います。
Code:
if ($modx->config["phx_disable_flag"] != true)
{
include_once $modx->config['rb_base_dir'] . "plugins/phx/phx.parser.class.inc.php";
$e = &$modx->Event;
$PHx = new PHxParser($phxdebug,$phxmaxpass);
switch($e->name) {
case 'OnParseDocument':
$PHx->OnParseDocument();
break;
}
}
Logged
WCMアナリスト兼アドバイザー兼デベロッパー兼・・・・
MEGU
Committed to MODx
Posts: 817
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #6 on:
Jul 30, 2007, 11:10 PM »
ZeRoさん。ありがとうございます!
PHxプラグインを以下のようにして:
Code:
/* PHx disable check */
$modx->config["phx_disable_flag"] = false;
if (strstr($modx->documentContent,"donotphx"))
{
$modx->config["phx_disable_flag"] = true;
}
/* PHx fanction */
if ($modx->config["phx_disable_flag"] != true)
{
include_once $modx->config['rb_base_dir'] . "plugins/phx/phx.parser.class.inc.php";
$e = &$modx->Event;
$PHx = new PHxParser($phxdebug,$phxmaxpass);
switch($e->name) {
case 'OnParseDocument':
$PHx->OnParseDocument();
break;
}
}
PHxプラグインを無効にしたいテンプレートの<body>の直下に「<!-- donotphx -->」
を入れてみたのですが、PHxプラグインは無効になっていないようです??なにか愚かなことをしているでしょうか…?
具体的には例えばここなのですが、
http://www.liolion.info/modx095/
左上すみのミニ伝言板は、Jotを利用しているのですが、PHxプラグインが
有効になっていると、ある条件で、ドキュメントにプレイスホルダを書くことができないのです...(書いても値が出力されない)。
ある条件というのは、Jotを[!~!]の形式で書いた場合です。
その他、PHxプラグインが有効な状態だと、Jotの入力チェックをするとき正規表現で「[」「]」が使えなかったりします。
関連トピでここにあげているのですが。。
http://modxcms.com/forums/index.php/topic,16228.0.html
Logged
ZeRo
Sr. Member
Posts: 379
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #7 on:
Jul 31, 2007, 12:04 AM »
以下のコードでどうでしょ?
Code:
include_once $modx->config['rb_base_dir'] . "plugins/phx/phx.parser.class.inc.php";
$e = &$modx->Event;
switch($e->name) {
case 'OnParseDocument':
if ((!strstr($modx->documentOutput,"donotphx")) {
$PHx = new PHxParser($phxdebug,$phxmaxpass);
$PHx->OnParseDocument();
}
break;
}
ドキュメントでもテンプレートでもどちらでもいいんですけど、donotphxの文字があればPHxのパースを行わないようにしています。
Logged
WCMアナリスト兼アドバイザー兼デベロッパー兼・・・・
MEGU
Committed to MODx
Posts: 817
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #8 on:
Jul 31, 2007, 04:25 AM »
ZeRoさん。ありがとうございます。
教えて頂いたコードは、リソース管理のPHxプラグインのコードにそのまま貼れば良いんですよね??
で、そうしますと、PHxは無効になるようなのですが、
「donotphx」という文字が含まれてなくても無効になっているみたいなのです。
例えば、PHxプラグインが有効ですと、ドキュメントやテンプレートにこんな風に書きますと「[*introtext:notags*]」
introtext に含まれているタグを除去して出力するんですが、ZeRoさんのコードですと、出力そのものがされなくなるのです。。
(「donotphx」という文字がなくても、です)。
Logged
ZeRo
Sr. Member
Posts: 379
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #9 on:
Jul 31, 2007, 05:08 AM »
入っても入らなくても無効になっちゃうのが・・・想定の範囲外なんですけど
イベントのOnParseDocumentのチェックは入っていますよね??
ちなみに、PHxは、2.1.3ですよね? 違うとプラグインソースが違うのかも知れない・・・・。
やはり、ちゃんと動かしてみないとかなぁ
すいません
Logged
WCMアナリスト兼アドバイザー兼デベロッパー兼・・・・
MEGU
Committed to MODx
Posts: 817
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #10 on:
Jul 31, 2007, 07:00 AM »
ZeRoさん。何度もありがとうございます。
システムイベントは、「OnParseDocument」にだけチェックが入っています。
それで、うちのPHxプラグインは2.1.2だったので、2.1.3にバージョンアップしてみました。
んですけども、やはり、PHxプラグイン自体が無効になる(といいますか有効にならないといいますか…)ようです。
Logged
ZeRo
Sr. Member
Posts: 379
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #11 on:
Jul 31, 2007, 09:18 AM »
あ(^^;
ミスってました
Code:
if ((!strstr($modx->documentOutput,"donotphx")) {
を
Code:
if (!strstr($modx->documentOutput,"donotphx")) {
ifの次の括弧が1つ多かったです、これでエラーになっていて抜けちゃっていたのかも・・・。
すいません・・・今度こそは・・・・かな
Logged
WCMアナリスト兼アドバイザー兼デベロッパー兼・・・・
MEGU
Committed to MODx
Posts: 817
Re: テンプレートごとにプラグイン(PHx)の有効/無効を切り替えたい
«
Reply #12 on:
Jul 31, 2007, 10:35 AM »
ありがとうございます!
でででで、できました!
テンプレートを「IncludeFile」で読み込む場合、ドキュメントにおまじないを
書いても、PHxが無効にならないので、この場合はテンプレートに書くように
なるみたいなんですけども、この辺りもまとめて、サイトの方に書きたいと思います。
ホントにありがとうございました~。よく眠れそうです。^^。
Logged
Pages: [
1
]
Go Up
Print
« Previous topic
Next topic »
Jump to:
Please select a destination:
-----------------------------
Announcements
-----------------------------
=> Important News
=> Security Notices
-----------------------------
Commercial Support
-----------------------------
=> [CS] About Commercial Support
-----------------------------
Development & Coding
-----------------------------
=> Commercial Inquiries & Bounties
=> Core Code
===> MODx Next
===> xPDO
=> Module, Plugin & Snippet Creation and Modification
=> In Development
=> Templates
=> Internationalization
===> Bulgarian
===> Chinese
===> Czech
===> Dutch
===> French
===> German
===> Irish
===> Italian
===> Japanese
===> Polish
===> Portuguese
===> Russian
===> Slovak
===> Spanish
===> Swedish
===> Persian - فارسي
-----------------------------
Support
-----------------------------
=> Release Support
===> 0.9.6.2
===> 0.9.6.1
===> 0.9.6
===> 0.9.5 and earlier
=> General Support
===> MODx 101
===> E-Commerce, E-Marketing, Analytics & SEO
===> Hosting Experiences
===> IIS / Windows Hosting Issues
=> Documentation, Tips & Tricks
===> Documentation Suggestions & Corrections
-----------------------------
Add-ons, Extensions & Elements
-----------------------------
=> Module, Plugin & Snippet Usage
=> General Repository Items Support
=> Navigation & Tagging/Taxonomy
===> Wayfinder & DropMenu
=> Creating & Repurposing Content
===> Ditto
===> Jot
===> QuickEdit
=> Users, Authentication & Personalization
===> WebloginPE
===> WebLogin, WebSignup and WebChangePwd
=> Rich Text Editors & File Browser
===> TinyMCE
===> FCKeditor
===> MCPuck File Browser
=> Forms, Form Processing & Anti-Spam
===> eForm
=> Search
===> AjaxSearch
=> E-business
=> Polls, Calendars, Address Book and Community
=> Third-party integrations
=> Images, Videos & Podcasts
===> MaxiGallery
=> Manager, Parser & the Core
===> Backup & Versioning
===> Doc Finder
===> ManagerManager
===> PHx
=> Templates
-----------------------------
General Discussions
-----------------------------
=> General MODx Discussions
=> Web Design and Development
=> Wishlist
=> You and Your Sites
=> modxcms.com Discussions and Suggestions
=> Off-topic
-----------------------------
Czech Community
-----------------------------
=> Oznámení
===> Důležitá oznámení/novinky
===> Bezpečnost
=> Podpora
===> FAQ (často kladené otázky)
===> Instalace
===> Moduly, pluginy, "snippets & code" (šablony zdrojových kódů)
===> Design & Šablony
=> Dokumentace, tutoriály (návody) a překlady
===> Dokumentace
===> Tutoriály (návody)
===> Překlady (lokalizace)
=> Komunita
===> Oznámení
===> Představte se, prosím
===> Ukázky práce
===> Různé aneb cokoli co se jinam nehodí
-----------------------------
Bulgarian Community
-----------------------------
=> Поддръжка
===> Често задавани въпроси
===> Инсталация
===> Модули, Плъгини, Снипети и код
===> Дизайн и Шаблони
=> Документация, Ръководства и Превод
===> Документация
===> Ръководства
===> Превод
=> Общество
===> Съобщения
===> Представете се
===> Представете сайта си
===> Дискусии извън MODx
-----------------------------
Dutch Community
-----------------------------
=> Ondersteuning
===> Veel gestelde vragen
===> Modules, Plugins, Snippets & Code
===> Design & Templates
=> Documentatie, Tutorials en Vertalingen
===> Documentatie
===> Tutorials
===> Vertalingen
=> Community
===> Aankondigingen
===> Stel jezelf voor
===> Site Showcase
===> De stamkroeg
-----------------------------
Finnish Community
-----------------------------
=> Tuki
===> UKK
===> Asennus
===> Moduulit, liitännäiset, koodinpätkät
===> Ulkoasu/Sivustopohjat
=> Dokumentaatio, oppaat ja käännökset
===> Dokumentaatio
===> Käännökset
===> Oppaat
=> Yhteisö
===> Tiedotteet
===> Esittele itsesi
===> MODx sivustosi
===> Kahvihuone
-----------------------------
Filipino Community
-----------------------------
=> Suporta
===> Kadalasang tanong
===> Instalasyon
===> Moduler, Maidadagdag, Karagdagang mga Code
===> Desenyo at Templates
=> Dokumentasyon, Mga Turo, Mga Salin
===> Dokumentasyon
===> Mga Turo
===> Mga Salin
=> Kumunidad
===> Anunsyo
===> Ipakilala ang sarili
===> Ang Galing ng pinoy
===> Tsismisan atbp
-----------------------------
French Community
-----------------------------
=> Support
===> FAQ
===> Installation
===> Module, plugin, snippets
===> Design/Templates
=> Documentation, Tutoriels et Traductions
===> Documentation
===> Traduction
===> Tutoriels
=> Communauté
===> Annonces
===> Présentez vous
===> Vos sites
===> Le Bistrot Français
-----------------------------
German Community
-----------------------------
=> Support (de)
===> FAQ (de)
===> Installation (de)
===> Module, Plugins, Snippets & Code (de)
===> Design & Templates (de)
=> Dokumentation, Tutorials und Übersetzung
===> Dokumentation
===> Tutorials (de)
===> Übersetzung
=> Community (de)
===> Ankündigungen
===> Stellt Euch vor
===> Beispielseiten
===> Off Topic / Verschiedenes
-----------------------------
Irish Community
-----------------------------
=> Tacaíocht
===> CC Ceisteanna Coitianta
===> Breiseáin (cláir bhreise), Snippets & Comhaid
===> Suiteáil
===> Dearadh & Teimpléid
=> Doiciméid, Teagascóireacht agus Aistriúchán
===> Doiciméadú
===> Teagascóireacht
===> Aistriúchán
=> Pobal
===> Fógraí
===> Cuir Tú Féin in Aithne
===> Gailearaí an Láithreáin
===> Caifé / An Tábhairne / Ábhar Cainte Eile / Ilghnéitheach
-----------------------------
Italian Community
-----------------------------
=> Supporto
===> FAQ
===> Installazione
===> Moduli, Plugin, Snippet e altro codice
===> Web Design e Template
=> Documentazione, Tutorial e Traduzione
===> Documentazione
===> Tutorial
===> Traduzione
=> Comunità
===> Annunci
===> Presentazioni
===> Siti in vetrina
===> Chiacchiere in libertà
-----------------------------
Japanese Community
-----------------------------
=> サポート
===> 良くある質問
===> インストール
===> モジュール・プラグイン・スニペット・本体
===> デザインやテンプレート
=> マニュアル・テュートリアル・翻訳
===> マニュアル
===> 事例集、テュートリアル
===> 日本語化
=> コミュニティ
===> お知らせ
===> MODxサイト展示場
===> 自己紹介
===> 雑談
===> 国産リソース
-----------------------------
Persian Community
-----------------------------
=> پشتيباني
===> راهنما
===> نصب
===> ماژول , پلاگین ها , کد ها و جزییات
===> طراحی و قالب ها
=> مستند سازی , آموزش ها و ترجمه ها
===> مستند سازی
===> آموزش ها
===> ترجمه ها
=> انجمن ها
===> اخبار
===> معرفی کردن خود
===> نمایش دادن سایت ها
===> بحث های عمومی و سایر موضوعات
-----------------------------
Polish Community
-----------------------------
=> Wsparcie
===> FAQ
===> Instalacja
===> Moduły, pluginy, snipety i kod
===> Wygląd i szablony
=> Dokumentacja, tutoriale i tłumaczenie
===> Dokumentacja
===> Tutoriale
===> Tłumaczenie
=> Społeczność
===> Ogłoszenia
===> Przedstaw się
===> Twój serwis WWW
===> Hyde Park
-----------------------------
Portuguese Community
-----------------------------
=> Suporte
===> FAQ - Dúvidas Frequentes
===> Instalação
===> Módulos, Plugins, Snippets e Código
===> Design e Templates
=> Documentação, Guias e Traduções
===> Documentação
===> Guias
===> Traduções
=> Comunidade
===> Anúncios
===> Apresente-se!
===> Bar da esquina (fora de tópico)
===> Portfólio de Sites
-----------------------------
Russian Community
-----------------------------
=> Поддержка
===> ЧАВО (FAQ)
===> Установка
===> Модули, плагины, сниппеты и код
===> Дизайны и шаблоны
=> Документация, Уроки, Перевод
===> Документация
===> Уроки
===> Перевод
=> Сообщество
===> Объявления
===> Представьтесь публике
===> Галерея сайтов
===> Диван
-----------------------------
Scandinavian Community
-----------------------------
=> Support
===> Frågor och svar
===> Installation
===> Moduler, plugins, snippets och kod
===> Design & sidmallar
=> Dokumentation, guider och översättningar
===> Dokumentation
===> Guider
===> Översättningar
=> Webbgemenskap
===> Meddelanden
===> Presentera dig själv
===> Visa upp dina webbsidor
===> Ordet fritt
-----------------------------
Spanish Community
-----------------------------
=> Soporte
===> FAQ
===> Instalación
===> Modulos, Plugins, Snippets & Código
===> Diseño y plantillas
=> Documentación, Tutoriales y Traducciones
===> Documentatción
===> Tutoriales
===> Traducciones
=> Comunidad
===> Anuncios
===> Presentaciones personales
===> Muestra de sitios
===> El Café
-----------------------------
TÜRKÇE (Turkish)
-----------------------------
=> Destek
===> SSS
===> Kurulum
===> Modüller, Pluginler, Snippetlar & Kodlar
===> Dizayn & Temalar
=> Belgeleme, Eğitmenler ve Çeviri
===> Belgeleme
===> Eğitmenler
===> Çeviri
=> Topluluk
===> Duyurular
===> Kendinizi Tanıtın
===> Site Vitrini
===> Konu Dışı