ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE3/trunk/lib/model/MemberProfile.php @ 10078

Last change on this file since 10078 was 10078, checked in by ebihara, 11 years ago

#3308:added ability to search members by their nickname and their profiles to the pc_backend application

File size: 2.5 KB
Line 
1<?php
2
3/**
4 * This file is part of the OpenPNE package.
5 * (c) OpenPNE Project (http://www.openpne.jp/)
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file and the NOTICE file that were distributed with this source code.
9 */
10
11class MemberProfile extends BaseMemberProfileNestedSet
12{
13  private $name;
14  private $caption;
15
16  public function __toString()
17  {
18    if ($this->getProfile()->getFormType() === 'date')
19    {
20      return (string)$this->getValue();
21    }
22
23    if ($this->getRhtKey() != 2)
24    {
25      $pieces = array();
26      $children = $this->getChildren();
27
28      foreach ($children as $child)
29      {
30        if ($child->getProfileOptionId())
31        {
32          $option = ProfileOptionPeer::retrieveByPk($child->getProfileOptionId());
33          $pieces[] = $option->getValue();
34        }
35      }
36
37      return implode(', ', $pieces);
38    }
39
40    if ($this->getProfileOptionId())
41    {
42      $option = ProfileOptionPeer::retrieveByPk($this->getProfileOptionId());
43      return (string)$option->getValue();
44    }
45
46    return (string)$this->getValue();
47  }
48
49  public function getValue()
50  {
51    if ($this->getProfile()->getFormType() === 'date' && !$this->isRoot())
52    {
53      return parent::getValue();
54    }
55
56    if ($this->getRhtKey() != 2)
57    {
58      $children = $this->getChildren();
59      $value = array();
60      foreach ($children as $child)
61      {
62        if ($child->getProfile()->getFormType() === 'date')
63        {
64          $value[] = $child->getValue();
65        }
66        elseif ($child->getProfileOptionId())
67        {
68          $option = ProfileOptionPeer::retrieveByPk($child->getProfileOptionId());
69          $value[] = $option->getValue();
70        }
71      }
72
73      if ($this->getProfile()->getFormType() === 'date' && $this->isRoot())
74      {
75        $obj = new DateTime();
76        $obj->setDate($value[0], $value[1], $value[2]);
77        return $obj->format('Y-m-d');
78      }
79
80      return $value;
81    }
82    if ($this->getProfileOptionId())
83    {
84      return $this->getProfileOptionId();
85    }
86
87    return parent::getValue();
88  }
89
90  public function hydrateProfiles($row)
91  {
92    try {
93      $col = parent::hydrate($row);
94      $this->name = $row[$col+0];
95      $this->caption = $row[$col+1];
96    } catch (Exception $e) {
97      throw new PropelException("Error populating MemberProfile object", $e);
98    }
99  }
100
101  public function getName()
102  {
103    return $this->name;
104  }
105
106  public function getCaption()
107  {
108    if (is_null($this->caption))
109    {
110      $this->caption = $this->getProfile()->getCaption();
111    }
112    return $this->caption;
113  }
114}
Note: See TracBrowser for help on using the repository browser.