2014年11月6日木曜日

Mac OS X 10.10 YosemiteでPhp Storm 8が起動しない場合

PhpStormを最近愛用しているけど、Yosemiteにアップデートしたら起動しない。

OS:Mac OS X 10.10 Yosemite
PhpStorm:8
Java:1.7, 1.8 両方ともOracle

Appleのデベロッパーフォーラムですでにスレッドが立っていますが、
(https://devforums.apple.com/thread/246986)
Dyld Error Message:
  Symbol not found: _CGContextSetAllowsAcceleration
  Referenced from: /Library/Java/JavaVirtualMachines/1.6.0_29-b11-397.jdk/Contents/Libraries/libawt.jnilib
  Expected in: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices

上記のようなエラーが吐かれてPhpStormは落ちます。
問題はJava1.6にあるようですが、いろいろやるのも面倒なので1.8で動くようにしてあげたら起動した。
動作保証外だと思うので自己責任で。
PhpStorm.appのパッケージを表示してContents/Info.plistの
<key>JVMVersion</key>
<string>1.6*</string>
<key>JVMVersion</key>
<string>1.8*</string>
にしちゃう。1.7をインストールしてるひとは1.7でいんじゃないかな?

2014年10月5日日曜日

Magentoのダッシュボード下部に表示される標準の住所を日本語の並び順にする

ダッシュボードの標準住所(購入者住所と配送先住所)が英語圏表記!
直したくてテンプレートファイルを探しまわったけどない。。。

そしたらテンプレートファイル制御じゃなくて管理画面でテンプレートを 編集するとのこと。

システム>設定>顧客設定の下の方に【住所表記テンプレート】がある。
これだ!これのHTMLがそれらしい。

とりあえず、下記のように直した。

{{if postcode}}{{var postcode}}{{/if}}<br/>
{{if region}}{{var region}}{{/if}}{{if city}}{{var city}}{{/if}}
{{if street1}}{{var street1}}<br />{{/if}}
{{depend street2}}{{var street2}}<br />{{/depend}}
{{depend street3}}{{var street3}}<br />{{/depend}}
{{depend street4}}{{var street4}}<br />{{/depend}}
{{depend company}}{{var company}}<br />{{/depend}}
{{depend prefix}}{{var prefix}} {{/depend}}{{var lastname}} {{depend middlename}}{{var middlename}} {{/depend}}{{var firstname}}{{depend suffix}} {{var suffix}}{{/depend}}<br/>
{{depend telephone}}電話番号: {{var telephone}}{{/depend}}
{{depend fax}}<br/>FAX番号: {{var fax}}{{/depend}}
{{depend vat_id}}<br/>VAT: {{var vat_id}}{{/depend}}

VATは表示しない設定だからいらないような気もするが。。。

これで日本式表記になったよ。

Magento1.9で郵便番号自動入力エクステンションを入れる

ベリテワークスのMagentoエクステンションにいつもお世話になっております。

今回、郵便番号自動入力エクステンションをいつものようにインストールしました。
管理画面から有効にして意気揚々と試してみても動かない。

getpostcodeという名の名前空間なのかな?
レイアウトファイルはrack_getpostcode.xmlでした。

中身を見てみると、どうやらbefore_body_endというブロックにコードを吐き出している。
自動入力したいページのマスターテンプレートが2columns-left.phtmlで、
中のコードを除くと、before_body_endがないではないか!!

なんで?!

自分で誤って消したのか、
そもそもなかったのかは定かではないが。

とにかくブロックソースを吐き出すように<?php echo $this->getChildHtml('before_body_end') ?>をフッターブロックの直後に追加してやる。

無事に自動入力ができるようになりました!
シンプルですばらしいエクステンションをいつもありがとうございます。

2014年9月22日月曜日

MagentoのOnePageCheckoutの注文するボタンが動作しなかったら

【不具合の現象】
注文するボタンをクリックAjax処理ダイアログが表示される。
ダイアログが消えても画面遷移しない。


http://www.magentocommerce.com/boards/viewthread/610464/P15/
このページを参考にしてみて下さい。
恐らくCSRF対策のform-keyが付与されていないためかと。

Magento1.9のOnePageCheckoutで不具合?

チェックアウト手続きが先に進まない問題があった。

【不具合の現象】
支払い方法が表示されない

Ajaxの通信結果を見てもデータを読み込んで来てはいる。
なのに表示されない。

いろいろ調べた結果、
idがなかったことが原因だったようです。

       ↓このidを追加したら表示されるようになりました。
<fieldset id="checkout-payment-method-load">    <?php echo $this->getChildHtml('methods') ?></fieldset>

2014年9月11日木曜日

Magentoの商品購入ページの個数選択をテキストフィールドからドロップダウンにする

ユーザが商品個数を入力するのは面倒になるので、
ドロップダウンで選択するようにする。

app/design/frontend/[namespace]/[package]/template/catalog/product/view/addtocart.phtml

下記赤字でコメントアウトしている部分がもともとテキストフィールド入力のためのコード。
<!--        <input type="text" name="qty" id="qty" maxlength="12" value="<?php echo $this->getProductDefaultQty() * 1 ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" />-->
        <select name="qty" id="qty" title="<?php echo $this->__('Qty') ?>">
        <?php
          for ($i = 1; $i <= 5; $i++) {
            if ($this->getProductDefaultQty() == $i) {
           echo "<option value='$i' selected='selected'>$i</option>";
            } else {
           echo "<option value='$i'>$i</option>";
            }
          }
        ?>
青字のようにselectに変えてあげるとドロップダウンになります。

もっといい方法があったらおしえてください。

2014年9月3日水曜日

Magentoで商品詳細ページに商品タグのタブを非表示にする方法

商品についているタグを表示しないという時画像のように「商品のタグ」というタブは邪魔。

この「商品のタグ」を非表示にしたい!!

最初catalog.xmlの166行付近のcatalog_product_viewセクションにある、

<block type="catalog/product_view_tabs" name="product.info.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml" >
                    <action method="addTab" translate="title" module="catalog"><alias>description</alias><title>Product Description</title><block>catalog/product_view_description</block><template>catalog/product/view/description.phtml</template></action>
                    <action method="addTab" translate="title" module="catalog"><alias>upsell_products</alias><title>We Also Recommend</title><block>catalog/product_list_upsell</block><template>catalog/product/list/upsell.phtml</template></action>
                    <!--<action method="addTab" translate="title" module="catalog"><alias>additional</alias><title>Additional Information</title><block>catalog/product_view_attributes</block><template>catalog/product/view/attributes.phtml</template></action>-->
これをコメントアウトして消えるかと思いきや消えない。困った。

他にもどっかでaddTabを実行しているXMLがあるのかと探してみたところ、
tag.xmlの66行目付近で以下のように書かれていました。
    <catalog_product_view translate="label">
        <label>Catalog Product View</label>
         <!-- Mage_Tag -->
         <!--<reference name="product.info.tabs">
            <action method="addTab" translate="title" module="tag"><alias>product.tags</alias><title>Product Tags</title><block>tag/product_list</block><template>tag/list.phtml</template></action>
        </reference>-->
        <reference name="product.tags">
            <block type="page/html_wrapper" name="product.tag.list.list.before" as="list_before" translate="label">
                <label>Tags List Before</label>
                <action method="setMayBeInvisible"><value>1</value></action>
            </block>
        </reference>
    </catalog_product_view>

赤字のようにコメントアウトしてキャッシュを消すとタブが表示されなくなりました。
めでたし。