public function filterData($data) { if (!empty($data['sponsor_url'])) { foreach ($data['sponsor_url'] as &$url) { if (!empty($url) && strpos($url, 'http://') === false && strpos($url, 'https://') === false) { $url = 'http://' . $url; } } } return parent::filterData($data); }
public function __construct($prefix = '', $fields = []) { parent::__construct($prefix, $fields); if (empty($fields)) { $fields = ['hub_slot' => ['label' => wfMessage('manage-wikia-home-hubs-slot-name')->plain(), 'type' => 'select', 'isArray' => true]]; $fields['marketing_slot_title'] = ['label' => 'Title', 'type' => 'text', 'isArray' => true]; $fields['marketing_slot_image'] = ['type' => 'hidden', 'validator' => new WikiaValidatorListValue(array('validator' => new WikiaValidatorImageSize(array('minWidth' => self::SLOT_IMG_WIDTH, 'minHeight' => self::SLOT_IMG_HEIGHT, 'maxWidth' => self::SLOT_IMG_WIDTH, 'maxHeight' => self::SLOT_IMG_HEIGHT), array('min-width' => 'manage-wikia-home-marketing-invalid-width', 'max-width' => 'manage-wikia-home-marketing-invalid-width', 'min-height' => 'manage-wikia-home-marketing-invalid-height', 'max-height' => 'manage-wikia-home-marketing-invalid-height', 'wrong-size' => 'manage-wikia-home-marketing-invalid-size')))), 'attributes' => array('class' => 'required wmu-file-name-input'), 'class' => 'hidden', 'label' => 'Image', 'isArray' => true]; $fields['marketing_slot_link'] = ['label' => 'Link', 'type' => 'text', 'isArray' => true]; } $this->setFields($fields); }
/** * Main action for editing hub modules */ public function editHubAction() { global $wgCityId; if (!$this->checkAccess()) { return false; } $this->retriveDataFromUrl(); $this->wg->Out->addJsConfigVars(['wgEditHubModuleIdSelected' => $this->selectedModuleId, 'wgEditHubModuleIdPopularVideos' => WikiaHubsModulePopularvideosService::MODULE_ID, 'wgEditHubModuleIdFeaturedVideo' => WikiaHubsModuleFeaturedvideoService::MODULE_ID]); $this->checkDate($this->date); $this->flashMessage = FlashMessages::pop(); $modulesData = $this->editHubModel->getModulesData($wgCityId, $this->date, $this->selectedModuleId); $this->prepareLayoutData($this->selectedModuleId, $modulesData); $this->response->addAsset('resources/jquery/jquery.validate.js'); $this->response->addAsset('/extensions/wikia/SpecialEditHub/js/EditHub.js'); $this->response->addAsset('/extensions/wikia/SpecialEditHub/js/EditHubNavigation.js'); $this->response->addAsset('/extensions/wikia/SpecialEditHub/js/jquery.MetaData.js'); $selectedModuleValues = $modulesData['moduleList'][$this->selectedModuleId]['data']; $module = WikiaHubsModuleService::getModuleByName($this->editHubModel->getNotTranslatedModuleName($this->selectedModuleId), $wgCityId); $form = new FormBuilderService(EditHubModel::FORM_FIELD_PREFIX); $form->setFields($module->getFormFields()); if ($this->request->wasPosted()) { $selectedModuleValues = $this->request->getParams(); $selectedModuleValues = $module->filterData($selectedModuleValues); $isValid = $form->validate($selectedModuleValues); if ($isValid) { $this->editHubModel->saveModule(['cityId' => $wgCityId, 'langCode' => $this->wg->ContLang->getCode(), 'verticalId' => WikiFactoryHub::getInstance()->getCategoryId($wgCityId)], $this->date, $this->selectedModuleId, $selectedModuleValues, $this->wg->user->getId()); $this->purgeCache($module); FlashMessages::put(wfMessage('edit-hub-module-save-ok', $modulesData['activeModuleName'])->escaped()); $nextUrl = $this->getNextModuleUrl(); $this->response->redirect($nextUrl); } else { $this->errorMessage = wfMessage('edit-hub-module-save-error')->escaped(); } } $form->setFieldsValues($selectedModuleValues); $this->moduleName = $modulesData['activeModuleName']; $this->moduleContent = $module->renderEditor(['form' => $form]); $this->overrideTemplate('editHub'); }
public function __construct($prefix = '', $fields = []) { parent::__construct($prefix, $fields); $fields = ['visitors' => ['label' => wfMessage('manage-wikia-home-stats-visitors-label')->text(), 'validator' => new WikiaValidatorInteger(['required' => true, 'min' => 0])], 'mobilePercentage' => ['label' => wfMessage('manage-wikia-home-stats-mobile-percentage-label')->text(), 'validator' => new WikiaValidatorNumeric(['required' => true, 'min' => 0, 'max' => 100])], 'editsDefault' => ['label' => wfMessage('manage-wikia-home-stats-edits-default-label')->text(), 'validator' => new WikiaValidatorInteger(['required' => true, 'min' => 0])], 'totalPages' => ['label' => wfMessage('manage-wikia-home-stats-total-pages-label')->text(), 'validator' => new WikiaValidatorInteger(['required' => true, 'min' => 0])]]; $this->setFields($fields); }