当前位置: 首页>>代码示例>>PHP>>正文


PHP logger::remember方法代码示例

本文整理汇总了PHP中logger::remember方法的典型用法代码示例。如果您正苦于以下问题:PHP logger::remember方法的具体用法?PHP logger::remember怎么用?PHP logger::remember使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在logger的用法示例。


在下文中一共展示了logger::remember方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: validate

 /**
  * validate a link
  *
  * This function submits a HTTP request to the target server to check that the page actually exists
  *
  * @param the link to validate
  * @return A date if Last-Modified has been provided, or TRUE if the link is reachable, FALSE otherwise
  */
 function validate($url)
 {
     global $context;
     // parse this url
     $items = @parse_url($url);
     // assume the link is correct if not http
     if ($items['scheme'] && $items['scheme'] != 'http') {
         return TRUE;
     }
     // no host, assume it's us
     if (!($host = $items['host'])) {
         $host = $context['host_name'];
     }
     // sometime parse_url() adds a '_'
     $host = rtrim($host, '_');
     // no port, assume the standard
     if (!($port = $items['port'])) {
         $port = 80;
     }
     // assume the link is correct when outbound web is not authorized
     if (isset($context['without_outbound_http']) && $context['without_outbound_http'] == 'Y') {
         return TRUE;
     }
     // open a network connection -- wait for up to 10 seconds for the TCP connection
     if (!($handle = Safe::fsockopen($host, $port, $errno, $errstr, 10))) {
         if ($context['with_debug'] == 'Y') {
             logger::remember('links/link.php: ' . $host . ':' . $port . ' is not reachable', $url, 'debug');
         }
         return FALSE;
     }
     // ensure enough execution time
     Safe::set_time_limit(30);
     // build the path
     $path = $items['path'];
     if (!$path) {
         $path = '/';
     }
     // sometime parse_url() adds a '_'
     $path = rtrim($path, '_');
     // include any query
     if ($items['query']) {
         $path .= '?' . $items['query'];
     }
     // send an HTTP request
     fputs($handle, 'HEAD ' . $path . " HTTP/1.0" . CRLF . 'Host: ' . $host . CRLF . "User-Agent: YACS (www.yacs.fr)" . CRLF . "Connection: close" . CRLF . CRLF);
     // we are interested into the header only
     $response = '';
     while (!feof($handle) && strlen($response) < 5242880) {
         // ask for Ethernet-sized chunks
         $chunk = fread($handle, 1500);
         // split on headers boundary
         $here = strpos($chunk, CRLF . CRLF);
         if ($here !== FALSE) {
             $chunk = substr($chunk, 0, $here);
             $response .= $chunk;
             break;
         }
         // gather header information
         $response .= $chunk;
     }
     fclose($handle);
     // split headers into lines
     $lines = explode(CRLF, $response);
     // ensure we have a valid HTTP status line
     if (!preg_match('/^HTTP\\/[0-9\\.]+ 20\\d /', $lines[0])) {
         if ($context['with_debug'] == 'Y') {
             logger::remember('links/link.php: bad status: ' . $lines[0], $url, 'debug');
         }
         return FALSE;
     }
     // scan lines for "Last-Modified" header
     foreach ($lines as $line) {
         if (preg_match('/^Last-Modified: (.*?)/', $line, $matches)) {
             // return the stamp for this link
             return date("Y-m-d H:i:s", strtotime($matches[1]));
         }
     }
     // no date, but the link has been validated anyway
     return TRUE;
 }
开发者ID:rair,项目名称:yacs,代码行数:88,代码来源:link.php

示例2: send_body

/**
 * dynamically generate the page
 *
 * @see skins/index.php
 */
function send_body()
{
    global $context;
    // only associates can proceed
    if (!Surfer::is_associate()) {
        Safe::header('Status: 401 Unauthorized', TRUE, 401);
        echo '<p>' . i18n::s('You are not allowed to perform this operation.') . "</p>\n";
        // forward to the index page
        $menu = array('scripts/' => i18n::s('Server software'));
        echo Skin::build_list($menu, 'menu_bar');
        // ask for confirmation
    } elseif (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'GET') {
        // the splash message
        echo '<p>' . i18n::s('This tool will include most of the running reference PHP scripts. Any syntax error should be spotted easily.') . '</p>';
        // the submit button
        echo '<form method="post" action="' . $context['script_url'] . '" id="main_form"><p>' . Skin::build_submit_button(i18n::s('Yes, I want to validate scripts'), NULL, NULL, 'confirmed') . '</p></form>';
        // set the focus on the button
        Page::insert_script('$("#confirmed").focus();');
        // this may take some time
        echo '<p>' . i18n::s('When you will click on the button the server will be immediately requested to proceed. However, because of the so many things to do on the back-end, you may have to wait for minutes before getting a response displayed. Thank you for your patience.') . '</p>';
        // just do it
    } else {
        // the splash message
        echo '<p>' . i18n::s('All reference scripts are included, to show evidence of possible syntax errors.') . "</p>\n";
        // list running scripts
        echo '<p>' . i18n::s('Listing files...') . BR . "\n";
        // locate script files starting at root
        $scripts = Scripts::list_scripts_at(NULL);
        if (is_array($scripts) && count($scripts)) {
            echo BR . sprintf(i18n::s('%d scripts have been found.'), count($scripts)) . "\n";
            natsort($scripts);
        }
        echo "</p>\n";
        // including scripts
        echo '<p>' . i18n::s('Including reference scripts...') . BR . "\n";
        // strip as much output as possible
        $_SERVER['REQUEST_METHOD'] = 'HEAD';
        // we will finalize this page later on
        global $finalizing_fuse;
        $finalizing_fuse = FALSE;
        // take care of dependancies
        include_once '../behaviors/behavior.php';
        include_once '../services/codec.php';
        include_once '../users/authenticator.php';
        // analyse each script
        $included_files = 0;
        $links_to_be_checked_manually = array();
        foreach ($scripts as $file) {
            // ensure we have enough time to process this script
            Safe::set_time_limit(30);
            // skip run once scripts
            if (strpos($file, 'run_once/')) {
                continue;
            }
            // don't include ourself
            if ($file == 'scripts/validate.php') {
                continue;
            }
            // process only reference scripts
            if (!Scripts::hash($file)) {
                continue;
            }
            // check file content
            if (!($handle = Safe::fopen($file, 'rb'))) {
                echo sprintf(i18n::s('%s has no readable content.'), $file) . BR . "\n";
                continue;
            }
            // look at the beginning of the file
            if (!($header = fread($handle, 16384))) {
                echo sprintf(i18n::s('%s has no readable content.'), $file) . BR . "\n";
                fclose($handle);
                continue;
            }
            fclose($handle);
            // skip scripts that generate content asynchronously
            if (stripos($header, 'send_body') || stripos($header, 'page::content')) {
                $links_to_be_checked_manually[$file] = '(asynchronous)';
                continue;
            }
            // skip scripts that would redefine our skin
            if (stripos($header, 'extends skin_skeleton')) {
                $links_to_be_checked_manually[$file] = '(skin)';
                continue;
            }
            // log script inclusion on development host
            if ($context['with_debug'] == 'Y') {
                logger::remember('scripts/validate.php: inclusion of ' . $file, '', 'debug');
            }
            // include the script and display any error
            $included_files += 1;
            $validate_stamp = time();
            echo sprintf(i18n::s('inclusion of %s'), $file) . "\n";
            Safe::chdir($context['path_to_root'] . dirname($file));
            include_once $context['path_to_root'] . $file;
            $duration = time() - $validate_stamp;
//.........这里部分代码省略.........
开发者ID:rair,项目名称:yacs,代码行数:101,代码来源:validate.php

示例3: touch

 /**
  * remember the last action for this category
  *
  * @param string the description of the last action
  * @param string the id of the item related to this update
  * @param boolean TRUE to not change the edit date of this anchor, default is FALSE
  *
  * @see shared/anchor.php
  */
 function touch($action, $origin = NULL, $silently = FALSE)
 {
     global $context;
     // don't go further on import
     if (preg_match('/import$/i', $action)) {
         return;
     }
     // no category bound
     if (!isset($this->item['id'])) {
         return;
     }
     // sanity check
     if (!$origin) {
         logger::remember('categories/category.php: unexpected NULL origin at touch()');
         return;
     }
     // components of the query
     $query = array();
     // append a reference to a new image to the description
     if ($action == 'image:create') {
         if (!Codes::check_embedded($this->item['description'], 'image', $origin)) {
             // the overlay may prevent embedding
             if (is_object($this->overlay) && !$this->overlay->should_embed_files()) {
             } else {
                 // list has already started
                 if (preg_match('/\\[image=[^\\]]+?\\]\\s*$/', $this->item['description'])) {
                     $query[] = "description = '" . SQL::escape($this->item['description'] . ' [image=' . $origin . ']') . "'";
                 } else {
                     $query[] = "description = '" . SQL::escape($this->item['description'] . "\n\n" . '[image=' . $origin . ']') . "'";
                 }
             }
         }
         // also use it as thumnail if none has been defined yet
         if (!isset($this->item['thumbnail_url']) || !trim($this->item['thumbnail_url'])) {
             include_once $context['path_to_root'] . 'images/images.php';
             if (($image = Images::get($origin)) && ($url = Images::get_thumbnail_href($image))) {
                 $query[] = "thumbnail_url = '" . SQL::escape($url) . "'";
             }
         }
         // refresh stamp only if image update occurs within 6 hours after last edition
         if (SQL::strtotime($this->item['edit_date']) + 6 * 60 * 60 < time()) {
             $silently = TRUE;
         }
         // suppress a reference to an image that has been deleted
     } elseif ($action == 'image:delete') {
         // suppress reference in main description field
         $query[] = "description = '" . SQL::escape(Codes::delete_embedded($this->item['description'], 'image', $origin)) . "'";
         // suppress references as icon and thumbnail as well
         include_once $context['path_to_root'] . 'images/images.php';
         if ($image = Images::get($origin)) {
             if ($url = Images::get_icon_href($image)) {
                 if ($this->item['icon_url'] == $url) {
                     $query[] = "icon_url = ''";
                 }
                 if ($this->item['thumbnail_url'] == $url) {
                     $query[] = "thumbnail_url = ''";
                 }
             }
             if ($url = Images::get_thumbnail_href($image)) {
                 if ($this->item['icon_url'] == $url) {
                     $query[] = "icon_url = ''";
                 }
                 if ($this->item['thumbnail_url'] == $url) {
                     $query[] = "thumbnail_url = ''";
                 }
             }
         }
         // set an existing image as the category icon
     } elseif ($action == 'image:set_as_icon') {
         include_once $context['path_to_root'] . 'images/images.php';
         if ($image = Images::get($origin)) {
             if ($url = Images::get_icon_href($image)) {
                 $query[] = "icon_url = '" . SQL::escape($url) . "'";
             }
             // also use it as thumnail if none has been defined yet
             if (!(isset($this->item['thumbnail_url']) && trim($this->item['thumbnail_url'])) && ($url = Images::get_thumbnail_href($image))) {
                 $query[] = "thumbnail_url = '" . SQL::escape($url) . "'";
             }
         }
         $silently = TRUE;
         // set an existing image as the category thumbnail
     } elseif ($action == 'image:set_as_thumbnail') {
         include_once $context['path_to_root'] . 'images/images.php';
         if ($image = Images::get($origin)) {
             if ($url = Images::get_thumbnail_href($image)) {
                 $query[] = "thumbnail_url = '" . SQL::escape($url) . "'";
             }
         }
         $silently = TRUE;
         // append a new image, and set it as the article thumbnail
     } elseif ($action == 'image:set_as_both') {
//.........这里部分代码省略.........
开发者ID:rair,项目名称:yacs,代码行数:101,代码来源:category.php

示例4: touch

 /**
  * remember the last action for this section
  *
  * @see articles/article.php
  * @see shared/anchor.php
  *
  * @param string the description of the last action
  * @param string the id of the item related to this update
  * @param boolean TRUE to not change the edit date of this anchor, default is FALSE
  */
 function touch($action, $origin = NULL, $silently = FALSE)
 {
     global $context;
     // we make extensive use of comments below
     include_once $context['path_to_root'] . 'comments/comments.php';
     // don't go further on import
     if (preg_match('/import$/i', $action)) {
         return;
     }
     // no section bound
     if (!isset($this->item['id'])) {
         return;
     }
     // delegate to overlay
     if (is_object($this->overlay) && $this->overlay->touch($action, $origin, $silently) === false) {
         return;
         // stop on false
     }
     // sanity check
     if (!$origin) {
         logger::remember('sections/section.php: unexpected NULL origin at touch()');
         return;
     }
     // components of the query
     $query = array();
     // a new page has been added to the section
     if ($action == 'article:publish' || $action == 'article:submit') {
         // limit the number of items attached to this section
         if (isset($this->item['maximum_items']) && $this->item['maximum_items'] > 10) {
             Articles::purge_for_anchor('section:' . $this->item['id'], $this->item['maximum_items']);
         }
         // a new comment has been posted
     } elseif ($action == 'comment:create') {
         // purge oldest comments
         Comments::purge_for_anchor('section:' . $this->item['id']);
         // file upload
     } elseif ($action == 'file:create' || $action == 'file:upload') {
         // actually, several files have been added
         $label = '';
         if (!$origin) {
             $fields = array();
             $fields['anchor'] = 'section:' . $this->item['id'];
             $fields['description'] = i18n::s('Several files have been added');
             $fields['type'] = 'notification';
             Comments::post($fields);
             // one file has been added
         } elseif (!Codes::check_embedded($this->item['description'], 'embed', $origin) && ($item = Files::get($origin, TRUE))) {
             // this file is eligible for being embedded in the page
             if (isset($item['file_name']) && Files::is_embeddable($item['file_name'])) {
                 // the overlay may prevent embedding
                 if (is_object($this->overlay) && !$this->overlay->should_embed_files()) {
                 } else {
                     $label = '[embed=' . $origin . ']';
                 }
                 // else add a comment to take note of the upload
             } elseif (Comments::allow_creation($this->item, null, 'section')) {
                 $fields = array();
                 $fields['anchor'] = 'section:' . $this->item['id'];
                 if ($action == 'file:create') {
                     $fields['description'] = '[file=' . $item['id'] . ',' . $item['file_name'] . ']';
                 } else {
                     $fields['description'] = '[download=' . $item['id'] . ',' . $item['file_name'] . ']';
                 }
                 Comments::post($fields);
             }
         }
         // include flash videos in a regular page
         if ($label) {
             $query[] = "description = '" . SQL::escape($this->item['description'] . ' ' . $label) . "'";
         }
         // suppress references to a deleted file
     } elseif ($action == 'file:delete') {
         // suppress reference in main description field
         $text = Codes::delete_embedded($this->item['description'], 'download', $origin);
         $text = Codes::delete_embedded($text, 'embed', $origin);
         $text = Codes::delete_embedded($text, 'file', $origin);
         // save changes
         $query[] = "description = '" . SQL::escape($text) . "'";
         // append a reference to a new image to the description
     } elseif ($action == 'image:create') {
         if (!Codes::check_embedded($this->item['description'], 'image', $origin)) {
             // the overlay may prevent embedding
             if (is_object($this->overlay) && !$this->overlay->should_embed_files()) {
             } else {
                 // list has already started
                 if (preg_match('/\\[image=[^\\]]+?\\]\\s*$/', $this->item['description'])) {
                     $query[] = "description = '" . SQL::escape($this->item['description'] . ' [image=' . $origin . ']') . "'";
                 } else {
                     $query[] = "description = '" . SQL::escape($this->item['description'] . "\n\n" . '[image=' . $origin . ']') . "'";
                 }
//.........这里部分代码省略.........
开发者ID:rair,项目名称:yacs,代码行数:101,代码来源:section.php

示例5: connect

 /**
  * connect to the mail server
  *
  * This function opens a network connection to the server, authenticate if required to do so,
  * and set $context['mail_handle'] to be used for actual transmissions.
  *
  * If parameter $context['mail_variant'] is set to 'smtp', a SMTP connection is
  * established with the computer specified in $context['mail_server']. If some credentials
  * are provided in $context['mail_account'] and $context['mail_password'], they are
  * transmitted to the server as per protocol extension. CRAM-MD5, LOGIN and PLAIN authentication
  * schemes have been implemented.
  *
  * @link http://tools.ietf.org/rfc/rfc2104.txt HMAC
  * @link http://www.fehcom.de/qmail/smtpauth.html
  *
  * If parameter $context['mail_variant'] is set to 'pop3', and if credentials have been
  * set in $context['mail_account'] and in $context['mail_password'], a POP3 connection
  * is made to the mail server just to authenticate, and then a SMTP connection
  * is established to actually transmit messages. If a secured communication has been
  * configured for SMTP, then a secured POP3 communication is performed on port 995. Else
  * a vanilla POP3 transaction is done on regular port 110.
  *
  * For any other value of $context['mail_variant'], or if the parameter is not set,
  * the function relies on the PHP mail() function to do the job. If the parameter
  * $context['mail_server'] is set, it overloads php.ini settings. Therefore you can change
  * the SMTP server used for transmission without the needs to edit the php.ini file.
  *
  * The parameter $context['mail_server'] can call for SSL/TLS support, or use a specific
  * port number, as in the following examples:
  *
  * [snippet]
  * ssl://mail.server.com
  * mail.server.com:234
  * [/snippet]
  *
  * @return mixed the socket handle itself, of FALSE on error
  *
  * @see control/configure.php
  */
 private static function connect()
 {
     global $context;
     // we already have an open handle
     if (isset($context['mail_handle'])) {
         return $context['mail_handle'];
     }
     // email services have to be activated
     if (!isset($context['with_email']) || $context['with_email'] != 'Y') {
         Logger::error(i18n::s('E-mail has not been enabled on this system.'));
         return FALSE;
     }
     // define target smtp server
     $port = 25;
     if (isset($context['mail_server'])) {
         $server = $context['mail_server'];
         // use alternate port if required to do so
         if (preg_match('/^(.+):([0-9]+)$/', $server, $matches)) {
             $server = $matches[1];
             $port = intval($matches[2]);
         }
     }
     // ensure that we can support tls communications
     if (isset($server) && !strncmp($server, 'ssl://', 6) && is_callable('extension_loaded') && !extension_loaded('openssl')) {
         logger::remember('shared/mailer.php: Load the OpenSSL extension to support secured transmissions to mail server ' . $server);
         return FALSE;
     }
     // go for POP authentication
     if (isset($server) && isset($context['mail_variant']) && $context['mail_variant'] == 'pop3') {
         // authenticate to a pop3 server
         if (isset($context['mail_account']) && isset($context['mail_password'])) {
             // select which port to use
             if (strncmp($server, 'ssl://', 6)) {
                 $pop3_port = 110;
             } else {
                 $pop3_port = 995;
             }
             // open a network connection
             if (!($handle = Safe::fsockopen($server, $pop3_port, $errno, $errstr, 10))) {
                 if ($context['debug_mail'] == 'Y') {
                     Logger::remember('shared/mailer.php: fsockopen:', $errstr . ' (' . $errno . ')', 'debug');
                 }
                 Logger::remember('shared/mailer.php: ' . sprintf('Impossible to connect to %s', $server . ':' . $pop3_port));
                 return FALSE;
             }
             // ensure enough execution time
             Safe::set_time_limit(30);
             // get server banner
             if (($reply = fgets($handle)) === FALSE) {
                 Logger::remember('shared/mailer.php: Impossible to get banner of ' . $server);
                 fclose($handle);
                 return FALSE;
             }
             if ($context['debug_mail'] == 'Y') {
                 Logger::remember('shared/mailer.php: POP <-', $reply, 'debug');
             }
             // expecting an OK
             if (strncmp($reply, '+OK', 3)) {
                 Logger::remember('shared/mailer.php: Mail service is closed at ' . $server, $reply);
                 fclose($handle);
                 return FALSE;
//.........这里部分代码省略.........
开发者ID:rair,项目名称:yacs,代码行数:101,代码来源:mailer.php

示例6: touch

 /**
  * remember the last action for this user
  *
  * @param string the description of the last action
  * @param string the id of the item related to this update
  * @param boolean TRUE to not change the edit date of this anchor, default is FALSE
  *
  * @see shared/anchor.php
  */
 function touch($action, $origin = NULL, $silently = FALSE)
 {
     global $context;
     // don't go further on import
     if (preg_match('/import$/i', $action)) {
         return;
     }
     // no item bound
     if (!isset($this->item['id'])) {
         return;
     }
     // sanity check
     if (!$origin) {
         logger::remember('users/user.php: unexpected NULL origin at touch()');
         return;
     }
     // components of the query
     $query = array();
     // append a reference to a new image to the description
     if ($action == 'image:create') {
         if (!Codes::check_embedded($this->item['description'], 'image', $origin)) {
             // the overlay may prevent embedding
             if (is_object($this->overlay) && !$this->overlay->should_embed_files()) {
             } else {
                 // list has already started
                 if (preg_match('/\\[image=[^\\]]+?\\]\\s*$/', $this->item['description'])) {
                     $query[] = "description = '" . SQL::escape($this->item['description'] . ' [image=' . $origin . ']') . "'";
                 } else {
                     $query[] = "description = '" . SQL::escape($this->item['description'] . "\n\n" . '[image=' . $origin . ']') . "'";
                 }
             }
         }
         // refresh stamp only if image update occurs within 6 hours after last edition
         if (SQL::strtotime($this->item['edit_date']) + 6 * 60 * 60 < time()) {
             $silently = TRUE;
         }
         // suppress a reference to an image that has been deleted
     } elseif ($action == 'image:delete') {
         // suppress reference in main description field
         $query[] = "description = '" . SQL::escape(Codes::delete_embedded($this->item['description'], 'image', $origin)) . "'";
         // suppress references as icon and thumbnail as well
         include_once $context['path_to_root'] . 'images/images.php';
         if ($image = Images::get($origin)) {
             if ($url = Images::get_icon_href($image)) {
                 if ($this->item['avatar_url'] == $url) {
                     $query[] = "avatar_url = ''";
                 }
             }
             if ($url = Images::get_thumbnail_href($image)) {
                 if ($this->item['avatar_url'] == $url) {
                     $query[] = "avatar_url = ''";
                 }
             }
         }
         // set an existing image as the user avatar
     } elseif ($action == 'image:set_as_avatar') {
         include_once $context['path_to_root'] . 'images/images.php';
         if ($image = Images::get($origin)) {
             if ($url = Images::get_icon_href($image)) {
                 $query[] = "avatar_url = '" . SQL::escape($url) . "'";
             }
         }
         $silently = TRUE;
         // set an existing image as the user thumbnail
     } elseif ($action == 'image:set_as_thumbnail') {
         include_once $context['path_to_root'] . 'images/images.php';
         if ($image = Images::get($origin)) {
             if ($url = Images::get_thumbnail_href($image)) {
                 $query[] = "avatar_url = '" . SQL::escape($url) . "'";
             }
         }
         $silently = TRUE;
         // append a new image
     } elseif ($action == 'image:set_as_both') {
         if (!Codes::check_embedded($this->item['description'], 'image', $origin)) {
             $query[] = "description = '" . SQL::escape($this->item['description'] . ' [image=' . $origin . ']') . "'";
         }
         // do not remember minor changes
         $silently = TRUE;
         // add a reference to a location in the article description
     } elseif ($action == 'location:create') {
         if (!Codes::check_embedded($this->item['description'], 'location', $origin)) {
             $query[] = "description = '" . SQL::escape($this->item['description'] . ' [location=' . $origin . ']') . "'";
         }
         // suppress a reference to a location that has been deleted
     } elseif ($action == 'location:delete') {
         $query[] = "description = '" . SQL::escape(Codes::delete_embedded($this->item['description'], 'location', $origin)) . "'";
         // add a reference to a new table in the user description
     } elseif ($action == 'table:create') {
         if (!Codes::check_embedded($this->item['description'], 'table', $origin)) {
             $query[] = "description = '" . SQL::escape($this->item['description'] . ' [table=' . $origin . ']') . "'";
//.........这里部分代码省略.........
开发者ID:rair,项目名称:yacs,代码行数:101,代码来源:user.php

示例7: post


//.........这里部分代码省略.........
     if (!isset($fields['interface']) || $fields['interface'] != 'C') {
         $fields['interface'] = 'I';
     }
     $query[] = "interface='" . SQL::escape($fields['interface']) . "'";
     $query[] = "introduction='" . SQL::escape(isset($fields['introduction']) ? $fields['introduction'] : '') . "'";
     $query[] = "irc_address='" . SQL::escape(isset($fields['irc_address']) ? $fields['irc_address'] : '') . "'";
     $query[] = "jabber_address='" . SQL::escape(isset($fields['jabber_address']) ? $fields['jabber_address'] : '') . "'";
     $query[] = "language='" . SQL::escape(isset($fields['language']) ? $fields['language'] : 'none') . "'";
     $query[] = "msn_address='" . SQL::escape(isset($fields['msn_address']) ? $fields['msn_address'] : '') . "'";
     $query[] = "nick_name='" . SQL::escape($fields['nick_name']) . "'";
     $query[] = "options='" . SQL::escape(isset($fields['options']) ? $fields['options'] : '') . "'";
     $query[] = "overlay='" . SQL::escape(isset($fields['overlay']) ? $fields['overlay'] : '') . "'";
     $query[] = "overlay_id='" . SQL::escape(isset($fields['overlay_id']) ? $fields['overlay_id'] : '') . "'";
     $query[] = "password='" . SQL::escape(isset($fields['password']) ? $fields['password'] : '') . "'";
     $query[] = "pgp_key='" . SQL::escape(isset($fields['pgp_key']) ? $fields['pgp_key'] : '') . "'";
     $query[] = "phone_number='" . SQL::escape(isset($fields['phone_number']) ? $fields['phone_number'] : '') . "'";
     if (!isset($fields['post_date']) || $fields['post_date'] <= NULL_DATE) {
         $fields['post_date'] = $fields['edit_date'];
     }
     $query[] = "post_date='" . SQL::escape($fields['post_date']) . "'";
     $query[] = "posts=" . SQL::escape(isset($fields['posts']) ? $fields['posts'] : '0');
     $query[] = "signature='" . SQL::escape(isset($fields['signature']) ? $fields['signature'] : '') . "'";
     $query[] = "skype_address='" . SQL::escape(isset($fields['skype_address']) ? $fields['skype_address'] : '') . "'";
     // clean provided tags
     if (isset($fields['tags'])) {
         $fields['tags'] = trim($fields['tags'], " \t.:,!?");
     }
     $query[] = "tags='" . SQL::escape(isset($fields['tags']) ? $fields['tags'] : '') . "'";
     $query[] = "twitter_address='" . SQL::escape(isset($fields['twitter_address']) ? $fields['twitter_address'] : '') . "'";
     $query[] = "vcard_agent='" . SQL::escape(isset($fields['vcard_agent']) ? $fields['vcard_agent'] : '') . "'";
     $query[] = "vcard_label='" . SQL::escape(isset($fields['vcard_label']) ? $fields['vcard_label'] : '') . "'";
     $query[] = "vcard_organization='" . SQL::escape(isset($fields['vcard_organization']) ? $fields['vcard_organization'] : '') . "'";
     $query[] = "vcard_title='" . SQL::escape(isset($fields['vcard_title']) ? $fields['vcard_title'] : '') . "'";
     $query[] = "web_address='" . SQL::escape(isset($fields['web_address']) ? $fields['web_address'] : '') . "'";
     if (!isset($fields['with_newsletters']) || $fields['with_newsletters'] != 'N') {
         $fields['with_newsletters'] = 'Y';
     }
     $query[] = "with_newsletters='" . $fields['with_newsletters'] . "'";
     if (!isset($fields['without_alerts']) || $fields['without_alerts'] != 'Y') {
         $fields['without_alerts'] = 'N';
     }
     $query[] = "without_alerts='" . $fields['without_alerts'] . "'";
     if (!isset($fields['without_confirmations']) || $fields['without_confirmations'] != 'Y') {
         $fields['without_confirmations'] = 'N';
     }
     $query[] = "without_confirmations='" . $fields['without_confirmations'] . "'";
     if (!isset($fields['without_messages']) || $fields['without_messages'] != 'Y') {
         $fields['without_messages'] = 'N';
     }
     $query[] = "without_messages='" . $fields['without_messages'] . "'";
     $query[] = "yahoo_address='" . SQL::escape(isset($fields['yahoo_address']) ? $fields['yahoo_address'] : '') . "'";
     // insert statement
     $query = "INSERT INTO " . SQL::table_name('users') . " SET " . implode(', ', $query);
     // actual insert
     if (SQL::query($query, FALSE, $context['users_connection']) === FALSE) {
         return FALSE;
     }
     // remember the id of the new item
     if (!($fields['id'] = SQL::get_last_id($context['users_connection']))) {
         logger::remember('users/users.php: unable to retrieve id of new record');
         return FALSE;
     }
     // list the user in categories
     Categories::remember('user:' . $fields['id'], NULL_DATE, isset($fields['tags']) ? $fields['tags'] : '');
     // clear the cache for users
     Users::clear($fields);
     // send a confirmation message
     if (isset($fields['email']) && trim($fields['email']) && isset($context['with_email']) && $context['with_email'] == 'Y') {
         // message title
         $subject = sprintf(i18n::s('Your account at %s'), strip_tags($context['site_name']));
         // top of the message
         $message = '<p>' . i18n::s('Welcome!') . '</p>' . '<p>' . sprintf(i18n::s('This message relates to your account at %s.'), '<a href="' . $context['url_to_home'] . $context['url_to_root'] . '">' . strip_tags($context['site_name']) . '</a>') . '</p>';
         // mention nick name
         $message .= '<p>' . sprintf(i18n::s('Your nick name is %s'), $fields['nick_name']) . '</p>';
         // direct link to login page --see users/login.php
         $link = $context['url_to_home'] . $context['url_to_root'] . Users::get_login_url('login', $fields['id'], rand(1000, 9999), $fields['handle']);
         $message .= '<p>' . i18n::s('Record this message and use the following link to authenticate to the site at any time:') . '</p>' . '<p><a href="' . $link . '">' . $link . '</a></p>';
         // caution note
         $message .= '<p>' . i18n::s('Caution: This hyperlink contains your login credentials encrypted. Please be aware anyone who uses this link will have full access to your account.') . '</p>';
         // confirmation link
         if (isset($context['users_with_email_validation']) && $context['users_with_email_validation'] == 'Y') {
             $message .= '<p>' . i18n::s('Click on the link below to activate your new account.') . '</p>';
             // use the secret handle
             $link = $context['url_to_home'] . $context['url_to_root'] . Users::get_url($fields['handle'], 'validate');
             $message .= '<p><a href="' . $link . '">' . $link . '</a></p>';
         }
         // bottom of the message
         $message .= '<p>' . sprintf(i18n::s('On-line help is available at %s'), '<a href="' . $context['url_to_home'] . $context['url_to_root'] . 'help/' . '">' . $context['url_to_home'] . $context['url_to_root'] . 'help/' . '</a>') . '</p>' . '<p>' . sprintf(i18n::s('Thank you for your interest into %s.'), '<a href="' . $context['url_to_home'] . $context['url_to_root'] . '">' . strip_tags($context['site_name']) . '</a>') . '</p>';
         // enable threading
         $headers = Mailer::set_thread('user:' . $fields['id']);
         // post the confirmation message
         Mailer::notify(NULL, $fields['email'], $subject, $message, $headers);
     }
     // automatic login
     if (!Surfer::get_id() && is_callable(array('Surfer', 'set'))) {
         Surfer::set($fields, TRUE);
     }
     // return the id of the new item
     return $fields['id'];
 }
开发者ID:rair,项目名称:yacs,代码行数:101,代码来源:users.php

示例8:

 /**
  * look for a localized string
  *
  * @param array the array containing localized strings
  * @param string the label identifying string
  * @return string the localized string, if any
  */
 public static function &lookup(&$strings, $name)
 {
     global $context;
     // match on hashed name
     if (($hash = i18n::hash($name)) && array_key_exists($hash, $strings)) {
         $text = $strings[$hash];
     } else {
         // log information on development platform
         if ($context['with_debug'] == 'Y' && file_exists($context['path_to_root'] . 'parameters/switch.on')) {
             logger::remember('i18n/i18n.php: ' . $name . ' is not localized', '', 'debug');
         }
         // degrade to provided string
         $text = $name;
     }
     // provide the localized string
     return $text;
 }
开发者ID:rair,项目名称:yacs,代码行数:24,代码来源:i18n.php


注:本文中的logger::remember方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。