OSDN Git Service

mediaプラグインで保存した画像出力
authorCake <cake_67@users.sourceforge.jp>
Tue, 16 Feb 2010 06:46:08 +0000 (15:46 +0900)
committerCake <cake_67@users.sourceforge.jp>
Tue, 16 Feb 2010 06:57:59 +0000 (15:57 +0900)
app/controllers/app_controller.php
app/controllers/users_controller.php
app/models/user.php
app/views/elements/home.ctp
app/views/users/admin_view.ctp

index 9399a5f..ea9a859 100644 (file)
@@ -41,6 +41,7 @@ class AppController extends Controller
                'Form',
                'Javascript',
                'Settings',
+               'Media.Medium',
                'Token'
        );
 
@@ -85,8 +86,12 @@ class AppController extends Controller
                        $this->AuthPlus->actionPath = 'controllers/';
                        $this->AuthPlus->authorize = 'crud';
                        // 認証済みユーザ情報のセット
-                       $this->user = $this->AuthPlus->user();
-                       $this->user_id = $this->user['User']['id'];
+                       $this->user_id = $this->AuthPlus->user('id');
+                       $user = $this->getUser($this->user_id);
+                       if (!empty($user)) {
+                               $this->user = $user;
+                       }
+
                        if (in_array($this->AuthPlus->user('group_id'), array(1,2,3))) {
                                $this->isAdministrator = true;
                        }
@@ -234,6 +239,35 @@ class PcAppController extends AppController
                parent::beforeRender();
 
        }
+
+
+       /* ユーザ情報取得 */
+       function getUser($id) {
+               if (!$id) {
+                       return array();
+               }
+
+               // Media.Attachmentから関連ファイルの取得
+               $this->User->hasMany['Attachment']['conditions']['foreign_key'] = $id;
+               $user = $this->User->find('first', array(
+                       'conditions' => array('User.id' => $id),
+                       'fields' => array(
+                               'User.id',
+                               'User.group_id',
+                               'User.name',
+                               'User.pcmail',
+                               'User.mobile_mail',
+                               'User.modified',
+                       ),
+                       'recursive' => 1,
+                       'contain' => array(
+                               'Attachment',
+                       ),
+               ));
+
+               return $user;
+       }
+
 }
 
 
index 03282a4..fab6b22 100644 (file)
@@ -265,7 +265,9 @@ class UsersController extends ModuleController {
                        'host' => gethostbyaddr($_SERVER["REMOTE_ADDR"]),
                        )
                );
-               $this->set('target_user', $this->user);
+
+               $user = $this->getUser($this->User->id);
+               $this->set('target_user', $user);
        }
 
        function _view($id) {
@@ -405,18 +407,5 @@ class UsersController extends ModuleController {
                }
        }
 
-       /* ユーザ情報取得 */
-       function getUser($id) {
-               if (!$id) {
-                       return $this->user;
-               }
-               $user = $this->User->read(null, $id);
-               if (!$user['User']) {
-                       $this->Session->setFlash(__('Invalid User.', true));
-                       return $this->user;
-               }
-               return $user;
-       }
-
 }
 
index 3956298..6d44bc8 100644 (file)
@@ -17,6 +17,14 @@ class User extends AppModel {
                        'className' => 'Media.Attachment',
                        'foreignKey' => 'foreign_key',
                        'conditions' => array('model' => 'User'),
+                       'fields' => array(
+                               'Attachment.id',
+                               'Attachment.dirname',
+                               'Attachment.basename',
+                               'Attachment.alternative',
+                               'Attachment.group',
+                               'Attachment.checksum',
+                       ),
                )
        );
 
index 87c7cf9..650cb0a 100644 (file)
@@ -1,20 +1,26 @@
 <div class="users view">
 <h2><?php echo $target_user['User']['name']; ?><?php __("'s ");?><?php __('Home');?></h2>
-       <dl><?php $i = 0; $class = ' class="altrow"';?>
-               <dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Name'); ?></dt>
-               <dd<?php if ($i++ % 2 == 0) echo $class;?>>
-                       <?php echo $target_user['User']['name']; ?>
-                       &nbsp;
-               </dd>
-               <dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Created'); ?></dt>
-               <dd<?php if ($i++ % 2 == 0) echo $class;?>>
-                       <?php echo $target_user['User']['created']; ?>
-                       &nbsp;
-               </dd>
-               <dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Modified'); ?></dt>
-               <dd<?php if ($i++ % 2 == 0) echo $class;?>>
-                       <?php echo $target_user['User']['modified']; ?>
-                       &nbsp;
-               </dd>
-       </dl>
+<dl>
+<dt><?php __('Name'); ?></dt>
+<dd>
+<?php echo $target_user['User']['name']; ?>
+</dd>
+<dt><?php __('Image'); ?></dt>
+<dd>
+<?php
+       if (isset($target_user['Attachment'][0])) {
+               $img_name = isset($target_user['Attachment'][0]['alternative']) ? $target_user['Attachment'][0]['alternative'] : $target_user['Attachment'][0]['basename']; 
+
+               echo $medium->embed($medium->file('filter/s', $target_user['Attachment'][0]));
+
+       } else {
+               echo "&nbsp;";
+       }
+?>
+</dd>
+<dt><?php __('Modified'); ?></dt>
+<dd>
+<?php echo $target_user['User']['modified']; ?>
+</dd>
+</dl>
 </div>
index 8a7639d..27d6bd3 100644 (file)
        <?php echo $target_user['User']['group_id']; ?>
        &nbsp;
 </dd>
+<dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Image'); ?></dt>
+<dd<?php if ($i++ % 2 == 0) echo $class;?>>
+<?php
+       if (isset($target_user['Attachment'][0])) {
+               $img_name = isset($target_user['Attachment'][0]['alternative']) ? $target_user['Attachment'][0]['alternative'] : $target_user['Attachment'][0]['basename']; 
+
+               echo $medium->embed($medium->file('filter/s', $target_user['Attachment'][0]));
+
+       } else {
+               echo "&nbsp;";
+       }
+?>
+</dd>
 <dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Name'); ?></dt>
 <dd<?php if ($i++ % 2 == 0) echo $class;?>>
        <?php echo $target_user['User']['name']; ?>