turn; this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed]; this.lastScrolled = new Date(); this.scrollInterval = setInterval(this.scroll.bind(this), 10); }, scroll: function() { var current = new Date(); var delta = current - this.lastScrolled; this.lastScrolled = current; if(this.options.scroll == window) { with (this._getWindowScroll(this.options.scroll)) { if (this.scrollSpeed[0] || this.scrollSpeed[1]) { var d = delta / 1000; this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] ); } } } else { this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; } Position.prepare(); Droppables.show(Draggables._lastPointer, this.element); Draggables.notify('onDrag', this); if (this._isScrollChild) { Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer); Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000; Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000; if (Draggables._lastScrollPointer[0] < 0) Draggables._lastScrollPointer[0] = 0; if (Draggables._lastScrollPointer[1] < 0) Draggables._lastScrollPointer[1] = 0; this.draw(Draggables._lastScrollPointer); } if(this.options.change) this.options.change(this); }, _getWindowScroll: function(w) { var T, L, W, H; with (w.document) { if (w.document.documentElement && documentElement.scrollTop) { T = documentElement.scrollTop; L = documentElement.scrollLeft; } else if (w.document.body) { T = body.scrollTop; L = body.scrollLeft; } if (w.innerWidth) { W = w.innerWidth; H = w.innerHeight; } else if (w.document.documentElement && documentElement.clientWidth) { W = documentElement.clientWidth; H = documentElement.clientHeight; } else { W = body.offsetWidth; H = body.offsetHeight } } return { top: T, left: L, width: W, height: H }; } }); Draggable._dragging = { }; /*--------------------------------------------------------------------------*/ var SortableObserver = Class.create({ initialize: function(element, observer) { this.element = $(element); this.observer = observer; this.lastValue = Sortable.serialize(this.element); }, onStart: function() { this.lastValue = Sortable.serialize(this.element); }, onEnd: function() { Sortable.unmark(); if(this.lastValue != Sortable.serialize(this.element)) this.observer(this.element) } }); var Sortable = { SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, sortables: { }, _findRootElement: function(element) { while (element.tagName.toUpperCase() != "BODY") { if(element.id && Sortable.sortables[element.id]) return element; element = element.parentNode; } }, options: function(element) { element = Sortable._findRootElement($(element)); if(!element) return; return Sortable.sortables[element.id]; }, destroy: function(element){ var s = Sortable.options(element); if(s) { Draggables.removeObserver(s.element); s.droppables.each(function(d){ Droppables.remove(d) }); s.draggables.invoke('destroy'); delete Sortable.sortables[s.element.id]; } }, create: function(element) { element = $(element); var options = Object.extend({ element: element, tag: 'li', // assumes li children, override with tag: 'tagname' dropOnEmpty: false, tree: false, treeTag: 'ul', overlap: 'vertical', // one of 'vertical', 'horizontal' constraint: 'vertical', // one of 'vertical', 'horizontal', false containment: element, // also takes array of elements (or id's); or false handle: false, // or a CSS class only: false, delay: 0, hoverclass: null, ghosting: false, quiet: false, scroll: false, scrollSensitivity: 20, scrollSpeed: 15, format: this.SERIALIZE_RULE, // these take arrays of elements or ids and can be // used for better initialization performance elements: false, handles: false, onChange: Prototype.emptyFunction, onUpdate: Prototype.emptyFunction }, arguments[1] || { }); // clear any old sortable with same element this.destroy(element); // build options for the draggables var options_for_draggable = { revert: true, quiet: options.quiet, scroll: options.scroll, scrollSpeed: options.scrollSpeed, scrollSensitivity: options.scrollSensitivity, delay: options.delay, ghosting: options.ghosting, constraint: options.constraint, handle: options.handle }; if(options.starteffect) options_for_draggable.starteffect = options.starteffect; if(options.reverteffect) options_for_draggable.reverteffect = options.reverteffect; else if(options.ghosting) options_for_draggable.reverteffect = function(element) { element.style.top = 0; element.style.left = 0; }; if(options.endeffect) options_for_draggable.endeffect = options.endeffect; if(options.zindex) options_for_draggable.zindex = options.zindex; // build options for the droppables var options_for_droppable = { overlap: options.overlap, containment: options.containment, tree: options.tree, hoverclass: options.hoverclass, onHover: Sortable.onHover } var options_for_tree = { onHover: Sortable.onEmptyHover, overlap: options.overlap, containment: options.containment, hoverclass: options.hoverclass } // fix for gecko engine Element.cleanWhitespace(element); options.draggables = []; options.droppables = []; // drop on empty handling if(options.dropOnEmpty || options.tree) { Droppables.add(element, options_for_tree); options.droppables.push(element); } (options.elements || this.findElements(element, options) || []).each( function(e,i) { var handle = options.handles ? $(options.handles[i]) : (options.handle ? $(e).select('.' + options.handle)[0] : e); options.draggables.push( new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); Droppables.add(e, options_for_droppable); if(options.tree) e.treeNode = element; options.droppables.push(e); }); if(options.tree) { (Sortable.findTreeElements(element, options) || []).each( function(e) { Droppables.add(e, options_for_tree); e.treeNode = element; options.droppables.push(e); }); } // keep reference this.sortables[element.id] = options; // for onupdate Draggables.addObserver(new SortableObserver(element, options.onUpdate)); }, // return all suitable-for-sortable elements in a guaranteed order findElements: function(element, options) { return Element.findChildren( element, options.only, options.tree ? true : false, options.tag); }, findTreeElements: function(element, options) { return Element.findChildren( element, options.only, options.tree ? true : false, options.treeTag); }, onHover: function(element, dropon, overlap) { if(Element.isParent(dropon, element)) return; if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) { return; } else if(overlap>0.5) { Sortable.mark(dropon, 'before'); if(dropon.previousSibling != element) { var oldParentNode = element.parentNode; element.style.visibility = "hidden"; // fix gecko rendering dropon.parentNode.insertBefore(element, dropon); if(dropon.parentNode!=oldParentNode) Sortable.options(oldParentNode).onChange(element); Sortable.options(dropon.parentNode).onChange(element); } } else { Sortable.mark(dropon, 'after'); var nextElement = dropon.nextSibling || null; if(nextElement != element) { var oldParentNode = element.parentNode; element.style.visibility = "hidden"; // fix gecko rendering dropon.parentNode.insertBefore(element, nextElement); if(dropon.parentNode!=oldParentNode) Sortable.options(oldParentNode).onChange(element); Sortable.options(dropon.parentNode).onChange(element); } } }, onEmptyHover: function(element, dropon, overlap) { var oldParentNode = element.parentNode; var droponOptions = Sortable.options(dropon); if(!Element.isParent(dropon, element)) { var index; var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only}); var child = null; if(children) { var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); for (index = 0; index < children.length; index += 1) { if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) { offset -= Element.offsetSize (children[index], droponOptions.overlap); } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { child = index + 1 < children.length ? children[index + 1] : null; break; } else { child = children[index]; break; } } } dropon.insertBefore(element, child); Sortable.options(oldParentNode).onChange(element); droponOptions.onChange(element); } }, unmark: function() { if(Sortable._marker) Sortable._marker.hide(); }, mark: function(dropon, position) { // mark on ghosting only var sortable = Sortable.options(dropon.parentNode); if(sortable && !sortable.ghosting) return; if(!Sortable._marker) { Sortable._marker = ($('dropmarker') || Element.extend(document.createElement('DIV'))). hide().addClassName('dropmarker').setStyle({position:'absolute'}); document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); } var offsets = Position.cumulativeOffset(dropon); Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'}); if(position=='after') if(sortable.overlap == 'horizontal') Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'}); else Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'}); Sortable._marker.show(); }, _tree: function(element, options, parent) { var children = Sortable.findElements(element, options) || []; for (var i = 0; i < children.length; ++i) { var match = children[i].id.match(options.format); ialized original, if is needed. * @return mixed Unserialized data can be any type. */ function maybe_unserialize( $original ) { if ( is_serialized( $original ) ) // don't attempt to unserialize data that wasn't serialized going in if ( false !== $gm = @unserialize( $original ) ) return $gm; return $original; } /** * Check value to find if it was serialized. * * If $data is not an string, then returned value will always be false. * Serialized data is always a string. * * @since 2.0.5 * * @param mixed $data Value to check to see if was serialized. * @return bool False if not serialized and true if it was. */ function is_serialized( $data ) { // if it isn't a string, it isn't serialized if ( !is_string( $data ) ) return false; $data = trim( $data ); if ( 'N;' == $data ) return true; if ( !preg_match( '/^([adObis]):/', $data, $badions ) ) return false; switch ( $badions[1] ) { case 'a' : case 'O' : case 's' : if ( preg_match( "/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data ) ) return true; break; case 'b' : case 'i' : case 'd' : if ( preg_match( "/^{$badions[1]}:[0-9.E-]+;\$/", $data ) ) return true; break; } return false; } /** * Check whether serialized data is of string type. * * @since 2.0.5 * * @param mixed $data Serialized data * @return bool False if not a serialized string, true if it is. */ function is_serialized_string( $data ) { // if it isn't a string, it isn't a serialized string if ( !is_string( $data ) ) return false; $data = trim( $data ); if ( preg_match( '/^s:[0-9]+:.*;$/s', $data ) ) // this should fetch all serialized strings return true; return false; } /** * Retrieve option value based on setting name. * * If the option does not exist or does not have a value, then the return value * will be false. This is useful to check whether you need to install an option * and is commonly used during installation of plugin options and to test * whether upgrading is required. * * You can "short-circuit" the retrieval of the option from the database for * your plugin or core options that aren't protected. You can do so by hooking * into the 'pre_option_$option' with the $option being replaced by the option * name. You should not try to override special options, but you will not be * prevented from doing so. * * There is a second filter called 'option_$option' with the $option being * replaced with the option name. This gives the value as the only parameter. * * If the option was serialized, when the option was added and, or updated, then * it will be unserialized, when it is returned. * * @since 1.5.0 * @package WordPress * @subpackage Option * @uses apply_filters() Calls 'pre_option_$optionname' false to allow * overwriting the option value in a plugin. * @uses apply_filters() Calls 'option_$optionname' with the option name value. * * @param string $setting Name of option to retrieve. Should already be SQL-escaped * @return mixed Value set for the option. */ function get_option( $setting, $default = false ) { global $wpdb; // Allow plugins to short-circuit options. $pre = apply_filters( 'pre_option_' . $setting, false ); if ( false !== $pre ) return $pre; // prevent non-existent options from triggering multiple queries $notoptions = wp_cache_get( 'notoptions', 'options' ); if ( isset( $notoptions[$setting] ) ) return $default; $alloptions = wp_load_alloptions(); if ( isset( $alloptions[$setting] ) ) { $value = $alloptions[$setting]; } else { $value = wp_cache_get( $setting, 'options' ); if ( false === $value ) { if ( defined( 'WP_INSTALLING' ) ) $suppress = $wpdb->suppress_errors(); // expected_slashed ($setting) $row = $wpdb->get_row( "SELECT option_value FROM $wpdb->options WHERE option_name = '$setting' LIMIT 1" ); if ( defined( 'WP_INSTALLING' ) ) $wpdb->suppress_errors($suppress); if ( is_object( $row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values $value = $row->option_value; wp_cache_add( $setting, $value, 'options' ); } else { // option does not exist, so we must cache its non-existence $notoptions[$setting] = true; wp_cache_set( 'notoptions', $notoptions, 'options' ); return $default; } } } // If home is not set use siteurl. if ( 'home' == $setting && '' == $value ) return get_option( 'siteurl' ); if ( in_array( $setting, array('siteurl', 'home', 'category_base', 'tag_base') ) ) $value = untrailingslashit( $value ); return apply_filters( 'option_' . $setting, maybe_unserialize( $value ) ); } /** * Protect WordPress special option from being modified. * * Will die if $option is in protected list. Protected options are 'alloptions' * and 'notoptions' options. * * @since 2.2.0 * @package WordPress * @subpackage Option * * @param string $option Option name. */ function wp_protect_special_option( $option ) { $protected = array( 'alloptions', 'notoptions' ); if ( in_array( $option, $protected ) ) die( sprintf( __( '%s is a protected WP option and may not be modified' ), wp_specialchars( $option ) ) ); } /** * Print option value after sanitizing for forms. * * @uses attribute_escape Sanitizes value. * @since 1.5.0 * @package WordPress * @subpackage Option * * @param string $option Option name. */ function form_option( $option ) { echo attribute_escape (get_option( $option ) ); } /** * Retrieve all autoload options or all options, if no autoloaded ones exist. * * This is different from wp_load_alloptions() in that this function does not * cache its results and will retrieve all options from the database every time * * it is called. * * @since 1.0.0 * @package WordPress * @subpackage Option * @uses apply_filters() Calls 'pre_option_$optionname' hook with option value as parameter. * @uses apply_filters() Calls 'all_options' on options list. * * @return array List of all options. */ function get_alloptions() { global $wpdb; $show = $wpdb->hide_errors(); if ( !$options = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE autoload = 'yes'" ) ) $options = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options" ); $wpdb->show_errors($show); foreach ( (array) $options as $option ) { // "When trying to design a foolproof system, // never underestimate the ingenuity of the fools :)" -- Dougal if ( in_array( $option->option_name, array( 'siteurl', 'home', 'category_base', 'tag_base' ) ) ) $option->option_value = untrailingslashit( $option->option_value ); $value = maybe_unserialize( $option->option_value ); $all_options->{$option->option_name} = apply_filters( 'pre_option_' . $option->option_name, $value ); } return apply_filters( 'all_options', $all_options ); } /** * Loads and caches all autoloaded options, if available or all options. * * This is different from get_alloptions(), in that this function will cache the * options and will return the cached options when called again. * * @since 2.2.0 * @package WordPress * @subpackage Option * * @return array List all options. */ function wp_load_alloptions() { global $wpdb; $alloptions = wp_cache_get( 'alloptions', 'options' ); if ( !$alloptions ) { $suppress = $wpdb->suppress_errors(); if ( !$alloptions_db = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE autoload = 'yes'" ) ) $alloptions_db = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options" ); $wpdb->suppress_errors($suppress); $alloptions = array(); foreach ( (array) $alloptions_db as $o ) $alloptions[$o->option_name] = $o->option_value; wp_cache_add( 'alloptions', $alloptions, 'options' ); } return $alloptions; } /** * Update the value of an option that was already added. * * You do not need to serialize values, if the value needs to be serialize, then * it will be serialized before it is inserted into the database. Remember, * resources can not be serialized or added as an option. * * If the option does not exist, then the option will be added with the option * value, but you will not be able to set whether it is autoloaded. If you want * to set whether an option autoloaded, then you need to use the add_option(). * * When the option is updated, then the filter named * 'update_option_$option_name', with the $option_name as the $option_name * parameter value, will be called. The hook should accept two parameters, the * first is the old parameter and the second is the new parameter. * * @since 1.0.0 * @package WordPress * @subpackage Option * * @param string $option_name Option name. Expected to not be SQL-escaped * @param mixed $newvalue Option value. * @return bool False if value was not updated and true if value was updated. */ function update_option( $option_name, $newvalue ) { global $wpdb; wp_protect_special_option( $option_name ); $safe_option_name = $wpdb->escape( $option_name ); $newvalue = sanitize_option( $option_name, $newvalue ); $oldvalue = get_option( $safe_option_name ); $newvalue = apply_filters( 'pre_update_option_' . $option_name, $newvalue, $oldvalue ); // If the new and old values are the same, no need to update. if ( $newvalue === $oldvalue ) return false; if ( false === $oldvalue ) { add_option( $option_name, $newvalue ); return true; } $notoptions = wp_cache_get( 'notoptions', 'options' ); if ( is_array( $notoptions ) && isset( $notoptions[$option_name] ) ) { unset( $notoptions[$option_name] ); wp_cache_set( 'notoptions', $notoptions, 'options' ); } $_newvalue = $newvalue; $newvalue = maybe_serialize( $newvalue ); $alloptions = wp_load_alloptions(); if ( isset( $alloptions[$option_name] ) ) { $alloptions[$option_name] = $newvalue; wp_cache_set( 'alloptions', $alloptions, 'options' ); } else { wp_cache_set( $option_name, $newvalue, 'options' ); } $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->options SET option_value = %s WHERE option_name = %s", $newvalue, $option_name ) ); if ( $wpdb->rows_affected == 1 ) { do_action( "update_option_{$option_name}", $oldvalue, $_newvalue ); return true; } return false; } /** * Add a new option. * * You do not need to serialize values, if the value needs to be serialize, then * it will be serialized before it is inserted into the database. Remember, * resources can not be serialized or added as an option. * * You can create options without values and then add values later. Does not * check whether the option has already been added, but does check that you * aren't adding a protected WordPress option. Care should be taken to not name * options, the same as the ones which are protected and to not add options * that were already added. * * The filter named 'add_option_$optionname', with the $optionname being * replaced with the option's name, will be called. The hook should accept two * parameters, the first is the option name, and the second is the value. * * @package WordPress * @subpackage Option * @since 1.0.0 * @link http://alex.vort-x.net/blog/ Thanks Alex Stapleton * * @param string $name Option name to add. Expects to NOT be SQL escaped. * @param mixed $value Optional. Option value, can be anything. * @param mixed $deprecated Optional. Description. Not used anymore. * @param bool $autoload Optional. Default is enabled. Whether to load the option when WordPress starts up. * @return null returns when finished. */ function add_option( $name, $value = '', $deprecated = '', $autoload = 'yes' ) { global $wpdb; wp_protect_special_option( $name ); $safe_name = $wpdb->escape( $name ); $value = sanitize_option( $name, $value ); // Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query $notoptions = wp_cache_get( 'notoptions', 'options' ); if ( !is_array( $notoptions ) || !isset( $notoptions[$name] ) ) if ( false !== get_option( $safe_name ) ) return; $value = maybe_serialize( $value ); $autoload = ( 'no' === $autoload ) ? 'no' : 'yes'; if ( 'yes' == $autoload ) { $alloptions = wp_load_alloptions(); $alloptions[$name] = $value; wp_cache_set( 'alloptions', $alloptions, 'options' ); } else { wp_cache_set( $name, $value, 'options' ); } // This option exists now $notoptions = wp_cache_get( 'notoptions', 'options' ); // yes, again... we need it to be fresh if ( is_array( $notoptions ) && isset( $notoptions[$name] ) ) { unset( $notoptions[$name] ); wp_cache_set( 'notoptions', $notoptions, 'options' ); } $wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES (%s, %s, %s)", $name, $value, $autoload ) ); do_action( "add_option_{$name}", $name, $value ); return; } /** * Removes option by name and prevents removal of protected WordPress options. * * @package WordPress * @subpackage Option * @since 1.2.0 * * @param string $name Option name to remove. * @return bool True, if succeed. False, if failure. */ function delete_option( $name ) { global $wpdb; wp_protect_special_option( $name ); // Get the ID, if no ID then return // expected_slashed ($name) $option = $wpdb->get_row( "SELECT option_id, autoload FROM $wpdb->options WHERE option_name = '$name'" ); if ( is_null($option) || !$option->option_id ) return false; // expected_slashed ($name) $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name = '$name'" ); if ( 'yes' == $option->autoload ) { $alloptions = wp_load_alloptions(); if ( isset( $alloptions[$name] ) ) { unset( $alloptions[$name] ); wp_cache_set( 'alloptions', $alloptions, 'options' ); } } else { wp_cache_delete( $name, 'options' ); } return true; } /** * Saves and restores user interface settings stored in a cookie. * * Checks if the current user-settings cookie is updated and stores it. When no * cookie exists (different browser used), adds the last saved cookie restoring * the settings. * * @package WordPress * @subpackage Option * @since 2.7.0 */ function wp_user_settings() { if ( ! is_admin() ) return; if ( defined('DOING_AJAX') ) return; if ( ! $user = wp_get_current_user() ) return; $settings = get_user_option( 'user-settings', $user->ID, false ); if ( isset( $_COOKIE['wp-settings-' . $user->ID] ) ) { $cookie = preg_replace( '/[^A-Za-z0-9=&_]/', '', $_COOKIE['wp-settings-' . $user->ID] ); if ( ! empty( $cookie ) && strpos( $cookie, '=' ) ) { if ( $cookie == $settings ) return; $last_time = (int) get_user_option( 'user-settings-time', $user->ID, false ); $saved = isset( $_COOKIE['wp-settings-time-' . $user->ID]) ? preg_replace( '/[^0-9]/', '', $_COOKIE['wp-settings-time-' . $user->ID] ) : 0; if ( $saved > $last_time ) { update_user_option( $user->ID, 'user-settings', $cookie, false ); update_user_option( $user->ID, 'user-settings-time', time() - 5, false ); return; } } } setcookie( 'wp-settings-' . $user->ID, $settings, time() + 31536000, SITECOOKIEPATH ); setcookie( 'wp-settings-time-' . $user->ID, time(), time() + 31536000, SITECOOKIEPATH ); } /** * Retrieve user interface setting value based on setting name. * * @package WordPress * @subpackage Option * @since 2.7.0 * * @param string $name The name of the setting. * @param string $default Optional default value to return when $name is not set. * @return mixed the last saved user setting or the default value/false if it doesn't exist. */ function get_user_setting( $name, $default = false ) { $arr = get_all_user_settings(); return isset($arr[$name]) ? $arr[$name] : $default; } /** * Delete user interface settings. * * Deleting settings would reset them to the defaults. * * @package WordPress * @subpackage Option * @since 2.7.0 * * @param mixed $names The name or array of names of the setting to be deleted. */ function delete_user_setting( $names ) { global $current_user; $arr = get_all_user_settings(); $names = (array) $names; foreach ( $names as $name ) { if ( isset($arr[$name]) ) { unset($arr[$name]); $settings = ''; } } if ( isset($settings) ) { foreach ( $arr as $k => $v ) $settings .= $k . '=' . $v . '&'; $settings = rtrim($settings, '&'); update_user_option( $current_user->ID, 'user-settings', $settings ); setcookie('wp-settings-'.$current_user->ID, $settings, time() + 31536000, SITECOOKIEPATH); } } /** * Retrieve all user interface settings. * * @package WordPress * @subpackage Option * @since 2.7.0 * * @return array the last saved user settings or empty array. */ function get_all_user_settings() { if ( ! $user = wp_get_current_user() ) return array(); if ( isset($_COOKIE['wp-settings-'.$user->ID]) ) { $cookie = preg_replace( '/[^A-Za-z0-9=&_]/', '', $_COOKIE['wp-settings-'.$user->ID] ); if ( $cookie && strpos($cookie, '=') ) { // the '=' cannot be 1st char parse_str($cookie, $arr); return $arr; } } return array(); } /** * Delete the user settings of the current user. * * @package WordPress * @subpackage Option * @since 2.7.0 */ function delete_all_user_settings() { if ( ! $user = wp_get_current_user() ) return; delete_usermeta( $user->ID, 'user-settings' ); setcookie('wp-settings-'.$user->ID, ' ', time() - 31536000, SITECOOKIEPATH); } /** * Serialize data, if needed. * * @since 2.0.5 * * @param mixed $data Data that might be serialized. * @return mixed A scalar data */ function maybe_serialize( $data ) { if ( is_array( $data ) || is_object( $data ) ) return serialize( $data ); if ( is_serialized( $data ) ) return serialize( $data ); return $data; } /** * Strip HTML and put links at the bottom of stripped content. * * Searches for all of the links, strips them out of the content, and places * them at the bottom of the content with numbers. * * @since 0.71 * * @param string $content Content to get links * @return string HTML stripped out of content with links at the bottom. */ function make_url_footnote( $content ) { preg_match_all( '/(.+?)<\/a>/', $content, $matches ); $links_summary = "\n"; for ( $i=0; $i(.+?)<\/title>/is', $content, $matchtitle ) ) { $post_title = $matchtitle[0]; $post_title = preg_replace( '//si', '', $post_title ); $post_title = preg_replace( '/<\/title>/si', '', $post_title ); } else { $post_title = $post_default_title; } return $post_title; } /** * Retrieve the post category or categories from XMLRPC XML. * * If the category element is not found, then the default post category will be * used. The return type then would be what $post_default_category. If the * category is found, then it will always be an array. * * @package WordPress * @subpackage XMLRPC * @since 0.71 * * @global string $post_default_category Default XMLRPC post category. * * @param string $content XMLRPC XML Request content * @return string|array List of categories or category name. */ function xmlrpc_getpostcategory( $content ) { global $post_default_category; if ( preg_match( '/<category>(.+?)<\/category>/is', $content, $matchcat ) ) { $post_category = trim( $matchcat[1], ',' ); $post_category = explode( ',', $post_category ); } else { $post_category = $post_default_category; } return $post_category; } /** * XMLRPC XML content without title and category elements. * * @package WordPress * @subpackage XMLRPC * @since 0.71 * * @param string $content XMLRPC XML Request content * @return string XMLRPC XML Request content without title and category elements. */ function xmlrpc_removepostdata( $content ) { $content = preg_replace( '/<title>(.+?)<\/title>/si', '', $content ); $content = preg_replace( '/<category>(.+?)<\/category>/si', '', $content ); $content = trim( $content ); return $content; } /** * Open the file handle for debugging. * * This function is used for XMLRPC feature, but it is general purpose enough * to be used in anywhere. * * @see fopen() for mode options. * @package WordPress * @subpackage Debug * @since 0.71 * @uses $debug Used for whether debugging is enabled. * * @param string $filename File path to debug file. * @param string $mode Same as fopen() mode parameter. * @return bool|resource File handle. False on failure. */ function debug_fopen( $filename, $mode ) { global $debug; if ( 1 == $debug ) { $fp = fopen( $filename, $mode ); return $fp; } else { return false; } } /** * Write contents to the file used for debugging. * * Technically, this can be used to write to any file handle when the global * $debug is set to 1 or true. * * @package WordPress * @subpackage Debug * @since 0.71 * @uses $debug Used for whether debugging is enabled. * * @param resource $fp File handle for debugging file. * @param string $string Content to write to debug file. */ function debug_fwrite( $fp, $string ) { global $debug; if ( 1 == $debug ) fwrite( $fp, $string ); } /** * Close the debugging file handle. * * Technically, this can be used to close any file handle when the global $debug * is set to 1 or true. * * @package WordPress * @subpackage Debug * @since 0.71 * @uses $debug Used for whether debugging is enabled. * * @param resource $fp Debug File handle. */ function debug_fclose( $fp ) { global $debug; if ( 1 == $debug ) fclose( $fp ); } /** * Check content for video and audio links to add as enclosures. * * Will not add enclosures that have already been added. This is called as * pingbacks and trackbacks. * * @package WordPress * @since 1.5.0 * * @uses $wpdb * * @param string $content Post Content * @param int $post_ID Post ID */ function do_enclose( $content, $post_ID ) { global $wpdb; include_once( ABSPATH . WPINC . '/class-IXR.php' ); $log = debug_fopen( ABSPATH . 'enclosures.log', 'a' ); $post_links = array(); debug_fwrite( $log, 'BEGIN ' . date( 'YmdHis', time() ) . "\n" ); $pung = get_enclosed( $post_ID ); $ltrs = '\w'; $gunk = '/#~:.?+=&%@!\-'; $punc = '.:?\-'; $any = $ltrs . $gunk . $punc; preg_match_all( "{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x", $content, $post_links_temp ); debug_fwrite( $log, 'Post contents:' ); debug_fwrite( $log, $content . "\n" ); foreach ( (array) $post_links_temp[0] as $link_test ) { if ( !in_array( $link_test, $pung ) ) { // If we haven't pung it already $test = parse_url( $link_test ); if ( isset( $test['query'] ) ) $post_links[] = $link_test; elseif ( $test['path'] != '/' && $test['path'] != '' ) $post_links[] = $link_test; } } foreach ( (array) $post_links as $url ) { if ( $url != '' && !$wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = 'enclosure' AND meta_value LIKE (%s)", $post_ID, $url . '%' ) ) ) { if ( $headers = wp_get_http_headers( $url) ) { $len = (int) $headers['content-length']; $type = $wpdb->escape( $headers['content-type'] ); $allowed_types = array( 'video', 'audio' ); if ( in_array( substr( $type, 0, strpos( $type, "/" ) ), $allowed_types ) ) { $meta_value = "$url\n$len\n$type\n"; $wpdb->query( $wpdb->prepare( "INSERT INTO `$wpdb->postmeta` ( `post_id` , `meta_key` , `meta_value` ) VALUES ( %d, 'enclosure' , %s)", $post_ID, $meta_value ) ); } } } } } /** * Perform a HTTP HEAD or GET request. * * If $file_path is a writable filename, this will do a GET request and write * the file to that path. * * @since 2.5.0 * * @param string $url URL to fetch. * @param string|bool $file_path Optional. File path to write request to. * @param bool $deprecated Deprecated. Not used. * @return bool|string False on failure and string of headers if HEAD request. */ function wp_get_http( $url, $file_path = false, $deprecated = false ) { @set_time_limit( 60 ); $options = array(); $options['redirection'] = 5; if ( false == $file_path ) $options['method'] = 'HEAD'; else $options['method'] = 'GET'; $response = wp_remote_request($url, $options); if ( is_wp_error( $response ) ) return false; $headers = wp_remote_retrieve_headers( $response ); $headers['response'] = $response['response']['code']; if ( false == $file_path ) return $headers; // GET request - write it to the supplied filename $out_fp = fopen($file_path, 'w'); if ( !$out_fp ) return $headers; fwrite( $out_fp, $response['body']); fclose($out_fp); return $headers; } /** * Retrieve HTTP Headers from URL. * * @since 1.5.1 * * @param string $url * @param bool $deprecated Not Used. * @return bool|string False on failure, headers on success. */ function wp_get_http_headers( $url, $deprecated = false ) { $response = wp_remote_head( $url ); if ( is_wp_error( $response ) ) return false; return wp_remote_retrieve_headers( $response ); } /** * Whether today is a new day. * * @since 0.71 * @uses $day Today * @uses $previousday Previous day * * @return int 1 when new day, 0 if not a new day. */ function is_new_day() { global $day, $previousday; if ( $day != $previousday ) return 1; else return 0; } /** * Build URL query based on an associative and, or indexed array. * * This is a convenient function for easily building url queries. It sets the * separator to '&' and uses _http_build_query() function. * * @see _http_build_query() Used to build the query * @link http://us2.php.net/manual/en/function.http-build-query.php more on what * http_build_query() does. * * @since 2.3.0 * * @param array $data URL-encode key/value pairs. * @return string URL encoded string */ function build_query( $data ) { return _http_build_query( $data, null, '&', '', false ); } /** * Retrieve a modified URL query string. * * You can rebuild the URL and append a new query variable to the URL query by * using this function. You can also retrieve the full URL with query data. * * Adding a single key & value or an associative array. Setting a key value to * emptystring removes the key. Omitting oldquery_or_uri uses the $_SERVER * value. * * @since 1.5.0 * * @param mixed $param1 Either newkey or an associative_array * @param mixed $param2 Either newvalue or oldquery or uri * @param mixed $param3 Optional. Old query or uri * @return string New URL query string. */ function add_query_arg() { $ret = ''; if ( is_array( func_get_arg(0) ) ) { if ( @func_num_args() < 2 || false === @func_get_arg( 1 ) ) $uri = $_SERVER['REQUEST_URI']; else $uri = @func_get_arg( 1 ); } else { if ( @func_num_args() < 3 || false === @func_get_arg( 2 ) ) $uri = $_SERVER['REQUEST_URI']; else $uri = @func_get_arg( 2 ); } if ( $frag = strstr( $uri, '#' ) ) $uri = substr( $uri, 0, -strlen( $frag ) ); else $frag = ''; if ( preg_match( '|^https?://|i', $uri, $matches ) ) { $protocol = $matches[0]; $uri = substr( $uri, strlen( $protocol ) ); } else { $protocol = ''; } if ( strpos( $uri, '?' ) !== false ) { $parts = explode( '?', $uri, 2 ); if ( 1 == count( $parts ) ) { $base = '?'; $query = $parts[0]; } else { $base = $parts[0] . '?'; $query = $parts[1]; } } elseif ( !empty( $protocol ) || strpos( $uri, '=' ) === false ) { $base = $uri . '?'; $query = ''; } else { $base = ''; $query = $uri; } wp_parse_str( $query, $qs ); $qs = urlencode_deep( $qs ); // this re-URL-encodes things that were already in the query string if ( is_array( func_get_arg( 0 ) ) ) { $kayvees = func_get_arg( 0 ); $qs = array_merge( $qs, $kayvees ); } else { $qs[func_get_arg( 0 )] = func_get_arg( 1 ); } foreach ( (array) $qs as $k => $v ) { if ( $v === false ) unset( $qs[$k] ); } $ret = build_query( $qs ); $ret = trim( $ret, '?' ); $ret = preg_replace( '#=(&|$)#', '$1', $ret ); $ret = $protocol . $base . $ret . $frag; $ret = rtrim( $ret, '?' ); return $ret; } /** * Removes an item or list from the query string. * * @since 1.5.0 * * @param string|array $key Query key or keys to remove. * @param bool $query When false uses the $_SERVER value. * @return string New URL query string. */ function remove_query_arg( $key, $query=false ) { if ( is_array( $key ) ) { // removing multiple keys foreach ( $key as $k ) $query = add_query_arg( $k, false, $query ); return $query; } return add_query_arg( $key, false, $query ); } /** * Walks the array while sanitizing the contents. * * @uses $wpdb Used to sanitize values * @since 0.71 * * @param array $array Array to used to walk while sanitizing contents. * @return array Sanitized $array. */ function add_magic_quotes( $array ) { global $wpdb; foreach ( (array) $array as $k => $v ) { if ( is_array( $v ) ) { $array[$k] = add_magic_quotes( $v ); } else { $array[$k] = $wpdb->escape( $v ); } } return $array; } /** * HTTP request for URI to retrieve content. * * @since 1.5.1 * @uses wp_remote_get() * * @param string $uri URI/URL of web page to retrieve. * @return bool|string HTTP content. False on failure. */ function wp_remote_fopen( $uri ) { $parsed_url = @parse_url( $uri ); if ( !$parsed_url || !is_array( $parsed_url ) ) return false; $options = array(); $options['timeout'] = 10; $response = wp_remote_get( $uri, $options ); if ( is_wp_error( $response ) ) return false; return $response['body']; } /** * Setup the WordPress query. * * @since 2.0.0 * * @param string $query_vars Default WP_Query arguments. */ function wp( $query_vars = '' ) { global $wp, $wp_query, $wp_the_query; $wp->main( $query_vars ); if( !isset($wp_the_query) ) $wp_the_query = $wp_query; } /** * Retrieve the description for the HTTP status. * * @since 2.3.0 * * @param int $code HTTP status code. * @return string Empty string if not found, or description if found. */ function get_status_header_desc( $code ) { global $wp_header_to_desc; $code = absint( $code ); if ( !isset( $wp_header_to_desc ) ) { $wp_header_to_desc = array( 100 => 'Continue', 101 => 'Switching Protocols', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Timeout', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Long', 415 => 'Unsupported Media Type', 416 => 'Requested Range Not Satisfiable', 417 => 'Expectation Failed', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported' ); } if ( isset( $wp_header_to_desc[$code] ) ) return $wp_header_to_desc[$code]; else return ''; } /** * Set HTTP status header. * * @since 2.0.0 * @uses apply_filters() Calls 'status_header' on status header string, HTTP * HTTP code, HTTP code description, and protocol string as separate * parameters. * * @param int $header HTTP status code * @return null Does not return anything. */ function status_header( $header ) { $text = get_status_header_desc( $header ); if ( empty( $text ) ) return false; $protocol = $_SERVER["SERVER_PROTOCOL"]; if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol ) $protocol = 'HTTP/1.0'; $status_header = "$protocol $header $text"; if ( function_exists( 'apply_filters' ) ) $status_header = apply_filters( 'status_header', $status_header, $header, $text, $protocol ); if ( version_compare( phpversion(), '4.3.0', '>=' ) ) return @header( $status_header, true, $header ); else return @header( $status_header ); } /** * Sets the headers to prevent caching for the different browsers. * * Different browsers support different nocache headers, so several headers must * be sent so that all of them get the point that no caching should occur. * * @since 2.0.0 */ function nocache_headers() { // why are these @-silenced when other header calls aren't? @header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' ); @header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); @header( 'Cache-Control: no-cache, must-revalidate, max-age=0' ); @header( 'Pragma: no-cache' ); } /** * Set the headers for caching for 10 days with JavaScript content type. * * @since 2.1.0 */ function cache_javascript_headers() { $expiresOffset = 864000; // 10 days header( "Content-Type: text/javascript; charset=" . get_bloginfo( 'charset' ) ); header( "Vary: Accept-Encoding" ); // Handle proxies header( "Expires: " . gmdate( "D, d M Y H:i:s", time() + $expiresOffset ) . " GMT" ); } /** * Retrieve the number of database queries during the WordPress execution. * * @since 2.0.0 * * @return int Number of database queries */ function get_num_queries() { global $wpdb; return $wpdb->num_queries; } /** * Whether input is yes or no. Must be 'y' to be true. * * @since 1.0.0 * * @param string $yn Character string containing either 'y' or 'n' * @return bool True if yes, false on anything else */ function bool_from_yn( $yn ) { return ( strtolower( $yn ) == 'y' ); } /** * Loads the feed template from the use of an action hook. * * If the feed action does not have a hook, then the function will die with a * message telling the visitor that the feed is not valid. * * It is better to only have one hook for each feed. * * @since 2.1.0 * @uses $wp_query Used to tell if the use a comment feed. * @uses do_action() Calls 'do_feed_$feed' hook, if a hook exists for the feed. */ function do_feed() { global $wp_query; $feed = get_query_var( 'feed' ); // Remove the pad, if present. $feed = preg_replace( '/^_+/', '', $feed ); if ( $feed == '' || $feed == 'feed' ) $feed = get_default_feed(); $hook = 'do_feed_' . $feed; if ( !has_action($hook) ) { $message = sprintf( __( 'ERROR: %s is not a valid feed template' ), wp_specialchars($feed)); wp_die($message); } do_action( $hook, $wp_query->is_comment_feed ); } /** * Load the RDF RSS 0.91 Feed template. * * @since 2.1.0 */ function do_feed_rdf() { load_template( ABSPATH . WPINC . '/feed-rdf.php' ); } /** * Load the RSS 1.0 Feed Template * * @since 2.1.0 */ function do_feed_rss() { load_template( ABSPATH . WPINC . '/feed-rss.php' ); } /** * Load either the RSS2 comment feed or the RSS2 posts feed. * * @since 2.1.0 * * @param bool $for_comments True for the comment feed, false for normal feed. */ function do_feed_rss2( $for_comments ) { if ( $for_comments ) load_template( ABSPATH . WPINC . '/feed-rss2-comments.php' ); else load_template( ABSPATH . WPINC . '/feed-rss2.php' ); } /** * Load either Atom comment feed or Atom posts feed. * * @since 2.1.0 * * @param bool $for_comments True for the comment feed, false for normal feed. */ function do_feed_atom( $for_comments ) { if ($for_comments) load_template( ABSPATH . WPINC . '/feed-atom-comments.php'); else load_template( ABSPATH . WPINC . '/feed-atom.php' ); } /** * Display the robot.txt file content. * * The echo content should be with usage of the permalinks or for creating the * robot.txt file. * * @since 2.1.0 * @uses do_action() Calls 'do_robotstxt' hook for displaying robot.txt rules. */ function do_robots() { header( 'Content-Type: tear args = $A(arguments).slice(1); return this.collect(function(value) { return value[method].apply(value, args); }); }, max: function(iterator) { var result; this.each(function(value, index) { value = (iterator || Prototype.K)(value, index); if (value >= (result || value)) result = value; }); return result; }, min: function(iterator) { var result; this.each(function(value, index) { value = (iterator || Prototype.K)(value, index); if (value <= (result || value)) result = value; }); return result; }, partition: function(iterator) { var trues = [], falses = []; this.each(function(value, index) { ((iterator || Prototype.K)(value, index) ? trues : falses).push(value); }); return [trues, falses]; }, pluck: function(property) { var results = []; this.each(function(value, index) { results.push(value[property]); }); return results; }, reject: function(iteratAccessSubscriberMap.g_itemId IN (39738) AND g2_AccessSubscriberMap.g_accessListId = g2_AccessMap.g_accessListId AND g2_AccessMap.g_userOrGroupId IN (5,4) GROUP BY g2_AccessSubscriberMap.g_itemId   <hr /> 2012-08-16 16:54:28 [] <hr /> (mysqlt): SELECT g2_Derivative.g_id, g2_ChildEntity.g_parentId FROM g2_Derivative, g2_ChildEntity WHERE g2_Derivative.g_id = g2_ChildEntity.g_id AND g2_ChildEntity.g_parentId IN (39738) AND g2_Derivative.g_derivativeType IN (1)   <hr /> 2012-08-16 16:54:28 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/cache/entity/3/9/39739.inc) 2012-08-16 16:54:28 [] <hr /> (mysqlt): SELECT g2_Derivative.g_id, g2_ChildEntity.g_parentId FROM g2_Derivative, g2_ChildEntity WHERE g2_Derivative.g_id = g2_ChildEntity.g_id AND g2_ChildEntity.g_parentId IN (39738) AND g2_Derivative.g_derivativeType IN (2)   <hr /> 2012-08-16 16:54:28 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/cache/entity/3/9/39740.inc) 2012-08-16 16:54:29 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/cache/entity/3/9/39741.inc) 2012-08-16 16:54:29 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/cache/entity/3/9/39742.inc) 2012-08-16 16:54:29 [] <hr /> (mysqlt): SELECT g2_Derivative.g_id, g2_ChildEntity.g_parentId FROM g2_Derivative, g2_ChildEntity WHERE g2_Derivative.g_id = g2_ChildEntity.g_id AND g2_ChildEntity.g_parentId IN (39738) AND g2_Derivative.g_derivativeType IN (3)   <hr /> 2012-08-16 16:54:29 [] getParameter id.anonymousUser for core plugin 2012-08-16 16:54:29 [] <hr /> (mysqlt): SELECT g2_AccessSubscriberMap.g_itemId, BIT_OR(g2_AccessMap.g_permission) FROM g2_AccessMap, g2_AccessSubscriberMap WHERE g2_AccessSubscriberMap.g_itemId IN (39738) AND g2_AccessSubscriberMap.g_accessListId = g2_AccessMap.g_accessListId AND g2_AccessMap.g_userOrGroupId IN (5,4) GROUP BY g2_AccessSubscriberMap.g_itemId   <hr /> 2012-08-16 16:54:29 [] [1345161269] can't guarantee 30 -- extending! 2012-08-16 16:54:29 [] getParameter smarty.compile_check for core plugin 2012-08-16 16:54:29 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/cache/entity/3/9/39500.inc) 2012-08-16 16:54:29 [] getParameter default.theme for core plugin 2012-08-16 16:54:29 [] Loading plugin matrix 2012-08-16 16:54:29 [] Class not defined, trying to include it. 2012-08-16 16:54:29 [] file_exists(/home/demark/www/gallery.demark.org/html/2.3/themes/matrix/theme.inc) 2012-08-16 16:54:29 [] matrix plugin successfully instantiated 2012-08-16 16:54:29 [] Check the version of the matrix plugin 2012-08-16 16:54:29 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/cache/theme/_all/0/0/GalleryPluginHelper_fetchPluginStatus.inc) 2012-08-16 16:54:29 [] The version of the matrix plugin is ok 2012-08-16 16:54:29 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/smarty/templates_c/%%3863161670/matrix) 2012-08-16 16:54:29 [] is_dir(/home/demark/www/gallery.demark.org/data/tony/smarty/templates_c/%%3863161670/matrix) 2012-08-16 16:54:29 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/smarty/templates_c/%%3863161670/matrix) 2012-08-16 16:54:29 [] is_writeable(/home/demark/www/gallery.demark.org/data/tony/smarty/templates_c/%%3863161670/matrix) 2012-08-16 16:54:29 [] file_exists(/home/demark/www/gallery.demark.org/data/tony/smarty/templates_c/%%3863161670/matrix/v_14) 2012-08-16 16:54:29 [<no session id>] file_exists(/home/demark/www/gallery.demark.org/data/tony/cache/module/_all/0/0/GalleryFactoryHelper_loadRegistry.inc) 2012-08-16 16:54:29 [<no session id>] file_exists(/home/demark/www/gallery.demark.org/html/2.3/modules/rewrite/classes/parsers/pathinfo/PathInfoUrlGenerator.class) 2012-08-16 16:54:29 [<no session id>] getParameter shortUrls for rewrite plugin 2012-08-16 16:5þþ  þÿ þ þ  þ ÿ ÿ  þ þÿÿ þ ÿ ÿ  ý  ý   1AB6, þ  þ � ö  ý ÿ  ' +-)#% ý û � þ  þ  *' í ÿ ý � þ  ý $D`iw`9 þ � ú � þ � û ý ø þ � ï � ó ÿ þ û ú � þ � î � ú ü  ü   þ   þ ( '.     þ  ùýÿÿþ# %..)# ýþ�ÿý   üÿûü þÿÿÿ�þýÿÿþ(G7   '$ &þþý  "**&$-& #þÿ#þý%/1*þÿ$   þ!ýþ ý"þÿ �þþ þ ý!%% ý þ  þ � ý ÿ þ�ý  ý"#! $þþþ-%)/#"!(-//(þþ  ýÿ û½ÿ‘ÿ¡ÿ !',)%*($(#ý!þ<"%! "&,&'""%#!%!"!"! "))')-/0)"&)%"#!þ)'-,%!!#!!"þ!"!%#%%#û! $! #,)(*.1'"% !$%'-'&!   #%).,,""#'++!#!#ÿý2!$'("#%))$'$""  !!**þ#$(('%"'$ $þ" """"%'&&("þ;!# "!+0/-& #   &(#%$"þ $""#%(""$"" # þ# $"$//0-(*)$ ! #!!$$"$'"!þk"$!""!#"$#$ %$&"  " &*)+&&%" "!!"&()''(' "%!%! $ %%")%"!! !"!#%%&&%'&(!&$ "o# "" !#$! !!$%'%"##!"!! %&()''&'!# !%"#$(.&%&##('$ #$&##"!$)"%**#%''#!$#!"#ÿ!u.,',+*)%!'(##!"#',!##%!$$(%$)#þý7 þ@þþ9 % # ýÿÿÿ  þÿþþ�þ þÿ' þþþ)!þþ �þþþ ý!þ!'%$&'*!'1/,)'$ þ!! "  ýýÿþþÿ þÿ#þþþo % "  #%#! #! "%"ÿ"2 "  þ ""þ þ&   &""%"!!!"ÿ "   !þ "! þ !""þ !ý()&(-((,*!�þþþÿ þ!"!!!"ýÿÿÿýþþ!##''#$#"þ þ!ý(!$#!!"$"#$$!')$!!"þþÿü!#"ý!&#!ý!#""þþý ÿ!ÿ!þþÿÿÿÿÿ !!þþþ!$##'$#""þ þþþü!"!!û þÿÿ þ$!'!!þü þÿJ#25;99=D=DC99D;9DA;=A=77<DH8=>>82A@8A9891997729>77;005987762þ7 613676159<þ729557=>79;<7339ÿ.'9516507@6292516<@@BB<)"þ""#&"þ #$#ü -,!$6)..682695977-.0)1�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<br /> <b>Fatal error</b>: Call to undefined function require_wp_db() in <b>/home/kdonaldson/blog.coastaldreamsworldwide.com/wp-settings.php</b> on line <b>315</b><br />