2012年1月30日月曜日

CakePHP 1.2 を使った CMS

baser CMS
http://basercms.net/

2012年1月25日水曜日

li タグの中身をランダムで n 個 表示する

(1) 以下を jQuery でメソッドを作成する。 rview の属性の値の数だけランダムで li を表示する。

<script language="javascript">
//<!--
jQuery(function($) {
$.fn.extend({
rview : function(num) {
return this.each(function() {
var chn = $(this).children().hide().length;
for(var i = 0; i < num && i < chn; i++) {
var r = parseInt(Math.random() * (chn - i)) + i;
$(this).children().eq(r).show().prependTo($(this));
}
});
}
});
$(function(){
$("[rview]").each(function() {
$(this).rview($(this).attr("rview"));
});
});
});
//-->
</script>
(2) HTML側:ランダム表示したい UL に上記(1)で定義した属性を加える。(この場合は rview )

<ul class="mr" rview="1">
<li><a href="#A">リンク先A</a>|<a href="#a">リンク先a</a></li>
<li><a href="#B">リンク先B</a>|<a href="#b">リンク先b</a></li>
<li><a href="#C">リンク先C</a>|<a href="#c">リンク先c</a></li>
<li><a href="#D">リンク先D</a>|<a href="#d">リンク先d</a></li>
</ul>

(3)  ULの内容がページ読み込み直後に一旦全て表示されてしまう場合があるので、ul.mr li {display:none;} しておくと読み込み後に  rview 指定分のみが表示されるようにできる。

2012年1月24日火曜日

プリンタ

OKI C3400 の「管理者のログイン」のデフォルトのユーザーIDとパスワードは admin と MACアドレスの後ろから6文字。マニュアルに書いてある?マニュアルのPDFを探しても書いてなかったような・・・。

PHP 5.3.9 (Windows 7) に PEAR をインストールする

PHP 5.3.9 の zip パッケージをダウンロードしてインストールした後に、よく見たら go-pear.bat が入っていないので、PEARのサイトより http://pear.php.net/go-pear.phar をダウンロードし go-pear.phar を実行する。

2012年1月20日金曜日

PHPでHTMLをPDFで出力(Windows + Apache)

TCPDF を使用。

[1]
tcpdf_5_9_144.zip をダウンロードして解凍して使用するPHPから tcpdf/tcpdf.php を include する。

[2]
このままでは日本語は文字化けするので、tcpdf/config/lang 以下に jpn.php ファイルを作成して以下のコードを記述して保存する。
global $l;
$l = Array();
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'jpn';
$l['a_meta_language'] = 'jp';
$l['w_page'] = 'ページ';
 [3]
以下のコードでPHPから使用できる。
include_once ("./tcpdf/config/lang/jpn.php");
include_once ("./tcpdf/tcpdf.php");

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
$pdf->setFontSubsetting(false);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->SetFont("kozgopromedium", "", 8);
$pdf->AddPage();
$tpl = mb_convert_encoding("<h1>テスト</h1>", "UTF8", "EUC-JP");
$pdf->writeHTML($tpl, true, 0, false, true, 'L');
$pdf->Output('sample.pdf', 'D');
この時は mb_internal_encoding が EUC-JP だったが、TCPDF は UTF8 で処理されるようなので、もし UTF8 以外でコードを書いている場合は変換する。

また、 writeHTML の内容は HTMLTidy のようなキチンと整形されたコードでなければエラーになってしまう。

CSS は それぞれのタグに style 属性で指定する。
(ブラウザでHTMLを表示した時と同じ・・・とまではいかないような・・・)





Table のチェックボックス2

テーブル内のチェックボックスのjQuery例:
機能:
・ 全ての行選択/解除
・ trをクリックしてチェックボックスの選択/解除
・チェックボックスクリック時に tr 背景色の変更(class の値追加/削除)


 $(".all_select").click(function() {
  if($(this).attr("checked")){
   $("#table_list .selected_id").attr("checked", true);
   for(var i=0; i<$(this).parent().parent().parent().find("tr").length; i++) {
    $($(this).parent().parent().parent().find("tr").get(i)).addClass('tr-selected');
   }
  }
  else {
   $("#table_list .selected_id").attr("checked", false);
   for(var i=0; i<$(this).parent().parent().parent().find("tr").length; i++) {
    $($(this).parent().parent().parent().find("tr").get(i)).removeClass('tr-selected');
   }
  }
 });
 $('.selected_id').click(function(){
      if($(this).attr("checked")){
     $(this).attr('checked', true);
        $(this).parent().parent().addClass('tr-selected');
      }
      else{
     $(this).attr('checked', false);
        $(this).parent().parent().removeClass('tr-selected');
      }
    });
 $('.list td').click(function(){
  var mo = $(this).parent().find("input:checkbox");
  var tar = $(this).find("input:checkbox");
  console.log(tar);
  if(tar.length < 1) {
      if(mo.attr("checked")){
    mo.attr('checked', false);
    $(this).parent().removeClass('tr-selected');
      }
      else{
    mo.attr('checked', true);
    $(this).parent().addClass('tr-selected');
      }
  }
 });
ijou.


table のチェックボックスをクリックしたときに行の背景色を変える

HTML:例
<table>
    <tr>
         <td><input type="checkbox" id="test_0" name="test[]" class="test" value="mo1"></td>
         <td>TEST1</td>
    </tr>
    <tr>
         <td><input type="checkbox" id="test_1" name="test[]" class="test" value="mo1"></td>
         <td>TEST2</td>
    </tr>
    <tr>
         <td><input type="checkbox" id="test_2" name="test[]" class="test" value="mo1"></td>
         <td>TEST3</td>
    </tr>
</table>
CSS:例
    /* チェックボックスにチェックを入れた際の背景色 */
    .tr-selected { background-color:#fcc; }

■jQuery:例

<script language="javascript">
    $('.selected_id').click(function(){
        if($(this).attr("checked")){
            $(this).attr('checked', true);
            $(this).parent().parent().addClass("tr-selected");
        }
        else{
            $(this).attr('checked', false);
            $(this).parent().parent().removeClass("tr-selected");
        }
   }
</script>


2012年1月10日火曜日

Apache で Forbidden になる

Foedora Core 16 にて Apache で /home/(ユーザー名: user)/public_html を公開しようとすると Forbidden が表示されてしまう。以下の可能性がある。 httpd -t でもhttpd.conf の記述に誤りが無いか事前に確認しておく。
*原因1 SELinux のセキュリティ設定
SELinux の設定で公開するディレクトリ( /home/user/public_html )が httpd からアクセス可能であると設定する。
semanage fcontext -a -t httpd_sys_content_t '/home/user/public_html(/.*)?'
# restorecon -R /home/user/public_html

または、以下の方法でSELinux 自体を無効にしてしまう。
# setenforce 0


*原因2 アクセス権
# chmod 755 /home/user


今回は *2 でハマる。

Git のインストール

[1] Git を yum に追加
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

[2] リポジトリ更新
# vi /etc/yum.repos.d/rpmforge.repo
enable=0

[3] Git インストール
# yum install git --enablerepo=rpmforge
# yum install git-daemon --enablerepo=rpmforge
[4] Git 設定
% git config --global user.name "aaaaaa"
% git config --global user.email aaaaa@aaaaaaa

2012年1月5日木曜日

テスト

テスト投稿