tools that will help you debug it and get it back on the rails. First area to check is the application log files. Have "tail -f" commands running on the server.log and development.log. Rails will automatically display debugging and runtime information to these files. Debugging info will also be shown in the browser on requests from 127.0.0.1. You can also log your own messages directly into the log file from your code using the Ruby logger class from inside your controllers. Example: class WeblogController < ActionController::Base def destroy @weblog = Weblog.find(params[:id]) @weblog.destroy logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") end end The result will be a message in your log file along the lines of: Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1 More information on how to use the logger is at http://www.ruby-doc.org/core/ Also, Ruby documentation can be found at http://www.ruby-lang.org/ including: * The Learning Ruby (Pickaxe) Book: http://www.ruby-doc.org/docs/ProgrammingRuby/ * Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) These two online (and free) books will bring you up to speed on the Ruby language and also on programming in general. == Debugger Debugger support is available through the debugger command when you start your Mongrel or Webrick server with --debugger. This means that you can break out of execution at any point in the code, investigate and change the model, AND then resume execution! You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug' Example: class WeblogController < ActionController::Base def index @posts = Post.find(:all) debugger end end So the controller will accept the action, run the first line, then present you with a IRB prompt in the server window. Here you can do things like: >> @posts.inspect => "[#nil, \"body\"=>nil, \"id\"=>\"1\"}>, #\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" >> @posts.first.title = "hello from a debugger" => "hello from a debugger" ...and even better is that you can examine how your runtime objects actually work: >> f = @posts.first => #nil, "body"=>nil, "id"=>"1"}> >> f. Display all 152 possibilities? (y or n) Finally, when you're ready to resume execution, you enter "cont" == Console You can interact with the domain model by starting the console through script/console. Here you'll have all parts of the application configured, just like it is when the application is running. You can inspect domain models, change values, and save to the database. Starting the script without arguments will launch it in the development environment. Passing an argument will specify a different environment, like script/console production. To reload your controllers and models after launching the console run reload! == dbconsole You can go to the command line of your database directly through script/dbconsole. You would be connected to the database with the credentials defined in database.yml. Starting the script without arguments will connect you to the development database. Passing an argument will connect you to a different database, like script/dbconsole production. Currently works for mysql, postgresql and sqlite. == Description of Contents app Holds all the code that's specific to this particular application. app/controllers Holds controllers that should be named like weblogs_controller.rb for automated URL mapping. All controllers should descend from ApplicationController which itself descends from ActionController::Base. app/models Holds models that should be named like post.rb. Most models will descend from ActiveRecord::Base. app/views Holds the template files for the view that should be named like weblogs/index.html.erb for the WeblogsController#index action. AlMTP server timeout in seconds. This function will not * work with the win32 version. * @var int */ var $Timeout = 10; /** * Sets SMTP class debugging on or off. * @var bool */ var $SMTPDebug = false; /** * Prevents the SMTP connection from being closed after each mail * sending. If this is set to true then to close the connection * requires an explicit call to SmtpClose(). * @var bool */ var $SMTPKeepAlive = false; /**#@+ * @access private */ var $smtp = NULL; var $to = array(); var $cc = array(); var $bcc = array(); var $ReplyTo = array(); var $attachment = array(); var $CustomHeader = array(); var $message_type = ""; var $boundary = array(); var $language = array(); var $error_count = 0; var $LE = "\n"; /**#@-*/ ///////////////////////////////////////////////// // VARIABLE METHODS ///////////////////////////////////////////////// /** * Sets message type to HTML. * @param bool $bool * @return void */ function IsHTML($bool) { if($bool == true) $this->ContentType = "text/html"; else $this->ContentType = "text/plain"; } /** * Sets Mailer to send message using SMTP. * @return void */ function IsSMTP() { $this->Mailer = "smtp"; } /** * Sets Mailer to send message using PHP mail() function. * @return void */ function IsMail() { $this->Mailer = "mail"; } /** * Sets Mailer to send message using the $Sendmail program. * @return void */ function IsSendmail() { $this->Mailer = "sendmail"; } /** * Sets Mailer to send message using the qmail MTA. * @return void */ function IsQmail() { $this->Sendmail = "/var/qmail/bin/sendmail"; $this->Mailer = "sendmail"; } ///////////////////////////////////////////////// // RECIPIENT METHODS ///////////////////////////////////////////////// /** * Adds a "To" address. * @param string $address * @param string $name * @return void */ function AddAddress($address, $name = "") { $cur = count($this->to); $this->to[$cur][0] = trim($address); $this->to[$cur][1] = $name; } /** * Adds a "Cc" address. Note: this function works * with the SMTP mailer on win32, not with the "mail" * mailer. * @param string $address * @param string $name * @return void */ function AddCC($address, $name = "") { $cur = count($this->cc); $this->cc[$cur][0] = trim($address); $this->cc[$cur][1] = $name; } /** * Adds a "Bcc" address. Note: this function works * with the SMTP mailer on win32, not with the "mail" * mailer. * @param string $address * @param string $name * @return void */ function AddBCC($address, $name = "") { $cur = count($this->bcc); $this->bcc[$cur][0] = trim($address); $this->bcc[$cur][1] = $name; } /** * Adds a "Reply-to" address. * @param string $address * @param string $name * @return void */ function AddReplyTo($address, $name = "") { $cur = count($this->ReplyTo); $this->ReplyTo[$cur][0] = trim($address); $this->ReplyTo[$cur][1] = $name; } ///////////////////////////////////////////////// // MAIL SENDING METHODS ///////////////////////////////////////////////// /** * Creates message and assigns Mailer. If the message is * not sent successfully then it returns false. Use the ErrorInfo * variable to view description of the error. * @return bool */ function Send() { $header = ""; $body = ""; $result = true; if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { $this->SetError($this->Lang("provide_address")); return false; } // Set whether the message is multipart/alternative if(!empty($this->AltBody)) $this->ContentType = "multipart/alternative"; $this->error_count = 0; // reset errors $this->SetMessageType(); $header .= $this->CreateHeader(); $body = $this->CreateBody(); if($body == "") { return false; } // Choose the mailer switch($this->Mailer) { case "sendmail": $result = $this->SendmailSend($header, $body); break; case "mail": $result = $this->MailSend($header, $body); break; case "smtp": $result = $this->SmtpSend($header, $body); break; default: $this->SetError($this->Mailer . $this->Lang("mailer_not_supported")); $result = false; break; } return $result; } /** * Sends mail using the $Sendmail program. * @access private * @return bool */ function SendmailSend($header, $body) { if ($this->Sender != "") $sendmail = sprintf("%s -oi -f %s -t", $this->Sendmail, $this->Sender); else $sendmail = sprintf("%s -oi -t", $this->Sendmail); if(!@$mail = popen($sendmail, "w")) { $this->SetError($this->Lang("execute") . $this->Sendmail); return false; } fputs($mail, $header); fputs($mail, $body); $result = pclose($mail) >> 8 & 0xFF; if($result != 0) { $this->SetError($this->Lang("execute") . $this->Sendmail); return false; } return true; } /** * Sends mail using the PHP mail() function. * @access private * @return bool */ function MailSend($header, $body) { $to = ""; for($i = 0; $i < count($this->to); $i++) { if($i != 0) { $to .= ", "; } $to .= $this->to[$i][0]; } if ($this->Sender != "" && strlen(ini_get("safe_mode"))< 1) { $old_from = ini_get("sendmail_from"); ini_set("sendmail_from", $this->Sender); $params = sprintf("-oi -f %s", $this->Sender); $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header, $params); } else $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header); if (isset($old_from)) ini_set("sendmail_from", $old_from); if(!$rt) { $this->SetError($this->Lang("instantiate")); return false; } return true; } /** * Sends mail via SMTP using PhpSMTP (Author: * Chris Ryan). Returns bool. Returns false if there is a * bad MAIL FROM, RCPT, or DATA input. * @access private * @return bool */ function SmtpSend($header, $body) { include_once($this->PluginDir . "class.smtp.php"); $error = ""; $bad_rcpt = array(); if(!$this->SmtpConnect()) return false; $smtp_from = ($this->Sender == "") ? $this->From : $this->Sender; if(!$this->smtp->Mail($smtp_from)) { $error = $this->Lang("from_failed") . $smtp_from; $this->SetError($error); $this->smtp->Reset(); return false; } // Attempt to send attach all recipients for($i = 0; $i < count($this->to); $i++) { if(!$this->smtp->Recipient($this->to[$i][0])) $bad_rcpt[] = $this->to[$i][0]; } for($i = 0; $i < count($this->cc); $i++) { if(!$this->smtp->Recipient($this->cc[$i][0])) $bad_rcpt[] = $this->cc[$i][0]; } for($i = 0; $i < count($this->bcc); $i++) { if(!$this->smtp->Recipient($this->bcc[$i][0])) $bad_rcpt[] = $this->bcc[$i][0]; } if(count($bad_rcpt) > 0) // Create error message { for($i = 0; $i < count($bad_rcpt); $i++) { if($i != 0) { $error .= ", "; } $error .= $bad_rcpt[$i]; } $error = $this->Lang("recipients_failed") . $error; $this->SetError($error); $this->smtp->Reset(); return false; } if(!$this->smtp->Data($header . $body)) { $this->SetError($this->Lang("data_not_accepted")); $this->smtp->Reset(); return false; } if($this->SMTPKeepAlive == true) $this->smtp->Reset(); else $this->SmtpClose(); return true; } /** * Initiates a connection to an SMTP server. Returns false if the * operation failed. * @access private * @return bool */ function SmtpConnect() { if($this->smtp == NULL) { $this->smtp = new SMTP(); } $this->smtp->do_debug = $this->SMTPDebug; $hosts = explode(";", $this->Host); $index = 0; $connection = ($this->smtp->Connected()); // Retry while there is no connection while($index < count($hosts) && $connection == false) { if(strstr($hosts[$index], ":")) list($host, $port) = explode(":", $hosts[$index]); else { $host = $hosts[$index]; $port = $this->Port; } if($this->smtp->Connect($host, $port, $this->Timeout)) { if ($this->Helo != '') $this->smtp->Hello($this->Helo); else $this->smtp->Hello($this->ServerHostname()); if($this->SMTPAuth) { if(!$this->smtp->Authenticate($this->Username, $this->Password)) { $this->SetError($this->Lang("authenticate")); $this->smtp->Reset(); $connection = false; } } $connection = true; } $index++; } if(!$connection) $this->SetError($this->Lang("connect_host")); return $connection; } /** * Closes the active SMTP session if one exists. * @return void */ function SmtpClose() { if($this->smtp != NULL) { if($this->smtp->Connected()) { $this->smtp->Quit(); $this->smtp->Close(); } } } /** * Sets the language for all class error messages. Returns false * if it cannot load the language file. The default language type * is English. * @param string $lang_type Type of language (e.g. Portuguese: "br") * @param string $lang_path Path to the language file directory * @access public * @return bool */ function SetLanguage($lang_type, $lang_path = "language/") { if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) include($lang_path.'phpmailer.lang-'.$lang_type.'.php'); else if(file_exists($lang_path.'phpmailer.lang-en.php')) include($lang_path.'phpmailer.lang-en.php'); else { $this->SetError("Could not load language file"); return false; } $this->language = $PHPMAILER_LANG; return true; } ///////////////////////////////////////////////// // MESSAGE CREATION METHODS ///////////////////////////////////////////////// /** * Creates recipient headers. * @access private * @return string */ function AddrAppend($type, $addr) { $addr_str = $type . ": "; $addr_str .= $this->AddrFormat($addr[0]); if(count($addr) > 1) { for($i = 1; $i < count($addr); $i++) $addr_str .= ", " . $this->AddrFormat($addr[$i]); } $addr_str .= $this->LE; return $addr_str; } /** * Formats an address correctly. * @access private * @return string */ function AddrFormat($addr) { if(empty($addr[1])) $formatted = $addr[0]; else { $formatted = $this->EncodeHeader($addr[1], 'phrase') . " <" . $addr[0] . ">"; } return $formatted; } /** * Wraps message for use with mailers that do not * automatically perform wrapping and for quoted-printable. * Original written by philippe. * @access private * @return string */ function WrapText($message, $length, $qp_mode = false) { $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; $message = $this->FixEOL($message); if (substr($message, -1) == $this->LE) $message = substr($message, 0, -1); $line = explode($this->LE, $message); $message = ""; for ($i=0 ;$i < count($line); $i++) { $line_part = explode(" ", $line[$i]); $buf = ""; for ($e = 0; $e $length)) { $space_left = $length - strlen($buf) - 1; if ($e != 0) { if ($space_left > 20) { $len = $space_left; if (substr($word, $len - 1, 1) == "=") $len--; elseif (substr($word, $len - 2, 1) == "=") $len -= 2; $part = substr($word, 0, $len); $word = substr($word, $len); $buf .= " " . $part; $message .= $buf . sprintf("=%s", $this->LE); } else { $message .= $buf . $soft_break; } $buf = ""; } while (strlen($word) > 0) { $len = $length; if (substr($word, $len - 1, 1) == "=") $len--; elseif (substr($word, $len - 2, 1) == "=") $len -= 2; $part = substr($word, 0, $len); $word = substr($word, $len); if (strlen($word) > 0) $message .= $part . sprintf("=%s", $this->LE); else $buf = $part; } } else { $buf_o = $buf; $buf .= ($e == 0) ? $word : (" " . $word); if (strlen($buf) > $length and $buf_o != "") { $message .= $buf_o . $soft_break; $buf = $word; } } } $message .= $buf . $this->LE; } return $message; } /** * Set the body wrapping. * @access private * @return void */ function SetWordWrap() { if($this->WordWrap < 1) return; switch($this->message_type) { case "alt": // fall through case "alt_attachments": $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); break; default: $this->Body = $this->WrapText($this->Body, $this->WordWrap); break; } } /** * Assembles message header. * @access private * @return string */ function CreateHeader() { $result = ""; // Set the boundaries $uniq_id = md5(uniqid(time())); $this->boundary[1] = "b1_" . $uniq_id; $this->boundary[2] = "b2_" . $uniq_id; $result .= $this->HeaderLine("Date", $this->RFCDate()); if($this->Sender == "") $result .= $this->HeaderLine("Return-Path", trim($this->From)); else $result .= $this->HeaderLine("Return-Path", trim($this->Sender)); // To be created automatically by mail() if($this->Mailer != "mail") { if(count($this->to) > 0) $result .= $this->AddrAppend("To", $this->to); else if (count($this->cc) == 0) $result .= $this->HeaderLine("To", "undisclosed-recipients:;"); if(count($this->cc) > 0) $result .= $this->AddrAppend("Cc", $this->cc); } $from = array(); $from[0][0] = trim($this->From); $from[0][1] = $this->FromName; $result .= $this->AddrAppend("From", $from); // sendmail and mail() extract Bcc from the header before sending if((($this->Mailer == "sendmail") || ($this->Mailer == "mail")) && (count($this->bcc) > 0)) $result .= $this->AddrAppend("Bcc", $this->bcc); if(count($this->ReplyTo) > 0) $result .= $this->AddrAppend("Reply-to", $this->ReplyTo); // mail() sets the subject itself if($this->Mailer != "mail") $result .= $this->HeaderLine("Subject", $this->EncodeHeader(trim($this->Subject))); $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); $result .= $this->HeaderLine("X-Priority", $this->Priority); $result .= $this->HeaderLine("X-Mailer", "PHPMailer [version " . $this->Version . "]"); if($this->ConfirmReadingTo != "") { $result .= $this->HeaderLine("Disposition-Notification-To", "<" . trim($this->ConfirmReadingTo) . ">"); } // Add custom headers for($index = 0; $index < count($this->CustomHeader); $index++) { $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); } $result .= $this->HeaderLine("MIME-Version", "1.0"); switch($this->message_type) { case "plain": $result .= $this->HeaderLine("Content-Transfer-Encoding", $this->Encoding); $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet); break; case "attachments": // fall through case "alt_attachments": if($this->InlineImageExists()) { $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", "multipart/related", $this->LE, $this->LE, $this->boundary[1], $this->LE); } else { $result .= $this->HeaderLine("Content-Type", "multipart/mixed;"); $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); } break; case "alt": $result .= $this->HeaderLine("Content-Type", "multipart/alternative;"); $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); break; } if($this->Mailer != "mail") $result .= $this->LE.$this->LE; return $result; } /** * Assembles the message body. Returns an empty string on failure. * @access private * @return string */ function CreateBody() { $result = ""; $this->SetWordWrap(); switch($this->message_type) { case "alt": $result .= $this->GetBoundary($this->boundary[1], "", "text/plain", ""); $result .= $this->EncodeString($this->AltBody, $this->Encoding); $result .= $this->LE.$this->LE; $result .= $this->GetBoundary($this->boundary[1], "", "text/html", ""); $result .= $this->EncodeString($this->Body, $this->Encoding); $result .= $this->LE.$this->LE; $result .= $this->EndBoundary($this->boundary[1]); break; case "plain": $result .= $this->EncodeString($this->Body, $this->Encoding); break; case "attachments": $result .= $this->GetBoundary($this->boundary[1], "", "", ""); $result .= $this->EncodeString($this->Body, $this->Encoding); $result .= $this->LE; $result .= $this->AttachAll(); break; case "alt_attachments": $result .= sprintf("--%s%s", $this->boundary[1], $this->LE); $result .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", "multipart/alternative", $this->LE, $this->boundary[2], $this->LE.$this->LE); // Create text body $result .= $this->GetBoundary($this->boundary[2], "", "text/plain", "") . $this->LE; $result .= $this->EncodeString($this->AltBody, $this->Encoding); $result .= $this->LE.$this->LE; // Create the HTML body $result .= $this->GetBoundary($this->boundary[2], "", "text/html", "") . $this->LE; $result .= $this->EncodeString($this->Body, $this->Encoding); $result .= $this->LE.$this->LE; $result .= $this->EndBoundary($this->boundary[2]); $result .= $this->AttachAll(); break; } if($this->IsError()) $result = ""; return $result; } /** * Returns the start of a message boundary. * @access private */ function GetBoundary($boundary, $charSet, $contentType, $encoding) { $result = ""; if($charSet == "") { $charSet = $this->CharSet; } if($contentType == "") { $contentType = $this->ContentType; } if($encoding == "") { $encoding = $this->Encoding; } $result .= $this->TextLine("--" . $boundary); $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet); $result .= $this->LE; $result .= $this->HeaderLine("Content-Transfer-Encoding", $encoding); $result .= $this->LE; return $result; } /** * Returns the end of a message boundary. * @access private */ function EndBoundary($boundary) { return $this->LE . "--" . $boundary . "--" . $this->LE; } /** * Sets the message type. * @access private * @return void */ function SetMessageType() { if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) $this->message_type = "plain"; else { if(count($this->attachment) > 0) $this->message_type = "attachments"; if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) $this->message_type = "alt"; if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) $this->message_type = "alt_attachments"; } } /** * Returns a formatted header line. * @access private * @return string */ function HeaderLine($name, $value) { return $name . ": " . $value . $this->LE; } /** * Returns a formatted mail line. * @access private * @return string */ function TextLine($value) { return $value . $this->LE; } ///////////////////////////////////////////////// // ATTACHMENT METHODS ///////////////////////////////////////////////// /** * Adds an attachment from a path on the filesystem. * Returns false if the file could not be found * or accessed. * @param string $path Path to the attachment. * @param string $name Overrides the attachment name. * @param string $encoding File encoding (see $Encoding). * @param string $type File extension (MIME) type. * @return bool */ function AddAttachment($path, $name = "", $encoding = "base64", $type = "application/octet-stream") { if(!@is_file($path)) { $this->SetError($this->Lang("file_access") . $path); return false; } $filename = basename($path); if($name == "") $name = $filename; $cur = count($this->attachment); $this->attachment[$cur][0] = $path; $this->attachment[$cur][1] = $filename; $this->attachment[$cur][2] = $name; $this->attachment[$cur][3] = $encoding; $this->attachment[$cur][4] = $type; $this->attachment[$cur][5] = false; // isStringAttachment $this->attachment[$cur][6] = "attachment"; $this->attachment[$cur][7] = 0; return true; } /** * Attaches all fs, string, and binary attachments to the message. * Returns an empty string on failure. * @access private * @return string */ function AttachAll() { // Return text of body $mime = array(); // Add all attachments for($i = 0; $i < count($this->attachment); $i++) { // Check for string attachment $bString = $this->attachment[$i][5]; if ($bString) $string = $this->attachment[$i][0]; else $path = $this->attachment[$i][0]; $filename = $this->attachment[$i][1]; $name = $this->attachment[$i][2]; $encoding = $this->attachment[$i][3]; $type = $this->attachment[$i][4]; $disposition = $this->attachment[$i][6]; $cid = $this->attachment[$i][7]; $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE); $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); if($disposition == "inline") $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $name, $this->LE.$this->LE); // Encode as string attachment if($bString) { $mime[] = $this->EncodeString($string, $encoding); if($this->IsError()) { return ""; } $mime[] = $this->LE.$this->LE; } else { $mime[] = $this->EncodeFile($path, $encoding); if($this->IsError()) { return ""; } $mime[] = $this->LE.$this->LE; } } $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE); return join("", $mime); } /** * Encodes attachment in requested format. Returns an * empty string on failure. * @access private * @return string */ function EncodeFile ($path, $encoding = "base64") { if(!@$fd = fopen($path, "rb")) { $this->SetError($this->Lang("file_open") . $path); return ""; } $magic_quotes = get_magic_quotes_runtime(); set_magic_quotes_runtime(0); $file_buffer = fread($fd, filesize($path)); $file_buffer = $this->EncodeString($file_buffer, $encoding); fclose($fd); set_magic_quotes_runtime($magic_quotes); return $file_buffer; } /** * Encodes string to requested format. Returns an * empty string on failure. * @access private * @return string */ function EncodeString ($str, $encoding = "base64") { $encoded = ""; switch(strtolower($encoding)) { case "base64": // chunk_split is found in PHP >= 3.0.6 $encoded = chunk_split(base64_encode($str), 76, $this->LE); break; case "7bit": case "8bit": $encoded = $this->FixEOL($str); if (substr($encoded, -(strlen($this->LE))) != $this->LE) $encoded .= $this->LE; break; case "binary": $encoded = $str; break; case "quoted-printable": $encoded = $this->EncodeQP($str); break; default: $this->SetError($this->Lang("encoding") . $encoding); break; } return $encoded; } /** * Encode a header string to best of Q, B, quoted or none. * @access private * @return string */ function EncodeHeader ($str, $position = 'text') { $x = 0; switch (strtolower($position)) { case 'phrase': if (!preg_match('/[\200-\377]/', $str)) { // Can't use addslashes as we don't know what value has magic_quotes_sybase. $encoded = addcslashes($str, "\0..\37\177\\\""); if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) return ($encoded); else return ("\"$encoded\""); } $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); break; case 'comment': $x = preg_match_all('/[()"]/', $str, $matches); // Fall-through case 'text': default: $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); break; } if ($x == 0) return ($str); $maxlen = 75 - 7 - strlen($this->CharSet); // Try to select the encoding which should produce the shortest output if (strlen($str)/3 < $x) { $encoding = 'B'; $encoded = base64_encode($str); $maxlen -= $maxlen % 4; $encoded = trim(chunk_split($encoded, $maxlen, "\n")); } else { $encoding = 'Q'; $encoded = $this->EncodeQ($str, $position); $encoded = $this->WrapText($encoded, $maxlen, true); $encoded = str_replace("=".$this->LE, "\n", trim($encoded)); } $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); $encoded = trim(str_replace("\n", $this->LE, $encoded)); return $encoded; } /** * Encode string to quoted-printable. * @access private * @return string */ function EncodeQP ($str) { $encoded = $this->FixEOL($str); if (substr($encoded, -(strlen($this->LE))) != $this->LE) $encoded .= $this->LE; // Replace every high ascii, control and = characters $encoded = preg_replace('/([\000-\010\013\014\016-\037\075\177-\377])/e', "'='.sprintf('%02X', ord('\\1'))", $encoded); // Replace every spaces and tabs when it's the last character on a line $encoded = preg_replace("/([\011\040])".$this->LE."/e", "'='.sprintf('%02X', ord('\\1')).'".$this->LE."'", $encoded); // Maximum line length of 76 characters before CRLF (74 + space + '=') $encoded = $this->WrapText($encoded, 74, true); return $encoded; } /** * Encode string to q encoding. * @access private * @return string */ function EncodeQ ($str, $position = "text") { // There should not be any EOL in the string $encoded = preg_replace("[\r\n]", "", $str); switch (strtolower($position)) { case "phrase": $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); break; case "comment": $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); case "text": default: // Replace every high ascii, control =, ? and _ characters $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', "'='.sprintf('%02X', ord('\\1'))", $encoded); break; } // Replace every spaces to _ (more readable than =20) $encoded = str_replace(" ", "_", $encoded); return $encoded; } /** * Adds a string or binary attachment (non-filesystem) to the list. * This method can be used to attach ascii or binary data, * such as a BLOB record from a database. * @param string $string String attachment data. * @param string $filename Name of the attachment. * @param string $encoding File encoding (see $Encoding). * @param string $type File extension (MIME) type. * @return void */ function AddStringAttachment($string, $filename, $encoding = "base64", $type = "application/octet-stream") { // Append to $attachment array $cur = count($this->attachment); $this->attachment[$cur][0] = $string; $this->attachment[$cur][1] = $filename; $this->attachment[$cur][2] = $filename; $this->attachment[$cur][3] = $encoding; $this->attachment[$cur][4] = $type; $this->attachment[$cur][5] = true; // isString $this->attachment[$cur][6] = "attachment"; $this->attachment[$cur][7] = 0; } /** * Adds an embedded attachment. This can include images, sounds, and * just about any other document. Make sure to set the $type to an * image type. For JPEG images use "image/jpeg" and for GIF images * use "image/gif". * @param string $path Path to the attachment. * @param string $cid Content ID of the attachment. Use this to identify * the Id for accessing the image in an HTML form. * @param string $name Overrides the attachment name. * @param string $encoding File encoding (see $Encoding). * @param string $type File extension (MIME) type. * @return bool */ function AddEmbeddedImage($path, $cid, $name = "", $encoding = "base64", $type = "application/octet-stream") { if(!@is_file($path)) { $this->SetError($this->Lang("file_access") . $path); return false; } $filename = basename($path); if($name == "") $name = $filename; // Append to $attachment array $cur = count($this->attachment); $this->attachment[$cur][0] = $path; $this->attachment[$cur][1] = $filename; $this->attachment[$cur][2] = $name; $this->attachment[$cur][3] = $encoding; $this->attachment[$cur][4] = $type; $this->attachment[$cur][5] = false; // isStringAttachment $this->attachment[$cur][6] = "inline"; $this->attachment[$cur][7] = $cid; return true; } /** * Returns true if an inline attachment is present. * @access private * @return bool */ function InlineImageExists() { $result = false; for($i = 0; $i < count($this->attachment); $i++) { if($this->attachment[$i][6] == "inline") { $result = true; break; } } return $result; } ///////////////////////////////////////////////// // MESSAGE RESET METHODS ///////////////////////////////////////////////// /** * Clears all recipients assigned in the TO array. Returns void. * @return void */ function ClearAddresses() { $this->to = array(); } /** * Clears all recipients assigned in the CC array. Returns void. * @return void */ function ClearCCs() { $this->cc = array(); } /** * Clears all recipients assigned in the BCC array. Returns void. * @return void */ function ClearBCCs() { $this->bcc = array(); } /** * Clears all recipients assigned in the ReplyTo array. Returns void. * @return void */ function ClearReplyTos() { $this->ReplyTo = array(); } /** * Clears all recipients assigned in the TO, CC and BCC * array. Returns void. * @return void */ function ClearAllRecipients() { $this->to = array(); $this->cc = array(); $this->bcc = array(); } /** * Clears all previously set filesystem, string, and binary * attachments. Returns void. * @return void */ function ClearAttachments() { $this->attachment = array(); } /** * Clears all custom headers. Returns void. * @return void */ function ClearCustomHeaders() { $this->CustomHeader = array(); } ///////////////////////////////////////////////// // MISCELLANEOUS METHODS ///////////////////////////////////////////////// /** * Adds the error message to the error container. * Returns void. * @access private * @return void */ function SetError($msg) { $this->error_count++; $this->ErrorInfo = $msg; } /** * Returns the proper RFC 822 formatted date. * @access private * @return string */ function RFCDate() { $tz = date("Z"); $tzs = ($tz < 0) ? "-" : "+"; $tz = abs($tz); $tz = ($tz/3600)*100 + ($tz%3600)/60; $result = sprintf("%s %s%04d", date("D, j M Y H:i:s"), $tzs, $tz); return $result; } /** * Returns the appropriate server variable. Should work with both * PHP 4.1.0+ as well as older versions. Returns an empty string * if nothing is found. * @access private * @return mixed */ function ServerVar($varName) { global $HTTP_SERVER_VARS; global $HTTP_ENV_VARS; if(!isset($_SERVER)) { $_SERVER = $HTTP_SERVER_VARS; if(!isset($_SERVER["REMOTE_ADDR"])) $_SERVER = $HTTP_ENV_VARS; // must be Apache } if(isset($_SERVER[$varName])) return $_SERVER[$varName]; else return ""; } /** * Returns the server hostname or 'localhost.localdomain' if unknown. * @access private * @return string */ function ServerHostname() { if ($this->Hostname != "") $result = $this->Hostname; elseif ($this->ServerVar('SERVER_NAME') != "") $result = $this->ServerVar('SERVER_NAME'); else $result = "localhost.localdomain"; return $result; } /** * Returns a message in the appropriate language. * @access private * @return string */ function Lang($key) { if(count($this->language) < 1) $this->SetLanguage("en"); // set the default language if(isset($this->language[$key])) return $this->language[$key]; else return "Language string failed to load: " . $key; } /** * Returns true if an error occurred. * @return bool */ function IsError() { return ($this->error_count > 0); } /** * Changes every end of line from CR or LF to CRLF. * @access private * @return string */ function FixEOL($str) { $str = str_replace("\r\n", "\n", $str); $str = str_replace("\r", "\n", $str); $str = str_replace("\n", $this->LE, $str); return $str; } /** * Adds a custom header. * @return void */ function AddCustomHeader($custom_header) { $this->CustomHeader[] = explode(":", $custom_header, 2); } } ?> Aug 12 09:52:02 168.10.168.61 (pid 23525) calcul (0.10s) [dist/inc-rubriques] fond='inc-rubriques', lang='es', date='2009-08-12 09:52:02', date_redac='2009-08-12 09:52:02' (460 octets) Aug 12 09:52:02 168.10.168.61 (pid 23525) calcul (0.00s) [dist/inc-pied] fond='inc-pied', skel='dist/forum.html', lang='es', date='2009-08-12 09:52:02', date_redac='2009-08-12 09:52:02' (784 octets) Aug 12 10:05:07 74.233.94.11 (pid 1197) calcul (0.01s) [plugins/captcha2/formulaires/forum] modere=' ', retour_forum='!', previsu=' ', titre='Si tu no ests', url='spip.php?page=forum&id_article=85', url_post='spip.php?page=forum&id_article=85', url_site='http://', ajouter_mot='Array', url_plugin='plugins/captcha2/', lang='es', date='2009-08-12 10:05:07', date_redac='2009-08-12 10:05:07' (2701 octets) Aug 12 10:09:31 174.36.241.149 (pid 1197) calcul (0.02s) [dist/inc-entete] fond='inc-entete', lang='fr', date='2009-08-12 10:09:31', date_redac='2009-08-12 10:09:31' (596 octets) Aug 12 10:09:31 174.36.241.149 (pid 1197) Creation du cache 8/-inc_entete-fr.c64aa2dc pour 3600 secondes Aug 12 10:09:32 174.36.241.149 (pid 1197) calcul (0.16s) [dist/formulaires/recherche] lien='http://mareaurbana.com.ar/spip.php?page=recherche', date='2009-08-12 10:09:32', date_redac='2009-08-12 10:09:32' (432 octets) Aug 12 10:09:32 174.36.241.149 (pid 1197) Creation du cache 1/-rec-rec-lang%3D.f7b97602 pour 3600 secondes Aug 12 10:09:32 174.36.241.149 (pid 1197) calcul (0.08s) [dist/inc-rubriques] fond='inc-rubriques', lang='fr', date='2009-08-12 10:09:32', date_redac='2009-08-12 10:09:32' (460 octets) Aug 12 10:09:32 174.36.241.149 (pid 1197) Creation du cache 2/-inc_rubriques-fr.e683b3fb pour 3600 secondes Aug 12 10:09:32 174.36.241.149 (pid 1197) calcul (0.00s) [dist/inc-pied] fond='inc-pied', skel='dist/sommaire.html', lang='fr', date='2009-08-12 10:09:32', date_redac='2009-08-12 10:09:32' (776 octets) Aug 12 10:09:32 174.36.241.149 (pid 1197) Creation du cache 4/-inc-dis-som-fr.d00aeabd pour 3600 secondes Aug 12 10:12:42 174.36.228.156 (pid 1197) calcul (0.84s) [dist/backend] page='backend', date_redac='2009-08-12 10:12:41', date='2009-08-12 10:12:41' (2104 octets) Aug 12 10:12:45 174.36.228.156 (pid 1197) Creation du cache 1/spip%3Fpage%3Dbackend.c7a5373f pour 3600 secondes Aug 12 10:12:46 174.36.228.156 (pid 1197) calcul (0.17s) [dist/modeles/lesauteurs] id_article='108', fond='modeles/lesauteurs', lang='es', date='2009-08-12 10:12:46', date_redac='2009-08-12 10:12:46' (46 octets) Aug 12 10:12:46 174.36.228.156 (pid 1197) calcul (0.13s) [dist/modeles/img] lang='es', fond='modeles/img', id='93', id_document='93', align='center', date='2009-08-12 10:12:46', date_redac='2009-08-12 10:12:46' (170 octets) Aug 12 10:12:46 174.36.228.156 (pid 1197) calcul (0.02s) [dist/modeles/img] lang='es', fond='modeles/img', id='93', id_document='93', align='center', date='2009-08-12 10:12:46', date_redac='2009-08-12 10:12:46' (170 octets) Aug 12 10:12:47 174.36.228.156 (pid 1197) calcul (0.96s) [dist/inc-rss-item] fond='inc-rss-item', id_article='108', lang='es', date='2009-08-12 10:12:46', date_redac='2009-08-12 10:12:46' (4445 octets) Aug 12 10:12:47 174.36.228.156 (pid 1197) Creation du cache 0/-inc_rss_item-108-es.f2afd6fe pour 3600 secondes Aug 12 10:12:47 174.36.228.156 (pid 1197) calcul (0.00s) [dist/modeles/lesauteurs] id_article='107', fond='modeles/lesauteurs', lang='es', date='2009-08-12 10:12:47', date_redac='2009-08-12 10:12:47' (46 octets) Aug 12 10:12:47 174.36.228.156 (pid 1197) calcul (0.01s) [dist/modeles/img] lang='es', fond='modeles/img', id='89', id_document='89', date='2009-08-12 10:12:47', date_redac='2009-08-12 10:12:47' (141 octets) Aug 12 10:12:47 174.36.228.156 (pid 1197) calcul (0.01s) [dist/modeles/img] lang='es', fond='modeles/img', id='89', id_document='89', date='2009-08-12 10:12:47', date_redac='2009-08-12 10:12:47' (141 octets) Aug 12 10:12:47 174.36.228.156 (pid 1197) calcul (0.23s) [dist/inc-rss-item] fond='inc-rss-item', id_article='107', lang='es', date='2009-08-12 10:12:47', date_redac='2009-08-12 10:12:47' (3532 octets) Aug 12 10:1 = strpos($fromTagOpen, '>'); /* * Let's catch any non-terminated tags and skip over them */ if ($tagOpen_end === false) { $postTag = substr($postTag, $tagOpen_start +1); $tagOpen_start = strpos($postTag, '<'); continue; } /* * Do we have a nested tag? */ $tagOpen_nested = strpos($fromTagOpen, '<'); $tagOpen_nested_end = strpos(substr($postTag, $tagOpen_end), '>'); if (($tagOpen_nested !== false) && ($tagOpen_nested < $tagOpen_end)) { $preTag .= substr($postTag, 0, ($tagOpen_nested +1)); $postTag = substr($postTag, ($tagOpen_nested +1)); $tagOpen_start = strpos($postTag, '<'); continue; } /* * Lets get some information about our tag and setup attribute pairs */ $tagOpen_nested = (strpos($fromTagOpen, '<') + $tagOpen_start +1); $currentTag = substr($fromTagOpen, 0, $tagOpen_end); $tagLength = strlen($currentTag); $tagLeft = $currentTag; $attrSet = array (); $currentSpace = strpos($tagLeft, ' '); /* * Are we an open tag or a close tag? */ if (substr($currentTag, 0, 1) == "/") { // Close Tag $isCloseTag = true; list ($tagName) = explode(' ', $currentTag); $tagName = substr($tagName, 1); } else { // Open Tag $isCloseTag = false; list ($tagName) = explode(' ', $currentTag); } /* * Exclude all "non-regular" tagnames * OR no tagname * OR remove if xssauto is on and tag is blacklisted */ if ((!preg_match("/^[a-z][a-z0-9]*$/i", $tagName)) || (!$tagName) || ((in_array(strtolower($tagName), $this->tagBlacklist)) && ($this->xssAuto))) { $postTag = substr($postTag, ($tagLength +2)); $tagOpen_start = strpos($postTag, '<'); // Strip tag continue; } /* * Time to grab any attributes from the tag... need this section in * case attributes have spaces in the values. */ while ($currentSpace !== false) { $fromSpace = substr($tagLeft, ($currentSpace +1)); $nextSpace = strpos($fromSpace, ' '); $openQuotes = strpos($fromSpace, '"'); $closeQuotes = strpos(substr($fromSpace, ($openQuotes +1)), '"') + $openQuotes +1; /* * Do we have an attribute to process? [check for equal sign] */ if (strpos($fromSpace, '=') !== false) { /* * If the attribute value is wrapped in quotes we need to * grab the substring from the closing quote, otherwise grab * till the next space */ if (($openQuotes !== false) && (strpos(substr($fromSpace, ($openQuotes +1)), '"') !== false)) { $attr = substr($fromSpace, 0, ($closeQuotes +1)); } else { $attr = substr($fromSpace, 0, $nextSpace); } } else { /* * No more equal signs so add any extra text in the tag into * the attribute array [eg. checked] */ $attr = substr($fromSpace, 0, $nextSpace); } // Last Attribute Pair if (!$attr) { $attr = $fromSpace; } /* * Add attribute pair to the attribute array */ $attrSet[] = $attr; /* * Move search point and continue iteration */ $tagLeft = substr($fromSpace, strlen($attr)); $currentSpace = strpos($tagLeft, ' '); } /* * Is our tag in the user input array? */ $tagFound = in_array(strtolower($tagName), $this->tagsArray); /* * If the tag is allowed lets append it to the output string */ if ((!$tagFound && $this->tagsMethod) || ($tagFound && !$this->tagsMethod)) { /* * Reconstruct tag with allowed attributes */ if (!$isCloseTag) { // Open or Single tag $attrSet = $this->filterAttr($attrSet); $preTag .= '<'.$tagName; for ($i = 0; $i < count($attrSet); $i ++) { $preTag .= ' '.$attrSet[$i]; } /* * Reformat single tags to XHTML */ if (strpos($fromTagOpen, "'; } else { $preTag .= ' />'; } } else { // Closing Tag $preTag .= ''; } } /* * Find next tag's start and continue iteration */ $postTag = substr($postTag, ($tagLength +2)); $tagOpen_start = strpos($postTag, '<'); //print "T: $preTag\n"; } /* * Append any code after the end of tags and return */ if ($postTag != '<') { $preTag .= $postTag; } return $preTag; } /** * Internal method to strip a tag of certain attributes * * @access protected * @param array $attrSet Array of attribute pairs to filter * @return array $newSet Filtered array of attribute pairs */ function filterAttr($attrSet) { /* * Initialize variables */ $newSet = array (); /* * Iterate through attribute pairs */ for ($i = 0; $i < count($attrSet); $i ++) { /* * Skip blank spaces */ if (!$attrSet[$i]) { continue; } /* * Split into name/value pairs */ $attrSubSet = explode('=', trim($attrSet[$i]), 2); list ($attrSubSet[0]) = explode(' ', $attrSubSet[0]); /* * Remove all "non-regular" attribute names * AND blacklisted attributes */ if ((!eregi("^[a-z]*$", $attrSubSet[0])) || (($this->xssAuto) && ((in_array(strtolower($attrSubSet[0]), $this->attrBlacklist)) || (substr($attrSubSet[0], 0, 2) == 'on')))) { continue; } /* * XSS attribute value filtering */ if ($attrSubSet[1]) { // strips unicode, hex, etc $attrSubSet[1] = str_replace('&#', '', $attrSubSet[1]); // strip normal newline within attr value $attrSubSet[1] = preg_replace('/\s+/', '', $attrSubSet[1]); // strip double quotes $attrSubSet[1] = str_replace('"', '', $attrSubSet[1]); // [requested feature] convert single quotes from either side to doubles (Single quotes shouldn't be used to pad attr value) if ((substr($attrSubSet[1], 0, 1) == "'") && (substr($attrSubSet[1], (strlen($attrSubSet[1]) - 1), 1) == "'")) { $attrSubSet[1] = substr($attrSubSet[1], 1, (strlen($attrSubSet[1]) - 2)); } // strip slashes $attrSubSet[1] = stripslashes($attrSubSet[1]); } /* * Autostrip script tags */ if (InputFilter :: badAttributeValue($attrSubSet)) { continue; } /* * Is our attribute in the user input array? */ $attrFound = in_array(strtolower($attrSubSet[0]), $this->attrArray); /* * If the tag is allowed lets keep it */ if ((!$attrFound && $this->attrMethod) || ($attrFound && !$this->attrMethod)) { /* * Does the attribute have a value? */ if ($attrSubSet[1]) { $newSet[] = $attrSubSet[0].'="'.$attrSubSet[1].'"'; } elseif ($attrSubSet[1] == "0") { /* * Special Case * Is the value 0? */ $newSet[] = $attrSubSet[0].'="0"'; } else { $newSet[] = $attrSubSet[0].'="'.$attrSubSet[0].'"'; } } } return $newSet; } /** * Function to determine if contents of an attribute is safe * * @access protected * @param array $attrSubSet A 2 element array for attributes name,value * @return boolean True if bad code is detected */ function badAttributeValue($attrSubSet) { $attrSubSet[0] = strtolower($attrSubSet[0]); $attrSubSet[1] = strtolower($attrSubSet[1]); return (((strpos($attrSubSet[1], 'expression') !== false) && ($attrSubSet[0]) == 'style') || (strpos($attrSubSet[1], 'javascript:') !== false) || (strpos($attrSubSet[1], 'behaviour:') !== false) || (strpos($attrSubSet[1], 'vbscript:') !== false) || (strpos($attrSubSet[1], 'mocha:') !== false) || (strpos($attrSubSet[1], 'livescript:') !== false)); } /** * Try to convert to plaintext * * @access protected * @param string $source * @return string Plaintext string */ function decode($source) { // url decode $source = html_entity_decode($source, ENT_QUOTES, "ISO-8859-1"); // convert decimal $source = preg_replace('/&#(\d+);/me', "chr(\\1)", $source); // decimal notation // convert hex $source = preg_replace('/&#x([a-f0-9]+);/mei', "chr(0x\\1)", $source); // hex notation return $source; } /** * Method to be called by another php script. Processes for SQL injection * * @access public * @param mixed $source input string/array-of-string to be 'cleaned' * @param resource $connection - An open MySQL connection * @return string 'cleaned' version of input parameter */ function safeSQL($source, & $connection) { // clean all elements in this array if (is_array($source)) { foreach ($source as $key => $value) { // filter element for SQL injection if (is_string($value)) { $source[$key] = $this->quoteSmart($this->decode($value), $connection); } } return $source; // clean this string } else if (is_string($source)) { // filter source for SQL injection if (is_string($source)) { return $this->quoteSmart($this->decode($source), $connection); } // return parameter as given } else { return $source; } } /** * Method to escape a string * * @author Chris Tobin * @author Daniel Morris * * @access protected * @param string $source * @param resource $connection An open MySQL connection * @return string Escaped string */ function quoteSmart($source, & $connection) { /* * Strip escaping slashes if necessary */ if (get_magic_quotes_gpc()) { $source = stripslashes($source); } /* * Escape numeric and text values */ $source = $this->escapeString($source, $connection); return $source; } /** * @author Chris Tobin * @author Daniel Morris * * @access protected * @param string $source * @param resource $connection An open MySQL connection * @return string Escaped string */ function escapeString($string, & $connection) { /* * Use the appropriate escape string depending upon which version of php * you are running */ if (version_compare(phpversion(), '4.3.0', '<')) { $string = mysql_escape_string($string); } else { $string = mysql_real_escape_string($string); } return $string; } } ?>
Warning: Cannot modify header information - headers already sent by (output started at /home/ts111/tidycms.com/includes/phpmailer/class.phpmailer.php:117) in /home/ts111/tidycms.com/includes/joomla.php on line 697
-filmy-skachat-besplatno-comment.html"> comment</a> <a href="http://woman.girls-poisk.info"> - 14 </a> <a href="http://woman.girls-poisk.info/naiti-besplatnoe-video-golyh-molodyh-devchonok-let-18-22.html"> 18 22</a> <a href="http://devstvennoe.girls-poisk.info"> - </a> <a href="http://devstvennoe.girls-poisk.info/video-seks-phorum.html"> phorum</a> <a href="http://univer.girls-poisk.info"> - </a> <a href="http://univer.girls-poisk.info/foto-molodenkih-devushek.html"> </a> <a href="http://sex-vo-vlagalishe.girls-poisk.info"> - </a> <a href="http://sex-vo-vlagalishe.girls-poisk.info/porno-devochki-molodenke.html"> </a> <a href="http://youtong.girls-poisk.info"> - </a> <a href="http://youtong.girls-poisk.info/jestkoe-porno-video-seks.html"> </a> <a href="http://woomen-girl.girls-poisk.info"> - journal</a> <a href="http://woomen-girl.girls-poisk.info/online-porno-celki.html">online </a> <a href="http://vushko.girls-poisk.info"> -</a> <a href="http://vushko.girls-poisk.info/orgii-kazantip-blog.html"> blog</a> <a href="http://virgin.girls-poisk.info"> - </a> <a href="http://virgin.girls-poisk.info/besplatno-porno-roliki-podrostki.html"> </a> <a href="http://vaginator.girls-poisk.info"> - </a> <a href="http://vaginator.girls-poisk.info/porno-seks-gei.html"> </a> <a href="http://anus.girls-poisk.info"> - </a> <a href="http://anus.girls-poisk.info/devushki-posle-seksa.html"> </a> <a href="http://free.girls-poisk.info"> - </a> <a href="http://free.girls-poisk.info/porno-foto-svety.html"> </a> <a href="http://stream.girls-poisk.info"> - </a> <a href="http://stream.girls-poisk.info/porno-multiki-hentai-besplatno.html"> </a> <a href="http://liju.girls-poisk.info"> - </a> <a href="http://liju.girls-poisk.info/seks-porno-anal.html"> </a> <a href="http://download.girls-poisk.info"> - journal</a> <a href="http://download.girls-poisk.info/porno-seks-telki-ebutsya-blogs.html"> blogs</a> <a href="http://porno.girls-poisk.info"> 3gp - + 3gp </a> <a href="http://porno.girls-poisk.info/3gp-video-porno-post-new-topic.html">3gp post new topic</a> <a href="http://brunetko.girls-poisk.info"> - forum</a> <a href="http://brunetko.girls-poisk.info/porno-brunetok-forumdisplay-php-f.html"> forumdisplay php f</a> <a href="http://ananizm.girls-poisk.info"> - forum</a> <a href="http://ananizm.girls-poisk.info/jestkii-seks-smotret-comment.html"> comment</a> <a href="http://clitor.girls-poist */ DEFI DEFINE('_READ_MORE_REGISTER','Register to read more...'); DEFINE('_MORE','More...'); DEFINE('_ON_NEW_CONTENT', "A new content item has been submitted by [ %s ] titled [ %s ] from section [ %s ] and category [ %s ]" ); DEFINE('_SEL_CATEGORY','- Select Category -'); DEFINE('_SEL_SECTION','- Select Section -'); DEFINE('_SEL_AUTHOR','- Select Author -'); DEFINE('_SEL_POSITION','- Select Position -'); DEFINE('_SEL_TYPE','- Select Type -'); DEFINE('_EMPTY_CATEGORY','This Category is currently empty'); DEFINE('_EMPTY_BLOG','There are no items to display'); DEFINE('_NOT_EXIST','The page you are trying to access does not exist.
Please select a page from the main menu.'); /** classes/html/modules.php */ DEFINE('_BUTTON_VOTE','Vote'); DEFINE('_BUTTON_RESULTS','Results'); DEFINE('_USERNAME','Username'); DEFINE('_LOST_PASSWORD','Lost Password?'); DEFINE('_PASSWORD','Password'); DEFINE('_BUTTON_LOGIN','Login'); DEFINE('_BUTTON_LOGOUT','Logout'); DEFINE('_NO_ACCOUNT','No account yet?'); DEFINE('_CREATE_ACCOUNT','Register'); DEFINE('_VOTE_POOR','Poor'); DEFINE('_VOTE_BEST','Best'); DEFINE('_USER_RATING','User Rating'); DEFINE('_RATE_BUTTON','Rate'); DEFINE('_REMEMBER_ME','Remember me'); /** contact.php */ DEFINE('_ENQUIRY','Enquiry'); DEFINE('_ENQUIRY_TEXT','This is an enquiry e-mail via %s from:'); DEFINE('_COPY_TEXT','This is a copy of the following message you sent to %s via %s '); DEFINE('_COPY_SUBJECT','Copy of: '); DEFINE('_THANK_MESSAGE','Thank you for your e-mail'); DEFINE('_CLOAKING','This email address is being protected from spam bots, you need Javascript enabled to view it'); DEFINE('_CONTACT_HEADER_NAME','Name'); DEFINE('_CONTACT_HEADER_POS','Position'); DEFINE('_CONTACT_HEADER_EMAIL','Email'); DEFINE('_CONTACT_HEADER_PHONE','Phone'); DEFINE('_CONTACT_HEADER_FAX','Fax'); DEFINE('_CONTACTS_DESC','The Contact list for this Website.'); DEFINE('_CONTACT_MORE_THAN','You cannot enter more than one email address.'); /** classes/html/contact.php */ DEFINE('_CONTACT_TITLE','Contact'); DEFINE('_EMAIL_DESCRIPTION','Send an Email to this Contact:'); DEFINE('_NAME_PROMPT',' Enter your name:'); DEFINE('_EMAIL_PROMPT',' E-mail address:'); DEFINE('_MESSAGE_PROMPT',' Enter your message:'); DEFINE('_SEND_BUTTON','Send'); DEFINE('_CONTACT_FORM_NC','Please make sure the form is complete and valid.'); DEFINE('_CONTACT_TELEPHONE','Telephone: '); DEFINE('_CONTACT_MOBILE','Mobile: '); DEFINE('_CONTACT_FAX','Fax: '); DEFINE('_CONTACT_EMAIL','Email: '); DEFINE('_CONTACT_NAME','Name: '); DEFINE('_CONTACT_POSITION','Position: '); DEFINE('_CONTACT_ADDRESS','Address: '); DEFINE('_CONTACT_MISC','Information: '); DEFINE('_CONTACT_SEL','Select Contact:'); DEFINE('_CONTACT_NONE','There are no Contact Details listed.'); DEFINE('_CONTACT_ONE_EMAIL','You cannot enter more than one email address.'); DEFINE('_EMAIL_A_COPY','Email a copy of this message to your own address'); DEFINE('_CONTACT_DOWNLOAD_AS','Download information as a'); DEFINE('_VCARD','VCard'); /** pageNavigation */ DEFINE('_PN_LT','<'); DEFINE('_PN_RT','>'); DEFINE('_PN_PAGE','Page'); DEFINE('_PN_OF','of'); DEFINE('_PN_START','Start'); DEFINE('_PN_PREVIOUS','Prev'); DEFINE('_PN_NEXT','Next'); DEFINE('_PN_END','End'); DEFINE('_PN_DISPLAY_NR','Display #'); DEFINE('_PN_RESULTS','Results'); /** emailfriend */ DEFINE('_EMAIL_TITLE','E-mail a friend'); DEFINE('_EMAIL_FRIEND','E-mail this to a friend.'); DEFINE('_EMAIL_FRIEND_ADDR',"Your friend's E-mail:"); DEFINE('_EMAIL_YOUR_NAME','Your Name:'); DEFINE('_EMAIL_YOUR_MAIL','Your E-mail:'); DEFINE('_SUBJECT_PROMPT',' Message subject:'); DEFINE('_BUTTON_SUBMIT_MAIL','Send e-mail'); DEFINE('_BUTTON_CANCEL','Cancel'); DEFINE('_EMAIL_ERR_NOINFO','You must enter your valid e-mail and the valid e-mail to send to.'); DEFINE('_EMAIL_MSG','The following page from the "%s" website has been sent to you by %s ( %s ). You can access it at the following url: %s'); DEFINE('_EMAIL_INFO','Item sent by'); DEFINE('_EMAIL_SENT','This item has been sent to'); DEFINE('_PROMPT_CLOSE','Close Window'); /** classes/html/content.php */ DEFINE('_AUTHOR_BY', ' Contributed by'); DEFINE('_WRITTEN_BY', ' Written by'); DEFINE('_LAST_UPDATED', 'Last Updated'); DEFINE('_BACK','[ Back ]'); DEFINE('_LEGEND','Legend'); DEFINE('_DATE','Date'); DEFINE('_ORDER_DROPDOWN','Order'); DEFINE('_HEADER_TITLE','Item Title'); DEFINE('_HEADER_AUTHOR','Author'); DEFINE('_HEADER_SUBMITTED','Submitted'); DEFINE('_HEADER_HITS','Hits'); DEFINE('_E_EDIT','Edit'); DEFINE('_E_ADD','Add'); DEFINE('_E_WARNUSER','Please either Cancel or Save the current change'); DEFINE('_E_WARNTITLE','Content item must have a title'); DEFINE('_E_WARNTEXT','Content item must have intro text'); DEFINE('_E_WARNCAT','Please select a category'); DEFINE('_E_CONTENT','Content'); DEFINE('_E_TITLE','Title:'); DEFINE('_E_CATEGORY','Category:'); DEFINE('_E_INTRO','Intro Text'); DEFINE('_E_MAIN','Main Text'); DEFINE('_E_MOSIMAGE','INSERT {mosimage}'); DEFINE('_E_IMAGES','Images'); DEFINE('_E_GALLERY_IMAGES','Gallery Images'); DEFINE('_E_CONTENT_IMAGES','Content Images'); DEFINE('_E_EDIT_IMAGE','Edit Image'); DEFINE('_E_NO_IMAGE','No Image'); DEFINE('_E_INSERT','Insert'); DEFINE('_E_UP','Up'); DEFINE('_E_DOWN','Down'); DEFINE('_E_REMOVE','Remove'); DEFINE('_E_SOURCE','Source:'); DEFINE('_E_ALIGN','Align:'); DEFINE('_E_ALT','Alt Text:'); DEFINE('_E_BORDER','Border:'); DEFINE('_E_CAPTION','Caption'); DEFINE('_E_CAPTION_POSITION','Caption Position'); DEFINE('_E_CAPTION_ALIGN','Caption Align'); DEFINE('_E_CAPTION_WIDTH','Caption Width'); DEFINE('_E_APPLY','Apply'); DEFINE('_E_PUBLISHING','Publishing'); DEFINE('_E_STATE','State:'); DEFINE('_E_AUTHOR_ALIAS','Author Alias:'); DEFINE('_E_ACCESS_LEVEL','Access Level:'); DEFINE('_E_ORDERING','Ordering:'); DEFINE('_E_START_PUB','Start Publishing:'); DEFINE('_E_FINISH_PUB','Finish Publishing:'); DEFINE('_E_SHOW_FP','Show on Front Page:'); DEFINE('_E_HIDE_TITLE','Hide Item Title:'); DEFINE('_E_METADATA','Metadata'); DEFINE('_E_M_DESC','Description:'); DEFINE('_E_M_KEY','Keywords:'); DEFINE('_E_SUBJECT','Subject:'); DEFINE('_E_EXPIRES','Expiry Date:'); DEFINE('_E_VERSION','Version:'); DEFINE('_E_ABOUT','About'); DEFINE('_E_CREATED','Created:'); DEFINE('_E_LAST_MOD','Last Modified:'); DEFINE('_E_HITS','Hits:'); DEFINE('_E_SAVE','Save'); DEFINE('_E_CANCEL','Cancel'); DEFINE('_E_REGISTERED','Registered Users Only'); DEFINE('_E_ITEM_INFO','Item Information'); DEFINE('_E_ITEM_SAVED','Item successfully saved.'); DEFINE('_ITEM_PREVIOUS','< Prev'); DEFINE('_ITEM_NEXT','Next >'); DEFINE('_KEY_NOT_FOUND','Key not found'); /** content.php */ DEFINE('_SECTION_ARCHIVE_EMPTY','There are currently no Archived Entries for this Section, please come back later'); DEFINE('_CATEGORY_ARCHIVE_EMPTY','There are currently no Archived Entries for this Category, please come back later'); DEFINE('_HEADER_SECTION_ARCHIVE','Section Archives'); DEFINE('_HEADER_CATEGORY_ARCHIVE','Category Archives'); DEFINE('_ARCHIVE_SEARCH_FAILURE','There are no Archived entries for %s %s'); // values are month then year DEFINE('_ARCHIVE_SEARCH_SUCCESS','Here are the Archived entries for %s %s'); // values are month then year DEFINE('_FILTER','Filter'); DEFINE('_ORDER_DROPDOWN_DA','Date asc'); DEFINE('_ORDER_DROPDOWN_DD','Date desc'); DEFINE('_ORDER_DROPDOWN_TA','Title asc'); DEFINE('_ORDER_DROPDOWN_TD','Title desc'); DEFINE('_ORDER_DROPDOWN_HA','Hits asc'); DEFINE('_ORDER_DROPDOWN_HD','Hits desc'); DEFINE('_ORDER_DROPDOWN_AUA','Author asc'); DEFINE('_ORDER_DROPDOWN_AUD','Author desc'); DEFINE('_ORDER_DROPDOWN_O','Ordering'); /** poll.php */ DEFINE('_ALERT_ENABLED','Cookies must be enabled!'); DEFINE('_ALREADY_VOTE','You already voted for this poll today!'); DEFINE('_NO_SELECTION','No selection has been made, please try again'); DEFINE('_THANKS','Thanks for your vote!'); DEFINE('_SELECT_POLL','Select Poll from the list'); /** classes/html/poll.php */ DEFINE('_JAN','January'); DEFINE('_FEB','February'); DEFINE('_MAR','March'); DEFINE('_APR','April'); DEFINE('_MAY','May'); DEFINE('_JUN','June'); DEFINE('_JUL','July'); DEFINE('_AUG','August'); DEFINE('_SEP','September'); DEFINE('_OCT','October'); DEFINE('_NOV','November'); DEFINE('_DEC','December'); DEFINE('_POLL_TITLE','Poll - Results'); DEFINE('_SURVEY_TITLE','Poll Title:'); DEFINE('_NUM_VOTERS','Number of Voters'); DEFINE('_FIRST_VOTE','First Vote'); DEFINE('_LAST_VOTE','Last Vote'); DEFINE('_SEL_POLL','Select Poll:'); DEFINE('_NO_RESULTS','There are no results for this poll.'); /** registration.php */ DEFINE('_ERROR_PASS','Sorry, no corresponding user was found'); DEFINE('_NEWPASS_MSG','The user account $checkusername has this email associated with it.\n' .'A web user from $mosConfig_live_site has just requested that a new password be sent.\n\n' .' Your New Password is: $newpass\n\nIf you didn\'t ask for this, don\'t worry.' .' You are seeing this message, not them. If this was an error just login with your' .' new password and then change your password to what you would like it to be.'); DEFINE('_NEWPASS_SUB','$_sitename :: New password for - $checkusername'); DEFINE('_NEWPASS_SENT','New User Password created and sent!'); DEFINE('_REGWARN_NAME','Please enter your name.'); DEFINE('_REGWARN_UNAME','Please enter a user name.'); DEFINE('_REGWARN_MAIL','Please enter a valid e-mail address.'); DEFINE('_REGWARN_PASS','Please enter a valid password. No spaces, more than 6 characters and contain 0-9,a-z,A-Z'); DEFINE('_REGWARN_VPASS1','Please verify the password.'); DEFINE('_REGWARN_VPASS2','Password and verification do not match, please try again.'); DEFINE('_REGWARN_INUSE','This username/password already in use. Please try another.'); DEFINE('_REGWARN_EMAIL_INUSE', 'This e-mail is already registered. If you forgot the password click on "Lost your Password" and new password will be sent to you.'); DEFINE('_SEND_SUB','Account details for %s at %s'); DEFINE('_USEND_MSG_ACTIVATE', 'Hello %s, Thank you for registering at %s. Your account is created and must be activated before you can use it. To activate the account click on the following link or copy-paste it in your browser: %s After activation you may login to %s using the following username and password: Username - %s Password - %s'); DEFINE('_USEND_MSG', "Hello %s, Thank you for registering at %s. You may now login to %s using the username and password you registered with."); DEFINE('_USEND_MSG_NOPASS','Hello $name,\n\nYou have been added as a user to $mosConfig_live_site.\n' .'You may login to $mosConfig_live_site with the username and password you registered with.\n\n' .'Please do not respond to this message as it is automatically generated and is for information purposes only\n'); DEFINE('_ASEND_MSG','Hello %s, A new user has registered at %s. This email contains their details: Name - %s e-mail - %s Username - %s Please do not respond to this message as it is automatically generated and is for information purposes only'); DEFINE('_REG_COMPLETE_NOPASS','
Registration Complete!

  ' .'You may now login.
  '); DEFINE('_REG_COMPLETE', '
Registration Complete!

You may now login.'); DEFINE('_REG_COMPLETE_ACTIVATE', '
Registration Complete!

Your account has been created and activation link has been sent to the e-mail address you entered. Note that you must activate the account by clicking on the activation link when you get the e-mail before you can login.'); DEFINE('_REG_ACTIVATE_COMPLETE', '
Activation Complete!

Your account has been successfully activated. You can now login using the username and password you chose during the registration.'); DEFINE('_REG_ACTIVATE_NOT_FOUND', '
Invalid Activation Link!

There is no such account in our database or the account has already been activated.'); /** classes/html/registration.php */ DEFINE('_PROMPT_PASSWORD','Lost your Password?'); DEFINE('_NEW_PASS_DESC','Please enter your Username and e-mail address then click on the Send Password button.
' .'You will receive a new password shortly. Use this new password to access the site.'); DEFINE('_PROMPT_UNAME','Username:'); DEFINE('_PROMPT_EMAIL','E-mail Address:'); DEFINE('_BUTTON_SEND_PASS','Send Password'); DEFINE('_REGISTER_TITLE','Registration'); DEFINE('_REGISTER_NAME','Name:'); DEFINE('_REGISTER_UNAME','Username:'); DEFINE('_REGISTER_EMAIL','E-mail:'); DEFINE('_REGISTER_PASS','Password:'); DEFINE('_REGISTER_VPASS','Verify Password:'); DEFINE('_REGISTER_REQUIRED','Fields marked with an asterisk (*) are required.'); DEFINE('_BUTTON_SEND_REG','Send Registration'); DEFINE('_SENDING_PASSWORD','Your password will be sent to the above e-mail address.
Once you have received your' .' new password you can login in and change it.'); /** classes/html/search.php */ DEFINE('_SEARCH_TITLE','Search'); DEFINE('_PROMPT_KEYWORD','Search Keyword'); DEFINE('_SEARCH_MATCHES','returned %d matches'); DEFINE('_CONCLUSION','Total $totalRows results found. Search for [ $searchword ] with'); DEFINE('_NOKEYWORD','No results were found'); DEFINE('_IGNOREKEYWORD','One or more common words were ignored in the search'); DEFINE('_SEARCH_ANYWORDS','Any words'); DEFINE('_SEARCH_ALLWORDS','All words'); DEFINE('_SEARCH_PHRASE','Exact phrase'); DEFINE('_SEARCH_NEWEST','Newest first'); DEFINE('_SEARCH_OLDEST','Oldest first'); DEFINE('_SEARCH_POPULAR','Most popular'); DEFINE('_SEARCH_ALPHABETICAL','Alphabetical'); DEFINE('_SEARCH_CATEGORY','Section/Category'); DEFINE('_SEARCH_MESSAGE','Search term must be a minimum of 3 characters and a maximum of 20 characters'); DEFINE('_SEARCH_ARCHIVED','Archived'); DEFINE('_SEARCH_CATBLOG','Category Blog'); DEFINE('_SEARCH_CATLIST','Category List'); DEFINE('_SEARCH_NEWSFEEDS','Newsfeeds'); DEFINE('_SEARCH_SECLIST','Section List'); DEFINE('_SEARCH_SECBLOG','Section Blog'); /** templates/*.php */ DEFINE('_ISO','charset=iso-8859-1'); DEFINE('_DATE_FORMAT','l, F d Y'); //Uses PHP's DATE Command Format - Depreciated /** * Modify this line to reflect how you want the date to appear in your site * *e.g. DEFINE("_DATE_FORMAT_LC","%A, %d %B %Y %H:%M"); //Uses PHP's strftime Command Format */ DEFINE('_DATE_FORMAT_LC',"%A, %d %B %Y"); //Uses PHP's strftime Command Format DEFINE('_DATE_FORMAT_LC2',"%A, %d %B %Y %H:%M"); DEFINE('_SEARCH_BOX','search...'); DEFINE('_NEWSFLASH_BOX','Newsflash!'); DEFINE('_MAINMENU_BOX','Main Menu'); /** classes/html/usermenu.php */ DEFINE('_UMENU_TITLE','User Menu'); DEFINE('_HI','Hi, '); /** user.php */ DEFINE('_SAVE_ERR','Please complete all the fields.'); DEFINE('_THANK_SUB','Thanks for your submission. Your submission will now be reviewed before being posted to the site.'); DEFINE('_THANK_SUB_PUB','Thanks for your submission.'); DEFINE('_UP_SIZE','You cannot upload files greater than 15kb in size.'); DEFINE('_UP_EXISTS','Image $userfile_name already exists. Please rename the file and try again.'); DEFINE('_UP_COPY_FAIL','Failed to copy'); DEFINE('_UP_TYPE_WARN','You may only upload a gif, or jpg image.'); DEFINE('_MAIL_SUB','User Submitted'); DEFINE('_MAIL_MSG','Hello $adminName,\n\n\nA user submitted $type:\n [ $title ]\n has been just been submitted by user:\n [ $author ]\n' .' for $mosConfig_live_site.\n\n\n\n' .'Please go to $mosConfig_live_site/administrator to view and approve this $type.\n\n' .'Please do not respond to this message as it is automatically generated and is for information purposes only\n'); DEFINE('_PASS_VERR1','If changing your password please enter the password again to verify.'); DEFINE('_PASS_VERR2','If changing your password please make sure the password and verification match.'); DEFINE('_UNAME_INUSE','This username already in use.'); DEFINE('_UPDATE','Update'); DEFINE('_USER_DETAILS_SAVE','Your settings have been saved.'); DEFINE('_USER_LOGIN','User Login'); /** components/com_user */ DEFINE('_EDIT_TITLE','Edit Your Details'); DEFINE('_YOUR_NAME','Your Name:'); DEFINE('_EMAIL','e-mail:'); DEFINE('_UNAME','User Name:'); DEFINE('_PASS','Password:'); DEFINE('_VPASS','Verify Password:'); DEFINE('_SUBMIT_SUCCESS','Submission Success!'); DEFINE('_SUBMIT_SUCCESS_DESC','Your item has been successfully submitted to our administrators. It will be reviewed before being published on this site.'); DEFINE('_WELCOME','Welcome!'); DEFINE('_WELCOME_DESC','Welcome to the user section of our site'); DEFINE('_CONF_CHECKED_IN','Checked out items have now been all checked in'); DEFINE('_CHECK_TABLE','Checking table'); DEFINE('_CHECKED_IN','Checked in '); DEFINE('_CHECKED_IN_ITEMS',' items'); DEFINE('_PASS_MATCH','Passwords do not match'); /** components/com_banners */ DEFINE('_BNR_CLIENT_NAME','You must select a name for the client.'); DEFINE('_BNR_CONTACT','You must select a contact for the client.'); DEFINE('_BNR_VALID_EMAIL','You must select a valid email for the client.'); DEFINE('_BNR_CLIENT','You must select a client,'); DEFINE('_BNR_NAME','You must select a name for the banner.'); DEFINE('_BNR_IMAGE','You must select a image for the banner.'); DEFINE('_BNR_URL','You must select a URL/Custom banner code for the banner.'); /** components/com_login */ DEFINE('_ALREADY_LOGIN','You are already logged in!'); DEFINE('_LOGOUT','Click here to logout'); DEFINE('_LOGIN_TEXT','Use the login and password fields opposite to gain full access'); DEFINE('_LOGIN_SUCCESS','You have successfully Logged In'); DEFINE('_LOGOUT_SUCCESS','You have successfully Logged Out'); DEFINE('_LOGIN_DESCRIPTION','To access the Private area of this site please Login'); DEFINE('_LOGOUT_DESCRIPTION','You are currently Logged in to the private area of this site'); /** components/com_weblinks */ DEFINE('_WEBLINKS_TITLE','Web Links'); DEFINE('_WEBLINKS_DESC','We are regularly out on the web. When we find a great site we list' .' it here for you to enjoy.
From the list below choose one of our weblink topics, then select a URL to visit.'); DEFINE('_HEADER_TITLE_WEBLINKS','Web Link'); DEFINE('_SECTION','Section:'); DEFINE('_SUBMIT_LINK','Submit A Web Link'); DEFINE('_URL','URL:'); DEFINE('_URL_DESC','Description:'); DEFINE('_NAME','Name:'); DEFINE('_WEBLINK_EXIST','There is a weblink already with that name, please try again.'); DEFINE('_WEBLINK_TITLE','Your Weblink must contain a title.'); /** components/com_newfeeds */ DEFINE('_FEED_NAME','Feed Name'); DEFINE('_FEED_ARTICLES','# Articles'); DEFINE('_FEED_LINK','Feed Link'); /** whos_online.php */ DEFINE('_WE_HAVE', 'We have '); DEFINE('_AND', ' and '); DEFINE('_GUEST_COUNT','%s guest'); DEFINE('_GUESTS_COUNT','%s guests'); DEFINE('_MEMBER_COUNT','%s member'); DEFINE('_MEMBERS_COUNT','%s members'); DEFINE('_ONLINE',' online'); DEFINE('_NONE','No Users Online'); /** modules/mod_random_image */ DEFINE('_NO_IMAGES','No Images'); /** modules/mod_stats.php */ DEFINE('_TIME_STAT','Time'); DEFINE('_MEMBERS_STAT','Members'); DEFINE('_HITS_STAT','Hits'); DEFINE('_NEWS_STAT','News'); DEFINE('_LINKS_STAT','WebLinks'); DEFINE('_VISITORS','Visitors'); /** /adminstrator/components/com_menus/admin.menus.html.php */ DEFINE('_MAINMENU_HOME','* The 1st Published item in this menu [mainmenu] is the default `Homepage` for the site *'); DEFINE('_MAINMENU_DEL','* You cannot `delete` this menu as it is required for the proper operation of Joomla! *'); DEFINE('_MENU_GROUP','* Some `Menu Types` appear in more than one group *'); /** administrators/components/com_users */ DEFINE('_NEW_USER_MESSAGE_SUBJECT', 'New User Details' ); DEFINE('_NEW_USER_MESSAGE', 'Hello %s, You have been added as a user to %s by an Administrator. This email contains your username and password to log into the %s Username - %s Password - %s Please do not respond to this message as it is automatically generated and is for information purposes only'); /** administrators/components/com_massmail */ DEFINE('_MASSMAIL_MESSAGE', "This is an email from '%s' Message: " ); /** includes/pdf.php */ DEFINE('_PDF_GENERATED','Generated:'); DEFINE('_PDF_POWERED','Powered by Joomla!'); ?>
Warning: Cannot modify header information - headers already sent by (output started at /home/ts111/tidycms.com/includes/phpmailer/class.phpmailer.php:117) in /home/ts111/tidycms.com/includes/joomla.php on line 1415

Warning: Cannot modify header information - headers already sent by (output started at /home/ts111/tidycms.com/includes/phpmailer/class.phpmailer.php:117) in /home/ts111/tidycms.com/index.php on line 226

Warning: Cannot modify header information - headers already sent by (output started at /home/ts111/tidycms.com/includes/phpmailer/class.phpmailer.php:117) in /home/ts111/tidycms.com/index.php on line 227

Warning: Cannot modify header information - headers already sent by (output started at /home/ts111/tidycms.com/includes/phpmailer/class.phpmailer.php:117) in /home/ts111/tidycms.com/index.php on line 228

Warning: Cannot modify header information - headers already sent by (output started at /home/ts111/tidycms.com/includes/phpmailer/class.phpmailer.php:117) in /home/ts111/tidycms.com/index.php on line 229

Warning: Cannot modify header information - headers already sent by (output started at /home/ts111/tidycms.com/includes/phpmailer/class.phpmailer.php:117) in /home/ts111/tidycms.com/index.php on line 230
!!edxSbd%XKA#%!j,.%wP@Fw P+ u*gD9~(:U7, E{55u_x *gt@+bBYNy98q 5TH!` 95 ojOs'-}q8,嬃26U5͹|{7FML|0%e1ĴJ58z!DT! HS w8̩%4[7v4 0F.A\(߷ڏO{m6Z>s$y8+UgݴFz$(y̔bBAFg; r@R P܁fa#sC A&&c8\dC4&UBLj ]C $&2HJٍDXoOw gl{0o$A7eAo$K]5b$ 1á'(ipc$B xF}uMLb9idWÄ|a/Yx-"zk5qzM3V;H- Z%[h&2K‡0S?CH%CٹWm%FTIHhZZc9 "Bqx.4L_fmcYi%N+L92~LHuE P%jx&5eTIxcOL&"FBC@Cnh+>3C5O;`ښiR]Fľ(q]2"ς/,@^r#;L4GaU0G!x { ? @L dv]rp˳͠D[M}$b# TgP;k3-[7UҶ҉8 9 W8X>ֆlIDb&8ʸ~%ՑgFK"wdQKSS@CZX*cg“DcٴO-,%<[jk1j3f+dH:U-2勰J%ԃ]aq;vכW-YYFf 3D;wqg_t>xمe-PVߞd}ֹmPyTUZU&Ϣ!"8 <Kmn"1&5|`cr9W 5pecS3})jdX%? 4iTSUx2,V1˳t%W\$]yk\ 1yQkQ=V]f5QiDQ d MK^&AkDFl/o+7eP.~E:Dd R&b:$꺒9r Q5;:3)Xp120>RL tpO؜"1^})fqyW08-n%S֮+(#!?wTE2%F<Ԙ*Aac"pФLDŽܳ3سKO 04/↌?sYْbOr->WŜC  BťVR.6$2/<9+3*6WR䁫vhZI@NчՌ2ѝ{{)jP77mM%FNΘm Bd1Pđ'f2*-7Tp1̴e8F]="Sdm*wMƆ7##'DN,Ջz|4@ Uuuwv̞ŝ?ˡA )j>EzƱ[xG|Vb $T':8 MNrp2(JN>V(Dif%,+Eu۲awxZT2FR&{B8Ƿ+C]=JsZRg,DZEN/KlX%Mauؿm(q}`0{494&6A|luMTUo0$,mndl|11,*ܤqʩlAX-hb79R_*edәT%P4 3¦80 x2MZ+{7O*sA U':p~oPwO"$Zpx0{;Gq}+IE ͉r4-p5M&MJ/b!mw<*ƉV(ȱ p7vfH|nTD-Re"F;޽FVnMacd>n࠵TrPr .5BKUpOrRV