作成者別アーカイブ: てらりん

アプリ起動中はスリープしないようにする【monaca】

monacaでAndroidとiOSのアプリを作成しています。
アプリ起動中はスリープしないようにするプラグインを入れましたので、その方法を記述しておきます。

まず、外部プラグインをmonacaで導入するには、有料プランの契約が必要です。私はProプランで契約しました。

スリープしないようにするプラグインは、「Insomnia-PhoneGap-Plugin」です。

1.Githubからダウンロードします。

zipを任意の場所にダウンロードしておいておきます。

2.monacaにプラグインをインストールする

monacaの管理画面に行って、設定 >Cordovaプラグインの管理をクリックします。 続きを読む

EC-CUBE3にて価格は会員のみ表示する

【参考】

セキュリティ

会員ユーザーがログイン中かどうかチェックする方法

【実施】

商品リスト

「app/template/test/Product/list.twig」の

{% if Product.hasProductClass %} から {% endif %} 値段(Price)が書いてあるあたりを

{% if is_granted(‘ROLE_USER’) %} から {% endif %}で囲む。

 

会員じゃない人へのメッセージと、会員登録へ誘導するのが親切なので
続きを読む

EC-CUBE3に商品登録項目追加。検索フォームにも追加。

参考ページ

「商品情報に項目を追加する方法」

「EC-CUBE3で既存のクエリーに条件を追加する方法」

「【ECCUBE 3】検索対象を増やす。」

受注マスターに検索条件を追加する方法(商品コードなど)

やりたいこと

「商品サイズ(productsize)」を商品登録項目で追加と、検索項目に追加。
上記の参考ページを参考にしました。

「商品サイズ(productsize)」を商品登録項目で追加と、検索項目に追加。
上記の参考ページを参考にしました。

商品登録項目追加

1.テーブルへのカラム追加

「dtb_product」テーブルに「productsize」という名前のカラムを追加 続きを読む

EC-CUBE3でテンプレート追加

EC-CUBEのバージョン:3.0.14
PHP5.6.31、PostgreAQL9.3.17
サーバーはxampp
http://localhost/

テンプレートの追加について、
ECCUBE3でデフォルトテンプレートから独自テンプレートを作る方法
等を参考に進めています。

localhostという環境だからかもしれませんが、まず、テンプレートのダウンロードでシステムエラーがでます。

うまくいかないので、
[EC-CUBE3.0.10]新しいテンプレートを追加する
を参考に進めました。

簡単に言うと、ディレクトリをサーバにコピー(app/template/以下とhtml/template以下) → データベースに直接書き込んでテンプレートリストを追加 → 管理画面で選択して切り替え

という手順です。詳しくは記事のリンク先へどうぞ。
丁寧に説明されておられます。ありがとうございました。

WPのContactForm7が文字化けする

スマイルサーバのver4に移動してから、WordpressのContactForm7で送ったメールが文字化けするという現象が起こりました。

正確には、メールフォームで入れた項目が「????」という文字化けをし、そのほか設定した文字(たとえば、「このメールは●●サイトのお問い合わせから送っています」などのテンプレートの文字)は文字化けしていません。

ContactForm7の文字化けについては、いろいろと記事がありましたが、そのうちの

Contact Form 7で送るメールの文字化けが直らない

php.iniのmbstring.encoding_translation = OnをOffにしたら文字化けしなくなりました。

が参考になりました。

実際に、phpinfoでサーバ情報を見ると、「mbstring.encoding_translation」は「On」でした。

ただ、その設定をするとうまくいくのですが、「On」になっていたのを「Off」にするのは少々抵抗があります。

そのほか見ていて、

mbstring.encoding_translationが原因で文字化け

での設定がよさそうです。

スマイルサーバの「php.ini」は「.user.ini」である必要があるので、そのファイルに

mbstring.http_input = UTF-8

mbstring.internal_encoding = UTF-8

mbstring.substitute_character = "?"

を記入して、文字化けは防げました。

スマイルサーバプラン移行後、allow_url_includeがOnできなくなったら

スマイルサーバがver2,3からver4にプラン移行するにあたり、データを移行してくれたのですが、includeを利用して表示していた画面が表示しなくなりました。

単純にソースを書き出したphpをincludeして表示させていた仕組みで、今更アウトプット部分の処理を変更するのも、面倒なので、今までのようにincludeを使えないかと調べました。

php.iniでallow_url_includeをOnにしてみる

まずは、php.iniを利用して、allow_url_include = ONにしようと思ったのですが、今までのサーバでは「data」フォルダに「php.ini」を入れるだけでいけていました。

しかし、今回は「.user.ini」というファイル名を入れなければならないようです。しかも、allow_url_include = ONはできない(※スマイルサーバに問い合わせていただいた回答です)

includeの代替案

参考URLを教えてもらったので、
allow_url_fopen と allow_url_include
試しましたが、うまくいきませんでした。

どちらかというとうまくいったのは

PHPのallow_url_includeでinclude()の代替案

でした。cURL関数を利用しました。

 

WordPress4.8にアップデートしたらFailed to load content css: (省略)editor-style.cssと出る件

WordPress4.8から、テーマとブラウザによっては、投稿用のビジュアルエディターにしたときに

「Failed to load content css: (省略)editor-style.css」と出るようになった。

ビジュアルエディターにスタイルシートを効かせたい場合、function.phpに

add_editor_style(‘editor-style.css’);

と記述して、適応させるthemeのフォルダにいれたeditor-style.cssを読み込ませたり、「tinymce-advanced」の設定で「editor-style.css」を読み込ませたりしていたのだけども、それがどちらの方法でも引っかかる。

また、ブラウザはGoogleChromeのときに出るような気がしている。

手っ取り早い解決方法として、「editor-style.css」に「import」を利用して、相対パスで別のcssファイルを読み込ませていたので、それを絶対パスに変更した。

ブラウザやサーバやテーマの作り方によって出たりでなかったりするというところは、まったく解決していないが、とりあえず。

Geolocation APIで現在地が取得できない

geolocationで現在地が取得できずに困っていました。

大きな原因からいって「SSLの環境下でないと現在地を使わせないOSが増えてきた」「なぜかgeolocationが定義されてないっぽい」でした。

1.GooglechromeやiOSのブラウザ、Macのsafariでhttp接続のページから現在地を取得を禁止する仕様に変わってきた

今までは「位置情報取得をon」や「ブラウザが位置情報取得を許可しているか」などを確認してもらっていたけど、そういうの関係なく「禁止」になっている。

Webブラウザで現在地情報を正しく取得できない場合の原因と対策 (参考記事)

iOSはバージョン10以降(iPhone7はプリインストール)

2.geolocationが定義されていないっぽい?

alertとかを加えて、javascriptが動いているか、どこで動かなくなるかを検証していたところ、どうもgeolocation自体が動いてないっぽい。

navigator.geolocation.getCurrentPosition から navigator.geolocation.watchPositionに変えてみたりしたけど動かない。

Android で現在地を Geolocation API で取得できないとき (参考記事)

を参考に{enableHighAccuracy: true}をオプションにいれてみたけど、動かない。

最終的には

第3回 位置情報を取得してみよう(後編)(参考記事)

を読んで、try catchを入れて、geolocationが定義されてなかったら「使えません」と謝る機能を追加した。

なぜ「geolocation」が使えないかは謎です。

 

あとやはり基本的な知識が足りないなぁ……反省。

Geolocation の利用

Warning: proc_open() has been disabled for security reasons

サーバ側で、proc_open()の使用が禁止されているようです。

sakuraのサーバだとすんなり行ったので、油断してました。

ちなみに利用したのはSpeeverのサーバです。

検索にひっかかったのはDrupalのページだけど

proc_open() has been disabled for security reasons in /home/ahbekker/public_html/drupal/includes/image.imagemagick.inc

php.iniで制御できるっぽい。

 

wordpressでスラッグからページのURLを取得する

function.phpに以下を追加

function slugtourl($slugname){
	//固定ページのスラッグからページを取得
	$page = get_page_by_path($slugname);
	//ページIDからURLを取得
	return get_permalink( $page->ID );
}

URLを表示したいところに以下を追加

<?php echo slugtourl('access');?>

echoを付けるかつけないかの判別を入れてもよかったけど……。
それ自体は難しくないので……。

function slugtourl($slugname,$display = 1){
	//固定ページのスラッグからページを取得
	$page = get_page_by_path($slugname);
	//ページIDからURLを取得
	$url = get_permalink( $page->ID );

	if($display){
	   echo $url;
	}else{
	   return $url;
	}
}

という感じでしょうか。