@@ -19,96 +19,96 @@ |
||
| 19 | 19 | */ |
| 20 | 20 | class SmartHighlighter |
| 21 | 21 | { |
| 22 | - /** |
|
| 23 | - * @access private |
|
| 24 | - */ |
|
| 25 | - public $preg_keywords = ''; |
|
| 26 | - /** |
|
| 27 | - * @access private |
|
| 28 | - */ |
|
| 29 | - public $keywords = ''; |
|
| 30 | - /** |
|
| 31 | - * @access private |
|
| 32 | - */ |
|
| 33 | - public $singlewords = false; |
|
| 34 | - /** |
|
| 35 | - * @access private |
|
| 36 | - */ |
|
| 37 | - public $replace_callback = null; |
|
| 22 | + /** |
|
| 23 | + * @access private |
|
| 24 | + */ |
|
| 25 | + public $preg_keywords = ''; |
|
| 26 | + /** |
|
| 27 | + * @access private |
|
| 28 | + */ |
|
| 29 | + public $keywords = ''; |
|
| 30 | + /** |
|
| 31 | + * @access private |
|
| 32 | + */ |
|
| 33 | + public $singlewords = false; |
|
| 34 | + /** |
|
| 35 | + * @access private |
|
| 36 | + */ |
|
| 37 | + public $replace_callback = null; |
|
| 38 | 38 | |
| 39 | - public $content; |
|
| 39 | + public $content; |
|
| 40 | 40 | |
| 41 | - /** |
|
| 42 | - * Main constructor |
|
| 43 | - * |
|
| 44 | - * This is the main constructor of keyhighlighter class. <br> |
|
| 45 | - * It's the only public method of the class. |
|
| 46 | - * @param string $keywords the keywords you want to highlight |
|
| 47 | - * @param boolean $singlewords specify if it has to highlight also the single words. |
|
| 48 | - * @param callback $replace_callback a custom callback for keyword highlight. |
|
| 49 | - * <code> |
|
| 50 | - * <?php |
|
| 51 | - * require ('keyhighlighter.class.php'); |
|
| 52 | - * |
|
| 53 | - * function my_highlighter ($matches) { |
|
| 54 | - * return '<span style="font-weight: bolder; color: #FF0000;">' . $matches[0] . '</span>'; |
|
| 55 | - * } |
|
| 56 | - * |
|
| 57 | - * new keyhighlighter ('W3C', false, 'my_highlighter'); |
|
| 58 | - * readfile ('http://www.w3c.org/'); |
|
| 59 | - * ?> |
|
| 60 | - * </code> |
|
| 61 | - */ |
|
| 62 | - // public function __construct () |
|
| 63 | - public function __construct($keywords, $singlewords = false, $replace_callback = null) |
|
| 64 | - { |
|
| 65 | - $this->keywords = $keywords; |
|
| 66 | - $this->singlewords = $singlewords; |
|
| 67 | - $this->replace_callback = $replace_callback; |
|
| 68 | - } |
|
| 41 | + /** |
|
| 42 | + * Main constructor |
|
| 43 | + * |
|
| 44 | + * This is the main constructor of keyhighlighter class. <br> |
|
| 45 | + * It's the only public method of the class. |
|
| 46 | + * @param string $keywords the keywords you want to highlight |
|
| 47 | + * @param boolean $singlewords specify if it has to highlight also the single words. |
|
| 48 | + * @param callback $replace_callback a custom callback for keyword highlight. |
|
| 49 | + * <code> |
|
| 50 | + * <?php |
|
| 51 | + * require ('keyhighlighter.class.php'); |
|
| 52 | + * |
|
| 53 | + * function my_highlighter ($matches) { |
|
| 54 | + * return '<span style="font-weight: bolder; color: #FF0000;">' . $matches[0] . '</span>'; |
|
| 55 | + * } |
|
| 56 | + * |
|
| 57 | + * new keyhighlighter ('W3C', false, 'my_highlighter'); |
|
| 58 | + * readfile ('http://www.w3c.org/'); |
|
| 59 | + * ?> |
|
| 60 | + * </code> |
|
| 61 | + */ |
|
| 62 | + // public function __construct () |
|
| 63 | + public function __construct($keywords, $singlewords = false, $replace_callback = null) |
|
| 64 | + { |
|
| 65 | + $this->keywords = $keywords; |
|
| 66 | + $this->singlewords = $singlewords; |
|
| 67 | + $this->replace_callback = $replace_callback; |
|
| 68 | + } |
|
| 69 | 69 | |
| 70 | - /** |
|
| 71 | - * @access private |
|
| 72 | - * @param $replace_matches |
|
| 73 | - * @return mixed |
|
| 74 | - */ |
|
| 75 | - public function replace($replace_matches) |
|
| 76 | - { |
|
| 77 | - $patterns = array(); |
|
| 78 | - if ($this->singlewords) { |
|
| 79 | - $keywords = explode(' ', $this->preg_keywords); |
|
| 80 | - foreach ($keywords as $keyword) { |
|
| 81 | - $patterns[] = '/(?' . '>' . $keyword . '+)/si'; |
|
| 82 | - } |
|
| 83 | - } else { |
|
| 84 | - $patterns[] = '/(?' . '>' . $this->preg_keywords . '+)/si'; |
|
| 85 | - } |
|
| 70 | + /** |
|
| 71 | + * @access private |
|
| 72 | + * @param $replace_matches |
|
| 73 | + * @return mixed |
|
| 74 | + */ |
|
| 75 | + public function replace($replace_matches) |
|
| 76 | + { |
|
| 77 | + $patterns = array(); |
|
| 78 | + if ($this->singlewords) { |
|
| 79 | + $keywords = explode(' ', $this->preg_keywords); |
|
| 80 | + foreach ($keywords as $keyword) { |
|
| 81 | + $patterns[] = '/(?' . '>' . $keyword . '+)/si'; |
|
| 82 | + } |
|
| 83 | + } else { |
|
| 84 | + $patterns[] = '/(?' . '>' . $this->preg_keywords . '+)/si'; |
|
| 85 | + } |
|
| 86 | 86 | |
| 87 | - $result = $replace_matches[0]; |
|
| 87 | + $result = $replace_matches[0]; |
|
| 88 | 88 | |
| 89 | - foreach ($patterns as $pattern) { |
|
| 90 | - if (null !== $this->replace_callback) { |
|
| 91 | - $result = preg_replace_callback($pattern, $this->replace_callback, $result); |
|
| 92 | - } else { |
|
| 93 | - $result = preg_replace($pattern, '<span class="highlightedkey">\\0</span>', $result); |
|
| 94 | - } |
|
| 95 | - } |
|
| 89 | + foreach ($patterns as $pattern) { |
|
| 90 | + if (null !== $this->replace_callback) { |
|
| 91 | + $result = preg_replace_callback($pattern, $this->replace_callback, $result); |
|
| 92 | + } else { |
|
| 93 | + $result = preg_replace($pattern, '<span class="highlightedkey">\\0</span>', $result); |
|
| 94 | + } |
|
| 95 | + } |
|
| 96 | 96 | |
| 97 | - return $result; |
|
| 98 | - } |
|
| 97 | + return $result; |
|
| 98 | + } |
|
| 99 | 99 | |
| 100 | - /** |
|
| 101 | - * @access private |
|
| 102 | - * @param $buffer |
|
| 103 | - * @return mixed|string |
|
| 104 | - */ |
|
| 105 | - public function highlight($buffer) |
|
| 106 | - { |
|
| 107 | - $buffer = '>' . $buffer . '<'; |
|
| 108 | - $this->preg_keywords = preg_replace('/[^\w ]/si', '', $this->keywords); |
|
| 109 | - $buffer = preg_replace_callback("/(\>(((?" . ">[^><]+)|(?R))*)\<)/is", array(&$this, 'replace'), $buffer); |
|
| 110 | - $buffer = substr($buffer, 1, -1); |
|
| 100 | + /** |
|
| 101 | + * @access private |
|
| 102 | + * @param $buffer |
|
| 103 | + * @return mixed|string |
|
| 104 | + */ |
|
| 105 | + public function highlight($buffer) |
|
| 106 | + { |
|
| 107 | + $buffer = '>' . $buffer . '<'; |
|
| 108 | + $this->preg_keywords = preg_replace('/[^\w ]/si', '', $this->keywords); |
|
| 109 | + $buffer = preg_replace_callback("/(\>(((?" . ">[^><]+)|(?R))*)\<)/is", array(&$this, 'replace'), $buffer); |
|
| 110 | + $buffer = substr($buffer, 1, -1); |
|
| 111 | 111 | |
| 112 | - return $buffer; |
|
| 113 | - } |
|
| 112 | + return $buffer; |
|
| 113 | + } |
|
| 114 | 114 | } |
@@ -78,10 +78,10 @@ discard block |
||
| 78 | 78 | if ($this->singlewords) { |
| 79 | 79 | $keywords = explode(' ', $this->preg_keywords); |
| 80 | 80 | foreach ($keywords as $keyword) { |
| 81 | - $patterns[] = '/(?' . '>' . $keyword . '+)/si'; |
|
| 81 | + $patterns[] = '/(?'.'>'.$keyword.'+)/si'; |
|
| 82 | 82 | } |
| 83 | 83 | } else { |
| 84 | - $patterns[] = '/(?' . '>' . $this->preg_keywords . '+)/si'; |
|
| 84 | + $patterns[] = '/(?'.'>'.$this->preg_keywords.'+)/si'; |
|
| 85 | 85 | } |
| 86 | 86 | |
| 87 | 87 | $result = $replace_matches[0]; |
@@ -104,9 +104,9 @@ discard block |
||
| 104 | 104 | */ |
| 105 | 105 | public function highlight($buffer) |
| 106 | 106 | { |
| 107 | - $buffer = '>' . $buffer . '<'; |
|
| 107 | + $buffer = '>'.$buffer.'<'; |
|
| 108 | 108 | $this->preg_keywords = preg_replace('/[^\w ]/si', '', $this->keywords); |
| 109 | - $buffer = preg_replace_callback("/(\>(((?" . ">[^><]+)|(?R))*)\<)/is", array(&$this, 'replace'), $buffer); |
|
| 109 | + $buffer = preg_replace_callback("/(\>(((?".">[^><]+)|(?R))*)\<)/is", array(&$this, 'replace'), $buffer); |
|
| 110 | 110 | $buffer = substr($buffer, 1, -1); |
| 111 | 111 | |
| 112 | 112 | return $buffer; |
@@ -89,51 +89,51 @@ |
||
| 89 | 89 | */ |
| 90 | 90 | class SmartUploader extends XoopsMediaUploader |
| 91 | 91 | { |
| 92 | - public $ext; |
|
| 93 | - public $dimension; |
|
| 92 | + public $ext; |
|
| 93 | + public $dimension; |
|
| 94 | 94 | |
| 95 | - /** |
|
| 96 | - * No admin check for uploads |
|
| 97 | - */ |
|
| 98 | - public $noAdminSizeCheck; |
|
| 95 | + /** |
|
| 96 | + * No admin check for uploads |
|
| 97 | + */ |
|
| 98 | + public $noAdminSizeCheck; |
|
| 99 | 99 | |
| 100 | - /** |
|
| 101 | - * Constructor |
|
| 102 | - * |
|
| 103 | - * @param string $uploadDir |
|
| 104 | - * @param array|int $allowedMimeTypes |
|
| 105 | - * @param int $maxFileSize |
|
| 106 | - * @param int $maxWidth |
|
| 107 | - * @param int $maxHeight |
|
| 108 | - * @internal param int $cmodvalue |
|
| 109 | - */ |
|
| 110 | - public function __construct($uploadDir, $allowedMimeTypes = 0, $maxFileSize, $maxWidth = 0, $maxHeight = 0) |
|
| 111 | - { |
|
| 112 | - parent::__construct($uploadDir, $allowedMimeTypes, $maxFileSize, $maxWidth, $maxHeight); |
|
| 113 | - } |
|
| 100 | + /** |
|
| 101 | + * Constructor |
|
| 102 | + * |
|
| 103 | + * @param string $uploadDir |
|
| 104 | + * @param array|int $allowedMimeTypes |
|
| 105 | + * @param int $maxFileSize |
|
| 106 | + * @param int $maxWidth |
|
| 107 | + * @param int $maxHeight |
|
| 108 | + * @internal param int $cmodvalue |
|
| 109 | + */ |
|
| 110 | + public function __construct($uploadDir, $allowedMimeTypes = 0, $maxFileSize, $maxWidth = 0, $maxHeight = 0) |
|
| 111 | + { |
|
| 112 | + parent::__construct($uploadDir, $allowedMimeTypes, $maxFileSize, $maxWidth, $maxHeight); |
|
| 113 | + } |
|
| 114 | 114 | |
| 115 | - /** |
|
| 116 | - * @param $value |
|
| 117 | - */ |
|
| 118 | - public function noAdminSizeCheck($value) |
|
| 119 | - { |
|
| 120 | - $this->noAdminSizeCheck = $value; |
|
| 121 | - } |
|
| 115 | + /** |
|
| 116 | + * @param $value |
|
| 117 | + */ |
|
| 118 | + public function noAdminSizeCheck($value) |
|
| 119 | + { |
|
| 120 | + $this->noAdminSizeCheck = $value; |
|
| 121 | + } |
|
| 122 | 122 | |
| 123 | - /** |
|
| 124 | - * Is the file the right size? |
|
| 125 | - * |
|
| 126 | - * @return bool |
|
| 127 | - */ |
|
| 128 | - public function checkMaxFileSize() |
|
| 129 | - { |
|
| 130 | - if ($this->noAdminSizeCheck) { |
|
| 131 | - return true; |
|
| 132 | - } |
|
| 133 | - if ($this->mediaSize > $this->maxFileSize) { |
|
| 134 | - return false; |
|
| 135 | - } |
|
| 123 | + /** |
|
| 124 | + * Is the file the right size? |
|
| 125 | + * |
|
| 126 | + * @return bool |
|
| 127 | + */ |
|
| 128 | + public function checkMaxFileSize() |
|
| 129 | + { |
|
| 130 | + if ($this->noAdminSizeCheck) { |
|
| 131 | + return true; |
|
| 132 | + } |
|
| 133 | + if ($this->mediaSize > $this->maxFileSize) { |
|
| 134 | + return false; |
|
| 135 | + } |
|
| 136 | 136 | |
| 137 | - return true; |
|
| 138 | - } |
|
| 137 | + return true; |
|
| 138 | + } |
|
| 139 | 139 | } |
@@ -69,9 +69,9 @@ |
||
| 69 | 69 | * @link http://smartfactory.ca The SmartFactory |
| 70 | 70 | * @package SmartObject |
| 71 | 71 | */ |
| 72 | -mt_srand((double)microtime() * 1000000); |
|
| 72 | +mt_srand((double) microtime() * 1000000); |
|
| 73 | 73 | |
| 74 | -require_once XOOPS_ROOT_PATH . '/class/uploader.php'; |
|
| 74 | +require_once XOOPS_ROOT_PATH.'/class/uploader.php'; |
|
| 75 | 75 | |
| 76 | 76 | /** |
| 77 | 77 | * Class SmartUploader |
@@ -20,13 +20,13 @@ discard block |
||
| 20 | 20 | */ |
| 21 | 21 | public function __construct($layout = 0, $method = 1) |
| 22 | 22 | { |
| 23 | - $layout = (int)$layout; |
|
| 23 | + $layout = (int) $layout; |
|
| 24 | 24 | if ($layout < 0 || $layout > 3) { |
| 25 | 25 | $layout = 0; |
| 26 | 26 | } |
| 27 | 27 | $this->_layout = $layout; |
| 28 | 28 | |
| 29 | - $method = (int)$method; |
|
| 29 | + $method = (int) $method; |
|
| 30 | 30 | if ($method < 0 || $method > 1) { |
| 31 | 31 | $method = 1; |
| 32 | 32 | } |
@@ -41,12 +41,12 @@ discard block |
||
| 41 | 41 | { |
| 42 | 42 | global $xoTheme, $xoopsTpl; |
| 43 | 43 | |
| 44 | - $xoTheme->addStylesheet(SMARTOBJECT_URL . 'include/addto/addto.css'); |
|
| 44 | + $xoTheme->addStylesheet(SMARTOBJECT_URL.'include/addto/addto.css'); |
|
| 45 | 45 | |
| 46 | 46 | $xoopsTpl->assign('smartobject_addto_method', $this->_method); |
| 47 | 47 | $xoopsTpl->assign('smartobject_addto_layout', $this->_layout); |
| 48 | 48 | |
| 49 | - $xoopsTpl->assign('smartobject_addto_url', SMARTOBJECT_URL . 'include/addto/'); |
|
| 49 | + $xoopsTpl->assign('smartobject_addto_url', SMARTOBJECT_URL.'include/addto/'); |
|
| 50 | 50 | |
| 51 | 51 | if ($fetchOnly) { |
| 52 | 52 | return $xoopsTpl->fetch('db:smartobject_addto.tpl'); |
@@ -62,12 +62,12 @@ discard block |
||
| 62 | 62 | { |
| 63 | 63 | global $xoTheme; |
| 64 | 64 | |
| 65 | - $xoTheme->addStylesheet(SMARTOBJECT_URL . 'include/addto/addto.css'); |
|
| 65 | + $xoTheme->addStylesheet(SMARTOBJECT_URL.'include/addto/addto.css'); |
|
| 66 | 66 | |
| 67 | 67 | $block = array(); |
| 68 | 68 | $block['smartobject_addto_method'] = $this->_method; |
| 69 | 69 | $block['smartobject_addto_layout'] = $this->_layout; |
| 70 | - $block['smartobject_addto_url'] = SMARTOBJECT_URL . 'include/addto/'; |
|
| 70 | + $block['smartobject_addto_url'] = SMARTOBJECT_URL.'include/addto/'; |
|
| 71 | 71 | |
| 72 | 72 | return $block; |
| 73 | 73 | } |
@@ -10,66 +10,66 @@ |
||
| 10 | 10 | |
| 11 | 11 | class SmartAddTo |
| 12 | 12 | { |
| 13 | - public $_layout; |
|
| 14 | - public $_method; |
|
| 13 | + public $_layout; |
|
| 14 | + public $_method; |
|
| 15 | 15 | |
| 16 | - /** |
|
| 17 | - * Constructor of SmartAddTo |
|
| 18 | - * |
|
| 19 | - * @param int $layout 0=Horizontal 1 row, 1=Horizontal 2 rows, 2=Vertical with icons, 3=Vertical no icons |
|
| 20 | - * @param int $method 0=directpage, 1=popup |
|
| 21 | - */ |
|
| 22 | - public function __construct($layout = 0, $method = 1) |
|
| 23 | - { |
|
| 24 | - $layout = (int)$layout; |
|
| 25 | - if ($layout < 0 || $layout > 3) { |
|
| 26 | - $layout = 0; |
|
| 27 | - } |
|
| 28 | - $this->_layout = $layout; |
|
| 16 | + /** |
|
| 17 | + * Constructor of SmartAddTo |
|
| 18 | + * |
|
| 19 | + * @param int $layout 0=Horizontal 1 row, 1=Horizontal 2 rows, 2=Vertical with icons, 3=Vertical no icons |
|
| 20 | + * @param int $method 0=directpage, 1=popup |
|
| 21 | + */ |
|
| 22 | + public function __construct($layout = 0, $method = 1) |
|
| 23 | + { |
|
| 24 | + $layout = (int)$layout; |
|
| 25 | + if ($layout < 0 || $layout > 3) { |
|
| 26 | + $layout = 0; |
|
| 27 | + } |
|
| 28 | + $this->_layout = $layout; |
|
| 29 | 29 | |
| 30 | - $method = (int)$method; |
|
| 31 | - if ($method < 0 || $method > 1) { |
|
| 32 | - $method = 1; |
|
| 33 | - } |
|
| 34 | - $this->_method = $method; |
|
| 35 | - } |
|
| 30 | + $method = (int)$method; |
|
| 31 | + if ($method < 0 || $method > 1) { |
|
| 32 | + $method = 1; |
|
| 33 | + } |
|
| 34 | + $this->_method = $method; |
|
| 35 | + } |
|
| 36 | 36 | |
| 37 | - /** |
|
| 38 | - * @param bool $fetchOnly |
|
| 39 | - * @return mixed|string|void |
|
| 40 | - */ |
|
| 41 | - public function render($fetchOnly = false) |
|
| 42 | - { |
|
| 43 | - global $xoTheme, $xoopsTpl; |
|
| 37 | + /** |
|
| 38 | + * @param bool $fetchOnly |
|
| 39 | + * @return mixed|string|void |
|
| 40 | + */ |
|
| 41 | + public function render($fetchOnly = false) |
|
| 42 | + { |
|
| 43 | + global $xoTheme, $xoopsTpl; |
|
| 44 | 44 | |
| 45 | - $xoTheme->addStylesheet(SMARTOBJECT_URL . 'include/addto/addto.css'); |
|
| 45 | + $xoTheme->addStylesheet(SMARTOBJECT_URL . 'include/addto/addto.css'); |
|
| 46 | 46 | |
| 47 | - $xoopsTpl->assign('smartobject_addto_method', $this->_method); |
|
| 48 | - $xoopsTpl->assign('smartobject_addto_layout', $this->_layout); |
|
| 47 | + $xoopsTpl->assign('smartobject_addto_method', $this->_method); |
|
| 48 | + $xoopsTpl->assign('smartobject_addto_layout', $this->_layout); |
|
| 49 | 49 | |
| 50 | - $xoopsTpl->assign('smartobject_addto_url', SMARTOBJECT_URL . 'include/addto/'); |
|
| 50 | + $xoopsTpl->assign('smartobject_addto_url', SMARTOBJECT_URL . 'include/addto/'); |
|
| 51 | 51 | |
| 52 | - if ($fetchOnly) { |
|
| 53 | - return $xoopsTpl->fetch('db:smartobject_addto.tpl'); |
|
| 54 | - } else { |
|
| 55 | - $xoopsTpl->display('db:smartobject_addto.tpl'); |
|
| 56 | - } |
|
| 57 | - } |
|
| 52 | + if ($fetchOnly) { |
|
| 53 | + return $xoopsTpl->fetch('db:smartobject_addto.tpl'); |
|
| 54 | + } else { |
|
| 55 | + $xoopsTpl->display('db:smartobject_addto.tpl'); |
|
| 56 | + } |
|
| 57 | + } |
|
| 58 | 58 | |
| 59 | - /** |
|
| 60 | - * @return array |
|
| 61 | - */ |
|
| 62 | - public function renderForBlock() |
|
| 63 | - { |
|
| 64 | - global $xoTheme; |
|
| 59 | + /** |
|
| 60 | + * @return array |
|
| 61 | + */ |
|
| 62 | + public function renderForBlock() |
|
| 63 | + { |
|
| 64 | + global $xoTheme; |
|
| 65 | 65 | |
| 66 | - $xoTheme->addStylesheet(SMARTOBJECT_URL . 'include/addto/addto.css'); |
|
| 66 | + $xoTheme->addStylesheet(SMARTOBJECT_URL . 'include/addto/addto.css'); |
|
| 67 | 67 | |
| 68 | - $block = array(); |
|
| 69 | - $block['smartobject_addto_method'] = $this->_method; |
|
| 70 | - $block['smartobject_addto_layout'] = $this->_layout; |
|
| 71 | - $block['smartobject_addto_url'] = SMARTOBJECT_URL . 'include/addto/'; |
|
| 68 | + $block = array(); |
|
| 69 | + $block['smartobject_addto_method'] = $this->_method; |
|
| 70 | + $block['smartobject_addto_layout'] = $this->_layout; |
|
| 71 | + $block['smartobject_addto_url'] = SMARTOBJECT_URL . 'include/addto/'; |
|
| 72 | 72 | |
| 73 | - return $block; |
|
| 74 | - } |
|
| 73 | + return $block; |
|
| 74 | + } |
|
| 75 | 75 | } |
@@ -12,23 +12,23 @@ |
||
| 12 | 12 | |
| 13 | 13 | class SmartFormUser_sigElement extends XoopsFormElementTray |
| 14 | 14 | { |
| 15 | - /** |
|
| 16 | - * SmartFormUser_sigElement constructor. |
|
| 17 | - * @param string $object |
|
| 18 | - * @param string $key |
|
| 19 | - */ |
|
| 20 | - public function __construct($object, $key) |
|
| 21 | - { |
|
| 22 | - $var = $object->vars[$key]; |
|
| 23 | - $control = $object->controls[$key]; |
|
| 15 | + /** |
|
| 16 | + * SmartFormUser_sigElement constructor. |
|
| 17 | + * @param string $object |
|
| 18 | + * @param string $key |
|
| 19 | + */ |
|
| 20 | + public function __construct($object, $key) |
|
| 21 | + { |
|
| 22 | + $var = $object->vars[$key]; |
|
| 23 | + $control = $object->controls[$key]; |
|
| 24 | 24 | |
| 25 | - parent::__construct($var['form_caption'], '<br><br>', $key . '_signature_tray'); |
|
| 25 | + parent::__construct($var['form_caption'], '<br><br>', $key . '_signature_tray'); |
|
| 26 | 26 | |
| 27 | - $signature_textarea = new XoopsFormDhtmlTextArea('', $key, $object->getVar($key, 'e')); |
|
| 28 | - $this->addElement($signature_textarea); |
|
| 27 | + $signature_textarea = new XoopsFormDhtmlTextArea('', $key, $object->getVar($key, 'e')); |
|
| 28 | + $this->addElement($signature_textarea); |
|
| 29 | 29 | |
| 30 | - $attach_checkbox = new XoopsFormCheckBox('', 'attachsig', $object->getVar('attachsig', 'e')); |
|
| 31 | - $attach_checkbox->addOption(1, _US_SHOWSIG); |
|
| 32 | - $this->addElement($attach_checkbox); |
|
| 33 | - } |
|
| 30 | + $attach_checkbox = new XoopsFormCheckBox('', 'attachsig', $object->getVar('attachsig', 'e')); |
|
| 31 | + $attach_checkbox->addOption(1, _US_SHOWSIG); |
|
| 32 | + $this->addElement($attach_checkbox); |
|
| 33 | + } |
|
| 34 | 34 | } |
@@ -22,7 +22,7 @@ |
||
| 22 | 22 | $var = $object->vars[$key]; |
| 23 | 23 | $control = $object->controls[$key]; |
| 24 | 24 | |
| 25 | - parent::__construct($var['form_caption'], '<br><br>', $key . '_signature_tray'); |
|
| 25 | + parent::__construct($var['form_caption'], '<br><br>', $key.'_signature_tray'); |
|
| 26 | 26 | |
| 27 | 27 | $signature_textarea = new XoopsFormDhtmlTextArea('', $key, $object->getVar($key, 'e')); |
| 28 | 28 | $this->addElement($signature_textarea); |
@@ -11,31 +11,31 @@ |
||
| 11 | 11 | */ |
| 12 | 12 | class SmartFormUrlLinkElement extends XoopsFormElementTray |
| 13 | 13 | { |
| 14 | - /** |
|
| 15 | - * SmartFormUrlLinkElement constructor. |
|
| 16 | - * @param string $form_caption |
|
| 17 | - * @param string $key |
|
| 18 | - * @param string $object |
|
| 19 | - */ |
|
| 20 | - public function __construct($form_caption, $key, $object) |
|
| 21 | - { |
|
| 22 | - parent::__construct($form_caption, ' '); |
|
| 14 | + /** |
|
| 15 | + * SmartFormUrlLinkElement constructor. |
|
| 16 | + * @param string $form_caption |
|
| 17 | + * @param string $key |
|
| 18 | + * @param string $object |
|
| 19 | + */ |
|
| 20 | + public function __construct($form_caption, $key, $object) |
|
| 21 | + { |
|
| 22 | + parent::__construct($form_caption, ' '); |
|
| 23 | 23 | |
| 24 | - $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_URLLINK_URL)); |
|
| 25 | - $this->addElement(new SmartFormTextElement($object, 'url_' . $key)); |
|
| 24 | + $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_URLLINK_URL)); |
|
| 25 | + $this->addElement(new SmartFormTextElement($object, 'url_' . $key)); |
|
| 26 | 26 | |
| 27 | - $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_CAPTION)); |
|
| 28 | - $this->addElement(new SmartFormTextElement($object, 'caption_' . $key)); |
|
| 27 | + $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_CAPTION)); |
|
| 28 | + $this->addElement(new SmartFormTextElement($object, 'caption_' . $key)); |
|
| 29 | 29 | |
| 30 | - $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_DESC . '<br>')); |
|
| 31 | - $this->addElement(new XoopsFormTextArea('', 'desc_' . $key, $object->getVar('description'))); |
|
| 30 | + $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_DESC . '<br>')); |
|
| 31 | + $this->addElement(new XoopsFormTextArea('', 'desc_' . $key, $object->getVar('description'))); |
|
| 32 | 32 | |
| 33 | - $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_URLLINK_TARGET)); |
|
| 34 | - $targ_val = $object->getVar('target'); |
|
| 35 | - $targetRadio = new XoopsFormRadio('', 'target_' . $key, $targ_val !== '' ? $targ_val : '_blank'); |
|
| 36 | - $control = $object->getControl('target'); |
|
| 37 | - $targetRadio->addOptionArray($control['options']); |
|
| 33 | + $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_URLLINK_TARGET)); |
|
| 34 | + $targ_val = $object->getVar('target'); |
|
| 35 | + $targetRadio = new XoopsFormRadio('', 'target_' . $key, $targ_val !== '' ? $targ_val : '_blank'); |
|
| 36 | + $control = $object->getControl('target'); |
|
| 37 | + $targetRadio->addOptionArray($control['options']); |
|
| 38 | 38 | |
| 39 | - $this->addElement($targetRadio); |
|
| 40 | - } |
|
| 39 | + $this->addElement($targetRadio); |
|
| 40 | + } |
|
| 41 | 41 | } |
@@ -21,18 +21,18 @@ |
||
| 21 | 21 | { |
| 22 | 22 | parent::__construct($form_caption, ' '); |
| 23 | 23 | |
| 24 | - $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_URLLINK_URL)); |
|
| 25 | - $this->addElement(new SmartFormTextElement($object, 'url_' . $key)); |
|
| 24 | + $this->addElement(new XoopsFormLabel('', '<br>'._CO_SOBJECT_URLLINK_URL)); |
|
| 25 | + $this->addElement(new SmartFormTextElement($object, 'url_'.$key)); |
|
| 26 | 26 | |
| 27 | - $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_CAPTION)); |
|
| 28 | - $this->addElement(new SmartFormTextElement($object, 'caption_' . $key)); |
|
| 27 | + $this->addElement(new XoopsFormLabel('', '<br>'._CO_SOBJECT_CAPTION)); |
|
| 28 | + $this->addElement(new SmartFormTextElement($object, 'caption_'.$key)); |
|
| 29 | 29 | |
| 30 | - $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_DESC . '<br>')); |
|
| 31 | - $this->addElement(new XoopsFormTextArea('', 'desc_' . $key, $object->getVar('description'))); |
|
| 30 | + $this->addElement(new XoopsFormLabel('', '<br>'._CO_SOBJECT_DESC.'<br>')); |
|
| 31 | + $this->addElement(new XoopsFormTextArea('', 'desc_'.$key, $object->getVar('description'))); |
|
| 32 | 32 | |
| 33 | - $this->addElement(new XoopsFormLabel('', '<br>' . _CO_SOBJECT_URLLINK_TARGET)); |
|
| 33 | + $this->addElement(new XoopsFormLabel('', '<br>'._CO_SOBJECT_URLLINK_TARGET)); |
|
| 34 | 34 | $targ_val = $object->getVar('target'); |
| 35 | - $targetRadio = new XoopsFormRadio('', 'target_' . $key, $targ_val !== '' ? $targ_val : '_blank'); |
|
| 35 | + $targetRadio = new XoopsFormRadio('', 'target_'.$key, $targ_val !== '' ? $targ_val : '_blank'); |
|
| 36 | 36 | $control = $object->getControl('target'); |
| 37 | 37 | $targetRadio->addOptionArray($control['options']); |
| 38 | 38 | |
@@ -11,23 +11,23 @@ |
||
| 11 | 11 | */ |
| 12 | 12 | class SmartFormTimeElement extends XoopsFormSelect |
| 13 | 13 | { |
| 14 | - /** |
|
| 15 | - * SmartFormTimeElement constructor. |
|
| 16 | - * @param string $object |
|
| 17 | - * @param string $key |
|
| 18 | - */ |
|
| 19 | - public function __construct($object, $key) |
|
| 20 | - { |
|
| 21 | - $var = $object->vars[$key]; |
|
| 22 | - $timearray = array(); |
|
| 23 | - for ($i = 0; $i < 24; ++$i) { |
|
| 24 | - for ($j = 0; $j < 60; $j += 10) { |
|
| 25 | - $key_t = ($i * 3600) + ($j * 60); |
|
| 26 | - $timearray[$key_t] = ($j != 0) ? $i . ':' . $j : $i . ':0' . $j; |
|
| 27 | - } |
|
| 28 | - } |
|
| 29 | - ksort($timearray); |
|
| 30 | - parent::__construct($var['form_caption'], $key, $object->getVar($key, 'e')); |
|
| 31 | - $this->addOptionArray($timearray); |
|
| 32 | - } |
|
| 14 | + /** |
|
| 15 | + * SmartFormTimeElement constructor. |
|
| 16 | + * @param string $object |
|
| 17 | + * @param string $key |
|
| 18 | + */ |
|
| 19 | + public function __construct($object, $key) |
|
| 20 | + { |
|
| 21 | + $var = $object->vars[$key]; |
|
| 22 | + $timearray = array(); |
|
| 23 | + for ($i = 0; $i < 24; ++$i) { |
|
| 24 | + for ($j = 0; $j < 60; $j += 10) { |
|
| 25 | + $key_t = ($i * 3600) + ($j * 60); |
|
| 26 | + $timearray[$key_t] = ($j != 0) ? $i . ':' . $j : $i . ':0' . $j; |
|
| 27 | + } |
|
| 28 | + } |
|
| 29 | + ksort($timearray); |
|
| 30 | + parent::__construct($var['form_caption'], $key, $object->getVar($key, 'e')); |
|
| 31 | + $this->addOptionArray($timearray); |
|
| 32 | + } |
|
| 33 | 33 | } |
@@ -23,7 +23,7 @@ |
||
| 23 | 23 | for ($i = 0; $i < 24; ++$i) { |
| 24 | 24 | for ($j = 0; $j < 60; $j += 10) { |
| 25 | 25 | $key_t = ($i * 3600) + ($j * 60); |
| 26 | - $timearray[$key_t] = ($j != 0) ? $i . ':' . $j : $i . ':0' . $j; |
|
| 26 | + $timearray[$key_t] = ($j != 0) ? $i.':'.$j : $i.':0'.$j; |
|
| 27 | 27 | } |
| 28 | 28 | } |
| 29 | 29 | ksort($timearray); |
@@ -50,12 +50,12 @@ |
||
| 50 | 50 | $var = $object->vars[$key]; |
| 51 | 51 | $control = $object->controls[$key]; |
| 52 | 52 | |
| 53 | - parent::__construct($var['form_caption'] . '<br>' . _US_TYPEPASSTWICE, ' ', $key . '_password_tray'); |
|
| 53 | + parent::__construct($var['form_caption'].'<br>'._US_TYPEPASSTWICE, ' ', $key.'_password_tray'); |
|
| 54 | 54 | |
| 55 | - $password_box1 = new XoopsFormPassword('', $key . '1', 10, 32); |
|
| 55 | + $password_box1 = new XoopsFormPassword('', $key.'1', 10, 32); |
|
| 56 | 56 | $this->addElement($password_box1); |
| 57 | 57 | |
| 58 | - $password_box2 = new XoopsFormPassword('', $key . '2', 10, 32); |
|
| 58 | + $password_box2 = new XoopsFormPassword('', $key.'2', 10, 32); |
|
| 59 | 59 | $this->addElement($password_box2); |
| 60 | 60 | } |
| 61 | 61 | } |
@@ -13,50 +13,50 @@ |
||
| 13 | 13 | |
| 14 | 14 | class SmartFormSet_passwordElement extends XoopsFormElementTray |
| 15 | 15 | { |
| 16 | - /** |
|
| 17 | - * Size of the field. |
|
| 18 | - * @var int |
|
| 19 | - * @access private |
|
| 20 | - */ |
|
| 21 | - public $_size; |
|
| 22 | - |
|
| 23 | - /** |
|
| 24 | - * Maximum length of the text |
|
| 25 | - * @var int |
|
| 26 | - * @access private |
|
| 27 | - */ |
|
| 28 | - public $_maxlength; |
|
| 29 | - |
|
| 30 | - /** |
|
| 31 | - * Initial content of the field. |
|
| 32 | - * @var string |
|
| 33 | - * @access private |
|
| 34 | - */ |
|
| 35 | - public $_value; |
|
| 36 | - |
|
| 37 | - /** |
|
| 38 | - * Constructor |
|
| 39 | - * |
|
| 40 | - * @param string $object |
|
| 41 | - * @param string $key |
|
| 42 | - * @internal param string $caption Caption |
|
| 43 | - * @internal param string $name "name" attribute |
|
| 44 | - * @internal param int $size Size of the field |
|
| 45 | - * @internal param int $maxlength Maximum length of the text |
|
| 46 | - * @internal param int $value Initial value of the field. |
|
| 47 | - * <b>Warning:</b> this is readable in cleartext in the page's source! |
|
| 48 | - */ |
|
| 49 | - public function __construct($object, $key) |
|
| 50 | - { |
|
| 51 | - $var = $object->vars[$key]; |
|
| 52 | - $control = $object->controls[$key]; |
|
| 53 | - |
|
| 54 | - parent::__construct($var['form_caption'] . '<br>' . _US_TYPEPASSTWICE, ' ', $key . '_password_tray'); |
|
| 55 | - |
|
| 56 | - $password_box1 = new XoopsFormPassword('', $key . '1', 10, 32); |
|
| 57 | - $this->addElement($password_box1); |
|
| 58 | - |
|
| 59 | - $password_box2 = new XoopsFormPassword('', $key . '2', 10, 32); |
|
| 60 | - $this->addElement($password_box2); |
|
| 61 | - } |
|
| 16 | + /** |
|
| 17 | + * Size of the field. |
|
| 18 | + * @var int |
|
| 19 | + * @access private |
|
| 20 | + */ |
|
| 21 | + public $_size; |
|
| 22 | + |
|
| 23 | + /** |
|
| 24 | + * Maximum length of the text |
|
| 25 | + * @var int |
|
| 26 | + * @access private |
|
| 27 | + */ |
|
| 28 | + public $_maxlength; |
|
| 29 | + |
|
| 30 | + /** |
|
| 31 | + * Initial content of the field. |
|
| 32 | + * @var string |
|
| 33 | + * @access private |
|
| 34 | + */ |
|
| 35 | + public $_value; |
|
| 36 | + |
|
| 37 | + /** |
|
| 38 | + * Constructor |
|
| 39 | + * |
|
| 40 | + * @param string $object |
|
| 41 | + * @param string $key |
|
| 42 | + * @internal param string $caption Caption |
|
| 43 | + * @internal param string $name "name" attribute |
|
| 44 | + * @internal param int $size Size of the field |
|
| 45 | + * @internal param int $maxlength Maximum length of the text |
|
| 46 | + * @internal param int $value Initial value of the field. |
|
| 47 | + * <b>Warning:</b> this is readable in cleartext in the page's source! |
|
| 48 | + */ |
|
| 49 | + public function __construct($object, $key) |
|
| 50 | + { |
|
| 51 | + $var = $object->vars[$key]; |
|
| 52 | + $control = $object->controls[$key]; |
|
| 53 | + |
|
| 54 | + parent::__construct($var['form_caption'] . '<br>' . _US_TYPEPASSTWICE, ' ', $key . '_password_tray'); |
|
| 55 | + |
|
| 56 | + $password_box1 = new XoopsFormPassword('', $key . '1', 10, 32); |
|
| 57 | + $this->addElement($password_box1); |
|
| 58 | + |
|
| 59 | + $password_box2 = new XoopsFormPassword('', $key . '2', 10, 32); |
|
| 60 | + $this->addElement($password_box2); |
|
| 61 | + } |
|
| 62 | 62 | } |
@@ -14,7 +14,7 @@ discard block |
||
| 14 | 14 | class XoopsCaptcha |
| 15 | 15 | { |
| 16 | 16 | public $active = true; |
| 17 | - public $mode = 'text'; // potential values: image, text |
|
| 17 | + public $mode = 'text'; // potential values: image, text |
|
| 18 | 18 | public $config = array(); |
| 19 | 19 | |
| 20 | 20 | public $message = array(); // Logging error messages |
@@ -25,7 +25,7 @@ discard block |
||
| 25 | 25 | public function __construct() |
| 26 | 26 | { |
| 27 | 27 | // Loading default preferences |
| 28 | - $this->config = @include __DIR__ . '/config.php'; |
|
| 28 | + $this->config = @include __DIR__.'/config.php'; |
|
| 29 | 29 | |
| 30 | 30 | $this->setMode($this->config['mode']); |
| 31 | 31 | } |
@@ -127,7 +127,7 @@ discard block |
||
| 127 | 127 | { |
| 128 | 128 | $sessionName = @$_SESSION['XoopsCaptcha_name']; |
| 129 | 129 | $skipMember = ($skipMember === null) ? @$_SESSION['XoopsCaptcha_skipmember'] : $skipMember; |
| 130 | - $maxAttempts = (int)(@$_SESSION['XoopsCaptcha_maxattempts']); |
|
| 130 | + $maxAttempts = (int) (@$_SESSION['XoopsCaptcha_maxattempts']); |
|
| 131 | 131 | |
| 132 | 132 | $is_valid = false; |
| 133 | 133 | |
@@ -135,7 +135,7 @@ discard block |
||
| 135 | 135 | if (is_object($GLOBALS['xoopsUser']) && !empty($skipMember)) { |
| 136 | 136 | $is_valid = true; |
| 137 | 137 | // Kill too many attempts |
| 138 | - } elseif (!empty($maxAttempts) && $_SESSION['XoopsCaptcha_attempt_' . $sessionName] > $maxAttempts) { |
|
| 138 | + } elseif (!empty($maxAttempts) && $_SESSION['XoopsCaptcha_attempt_'.$sessionName] > $maxAttempts) { |
|
| 139 | 139 | $this->message[] = XOOPS_CAPTCHA_TOOMANYATTEMPTS; |
| 140 | 140 | |
| 141 | 141 | // Verify the code |
@@ -147,13 +147,13 @@ discard block |
||
| 147 | 147 | if (!empty($maxAttempts)) { |
| 148 | 148 | if (!$is_valid) { |
| 149 | 149 | // Increase the attempt records on failure |
| 150 | - $_SESSION['XoopsCaptcha_attempt_' . $sessionName]++; |
|
| 150 | + $_SESSION['XoopsCaptcha_attempt_'.$sessionName]++; |
|
| 151 | 151 | // Log the error message |
| 152 | 152 | $this->message[] = XOOPS_CAPTCHA_INVALID_CODE; |
| 153 | 153 | } else { |
| 154 | 154 | |
| 155 | 155 | // reset attempt records on success |
| 156 | - $_SESSION['XoopsCaptcha_attempt_' . $sessionName] = null; |
|
| 156 | + $_SESSION['XoopsCaptcha_attempt_'.$sessionName] = null; |
|
| 157 | 157 | } |
| 158 | 158 | } |
| 159 | 159 | $this->destroyGarbage(true); |
@@ -184,8 +184,8 @@ discard block |
||
| 184 | 184 | */ |
| 185 | 185 | public function destroyGarbage($clearSession = false) |
| 186 | 186 | { |
| 187 | - require_once __DIR__ . '/' . $this->mode . '.php'; |
|
| 188 | - $class = 'XoopsCaptcha' . ucfirst($this->mode); |
|
| 187 | + require_once __DIR__.'/'.$this->mode.'.php'; |
|
| 188 | + $class = 'XoopsCaptcha'.ucfirst($this->mode); |
|
| 189 | 189 | $captchaHandler = new $class(); |
| 190 | 190 | if (method_exists($captchaHandler, 'destroyGarbage')) { |
| 191 | 191 | $captchaHandler->loadConfig($this->config); |
@@ -224,7 +224,7 @@ discard block |
||
| 224 | 224 | */ |
| 225 | 225 | |
| 226 | 226 | // Fail on too many attempts |
| 227 | - if (!empty($maxAttempts) && @$_SESSION['XoopsCaptcha_attempt_' . $this->config['name']] > $maxAttempts) { |
|
| 227 | + if (!empty($maxAttempts) && @$_SESSION['XoopsCaptcha_attempt_'.$this->config['name']] > $maxAttempts) { |
|
| 228 | 228 | $form = XOOPS_CAPTCHA_TOOMANYATTEMPTS; |
| 229 | 229 | // Load the form element |
| 230 | 230 | } else { |
@@ -239,8 +239,8 @@ discard block |
||
| 239 | 239 | */ |
| 240 | 240 | public function loadForm() |
| 241 | 241 | { |
| 242 | - require_once __DIR__ . '/' . $this->mode . '.php'; |
|
| 243 | - $class = 'XoopsCaptcha' . ucfirst($this->mode); |
|
| 242 | + require_once __DIR__.'/'.$this->mode.'.php'; |
|
| 243 | + $class = 'XoopsCaptcha'.ucfirst($this->mode); |
|
| 244 | 244 | $captchaHandler = new $class(); |
| 245 | 245 | $captchaHandler->loadConfig($this->config); |
| 246 | 246 | |
@@ -13,253 +13,253 @@ |
||
| 13 | 13 | */ |
| 14 | 14 | class XoopsCaptcha |
| 15 | 15 | { |
| 16 | - public $active = true; |
|
| 17 | - public $mode = 'text'; // potential values: image, text |
|
| 18 | - public $config = array(); |
|
| 19 | - |
|
| 20 | - public $message = array(); // Logging error messages |
|
| 21 | - |
|
| 22 | - /** |
|
| 23 | - * XoopsCaptcha constructor. |
|
| 24 | - */ |
|
| 25 | - public function __construct() |
|
| 26 | - { |
|
| 27 | - // Loading default preferences |
|
| 28 | - $this->config = @include __DIR__ . '/config.php'; |
|
| 29 | - |
|
| 30 | - $this->setMode($this->config['mode']); |
|
| 31 | - } |
|
| 32 | - |
|
| 33 | - /** |
|
| 34 | - * @return XoopsCaptcha |
|
| 35 | - */ |
|
| 36 | - public static function getInstance() |
|
| 37 | - { |
|
| 38 | - static $instance; |
|
| 39 | - if (null === $instance) { |
|
| 40 | - $instance = new static(); |
|
| 41 | - } |
|
| 42 | - |
|
| 43 | - return $instance; |
|
| 44 | - } |
|
| 45 | - |
|
| 46 | - /** |
|
| 47 | - * @param $name |
|
| 48 | - * @param $val |
|
| 49 | - * @return bool |
|
| 50 | - */ |
|
| 51 | - public function setConfig($name, $val) |
|
| 52 | - { |
|
| 53 | - if ($name === 'mode') { |
|
| 54 | - $this->setMode($val); |
|
| 55 | - } elseif (isset($this->$name)) { |
|
| 56 | - $this->$name = $val; |
|
| 57 | - } else { |
|
| 58 | - $this->config[$name] = $val; |
|
| 59 | - } |
|
| 60 | - |
|
| 61 | - return true; |
|
| 62 | - } |
|
| 63 | - |
|
| 64 | - /** |
|
| 65 | - * Set CAPTCHA mode |
|
| 66 | - * |
|
| 67 | - * For future possible modes, right now force to use text or image |
|
| 68 | - * |
|
| 69 | - * @param string $mode if no mode is set, just verify current mode |
|
| 70 | - */ |
|
| 71 | - public function setMode($mode = null) |
|
| 72 | - { |
|
| 73 | - if (!empty($mode) && in_array($mode, array('text', 'image'))) { |
|
| 74 | - $this->mode = $mode; |
|
| 75 | - |
|
| 76 | - if ($this->mode !== 'image') { |
|
| 77 | - return; |
|
| 78 | - } |
|
| 79 | - } |
|
| 80 | - |
|
| 81 | - // Disable image mode |
|
| 82 | - if (!extension_loaded('gd')) { |
|
| 83 | - $this->mode = 'text'; |
|
| 84 | - } else { |
|
| 85 | - $required_functions = array( |
|
| 86 | - 'imagecreatetruecolor', |
|
| 87 | - 'imagecolorallocate', |
|
| 88 | - 'imagefilledrectangle', |
|
| 89 | - 'imagejpeg', |
|
| 90 | - 'imagedestroy', |
|
| 91 | - 'imageftbbox' |
|
| 92 | - ); |
|
| 93 | - foreach ($required_functions as $func) { |
|
| 94 | - if (!function_exists($func)) { |
|
| 95 | - $this->mode = 'text'; |
|
| 96 | - break; |
|
| 97 | - } |
|
| 98 | - } |
|
| 99 | - } |
|
| 100 | - } |
|
| 101 | - |
|
| 102 | - /** |
|
| 103 | - * Initializing the CAPTCHA class |
|
| 104 | - * @param string $name |
|
| 105 | - * @param null $skipmember |
|
| 106 | - * @param null $num_chars |
|
| 107 | - * @param null $fontsize_min |
|
| 108 | - * @param null $fontsize_max |
|
| 109 | - * @param null $background_type |
|
| 110 | - * @param null $background_num |
|
| 111 | - */ |
|
| 112 | - public function init( |
|
| 113 | - $name = 'xoopscaptcha', |
|
| 114 | - $skipmember = null, |
|
| 115 | - $num_chars = null, |
|
| 116 | - $fontsize_min = null, |
|
| 117 | - $fontsize_max = null, |
|
| 118 | - $background_type = null, |
|
| 119 | - $background_num = null |
|
| 120 | - ) { |
|
| 121 | - // Loading RUN-TIME settings |
|
| 122 | - foreach (array_keys($this->config) as $key) { |
|
| 123 | - if (isset(${$key}) && ${$key} !== null) { |
|
| 124 | - $this->config[$key] = ${$key}; |
|
| 125 | - } |
|
| 126 | - } |
|
| 127 | - $this->config['name'] = $name; |
|
| 128 | - |
|
| 129 | - // Skip CAPTCHA for member if set |
|
| 130 | - if ($this->config['skipmember'] && is_object($GLOBALS['xoopsUser'])) { |
|
| 131 | - $this->active = false; |
|
| 132 | - } |
|
| 133 | - } |
|
| 134 | - |
|
| 135 | - /** |
|
| 136 | - * Verify user submission |
|
| 137 | - * @param null $skipMember |
|
| 138 | - * @return bool |
|
| 139 | - */ |
|
| 140 | - public function verify($skipMember = null) |
|
| 141 | - { |
|
| 142 | - $sessionName = @$_SESSION['XoopsCaptcha_name']; |
|
| 143 | - $skipMember = ($skipMember === null) ? @$_SESSION['XoopsCaptcha_skipmember'] : $skipMember; |
|
| 144 | - $maxAttempts = (int)(@$_SESSION['XoopsCaptcha_maxattempts']); |
|
| 145 | - |
|
| 146 | - $is_valid = false; |
|
| 147 | - |
|
| 148 | - // Skip CAPTCHA for member if set |
|
| 149 | - if (is_object($GLOBALS['xoopsUser']) && !empty($skipMember)) { |
|
| 150 | - $is_valid = true; |
|
| 151 | - // Kill too many attempts |
|
| 152 | - } elseif (!empty($maxAttempts) && $_SESSION['XoopsCaptcha_attempt_' . $sessionName] > $maxAttempts) { |
|
| 153 | - $this->message[] = XOOPS_CAPTCHA_TOOMANYATTEMPTS; |
|
| 154 | - |
|
| 155 | - // Verify the code |
|
| 156 | - } elseif (!empty($_SESSION['XoopsCaptcha_sessioncode'])) { |
|
| 157 | - $func = $this->config['casesensitive'] ? 'strcmp' : 'strcasecmp'; |
|
| 158 | - $is_valid = !$func(trim(@$_POST[$sessionName]), $_SESSION['XoopsCaptcha_sessioncode']); |
|
| 159 | - } |
|
| 160 | - |
|
| 161 | - if (!empty($maxAttempts)) { |
|
| 162 | - if (!$is_valid) { |
|
| 163 | - // Increase the attempt records on failure |
|
| 164 | - $_SESSION['XoopsCaptcha_attempt_' . $sessionName]++; |
|
| 165 | - // Log the error message |
|
| 166 | - $this->message[] = XOOPS_CAPTCHA_INVALID_CODE; |
|
| 167 | - } else { |
|
| 168 | - |
|
| 169 | - // reset attempt records on success |
|
| 170 | - $_SESSION['XoopsCaptcha_attempt_' . $sessionName] = null; |
|
| 171 | - } |
|
| 172 | - } |
|
| 173 | - $this->destroyGarbage(true); |
|
| 174 | - |
|
| 175 | - return $is_valid; |
|
| 176 | - } |
|
| 177 | - |
|
| 178 | - /** |
|
| 179 | - * @return mixed|string |
|
| 180 | - */ |
|
| 181 | - public function getCaption() |
|
| 182 | - { |
|
| 183 | - return defined('XOOPS_CAPTCHA_CAPTION') ? constant('XOOPS_CAPTCHA_CAPTION') : ''; |
|
| 184 | - } |
|
| 185 | - |
|
| 186 | - /** |
|
| 187 | - * @return string |
|
| 188 | - */ |
|
| 189 | - public function getMessage() |
|
| 190 | - { |
|
| 191 | - return implode('<br>', $this->message); |
|
| 192 | - } |
|
| 193 | - |
|
| 194 | - /** |
|
| 195 | - * Destory historical stuff |
|
| 196 | - * @param bool $clearSession |
|
| 197 | - * @return bool |
|
| 198 | - */ |
|
| 199 | - public function destroyGarbage($clearSession = false) |
|
| 200 | - { |
|
| 201 | - require_once __DIR__ . '/' . $this->mode . '.php'; |
|
| 202 | - $class = 'XoopsCaptcha' . ucfirst($this->mode); |
|
| 203 | - $captchaHandler = new $class(); |
|
| 204 | - if (method_exists($captchaHandler, 'destroyGarbage')) { |
|
| 205 | - $captchaHandler->loadConfig($this->config); |
|
| 206 | - $captchaHandler->destroyGarbage(); |
|
| 207 | - } |
|
| 208 | - |
|
| 209 | - if ($clearSession) { |
|
| 210 | - $_SESSION['XoopsCaptcha_name'] = null; |
|
| 211 | - $_SESSION['XoopsCaptcha_skipmember'] = null; |
|
| 212 | - $_SESSION['XoopsCaptcha_sessioncode'] = null; |
|
| 213 | - $_SESSION['XoopsCaptcha_maxattempts'] = null; |
|
| 214 | - } |
|
| 215 | - |
|
| 216 | - return true; |
|
| 217 | - } |
|
| 218 | - |
|
| 219 | - /** |
|
| 220 | - * @return mixed|string |
|
| 221 | - */ |
|
| 222 | - public function render() |
|
| 223 | - { |
|
| 224 | - $form = ''; |
|
| 225 | - |
|
| 226 | - if (!$this->active || empty($this->config['name'])) { |
|
| 227 | - return $form; |
|
| 228 | - } |
|
| 229 | - |
|
| 230 | - $_SESSION['XoopsCaptcha_name'] = $this->config['name']; |
|
| 231 | - $_SESSION['XoopsCaptcha_skipmember'] = $this->config['skipmember']; |
|
| 232 | - $maxAttempts = $this->config['maxattempt']; |
|
| 233 | - $_SESSION['XoopsCaptcha_maxattempts'] = $maxAttempts; |
|
| 234 | - /* |
|
| 16 | + public $active = true; |
|
| 17 | + public $mode = 'text'; // potential values: image, text |
|
| 18 | + public $config = array(); |
|
| 19 | + |
|
| 20 | + public $message = array(); // Logging error messages |
|
| 21 | + |
|
| 22 | + /** |
|
| 23 | + * XoopsCaptcha constructor. |
|
| 24 | + */ |
|
| 25 | + public function __construct() |
|
| 26 | + { |
|
| 27 | + // Loading default preferences |
|
| 28 | + $this->config = @include __DIR__ . '/config.php'; |
|
| 29 | + |
|
| 30 | + $this->setMode($this->config['mode']); |
|
| 31 | + } |
|
| 32 | + |
|
| 33 | + /** |
|
| 34 | + * @return XoopsCaptcha |
|
| 35 | + */ |
|
| 36 | + public static function getInstance() |
|
| 37 | + { |
|
| 38 | + static $instance; |
|
| 39 | + if (null === $instance) { |
|
| 40 | + $instance = new static(); |
|
| 41 | + } |
|
| 42 | + |
|
| 43 | + return $instance; |
|
| 44 | + } |
|
| 45 | + |
|
| 46 | + /** |
|
| 47 | + * @param $name |
|
| 48 | + * @param $val |
|
| 49 | + * @return bool |
|
| 50 | + */ |
|
| 51 | + public function setConfig($name, $val) |
|
| 52 | + { |
|
| 53 | + if ($name === 'mode') { |
|
| 54 | + $this->setMode($val); |
|
| 55 | + } elseif (isset($this->$name)) { |
|
| 56 | + $this->$name = $val; |
|
| 57 | + } else { |
|
| 58 | + $this->config[$name] = $val; |
|
| 59 | + } |
|
| 60 | + |
|
| 61 | + return true; |
|
| 62 | + } |
|
| 63 | + |
|
| 64 | + /** |
|
| 65 | + * Set CAPTCHA mode |
|
| 66 | + * |
|
| 67 | + * For future possible modes, right now force to use text or image |
|
| 68 | + * |
|
| 69 | + * @param string $mode if no mode is set, just verify current mode |
|
| 70 | + */ |
|
| 71 | + public function setMode($mode = null) |
|
| 72 | + { |
|
| 73 | + if (!empty($mode) && in_array($mode, array('text', 'image'))) { |
|
| 74 | + $this->mode = $mode; |
|
| 75 | + |
|
| 76 | + if ($this->mode !== 'image') { |
|
| 77 | + return; |
|
| 78 | + } |
|
| 79 | + } |
|
| 80 | + |
|
| 81 | + // Disable image mode |
|
| 82 | + if (!extension_loaded('gd')) { |
|
| 83 | + $this->mode = 'text'; |
|
| 84 | + } else { |
|
| 85 | + $required_functions = array( |
|
| 86 | + 'imagecreatetruecolor', |
|
| 87 | + 'imagecolorallocate', |
|
| 88 | + 'imagefilledrectangle', |
|
| 89 | + 'imagejpeg', |
|
| 90 | + 'imagedestroy', |
|
| 91 | + 'imageftbbox' |
|
| 92 | + ); |
|
| 93 | + foreach ($required_functions as $func) { |
|
| 94 | + if (!function_exists($func)) { |
|
| 95 | + $this->mode = 'text'; |
|
| 96 | + break; |
|
| 97 | + } |
|
| 98 | + } |
|
| 99 | + } |
|
| 100 | + } |
|
| 101 | + |
|
| 102 | + /** |
|
| 103 | + * Initializing the CAPTCHA class |
|
| 104 | + * @param string $name |
|
| 105 | + * @param null $skipmember |
|
| 106 | + * @param null $num_chars |
|
| 107 | + * @param null $fontsize_min |
|
| 108 | + * @param null $fontsize_max |
|
| 109 | + * @param null $background_type |
|
| 110 | + * @param null $background_num |
|
| 111 | + */ |
|
| 112 | + public function init( |
|
| 113 | + $name = 'xoopscaptcha', |
|
| 114 | + $skipmember = null, |
|
| 115 | + $num_chars = null, |
|
| 116 | + $fontsize_min = null, |
|
| 117 | + $fontsize_max = null, |
|
| 118 | + $background_type = null, |
|
| 119 | + $background_num = null |
|
| 120 | + ) { |
|
| 121 | + // Loading RUN-TIME settings |
|
| 122 | + foreach (array_keys($this->config) as $key) { |
|
| 123 | + if (isset(${$key}) && ${$key} !== null) { |
|
| 124 | + $this->config[$key] = ${$key}; |
|
| 125 | + } |
|
| 126 | + } |
|
| 127 | + $this->config['name'] = $name; |
|
| 128 | + |
|
| 129 | + // Skip CAPTCHA for member if set |
|
| 130 | + if ($this->config['skipmember'] && is_object($GLOBALS['xoopsUser'])) { |
|
| 131 | + $this->active = false; |
|
| 132 | + } |
|
| 133 | + } |
|
| 134 | + |
|
| 135 | + /** |
|
| 136 | + * Verify user submission |
|
| 137 | + * @param null $skipMember |
|
| 138 | + * @return bool |
|
| 139 | + */ |
|
| 140 | + public function verify($skipMember = null) |
|
| 141 | + { |
|
| 142 | + $sessionName = @$_SESSION['XoopsCaptcha_name']; |
|
| 143 | + $skipMember = ($skipMember === null) ? @$_SESSION['XoopsCaptcha_skipmember'] : $skipMember; |
|
| 144 | + $maxAttempts = (int)(@$_SESSION['XoopsCaptcha_maxattempts']); |
|
| 145 | + |
|
| 146 | + $is_valid = false; |
|
| 147 | + |
|
| 148 | + // Skip CAPTCHA for member if set |
|
| 149 | + if (is_object($GLOBALS['xoopsUser']) && !empty($skipMember)) { |
|
| 150 | + $is_valid = true; |
|
| 151 | + // Kill too many attempts |
|
| 152 | + } elseif (!empty($maxAttempts) && $_SESSION['XoopsCaptcha_attempt_' . $sessionName] > $maxAttempts) { |
|
| 153 | + $this->message[] = XOOPS_CAPTCHA_TOOMANYATTEMPTS; |
|
| 154 | + |
|
| 155 | + // Verify the code |
|
| 156 | + } elseif (!empty($_SESSION['XoopsCaptcha_sessioncode'])) { |
|
| 157 | + $func = $this->config['casesensitive'] ? 'strcmp' : 'strcasecmp'; |
|
| 158 | + $is_valid = !$func(trim(@$_POST[$sessionName]), $_SESSION['XoopsCaptcha_sessioncode']); |
|
| 159 | + } |
|
| 160 | + |
|
| 161 | + if (!empty($maxAttempts)) { |
|
| 162 | + if (!$is_valid) { |
|
| 163 | + // Increase the attempt records on failure |
|
| 164 | + $_SESSION['XoopsCaptcha_attempt_' . $sessionName]++; |
|
| 165 | + // Log the error message |
|
| 166 | + $this->message[] = XOOPS_CAPTCHA_INVALID_CODE; |
|
| 167 | + } else { |
|
| 168 | + |
|
| 169 | + // reset attempt records on success |
|
| 170 | + $_SESSION['XoopsCaptcha_attempt_' . $sessionName] = null; |
|
| 171 | + } |
|
| 172 | + } |
|
| 173 | + $this->destroyGarbage(true); |
|
| 174 | + |
|
| 175 | + return $is_valid; |
|
| 176 | + } |
|
| 177 | + |
|
| 178 | + /** |
|
| 179 | + * @return mixed|string |
|
| 180 | + */ |
|
| 181 | + public function getCaption() |
|
| 182 | + { |
|
| 183 | + return defined('XOOPS_CAPTCHA_CAPTION') ? constant('XOOPS_CAPTCHA_CAPTION') : ''; |
|
| 184 | + } |
|
| 185 | + |
|
| 186 | + /** |
|
| 187 | + * @return string |
|
| 188 | + */ |
|
| 189 | + public function getMessage() |
|
| 190 | + { |
|
| 191 | + return implode('<br>', $this->message); |
|
| 192 | + } |
|
| 193 | + |
|
| 194 | + /** |
|
| 195 | + * Destory historical stuff |
|
| 196 | + * @param bool $clearSession |
|
| 197 | + * @return bool |
|
| 198 | + */ |
|
| 199 | + public function destroyGarbage($clearSession = false) |
|
| 200 | + { |
|
| 201 | + require_once __DIR__ . '/' . $this->mode . '.php'; |
|
| 202 | + $class = 'XoopsCaptcha' . ucfirst($this->mode); |
|
| 203 | + $captchaHandler = new $class(); |
|
| 204 | + if (method_exists($captchaHandler, 'destroyGarbage')) { |
|
| 205 | + $captchaHandler->loadConfig($this->config); |
|
| 206 | + $captchaHandler->destroyGarbage(); |
|
| 207 | + } |
|
| 208 | + |
|
| 209 | + if ($clearSession) { |
|
| 210 | + $_SESSION['XoopsCaptcha_name'] = null; |
|
| 211 | + $_SESSION['XoopsCaptcha_skipmember'] = null; |
|
| 212 | + $_SESSION['XoopsCaptcha_sessioncode'] = null; |
|
| 213 | + $_SESSION['XoopsCaptcha_maxattempts'] = null; |
|
| 214 | + } |
|
| 215 | + |
|
| 216 | + return true; |
|
| 217 | + } |
|
| 218 | + |
|
| 219 | + /** |
|
| 220 | + * @return mixed|string |
|
| 221 | + */ |
|
| 222 | + public function render() |
|
| 223 | + { |
|
| 224 | + $form = ''; |
|
| 225 | + |
|
| 226 | + if (!$this->active || empty($this->config['name'])) { |
|
| 227 | + return $form; |
|
| 228 | + } |
|
| 229 | + |
|
| 230 | + $_SESSION['XoopsCaptcha_name'] = $this->config['name']; |
|
| 231 | + $_SESSION['XoopsCaptcha_skipmember'] = $this->config['skipmember']; |
|
| 232 | + $maxAttempts = $this->config['maxattempt']; |
|
| 233 | + $_SESSION['XoopsCaptcha_maxattempts'] = $maxAttempts; |
|
| 234 | + /* |
|
| 235 | 235 | if (!empty($maxAttempts)) { |
| 236 | 236 | $_SESSION['XoopsCaptcha_maxattempts_'.$_SESSION['XoopsCaptcha_name']] = $maxAttempts; |
| 237 | 237 | } |
| 238 | 238 | */ |
| 239 | 239 | |
| 240 | - // Fail on too many attempts |
|
| 241 | - if (!empty($maxAttempts) && @$_SESSION['XoopsCaptcha_attempt_' . $this->config['name']] > $maxAttempts) { |
|
| 242 | - $form = XOOPS_CAPTCHA_TOOMANYATTEMPTS; |
|
| 243 | - // Load the form element |
|
| 244 | - } else { |
|
| 245 | - $form = $this->loadForm(); |
|
| 246 | - } |
|
| 247 | - |
|
| 248 | - return $form; |
|
| 249 | - } |
|
| 250 | - |
|
| 251 | - /** |
|
| 252 | - * @return mixed |
|
| 253 | - */ |
|
| 254 | - public function loadForm() |
|
| 255 | - { |
|
| 256 | - require_once __DIR__ . '/' . $this->mode . '.php'; |
|
| 257 | - $class = 'XoopsCaptcha' . ucfirst($this->mode); |
|
| 258 | - $captchaHandler = new $class(); |
|
| 259 | - $captchaHandler->loadConfig($this->config); |
|
| 260 | - |
|
| 261 | - $form = $captchaHandler->render(); |
|
| 262 | - |
|
| 263 | - return $form; |
|
| 264 | - } |
|
| 240 | + // Fail on too many attempts |
|
| 241 | + if (!empty($maxAttempts) && @$_SESSION['XoopsCaptcha_attempt_' . $this->config['name']] > $maxAttempts) { |
|
| 242 | + $form = XOOPS_CAPTCHA_TOOMANYATTEMPTS; |
|
| 243 | + // Load the form element |
|
| 244 | + } else { |
|
| 245 | + $form = $this->loadForm(); |
|
| 246 | + } |
|
| 247 | + |
|
| 248 | + return $form; |
|
| 249 | + } |
|
| 250 | + |
|
| 251 | + /** |
|
| 252 | + * @return mixed |
|
| 253 | + */ |
|
| 254 | + public function loadForm() |
|
| 255 | + { |
|
| 256 | + require_once __DIR__ . '/' . $this->mode . '.php'; |
|
| 257 | + $class = 'XoopsCaptcha' . ucfirst($this->mode); |
|
| 258 | + $captchaHandler = new $class(); |
|
| 259 | + $captchaHandler->loadConfig($this->config); |
|
| 260 | + |
|
| 261 | + $form = $captchaHandler->render(); |
|
| 262 | + |
|
| 263 | + return $form; |
|
| 264 | + } |
|
| 265 | 265 | } |
@@ -14,15 +14,15 @@ discard block |
||
| 14 | 14 | */ |
| 15 | 15 | function xoops_debug_dumbQuery($msg = '') |
| 16 | 16 | { |
| 17 | - global $xoopsDB; |
|
| 18 | - $xoopsDB->query('SELECT * ' . $msg . ' FROM dudewhereismycar2'); |
|
| 17 | + global $xoopsDB; |
|
| 18 | + $xoopsDB->query('SELECT * ' . $msg . ' FROM dudewhereismycar2'); |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | function xoops_debug_initiateQueryCount() |
| 22 | 22 | { |
| 23 | - global $smartfactory_query_count_activated, $smartfactory_query_count; |
|
| 24 | - $smartfactory_query_count_activated = true; |
|
| 25 | - $smartfactory_query_count = 0; |
|
| 23 | + global $smartfactory_query_count_activated, $smartfactory_query_count; |
|
| 24 | + $smartfactory_query_count_activated = true; |
|
| 25 | + $smartfactory_query_count = 0; |
|
| 26 | 26 | } |
| 27 | 27 | |
| 28 | 28 | /** |
@@ -30,9 +30,9 @@ discard block |
||
| 30 | 30 | */ |
| 31 | 31 | function xoops_debug_getQueryCount($msg = '') |
| 32 | 32 | { |
| 33 | - global $smartfactory_query_count; |
|
| 33 | + global $smartfactory_query_count; |
|
| 34 | 34 | |
| 35 | - return xoops_debug("xoops debug Query count ($msg): $smartfactory_query_count"); |
|
| 35 | + return xoops_debug("xoops debug Query count ($msg): $smartfactory_query_count"); |
|
| 36 | 36 | } |
| 37 | 37 | |
| 38 | 38 | /** |
@@ -41,10 +41,10 @@ discard block |
||
| 41 | 41 | */ |
| 42 | 42 | function xoops_debug($msg, $exit = false) |
| 43 | 43 | { |
| 44 | - echo "<div style='padding: 5px; color: red; font-weight: bold;'>debug:: $msg</div>"; |
|
| 45 | - if ($exit) { |
|
| 46 | - die(); |
|
| 47 | - } |
|
| 44 | + echo "<div style='padding: 5px; color: red; font-weight: bold;'>debug:: $msg</div>"; |
|
| 45 | + if ($exit) { |
|
| 46 | + die(); |
|
| 47 | + } |
|
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | /** |
@@ -52,7 +52,7 @@ discard block |
||
| 52 | 52 | */ |
| 53 | 53 | function xoops_comment($msg) |
| 54 | 54 | { |
| 55 | - echo "<div style='padding: 5px; color: green; font-weight: bold;'>=> $msg</div>"; |
|
| 55 | + echo "<div style='padding: 5px; color: green; font-weight: bold;'>=> $msg</div>"; |
|
| 56 | 56 | } |
| 57 | 57 | |
| 58 | 58 | /** |
@@ -60,10 +60,10 @@ discard block |
||
| 60 | 60 | */ |
| 61 | 61 | function xoops_debug_vardump($var) |
| 62 | 62 | { |
| 63 | - if (class_exists('MyTextSanitizer')) { |
|
| 64 | - $myts = MyTextSanitizer::getInstance(); |
|
| 65 | - xoops_debug($myts->displayTarea(var_export($var, true))); |
|
| 66 | - } else { |
|
| 67 | - xoops_debug(var_export($var, true)); |
|
| 68 | - } |
|
| 63 | + if (class_exists('MyTextSanitizer')) { |
|
| 64 | + $myts = MyTextSanitizer::getInstance(); |
|
| 65 | + xoops_debug($myts->displayTarea(var_export($var, true))); |
|
| 66 | + } else { |
|
| 67 | + xoops_debug(var_export($var, true)); |
|
| 68 | + } |
|
| 69 | 69 | } |
@@ -15,7 +15,7 @@ |
||
| 15 | 15 | function xoops_debug_dumbQuery($msg = '') |
| 16 | 16 | { |
| 17 | 17 | global $xoopsDB; |
| 18 | - $xoopsDB->query('SELECT * ' . $msg . ' FROM dudewhereismycar2'); |
|
| 18 | + $xoopsDB->query('SELECT * '.$msg.' FROM dudewhereismycar2'); |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | function xoops_debug_initiateQueryCount() |