IISとPHPとMySQLが入っているところにbookedを入れる
https://www.bookedscheduler.com/
サンプルもさわったらいい感じだった。
手順の参考
Booked インストール (XAMPP)
ダウンロードして展開
c:\Apach24\htdocs\booked へコピー
c:\Apach24\htdocsbooked\config\config.dist.php を c:\Apach24\htdocs\booked\config\config\config.phpへコピー
httpd.confで
Listen 8000 #IISも動いているので、phpを変更しておいた
参考 80番以外のポート番号を使用した場合のWebサーバへのアクセス
/** * Application configuration */ $conf['settings']['default.language'] = 'ja_jp'; $conf['settings']['script.url'] = 'http://localhost/booked/Web'; $conf['settings']['image.upload.directory'] = 'booked/Web/uploads/images'; $conf['settings']['image.upload.url'] = 'booked/uploads/images';
http://localhost:8000/booked/Web/installにアクセス
ここで謎エラー発生
Missing config file: C:\Apache24\htdocs\booked\lib\Config/../../config/config.php. If there is a .dist config file in this location, please copy it as C:\Apache24\htdocs\booked\lib\Config/../../config/config.php Fatal error: Call to a member function assign() on null in C:\Apache24\htdocs\booked\Pages\Page.php on line 244
3時間ほど悩んだ結果、configt.phpってなファイル名になっていた。帰りたい。
config.phpにパスワードを指定してから画面に同じパスワードを入力する。
$conf['settings']['install.password'] = '';
MySQLのユーザーとパスワードを入力(phpMyAdminで確認した)
3つチェックする
インストール実行
サンプルデータのインストール系のsqlが全滅だった。
ほったらかして、ログインしてみる
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'booked_user'@'localhost' (using password: YES) in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 52 Warning: mysqli_select_db() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 53 Warning: mysqli_set_charset() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 54 Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 58 Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 59
http://localhost:8000/booked/web/index.php#
データベースのエラーが出る
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'bookedscheduler_use'@'localhost' (using password: YES) in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 52 Warning: mysqli_select_db() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 53 Warning: mysqli_set_charset() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 54 Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 58 Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\booked\lib\Database\MySQL\MySqlConnection.php on line 59
ユーザー名が違っていた。
#$conf['settings']['database']['user'] = 'booked_user';
$conf['settings']['database']['user'] = 'bookedscheduler_user';
admin/passwordでログインが・・・できない。データベースのエラーでユーザーが作成されていないからだ。
phpMyAdminでデータベースを削除する。
もう一度やり直してみるがエラーが発生する。
実行中: ../../database_schema/create-data.sql 失敗 詳細: SQL 文: -- UPGRADE TO VERSION 2.1 insert into roles values (3, 'Resource Admin', 3) エラーコード: 1062 エラーテキスト: Duplicate entry '3' for key 'PRIMARY' (他にもエラーは出ている)
よくわからん。
コマンドプロンプトでMySQLにアクセスしてみる。
C:\Users\Administrator>mysql -u booked_user -D booked -p Enter password: ********
よくわからん。
phpMyAdminでbookedを削除する。
「サンプルデータをインポートする」のチェックを外してみた。それでも同じエラーになる。
ja_jpをen_usに変えてやり直す。
やりなおしたけど、エラーになる(堂々巡り)
C:\Users\Administrator>mysql -u booked_user -D booked -p mysql> source create-data.sql
OKとエラーが入り乱れる。ブラウザでエラーが出たやつを全部だめした。
ここで間違いに気がつく。
Windows ServerにApacheとPHPを動かしていて、そこにbookedを入れた。そんでもって、サーバ上のIEで確認していた・・・そりゃーリダイレクト系は動かないね。クライアントで試したら動いている。
タスクスケジューラーの項目をバッチファイルで無効にしたい
こんな感じでbatファイルに記述する。
rem タスクスケジューラーで Adobe Acrobat Update Task 無効 schtasks /CHANGE /TN "Adobe Acrobat Update Task" /DISABLE rem タスクスケジューラーで CorelUpdateHelperTaskCore 無効 schtasks /CHANGE /TN "CorelUpdateHelperTaskCore" /DISABLE
マウスでホバーしたら画像を入れ替える
なんだか面白いサービスを見つけた
https://zk-phi.github.io/MEGAMOJI/
静止画像を動画GIFにできるって知ったら、ホバーで入れ替えるよね?
html
<div id="hop_hoge"><img src="img/hoge.png"></div>
JavaScript
/* 画像の入れ替え */ $(function(){ $("#hop_hoge > img").hover(function(){ $(this).attr("src","img/dance.gif"); },function(){ $(this).attr("src","img/hoge.png"); }); });
Date型の日付を日時型にして、タイムゾーンも付けたい
いろいろとややこしい。
someday="yyyy-mm-dd"
1日のさいしょ
Time.zone.parse(someday.to_s)
1日のさいご
d = someday.to_datetime Time.zone.local(d.year, d.month, d.day, 23, 59, 59)
Railsのcheck_boxの謎
チェックボックをチェック済みにしたい。
チェックされたときに送られるデータはString型の「"1"」、だったら@chk_valに代入してやればチェックされるんじゃないかと思う。
<%= r.check_box(:monthly, {:checked=>@chk_val}) %>
でもならない。
コントローラーでチェックを判定して真ならtrueを入れてやる必要がある。
テキトーなイメージだとこんなかんじ
@user.monthly = ture unless params[:hoge][:monthly].blank?
で、ビューはこれだけ。
<%= r.check_box(:monthly) %>
ビットフラグを追加する
「2つの地区で利用したい」という想定外の使い方をリクエストされて頭を抱えている。
自分の地区以外でもリストに名前を表示するってな感じが目的です。
- モデルに数値型のotherを作る
- 4地区をビットで表現して保存するときに10進数にする
- 編集は強引に2進数に戻す
4地区で5ビット使っていますが、10ビットまで用意してからの変換にすれば楽だったなーとか思う。
AptanaStudioが起動しない
AptanaStudio.exe(lnkではない)を管理者として実行する(cleanオプションも付けた)
マイグレーションファイルを編集する
class AddOtherToUsers < ActiveRecord::Migration def change add_column :users, :other, :integer, :after=>:campus end end
テーブルを操作する
rake db:migrate rake aborted! ActiveRecord::StatementInvalid: Could not find table 'members'
見覚えのあるようおなエラー
rake db:migrate RAILS_ENV=production
流れに沿って作る。
new
#user_controller.rb def new @user = User.new @basyo = [false, false, false, false, false] #場所の初期値 end
#new.html.erb <%- if context=="edit" -%> <%- if @user.campus !=1 %> A地区<%= check_box_tag 'basyo[0]', true, @basyo[0], {} %> <%- end %> <%- if @user.campus !=2 %> B地区<%= check_box_tag 'basyo[1]', true, @basyo[1], {} %> <%- end %> <%- if @user.campus !=4 %> C地区<%= check_box_tag 'basyo[2]', true, @basyo[2], {} %> <%- end %> <%- if @user.campus !=16 %> D地区<%= check_box_tag 'basyo[4]', true, @basyo[4], {} %> <%- end %> <%- end %>
create
def create @user = User.new(params[:user]) @user.other = basyo_to_bit(params[:basyo]) (省略)
# ビットを数値に変換する def basyo_to_bit(parameters) unless parameters.nil? rtn=0 parameters.each{|key, value| rtn += 2**key.to_i if value == "true" } else rtn = nil end return rtn end
show
<%= other_edit(usr.other) %>
#users_helper.rb def other_edit(m) unless m.nil? rt ="" $campuses.each{|c| #ビット演算 if c[1] & m == c[1] rt += "/" unless rt.blank? rt += c[0] end } return rt end end
edit
既存の未入力対策と初期値の設定、なんだかかっこわるい。
def edit @user = User.find(params[:id]) #logger.debug(@user.other) if @user.other.nil? @basyo = [false, false, false, false, false] else tmp = @user.other.to_s(2).split("") if tmp.size < 5 (5-tmp.size).times{ tmp.unshift("0") } end @basyo = [] tmp.each{|n| rt = n == "1" ? true : false @basyo << rt } end end ||< ***update >|| def update @user = User.find(params[:id]) @user.other = basyo_to_bit(params[:basyo]) (省略)
windows8.1に.NET3.5が入らん
Windows 8.1 に .NET Framework 3.5 をインストールできない問題が発生していて、0x800f0906というエラーが出る。
.NET Framework 3.5 インストール時のエラー: 0x800F0906、0x800F081F、0x800F0907というそれっぽいサイトが存在するけど解決しない。
Windows 8、Windows 8.1、Windows Server 2012、および Windows Server 2012 R2 上の .NET Framework 3.5 の更新プログラムを参考にすると改善した。