DB_PREPEND.'phpwcms_bad_behavior', 'display_stats' => true, 'strict' => false, 'verbose' => false, 'logging' => true ); // Bad Behavior callback functions. // Return current time in the format preferred by your database. function bb2_db_date() { return gmdate('Y-m-d H:i:s'); // Example is MySQL format } // Return affected rows from most recent query. function bb2_db_affected_rows() { return false; } // Escape a string for database usage function bb2_db_escape($string) { // return mysql_real_escape_string($string); return aporeplace($string); // No-op when database not in use. } // Return the number of rows in a particular query. function bb2_db_num_rows($result) { if ($result !== FALSE) return count($result); return 0; } // Run a query and return the results, if any. // Should return FALSE if an error occurred. // Bad Behavior will use the return value here in other callbacks. function bb2_db_query($query) { $result = @mysql_query($query, $GLOBALS['db']); if($result === false) { return false; } elseif($result === true) { return true; } else { $query_result = array(); while($row = mysql_fetch_assoc($result)) { $query_result[] = $row; } mysql_free_result($result); return $query_result; } return false; } // Return all rows in a particular query. // Should contain an array of all rows generated by calling mysql_fetch_assoc() // or equivalent and appending the result of each call to an array. function bb2_db_rows($result) { return $result; } // Return emergency contact email address. function bb2_email() { return $GLOBALS['phpwcms']['admin_email']; } // retrieve settings from database // Settings are hard-coded for non-database use function bb2_read_settings() { if(isset($GLOBALS['phpwcms']['bad_behavior_settings']) && is_array($GLOBALS['phpwcms']['bad_behavior_settings'])) { $settings = $GLOBALS['phpwcms']['bad_behavior_settings']; } else { $settings = array(); } $bb2_settings_defaults = array( 'log_table' => DB_PREPEND.'phpwcms_bad_behavior', 'display_stats' => true, 'strict' => false, 'verbose' => false, 'db_installed' => true, 'logging' => true ); return array_merge($bb2_settings_defaults, $settings); } // write settings to database function bb2_write_settings($settings) { return false; } // installation function bb2_install() { $settings = bb2_read_settings(); if(empty($settings['db_installed'])) { bb2_db_query(bb2_table_structure($settings['log_table'])); } } // Screener // Insert this into the section of your HTML through a template call // or whatever is appropriate. This is optional we'll fall back to cookies // if you don't use it. function bb2_insert_head() { global $bb2_javascript; //echo $bb2_javascript; $GLOBALS['block']['custom_htmlhead']['bad_behavior'] = ' '.$bb2_javascript; } // Display stats? This is optional. function bb2_insert_stats($force = false) { $settings = bb2_read_settings(); if ($force || $settings['display_stats']) { $blocked = bb2_db_query("SELECT COUNT(*) FROM " . $settings['log_table'] . " WHERE `key` NOT LIKE '00000000'"); if ($blocked !== FALSE) { echo sprintf('

%1$s %2$s %3$s %4$s

', __('Bad Behavior'), __('has blocked'), $blocked[0]["COUNT(*)"], __('access attempts in the last 7 days.')); } } } // Return the top-level relative path of wherever we are (for cookies) // You should provide in $url the top-level URL for your site. function bb2_relative_path() { //$url = parse_url(get_bloginfo('url')); //return $url['path'] . '/'; return PHPWCMS_URL; } // Calls inward to Bad Behavor itself. require_once(BB2_CWD . '/bad-behavior/version.inc.php'); require_once(BB2_CWD . '/bad-behavior/core.inc.php'); //bb2_install(); // FIXME: see above /* if(VISIBLE_MODE === 2) { require_once(BB2_CWD . '/bad-behavior/admin.inc.php'); } */ bb2_start(bb2_read_settings()); ?>