月別アーカイブ: 2013年12月

CakePHP2.x LayoutsファイルでCSSの読み込み

ここではCakePHP2.xのLayoutファイルでのCSSの読み込みについて解説しています。

cakephp

Controllerで読み込むcssファイルを設定

<?php

    $arrCss = array();
    array_push($arrCss, 'common');
    array_push($arrCss, 'default');
    $this->set('arrCss', $arrCss);

拡張子の「.css」は省略して記述してください。
読み込むcssファイルは
/app/webroot/css/以下に配置します。

Layoutsファイル

<?php echo $this->Html->css($arrCss, 'stylesheet', array('media'=>'screen'));?>

Layoutファイルのhead内に記述します。
これでCSSファイルの読み込みができます。

出力結果

<link rel="stylesheet" type="text/css" href="/css/common.css" media="screen" />
<link rel="stylesheet" type="text/css" href="/css/default.css" media="screen" />

/app/webroot/css/以下にフォルダを作る場合

<?php

    $arrCss = array();
    array_push($arrCss, 'admin/common');
    array_push($arrCss, 'admin/default');
    $this->set('arrCss', $arrCss);

/app/webroot/css/admin/以下にcssファイルを配置した場合の例です。
$this->Html->css();で生成されるcssファイルの場所は/app/webroot/css/がデフォルトなので、/app/webroot/css/以下を指定します。

出力結果

<link rel="stylesheet" type="text/css" href="/css/admin/common.css" media="screen" />
<link rel="stylesheet" type="text/css" href="/css/admin/default.css" media="screen" />

関連記事
CakePHP2.x LayoutsファイルでJavascriptの読み込み
http://office-goto.info/cakephp2-x/this-html-script/

CakePHP2.x LayoutsファイルでJavascriptの読み込み

ここではCakePHP2.xのLayoutファイルでのJavascriptの読み込みについて解説しています。

cakephp

Controllerで読み込むjsファイルを設定

<?php

    $arrJavascript = array();
    array_push($arrJavascript, 'common');
    array_push($arrJavascript, 'config');
    $this->set('arrJavascript', $arrJavascript);

拡張子の「.js」は省略して記述してください。
読み込むjsファイルは
/app/webroot/js/以下に配置します。

Layoutsファイル

<?php echo $this->Html->script($arrJavascript);?>

Layoutファイルのhead内に記述します。
これでJavascriptファイルの読み込みができます。

出力結果

<script type="text/javascript" src="/js/common.js"></script>
<script type="text/javascript" src="/js/config.js"></script>

/app/webroot/js/以下にフォルダを作る場合

<?php

    $arrJavascript = array();
    array_push($arrJavascript, 'admin/common');
    array_push($arrJavascript, 'admin/config');
    $this->set('arrJavascript', $arrJavascript);

/app/webroot/js/admin/以下にjsファイルを配置した場合の例です。
$this->Html->script();で生成されるjsファイルの場所は/app/webroot/js/がデフォルトなので、/app/webroot/js/以下を指定します。

出力結果

<script type="text/javascript" src="/js/admin/common.js"></script>
<script type="text/javascript" src="/js/admin/config.js"></script>

関連記事
CakePHP2.x LayoutsファイルでCSSの読み込み
http://office-goto.info/cakephp2-x/this-html-css/

PHP ランダムでファイル名をつけ拡張子を取得する

ここではPHPでファイルのアプロード時にランダムでファイル名をつけ拡張子を取得する方法を解説しています。

サンプルソース

<?php

    $fileName = md5(uniqid(rand(), true));
    $fileName .= '.'.substr(strrchr($_FILES['file']['name'];, '.'), 1);

解説
ファイル名をランダムに作成して、最後の「.」ドットを判別してドット以下を取得しています。
画像ファイル(jpg,png,gif)やCSVファイルでもアップロードされたときでも拡張子の取得ができます。

PHP CSVファイル出力

ここではPHPでのCSVファイル出力を解説しています。

サンプルソース

<?php

    $data[0]['name'] = "田中太郎";
    $data[0]['position'] = "社長";
    $data[1]['name'] = "野原ひろし";
    $data[1]['position'] = "係長";

    for ($i = 0; $i < count($data); $i++) {
        $csvFile .= $data[$i]['name'] . "," . $data[$i]['position'] . "\n";
    }

    // ファイル名
    $csvName = date("Y-m-d") . ".csv";
    // ファイルサイズ
    $fileSize = filesize($csvFile);

    // 文字コードを設定
    $csvFile = mb_convert_encoding($csvFile , "sjis-win", "utf-8");

    // Mime設定
    header("Content-Disposition: attachment; filename={$csvName}");
    header("Content-Length:{$fileSize}");
    header("Content-Type: application/octet-stream");
    echo $csvFile;
    exit();

解説

出力するデータを「,」カンマ区切りで記述します。(9行目)

改行するときは「\n」を記述します。
この場合「’」シングルクォーテーションでは改行されません。必ず「”」ダブルクォーテーションで囲むようにしてください。

文字化けしないように文字コードを設定します。(18行目)
サンプルソースはUTF-8で作成してあります。

ファイル名、ファイルサイズ、を設定して出力しています。(21~24行目)

CSVファイルに限らずファイルの出力後には必ずexit()してください。

WordPress 訪問済みのリンク色を変えない

ここではWordPressで訪問済みのリンク色を変えない方法について解説しています。

wordpress_logo

概観→テーマの編集→スタイルシート(style.css)
/wp-content/themes/twentytwelve/style.css

.entry-content a:visited,
.comment-content a:visited {
    color: #9f9f9f;
}

visitedで検索をかけて上記CSSが記述してある箇所を見つけてください。
訪問済みのリンクに色をつけるように設定してあります。

これをコメントアウトするか、idやclassなどのエレメントで指定して別途記述してください。

/*
.entry-content a:visited,
.comment-content a:visited {
    color: #9f9f9f;
}
*/