/** * Validate the form */ private function validateForm() { if ($this->frm->isSubmitted()) { $this->frm->cleanupFields(); // shorten values $pagePath = $this->frm->getField('page_path')->getValue(); if (count($this->linkList) > 1) { $pageList = $this->frm->getField('page_list')->getSelected(); } // get the target if ($this->frm->getfield('page_path')->isFilled()) { $page = $pagePath; } elseif ($pageList == '0') { $page = null; } else { $page = SITE_MULTILANGUAGE ? substr($pageList, strpos($pageList, '/', 1)) : $pageList; } // validate fields if (isset($page) && !SpoonFilter::isURL(SITE_URL . $page)) { $this->frm->getField('page_path')->addError(BL::err('InvalidURL')); } if (!isset($page)) { $this->frm->getField('page_path')->addError(BL::err('FieldIsRequired')); } if (!$this->frm->getField('page_path')->isFilled() && !$this->frm->getfield('page_list')->isFilled()) { $this->frm->getField('page_path')->addError(BL::err('FieldIsRequired')); } if ($this->frm->isCorrect()) { // get metrics $metrics = BackendAnalyticsHelper::getMetricsForPage($page, $this->startTimestamp, $this->endTimestamp); // build item $item['page_path'] = $page; $item['entrances'] = isset($metrics['entrances']) ? $metrics['entrances'] : 0; $item['bounces'] = isset($metrics['bounces']) ? $metrics['bounces'] : 0; $item['bounce_rate'] = ($metrics['entrances'] == 0 ? 0 : number_format((int) $metrics['bounces'] / $metrics['entrances'] * 100, 2)) . '%'; $item['start_date'] = date('Y-m-d', $this->startTimestamp) . ' 00:00:00'; $item['end_date'] = date('Y-m-d', $this->endTimestamp) . ' 00:00:00'; $item['updated_on'] = date('Y-m-d H:i:s'); // insert the item $item['id'] = (int) BackendAnalyticsModel::insertLandingPage($item); // trigger event BackendModel::triggerEvent($this->getModule(), 'after_add_landing_page', array('item' => $item)); // everything is saved, so redirect to the overview $this->redirect(BackendModel::createURLForAction('landing_pages') . '&report=saved&var=' . urlencode($item['page_path'])); } } }
/** * Validates the form */ private function validateForm() { // is the form submitted? if ($this->frm->isSubmitted()) { // validate required fields $this->frm->getField('site_title')->isFilled(BL::err('FieldIsRequired')); // date & time $this->frm->getField('time_format')->isFilled(BL::err('FieldIsRequired')); $this->frm->getField('date_format_short')->isFilled(BL::err('FieldIsRequired')); $this->frm->getField('date_format_long')->isFilled(BL::err('FieldIsRequired')); // number $this->frm->getField('number_format')->isFilled(BL::err('FieldIsRequired')); // akismet key may be filled in if ($this->needsAkismet && $this->frm->getField('akismet_key')->isFilled()) { // key has changed if ($this->frm->getField('akismet_key')->getValue() != $this->get('fork.settings')->get('Core', 'akismet_key', null)) { // create instance $akismet = new Akismet($this->frm->getField('akismet_key')->getValue(), SITE_URL); // invalid key if (!$akismet->verifyKey()) { $this->frm->getField('akismet_key')->setError(BL::err('InvalidAPIKey')); } } } // domains filled in if ($this->frm->getField('site_domains')->isFilled()) { // split on newlines $domains = explode("\n", trim($this->frm->getField('site_domains')->getValue())); // loop domains foreach ($domains as $domain) { // strip funky stuff $domain = trim(str_replace(array('www.', 'http://', 'https://'), '', $domain)); // invalid URL if (!\SpoonFilter::isURL('http://' . $domain)) { // set error $this->frm->getField('site_domains')->setError(BL::err('InvalidDomain')); // stop looping domains break; } } } if ($this->frm->getField('ckfinder_image_max_width')->isFilled()) { $this->frm->getField('ckfinder_image_max_width')->isInteger(BL::err('InvalidInteger')); } if ($this->frm->getField('ckfinder_image_max_height')->isFilled()) { $this->frm->getField('ckfinder_image_max_height')->isInteger(BL::err('InvalidInteger')); } // no errors ? if ($this->frm->isCorrect()) { // general settings $this->get('fork.settings')->set('Core', 'site_title_' . BL::getWorkingLanguage(), $this->frm->getField('site_title')->getValue()); $this->get('fork.settings')->set('Core', 'site_html_header', $this->frm->getField('site_html_header')->getValue()); $this->get('fork.settings')->set('Core', 'site_start_of_body_scripts', $this->frm->getField('site_start_of_body_scripts')->getValue()); $this->get('fork.settings')->set('Core', 'site_html_footer', $this->frm->getField('site_html_footer')->getValue()); // facebook settings $this->get('fork.settings')->set('Core', 'facebook_admin_ids', $this->frm->getField('facebook_admin_ids')->isFilled() ? $this->frm->getField('facebook_admin_ids')->getValue() : null); $this->get('fork.settings')->set('Core', 'facebook_app_id', $this->frm->getField('facebook_application_id')->isFilled() ? $this->frm->getField('facebook_application_id')->getValue() : null); $this->get('fork.settings')->set('Core', 'facebook_app_secret', $this->frm->getField('facebook_application_secret')->isFilled() ? $this->frm->getField('facebook_application_secret')->getValue() : null); // twitter settings /** @var \SpoonFormText $txtTwitterSiteName */ $txtTwitterSiteName = $this->frm->getField('twitter_site_name'); if ($txtTwitterSiteName->isFilled()) { $this->get('fork.settings')->set('Core', 'twitter_site_name', '@' . ltrim($txtTwitterSiteName->getValue(), '@')); } // ckfinder settings $this->get('fork.settings')->set('Core', 'ckfinder_license_name', $this->frm->getField('ckfinder_license_name')->isFilled() ? $this->frm->getField('ckfinder_license_name')->getValue() : null); $this->get('fork.settings')->set('Core', 'ckfinder_license_key', $this->frm->getField('ckfinder_license_key')->isFilled() ? $this->frm->getField('ckfinder_license_key')->getValue() : null); $this->get('fork.settings')->set('Core', 'ckfinder_image_max_width', $this->frm->getField('ckfinder_image_max_width')->isFilled() ? $this->frm->getField('ckfinder_image_max_width')->getValue() : 1600); $this->get('fork.settings')->set('Core', 'ckfinder_image_max_height', $this->frm->getField('ckfinder_image_max_height')->isFilled() ? $this->frm->getField('ckfinder_image_max_height')->getValue() : 1200); // api keys $this->get('fork.settings')->set('Core', 'fork_api_public_key', $this->frm->getField('fork_api_public_key')->getValue()); $this->get('fork.settings')->set('Core', 'fork_api_private_key', $this->frm->getField('fork_api_private_key')->getValue()); if ($this->needsAkismet) { $this->get('fork.settings')->set('Core', 'akismet_key', $this->frm->getField('akismet_key')->getValue()); } if ($this->needsGoogleMaps) { $this->get('fork.settings')->set('Core', 'google_maps_key', $this->frm->getField('google_maps_key')->getValue()); } // date & time formats $this->get('fork.settings')->set('Core', 'time_format', $this->frm->getField('time_format')->getValue()); $this->get('fork.settings')->set('Core', 'date_format_short', $this->frm->getField('date_format_short')->getValue()); $this->get('fork.settings')->set('Core', 'date_format_long', $this->frm->getField('date_format_long')->getValue()); // date & time formats $this->get('fork.settings')->set('Core', 'number_format', $this->frm->getField('number_format')->getValue()); // before we save the languages, we need to ensure that each language actually exists and may be chosen. $languages = array(SITE_DEFAULT_LANGUAGE); $activeLanguages = array_unique(array_merge($languages, $this->frm->getField('active_languages')->getValue())); $redirectLanguages = array_unique(array_merge($languages, $this->frm->getField('redirect_languages')->getValue())); // cleanup redirect-languages, by removing the values that aren't present in the active languages $redirectLanguages = array_intersect($redirectLanguages, $activeLanguages); // save active languages $this->get('fork.settings')->set('Core', 'active_languages', $activeLanguages); $this->get('fork.settings')->set('Core', 'redirect_languages', $redirectLanguages); // domains may not contain www, http or https. Therefor we must loop and create the list of domains. $siteDomains = array(); // domains filled in if ($this->frm->getField('site_domains')->isFilled()) { // split on newlines $domains = explode("\n", trim($this->frm->getField('site_domains')->getValue())); // loop domains foreach ($domains as $domain) { // strip funky stuff $siteDomains[] = trim(str_replace(array('www.', 'http://', 'https://'), '', $domain)); } } // save domains $this->get('fork.settings')->set('Core', 'site_domains', $siteDomains); $this->get('fork.settings')->set('Core', 'show_cookie_bar', $this->frm->getField('show_cookie_bar')->getChecked()); // assign report $this->tpl->assign('report', true); $this->tpl->assign('reportMessage', BL::msg('Saved')); } } }
/** * Checks this field for a valid url. * * @return bool * @param string[optional] $error The error message to set. */ public function isURL($error = null) { // filled if ($this->isFilled()) { // post/get data $data = $this->getMethod(true); // validate if (!isset($data[$this->attributes['name']]) || !SpoonFilter::isURL($data[$this->attributes['name']])) { if ($error !== null) { $this->setError($error); } return false; } return true; } // not submitted if ($error !== null) { $this->setError($error); } return false; }
/** * Set the link for the feed. * * @param string $link The link of the feed. */ public function setLink($link) { // redefine vars $link = (string) $link; // validate if (!SpoonFilter::isURL($link)) { throw new SpoonFeedException('This (' . $link . ') isn\'t a valid link'); } // set property $this->link = $link; }
/** * Validates the form * * @return void */ private function validateForm() { // is the form submitted? if ($this->frm->isSubmitted()) { // validate required fields $this->frm->getField('site_title')->isFilled(BL::err('FieldIsRequired')); // date & time $this->frm->getField('time_format')->isFilled(BL::err('FieldIsRequired')); $this->frm->getField('date_format_short')->isFilled(BL::err('FieldIsRequired')); $this->frm->getField('date_format_long')->isFilled(BL::err('FieldIsRequired')); // number $this->frm->getField('number_format')->isFilled(BL::err('FieldIsRequired')); // akismet key may be filled in if ($this->needsAkismet && $this->frm->getField('akismet_key')->isFilled()) { // key has changed if ($this->frm->getField('akismet_key')->getValue() != BackendModel::getModuleSetting('core', 'akismet_key', null)) { // load akismet require_once PATH_LIBRARY . '/external/akismet.php'; // create instance $akismet = new Akismet($this->frm->getField('akismet_key')->getValue(), SITE_URL); // invalid key if (!$akismet->verifyKey()) { $this->frm->getField('akismet_key')->setError(BL::err('InvalidAPIKey')); } } } // domains filled in if ($this->frm->getField('site_domains')->isFilled()) { // split on newlines $domains = explode("\n", trim($this->frm->getField('site_domains')->getValue())); // loop domains foreach ($domains as $domain) { // strip funky stuff $domain = trim(str_replace(array('www.', 'http://', 'https://'), '', $domain)); // invalid URL if (!SpoonFilter::isURL('http://' . $domain)) { // set error $this->frm->getField('site_domains')->setError(BL::err('InvalidDomain')); // stop looping domains break; } } } // no errors ? if ($this->frm->isCorrect()) { // general settings BackendModel::setModuleSetting('core', 'site_title_' . BL::getWorkingLanguage(), $this->frm->getField('site_title')->getValue()); BackendModel::setModuleSetting('core', 'site_html_header', $this->frm->getField('site_html_header')->getValue()); BackendModel::setModuleSetting('core', 'site_html_footer', $this->frm->getField('site_html_footer')->getValue()); // facebook settings BackendModel::setModuleSetting('core', 'facebook_admin_ids', $this->frm->getField('facebook_admin_ids')->isFilled() ? $this->frm->getField('facebook_admin_ids')->getValue() : null); BackendModel::setModuleSetting('core', 'facebook_app_id', $this->frm->getField('facebook_application_id')->isFilled() ? $this->frm->getField('facebook_application_id')->getValue() : null); BackendModel::setModuleSetting('core', 'facebook_app_secret', $this->frm->getField('facebook_application_secret')->isFilled() ? $this->frm->getField('facebook_application_secret')->getValue() : null); // api keys BackendModel::setModuleSetting('core', 'fork_api_public_key', $this->frm->getField('fork_api_public_key')->getValue()); BackendModel::setModuleSetting('core', 'fork_api_private_key', $this->frm->getField('fork_api_private_key')->getValue()); if ($this->needsAkismet) { BackendModel::setModuleSetting('core', 'akismet_key', $this->frm->getField('akismet_key')->getValue()); } if ($this->needsGoogleMaps) { BackendModel::setModuleSetting('core', 'google_maps_key', $this->frm->getField('google_maps_key')->getValue()); } // date & time formats BackendModel::setModuleSetting('core', 'time_format', $this->frm->getField('time_format')->getValue()); BackendModel::setModuleSetting('core', 'date_format_short', $this->frm->getField('date_format_short')->getValue()); BackendModel::setModuleSetting('core', 'date_format_long', $this->frm->getField('date_format_long')->getValue()); // date & time formats BackendModel::setModuleSetting('core', 'number_format', $this->frm->getField('number_format')->getValue()); // before we save the languages, we need to ensure that each language actually exists and may be chosen. $languages = array(SITE_DEFAULT_LANGUAGE); // save active languages BackendModel::setModuleSetting('core', 'active_languages', array_unique(array_merge($languages, $this->frm->getField('active_languages')->getValue()))); BackendModel::setModuleSetting('core', 'redirect_languages', array_unique(array_merge($languages, $this->frm->getField('redirect_languages')->getValue()))); // domains may not contain www, http or https. Therefor we must loop and create the list of domains. $siteDomains = array(); // domains filled in if ($this->frm->getField('site_domains')->isFilled()) { // split on newlines $domains = explode("\n", trim($this->frm->getField('site_domains')->getValue())); // loop domains foreach ($domains as $domain) { // strip funky stuff $siteDomains[] = trim(str_replace(array('www.', 'http://', 'https://'), '', $domain)); } } // save domains BackendModel::setModuleSetting('core', 'site_domains', $siteDomains); // assign report $this->tpl->assign('report', true); $this->tpl->assign('reportMessage', BL::msg('Saved')); } } }
/** * Checks this field for a valid url. * * @return bool * @param string[optional] $error The error message to set. */ public function isURL($error = null) { // filled if ($this->isFilled()) { // post/get data $data = $this->getMethod(true); // validate if (isset($data[$this->attributes['name']]) && is_string($data[$this->attributes['name']])) { $url = $data[$this->attributes['name']]; // appends http:// if not provided // we deliberately left spoonFilter::isURL unchanged // because SpoonFilter should not validate "www.spoon.be" as true $url = (strncasecmp('http://', $url, 7) && strncasecmp('https://', $url, 8) ? 'http://' : '') . $url; if (SpoonFilter::isURL($url)) { return true; } } } // not submitted if ($error !== null) { $this->setError($error); } return false; }
/** * Set source. * * @param string $name The name of the source. * @param string $URL The URL of the source. */ public function setSource($name, $URL) { // redefine var $URL = (string) $URL; // validate if (!SpoonFilter::isURL($URL)) { throw new SpoonFeedException('This (' . $URL . ') isn\'t a valid URL for a source.'); } // create array $source['name'] = (string) $name; $source['url'] = $URL; // set property $this->source = $source; }
/** * URL tests based on those of Mathias Bynens (http://mathiasbynens.be/demo/url-regex) */ public function testIsURL() { // URLs that should match $this->assertTrue(SpoonFilter::isURL('http://foo.com/blah_blah/')); $this->assertTrue(SpoonFilter::isURL('http://foo.com/blah_blah_(wikipedia)')); $this->assertTrue(SpoonFilter::isURL('http://foo.com/blah_blah_(wikipedia)_(again)')); $this->assertTrue(SpoonFilter::isURL('http://www.example.com/wpstyle/?p=364')); $this->assertTrue(SpoonFilter::isURL('https://www.example.com/foo/?bar=baz&inga=42&quux')); $this->assertTrue(SpoonFilter::isURL('http://✪df.ws/123')); $this->assertTrue(SpoonFilter::isURL('http://*****:*****@example.com:8080')); $this->assertTrue(SpoonFilter::isURL('http://*****:*****@example.com:8080/')); $this->assertTrue(SpoonFilter::isURL('http://userid@example.com')); $this->assertTrue(SpoonFilter::isURL('http://userid@example.com/')); $this->assertTrue(SpoonFilter::isURL('http://userid@example.com:8080')); $this->assertTrue(SpoonFilter::isURL('http://userid@example.com:8080/')); $this->assertTrue(SpoonFilter::isURL('http://*****:*****@example.com')); $this->assertTrue(SpoonFilter::isURL('http://*****:*****@example.com/')); $this->assertTrue(SpoonFilter::isURL('http://142.42.1.1/')); $this->assertTrue(SpoonFilter::isURL('http://142.42.1.1:8080/')); $this->assertTrue(SpoonFilter::isURL('http://➡.ws/䨹')); $this->assertTrue(SpoonFilter::isURL('http://⌘.ws')); $this->assertTrue(SpoonFilter::isURL('http://⌘.ws/')); $this->assertTrue(SpoonFilter::isURL('http://foo.com/blah_(wikipedia)#cite-1')); $this->assertTrue(SpoonFilter::isURL('http://foo.com/blah_(wikipedia)_blah#cite-1')); $this->assertTrue(SpoonFilter::isURL('http://foo.com/unicode_(✪)_in_parens')); $this->assertTrue(SpoonFilter::isURL('http://foo.com/(something)?after=parens')); $this->assertTrue(SpoonFilter::isURL('http://☺.damowmow.com/')); $this->assertTrue(SpoonFilter::isURL('http://code.google.com/events/#&product=browser')); $this->assertTrue(SpoonFilter::isURL('http://j.mp')); $this->assertTrue(SpoonFilter::isURL('ftp://foo.bar/baz')); $this->assertTrue(SpoonFilter::isURL('http://foo.bar/?q=Test%20URL-encoded%20stuff')); $this->assertTrue(SpoonFilter::isURL('http://例子.测试')); $this->assertTrue(SpoonFilter::isURL('http://उदाहरण.परीक्षा')); $this->assertTrue(SpoonFilter::isURL('http://-.~_!$&\'()*+,;=:%40:80%2f::::::@example.com')); $this->assertTrue(SpoonFilter::isURL('http://1337.net')); $this->assertTrue(SpoonFilter::isURL('http://223.255.255.254')); $this->assertTrue(SpoonFilter::isURL('http://feedproxy.google.com/~r/netlog/~3/EdqJ5FkO78o/internet-is-de-petrischaal-van-de-maatschappij')); // URLs that should fail $this->assertFalse(SpoonFilter::isURL('http://')); $this->assertFalse(SpoonFilter::isURL('http://.')); $this->assertFalse(SpoonFilter::isURL('http://..')); $this->assertFalse(SpoonFilter::isURL('http://../')); $this->assertFalse(SpoonFilter::isURL('http://?')); $this->assertFalse(SpoonFilter::isURL('http://??')); $this->assertFalse(SpoonFilter::isURL('http://??/')); $this->assertFalse(SpoonFilter::isURL('http://#')); $this->assertFalse(SpoonFilter::isURL('http://##')); $this->assertFalse(SpoonFilter::isURL('http://##/')); $this->assertFalse(SpoonFilter::isURL('http://foo.bar?q=Spaces should be encoded')); $this->assertFalse(SpoonFilter::isURL('//')); $this->assertFalse(SpoonFilter::isURL('//a')); $this->assertFalse(SpoonFilter::isURL('///a')); $this->assertFalse(SpoonFilter::isURL('///')); $this->assertFalse(SpoonFilter::isURL('http:///a')); $this->assertFalse(SpoonFilter::isURL('foo.com')); $this->assertFalse(SpoonFilter::isURL('rdar://1234')); $this->assertFalse(SpoonFilter::isURL('h://test')); $this->assertFalse(SpoonFilter::isURL('http:// shouldfail.com')); $this->assertFalse(SpoonFilter::isURL(':// should fail')); $this->assertFalse(SpoonFilter::isURL('http://foo.bar/foo(bar)baz quux')); $this->assertFalse(SpoonFilter::isURL('ftps://foo.bar/')); $this->assertFalse(SpoonFilter::isURL('http://-error-.invalid/')); $this->assertFalse(SpoonFilter::isURL('http://a.b--c.de/')); $this->assertFalse(SpoonFilter::isURL('http://-a.b.co')); $this->assertFalse(SpoonFilter::isURL('http://a.b-.co')); $this->assertFalse(SpoonFilter::isURL('http://0.0.0.0')); $this->assertFalse(SpoonFilter::isURL('http://10.1.1.0')); $this->assertFalse(SpoonFilter::isURL('http://10.1.1.255')); $this->assertFalse(SpoonFilter::isURL('http://224.1.1.1')); $this->assertFalse(SpoonFilter::isURL('http://1.1.1.1.1')); $this->assertFalse(SpoonFilter::isURL('http://123.123.123')); $this->assertFalse(SpoonFilter::isURL('http://.www.foo.bar/')); $this->assertFalse(SpoonFilter::isURL('http://www.foo.bar./')); $this->assertFalse(SpoonFilter::isURL('http://.www.foo.bar./8*/')); $this->assertFalse(SpoonFilter::isURL('http://10.1.1.1')); $this->assertFalse(SpoonFilter::isURL('http://10.1.1.254')); }
/** * Load the form */ private function loadForm() { // create form $this->frm = new FrontendForm('commentsForm'); $this->frm->setAction($this->frm->getAction() . '#' . FL::act('Comment')); // init vars $author = CommonCookie::exists('comment_author') ? CommonCookie::get('comment_author') : null; $email = CommonCookie::exists('comment_email') && \SpoonFilter::isEmail(CommonCookie::get('comment_email')) ? CommonCookie::get('comment_email') : null; $website = CommonCookie::exists('comment_website') && \SpoonFilter::isURL(CommonCookie::get('comment_website')) ? CommonCookie::get('comment_website') : 'http://'; // create elements $this->frm->addText('author', $author)->setAttributes(array('required' => null)); $this->frm->addText('email', $email)->setAttributes(array('required' => null, 'type' => 'email')); $this->frm->addText('website', $website, null); $this->frm->addTextarea('message')->setAttributes(array('required' => null)); }
/** * Validates the settings form * * @return void */ private function validateForm() { // form is submitted if ($this->frm->isSubmitted()) { // shorten fields $feedburnerURL = $this->frm->getField('feedburner_url'); // validation $this->frm->getField('rss_title')->isFilled(BL::err('FieldIsRequired')); // feedburner URL is set if ($feedburnerURL->isFilled()) { // check if http:// is set and add if necessary $feedburner = !strstr($feedburnerURL->getValue(), 'http://') ? 'http://' . $feedburnerURL->getValue() : $feedburnerURL->getValue(); // check if feedburner URL is valid if (!SpoonFilter::isURL($feedburner)) { $feedburnerURL->addError(BL::err('InvalidURL')); } } else { $feedburner = null; } // form is validated if ($this->frm->isCorrect()) { // set our settings BackendModel::setModuleSetting($this->URL->getModule(), 'overview_num_items', (int) $this->frm->getField('overview_number_of_items')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'recent_articles_full_num_items', (int) $this->frm->getField('recent_articles_full_number_of_items')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'recent_articles_list_num_items', (int) $this->frm->getField('recent_articles_list_number_of_items')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'spamfilter', (bool) $this->frm->getField('spamfilter')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'allow_comments', (bool) $this->frm->getField('allow_comments')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'moderation', (bool) $this->frm->getField('moderation')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'notify_by_email_on_new_comment_to_moderate', (bool) $this->frm->getField('notify_by_email_on_new_comment_to_moderate')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'notify_by_email_on_new_comment', (bool) $this->frm->getField('notify_by_email_on_new_comment')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'ping_services', (bool) $this->frm->getField('ping_services')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'rss_title_' . BL::getWorkingLanguage(), $this->frm->getField('rss_title')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'rss_description_' . BL::getWorkingLanguage(), $this->frm->getField('rss_description')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'rss_meta_' . BL::getWorkingLanguage(), $this->frm->getField('rss_meta')->getValue()); BackendModel::setModuleSetting($this->URL->getModule(), 'feedburner_url_' . BL::getWorkingLanguage(), $feedburner); if (BackendModel::getModuleSetting('core', 'akismet_key') === null) { BackendModel::setModuleSetting($this->URL->getModule(), 'spamfilter', false); } // trigger event BackendModel::triggerEvent($this->getModule(), 'after_saved_settings'); // redirect to the settings page $this->redirect(BackendModel::createURLForAction('settings') . '&report=saved'); } } }
/** * Set the id (URI). * * @param string $id The id (URI) of the item (example: http://example.com/blog/1234). */ public function setId($id) { // redefine var $id = (string) $id; // validate if (!SpoonFilter::isURL($id)) { throw new SpoonFeedException('This (' . $id . ') isn\'t a valid link.'); } // set property $this->id = $id; }
/** * Load the form */ private function loadForm() { // create form $this->frm = new FrontendForm('commentsForm'); $this->frm->setAction($this->frm->getAction() . '#' . FL::act('Comment')); // init vars $author = Cookie::exists('comment_author') ? Cookie::get('comment_author') : null; $email = Cookie::exists('comment_email') && \SpoonFilter::isEmail(Cookie::get('comment_email')) ? Cookie::get('comment_email') : null; $website = Cookie::exists('comment_website') && \SpoonFilter::isURL(Cookie::get('comment_website')) ? Cookie::get('comment_website') : 'http://'; // create elements $this->frm->addText('author', $author)->setAttributes(array('required' => null)); $this->frm->addText('email', $email)->setAttributes(array('required' => null, 'type' => 'email')); $this->frm->addText('website', $website, null); $this->frm->addTextarea('message')->setAttributes(array('required' => null)); $this->frmContact = new FrontendForm('contact', null, 'post'); $this->frmContact->addText('name')->setAttribute('class', 'form-control'); $this->frmContact->addText('emailContact', null, 255, 'form-control'); //->setAttribute('class', 'form-control'); $this->frmContact->addText('phone')->setAttribute('class', 'form-control'); $this->frmContact->addTextarea('messageContact', Language::lbl('ProductMoreInfo') . ' ' . $this->record['title'])->setAttribute('class', 'form-control'); }