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

source: OpenPNE3/trunk/lib/config/sfOpenPNEViewConfigHandler.class.php @ 8553

Last change on this file since 8553 was 8553, checked in by ebihara, 12 years ago

#3029:不要となった設定項目に関する処理を削除

File size: 2.6 KB
Line 
1<?php
2
3/**
4 * sfOpenPNEViewConfigHandler allows you to configure views for OpenPNE.
5 *
6 * @package    OpenPNE
7 * @subpackage config
8 * @author     Kousuke Ebihara <ebihara@tejimaya.net>
9 */
10class sfOpenPNEViewConfigHandler extends sfViewConfigHandler
11{
12  public function execute($configFiles)
13  {
14    $result = parent::execute($configFiles);
15    $data = array();
16
17    $first = true;
18    foreach ($this->yamlConfig as $viewName => $values)
19    {
20      if ($viewName == 'all')
21      {
22        continue;
23      }
24
25      $data[] = ($first ? '' : 'else ')."if (\$templateName.\$this->viewName == '$viewName')\n".
26                "{\n";
27
28      $data[] = $this->addCustomizes($viewName);
29
30      $data[] = "}\n";
31
32      $first = false;
33    }
34
35    $data[] = ($first ? '' : "else\n{")."\n";
36
37    $data[] = $this->addCustomizes();
38
39    $data[] = ($first ? '' : "}")."\n";
40
41    $result .= sprintf("// auto-generated by sfOpenPNEViewConfigHandler\n".
42                      "// date: %s\n%s\n",
43                      date('Y/m/d H:i:s'), implode('', $data));
44
45    return $result;
46  }
47
48  protected function addCustomizes($viewName = '')
49  {
50    $data = '';
51
52    $customizes = $this->mergeConfigValue('customize', $viewName);
53    foreach ($customizes as $name => $customize)
54    {
55      if (!is_array($customize) || empty($customize))
56      {
57        continue;
58      }
59
60      $template = array(null, $name);
61      if (!empty($customize['template']) && is_array($customize['template']))
62      {
63        $template = $customize['template'];
64      }
65
66      $category = 'array(';
67      if (!empty($customize['category']) && is_array($customize['category']))
68      {
69        foreach ($customize['category'] as $value) {
70          $category .= '\'' . $value . '\',';
71        }
72      }
73      $category .= ')';
74
75      $parts = 'array(';
76      if (!empty($customize['parts']) && is_array($customize['parts']))
77      {
78        foreach ($customize['parts'] as $value) {
79          $parts .= '\'' . $value . '\',';
80        }
81      }
82      $parts .= ')';
83
84      $target = 'array(';
85      if (!empty($customize['target']) && is_array($customize['target']))
86      {
87        foreach ($customize['target'] as $value) {
88          $target .= '\'' . $value . '\',';
89        }
90      }
91      $target .= ')';
92
93      $data .= \$this->setCustomize('$name', '{$template[0]}', '{$template[1]}', $category, $parts, $target);\n";
94      $data .= "  if (sfConfig::get('sf_logging_enabled')) \$this->context->getEventDispatcher()->notify(new sfEvent(\$this, 'application.log', array(sprintf('Set customize \"%s\" (%s/%s)', '$name', '{$template[0]}', '{$template[1]}'))));\n";
95    }
96
97    return $data;
98  }
99}
Note: See TracBrowser for help on using the repository browser.