00001 <?php
00015 import('lib.pkp.classes.form.Form');
00016
00017 class SocialMediaForm extends Form {
00021 var $_socialMedia;
00022
00026 var $_pressId;
00027
00033 function SocialMediaForm($pressId, $socialMedia = null) {
00034 parent::Form('controllers/grid/content/navigation/form/socialMediaForm.tpl');
00035
00036 $this->_socialMedia = $socialMedia;
00037 $this->_pressId = $pressId;
00038
00039 $this->addCheck(new FormValidator($this, 'platform', 'required', 'grid.content.navigation.socialMedia.platformRequired'));
00040 $this->addCheck(new FormValidator($this, 'code', 'required', 'grid.content.navigation.socialMedia.codeRequired'));
00041 $this->addCheck(new FormValidatorPost($this));
00042 }
00043
00044
00045
00046
00047
00051 function fetch($request) {
00052 $templateMgr =& TemplateManager::getManager();
00053
00054 $socialMediaDao =& DAORegistry::getDAO('SocialMediaDAO');
00055 $socialMedia =& $this->getSocialMedia();
00056 $templateMgr->assign_by_ref('socialMedia', $socialMedia);
00057 $templateMgr->assign('pressId', $this->getPressId());
00058
00059 if (isset($socialMedia)) {
00060 $templateMgr->assign('platform', $socialMedia->getPlatform(null));
00061 $templateMgr->assign('code', $socialMedia->getCode());
00062 $templateMgr->assign('includeInCatalog', $socialMedia->getIncludeInCatalog());
00063 }
00064
00065 return parent::fetch($request);
00066 }
00067
00068
00069
00070
00074 function readInputData() {
00075 $this->readUserVars(array('platform', 'code', 'includeInCatalog'));
00076 }
00077
00081 function execute(&$request) {
00082
00083 $socialMediaDao =& DAORegistry::getDAO('SocialMediaDAO');
00084 $socialMedia =& $this->getSocialMedia();
00085
00086 if (!$socialMedia) {
00087
00088 $socialMedia = $socialMediaDao->newDataObject();
00089 $socialMedia->setPressId($this->getPressId());
00090 $existingSocialMedia = false;
00091 } else {
00092 $existingSocialMedia = true;
00093 }
00094
00095 $socialMedia->setPlatform($this->getData('platform'), null);
00096 $socialMedia->setCode($this->getData('code'));
00097 $socialMedia->setIncludeInCatalog($this->getData('includeInCatalog')!=''?1:0);
00098
00099 if ($existingSocialMedia) {
00100 $socialMediaDao->updateObject($socialMedia);
00101 $socialMediaId = $socialMedia->getId();
00102 } else {
00103 $socialMediaId = $socialMediaDao->insertObject($socialMedia);
00104 }
00105
00106 return $socialMediaId;
00107 }
00108
00109
00110
00111
00112
00113
00118 function &getSocialMedia() {
00119 return $this->_socialMedia;
00120 }
00121
00126 function getPressId() {
00127 return $this->_pressId;
00128 }
00129 }
00130 ?>