2012年07月06日

7DAYsバックアップ機能追加のお知らせ

この度、弊社のホスティングサービスにおいて、大部分のお客様を対象に順次7日間分のサーバーデータが自動でバックアップされる『7DAYsバックアップ』機能を追加いたします。
先日発生いたしました、大手サーバー会社の大規模なデータ消失事故を反面教師と受け止め、お客様に安定したホスティングを供給すべくこの度の機能追加となりました。

MySQLデータベースやお客様のWeb領域・メールデータなどをバックアップ専用サーバーへと1日1回自動保存し、過去7日間分を保持しておく機能で、お客様の大切なデータが消失してしまう可能性を大幅に減らすことが可能です。

お客様にて追加のお申し込みや個別の設定を行うことなく、自動的にバックアップ処理が実施されます。
バックアップデータはサーバーの予期せぬ障害によるデータ消失時の復元に用いられるほか、お客様にて保存されたバックアップデータの個別利用をご希望の場合は、バックアップデータを提供(有料オプション)いたします。

本機能は弊社の大部分のプランに無料の標準機能として搭載しており、お客様にて追加のお申し込みや個別の設定を行うことなく、自動的にバックアップ処理が実施されます。

なお、一部のサーバーにおいて、サーバーの仕様上この機能は付加されません。該当サーバーのご確認等のお問い合わせは弊社まで直接ご連絡ください。

今後とも弊社のホスティングサービスをよろしくお願いいたします。







posted by ITF at 17:46| 奈良 ☔| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2011年10月21日

テキストボックスに入力された内容を他のテキストボックスにコピー

javascript制作の備忘録・・・。メールフォームやショッピングカートで、テキストボックスA、Bがあるり、Aに文字列を入力。
ボタンあるいはチェックボックスをオンにすると、Aの内容をBにコピーするためのjavascript

〓〓〓〓〓〓〓〓〓〓〓〓
javascript部分
〓〓〓〓〓〓〓〓〓〓〓〓
※ インラインに直接
onclick="this.form.boxA.value=this.form.boxB.value;"
と記述するのも簡単でOkですが、より汎用性を重視して・・・

<script type="text/javascript">
function TransV(objF,fromName,toName){
objF.elements[toName].value 
= objF.elements[fromName].value;
}
</script>

としました。

〓〓〓〓〓〓〓〓〓〓〓〓
HTMLt部分
〓〓〓〓〓〓〓〓〓〓〓〓
<form>
  <input name="tx1" type="text" /><br />
  <input name="tx2" type="text" /><br />
  <input name="tx3" type="text" /><br />
  <input name="tx4" type="text" /><br />
  <!--[チェックボックス版]-->
  <input type="checkbox" onclick="TransV(this.form,'tx1','cp1'),TransV(this.form,'tx2','cp2'),TransV(this.form,'tx3','cp3'),TransV(this.form,'tx4','cp4');"  /><br />
    <!--[ボタン版]-->
  <input type="button" value="複製" onclick="TransV(this.form,'tx1','cp1'),TransV(this.form,'tx2','cp2'),TransV(this.form,'tx3','cp3'),TransV(this.form,'tx4','cp4');"  /><br />
  <input name="cp1" type="text" /><br />
  <input name="cp2" type="text" /><br />
  <input name="cp3" type="text" /><br />
  <input name="cp4" type="text" />
</form>

となります。
WEB制作に携わる方はご自由にご利用下さい。
posted by ITF at 16:27| 奈良 ☁| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2011年08月22日

jQueryプラグインNivo Sliderのカスタマイズ

jQueryプラグインNivo Sliderのカスタマイズ箇所の備忘録。

【エフェクトの種類】

sliceDown
sliceDownLeft
sliceUp
sliceUpLeft
sliceUpDown
sliceUpDownLeft
fold
fade
random
slideInRight
slideInLeft

------------------------------------------------------

Nivo Sliderの詳細設定

JavaScriptで詳細設定が可能。

<script type="text/javascript">
$(window).load(function() {
$('#slider').nivoSlider({
effect:'random', //エフェクトの種類
slices:15,
animSpeed:500, //スライドのエフェクトの時間
pauseTime:3000,//スライドの表示の時間
startSlide:0, //初めに表示するスライド番号 (0 index)
directionNav:true, //前後ナビゲーションボタンの表示・非表示
directionNavHide:true, //マウスが画像から外れた時前後ナビゲーションボタンが非表示にする
controlNav:true, //コントロールナビゲーションボタンの表示・非表示
controlNavThumbs:false, //コントロールナビゲーションボタンにサムネイル画像を使う
controlNavThumbsFromRel:false, //imgタグのrelからサムネイル画像のファイル名を取得する
controlNavThumbsSearch: '.jpg', //サムネイル画像の拡張子
controlNavThumbsReplace: '_thumb.jpg', //サムネイル画像の名前の置き換え
keyboardNav:true, //キーボードで前後ナビゲーションする
pauseOnHover:true, //マウスオーバーでスライド停止する
manualAdvance:false, //マニュアルで設定
captionOpacity:0.8, //キャプションの透明度
beforeChange: function(){}, //画像が変わる前に実行するスクリプトを入力
afterChange: function(){}, //画像が変わった後に実行するスクリプトを入力
slideshowEnd: function(){}, //スライドがすべて終わった後実行するスクリプトを入力
lastSlide: function(){}, //最後の画像が表示された時に実行するスクリプトを入力
afterLoad: function(){} //スライドがロードされた後に実行するスクリプトを入力
});
});
</script>

posted by ITF at 20:47| 奈良 ☁| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2011年07月21日

rss取得のphp書けた!

先日の複数のRSS取得してサイトに表示するJSに続き、今度はRSSをそれぞれ別の場所に表示する案件が発生。
とりあえず、Google AJAX Feed APIの改造に着手。でも、考えてみると別々の場所にそれぞれのRSSを表示するわけだから、
phpを複数設置した方が楽じゃん!

ということで、phpをせっせせっせと...
ここからは、私の完全な備忘録です。前回に引き続き、わかる人だけわかってください。

<?php
    //URL設定
    $rssdata = simplexml_load_file("http://***");
 
    // 件数設定
    $num_of_data = 3;
 
    //初期化
    $outdata = "";
    for ($i=0; $i<$num_of_data; $i++){
 
        $myEntry = $rssdata->channel->item[$i];
$rssDate = $myEntry->pubDate;
date_default_timezone_set('Asia/Tokyo');
$myDateGNU = strtotime($rssDate);
$myDate = date('Y/m/d',$myDateGNU);
        $myTitle = $myEntry->title; //タイトル取得
        $myLink = $myEntry->link; //リンクURL取得
 
        //出力内容(CSSOK)
        $outdata .=  '<p class=""><div style="float:left;width:80px;margin:0px 0px 0px 5px;font-size:12px">'.$myDate.'</div><a href="' . $myLink . '">' . $myTitle . '</a></p>';
 }
    echo $outdata; //全部出力する
?>
posted by ITF at 12:51| 奈良 ☁| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2011年07月19日

複数のブログのRSSを取得しHPに表示する方法

複数のブログのRSSを取得してそのタイトル等を自分のホームページに表示する方法の備忘録。まず、いろいろなプログラムがネットには存在しているが、どうも広告なんかが入ったりしてスマートじゃない。
公式サイトなんかで広告が入ってしまうのもいかがなものかと...

調べること数時間。
Google AJAX Feed APIなるライブラリを発見。
これは、「Google AJAX Feed API」を使って外部RSSを読み込むという優れもの。
カスタマイズについては、いろいろな方がTIPSを提供してくれてます。

私が参考にさせていただいたのは、
http://neta-times.net/entries/953/

基本的な設置方法なんかは、上記サイトを参考にしていただければ、難なくできるはず。
CSS等のカスタマイズについても、基本的な知識があれば問題なくOKかと思います。

しかし、私の場合、出力される項目等もカスタマイズしなければならない状況になり、js(ジャバスクリプト)をいじることに ...

〓カスタマイズ項目は次のとおり〓

1) アメブロ等のRSSに必ず入るテキスト広告の非表示。
2) RSSから取得されるブログ名の置換。

まず、テキスト広告の非表示方法ですが...
出力されるコードのところに1行をプラス。

if (entry.title.match(/.*PR:.*/mi) == null) 

これで無条件にPRと書かれたタイトルは表示しなくなります。

次に、RSSから取得されるブログ名の置換です。(少々コレには手を焼きました、私の知識の無さを実感。。。)
だけど、試行錯誤の末、ついにクリアしました。

変数hogeBlogNameにentry.blogNameの値を代入して、replaceしたら、現在、表示指定でentry.blogNameになっている部分を、
hogeBlogNameに置き変えればOK。

つまり、

var hogeBlogName = entry.blogName;
hogeBlogName = hogeBlogName.replace(/私のブログ/, "つれずれ日記");
alert(hogeBlogName);

ということですね。

実際に、上記のプログラムで動いているサイト(私がカスタマイズしたもの)はこちらです。
http://www.ings-net.com/top.html

今後の、制作のテンプレートとしての備忘録的に。。。。




posted by ITF at 12:30| 奈良 ☔| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2010年12月09日

EC-CUBEを携帯に対応させるために

EC-CUBEのPCでは問題なく動くのにモバイル版では「注文する」をクリックすると、システムエラーとなってトップに遷移する。
モバイルで買い物かごにものを入れてるのに空になってしまう。
モバイルで会員登録ができない 。
セッションが正しく稼働していないのが原因のようだ。

で、
携帯サイトに対応するため、「php.ini」ファイルを作成し、html/mobile/以下の全てのフォルダにコピーする。
テキストエディタで以下の内容(一行のみ)を入力し、ファイル名を「php.ini」で作成。

■php.iniの内容
session.use_trans_sid = 1

次に、出来上がった php.ini ファイルを、html/mobile/以下の全てのフォルダにコピー。
コピー先フォルダ一覧(計13フォルダ)
html/mobile
html/mobile/cart
html/mobile/contact
html/mobile/entry
html/mobile/frontparts
html/mobile/frontparts/bloc
html/mobile/guide
html/mobile/mypage
html/mobile/products
html/mobile/regist
html/mobile/shopping
html/mobile/unsupported
html/mobile/user_data
posted by ITF at 15:59| 奈良 ☁| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

EC-CUBEのメール送信エラー

EC-CUBEをカスタマイズして最終段階にさしかかってました。
さぁ、問い合わせメール&受注確認メールのチェックをっと...メールが送信(配信)できない!親にも子にも届かないじゃないか!

EC-CUBEの過去スレなんかを調べてたら...

過去スレより引用
------------------------------------------------------------
Re: 商品購入完了時にメール配信されない(v2.0.1)
補足で自己レスです。
過去にEC-CUEとはまったく関係の無い部分でメールが送れなくて困った事例をメモっときます。

ケース1
そもそもsendmail(メールサーバーが起動していなかった)

ケース2
旧サイトからの切り替え等、ドメイン名が無い状態(ホスト名のみ)の場合にホスト名を存在しないドメインと取られ送信エラー
→ホスト名消去

ケース3
別のメールサーバーを使用(localhostじゃない)
スパム踏み台防止の為25番ポートが閉じられていた。
→サブミッションポートを使用
------------------------------------------------------------

などとサーバーとの相性問題的なものしか見つからない。
じゃあ、なぜ動いてる?

きっとphpの設定を変更するといけるんじゃないかとしらみつぶしにそれらしいファイルを探しました。
ありました!

/data/mtb_constants_init.php

の532行目辺りを

define('MAIL_BACKEND', "smtp");

define('MAIL_BACKEND', "mail");

に変更すればOK!

/data/cash/mtb_constants.phpにも同じものがあるのでそこも設定変更するとオケー!
ちなみにバージョンは「eccube-2.4.4」です。
posted by ITF at 14:40| 奈良 ☁| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2010年11月10日

iMovieからiDVDコンバートの際の画質劣化

iMovieからiDVDへ動画を共有して書き出すと、かなり画質が劣化するんですね。最近の液晶TVでは見るに耐えない画質の悪さなんですなぁ。。。コレが。

iDVDで最高画質にしても改善は見られず。
そこで、iMovieでHD画質で単純にいったん、デスクトップ等に書き出して、書き出したムービーファイルをiDVDで取り込むと画質が改善されているようです。

おそらく、共有の際のエンコードにDVDサイズに圧縮、劣化してしまうんでしょうね。
Final cut Studioとの差別化を図るための作為的なものなんでしょうか?
いくら、MAC標準のソフトとはいえこれはないです!


posted by ITF at 10:33| 奈良 ☁| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2010年10月01日

エクセルでひらながをローマ字に変換

名簿を扱う際に、ひらがなをローマ字にしたいことってないですか?いちいち入力するのも面倒!

試作品のUDFです。
Alt+F11を押して、挿入-->標準モジュールを選択。
出てきた画面に下記コードをコピペして閉じる。
Excel画面に戻り、=RomanConv(A1) などと数式を入力します。
ひらがな、全角カタカナ、半角カタカナいずれもOKです。


--------------------------------------------------------


Function RomanConv(strMoto As String, Optional cho As Boolean = False) As String
Dim txt As String, i As Long, ans As String
txt = StrConv(StrConv(strMoto, vbKatakana), vbWide)
ans = ""
For i = 1 To Len(txt)
    Select Case Mid(txt, i, 1)
        Case "ア": ans = ans & "A"
        Case "イ", "ヰ": ans = ans & "I"
        Case "ウ": ans = ans & "U"
        Case "エ", "ヱ": ans = ans & "E"
        Case "オ": ans = ans & "O"
        Case "カ": ans = ans & "KA"
        Case "キ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "KYA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "KYU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "KYO"
                    i = i + 1
                Case Else
                    ans = ans & "KI"
            End Select
        Case "ク": ans = ans & "KU"
        Case "ケ": ans = ans & "KE"
        Case "コ": ans = ans & "KO"
        Case "サ": ans = ans & "SA"
        Case "シ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "SHA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "SHU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "SHO"
                    i = i + 1
                Case Else
                    ans = ans & "SHI"
            End Select
        Case "ス": ans = ans & "SU"
        Case "セ": ans = ans & "SE"
        Case "ソ": ans = ans & "SO"
        Case "タ": ans = ans & "TA"
        Case "チ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "CHA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "CHU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "CHO"
                    i = i + 1
                Case Else
                    ans = ans & "CHI"
            End Select
        Case "ツ": ans = ans & "TSU"
        Case "テ": ans = ans & "TE"
        Case "ト": ans = ans & "TO"
        Case "ナ": ans = ans & "NA"
        Case "ニ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "NYA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "NYU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "NYO"
                    i = i + 1
                Case Else
                    ans = ans & "NI"
            End Select
        Case "ヌ": ans = ans & "NU"
        Case "ネ": ans = ans & "NE"
        Case "ノ": ans = ans & "NO"
        Case "ハ": ans = ans & "HA"
        Case "ヒ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "HYA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "HYU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "HYO"
                    i = i + 1
                Case Else
                    ans = ans & "HI"
            End Select
        Case "フ": ans = ans & "FU"
        Case "ヘ": ans = ans & "HE"
        Case "ホ": ans = ans & "HO"
        Case "マ": ans = ans & "MA"
        Case "ミ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "MYA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "MYU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "MYO"
                    i = i + 1
                Case Else
                    ans = ans & "MI"
            End Select
        Case "ム": ans = ans & "MU"
        Case "メ": ans = ans & "ME"
        Case "モ": ans = ans & "MO"
        Case "ヤ": ans = ans & "YA"
        Case "ユ": ans = ans & "YU"
        Case "ヨ": ans = ans & "YO"
        Case "ラ": ans = ans & "RA"
        Case "リ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "RYA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "RYU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "RYO"
                    i = i + 1
                Case Else
                    ans = ans & "RI"
            End Select
        Case "ル": ans = ans & "RU"
        Case "レ": ans = ans & "RE"
        Case "ロ": ans = ans & "RO"
        Case "ワ": ans = ans & "WA"
        Case "ヲ": ans = ans & "WO"
        Case "ン": ans = ans & "N"
        Case "ガ": ans = ans & "GA"
        Case "ギ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "GYA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "GYU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "GYO"
                    i = i + 1
                Case Else
                    ans = ans & "GI"
            End Select
        Case "グ": ans = ans & "GU"
        Case "ゲ": ans = ans & "GE"
        Case "ゴ": ans = ans & "GO"
        Case "ザ": ans = ans & "ZA"
        Case "ジ", "ヂ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "JA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "JU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "JO"
                    i = i + 1
                Case Else
                    ans = ans & "JI"
            End Select
        Case "ズ", "ヅ": ans = ans & "ZU"
        Case "ゼ": ans = ans & "ZE"
        Case "ゾ": ans = ans & "ZO"
        Case "ダ": ans = ans & "DA"
        Case "デ": ans = ans & "DE"
        Case "ド": ans = ans & "DO"
        Case "バ": ans = ans & "BA"
        Case "ビ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "BYA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "BYU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "BYO"
                    i = i + 1
                Case Else
                    ans = ans & "BI"
            End Select
        Case "ブ": ans = ans & "BU"
        Case "ベ": ans = ans & "BE"
        Case "ボ": ans = ans & "BO"
        Case "パ": ans = ans & "PA"
        Case "ピ"
            Select Case Mid(txt, i + 1, 1)
                Case "ャ"
                    ans = ans & "PYA"
                    i = i + 1
                Case "ュ"
                    ans = ans & "PYU"
                    i = i + 1
                Case "ョ"
                    ans = ans & "PYO"
                    i = i + 1
                Case Else
                    ans = ans & "PI"
            End Select
        Case "プ": ans = ans & "PU"
        Case "ペ": ans = ans & "PE"
        Case "ポ": ans = ans & "PO"
        Case "ッ": ans = ans & "@"
        Case " ": ans = ans & " "
        Case Else: ans = ans & "?"
    End Select
Next
For i = 1 To Len(ans)
    If Mid(ans, i, 1) = "@" Then _
        ans = Left(ans, i - 1) & Mid(ans, i + 1, 1) & Mid(ans, i + 1)
Next
With WorksheetFunction
    ans = .Substitute(ans, "NB", "MB")
    ans = .Substitute(ans, "NM", "MM")
    ans = .Substitute(ans, "NP", "MP")
    ans = .Substitute(ans, "CC", "TC")
    If cho Then
        ans = .Substitute(ans, "AA", "A")
        ans = .Substitute(ans, "II", "I")
        ans = .Substitute(ans, "UU", "U")
        ans = .Substitute(ans, "EE", "E")
        ans = .Substitute(ans, "OO", "O")
        ans = .Substitute(ans, "OU", "O")
    End If
End With
RomanConv = ans
End Function
posted by ITF at 15:14| 奈良 ☀| Comment(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2010年01月21日

恐るべしEC-CUBE

ECキューブでECサイトの構築の検証を行ってました。ECキューブ本体のインストールはまさにマニュアルどおりに作業を行えばなんなくOKでした。
ただ、注意すべきてんは、解凍したフォルダに[data]フォルダと[html]フォルダが生成されていて、弊社のようにroot階層でECキューブを運用したい場合はdefine.phpのDETAフォルダの階層を修正してアップロードしてあげないとエラーが発生します。
まぁ、サーバーとかCGIとかをいじれる方ならこれぐらいは想定内でしょう、、、。

インストールが完了して、次にサイトの設定です。
基本的なECサイトの情報を入力からはじめて、[郵便番号DBの登録]のフェーズに...
ここに、潜んでいました!エラーの神様が!!
こんなの普通にサクッと登録できるもんだとおもいますよねー。ところが少々これが曲者でした。
エラーの原因等は、時間があるときにでも紹介しようと思いますが、備忘録的に更新方法を記載します。

1) 更新データの準備
        ・日本郵便のページから最新の郵便番号データ(CSV)をダウンロード
        ・解凍したファイルはS-JISなので、これをUTF-8に変換(私はTERAPADを利用)
        ・半角カタカナが使われているのでこれを全角カタカナに変換(otbeditを利用)
        ・KEN_ALL.csvで保存

2) ECキューブの修正
        ・最新のKEN_ALL.csvを [data]>[downloads]へ上書き
        ・サーバーへ上書きアップロード

3) この時点で管理画面の[郵便番号DBの更新]をしても無意味でした。なぜなら、DBの郵便番号を格納しているところを空にしてやらないといけないです!
そこで、DBの中を空にする方法がありますが。私はPHPを自分で書くことに、、、、

<?php
require_once("./require.php");
$objSess = new SC_Session();
SC_Utils::sfIsSuccess($objSess);
$objQuery = new SC_Query();
$objQuery->delete("mtb_zip");
$count = $objQuery->count("mtb_zip");
if($count == 0) {
print("mission complete!");
} else {
print("incomplete");
}
?>

このphpを適当な名前で保存してadminのディレクトリへアップロード。
そしてアクセス!これでデータベースの郵便番号が空になってるはず。

4) そして最後に[郵便番号DBの登録]
サーバーのタイムアウトかもしれませんがエラーが連発します。でも、登録されていないわけではありません。心配しないで。サーバーとかDBのスペックか??およそ1000件前後の登録でエラーが起こるようです。郵便番号のファイルはおよそ12万件ありますので、エラーが起こったところから再度[F5]か登録ボタンを押し続けます。100回やったかな(時間にして1時間ぐらい)最終的にはエラーが発生したところから登録していくみたいで、完了画面がちゃんと出てきたらOKです。

あくまで、備忘録です。(^^ゞ

ラベル:EC-CUBE
posted by ITF at 21:10| 奈良 ☁| Comment(1) | チュートリアル | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。