2012年5月17日木曜日

2012年05月15日 講義064日目

2012年05月15日
講義064日目
------------------------------1H------------------------------
★symfony
●部品化
・スロット
パンくずなどに使う場合が多い
layout.phpを編集
backend/config/view.ymlを読み込んでる部分を編集

<?php include_title() ?>

<!-- テンプレートにスロットがあれば読み込み、無ければデフォルトを読み込む -->
<?php if(has_slot("title")):?>
  <?php incleude_slot("title")?>
<?php else:?>
  <?php include_title() ?>
<?php endif;?>

切り替わるスロット部分を書く
backend/modules/comment/templates/listSuccess.php
<?php slot("title");?>
<title>管理画面 コメント一覧</title>
<?php end_slot();?>
・コンポーネント
は、またこんど
データベースの情報を元に動的に表示させたい部分を作る
●コメント一覧のcssを調整
・commentモジュールのテンプレートにテーブルタグにcssを反映させる
<table class="tblData">
・トランケートはヘルパーでやる
find ./ -name * php | xargs grep link_to
で探すとヘルパー関数の場所がわかる
------------------------------2H------------------------------
★symfony
●ヘルパーの作成
/lib/helperを作成
・MyUtilityHelper.php
<?php

function my_mb_truncate_text($text, $length = 30, $truncate_string = '...', $truncate_lastspace = false)
{
    mb_internal_encoding("utf-8");

    if ($text == '') {
        return '';
    }

    if (mb_strlen($text) > $length) {

        $truncate_text = mb_substr($text, 0, $length - strlen($truncate_string));

        if ($truncate_lastspace) {
            $truncate_text = mb_preg_replace('/\s+?(\S+)?$/', '', $truncate_text);
        }

        return $truncate_text.$truncate_string;

    } else {
        return $text;
    }
}

comment/listSuccess
一番上に
<?php use_helper("MyUtility")?>
を記述してヘルパーを読み込む
テーブルを表示させてる部分にヘルパーの関数を噛ませる
      <td><?php echo my_mb_truncate_text($comment->getNickname()) ?></td>
      <td><?php echo my_mb_truncate_text($comment->getContent()) ?></td>
・カテゴリーを読み込む
<tbody>の下あたりに
<?php $categorys = sfConfig::get("sf_categorys")?>
を記述
三項演算子でカテゴリー部分の表示エラーが出ないように""は「なし」と表示されるようにする
<td><?php echo ($comment->getCategoryId() != "")?$categorys[$comment->getCategoryId()]:"なし"; ?></td>
●自動生成されたテンプレートを編集する
・Nickname
object_textarea_tag

  <th>Nickname:</th>
  <td><?php echo object_input_tag($comment, 'getNickname', array (
  'size' => '30',
)) ?></td>
・Category
<th>Category:</th>
<?php echo object_input_tag($comment, 'getCategoryId', array (
  'size' => 7,
)) ?></td>

<?php $categorys = sfConfig::get("sf_categorys")?>
  <td>
  <?php echo select_tag("category_id", option_for_select($categorys,$comment->getCategoryId()))?>
</td>
・photo
  <th>Photo:</th>
  <td><?php echo object_textarea_tag($comment, 'getPhoto', array (
  'size' => '30x3',
)) ?></td>

・default.css
#content

#contentWrapper
・apps/backend/
・backend/modules/dafault/actions/actions.class.php
のホスト名きめ打ちのところをsetting.ymlの情報を元にするように変更

------------------------------3H------------------------------
★symfony

/backend/modules/comment/actions/actions.class.php
の、executeUpdateメソッド内
        $photo = $this->getRequest()->getFile('photo');

        $comment->save();
        if($photo["tmp_name"])
        {
            $filename = $comment->getId().".jpg";
            $this->getRequest()->moveFile("photo",sfConfig::get('sf_web_dir')."/images/comment/".$filename);
            $comment->setPhoto($filename);
            $comment->save();
        }
●サムネイルを表示させる
・editSuccess.php
  <th>Photo:</th>
  <td>
<?php if($comment->getPhoto()):?>
  <img src="/images/comment/<?php echo $comment->getPhoto()?>"width="100">
<?php endif;?>
  <br>
<?php echo input_file_tag("photo")?>
  </td>
・showSuccess.php
ヘルパーを使う
<th>Photo: </th>
<td>
<?php echo image_tag(sfConfig::get("sf_hostname")."images/comment/".$comment->getPhoto(),array("width" => 100))?>
</td>
</tr>
------------------------------4H------------------------------
★symfony
●symfonyを使ってサイトを作成する
・施設・備品管理システムの作成

・施設情報のCRUD(部屋情報)
施設名、部屋名、階などの情報
試用期間
・備品情報のCRUD
新規データベースの作成
データベース:mismanage
プロジェクト:sf.mismanage.com
備品名
個数
  使用個数
  残個数
平時の置き場所
(使用期間)
・共通情報
使用者
用途
登録者
作成日
更新日
------------------------------5H------------------------------
★symfony
●symfonyを使ってサイトを作成する
・下準備
データベースの作成
vhostとHostsファイルの編集
symfonyプロジェクトの作成
------------------------------6H------------------------------
★symfony
●symfonyを使ってサイトを作成する
・データベース構成と正規化
-----------------------------memo------------------------------

0 件のコメント:

コメントを投稿