この構文は、必要に応じて機能するはずです。
$category = Mage::helper('catalog/data')->getCategory();
$continues = ($category ? $this->__(' or <a href="%s">continue shopping</a>', $category->getUrl()) : '');
$message = $this->__('%s was added to your shopping cart. Click to <a href="/checkout/cart/" id="itemAdder" class="addSuccess">View Your Cart</a>%s.', Mage::helper('core')->escapeHtml($product->getName()), $continues);
$this->_getSession()->addSuccess($message);
コードで何が起こっているか:
- カテゴリを取得する
- カテゴリが存在するかどうかを確認し、存在する場合は継続テキストを設定し、存在しない場合は空白の値に設定します。( PHP三項演算子を使用)
- 標準メッセージに $continues 変数を含める
- セッションに成功メッセージを追加します。
の簡単な説明$this__('Text here %s', $variable)
この関数は、Magento で主にテキストの翻訳に使用されます。
使用されているの%s
は、実際には関数に渡された変数に置き換えられます。
たとえば、これがあるとします:$this__('Hello, my name is %s', $name)
この場合、 の場合$name = 'John';
、出力は次のようになります。Hello, my name is John
複数の変数を定義することもできます。あなたが持っている場合:
$this__('Hello, my name is %s and I am a %s', $name, $jobtitle)
そして$name = 'John'
、$jobtitle = 'Farmer'
出力は次のようになります。
Hello, my name is John and I am a Farmer.
は%s
、変数が定義された順序で置き換えられます。したがって、 の最初のインスタンスは%s
最初の変数 に$name
置き換えられ、2 番目のインスタンスは に置き換えられ$jobtitle
ます。必要な数の変数を定義できますが、変数は特定の順序にする必要があることを知っておいてください。