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

Changeset 9417


Ignore:
Timestamp:
Nov 27, 2008, 9:23:50 PM (11 years ago)
Author:
ShogoKawahara
Message:

#3119:added application/setting action

Location:
OpenPNE3/plugins/opOpenSocialPlugin/trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE3/plugins/opOpenSocialPlugin/trunk/apps/pc_frontend/modules/application/actions/actions.class.php

    r9239 r9417  
    9797  }
    9898  /**
     99   * Executes setting action
     100   *
     101   * @param sfRequest $request A request object
     102   */
     103  public function executeSetting($request)
     104  {
     105    if (!$request->hasParameter('mid'))
     106    {
     107      return sfView::ERROR;
     108    }
     109    $this->appsettingForm = new ApplicationSettingForm();
     110    if (!$this->appsettingForm->setConfigWidgets($request->getParameter('mid')))
     111    {
     112      return sfView::ERROR;
     113    }
     114    return sfView::SUCCESS;
     115  }
     116  /**
    99117   * Executes js action
    100118   *
  • OpenPNE3/plugins/opOpenSocialPlugin/trunk/lib/form/ApplicationSettingForm.class.php

    r9059 r9417  
    88 * @version    SVN: $Id: sfPropelFormTemplate.php 6174 2007-11-27 06:22:40Z fabien $
    99 */
    10 class ApplicationSettingForm extends BaseApplicationSettingForm
     10class ApplicationSettingForm extends OpenPNEFormAutoGenerate
    1111{
     12  public function __construct($appSetting = array(),$options = array(), $CSRFSecret = null)
     13  {
     14    parent::__construct(array(), $options, $CSRFSecret);
     15
     16    foreach ($appSetting as $setting)
     17    {
     18      $this->setDefault($setting->getName(), $setting->getValue());
     19    }
     20  }
     21
    1222  public function configure()
    1323  {
     24    $this->widgetSchema->setNameFormat('setting[%s]');
     25  }
     26
     27  public function setConfigWidgets($modId)
     28  {
     29    $memberApp = MemberApplicationPeer::retrieveByPk($modId);
     30    if (!$memberApp)
     31    {
     32      return false;
     33    }
     34    if (!$memberApp->getApplication()->hasSettings())
     35    {
     36      return false;
     37    }
     38    $settings = $memberApp->getApplication()->getSettings();
     39
     40    foreach ($settings as $key => $setting)
     41    {
     42      $param   = array();
     43      $choices = array();
     44      $param['Caption'] = $setting['displayName'];
     45      switch ($setting['type'])
     46      {
     47        case 'HIDDEN': continue 2;
     48        case 'BOOL' :
     49          $param['FormType'] = 'radio';
     50          $choices = array('1' => 'Yes', '0' => 'No');
     51          break;
     52        case 'ENUM' :
     53          $param['FormType'] = 'select';
     54          $choices = $setting['enumValues'];
     55          break;
     56        default :
     57          $param['FormType'] = 'textarea';
     58      }
     59      $this->widgetSchema[$key] = $this->generateWidget($param, $choices);
     60      $this->validatorSchema[$key] = $this->generateValidator($param, $choices);
     61    }
     62    return true;
    1463  }
    1564}
  • OpenPNE3/plugins/opOpenSocialPlugin/trunk/lib/model/Application.php

    r9059 r9417  
    1010class Application extends BaseApplication
    1111{
     12  /**
     13   * hasSettings
     14   *
     15   * @return boolean
     16   */
     17  public function hasSettings()
     18  {
     19    $settings = $this->getSettings();
     20    if (!is_array($settings))
     21    {
     22      return false;
     23    }
     24    foreach ($settings as $setting)
     25    {
     26      if (!isset($setting['type']) || $setting['type'] != 'HIDDEN')
     27      {
     28        return true;
     29      }
     30    }
     31    return false;
     32  }
     33
     34  /**
     35   * getSettings
     36   *
     37   * @return array
     38   */
     39  public function getSettings()
     40  {
     41    return unserialize(parent::getSettings());
     42  }
    1243}
  • OpenPNE3/plugins/opOpenSocialPlugin/trunk/lib/model/ApplicationPeer.php

    r9069 r9417  
    115115    return $app;
    116116  }
     117
     118  /**
     119   * has settings
     120   *
     121   * @param integer $modId
     122   * @return boolean
     123   */
     124  public static function hasSetting($modId)
     125  {
     126    $app = self::retrieveByPk($modId);
     127    if (!$app)
     128    {
     129      return false;
     130    }
     131    return $app->hasSettings();
     132  }
    117133}
Note: See TracChangeset for help on using the changeset viewer.