* @license GNU General Public License, version 2 * @link http://addthis.com AddThis website */ class AddThisRecommendedContentToasterTool extends AddThisRecommendedContentToolParent { public $prettyName = 'Recommended Content Toaster'; public $edition = 'pro'; public $clientApiSupport = false; public $inline = false; public $settingsSubVariableName = 'tst'; protected $defaultConfigs = array( 'enabled' => false, 'title' => 'Recommended for you', 'theme' => 'light', 'responsive' => 979, 'offset' => array( 'location' => 'right', //bottom, left, right 'amount' => 0, ), ); /** * This must be public as it's used in the feature object with this tool * * This takes form input for a tool sub settings variable, manipulates * it, and returns the variables that should be saved to the database. * * @param array $input An associative array of values * input for this tools' settings * @param boolean $addDefaultConfigs Whether to populate in default * values for missing fields * * @return array A cleaned up associative array of settings specific to * this feature. */ public function sanitizeSettings($input, $addDefaultConfigs = true) { $output = array(); if (is_array($input)) { foreach ($input as $field => $value) { switch ($field) { case 'enabled': // same as next case '__hideOnHomepage': $output[$field] = (boolean)$value; break; case 'title': // same as next case 'theme': $output[$field] = sanitize_text_field($value); break; case 'responsive': $output[$field] = (int)$value['responsive']; break; case 'offset': if (isset($value['location'])) { $output[$field]['location'] = sanitize_text_field($value['location']); } if (!empty($value['amount'])) { $output[$field]['amount'] = (int)$value['amount']; } break; case '__hideOnUrls': if (is_array($value)) { foreach ($value as $urlPattern) { $output[$field][] = sanitize_text_field($urlPattern); } } break; } } } if ($addDefaultConfigs) { $output = $this->addDefaultConfigs($output); } return $output; } } }