1  <?php
 2  /* Copyright (c) 2012, Geert Bergman (geert@scrivo.nl)
 3   * All rights reserved.
 4   *
 5   * Redistribution and use in source and binary forms, with or without
 6   * modification, are permitted provided that the following conditions are met:
 7   *
 8   * 1. Redistributions of source code must retain the above copyright notice,
 9   *    this list of conditions and the following disclaimer.
10   * 2. Redistributions in binary form must reproduce the above copyright notice,
11   *    this list of conditions and the following disclaimer in the documentation
12   *    and/or other materials provided with the distribution.
13   * 3. Neither the name of "Scrivo" nor the names of its contributors may be
14   *    used to endorse or promote products derived from this software without
15   *    specific prior written permission.
16   *
17   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27   * POSSIBILITY OF SUCH DAMAGE.
28   *
29   * $Id: Application.php 847 2013-08-20 16:41:10Z geert $
30   */
31  
32  /**
33   * Implementation of the \Scrivo\PageProperty\Application class.
34   */
35  
36  namespace Scrivo\PageProperty;
37  
38  /**
39   * Page property implementation for TYPE_APPLICATION_TAB
40   */
41  class Application extends \Scrivo\PageProperty {
42  
43      /**
44       * Implementation of the readable properties using the PHP magic
45       * method __get().
46       *
47       * @param string $name The name of the property to get.
48       *
49       * @return mixed The value of the requested property.
50       */
51      public function __get($name) {
52          switch($name) {
53              case "definitionId": return intval((string)$this->extData);
54              case "definitionType": return intval((string)$this->data);
55              case "application": return $this->getApp();
56          }
57          return parent::__get($name);
58      }
59  
60      /**
61       * Instantiate and return the application that is linked to this property.
62       *
63       * return mixed The application linked to this property.
64       */
65      private function getApp() {
66          switch ($this->definitionType) {
67              case \Scrivo\ApplicationDefinition::TYPE_LIST:
68              case \Scrivo\ApplicationDefinition::TYPE_DISTRIBUTED_LIST:
69              case \Scrivo\ApplicationDefinition::TYPE_LISTVIEW:
70                  return \Scrivo\ItemList::fetch($this->page->context,
71                      $this->page->id$this->definition->id);
72              case \Scrivo\ApplicationDefinition::TYPE_FORM:
73                  return NULL;
74              case \Scrivo\ApplicationDefinition::TYPE_URL:
75                  return NULL;
76          }
77          throw new \Scrivo\SystemException(
78              "Invalid application type '{$this->definitionType}'");
79      }
80  }
81  
82  ?>

Documentation generated by phpDocumentor 2.0.0a12 and ScrivoDocumentor on August 29, 2013