タグ付けされた質問 「xml」

XMLファイルとXML処理に関する質問を示します。

6
レイアウトXMLロードのデバッグ
TL; DR:レイアウトの読み込みをデバッグする方法はありますか?あるモジュールのレイアウトは別のモジュールと競合していると思います。 前の質問に関連して:すべてのテーマに表示されるモジュールレイアウトを作成する方法 ローカルテスト環境(開発PC)にモジュールを正常にロードし、3つの異なるテーマ間の切り替えをテストしましたが、問題ありません。その後、私たちが持っているテスト環境または「運用前」環境でモジュールを更新しました。ここには、さまざまなモジュールがあります。この環境では、モジュールは製品フロントページで必要なものを表示しません。いくつかのテストの後、問題はレイアウトの読み込みプロセスにあるべきだという結論に至りました。 だから、レイアウトの読み込みをデバッグする方法、さまざまなモジュールが独自のブロックを置換または追加する方法はありますか?私のポイントは、私のモジュールと競合するモジュールが少なくとも1つあると信じていることです。そして、非常に多くのモジュールがあるため、モジュールを1つずつ無効にするのとは異なるアプローチを探しており、どれが問題のあるものかを確認しています。 私のconfig.xmlファイルは次のとおりです。 <?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Dts_Banners> <version>0.1.0</version> </Dts_Banners> </modules> <global> <blocks> <banners> <class>Dts_Banners_Block</class> </banners> </blocks> .... <events> <controller_action_layout_load_before> <observers> <attributesethandle> <class>Dts_Banners_Model_Observer</class> <method>addAttributeSetHandle</method> </attributesethandle> </observers> </controller_action_layout_load_before> </events> </global> .... </config> 私のオブザーバーファイル: <?php class Dts_Banners_Model_Observer { /** * Checks if the search text on the list …

3
レイアウトXMLで条件付きでブロックを表示/非表示
MagentoのレイアウトXMLに条件付きで(管理パネルの設定に応じて)ブロックを追加する方法は? configがアクションに対して真であるかどうかを確認できます。以下の例でsample/config/show_toplinksは、管理パネル(System-> Configuration)の設定がtrueの場合、テンプレートファイルlinks.phtmlがトップリンクのレンダリングに使用されます。sample/config/show_toplinksがfalseの場合、デフォルトのテンプレートが使用されます。 <reference name="top.links"> <action method="setTemplate" ifconfig="sample/config/show_toplinks"> <template>page/template/links.phtml</template> </action> </reference> この回避策はWebのどこかにありました。次のように、空のテンプレートをトップリンクのデフォルトテンプレートとして設定できます。 <reference name="top.links"> <action method="setTemplate" ifconfig="sample/config/show_toplinks"> <template>page/template/links.phtml</template> </action> <!-- OR set completely empty template --> <action method="setTemplate"> <template>page/template/empty_template_for_links.phtml</template> </action> </reference> この場合、sample/config/show_toplinksがtrueの場合、テンプレートlinks.phtmlが使用され、トップリンクが表示されます。しかし、場合sample/config/show_toplinksではfalse、その後、empty_template_for_links.phtmlテンプレートが使用され、それが任意のHTMLを返さないとトップリンクが表示されませんので、そのテンプレートは、完全に空です。 管理パネルの構成に応じて、条件付きでブロックを表示または非表示にする他の方法はありますか? この回避策は安全ですか? これにより、予期しないエラーが発生する可能性がありますか? 編集: すべての回答に基づいて、Rick Kuipersのソリューションが私の場合に最も便利に見えると思います。しかし、別の関連する質問があります: <block type="core/template" name="my_block" template="my/block.phtml" /> <!-- ...add more blocks here --> <reference …
32 template  layout  blocks  xml 

4
Magento 2 XML検証
しばらくの間、Magento 2にはXSDファイルを使用してxmlを検証(およびオートコンプリート)する方法がありました。 たとえば、次のmodule.xmlようになりました。 <?xml version="1.0"> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> .... </config> しかし、今module.xmlはこのように見えます: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> .... </config> そのため、xsi:noNamespaceSchemaLocation属性にはが含まれますurn:magento:framework:。 これは、XMLのサーバー側の検証とは関係がないことを知っています。これはまだ機能します。 しかし、xsdへのパスを認識するために、IDEで検証(私の場合はPHPStormですが、それは重要ではありませんが、それ以外のものでも構いません)に戻すにはどうすればよいですか? モジュールのビルド中に古い相対パスを引き続き使用する必要がありますか?またはそれを行うより良い方法はありますか?

4
「imageType」という名前のcomplexTypeをカスタム画像タイプで拡張する
現在開発中のモジュールの目標は、「opengraph_image」と呼ばれるカスタム画像タイプを追加することです。正常に動作するInstallData.phpスクリプトを使用して、新しいEAV属性を追加しました。Magento2バックエンドにログインして製品を変更すると、製品画像のアップロードまたは編集中に画像タイプ「opengraph_image」を選択できます。 ただし、フロントエンドでは、この画像を表示したいと思います。したがって、次のコンテンツを使用して、モジュールにetc / view.xmlファイルを作成しました。 <?xml version="1.0"?> <view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Esites_SEO:etc/custom.xsd"> <media> <images module="Magento_Catalog"> <image id="opengraph_image" type="opengraph_image"> <width>265</width> <height>265</height> </image> </images> </media> </view> しかし、今私は次のエラーを受け取ります: Invalid XML in file /var/www/html/vhosts/magento2/app/code/Esites/SEO/etc/view.xml: Element 'image', attribute 'type': [facet 'enumeration'] The value 'opengraph_image' is not an element of the set {'thumbnail', 'small_image', 'image', 'swatch_image', 'swatch_thumb'}. Line: 5 …
22 magento2  xml 

1
Magento 2に統合されたモジュールにカスタムXMLファイルを含めるにはどうすればよいですか?(MageStackDayミステリー質問2)
500ptsバウンティのMageStackDayボーナス質問と、1年間無料のZ-Rayライセンスを獲得する可能性。詳細はこちら >>をご覧ください << 質問は、Magento 2のコア開発者であるAnton Krilによって提供されました。 質問: 個別の構成セットを持つ拡張機能を作成しています。 この手段は、私が使用することはできませんconfig.xmlか、routes.xmlまたはfieldset.xmlまたは持つMagentoの他の設定xmlファイル。 例。 行と列を持つ「テーブル」設定を定義しているとしましょう。このxmlを以下で使用できます。(それを呼び出すtable.xml) <table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="path/to/table.xsd"> <row id="row1"> <column id="col1" sort="10" attr1="val1"> <label>Col 1</label> </column> </row> <row id="row2"> <column id="col1" sort="10" attr1="val1"> <label>Col 1</label> </column> <column id="col2" sort="20" disabled="true" attr1="val2" > <label>Col 2</label> </column> <column id="col3" sort="15" attr1="val1"> <label>Col 3</label> </column> </row> …

2
Magento2のxmlで許可されるすべての `xsi:type`値は何ですか
Magento 2(ほとんど)では、xmlファイルにリストされているすべての引数にxsi:typeは、引数の値がどのように解釈されるかを決定する属性があります。 たとえばdi.xml、バックエンドモジュールのファイルには以下があります。 <argument name="scopeType" xsi:type="const">Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT</argument> これは、引数scopeTypeの値が定数の値であることを意味しますMagento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT またはこれ <argument name="template" xsi:type="string">Magento_Theme::root.phtml</argument> これは、引数の値がtemplate文字列であることを意味しますMagento_Theme::root.phtml。 このxsi:type属性のすべての可能な値は何ですか?
20 magento2  xml  di 

1
Magento 2-レイアウトXMLのifconfig
magento 2を使用しています。 ブロックコードでifconfig属性を使用できますが、うまく機能します。 <block class="Magento\Catalog\Block\Category\View" name="category_desc_main_column" template="category/desc_main_column.phtml" ifconfig="config_path/group/field" before="category.products"/> しかし、私はそれを移動に使用しようとしましたが、うまくいきませんでした。 <move element="category.image" destination="content" ifconfig="config_path/group/field" before="-"/> 誰がそれを移動に使用する方法を知っていますか?

6
管理者設定エラー:未定義のインデックス:59行目のIterator.phpのid
誰かがこのエラーを私に説明してもらえますか? Exception #0 (Exception): Notice: Undefined index: id in /home/staging/vendor/magento/module-config/Model/Config/Structure/Element/Iterator.php on line 59 #0 /home/staging/vendor/magento/module-config/Model/Config/Structure/Element/Iterator.php(59): Magento\Framework\App\ErrorHandler->handler(8, 'Undefined index...', '/home/asconveyo...', 59, Array) #1 /home/staging/vendor/magento/module-config/Model/Config/Structure.php(92): Magento\Config\Model\Config\Structure\Element\Iterator->setElements(Array, 'default') #2 /home/staging/var/generation/Magento/Config/Model/Config/Structure/Interceptor.php(24): Magento\Config\Model\Config\Structure->getTabs() #3 /home/staging/vendor/magento/module-config/Model/Config/Structure.php(135): Magento\Config\Model\Config\Structure\Interceptor->getTabs() #4 /home/staging/var/generation/Magento/Config/Model/Config/Structure/Interceptor.php(63): Magento\Config\Model\Config\Structure->getFirstSection() #5 /home/staging/vendor/magento/module-config/Controller/Adminhtml/System/AbstractConfig.php(57): Magento\Config\Model\Config\Structure\Interceptor->getFirstSection() #6 /home/staging/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Config\Controller\Adminhtml\System\AbstractConfig->dispatch(Object(Magento\Framework\App\Request\Http)) #7 /home/staging/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor->___callParent('dispatch', Array) #8 /home/staging/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Config\\...', 'dispatch', Object(Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor), Array, …
16 magento2  admin  xml 

2
Magento 2で管理ルートを設定する
Magento 2のコアコードを見ると、管理ルートを設定する方法は2つあるようです。 最初 #File: vendor/magento/module-media-storage/etc/adminhtml/routes.xml <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"> <router id="admin"> <route id="adminhtml"> <module name="Magento_MediaStorage" /> </route> </router> </config> Magento 1に似adminhtmlています。ルート内のモジュールのリストにモジュールを追加すると、Magentoがそれを確認します。 二番目 #File: vendor/magento/module-cms/etc/adminhtml/routes.xml <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"> <router id="admin"> <route id="cms" frontName="cms"> <module name="Magento_Cms" before="Magento_Backend" /> </route> </router> </config> 新しいルート(cms上記のID )を設定し、モジュールを追加します。 これらの1つはMagento 2でこれを行う「正しい/好ましい」方法ですか?そうでない場合、2つの違いは何ですか?すなわち、いつあなたが他のものの上に1を使うでしょうか? 特定の問題を解決しないように頼みますが、正しい方法でルートを作成し、Magento 1モジュールに似た問題(ajaxライブラリ、セキュリティなどでのプル)が回避されるようにします。
15 magento2  php  xml  router 

2
モジュールのconfig.xmlからデータを取得する方法
モジュールAでは、モジュールBおよびCのファイルconfig.xmlからデータを取得する必要があります。これ専用のメソッドまたはクラスはありますか? 特に<default>、モジュールBとCのシステム構成のデフォルト値を復元できるように、ノードのXML構造と値を取得する必要があります。以下は、Wishlistモジュールのconfig.xmlの例です。 <config> <default> <wishlist> <general> <active>1</active> </general> <email> <email_identity>general</email_identity> <email_template>wishlist_email_email_template</email_template> </email> </wishlist> </default> </config> 私が知る限り、Magentoはすべてのモジュールのconfig.xmlファイルをロードするので、このデータはすでにキャッシュされており、キャッシュから何らかの方法で取得できるのではないかと思っていましたか?そうでない場合、プログラムで取得する方法は?

1
XMLコンパイルエラーのエラーメッセージの改善
Magentoは、エラーの表示に関しては(あるべきところに)かなり保護的です。開発者モードが有効になっている場合(開発中にそうであるように)、アプリケーションはランタイムエラーフィードバックをユーザーにバブルアップさせます。XMLコンパイルエラーの場合、このフィードバックはほとんど役に立ちません。 致命的エラー:メッセージ「警告:simplexml_load_string():エンティティ:行4:パーサーエラー:[...] / lib / Varien / Simplexml / Configのドキュメントの先頭でのみ許可されるXML宣言」でキャッチされない例外「例外」。 [...] app / code / core / Mage / Core / functions.phpの245行目にある510行目のphp これは、解析できない文字列をVarien_Simplexml_Config::loadFile()表示::loadString()した結果です。 public function loadFile($filePath) { if (!is_readable($filePath)) { //throw new Exception('Can not read xml file '.$filePath); return false; } $fileData = file_get_contents($filePath); $fileData = $this->processFileData($fileData); return $this->loadString($fileData, $this->_elementClass); …

3
Magentoの新しいカスタムブロックモジュール
Magentoバージョン1.8.1.0を使用しています。 新しいホームページを作成するために使用する新しいカスタムブロックモジュールを作成しようとしています。 名前空間:十字軍 モジュール:CLHomePage ブロックタイプ:十字軍の家 クラス:Qwerty(テスト中のみ) デザインパッケージ:クルセイダー テーマ:デフォルト これは私がこれまでに持っているものです: \ app \ etc \ modules \ Crusader_All.xml <?xml version="1.0"?> <config> <modules> <Crusader_CLHomePage> <active>true</active> <codePool>local</codePool> </Crusader_CLHomePage> </modules> </config> \ app \ code \ local \ Crusader \ CLHomePage \ etc \ config.xml <?xml version="1.0"?> <config> <modules> <Crusader_CLHomePage> <version>0.0.1</version> </Crusader_CLHomePage> </modules> <global> …

1
XML関連の例外をデバッグする方法は何ですか?
私はgvimでMagento 2を使用してコーディングしています。Magento2は初めてです。 私は何度もxml関連のエラーをデバッグするのに苦労しました。しかし、このような状況では私は本当に動揺します。このエラーの原因となっているファイルがどこにあるかはわからず、デバッガーもどちらもわかりません。 次のようにしてください:xmlファイルが無効です。実際には、その下にmodule.xml、routes.xml、config.xml、{layout} .xml、di.xmlまたはview / layout dirsがあるモジュールを作成しました。どのファイルの12/89 / ..行が無効ですか?生成された/マージされたもの?var / generatedに何も見つからず、コマンドラインが機能しなくなったため、迷っています。このエラーが何であるかを見つけるためのデバッグ方法は何ですか? どんな助けでもありがたいです。 致命的なエラー:キャッチされなかったMagento \ Framework \ Exception \ LocalizedException:無効なドキュメント要素 'item':タイプ定義は抽象的です。行:12要素 'item'、属性 'name':キーid-constraint 'itemName'のフィールドのXPath '@n​​ame'は、複数のメンバーを持つノードセットに評価されます。行:89要素 'item':キーアイデンティティー制約 'itemName'のすべてのフィールドがノードに評価されるわけではありません。行:89要素 'item'、属性 'name':キーID制約 'itemName'のフィールドのXPath '@n​​ame'は、複数のメンバーを持つノードセットに評価されます。行:90要素 'item':キーアイデンティティー制約 'itemName'のすべてのフィールドがノードに評価されるわけではありません。行:90 /var/www/html/lib/internal/Magento/Framework/Config/Reader/Filesystem.php:
11 magento2  php  xml  debugging 

1
Magento 2:XMLを介してコンテナー内にテキストを追加する方法
フッターのリンクリストの前に1行のテキストを表示しようとしています。これを行うためのテンプレートファイルを作成することは、このタスクのリソースの無駄遣いのようです。私はそれを理解していたので、Magento\Framework\View\Element\Textレイアウトにブロックを含むテキストを出力できました。 XML <referenceContainer name="footer"> <container name="footer.column.about_us" htmlTag="div" htmlClass="column about-us" before="-"> <container name="column.about_us.label" htmlTag="div" htmlClass="label"> <block class="Magento\Framework\View\Element\Text" name="about_us.label"> <arguments> <argument name="data" xsi:type="array"> <item name="text" xsi:type="string">About Us</item> </argument> </arguments> </block> </container> <block class="Magento\Framework\View\Element\Html\Links" name="footer_links.about_us"> <arguments> <argument name="css_class" xsi:type="string">footer links</argument> </arguments> </block> </container> </referenceContainer> 上記は何も出力せず、これがサポートされているかどうか、私が間違っているだけなのか、これを達成するためのより適切な方法があるかどうかはわかりません。 明確にするために、私が現在見ているのは: <div class="column about-us"> <ul class="footer links">...</ul> </div> …

6
Magento 2のreferenceBlockの「名前」を見つける
ページからいくつかのブロックを削除したい。たとえば、ロゴのコンテナを削除したいとします。 次に/app/design/frontend/MYVENDORNAME/MYTHEMENAME/Magento_Theme/layout/default.xml、次のコードで作成します。 <page layout="3columns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <referenceBlock name="logo" remove="true"/> </page> この場合、ベーステーマのファイルを検索して、この参照ブロックの名前(name = "logo")を見つけることができました。 問題は、ブロックの名前を見つけるより良い方法があるかどうかです。MagentoのXMlファイルで使用されているすべての名前のリストがあるはずです。それとも何らかのリファレンスですか? たとえば、メニューを削除したいとします(<div class="sections nav-sections">...</div>)。その名前を知るにはどうすればいいですか
11 magento2  layout  xml 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.