? php53.patch
Index: webpurify.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webpurify/webpurify.module,v
retrieving revision 1.4
diff -u -r1.4 webpurify.module
--- webpurify.module 25 Feb 2009 02:48:04 -0000 1.4
+++ webpurify.module 20 Dec 2009 13:24:59 -0000
@@ -39,7 +39,7 @@
/**
* Implementation of hook_menu()
*/
-function webpurify_menu() {
+function webpurify_menu() {
$items = array();
$items['admin/settings/webpurify'] = array(
@@ -65,14 +65,14 @@
*/
function webpurify_settings_form() {
$form = array();
-
+
if (
(variable_get('webpurify_node_body_mode', WEBPURIFY_MODE_OFF) == WEBPURIFY_MODE_REWRITE) ||
(variable_get('webpurify_comment_body_mode', WEBPURIFY_MODE_OFF) == WEBPURIFY_MODE_REWRITE)
) {
drupal_set_message(t('WARNING: You have configured rewrite mode on at least one context type. You MUST make sure to enable the WebPurify input filter for content to be filtered using WebPurify.'), 'warning', FALSE);
};
-
+
$form['keys'] = array(
'#type' => 'fieldset',
'#title' => t('API Keys'),
@@ -103,7 +103,7 @@
'#required' => TRUE,
'#default_value' => variable_get('webpurify_filter_symbol', WEBPURIFY_DEFAULT_FILTER_SYMBOL),
);
-
+
$form['nodes'] = array(
'#type' => 'fieldset',
'#title' => t('Nodes'),
@@ -175,7 +175,7 @@
'#default_value' => variable_get('webpurify_node_view_fail_message', t(WEBPURIFY_NODE_VIEW_FAIL_MESSAGE)),
'#description' => t('This is the text that will be displayed if node viewing will be blocked during an API failure'),
);
-
+
if (module_exists('comment')) {
$form['comments'] = array(
'#type' => 'fieldset',
@@ -251,7 +251,7 @@
);
*/
}
-
+
return system_settings_form($form);
}
@@ -272,21 +272,21 @@
function webpurify_test() {
$output = '';
-
+
$output .= "check('fuck shit cock') = " . print_r(webpurify_api_check('fuck shit cock'), TRUE) . "
\n";
$output .= "check('This is a test') = " . print_r(webpurify_api_check('This is a test'), TRUE) . "
\n";
-
+
$output .= "checkcount('fuck shit cock') = " . print_r(webpurify_api_checkcount('fuck shit cock'), TRUE) . "
\n";
$output .= "checkcount('This is a test') = " . print_r(webpurify_api_checkcount('This is a test'), TRUE) . "
\n";
-
+
$output .= "replace('fuck shit cock') = " . print_r(webpurify_api_replace('fuck shit cock', WEBPURIFY_DEFAULT_FILTER_SYMBOL), TRUE) . "
\n";
$output .= "replace('This is a test') = " . print_r(webpurify_api_replace('This is a test', WEBPURIFY_DEFAULT_FILTER_SYMBOL), TRUE) . "
\n";
-
+
$output .= "return('fuck shit cock') = " . print_r(webpurify_api_return('fuck shit cock', WEBPURIFY_DEFAULT_FILTER_SYMBOL), TRUE) . "
\n";
$output .= "return('This is a test') = " . print_r(webpurify_api_return('This is a test', WEBPURIFY_DEFAULT_FILTER_SYMBOL), TRUE) . "
\n";
-
+
$output .= webpurify_get_error();
-
+
return $output;
}
@@ -327,7 +327,7 @@
if (empty($symbol)) {
$symbol = variable_get('webpurify_filter_symbol', WEBPURIFY_DEFAULT_FILTER_SYMBOL);
}
-
+
// try replacement
$replaced_text = webpurify_api_replace($text, $symbol);
if ($replaced_text === FALSE) {
@@ -341,7 +341,7 @@
return $replaced_text;
}
}
-
+
return $text;
}
@@ -365,13 +365,13 @@
*
* @param &$node
* editable node object
- *
+ *
* @param $op
* string of what process we're at
- *
+ *
* @param $teaser
* boolean if showing teaser
- *
+ *
* @param $page
* boolean if on full view page of a node
*
@@ -386,7 +386,7 @@
if (webpurify_get_node_body_mode() == WEBPURIFY_MODE_BLOCK) {
_webpurify_nodeapi_validate_body_block($node, $op, $a3, $a4);
}
-
+
// are we in rewrite mode
if (webpurify_get_node_title_mode() == WEBPURIFY_MODE_REWRITE) {
_webpurify_nodeapi_validate_title_rewrite($node, $op, $a3, $a4);
@@ -420,7 +420,7 @@
function _webpurify_nodeapi_validate_title_block(&$node, $op, $a3 = NULL, $a4 = NULL) {
// check for expletives
$title_expletives = webpurify_api_return($a3['title']['#value']);
-
+
// handle a failure of the API properly
if ($title_expletives === FALSE) {
watchdog(WEBPURIFY_WATCHDOG_TYPE, __FUNCTION__ .': '. __LINE__ .' -- '. webpurify_get_error(), array(), WATCHDOG_ERROR);
@@ -428,10 +428,10 @@
form_set_error('webpurify', variable_get('webpurify_node_title_fail_message', t(WEBPURIFY_NODE_TITLE_FAIL_MESSAGE)));
}
}
-
+
$type_info = node_get_types('type', $node);
//drupal_set_message(__FUNCTION__ .': '. __LINE__ .' -- '. print_r($type_info, TRUE));
-
+
// check if we got expletives back
if (is_array($title_expletives) && count($title_expletives)) {
form_set_error('title', t('Your @field cannot be posted since it contains objectionable language (%expletives). Please reword your @field.', array('@field' => $type_info->title_label, '%expletives' => implode(', ', $title_expletives))));
@@ -441,7 +441,7 @@
function _webpurify_nodeapi_validate_body_block(&$node, $op, $a3 = NULL, $a4 = NULL) {
// check for expletives
$body_expletives = webpurify_api_return($a3['body_field']['body']['#value']);
-
+
// handle a failure of the API properly
if ($body_expletives === FALSE) {
watchdog(WEBPURIFY_WATCHDOG_TYPE, __FUNCTION__ .': '. __LINE__ .' -- '. webpurify_get_error(), array(), WATCHDOG_ERROR);
@@ -449,7 +449,7 @@
form_set_error('webpurify', variable_get('webpurify_node_create_fail_message', t(WEBPURIFY_NODE_CREATE_FAIL_MESSAGE)));
}
}
-
+
$type_info = node_get_types('type', $node);
// check if we got expletives back
@@ -537,7 +537,7 @@
if (webpurify_get_comment_subject_mode() == WEBPURIFY_MODE_BLOCK) {
// get expletives
$subject_expletives = webpurify_api_return($a1['subject']);
-
+
// handle a failure of the API properly
if ($subject_expletives === FALSE) {
watchdog(WEBPURIFY_WATCHDOG_TYPE, __FUNCTION__ .': '. __LINE__ .' -- '. webpurify_get_error(), array(), WATCHDOG_ERROR);
@@ -545,7 +545,7 @@
form_set_error('webpurify', variable_get('webpurify_comment_fail_message', t(WEBPURIFY_COMMENT_CREATE_FAIL_MESSAGE)));
}
}
-
+
// check if we got expletives back
if (is_array($subject_expletives) && count($subject_expletives)) {
form_set_error('subject', t('Your subject cannot be posted since it contains objectionable language (%expletives). Please reword your subject.', array('%expletives' => implode(', ', $subject_expletives))));
@@ -554,7 +554,7 @@
if (webpurify_get_comment_body_mode() == WEBPURIFY_MODE_BLOCK) {
// get expletives
$comment_expletives = webpurify_api_return($a1['comment']);
-
+
// handle a failure of the API properly
if ($comment_expletives === FALSE) {
watchdog(WEBPURIFY_WATCHDOG_TYPE, __FUNCTION__ .': '. __LINE__ .' -- '. webpurify_get_error(), array(), WATCHDOG_ERROR);
@@ -562,13 +562,13 @@
form_set_error('webpurify', variable_get('webpurify_comment_fail_message', t(WEBPURIFY_COMMENT_CREATE_FAIL_MESSAGE)));
}
}
-
+
// check if we got expletives back
if (is_array($comment_expletives) && count($comment_expletives)) {
form_set_error('comment', t('Your comment cannot be posted since it contains objectionable language (%expletives). Please reword your comment.', array('%expletives' => implode(', ', $comment_expletives))));
}
}
-
+
// rewrite mode
if (webpurify_get_comment_subject_mode() == WEBPURIFY_MODE_REWRITE) {
$subject = webpurify_api_replace($a1['subject'], variable_get('webpurify_filter_symbol', WEBPURIFY_DEFAULT_FILTER_SYMBOL));
@@ -601,7 +601,7 @@
//if (variable_get('webpurify_comment_mode', WEBPURIFY_COMMENT_MODE_OFF) == WEBPURIFY_COMMENT_MODE_REWRITE) {
if (!empty($a1) && (webpurify_get_comment_subject_mode() == WEBPURIFY_MODE_REWRITE)) {
$cid = $a1['cid'];
-
+
$subject = webpurify_api_replace($a1['subject'], variable_get('webpurify_filter_symbol', WEBPURIFY_DEFAULT_FILTER_SYMBOL));
if ($subject === FALSE) {
watchdog(WEBPURIFY_WATCHDOG_TYPE, __FUNCTION__ .': '. __LINE__ .' -- '. webpurify_get_error(), array(), WATCHDOG_ERROR);
@@ -620,12 +620,12 @@
*/
function webpurify_api_check($text) {
static $values = array();
-
+
$hash = md5($text);
if (!empty($values[$hash])) {
return $values[$hash];
}
-
+
$result = _webpurify_api_call('webpurify.live.check', array('text'=>$text));
if (isset($result['RSP']['#attributes']['STAT'])) {
@@ -644,7 +644,7 @@
}
}
}
-
+
$GLOBALS['WEBPURIFY_ERROR'] = t("API error: unrecoginzable response");
return FALSE;
}
@@ -654,12 +654,12 @@
*/
function webpurify_api_checkcount($text) {
static $values = array();
-
+
$hash = md5($text);
if (!empty($values[$hash])) {
return $values[$hash];
}
-
+
$result = _webpurify_api_call('webpurify.live.checkcount', array('text'=>$text));
if (isset($result['RSP']['#attributes']['STAT'])) {
@@ -678,7 +678,7 @@
}
}
}
-
+
$GLOBALS['WEBPURIFY_ERROR'] = t("API error: unrecoginzable response");
return FALSE;
}
@@ -688,7 +688,7 @@
*/
function webpurify_api_replace($text, $replacesymbol) {
static $values = array();
-
+
$hash = md5($text . $replacesymbol);
if (!empty($values[$hash])) {
return $values[$hash];
@@ -720,7 +720,7 @@
}
}
}
-
+
$GLOBALS['WEBPURIFY_ERROR'] = t("API error: unrecoginzable response");
return FALSE;
}
@@ -730,7 +730,7 @@
*/
function webpurify_api_return($text) {
static $values = array();
-
+
$hash = md5($text);
if (!empty($values[$hash])) {
return $values[$hash];
@@ -738,7 +738,7 @@
$result = _webpurify_api_call('webpurify.live.return', array('text'=>$text));
$expletives = array();
-
+
if (isset($result['RSP']['#attributes']['STAT'])) {
// was there an error?
if ($result['RSP']['#attributes']['STAT'] == 'ok') {
@@ -773,7 +773,7 @@
}
}
}
-
+
$GLOBALS['WEBPURIFY_ERROR'] = t("API error: unrecoginzable response");
return FALSE;
}
@@ -785,31 +785,31 @@
$url = WEBPURIFY_REST_URL;
$http_method = WEBPURIFY_REST_URL_METHOD;
$headers = array();
-
+
if ($http_method == 'POST') {
$headers['Content-Type'] = 'application/x-www-form-urlencoded';
}
-
+
$raw_params = array(
'api_key' => variable_get('webpurify_developerkey', ''),
'method' => $method,
);
$raw_params = array_merge($raw_params, $params);
-
+
$encoded_params = array();
foreach ($raw_params as $k => $v){
$encoded_params[] = urlencode($k).'='.urlencode($v);
}
-
+
if ($http_method == 'POST') {
$result = drupal_http_request($url, $headers, $http_method, implode('&', $encoded_params));
}
else {
$url = WEBPURIFY_REST_URL."?".implode('&', $encoded_params);
-
+
$result = drupal_http_request($url, $headers, $http_method);
}
-
+
switch ($result->code) {
case 200: // OK
case 304: // Not modified
@@ -830,19 +830,19 @@
$structure = array();
$index = array();
$result = FALSE;
-
+
// The WebPurify API doesn't wrap the text in cdata, so we will try to fix it
if (!preg_match('@\s*@im', '@im', ']]>', $xml);
}
-
+
// did we get any xml?
if ($xml == "") {
$GLOBALS['WEBPURIFY_ERROR'] = t("xml was empty");
return FALSE;
}
-
+
// create the parser object
if (!($parser = xml_parser_create())) {
$GLOBALS['WEBPURIFY_ERROR'] = t("xml_parser_create() failed to return parser");
@@ -850,7 +850,7 @@
}
// try to parse the xml
- if (xml_parse_into_struct($parser, trim($xml), &$structure, &$index) === 0) {
+ if (xml_parse_into_struct($parser, trim($xml), $structure, &$index) === 0) {
$err_code = xml_get_error_code($parser);
$err_string = xml_error_string($err_code);
$GLOBALS['WEBPURIFY_ERROR'] = t("xml_parse_into_struct failed: Code @code - @msg", array('@code'=>$err_code, '@msg'=>$err_string));
@@ -883,7 +883,7 @@
if ($data['attributes']) {
$element['#attributes'] = $data['attributes'];
}
-
+
// see if we need to convert from single element to an array of elements
if (isset($output[$data['tag']]['#tag'])) {
$temp_element = $output[$data['tag']];
@@ -898,7 +898,7 @@
// a single element
else {
$output[$data['tag']] = $element;
- }
+ }
break;
case 'open':
@@ -917,7 +917,7 @@
if ($attributes) {
$element['#attributes'] = $attributes;
}
-
+
// see if we need to convert from single element to an array of elements
if (isset($output[$data['tag']]['#tag'])) {
$temp_element = $output[$data['tag']];
@@ -932,7 +932,7 @@
// a single element
else {
$output[$data['tag']] = $element;
- }
+ }
break;
}
}