OSDN Git Service

指定ユーザの新着キャラ表示
authorCake <cake_67@users.sourceforge.jp>
Wed, 24 Mar 2010 04:25:45 +0000 (13:25 +0900)
committerCake <cake_67@users.sourceforge.jp>
Wed, 24 Mar 2010 04:25:45 +0000 (13:25 +0900)
app/controllers/app_controller.php
app/controllers/users_controller.php
app/views/elements/character_picture_table.ctp
app/views/elements/home_right.ctp
app/webroot/css/layout.css

index 2a74d4f..9240f32 100644 (file)
@@ -47,6 +47,11 @@ class AppController extends Controller
                'Token'
        );
 
+       var $conditions = array(
+               'Character.public_flag' => 'public',
+               'Character.deleted' => 0
+       );
+
        /* ACL */
        // 追加アクション用 crudMap
        var $actionMapPlus = array();
@@ -207,14 +212,19 @@ class AppController extends Controller
        /* キャラクター一覧取得 */
        function _get_characters4user_id($user_id = null, $conditions = array(), $limit = 5, $fields = array(), $contain = array(), $order = array())
        {
+               if (!isset($this->Character)) {
+                       $this->Character = CorePlus::set_model('Character');
+               }
+
                if (!empty($user_id)) {
-                       $conditions = array_merge($conditions, 
+                       $conditions = array_merge($this->conditions, 
                                array(
                                        'Character.user_id' => $user_id,
-                               ) 
+                               ),
+                               $conditions
                        );
                        if ($user_id == $this->user_id) {
-                               unset($conditions['Characterpublic_flag']);
+                               unset($conditions['Character.public_flag']);
                        }
                }
 
@@ -227,12 +237,9 @@ class AppController extends Controller
 
        function _get_characters($conditions = array(), $limit = 5, $fields = array(), $contain = array(), $order = array())
        {
-               $conditions = array_merge(
-                       array(
-                               'Character.public_flag' => 'public',
-                               'Character.deleted' => 0,
-                       ), $conditions
-               );
+               if (empty($conditions)) {
+                       $conditions = $this->conditions;
+               }
 
                if (empty($fields)) {
                        $fields = '';
@@ -250,9 +257,6 @@ class AppController extends Controller
                        $order = array('Character.modified' => 'DESC');
                }
 
-               if (!isset($this->Character)) {
-                       $this->Character = CorePlus::set_model('Character');
-               }
                return $this->Character->find('all', array(
                        'conditions' => $conditions,
                        'limit' => 5,
index 46da8fe..3a28f61 100644 (file)
@@ -353,10 +353,21 @@ class UsersController extends ModuleController {
        }
 
        function _view($id = null) {
-               // 全体の情報
+               // 指定ユーザの情報
                // characters
-               $public_characters = $this->_get_characters4user_id(null, array(), 5, array(), array('System', 'User'));
+               $target_user_characters = array();
+               if (!empty($id)) {
+                       // characters
+                       $target_user_characters = $this->_get_characters4user_id($id, array(), 5, array(), array('System'));
+               }
+               $this->set('target_user_characters', $target_user_characters);
 
+               // 全体の情報
+               $public_characters = array();
+               if (empty($id) || ($id == $this->user_id)) {
+                       // characters
+                       $public_characters = $this->_get_characters4user_id(null, array(), 5, array(), array('System', 'User'));
+               }
                $this->set('public_characters', $public_characters);
 
        }
index a4ea9fb..2742b3e 100644 (file)
@@ -1,5 +1,5 @@
 <div class="box CharacterTable_<?php echo $previewVersion ?>_<?php echo $colNum ?>" id="<?php echo $id ?>">
-<div class="boxHeader"><h3><?php __('Latest Characters');?></h3></div>
+<div class="boxHeader"><h3><?php echo $header;?></h3></div>
 <div class="boxBody">
 
 <table>
index 8521307..1b5709c 100644 (file)
@@ -1,9 +1,31 @@
 <div id="<?php if (!isset($user['User']['id']) || !empty($target_user)): ?>right<?php else: ?>two<?php endif ?>">
 
+<?php if (isset($target_user_characters) && isset($target_user)): ?>
+<!-- All User Characters -->
+<?php
+       echo $this->renderElement('character_picture_table', array(
+               'header' => $target_user['User']['name']. __("'s Characters", true),
+               'characters' => $target_user_characters,
+               'previewVersion' => 'm',
+               'colNum' => 5,
+               'id' => null,
+               'isUser' => false,
+               'isSystem' => true,
+               'more_url' => array(
+                       'controller' => 'characters', 
+                       'action' => 'index',
+                       $target_user['User']['id'],
+               ),
+
+       ));
+?>
+<?php endif; ?>
+
 <?php if (CorePlus::is_valid($public_characters, '0')): ?>
 <!-- All Latest Characters -->
 <?php
        echo $this->renderElement('character_picture_table', array(
+               'header' => __('Latest Characters', true),
                'characters' => $public_characters,
                'previewVersion' => 'm',
                'colNum' => 5,
index fbcf577..93ef202 100644 (file)
  {
        font-size: 120%;
        padding-top: 2px;
-       padding-bottom: 7px;
+       padding-bottom: 6px;
        width: 120px;
        height: 1em;
        overflow: hidden;