hetemlでのzendframework2インストール&アプリ作成その1
hetemlでzendframework2インストール&掲示板アプリ作成する備忘録です
hetemlにはアドミンでzendframework2のインストールもしくはサンプルアプリ付きのアプリのインストールができますが、今回はzendframework2を触ってMVCの仕組みを勉強する目的のためフレームワークのインストールをやって進めました
1 hetemlの管理画面にログイン後右のサブメニュー>WEB関連>クイック・フレームワークページへ。
2 cakephp,Zendframework,FuelPHPなどからzendframework2を選択し、 フォームに沿ってインストールを進めます
3 ナビゲーション左のフレームワークのみを選択します ポップアップでも許可を押すとセットアップが完了します(楽!!!)
4 インストール先は下記のような画面に 初期状態でスケルトンプロジェクトが適応されている模様です。
【2015年最新版】ユーザーエージェントでガラケー・スマホ・PCサイト振り分け
WEBサイトの端末別の振り分け方はいろいろあるものの、
おそらく今のWEBデザイン的には、レイアウトが複雑なので
昔のガラケーとPCの切り替えはcssを適応するかしないかのシンプルなものではなく、 ガラケーはガラケーのHTMLを書いたほうがいいのかもしれない。もうcss使えるけども。
あと数年前まではスマホとPCサイトでもページを振り分けをしていたものの、 できる限りレスポンシブなデザインが求められていると思う。(さっきといってること逆)
なのでメモします。
// ユーザーエージェントによる振り分け $user_agent = $_SERVER['HTTP_USER_AGENT']; if *1 { //ガラケーのHTML(inc)orページ飛ばす }else { //レスポンシブ }
3こともページ分けるor cssを端末ごとに読み込むver
// ユーザーエージェントによる振り分け $user_agent = $_SERVER['HTTP_USER_AGENT']; if *2 {
}else if ( (strpos($user_agent, 'iPhone') !== false) || *3|| (strpos($user_agent, 'Windows Phone') !== false) || (strpos($user_agent, 'BlackBerry') !== false)){ //スマホ }else{
}
がおそらく便利??????
*1:strpos($user_agent,'DoCoMo') !== false) or (strpos($user_agent,'KDDI') !== false) or (strpos($user_agent,'SoftBank') !== false
*2:strpos($user_agent,'DoCoMo') !== false) or (strpos($user_agent,'KDDI') !== false) or (strpos($user_agent,'SoftBank') !== false
*3:strpos($user_agent, 'Android') !== false) && (strpos($user_agent, 'Mobile') !== false
hetemlでのcakephpインストール&掲示板アプリ作成方法その2
簡単な掲示板を作成してcakephpでの仕組みを把握しようとした備忘録
1 デフォルトで反映されているデザインを一旦リセット
/cakePHPのディレクトリ/app/views/layouts/default.ctpを編集 (.ctp?cake templateの略なのか。tmpファイル等と同じような扱いっぽい??)
<!DOCTYPE html>
<?php echo $title_for_layout; ?> <?php echo $content_for_layout; ?>
2 ホーム画面を変更
/cakePHPのディレクトリ/app/config/routes.phpを編集 30行目付近の1行をこのように変更
Router::connect('/', array('controller' => '任意のページ名A', 'action' => 'index', 'home'));
3 /cakePHPのディレクトリ/任意のページ名Aにアクセス
するとこのようなエラー文が(newpageというページ名にしました。) 怒られています。phpはjsと違って公開処刑でつらい。挫折しそう。
4 C:コントローラーを作成
/cakePHPのディレクトリ/app/Controller/任意のページ名AController.ctp という空の.ctpを作成し、
<?php class 任意のページ名AController extends AppController {
var $name = 'Posts';
public function index() {
//sql $results = $this->Post->find('all' , array('order' => 'id desc' )); $this->set('results',$results);
} public function display() {
}
}
5 V:ビューを作成
/cakePHPのディレクトリ/app/View/任意のページ名A/index.ctp ディレクトリ&空のindex.ctpを作成 <!DOCTYPE HTML>~
等は1で作成した/app/views/layouts/default.ctpで定義しているので、body内のみでokの模様。<?php var_dump($results); //中身を出力
foreach($results as $post){ echo "
{$post['Post']['カラム名']}
"; } ?>
6 ホーム画面(/cakePHPのディレクトリ/)へアクセス
おそらく無事に出力部分が完成しました。
ビューで急に出てきた変数$resultsはコントローラー部分で使った変数がそのまま使える模様。 生のphpでゴリゴリ書くときに、classでリターンで返していた手間が省けてすごい便利。 よくメリットとして聞いたビューはデザイナーに。コントローラの作成はシステム側にという分業が本当にしやすそう。
hetemlでのcakephpインストール&掲示板アプリ作成方法その1
hetemlでcakephpインストール&掲示板アプリ作成する備忘録です
hetemlにはアドミンでcakephpのインストールもしくはサンプルアプリ付きのアプリのインストールができますが、今回はcakephpを触ってMVCの仕組みを勉強する目的のためフレームワークのインストールをやって進めました
1 hetemlの管理画面にログイン後右のサブメニュー>WEB関連>クイック・フレームワークページへ。
2 cakephp,Zendframework,FuelPHPなどからcakephpを選択し、 フォームに沿ってインストールを進めます
3 ナビゲーション左のフレームワークのみを選択します ポップアップでも許可を押すとセットアップが完了します(楽!!!)
4 インストール先は下記のような画面に
5 DB作成します。サンプルアプリ付きのインストールだとDB作成までやってくれますがいちから作成します。postという名前で任意のテーブルを作成しました。
6 5で作成したDBはまだフレームワークとconnectできていないためcakephp>config>database.phpというファイルを作成します。内容は下記
<?php class DATABASE_CONFIG {
public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'サーバー名', 'login' => 'ユーザ名', 'password' => 'パスワード', 'database' => 'データベース名', 'prefix' => '', 'encoding' => 'utf8', );
public $test = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'test_database_name', 'prefix' => '', //'encoding' => 'utf8', ); } ?>
7 というところで下準備ができました。 なんだか長くて書くときスクロール量がすごいのでMVC関連は次の記事でまとめます。
PostgreSQLメモ:日付計算で減算
ex)あるカラムの最新日付よりn分後とる文
select to_char(expires_date + 'n minute', 'yyyy-mm-dd hh24:mi:ss') from テーブル名
減算をしたい。
select to_char(expires_date - 'n minute', 'yyyy-mm-dd hh24:mi:ss') from テーブル名 これではだめだった。
調べたら、この+の部分は+-ではなく計算するよ!っていう表示なので、
select to_char(expires_date + '-n minute', 'yyyy-mm-dd hh24:mi:ss') from テーブル名 が正しい模様。
【JQuery】submit処理をダブルクリック等で2重送信されないための処理
以前作った 【JQuery】HTMLinputのsubmit,radioボタン画像で のフォームをダブルクリック等で2重送信されないための処理
<div class="start_btn" style="width: 80%;" id="submit_start">送信</a></div>
<form action="./{$cp->table_name}_select.php" method="get" class="num_group" name="fma" id="fma"> <input type="hidden" name="sed" value="{$sed}"> <input type="hidden" name="use" value="{$play_log['play_ticket_num']}"> <label for="1" class="{$check_1}">1枚 <label for="10" class="{$check_10}">10枚 <input type="submit" value=""> </form>
<script type="text/javascript"> $(function () { $(".num_group>label").click(function() { $(".num_group>label").removeClass("checked"); $(this).addClass("checked"); var label_num = $(this).attr("for"); $('input[name=use]').val(label_num) });
}); </script>
この画像をスイッチとして扱うフォームに適用すると、
<script type="text/javascript"> $('#submit_start').one('click',function() { $('#fma').submit(); }); </script>
これでいけました。 (あとで綺麗に書き直そう)
【UIUX】書き込んだら自動保存されるjavascriptのフォーム何種類か
同じページ内に、 if( isset($POST["sch_id"]) and isset($POST["law_id"]) ){ $sql = "update camp_gift_list set schedule_id = {$POST['sch_id']} where gift_id = {$POST['law_id']} "; $ret = @pg_query($conn, $sql); }
<form name="sampleform_{$law_id}" action="lawson_gift.php" method="POST">
<input type="text" name="sch_id" value="{$value2}" onchange="submit(this.form)">
<input type="hidden" name="law_id" value={$law_id} >
</form>