Webylon 3.1 API Docs
  • Package
  • Class
  • Tree
  • Deprecated
  • Download
Version: current
  • 3.2
  • 3.1

Packages

  • auth
  • Booking
  • cart
    • shipping
    • steppedcheckout
  • Catalog
  • cms
    • assets
    • batchaction
    • batchactions
    • bulkloading
    • comments
    • content
    • core
    • export
    • newsletter
    • publishers
    • reports
    • security
    • tasks
  • Dashboard
  • DataObjectManager
  • event
  • faq
  • forms
    • actions
    • core
    • fields-basic
    • fields-dataless
    • fields-datetime
    • fields-files
    • fields-formatted
    • fields-formattedinput
    • fields-relational
    • fields-structural
    • transformations
    • validators
  • googlesitemaps
  • guestbook
  • installer
  • newsletter
  • None
  • photo
    • gallery
  • PHP
  • polls
  • recaptcha
  • sapphire
    • api
    • bulkloading
    • control
    • core
    • cron
    • dev
    • email
    • fields-formattedinput
    • filesystem
    • formatters
    • forms
    • i18n
    • integration
    • misc
    • model
    • parsers
    • search
    • security
    • tasks
    • testing
    • tools
    • validation
    • view
    • widgets
  • seo
    • open
      • graph
  • sfDateTimePlugin
  • spamprotection
  • stealth
    • captha
  • subsites
  • userform
    • pagetypes
  • userforms
  • webylon
  • widgets

Classes

  • FaqAdmin
  • FaqHolder
  • FaqHolder_Controller
  • FaqQuestion
  • FaqSection
  • FaqSection_Controller
  1 <?php
  2 /**
  3  * @package faq
  4  * @class FaqSection - страница-рубрика
  5  *
  6  * @author menedem
  7  */
  8 class FaqSection extends Page {
  9 
 10     static $icon = "faq/img/faq";
 11     
 12     static $allowed_children = 'none';
 13 
 14     static $db = array(
 15         'Email'=>'Varchar(100)',
 16     );  
 17     
 18     static $has_many = array(
 19         'Questions'=>'FaqQuestion'
 20     );  
 21     
 22     function getCMSFields() {
 23         $fields = parent::getCMSFields();       
 24         $fields->addFieldToTab('Root.Content.Main', new EmailField('Email', sprintf('%s (%s)', $this->fieldLabel('Email'), $this->Parent()->adminEmail())), 'Content');
 25         $tablefield = new ComplexTableField(
 26             $this,
 27             'Questions',
 28             'FaqQuestion',
 29             array(
 30                 'Question' => 'Question',
 31 //              'Answer' => 'Answer',
 32 //              'SectionID' => 'SectionID',
 33                 'Email' => 'Email',
 34                 'Created' => _t('FaqQuestion.db_Created'),
 35                 'AnswerDate' => 'AnswerDate',
 36                 'PublishedTitle' => 'Published',                    
 37                 'SendAnswerTitle' => 'SendAnswer'
 38                 
 39             ),
 40             'getCMSFields_forPopup',
 41             "`SectionID` = {$this->ID}",
 42             "`Created` DESC"            
 43         );      
 44         $fields->insertAfter(new Tab("Questions", _t('FaqSection.tab_Questions','Questions')), 'Main');     
 45         $fields->addFieldToTab('Root.Content.Questions', $tablefield);      
 46         return $fields;
 47     }   
 48 
 49     /**
 50      * ¬озвращает емайл отвественного за рубрику вопрос-ответ
 51      * ≈сли емайл в рубирке не указан - использует емайл из раздела
 52      * 
 53      * @return string
 54      */
 55     function adminEmail() {
 56         return ($this->Email) ? $this->Email : $this->Parent()->adminEmail();
 57     }
 58     
 59     function onAfterDelete() {
 60         parent::onAfterDelete();
 61         if ($this->IsDeletedFromStage && !$this->ExistsOnLive) {
 62             if ($this->Questions()) {
 63                 foreach($this->Questions() as $question)
 64                     $question->delete();
 65             }
 66         }
 67         
 68     }
 69     
 70     /**
 71      * ¬озвращает список опубликованных вопросов рубрики с pagination
 72      *      
 73      * @return DataObjectSet
 74      */
 75     function SectionQuestions() {   
 76         $offset = 0;
 77         if (isset($_GET['start'])) {
 78             $offset = (int) $_GET['start'];
 79         }
 80         $pageSize = $this->Parent()->QuestionsPerPage;
 81         $rs = DataObject::get('FaqQuestion', "`Published` = 1 AND `SectionID` = {$this->ID}", "`LastEdited` DESC", '', "$offset,$pageSize");
 82         
 83         return $rs;         
 84     }
 85 }
 86 /**
 87  * @package faq
 88  * @class FaqSection_Controller - контроллер страницы-рубрики
 89  */
 90 class FaqSection_Controller extends Page_Controller {
 91 
 92     /**
 93      * возвращает форму дл¤ задани¤ вопроса
 94      * Ѕерет форму от родител¤ и устанавливает поле рубрика в себ¤
 95      * 
 96      * @return Form
 97      */
 98     function QuestionForm() {
 99         $parentController = new FaqHolder_controller($this->Parent());
100         $form = $parentController->QuestionForm();
101         if ($form) {
102             $form->loadDataFrom( array('SectionID' => $this->ID));      
103         }       
104         return $form;
105     }
106     
107     function Questions() {
108         $questions = $this->SectionQuestions();
109         if ($this->hasMethod('setSEOVars')) {           
110             $this->setSEOVars($questions);  //Выставляем SEO-переменные (ф-я setSEOVars находится в Webylon Page_Controller)            
111         }       
112         return $questions;
113     }
114     
115 }
116 
117 
[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -
Webylon 3.1 API Docs API documentation generated by ApiGen 2.8.0