PluginProbe ʕ •ᴥ•ʔ
Post Affiliate Pro / trunk
Post Affiliate Pro vtrunk
1.29.5 1.29.4 1.29.3 1.29.0 1.29.1 1.29.2 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.5.0 1.5.1 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.6.0 1.6.1 1.6.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 trunk 1.0.1 1.0.10 1.0.11 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.10.1 1.10.2 1.10.3 1.10.4 1.11.1 1.11.2 1.12.1 1.12.2 1.12.3 1.12.4 1.12.5 1.13.0 1.13.1 1.13.2 1.13.3 1.13.4 1.13.5 1.13.6 1.14.0 1.14.1 1.14.2 1.15.0 1.15.1 1.15.2 1.15.3 1.15.4 1.15.5 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.17.0 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.19.0 1.19.1 1.19.10 1.19.11 1.19.12 1.19.13 1.19.14 1.19.15 1.19.16 1.19.17 1.19.2 1.19.3 1.19.4 1.19.5 1.19.6 1.19.7 1.19.8 1.19.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.28 1.2.3 1.2.31 1.2.32 1.2.33 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.20.0 1.20.1 1.21.0 1.21.1 1.21.2 1.21.3 1.21.4 1.21.5 1.21.6 1.21.7 1.22.0 1.22.1 1.22.2 1.23.0 1.23.1 1.23.2 1.23.3 1.23.4 1.23.5 1.23.6 1.23.7 1.23.8 1.24.1 1.24.2 1.24.3 1.24.4 1.24.5 1.24.6 1.24.7 1.24.8 1.24.9 1.25.0 1.26.0 1.26.1 1.26.10 1.26.11 1.26.2 1.26.3 1.26.4 1.26.5 1.26.6 1.26.7 1.26.8 1.26.9 1.27.0 1.27.1 1.27.10 1.27.11 1.27.12 1.27.13 1.27.14 1.27.15 1.27.2 1.27.3 1.27.5 1.27.6 1.27.7 1.27.8 1.27.9 1.28.0 1.28.1 1.28.2 1.28.3
postaffiliatepro / Form / Base.class.php
postaffiliatepro / Form Last commit date
Settings 1 week ago Base.class.php 1 week ago
Base.class.php
121 lines
1 <?php
2 abstract class postaffiliatepro_Form_Base extends postaffiliatepro_Base {
3 private $formName;
4 // private $settings;
5 protected $variables = array('infoMessages' => '', 'errorMessages' => '');
6
7 public function __construct($name = '', $action = '') {
8 $this->formName = $name;
9 $this->addVariable('form.head', '<form name="'.esc_attr($name).'" action="'.esc_attr($action).'" method="post">');
10 $this->addVariable('form.tail', '</form>');
11 }
12
13 private function loadSettingsString($name) {
14 $this->addVariable('settings',"<input type='hidden' name='option_page' value='".
15 esc_attr($name)."' /><input type='hidden' name='action' value='update' />".
16 wp_nonce_field("$name-options",'_wpnonce', true, false));
17 }
18
19 protected abstract function initForm();
20
21 protected abstract function getTemplateFile();
22
23 protected function addSubmit($value = 'Save changes', $class = 'button-primary') {
24 $this->addVariable('submit', '<input type="submit" id="submit" name="submit" value="'.$value.'" class="'.$class.'">');
25 }
26
27 protected function addHtml($name, $code) {
28 $this->addVariable($name, $code);
29 }
30
31 protected function getOption($name, $type = 'text') {
32 $result = get_option($name);
33 if ($type == 'none') {
34 return esc_attr($result);
35 }
36 if ($type == 'url') {
37 $newResult = esc_url($result);
38 if (substr($newResult, -1) !== '/') {
39 $newResult .= '/';
40 }
41 } else {
42 $newResult = sanitize_text_field($result);
43 }
44 if ($newResult != $result) {
45 update_option($name, $newResult);
46 }
47 return esc_attr($newResult);
48 }
49
50 protected function addCheckbox($name, $templateName = null, $additionalCode = '') {
51 $checked = '';
52 if ($this->getOption($name) === 'true') {
53 $checked = ' checked';
54 }
55 if ($templateName === null) {
56 $templateName = $name;
57 }
58 $this->addVariable($templateName, '<input type="checkbox" name="'.$name.'" id="'.str_replace(array(' ', '[', ']'), array('_', ''), $name.'_').'" value="true"'.$checked.' '.$additionalCode.' class="checkbox"></input>');
59 }
60
61 protected function addSelect($name, $options) {
62 $this->addVariable($name, "<select id='$name' name='$name'>\n".$this->getHTMLSelectOptions($options, $name)."</select>\n");
63 }
64
65 private function getHTMLSelectOptions($options, $name) {
66 //options = assoc. arr, key(value) and value(name) of select option
67 $html = '';
68 $selected = $this->getOption($name, 'none');
69 foreach ($options as $optionKey => $optionName) {
70 $html .= '<option value="'.$optionKey.'"'.(($selected == $optionKey)?' selected="selected">':'>').$optionName."</option>\n";
71 }
72 return $html;
73 }
74
75 protected function addPassword($name, $size = 20) {
76 $this->addVariable($name, '<input type="password" id="'.$name.'" name="'.$name.'" value="'.$this->getOption($name, 'none').'" class="password" onfocus="this.className = \'password-focus\'" onblur="this.className = \'password\'" size="'.$size.'">');
77 }
78
79 protected function addTextBox($name, $size = 20, $value = '') {
80 $useValue = $this->getOption($name);
81 if ($useValue === '') {
82 $useValue = $value;
83 }
84 $this->addVariable($name, '<input type="text" id="'.$name.'" name="'.$name.'" value="'.$useValue.'" class="text" onfocus="this.className = \'text-focus\'" onblur="this.className = \'text\'" size="'.$size.'">');
85 }
86
87 protected function addUrlTextBox($name, $size = 20) {
88 $value = $this->getOption($name, 'url');
89 settings_errors($name);
90 $this->addVariable($name, '<input type="text" id="'.$name.'" name="'.$name.'" value="'.$value.'" class="text" onfocus="this.className = \'text-focus\'" onblur="this.className = \'text\'" size="'.$size.'">');
91 }
92
93 public function render($toVar = false, $template = '') {
94 $this->initForm();
95 if ($template == '') {
96 $html = file_get_contents($this->getTemplateFile());
97 if ($this->formName != '') {
98 $this->loadSettingsString($this->formName);
99 }
100 } else {
101 $html = file_get_contents($template);
102 }
103
104 foreach ($this->variables as $name => $value) {
105 $html = str_replace('{'.$name.'}', $value, $html);
106 }
107 if ($toVar) {
108 return $html;
109 }
110 echo '<div class="postaffiliatepro">' . $html . '</div>';
111 return '';
112 }
113
114 protected function addVariable($name, $value) {
115 if (isset($this->variables[$name])) {
116 $this->variables[$name] .= $value;
117 } else {
118 $this->variables[$name] = $value;
119 }
120 }
121 }