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

カスタムモジュールの開発に関する質問

3
Magento 2カスタムモジュールによって追加された属性をアンインストールする方法
これまでのところ、カスタムモジュールをアンインストールするときに、uninstall.phpwhich extends を使用することにより、カスタムモジュールによって追加されたカスタムテーブルまたは列を削除できることがわかっています\Magento\Framework\Setup\UninstallInterface。しかしInstallData.php、モジュールをアンインストールするときに追加されたカスタム属性を削除するにはどうすればよいですか?前もって感謝します!

1
カスタムモジュールページでSSLを使用するにはどうすればよいですか?
いくつかのページを含むモジュールを作成しましたが、このページで、顧客のログインページのように、URLでSSLを強制的に使用する方法を知りたいと思います。すべてのページで必要なわけではありませんが、必要なページもあります。 (私は試していませんが)頭に浮かぶのは、アクションコントローラーでURLを評価し、https://magento configでSSLが有効になっていて、現在のURLがそれを使用していない場合にリダイレクトすることです。 このアプローチは正しいですか?または、この種の設定は構成ファイルに含まれますか?

3
構成定義値のデフォルト値を設定しますか?
system.xmlファイルで定義している構成値にデフォルト値を割り当てるにはどうすればよいですか?現在はデフォルトで「いいえ」になっていますが、デフォルトで「はい」にしたいです。 これが私の現在の定義コードです: <catalog> <groups> <my_val> <label>My Label</label> <frontend_type>text</frontend_type> <sort_order>160</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> <my_inner_val translate='label comment'> <label>Enable seperate cart items</label> <frontend_type>select</frontend_type> <source_model>adminhtml/system_config_source_yesno</source_model> <sort_order>1</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> </my_inner_val> </fields> </my_val> </groups> </catalog>


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

2
Magento 2:独自のカスタムキャッシュタイプを作成する方法
Magento 1では、で以下を宣言することにより、独自のキャッシュタイプを作成することができましたconfig.xml。 <global> <cache> <types> <custom translate="label,description" module="module"> <label>Custom Cache</label> <description>This is my custom cacge</description> <tags>CUSTOM_CACHE_TAG</tags> </custom > </types> </cache> </global> その結果、システム>キャッシュ管理の下のバックエンドに新しいキャッシュタイプが追加され、CUSTOM_CACHE_TAGキャッシュタグに関連するキャッシュをフラッシュする機能が追加されます。 M2でそれは可能ですか?それを達成する方法は?

4
Magento 2では、シンボリックリンクを使用したモジュールのリンクは許可されていません
シンボリックリンクを使用してローカル開発モジュール(個別のgitリポジトリ)をMagento 2に追加しましたが、PHTMLテンプレートに到達するまでは問題なく動作していました。徹底的なデバッグの結果、Magento 2ファイルシステムクラス(Magento\Framework\Filesystem\Directory\Read)がisExists()メソッドとgetAbsolutePath()呼び出しを組み合わせて使用し、PHTMLテンプレートが存在するかどうかを確認しました。ただし、このgetAbsolutePath()メソッドは相対パスがMagento 2ファイルシステム内に存在するかどうかをチェックし、存在しない場合はMagento 2ルートを先頭に追加します。それ。私の場合、モジュールは別のリポジトリにあり/git/A、Magentoは/site/Bこの中にあり、この動作はPHTMLテンプレートの存在を確認し/site/B/git/Aます。 つまり、Magento 2ルートファイルシステムの外部にあるPHTMLテンプレートは、システム設定の[Symlinksを許可する]がオンになっているかどうかに関係なく、取得されません。設定は機能しているようですが、シンボリックリンクのソースがまだMagento 2ファイルシステム内にある場合のみです。 他の誰かがこれに遭遇しましたか?外部のgitリポジトリで開発を処理する最良の方法は何でしょうか?
10 module  magento2 

3
システム構成のカスタム動的フィールドに画像フィールドを追加するにはどうすればよいですか?
管理者ユーザーが必要なだけフィールドを生成できるようにしたい。別の拡張機能で解決策を見つけ、それを出発点として使用しました。だから私はこのようなコードを持っています: でsystem.xml: <showcases translate="label"> <label>Showcases</label> <frontend_type>text</frontend_type> <sort_order>10</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> <showcase translate="label"> <label>Showcases</label> <frontend_type>select</frontend_type> <frontend_model>awesomehome/adminhtml_showcases</frontend_model> <backend_model>adminhtml/system_config_backend_serialized</backend_model> <sort_order>410</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> </showcase> </fields> </showcases> そしてでNamespace/Awesomehome/Block/Adminhtml/Showcases.php: class Namespace_Awesomehome_Block_Adminhtml_Showcases extends Mage_Adminhtml_Block_System_Config_Form_Field { protected $_addRowButtonHtml = array(); protected $_removeRowButtonHtml = array(); protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) { $this->setElement($element); $html = '<div id="showcase_template" style="display:none">'; $html …

2
カスタムモジュールからコアテンプレートファイルを上書きする方法
2つのファイルを上書きしたい。つまり、view.phtmlおよびprint.phtmlの販売注文です。 (パス:app/design/frontend/base/default/template/sales/order/) app/design/frontend/base/default/template/<My Module Name>/sales/order/コアview.phtmlとprint.phtmlファイルが上書きされないようにパスを作成するモジュールを作成しています。 このタスクを達成する方法を教えてください。

3
モジュールのアンインストール
次のコマンドでCLIを使用して、composer経由でインストールしたモジュール(自分のもの)をアンインストールしようとしています。 bin/magento module:uninstall -r [Namespace]_[Module] @RyanHによってここで提供された回答に基づいて、Setup/Uninstall.phpモジュールのデータベース関連データを削除するファイルを作成しました。 これは完全に機能しますが、アンインストール手順がハングします。 スクリプトを一晩実行しても、結果は同じです。 拡張ファイルはまだvendorモジュールにあります。 ファイルの権限や所有者には触れませんでした。 正しいこと: データベース関連のデータが削除されます モジュール名がテーブルから削除されます setup_module モジュール名はから削除されapp/etc/config.phpます。 何がうまくいかない: モジュールファイルはvendorフォルダーに残っています。 コンソールコマンドは完了しません。 コンソール出力: コードやデータベーステーブルを削除しようとしています。よろしいですか?[y / N] y メンテナンスモードを有効にし ていますデータベースバックアップなしでデータを削除しています。 [名前空間] _ [モジュール]の データを 削除していますデータベースのモジュールレジストリから[名前空間] _ [モジュール]を 削除していますデプロイメント構成のモジュールリストから[名前空間] _ [モジュール]を削除していますMagentoコードベースからコードを削除しています: この後、ハングします。 アンインストールプロセスを完了する、または少なくともデバッグする方法はありますか?

1
Magento 2アップグレードスクリプトを作成して、カスタムモジュールテーブルに新しいフィールドを追加/更新します
カスタムテーブルに新しいフィールドを追加/更新するためのMagento 2(CE安定版)アップグレードスクリプト(カスタムモジュール内)の作成について、アイデアや提案はありますか? 「InstallSchema」について知っていますが、モジュールテーブルをアップグレードするための「UpgradeSchema」のようなものはありますか? 例を挙げて詳しく説明してください。

2
php bin / magento setup:upgradeを使用する場合
開発者モードでモジュール内のいくつかのファイルを変更する多くの状況がありますが、実行するまで変更はフロントエンドで行われませんでした php bin/magento setup:upgrade setup:upgradeMagento 2でコマンドを実行するタイミングとその目的は何ですか? 変更を加えるたびに、setup:upgradeコマンドを実行するまで変更が表示されないので、それは私には奇妙です。var / cacheを削除しても、表示されません。誰でもこれの理由を知っていますか?

6
Magento 2:現在、コントローラーでの製品の価格変更は機能しません!
私は私の製品の価格を次のように変更しようとしました: Controller.php: [編集] <?php namespace MassiveArt\ShoppingCart\Controller\Index; use Magento\Catalog\Model\ProductFactory; use Magento\Checkout\Model\Cart; use Magento\Framework\App\Action\Action; use Magento\Framework\App\Action\Context; use Magento\Framework\Controller\Result\JsonFactory; use Magento\Framework\Data\Form\FormKey; class Index extends Action { /** * @var FormKey */ protected $formKey; /** * @var Session */ protected $checkoutSession; /** * @var Cart */ protected $cart; /** * @var ProductFactory */ protected …

2
モデルをロードする適切な方法は何で、なぜですか
私はMagentoでかなりの経験を持っていますが、モデルをロードする方法が正しい方法とその理由を理解していないことに気付きました。私はトピックについてできる限りのことを読みましたが、このようなことを説明している人々は実際には説明するのに十分な深さでは決してありません。ロードしたいモデルのリポジトリがないとしましょう。 これまでは、コンストラクターで常にモデルを使用していて、単純にそれをロードしていました。 public function __construct( \Vendor\Module\Model\Something $somethingModel ) { $this->somethingModel = $somethingModel; } public function getTestById($id) { return $this->somethingModel->load($id); } そして、それは常に意図したとおりに機能しました。また、コアで一般的に使用されているか、少なくとも使用されていたと確信しています。 しかし、私は同僚の一人が modelFactory->create()->load($id) 工場が新しいエンティティの作成に使用されていることを理解している限り、たとえば、新しい製品を作成したい場合は、ファクトリを作成し、データを入力して保存できます。しかし、再び、トピックの調査を開始し、この方法でモデルをロードしていたファビアンシュメングラー(Magento 2でリポジトリとファクトリを使用する必要がある場合)の例を見ました。 tそれが「サービス契約の一部ではない」と言うことのほかに理由を説明してください。リポジトリがサービスコントラクトの一部であることを理解している限り、リポジトリからは利用できないモデルの読み込みに関しては、ここでは何の関係もありません。 さらに混乱を加えるために、作成されたmodelFactoryからresourceModelを取得してモデルをロードする方法も見つけました。VinaiKoppによって提示されました(Magento 2でカスタムモジュールのサービスコントラクトを実装する方法は?)。リソースモデルを直接使用するべきではないことをいつも読んだので、完全に失われました。 だから、ええ、誰かが正しい方法を教えてもらえますか?なぜ私が他のすべての方法の代わりにそれを使うべきなのでしょうか?

2
カスタム入力フィールドを持つ製品を「カートに追加」してデータベースに保存する方法は?
製品ページのカートに追加フォームを上書きするカスタムモジュールを作成し、catalog_product_view.xmlファイルを使用して正常に実行しました。これで、製品ページの正面図にカスタム入力フィールドが表示されますが、このフィールドの値を数量、価格などとともにデータベースに送信し、注文履歴で再度取得する必要があります。 私はしばらくの間を検索しても、新しいカスタム列の作成に成功しましたquote_item&sales_orderテーブル。(私の情報によると、カートに追加するエントリがに移動しquote_item、チェックアウト後に注文がsales_orderテーブルに移動します。それについて間違っている場合は、私もまだ学習者なので、これも訂正してください。) 何度も試して検索しましたが、適切な解決策が見つかりませんでした。私のベンダー名はCloudwaysで、モジュール名はMymoduleです。以下は私のモジュールのファイルです: Cloudways / Mymodule / registration.php <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Cloudways_Mymodule', __DIR__ ); Cloudways / Mymodule / 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="Cloudways_Mymodule" setup_version="1.0.1"></module> </config> Cloudways / Mymodule / Setup / UpgradeSchema.php <?php namespace Cloudways\Mymodule\Setup; use Magento\Framework\Setup\UpgradeSchemaInterface; use Magento\Framework\Setup\SchemaSetupInterface; use Magento\Framework\Setup\ModuleContextInterface; class UpgradeSchema implements UpgradeSchemaInterface …

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