Magento

Magento eコマースプラットフォームのユーザー向けのQ&A

1
Magento 2:遅いクエリをログに記録する
M1に戻ると、次の変数を変更することで、遅いクエリをログに記録できますlib/Varien/Db/Adapter/Pdo/Mysql.php。 /** * Write SQL debug data to file * * @var bool */ protected $_debug = false; /** * Minimum query duration time to be logged * * @var unknown_type */ protected $_logQueryTime = 0.05; /** * Log all queries (ignored minimum query duration time) * * @var bool …

1
Magento2での複数カートまたは分割見積もり
通常の商品とベンダーの商品の2つのカートを表示します。 見積もりを分割したり、複数の見積もりを作成したりして、複数のカートを作成することはできないと思います。 Magento 2がQuoteの個別のモジュールだからです。誰がどのようにして私の要件を達成できるか教えてもらえますか? ありがとう

1
ui-componentsを使用してフォームフィールドを読み取り専用にする方法は?
私のMagento 2モジュールには、フォームフィールドのこのuiコンポーネント定義があります。 <field name="name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Some Label</item> <item name="formElement" xsi:type="string">input</item> <item name="source" xsi:type="string">something_here</item> <item name="sortOrder" xsi:type="number">10</item> <item name="dataScope" xsi:type="string">name</item> <item name="notice" xsi:type="string" translate="true">Enter something here</item> <item name="validation" xsi:type="array"> <item name="required-entry" xsi:type="boolean">true</item> </item> </item> </argument> </field> そして私はそれを読み取り専用にしようとしています。無効になりません。読み取り専用です。 追加してみました: <item name="readonly" …

1
管理パネルで現在のWebサイトIDを取得するにはどうすればよいですか?
複数のWebサイトに関連するカスタム拡張機能を使用しています。問題が発生しました。ウェブサイトIDを取得して、管理パネルで実行するスクリプトコードを定義します。website_id0のような結果を期待しました(store_website表のデフォルトID )。しかし、以下でこの関数を使用すると、常に1が返されます。 /** @var \Magento\Store\Model\StoreManagerInterface */ $this->_storeManager->getStore()->getWebsiteId(); //return 1, expect 0 $this->_storeManager->getWebsite()->getId(); //return 1 私の質問:website_id管理パネルで最新情報を取得したり、adminhtmlエリアで実行される関数を定義したりする方法はありますか? 注: この関数は、フロントエンドとバックエンドの両方で機能する必要があります。 任意の助けいただければ幸いです。

4
Magento 2ですべてのキャッシュを削除した後のエラー
すべてのキャッシュを削除すると rm -rf var/cache/* var/page_cache/* var/view_preprocessed/* var/generation/* エラーが発生しました Warning: ltrim() expects parameter 1 to be string, object given in vendor\magento\framework\Code\Generator\EntityAbstract.php on line 152 Notice: Uninitialized string offset: 0 in vendor\magento\framework\Autoload\ClassLoaderWrapper.php on line 81 Notice: Uninitialized string offset: 0 in vendor\composer\ClassLoader.php on line 317 Notice: Uninitialized string offset: 0 in vendor\composer\ClassLoader.php …

4
ファイルシステムのベストプラクティス
ファイルシステムからファイルを読み取る必要があるMagento 2拡張機能に取り組んでいます。 ECGM2標準を使用してphpスニファを実行すると、basenameまたはのような関数を使用しているという事実について文句を言いdirnameます。 関数dirname()の使用は禁止されています または 関数basename()の使用は禁止されています 同じ効果を得るには、これらの代わりにどのラッパーを使用する必要がありますか? [編集] ここにいくつかのコードがありますが、質問にはそれほど関係ありません。 クラスを拡張するコレクションクラスがあり\Magento\Framework\Data\Collection\Filesystem、グリッド(ui-components)にこのコレクションを一覧表示したいのですが、グリッド内のアクションの1つはダウンロードアクションです。 このため、ファイルの実際の名前を取得して、ダウンロードアクションに送信できるようにする必要があります。 // here $file is dynamic and it can be // folder/filename.xml or folder/subfolder/file.tar.gz //so there is no strict number of folders and subfolders. $file = $downloader->getRelativePath($packageName); $relativeFile = UmcFilesystem::VAR_DIR_NAME . '/' .$file; $absoluteFile = $rootDir->getAbsolutePath($relativeFile); if ($rootDir->isFile($relativeFile) && $rootDir->isReadable($relativeFile)){ …

3
CLIのMAGE_DIRSブートストラップパラメータ
ではpub/index.php、次のコードを使用して、メディアおよび静的アセットの変更URLを設定し、「/ pub」を省略します。 $params[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS] = [ DirectoryList::PUB => [DirectoryList::URL_PATH => ''], DirectoryList::MEDIA => [DirectoryList::URL_PATH => 'media'], DirectoryList::STATIC_VIEW => [DirectoryList::URL_PATH => 'static'], DirectoryList::UPLOAD => [DirectoryList::URL_PATH => 'media/upload'], ]; $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params); 残念ながらCLIスクリプト(bin/magento)にはこのようなものはありません。 Magento\Setup\Mvc\Bootstrap\InitParamListener次のコードでクラスを見つけました: $initParams = $application->getServiceManager()->get(self::BOOTSTRAP_PARAM); $directoryList = $this->createDirectoryList($initParams); しかし、私はこのZend Service Managerがどこでデータを取得し、どのようにしてデータに影響を与えることができるのか理解できません。 私の具体的な問題は、インデクサーが完全なURLを生成するhttp://magento.local/pub/media/...必要があり、現在はのようにする必要があるということです。http://magento.local/media/... 仮想ホストがポイントしpub、「pub」がURLの一部であってはならないことをCLIにどのように伝えることができますか? 理想的には、これは追加のCLIパラメーターや環境変数に依存する必要なく機能するはずです。

1
Magento 2.1.1-コンテンツセキュリティポリシーでセキュリティを向上させる
Magentoの最新バージョン(現在は2.1.1)で正常に動作しているストアがあり、Apache 2.4.7(Ubuntu 14.04)のコンテンツセキュリティポリシーを通じてセキュリティを向上させようとしています。コンテンツページからすべての「<script>」タグを削除して、分離されたfiles.jsを作成しました。 Apacheのセキュリティについて、私は次のように設定しました。 ヘッダーセットContent-Security-Policy "default-src 'self'" ただし、機能していません。Magento自体が「<スクリプト>」タグを追加したようです。最初のソース行の例: <!doctype html> <html lang = "pt-BR"> <head> <スクリプト> var require = { "baseUrl": " http://example.com/pub/static/frontend/Magento/luma/pt_BR " }; </スクリプト> したがって、CSPを構成するには、「安全でないインライン」を有効にする必要があるように思われますが、これは実際には安全ではありません。 ヘッダーセットContent-Security-Policy "default-src 'self' script-src 'self' 'unsafe-inline' 'unsafe-eval'"。 MagentoにCSPを適切に設定する方法を知っている人はいますか?ありがとうございました!

3
管理者ログインのエラー-Magento 2.1
nginx / PHP-FPM WebサーバーにMagento 2.1とPHP 7.0.11をインストールしました。Magentoの管理URLにアクセスし、認証情報でログインすると、エラーが表示されます- " 警告:is_dir():open_basedirの制限が有効です。ファイル(/ etc / pki / tls / certs)が許可されたパス内にありません " 同じサーバー設定のMagento 2.0インストールでこれに遭遇したことがないため、これはMagento 2.1の問題のようです。 この問題を修正するために"/etc/pki/tls/certs"、open_basedir設定に追加しました。 私の質問は: このopen_basedirエラーは本当に問題なのですか、それとも別の原因が原因ですか? "/etc/pki/tls/certs"open_basedir設定にセキュリティリスクを追加することはありますか?open_basedirに追加するのは奇妙に思えます。

1
Magento 2:チェックアウトのストリートフィールドにプレースホルダーテキストを追加する方法
バックエンドでは、住所を3行に設定しました。 各フィールドに異なるプレースホルダーを配置したいと思います。 通り 建物/アパート 範囲 このようにして、ユーザーはより構造化された方法でデータを入力できます。 同様の質問はここにあります: Magento 2-レイアウトxml / ui引数を使用してチェックアウトフォームの住所に影響を与える方法 ただし、回答は、住所フィールドにプレースホルダーを含めるためのソリューションを提供しません。 私が達成したいのは、各住所フィールドに異なるプレースホルダーを設定することです。 私のコード: app / code / Jsp / Placeholder / etc / 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"> <module name="Jsp_Placeholder" setup_version="2.0.0" /> </config> app / code / Jsp / Placeholder / registration.php: <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Jsp_Placeholder', __DIR__ ); …

1
Magento 2 CMSページのgetList()リポジトリメソッドが期待されるオブジェクトを返さない
すべてのCMSページを削除する必要があります。 これがコードです: 名前空間Soon \ Core \ Setup; Magento \ Cms \ Api \ PageRepositoryInterfaceを使用します。 Magento \ Framework \ Api \ SearchCriteriaInterfaceを使用します。 クラスCms { / ** * @var SearchCriteriaInterface * / プライベート$ searchCriteria; / ** * @var PageRepositoryInterface * / プライベート$ cmsPageRepository; / ** * Cmsコンストラクタ。 * @param SearchCriteriaInterface $ searchCriteria …
10 magento2 

3
市外局番が設定されていません
私はこのエリアコードが設定されていないエラーを回避しようとしていて、ここで他のコードを参照していますが、追跡に問題があります。 2.0.7を2.1.0にアップグレードしようとしていて、実行するポイントに到達したとき: php bin / magento setup:upgrade -vvv 私はこれをエラーとして受け取ります。 [Magento \ Framework \ Exception \ SessionException]エリアコードが設定されていません:セッションを開始する前にエリアコードを設定する必要があります。 例外トレース:()/opt/bitnami/apps/magento/htdocs/vendor/magento/framework/Session/SessionManager.php:176 Magento \ Framework \ Session \ SessionManager-> start()at / opt / bitnami / apps / magento / htdocs / var / generation / Magento / Framework / Session / Generic / Interceptor.php:50 Magento …

1
Magento 2.1.0で単純なajax呼び出しを行う方法
私のphtmlファイルの1つに簡単なボタンを追加しました。 <input type='button' name='emq_zip_btn' class='emq_zip_btn' value='Go'> カスタムモジュール(Ved_Mymodule)から1つのカスタムjsファイル( "emq.js")を追加しました。 require([ "jquery", "jquery/ui" ], function($v){ //<![CDATA[ $v = jQuery.noConflict(); $v(document).ready(function() { console.log('jquery loaded from emq.js'); $v(".emq_zip_btn").on('click',function(e) { console.log('clicked'); }); }); //]]> }); 上記のボタンをクリックすると、「clicked」がコンソールに表示されます。つまり、jQueryは正しく動作しています。 カスタムモジュールVed_Mymoduleのコントローラーファイルを次に示します。 Ved \ Mymodule \ Controller \ Index \ Index.php: <?php namespace Ved\Mymodule\Controller\Index; use Ved\Mymodule\Model\NewsFactory; use Magento\Framework\App\Action\Action; use Magento\Framework\App\Action\Context; …

1
Magento 2 EE 2.1でのメッセージキュー構成の変更
私はEEメッセージキュー機能を見てきましたが、それは不完全なようです。 2.1より前のバージョンではetc/queue.xml、公式ドキュメントに記載されているように、パブリッシャー、トピック、コンシューマー、キューを定義するための合理的な機能の実装がありました。http://devdocs.magento.com/guides/v2.0/config-guide /mq/config-mq.html。 構成で定義されたトピックと一致しない限りバインディングを作成できないなどの制限があり、可能なすべてのトピックの可能性を事前に定義する必要があったため、柔軟性が制限されていました。繰り返し実行されるインストールスクリプトがないため、インストーラースクリプトを再度実行するには、少しハッキングする必要がありました。 2.1以降、パブリッシャー、トピック、コンシューマー、バインドの各要素はetc/queue.xml非推奨になり、設定はとの間etc/queue.xmlで分割されetc/communication.xmlます。ここに示されています:https : //github.com/magento/magento2-samples/blob/master/sample- module-sample-message-queue / etc /。非推奨のパブリッシャー/トピック/コンシューマー/バインドスキーマは引き続き単独で使用できますが、改訂されたブローカー/キュースキーマと併用することはできません。 ただし、これは公式ドキュメントには記載されておらず、構成が分割されており、場合によっては複製が必要な理由がすぐには明らかにされていません。さらに重要なこととして、現在バインディングを定義する機能がなく、代わりにトピック名がルーティングキーとして使用されているようです。これにより、キューのバインドに特殊文字を使用することもできなくなります。したがって、リファクタリングされたようですが、機能が失われています。 肯定的な点として、magento/module-amqpモジュールは繰り返しインストーラースクリプトを使用するようになり、を実行すると、キュー構成の変更がインストールされますmagento setup:upgrade。magento/module-mysql-mqただし、この変更はまだモジュールに適用されていません。 だから私は知りたいです:a)私はこれをすべて間違っていて、実際にバインディングを作成する方法があり、見た目よりも柔軟ですか?b)構成が分割されているのはなぜですか? 付記として、これを実験してきたので、私はhttps://www.rabbitmq.com/tutorials/tutorial-four-php.htmlにあるRabbitMQチュートリアルのトポロジーの例の1つを使用しています: この非推奨の構成は、大部分のトポロジを実現しました。 queue.xml: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/queue.xsd"> <topic name="quick.orange.rabbit" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="quick.orange.fox" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.pink.rabbit" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.orange.elephant" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.brown.fox" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <consumer name="consumerOne" …

1
モジュールは削除されましたが、Magento2のデータベースにテーブルが残っています
magento2のインストーラースクリプトを使用して、1つのモジュール/拡張機能を作成しました。 その後それを削除しましたが、データベース内のテーブルはまだ残っています。 モジュール/拡張機能を完全にアンインストールし、データベースから拡張機能/モジュールのテーブルを削除する方法を誰かに教えてもらえますか?

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