3
you've pinpointed the exact cause of the problem. The fix is relatively simple:
in /class/xoopsblock.php,
function getContent() ~line 150 find:
le="color: #000000"><?php } elseif ( $c_type == 'S' ) { $myts =& MyTextSanitizer::getInstance(); return str_replace('{X_SITEURL}', XOOPS_URL.'/', $myts->displayTarea($this->getVar('content', 'N'), 1, 1)); } else { $myts =& MyTextSanitizer::getInstance(); return str_replace('{X_SITEURL}', XOOPS_URL.'/', $myts->displayTarea($this->getVar('content', 'N'), 1, 0)); }
and replace with:
le="color: #000000"><?php } elseif ( $c_type == 'S' ) { $myts =& MyTextSanitizer::getInstance(); return $myts->displayTarea(str_replace('{X_SITEURL}', XOOPS_URL.'/', $this->getVar('content', 'N')), 1, 1); } else { $myts =& MyTextSanitizer::getInstance(); return $myts->displayTarea(str_replace('{X_SITEURL}', XOOPS_URL.'/', $this->getVar('content', 'N')), 1, 0); }
All that does is apply X_SITEURL first, before processing any BBCode