Esempio n. 1
0
 function settings()
 {
     global $config, $language;
     // Define language
     $this->esoTalk->addLanguage("List of filtered words", "List of filtered words");
     $this->esoTalk->addLanguage("Enter each word on a new line", "Enter each word on a new line");
     $this->esoTalk->addLanguage("Make filter case sensitive?", "Make filter case sensitive?");
     $this->esoTalk->addLanguage("Replace each letter with this", "Replace each letter with");
     // Update captcha settings
     if (isset($_POST["Wordfilter"])) {
         $config["Wordfilter"]["Wordlist"] = $_POST["Wordfilter"]["Wordlist"];
         if ($_POST["Wordfilter"]["Case"] == "True") {
             $WordfilterCase = True;
         } else {
             $WordfilterCase = False;
         }
         $config["Wordfilter"]["Case"] = $WordfilterCase;
         $config["Wordfilter"]["Replace"] = $_POST["Wordfilter"]["Replace"];
         writeConfigFile("config/Wordfilter.php", '$config["Wordfilter"]', $config["Wordfilter"]);
         $this->esoTalk->message("changesSaved");
     }
     // Generate settings html
     if ($config["Wordfilter"]["Case"]) {
         $CaseValue = " checked";
     } else {
         $CaseValue = "";
     }
     $settingsHtml = "<form action='" . curLink() . "' method='post'>\n\t<ul class='form'>\n\t<li><label>{$language["List of filtered words"]}</label> <textarea name='Wordfilter[Wordlist]' class='textarea' rows=10 cols=40>{$config["Wordfilter"]["Wordlist"]}</textarea></li>\n\t<li><label></label><font style='color:#666666;size=6pt;'>{$language["Enter each word on a new line"]}</font></li>\t\n\t<li><label>{$language["Make filter case sensitive?"]}</label> <input name='Wordfilter[Case]' type='checkbox' class='checkbox' value='True'" . $CaseValue . "/></li>\n\t<li><label>{$language["Replace each letter with this"]}</label> <input type='text' name='Wordfilter[Replace]' class='text' value='{$config["Wordfilter"]["Replace"]}' size='1' maxlength='1'/></li>\t\n\t<li><label></label> " . $this->esoTalk->skin->button(array("value" => $language["Save changes"], "name" => "Wordfilter[submit]")) . "</li>\n\t</ul>\n\t</form>";
     return $settingsHtml;
 }
Esempio n. 2
0
 function init()
 {
     global $language, $config;
     // Logout if the user's asking for it
     if (@$_GET["q1"] == "logout") {
         $this->logout();
     }
     // Attempt to log in, and assign data to the user array
     if ($this->login(@$_POST["login"]["name"], @$_POST["login"]["password"])) {
         $this->user = $_SESSION["user"] + array("admin" => $_SESSION["user"]["account"] == "Administrator", "moderator" => $_SESSION["user"]["account"] == "Moderator" or $_SESSION["user"]["account"] == "Administrator", "member" => $_SESSION["user"]["account"] == "Member", "suspended" => $_SESSION["user"]["account"] == "Suspended" ? true : null);
         $this->user["color"] = min($this->user["color"], $this->skin->numberOfColors);
     }
     // Set the default avatarAlignment for logged out users
     if (!isset($_SESSION["avatarAlignment"])) {
         $_SESSION["avatarAlignment"] = $config["avatarAlignment"];
     }
     // Check for updates - only for the root admin and on non-ajax requests.
     if ($this->user["memberId"] == $config["rootAdmin"] and !$this->ajax) {
         // How long ago was the last update check? If it was any more than 1 day ago, check again now.
         if (file_exists("config/lastUpdateCheck.php")) {
             include "config/lastUpdateCheck.php";
         }
         if (!isset($lastUpdateCheck) or time() - $lastUpdateCheck >= 86400) {
             $this->checkForUpdates();
         }
     }
     // Star a conversation if necessary
     if (isset($_GET["star"])) {
         $this->star($_GET["star"]);
     }
     // Set the wrapper view
     if (filesize("config/custom.css") > 0) {
         $this->addCSS("config/custom.css");
     }
     $this->view = "wrapper.php";
     if (!$this->ajax) {
         // If the user is not logged in, prepare the bar to display the login form / join link
         if (!$this->user) {
             $this->addToBar("left", "<form action='" . curLink() . "' method='post' id='login'><div>\n<input id='loginName' name='login[name]' type='text' class='text' value='" . (!empty($_POST["login"]["name"]) ? $_POST["login"]["name"] : $language["Username"]) . "'/>\n<input id='loginPassword' name='login[password]' type='password' class='text' value='********'/>\n<input id='rememberMe' name='login[rememberMe]' type='checkbox' class='checkbox'/> <label for='rememberMe'>{$language["Remember me"]}</label>\n" . $this->skin->button(array("value" => $language["Log in"])) . "\n</div></form>\n<script type='text/javascript'>" . (empty($_POST["login"]["name"]) ? "makePlaceholder(\$('loginName'), '{$language["Username"]}');" : "") . "\nmakePlaceholder(\$('loginPassword'), '********');" . (!empty($_POST["login"]["name"]) ? "\$('loginPassword').focus()" : "") . "\n</script>", 100);
             $this->addToBar("left", "<a href='" . makeLink("join") . "'>{$language["Join this forum"]}</a>", 200);
             $this->addToBar("right", "<a href='" . makeLink("forgot-password") . "'>{$language["Forgot your password"]}</a>", 100);
         } else {
             $this->addToBar("left", "<strong><a href='" . makeLink("profile") . "'>{$this->user["name"]}</a>:</strong>", 100);
             $this->addToBar("left", "<a href='" . makeLink("") . "'>{$language["Home"]}</a>", 200);
             $this->addToBar("left", "<a href='" . makeLink("conversation", "new") . "'>{$language["Start a conversation"]}</a>", 300);
             $this->addToBar("left", "<a href='" . makeLink("settings") . "'>{$language["My settings"]}</a>", 400);
             $this->addToBar("left", "<a href='" . makeLink("logout") . "'>{$language["Log out"]}</a>", 1000);
             if ($this->user["admin"]) {
                 $this->addToBar("left", "<a href='" . makeLink("skins") . "'>{$language["Skins"]}</a>", 700);
                 $this->addToBar("left", "<a href='" . makeLink("plugins") . "'>{$language["Plugins"]}</a>", 800);
             }
         }
         $this->addToFooter("<a href='http://esotalk.com'>{$language["Donate to esoTalk"]}</a>");
         // Add the default scripts
         $this->addScript("js/esotalk.js", 100);
         $this->addLanguageToJS("ajaxRequestPending", "ajaxDisconnected");
     }
     $this->callHook("init");
 }
Esempio n. 3
0
 function addShoutsSection(&$controller)
 {
     global $language;
     $this->member =& $controller->member;
     // Add or delete a shout
     if (isset($_POST["shoutSubmit"])) {
         $this->addShout($_POST["shoutContent"]);
     }
     if (isset($_GET["deleteShout"]) and $shoutId = (int) $_GET["deleteShout"]) {
         $this->deleteShout($shoutId);
     }
     // Get the shouts and generate the shout html
     if (!empty($_GET["limit"])) {
         $this->limit = (int) $_GET["limit"];
     }
     $controller->shouts = $this->getShouts($controller->member["memberId"], $this->limit);
     $section = "\n<div class='hdr'><h3>{$language["Shouts"]}</h3></div>\n<div class='body shouts'>";
     // If the user is not logged in, they can't send a shout! Otherwise, show the send shout form.
     if (!$this->esoTalk->user) {
         $section .= $this->esoTalk->htmlMessage("loginRequired");
     } else {
         $section .= "<form action='" . curLink() . "' method='post' id='shoutForm'><div>\n<input type='text' class='text' id='shoutContent' name='shoutContent'/> " . $this->esoTalk->skin->button(array("value" => $language["Shout it"], "id" => "shoutSubmit", "name" => "shoutSubmit")) . "\n<script type='text/javascript'>makePlaceholder(\$(\"shoutContent\"), \"{$language["Type a shout here"]}\");</script>\n</div></form>";
     }
     // Loop through the shouts and output them.
     $section .= "<div id='shouts'>";
     foreach ($controller->shouts as $shout) {
         $section .= "<div id='shout{$shout["shoutId"]}'>" . $this->htmlShout($shout) . "</div>";
     }
     $section .= "</div>";
     // If there are more shouts, show a 'view more' link.
     if ($this->showViewMore) {
         $section .= "<div><a href='" . makeLink("profile", $this->member["memberId"], "?limit=" . ($this->limit + 50)) . "'>{$language["View more shouts"]}</a></div>";
     }
     $section .= "</div>";
     // Initialize the shout javascript.
     if ($this->esoTalk->user) {
         $section .= "<script type='text/javascript'>Shouts.member={$controller->member["memberId"]};Shouts.init();</script>";
     }
     // Add the section!
     $controller->addSection($section);
 }
Esempio n. 4
0
<?php

// Copyright 2009 Simon Zerner, Toby Zerner
// This file is part of esoTalk. Please see the included license file for usage information.
// Casual English language pack
$language = array("charset" => "utf-8", "*" => "*", "day ago" => "Yesterday", "days ago" => "%d days ago", "hour ago" => "1 hour ago", "hours ago" => "%d hours ago", "minute ago" => "1 minute ago", "minutes ago" => "%d minutes ago", "month ago" => "1 month ago", "months ago" => "%d months ago", "second ago" => "1 second ago", "seconds ago" => "%d seconds ago", "week ago" => "Last week", "weeks ago" => "%d weeks ago", "year ago" => "Last year", "years ago" => "%d years ago", "a private conversation" => "a private conversation", "Account information" => "Account information", "Add a new plugin" => "Add a new plugin", "Add a new skin" => "Add a new skin", "Add plugin" => "Add plugin", "Add member" => "Add", "Add skin" => "Add skin", "Administrator" => "Administrator", "Administrator-plural" => "Administrators", "Appearance settings" => "Appearance settings", "Bold" => "Bold", "Cancel" => "Cancel", "Change avatar" => "Change avatar", "Change password" => "Change password", "Check for updates" => "Check for updates", "check them out" => "check them out!", "Confirm password" => "Confirm password", "Conversation" => "Conversation", "conversations" => "conversations", "Conversations participated in" => "Conversations participated in", "Conversations started" => "Conversations started", "delete" => "delete", "Delete conversation" => "Delete conversation", "deleted by" => "deleted by %s", "disableJSEffects" => "Disable JavaScript effects and animations", "Discard draft" => "Discard draft", "Display avatars" => "Display avatars", "do not display avatars" => "do not display avatars", "Donate to esoTalk" => "Donate to esoTalk", "edit" => "edit", "edited by" => "edited by", "Email" => "Email", "emailOnPrivateAdd" => "Email me when I'm added to a private conversation", "emailOnStar" => "Email me when someone posts in a conversation I have starred", "Enter a conversation title" => "Enter a conversation title", "Enter the web address of an avatar" => "Enter the web address of an avatar", "Enter your email" => "Enter your email", "Everyone" => "Everyone", "exampleTags" => "ex. movies, winter olympics, cooking", "Fatal error" => "Uh oh! It's a fatal error...", "fatalErrorMessage" => "<p>esoTalk has encountered an nasty error which is making it impossible to do whatever it is that you're doing. But don't feel down - <strong>here are a few things you can try</strong>:</p>\n<ul>\n<li>Go outside, walk the dog, have a coffee... then <strong><a href='javascript:window.location.reload()'>try again</a></strong>!</li>\n<li>If you are the forum administrator, then you can <strong>get help on the <a href='http://forum.esotalk.com/search?q=%s'>esoTalk forum</a></strong>.</li>\n<li>Try hitting the computer - that sometimes works for me.</li>\n</ul>", "First" => "First", "First posted" => "First posted", "Fixed" => "Fixed", "Forgot your password" => "Forgot your password?", "Forum language" => "Forum language", "forumDescription" => "%s is a web-forum discussing %s.", "go to this post" => "go to this post", "Header" => "Header", "hide" => "hide", "Home" => "Home", "hour" => "hour", "hours" => "hours", "Image" => "Image", "Installed plugins" => "Installed plugins", "Installed skins" => "Installed skins", "Italic" => "Italic", "Join this forum" => "Join this forum!", "Jump to last" => "Jump to last", "Jump to unread" => "Jump to unread", "Just now" => "Just now", "labels" => array("sticky" => "Sticky", "private" => "Private", "draft" => "Draft", "locked" => "Locked"), "Labels" => "Labels", "Last" => "Last", "Last active" => "Last active", "Last reply" => "Last reply", "let's see" => "let's see!", "Link" => "Link", "Loading" => "Loading...", "Lock" => "Lock", "Log in" => "Log in", "Log out" => "Log out", "Mark all conversations as read" => "Mark all conversations as read", "Member" => "Member", "member online" => "<a href='" . makeLink("online") . "'>member online</a>", "Member-plural" => "Members", "Members allowed to view this conversation" => "Members allowed to view this conversation", "members online" => "<a href='" . makeLink("online") . "'>members online</a>", "Moderator" => "Moderator", "Moderator-plural" => "Moderators", "My profile" => "My profile", "My settings" => "My settings", "Never" => "Never", "New email" => "New email", "New password" => "New password", "Next" => "Next &#155;", "No avatar" => "No avatar", "No preview" => "No preview", "on alternating sides" => "on alternating sides", "on the left" => "on the left", "on the right" => "on the right", "online" => "online", "optional" => "(optional)", "Other settings" => "Other settings", "Password" => "Password", "Permalink to this post" => "Permalink to this post", "Plugins" => "Plugins", "Preview" => "Preview", "Previous" => "&#139; Previous", "Post a reply" => "Post a reply", "Post count" => "Post count", "posts" => "posts", "Posts" => "Posts", "post per day" => "that's about 1 post per day", "posts per day" => "that's about %s posts per day", "quote" => "quote", "Quote" => "\"Quote\"", "Recent posts" => "Recent posts", "Recover password" => "Get me a new password!", "Remember me" => "Remember me", "restore" => "restore", "RSS" => "RSS", "Save changes" => "Save changes", "Save draft" => "Save draft", "Save post" => "Save post", "Search" => "Search!", "See the private conversations I've had" => "See the private conversations I've had with %s", "settings" => "settings", "Change your password or email" => "Change your password or email", "show" => "show", "Skin" => "Skin", "Skins" => "Skins", "Starred" => "Starred", "Start a conversation" => "Start a conversation", "Start a private conversation" => "Start a private conversation with %s", "Started by" => "Started by", "Starting a conversation" => "Starting a conversation", "Sticky" => "Sticky", "Strike" => "Strike", "Submit post" => "Submit post!", "Suspended" => "Suspended", "Tags" => "Tags", "Unlock" => "Unlock", "unread" => "unread", "Unstarred" => "Unstarred", "Unsticky" => "Unsticky", "Untitled conversation" => "Untitled conversation", "Unvalidated" => "Unvalidated", "Upload an avatar" => "Upload an avatar from your computer", "Upload an plugin" => "Upload a plugin package", "Upload a skin" => "Upload a skin package", "Username" => "Username", "Viewing" => "Viewing:", "viewingPosts" => "<b>%s-%s</b> of %s posts", "Who's online" => "Who's online?", "Your current password" => "Your current password", "emails" => array("forgotPassword" => array("subject" => "Did you forget your password, %s?", "body" => "%s, some one (hopefully you!) has submitted a forgotten password request for your account on the forum '%s'. If you do not wish to change your password, just ignore this email and nothing will happen.\n\nHowever, if you did forget your password and wish to set a new one, visit the following link:\n%s"), "join" => array("subject" => "%s, please validate your account", "body" => "%s, someone (hopefully you!) has signed up to the forum '%s' with this email address.\n\nIf this was you, simply visit the following link and your account will be activated:\n%s"), "privateAdd" => array("subject" => "%s, you have been added to a private conversation", "body" => "%s, you have been added to a private conversation titled '%s'.\n\nTo view this conversation, check out the following link:\n%s"), "newReply" => array("subject" => "%s, there is a new reply to '%s'", "body" => "%s, %s has replied to a conversation which you starred: '%s'.\n\nTo view the new activity, check out the following link:\n%s")), "confirmLeave" => "Woah, you haven't saved the stuff you are editing! If you leave this page, you'll lose any changes you've made. Is this ok?", "confirmDiscard" => "You have not saved your reply as a draft. Do you wish to discard it?", "confirmDeleteConversation" => "Are you sure you want to delete this conversation? Seriously, you won't be able to get it back.", "ajaxRequestPending" => "Hey! We're still processing some of your stuff! If you navigate away from this page you might lose any recent changes you've made, so wait a few seconds, ok?", "ajaxDisconnected" => "Unable to communicate with the server. Wait a few seconds and <a href='javascript:Ajax.resumeAfterDisconnection()'>try again</a>, or <a href='' onclick='window.location.reload();return false'>refresh the page</a>.");
$language["gambits"] = array("tag:" => "tag:", "author:" => "author:", "contributor:" => "contributor:", "member" => "member", "myself" => "myself", "draft" => "draft", "has attachments" => "has attachments", "locked" => "locked", "order by newest" => "order by newest", "order by posts" => "order by posts", "private" => "private", "random" => "random", "reverse" => "reverse", "starred" => "starred", "sticky" => "sticky", "unread" => "unread", "more results" => "more results", "active today" => "active today", "active 1 day" => "active 1 day", "has replies" => "has replies", "has &gt; 1 post" => "has &gt; 1 post", "has no replies" => "has no replies", "has 0 posts" => "has 0 posts", "dead" => "dead", "active &gt; 30 day" => "active &gt; 30 day", "second" => "second", "minute" => "minute", "hour" => "hour", "day" => "day", "week" => "week", "month" => "month", "year" => "year", "last" => "last", "active" => "active");
$language["gambits"] += array("gambitActive" => "/^{$language["gambits"]["active"]} *(?<a>&gt;|&lt;|&gt;=|&lt;=|{$language["gambits"]["last"]})? *(?<b>\\d+) *(?<c>{$language["gambits"]["second"]}|{$language["gambits"]["minute"]}|{$language["gambits"]["hour"]}|{$language["gambits"]["day"]}|{$language["gambits"]["week"]}|{$language["gambits"]["month"]}|{$language["gambits"]["year"]})/", "active last ? hours" => "{$language["gambits"]["active"]} {$language["gambits"]["last"]} ? {$language["gambits"]["hour"]}s", "active last ? days" => "{$language["gambits"]["active"]} {$language["gambits"]["last"]} ? {$language["gambits"]["day"]}s", "gambitHasNPosts" => "/^has *(?<a>&gt;|&lt;|&gt;=|&lt;=)? *(?<b>\\d+) *post/", "has &gt;10 posts" => "has &gt;10 posts");
$messages = array("incorrectLogin" => array("class" => "warning", "message" => "Your login details were incorrect. <a href='" . makeLink("forgot-password") . "'>Have you forgotten your password?</a>"), "beenLoggedOut" => array("class" => "warning", "message" => "Oops! You seem to have been <strong>logged out</strong> since you loaded this page. Please reenter your password below or press <strong>cancel</strong> to ignore this message.<br/><br/>\nEnter the password for <strong>%s</strong>: %s"), "accountNotYetVerified" => array("class" => "info", "message" => "You need to verify your account before you can log in with it! If you didn't receive the verification email, <a href='%s'>click here to get it sent again</a>."), "changesSaved" => array("class" => "success", "message" => "Your changes were saved."), "memberDoesntExist" => array("class" => "warning", "message" => "No member with that name exists."), "conversationDeleted" => array("class" => "success", "message" => "The conversation was deleted."), "emptyPost" => array("class" => "warning", "message" => "Yeah... uh, you should probably type something in your post."), "noPermission" => array("class" => "warning", "message" => "Bad user! You do not have permisssion to perform this action."), "emptyTitle" => array("class" => "warning", "message" => "The title of your conversation can't be blank. I mean, how can anyone click on a blank title? Think about it."), "verifyEmail" => array("class" => "success", "message" => "Before you can start using your newly-created account, you'll need to verify your email address. Within the next minute or two you should receive an email from us containing a link to activate your account. <strong>Check your spam folder</strong> if you don't receive this email shortly!"), "loginRequired" => array("class" => "warning", "message" => "You need to <a href='" . curLink() . "#' onclick='showLogin();return false'>log in</a> or <a href='" . makeLink("join") . "'>create an account</a> to do anything on this forum."), "postTooLong" => array("class" => "warning", "message" => "Your post is really, really long! Too long! The maximum number of characters allowed is " . number_format($config["maxCharsPerPost"]) . ". That's really long!"), "waitToReply" => array("class" => "warning", "message" => "You must wait at least {$config["timeBetweenPosts"]} seconds between replying to conversations. Take a deep breath and try again."), "waitToSearch" => array("class" => "warning", "message" => "Woah! Looks like you're trying to perform a few too many searches. Wait %s seconds and try again."), "suspended" => array("class" => "warning", "message" => "Ouch! A forum moderator has <strong>suspended</strong> your account. It sucks, but until the suspension is lifted you won't be able to do much around here. Hey, screw them!"), "locked" => array("class" => "warning", "message" => "Hm, looks like this conversation is <strong>locked</strong>, so you can't reply to it."), "cannotViewConversation" => array("class" => "warning", "message" => "For some reason this conversation cannot be viewed. Maybe it's been deleted? Or maybe it's a private conversation, in which case you might not be logged in or you might not be invited. Oh man, I hope they're not talking about you behind your back!"), "emailDoesntExist" => array("class" => "warning", "message" => "That email address doesn't match any members in the database. Did you make a typo?"), "passwordEmailSent" => array("class" => "success", "message" => "Ok, we've sent you an email containing a link to reset your password. Check your spam folder if you don't receive it within the next minute or two. Yeah, some times we get put through to spam - can you believe it?!"), "passwordChanged" => array("class" => "success", "message" => "Your password has been changed. You may now log in with your new password."), "reenterInformation" => array("class" => "info", "message" => "Please reenter this information"), "accountValidated" => array("class" => "success", "message" => "Cool! Your account has been validated and you may now start participating in conversations. Why not <a href='" . makeLink("new") . "'>start one</a> yourself?"), "avatarError" => array("class" => "warning", "message" => "There was a problem uploading your avatar. Make sure you're using a valid image type (like .jpg, .png, or .gif) and the file isn't really really huge."), "forgotPassword" => array("class" => "info", "message" => "If you've forgotten your password, we'll send you a link to a page where you can choose a new one. Just enter your email address (and check your spam folder if the email doesn't arrive within the next minute or two)."), "setNewPassword" => array("class" => "info", "message" => "Well done! What do you want your new password to be?"), "passwordTooShort" => array("class" => "warning", "message" => "Your password must be at least {$config["minPasswordLength"]} characters"), "invalidEmail" => array("class" => "warning", "message" => "Seems this email address isn't valid..."), "emailTaken" => array("class" => "warning", "message" => "Curses, there is already a member with this email!"), "noSearchResults" => array("class" => "warning", "message" => "No conversations matching your search were found."), "viewMore" => array("class" => "info", "message" => "Your search found more than {$config["results"]} conversations. <a href='%s' onclick='Search.viewMore();return false'>View more</a>"), "newSearchResults" => array("class" => "info", "message" => "There has been new activity that has affected your search results. <a href='javascript:Search.showNewActivity()'>Show new activity</a>"), "passwordsDontMatch" => array("class" => "warning", "message" => "Your passwords do not match"), "emailInfo" => array("class" => "info", "message" => "Used to verify your account and subscribe to conversations"), "passwordInfo" => array("class" => "info", "message" => "Choose a secure password of at least {$config["minPasswordLength"]} characters"), "nameTaken" => array("class" => "warning", "message" => "The name you have entered is taken or is a reserved word"), "nameEmpty" => array("class" => "warning", "message" => "You must enter a name!"), "invalidCharacters" => array("class" => "warning", "message" => "You can't use any of these characters in your name: ! / % + -"), "incorrectPassword" => array("class" => "warning", "message" => "Your current password is incorrect"), "notWritable" => array("class" => "warning", "message" => "<code>%s</code> is not writeable. Try <code>chmod</code>ing it to <code>777</code>, or if it doesn't exist, <code>chmod</code> the folder it is contained within."), "lockedButCanReply" => array("class" => "info", "message" => "This conversation is <strong>locked</strong>, but you can still reply because you are <strong>awesome</strong>. (And also because you are a moderator or administrator.)"), "noPluginsInstalled" => array("class" => "warning", "message" => "No plugins are currently installed."), "invalidPlugin" => array("class" => "warning", "message" => "The plugin you uploaded is not valid."), "pluginAdded" => array("class" => "success", "message" => "The plugin was successfully added!"), "noSkinsInstalled" => array("class" => "warning", "message" => "No skins are currently installed."), "invalidSkin" => array("class" => "warning", "message" => "The skin you uploaded is not valid."), "skinAdded" => array("class" => "success", "message" => "The skin was successfully added!"), "downloadPlugins" => array("class" => "info", "message" => "You can download more plugins from the <a href='%s'>esoTalk website</a>."), "downloadSkins" => array("class" => "info", "message" => "You can download more skins from the <a href='%s'>esoTalk website</a>."), "updatesAvailable" => array("class" => "info", "message" => "A new version of esoTalk (<strong>%s</strong>) is available for download. You have version {$versions["esoTalk"]}. <strong><a href='http://get.esotalk.com/'>Get it now</a></strong>!"), "noMembersOnline" => array("class" => "warning", "message" => "No members are currently online."));
Esempio n. 5
0
<div class='hdr'>
<div class='pInfo'><h3><?php 
        echo !$this->conversation["id"] ? $language["Start a conversation"] : $language["Post a reply"];
        ?>
</h3></div>
<div class='controls'><?php 
        echo implode(" ", $this->getEditControls("reply"));
        ?>
</div>
</div>
<div class='body edit'>
<?php 
        if ($this->conversation["id"]) {
            ?>
<form action='<?php 
            echo curLink();
            ?>
' method='post' enctype='multipart/form-data'><div><?php 
        }
        ?>
<input type='hidden' name='token' value='<?php 
        echo $_SESSION["token"];
        ?>
'/>
<textarea cols='200' rows='20' id='reply-textarea' name='content' tabindex='30'><?php 
        echo $this->conversation["draft"];
        ?>
</textarea>
<div id='reply-preview'></div>
<div class='editButtons'><?php 
        echo $this->esoTalk->skin->button(array("id" => "saveDraft", "name" => "saveDraft", "class" => "fl", "value" => $language["Save draft"], "tabindex" => 50)), " ", $this->esoTalk->skin->button(array("id" => "discardDraft", "name" => "discardDraft", "class" => "fl", "value" => $language["Discard draft"])), " ", $this->esoTalk->skin->button(array("id" => "postReply", "name" => "postReply", "class" => "big submit fr", "value" => $language["Submit post"], "tabindex" => 40));
<?php

// Copyright 2009 Simon Zerner, Toby Zerner
// This file is part of esoTalk. Please see the included license file for usage information.
// Professional English language pack
$language = array("charset" => "utf-8", "*" => "*", "1 day ago" => "1 day ago", "1 hour ago" => "1 hour ago", "1 minute ago" => "1 minute ago", "1 month ago" => "1 month ago", "1 second ago" => "1 second ago", "1 week ago" => "1 week ago", "1 year ago" => "1 year ago", "a private conversation" => "a private conversation", "accountInformation" => "Account information", "Add a new plugin" => "Add a new plugin", "Add a new skin" => "Add a new skin", "Add plugin" => "Add plugin", "Add member" => "Add", "Add skin" => "Add skin", "Administrator" => "Administrator", "Administrator-plural" => "Administrators", "ago" => "ago", "Appearance settings" => "Appearance settings", "Bold" => "Bold", "Cancel" => "Cancel", "Change avatar" => "Change avatar", "Change password" => "Change password", "Check for updates" => "Check for updates", "check them out" => "view them", "Confirm password" => "Confirm password", "Conversation" => "Conversation", "conversations" => "conversations", "Conversations participated in" => "Conversations participated in", "Conversations started" => "Conversations started", "day" => "day", "days" => "days", "delete" => "delete", "Delete conversation" => "Delete conversation", "deleted by" => "deleted by %s", "disableJSEffects" => "Disable JavaScript effects and animations", "Discard draft" => "Discard draft", "Display avatars" => "Display avatars", "do not display avatars" => "do not display avatars", "edit" => "edit", "edited by" => "edited by", "Email" => "Email", "emailOnPrivateAdd" => "Email me when I'm added to a private conversation", "emailOnStar" => "Email me when someone posts in a conversation I have starred", "Enter a conversation title" => "Enter a conversation title", "Enter a new password" => "Enter a new password", "Enter the web address of an avatar" => "Enter the web address of an avatar", "Enter your email" => "Enter your email", "Everyone" => "Everyone", "exampleTags" => "ex. movies, winter olympics, cooking", "Plugins" => "Plugins", "Fatal error" => "Fatal error", "First" => "First", "First posted" => "First posted", "Fixed" => "Fixed", "Forgot your password" => "Forgot your password?", "Forum language" => "Forum language", "forumDescription" => "%s is a web-forum discussing %s.", "go to this post" => "go to this post", "Header" => "Header", "helpesoTalk" => "You can help esoTalk out by <a href='http://esotalk.com/'>donating</a> or <a href='http://www.spreadfirefox.com/node&amp;id=223114&amp;t=209'>not using Internet Explorer</a>", "hide" => "hide", "Home" => "Home", "hour" => "hour", "hours" => "hours", "Image" => "Image", "Installed plugins" => "Installed plugins", "Installed skins" => "Installed skins", "Italic" => "Italic", "Join this forum" => "Join this forum", "Jump to last" => "Jump to last", "Jump to unread" => "Jump to unread", "Just now" => "Just now", "labels" => array("sticky" => "Sticky", "private" => "Private", "draft" => "Draft", "locked" => "Locked"), "Labels" => "Labels", "Last" => "Last", "Last active" => "Last active", "Last reply" => "Last reply", "let's see" => "view them", "Link" => "Link", "Loading" => "Loading...", "Lock" => "Lock", "Log in" => "Log in", "Log out" => "Log out", "Member" => "Member", "member online" => "<a href='" . makeLink("online") . "'>member online</a>", "Member-plural" => "Members", "Members allowed to view this conversation" => "Members allowed to view this conversation", "members online" => "<a href='" . makeLink("online") . "'>members online</a>", "minute" => "minute", "minutes" => "minutes", "Moderator" => "Moderator", "Moderator-plural" => "Moderators", "month" => "month", "months" => "months", "My profile" => "My profile", "My settings" => "My settings", "Name" => "Name", "Never" => "Never", "New email" => "New email", "New password" => "New password", "Next" => "Next &#155;", "No avatar" => "No avatar", "No preview" => "No preview", "on alternating sides" => "on alternating sides", "on the left" => "on the left", "on the right" => "on the right", "online" => "online", "optional" => "(optional)", "settingsOther" => "Other settings", "Password" => "Password", "Permalink to this post" => "Permalink to this post", "Preview" => "Preview", "Previous" => "&#139; Previous", "Post a reply" => "Post a reply", "Post count" => "Post count", "posts" => "posts", "Posts" => "Posts", "posts per day" => "that's about %s posts per day", "quote" => "quote", "Quote" => "\"Quote\"", "Recent posts" => "Recent posts", "Recover password" => "Recover password", "Remember me" => "Remember me", "restore" => "restore", "RSS" => "RSS", "Save changes" => "Save changes", "Save draft" => "Save draft", "Save post" => "Save post", "Search" => "Search", "second" => "second", "seconds" => "seconds", "See the private conversations I've had" => "See the private conversations I've had with %s", "settings" => "settings", "settingsPasswordEmail" => "Change your password or email", "show" => "show", "Skin" => "Skin", "Skins" => "Skins", "Starred" => "Starred", "Start a conversation" => "Start a conversation", "Start a private conversation" => "Start a private conversation with %s", "Started by" => "Started by", "Starting a conversation" => "Starting a conversation", "Sticky" => "Sticky", "Strike" => "Strike", "Submit post" => "Submit post", "Suspended" => "Suspended", "Tags" => "Tags", "Unlock" => "Unlock", "unread" => "unread", "Unstarred" => "Unstarred", "Unsticky" => "Unsticky", "Untitled conversation" => "Untitled conversation", "Unvalidated" => "Unvalidated", "Upload an avatar" => "Upload an avatar from your computer", "Upload an plugin" => "Upload a plugin package", "Upload a skin" => "Upload a skin package", "Viewing" => "Viewing:", "viewingPosts" => "<b>%s-%s</b> of %s posts", "week" => "week", "weeks" => "weeks", "Who's online" => "Who's online?", "year" => "year", "years" => "years", "Your current password" => "Your current password", "emails" => array("forgotPassword" => array("subject" => "Did you forget your password, %s?", "body" => "%s, some one (hopefully you!) has submitted a forgotten password request for your account on the forum '%s'. If you do not wish to change your password, just ignore this email and nothing will happen.\n\nHowever, if you did forget your password and wish to set a new one, visit the following link:\n%s"), "join" => array("subject" => "%s, please validate your account", "body" => "%s, someone (hopefully you!) has signed up to the forum '%s' with this email address.\n\nIf this was you, simply visit the following link and your account will be activated:\n%s"), "privateAdd" => array("subject" => "%s, you have been added to a private conversation", "body" => "%s, you have been added to a private conversation titled '%s'.\n\nTo view this conversation, please visit the following link:\n%s"), "newReply" => array("subject" => "%s, there is a new reply to '%s'", "body" => "%s, %s has replied to a conversation which you starred: '%s'.\n\nTo view the new activity, please visit the following link:\n%s")), "confirmLeave" => "You have made changes on this page which have not yet been saved. If you navigate away from this page, you wil lose these changes. Would you like to continue regardless?", "confirmDiscard" => "You have not saved your reply as a draft. Do you wish to discard it?", "confirmDeleteConversation" => "Are you sure you want to delete this conversation? Once deleted, you will not be able to recover it.", "ajaxRequestPending" => "This page is still processing. If you navigate away from this page you might lose any recent changes you've made. Do you wish to continue?", "ajaxDisconnected" => "There was a problem communicating with the server. Please wait for a few seconds and <a href='javascript:Ajax.resumeAfterDisconnection()'>click here to try again</a>, or try <a href='' onclick='window.location.reload();return false'>refreshing the page</a>.");
$language["gambits"] = array("tag:" => "tag:", "author:" => "author:", "contributor:" => "contributor:", "member" => "member", "myself" => "myself", "draft" => "draft", "has attachments" => "has attachments", "locked" => "locked", "order by newest" => "order by newest", "order by posts" => "order by posts", "private" => "private", "random" => "random", "reverse" => "reverse", "starred" => "starred", "sticky" => "sticky", "unread" => "unread", "more results" => "more results", "active today" => "active today", "active 1 day" => "active 1 day", "has replies" => "has replies", "has &gt; 1 post" => "has &gt; 1 post", "has no replies" => "has no replies", "has 0 posts" => "has 0 posts", "dead" => "dead", "active &gt; 30 day" => "active &gt; 30 day", "second" => "second", "minute" => "minute", "hour" => "hour", "day" => "day", "week" => "week", "month" => "month", "year" => "year", "last" => "last", "active" => "active");
$language["gambits"] += array("gambitActive" => "/^{$language["gambits"]["active"]} *(?<a>&gt;|&lt;|&gt;=|&lt;=|{$language["gambits"]["last"]})? *(?<b>\\d+) *(?<c>{$language["gambits"]["second"]}|{$language["gambits"]["minute"]}|{$language["gambits"]["hour"]}|{$language["gambits"]["day"]}|{$language["gambits"]["week"]}|{$language["gambits"]["month"]}|{$language["gambits"]["year"]})/", "active last ? hours" => "{$language["gambits"]["active"]} {$language["gambits"]["last"]} ? {$language["gambits"]["hour"]}s", "active last ? days" => "{$language["gambits"]["active"]} {$language["gambits"]["last"]} ? {$language["gambits"]["day"]}s", "gambitHasNPosts" => "/^has *(?<a>&gt;|&lt;|&gt;=|&lt;=)? *(?<b>\\d+) *post/", "has &gt;10 posts" => "has &gt;10 posts");
$messages = array("incorrectLogin" => array("class" => "warning", "message" => "Your login details were incorrect. <a href='" . makeLink("forgot-password") . "'>Have you forgotten your password?</a>"), "beenLoggedOut" => array("class" => "warning", "message" => "You seem to have been <strong>logged out</strong> since you loaded this page. Please reenter your password below or press <strong>cancel</strong> to ignore this message.<br/><br/>\nEnter the password for <strong>%s</strong>: %s"), "changesSaved" => array("class" => "success", "message" => "Your changes were saved."), "memberDoesntExist" => array("class" => "warning", "message" => "No member with that name exists."), "conversationDeleted" => array("class" => "success", "message" => "The conversation was deleted."), "emptyPost" => array("class" => "warning", "message" => "Your post cannot be submitted with no content."), "noPermission" => array("class" => "warning", "message" => "You do not have permisssion to perform this action."), "emptyTitle" => array("class" => "warning", "message" => "The title of your conversation may not be blank."), "verifyEmail" => array("class" => "success", "message" => "Before you can start using your newly-created account, you'll need to verify your email address. Within the next minute or two you should receive an email from us containing a link to activate your account. <strong>Check your spam folder</strong> if you don't receive this email shortly."), "loginRequired" => array("class" => "warning", "message" => "You need to <a href='" . curLink() . "#' onclick='\$(\"loginName\").focus()'>log in</a> or <a href='" . makeLink("join") . "'>create an account</a> to perform any action on this forum."), "postTooLong" => array("class" => "warning", "message" => "Your post is too long. The maximum number of characters allowed is " . number_format($config["maxCharsPerPost"]) . ". Please shorten your post and re-submit."), "waitToReply" => array("class" => "warning", "message" => "To prevent flooding, you must wait at least {$config["timeBetweenPosts"]} seconds between replying to conversations."), "suspended" => array("class" => "warning", "message" => "A forum moderator has <strong>suspended</strong> your account. Until the suspension is lifted you will not be able to perform many actions on this forum."), "locked" => array("class" => "warning", "message" => "This conversation is <strong>locked</strong>, so you may not reply to it."), "cannotViewConversation" => array("class" => "warning", "message" => "This conversation cannot be viewed. It may have been deleted or turned into a private conversation."), "emailDoesntExist" => array("class" => "warning", "message" => "The email address you entered does not match any members in the database. Please check that the spelling is correct."), "passwordEmailSent" => array("class" => "success", "message" => "You have been sent an email containing a link to reset your password. Please check your spam folder if you don't receive it within the next minute or two."), "passwordChanged" => array("class" => "success", "message" => "Your password has been changed. You may now log in with your new password."), "accountValidated" => array("class" => "success", "message" => "Your account has been validated and you may now start participating in conversations."), "avatarError" => array("class" => "warning", "message" => "There was a problem uploading your avatar. Make sure you are using a valid image type (.jpg, .png, or .gif) and the file does not exceed the maximum upload size of the server."), "forgotPassword" => array("class" => "info", "message" => "If you have forgotten your password, we'll send you a link to a page where you can choose a new one. Please enter your email address (and check your spam folder if the email doesn't arrive within the next minute or two)."), "setNewPassword" => array("class" => "info", "message" => "Please choose a new password."), "passwordTooShort" => array("class" => "warning", "message" => "Your password must be at least {$config["minPasswordLength"]} characters"), "invalidEmail" => array("class" => "warning", "message" => "This email address is not valid."), "emailTaken" => array("class" => "warning", "message" => "There is already a member with this email address."), "noSearchResults" => array("class" => "warning", "message" => "No conversations matching your search were found."), "viewMore" => array("class" => "info", "message" => "Your search found more than {$config["results"]} conversations. <a href='%s' onclick='Search.viewMore();return false'>View more</a>"), "passwordsDontMatch" => array("class" => "warning", "message" => "Your passwords do not match"), "emailInfo" => array("class" => "info", "message" => "Used to verify your account and subscribe to conversations"), "passwordInfo" => array("class" => "info", "message" => "Choose a secure password of at least {$config["minPasswordLength"]} characters"), "nameTaken" => array("class" => "warning", "message" => "The name you have entered is already taken or is a reserved word"), "nameEmpty" => array("class" => "warning", "message" => "You must enter a name"), "invalidCharacters" => array("class" => "warning", "message" => "You can't use any of these characters in your name: ! / % + -"), "incorrectPassword" => array("class" => "warning", "message" => "Your current password is incorrect"), "notWritable" => array("class" => "warning", "message" => "'%s' is not writeable. Please make sure it exists and chmod it to 777."), "lockedButCanReply" => array("class" => "info", "message" => "This conversation is <strong>locked</strong>, but you can still reply because you are a moderator or administrator."), "noPluginsInstalled" => array("class" => "warning", "message" => "No plugins are currently installed."), "invalidPlugin" => array("class" => "warning", "message" => "The plugin you uploaded is not valid."), "pluginAdded" => array("class" => "success", "message" => "The plugin was successfully added."), "noSkinsInstalled" => array("class" => "warning", "message" => "No skins are currently installed."), "invalidSkin" => array("class" => "warning", "message" => "The skin you uploaded is not valid."), "skinAdded" => array("class" => "success", "message" => "The skin was successfully added."), "downloadPlugins" => array("class" => "info", "message" => "You can download more plugins from the <a href='http://forum.esotalk.com/search/tag:plugin'>esoTalk forum</a>."), "downloadSkins" => array("class" => "info", "message" => "You can download more skins from the <a href='http://forum.esotalk.com/search/tag:skin'>esoTalk forum</a>."), "updatesAvailable" => array("class" => "info", "message" => "A new version of esoTalk (<strong>%s</strong>) is available for download. You have version {$versions["esoTalk"]}. You may <strong><a href='http://get.esotalk.com/'>download it now</a></strong> or <a href='' onclick='Messages.hide();return false'>dismiss this message</a>."), "noMembersOnline" => array("class" => "warning", "message" => "No members are currently online."));
Esempio n. 7
0
function refresh()
{
    global $config;
    header("Location: " . sanitizeForHTTP($config["baseURL"] . curLink()));
    flush();
    // Again, Opera sometimes displays a blank "redirection" page if this isn't here. :/
    exit;
}
 function getEditArea($postId, $content)
 {
     global $language;
     $html = "<form action='" . curLink() . "' method='post' enctype='multipart/form-data'><div class='widthFixer'>\n<input type='hidden' name='token' value='{$_SESSION["token"]}'/>\n<textarea cols='100' rows='10' id='p{$postId}-textarea' name='content'>{$content}</textarea>\n<div id='p{$postId}-preview'></div>\n</div>\n<div class='editButtons'>\n" . $this->esoTalk->skin->button(array("name" => "cancel", "class" => "big", "value" => $language["Cancel"], "onclick" => "Conversation.cancelEdit({$postId});return false", "tabindex" => "-1")) . "\n" . $this->esoTalk->skin->button(array("name" => "save", "class" => "big submit", "value" => $language["Save post"], "onclick" => "Conversation.saveEditPost({$postId},\$(\"p{$postId}-textarea\").value);return false", "accesskey" => "s")) . "\n</div>\n</form>";
     $this->callHook("getEditArea", array(&$html));
     return $html;
 }