web-dev-qa-db-ja.com

Magentoでスキンパスを取得しますか?

Myfunc.phpに保存したMagentoストア用のカスタム関数PHPがいくつかあります。いくつかの異なる.phtmlファイルでそれを要求する必要があります。どうすればよいですか?

つまり、絶対パスを使用することはできますが、別のサーバーに移行する場合、それは汚れており、おそらく問題になるでしょう。

今のところ私は:

require('/home/myuser/public_html/app/design/frontend/default/mytheme/myfunc.php');

プログラムでスキンパス(/ home/myuser/public_html/app/design/frontend/default/mytheme /)を参照するにはどうすればよいですか?

44
datasn.io

Magentoのテーマが実際のURLを処理する方法は次のとおりです(パーシャルビュー-phtmlファイル)。

echo $this->getSkinUrl('images/logo.png');

ディスク上のイメージディレクトリへの実際のベースパスが必要な場合は、次を使用します。

echo Mage::getBaseDir('skin');

この優れたブログ投稿では、さらにいくつかのベースディレクトリタイプを利用できます。

http://alanstorm.com/magento_base_directories

105
philwinkle

最初の注意点

Mage::getBaseDir('skin')

only Magentoインストールのスキンディレクトリへのパス(/ your/magento/dir/skin)を返します。

次を使用して、現在使用されているスキンディレクトリへの絶対パスにアクセスできます。

Mage::getDesign()->getSkinBaseDir()

このメソッドは、結果を変更するためのオプションのパラメーターとして連想配列を受け入れます。

次のキーが認識されます。

  • _ areafrontend(デフォルト)またはadminhtml
  • _ packageパッケージ
  • _ themeテーマ
  • _ relativeこれが設定されている場合(キーとして)、Mage :: getBaseDir( 'skin')からの相対パスが返されます。

あなたの場合、正しい答えは次のとおりです。

require(Mage::getDesign()->getSkinBaseDir().DS.'myfunc.php');
18
Deus777

Phtml applyで使用するには:

echo $this->getSkinUrl('your_image_folder_under_skin/image_name.png');

Cmsページでスキンパスを使用するには:

<img style="width: 715px; height: 266px;" src="{{skin url=images/banner1.jpg}}" alt="title" />

この部分====> {{skin url = images/banner1.jpg}}

これがあなたのお役に立てば幸いです。

13
Nikhil_K_R

現在のスキン URLを取得するには、このMage::getDesign()->getSkinUrl()を使用します

8

まず、デザインフォルダーに関数を含むphpファイルを作成することはお勧めしません。新しいモジュールを作成するか拡張し(コアからローカルにヘルパーをコピーし、そのクラスに機能を追加する)、app/code/coreのファイルを変更しないでください。

あなたの質問に答えるためにあなたが使用することができます:

require(Mage::getBaseDir('design').'/frontend/default/mytheme/myfunc.php');

ベストプラクティス(開始時)は、/ app/code/local/Mage/Core/Helper/Extra.phpにphpファイルを作成することです。

<?php
class Mage_Core_Helper_Extra extends Mage_Core_Helper_Abstract
{

    public function getSomething()
    {
        return 'Someting';
    }

}

そして、それをphtmlファイルで使用するには:

$this->helper('core/extra')->getSomething();

またはすべての場所で:

Mage::helper('core/extra')->getSomething();
1