Adding files - Rebirth from a dead project to finish his life in hell

This commit is contained in:
Michel Roux 2013-08-20 13:00:42 +02:00
commit 5be06c4e08
160 changed files with 62868 additions and 0 deletions

144
bbcode.php Normal file
View File

@ -0,0 +1,144 @@
<?php
/*
* Class for parsing BBCode
* @author - Paul Carter, http://cartpauj.com
*Ui = 1 line
*Uis = Multiple Lines
*/
if (!class_exists('cartpaujBBCodeParser'))
{
class cartpaujBBCodeParser {
var $patterns = array
(
'/\[list\](.+)\[\/list\]/Uis',
'/\[\*\](.+)\\n/Ui',
'/\[spoil\](.+)\[\/spoil\]/Uis',
'/\[b\](.+)\[\/b\]/Uis',
'/\[i\](.+)\[\/i\]/Uis',
'/\[u\](.+)\[\/u\]/Uis',
'/\[s\](.+)\[\/s\]/Uis',
'/\[url=(.+)\](.+)\[\/url\]/Ui',
'/\[url](.+)\[\/url\]/Ui',
'/\[map](.+)\[\/map\]/Ui',
'/\[yt](.+)\[\/yt\]/Ui',
'/\[embed](.+)\[\/embed\]/Ui',
'/\[email](.+)\[\/email\]/Ui',
'/\[email=(.+)\](.+)\[\/email\]/Ui',
'/\[img\](.+)\[\/img\]/Ui',
'/\[img=(.+)\](.+)\[\/img\]/Ui',
'/\[color=(\#[0-9a-f]{6}|[a-z]+)\](.+)\[\/color\]/Ui',
'/\[color=(\#[0-9a-f]{6}|[a-z]+)\](.+)\[\/color\]/Uis',
'/\[left\](.+)\[\/left\]/Ui',
'/\[left\](.+)\[\/left\]/Uis',
'/\[center\](.+)\[\/center\]/Ui',
'/\[center\](.+)\[\/center\]/Uis',
'/\[right\](.+)\[\/right\]/Ui',
'/\[right\](.+)\[\/right\]/Uis',
'/\[justify\](.+)\[\/justify\]/Ui',
'/\[justify\](.+)\[\/justify\]/Uis',
'/\[spoiler\](.+)\[\/spoiler\]/Ui',
'/\[spoiler\](.+)\[\/spoiler\]/Uis',
'/\[spoiler=(.+)\](.+)\[\/spoiler\]/Ui',
'/\[spoiler=(.+)\](.+)\[\/spoiler\]/Uis',
'/\[quote](.+)\[\/quote]/Ui',
'/\[quote](.+)\[\/quote]/Uis'
);
var $replacements = array
(
'<ul>\1</ul>',
'<li>\1</li>',
'<span style = "color:transparent">\1</span>',
'<b>\1</b>',
'<i>\1</i>',
'<u>\1</u>',
'<s>\1</s>',
'<a href = "\1" target = "_blank">\2</a>',
'<a href = "\1" target = "_blank">\1</a>',
'<iframe width = "400" height = "325" frameborder = "0" scrolling = "no" marginheight = "0" marginwidth = "0" src = "\1&output=embed">Your browser does not support iFrames</iframe>',
'\1',
'\1',
'<a href = "mailto:\1">\1</a>',
'<a href = "mailto:\1">\2</a>',
'<a href = "\1"><img src = "\1" alt = "Image" /></a>',
'<a href = "\1"><img src = "\1" alt = "\2" /></a>',
'<span style = "color: \1;">\2</span>',
'<div style = "color: \1;">\2</div>',
'<p style = "text-align:left">\1</p>',
'<p style = "text-align:left">\1</p>',
'<p style = "text-align:center">\1</p>',
'<p style = "text-align:center">\1</p>',
'<p style = "text-align:right">\1</p>',
'<p style = "text-align:right">\1</p>',
'<p style = "text-align:justify">\1</p>',
'<p style = "text-align:justify">\1</p>',
'<ul class="mingle-spoiler-view" style = "list-style-type:none"><li style = "cursor:pointer"><h3><span>+</span>Spoiler</h3></li><li class = "mingle-spoiler-view-hide" style = "display:none">\1</li></ul>',
'<ul class="mingle-spoiler-view" style = "list-style-type:none"><li style = "cursor:pointer"><h3><span>+</span>Spoiler</h3></li><li class = "mingle-spoiler-view-hide" style = "display:none">\1</li></ul>',
'<ul class="mingle-spoiler-view" style = "list-style-type:none"><li style = "cursor:pointer"><h3><span>+</span>\1</h3></li><li style = "display:none">\2</li></ul>',
'<ul class="mingle-spoiler-view" style = "list-style-type:none"><li style = "cursor:pointer"><h3><span>+</span>\1</h3></li><li style = "display:none">\2</li></ul>',
'<blockquote>\1</blockquote>',
'<blockquote>\1</blockquote>'
);
function bbc2html($subject)
{
$codes = array(array(), array());
preg_match_all('/\[code\](.+)\[\/code\]/Uis', $subject, $codes);
foreach ($codes[0] as $num => $code) {
$subject = str_replace($code, "[code$num]", $subject);
}
$subject = preg_replace($this->patterns, $this->replacements, $subject);
foreach ($codes[1] as $num => $code) {
$subject = str_replace("[code$num]", '<pre class="code">'.$code.'</pre>', $subject);
}
return $subject;
}
function get_editor($text='') {
global $mingleforum;
function mingle_get_editor_mce_external_plugins($plugins) {
$plugins['bbcodev2'] = plugins_url('/js/plugins/bbcodev2/editor_plugin_src.js', __FILE__);
$plugins['emotions'] = plugins_url('/js/plugins/emotions/editor_plugin_src.js', __FILE__);
return $plugins;
}
add_filter('mce_external_plugins', 'mingle_get_editor_mce_external_plugins');
ob_start();
wp_editor($text, 'message', array(
'wpautop' => false,
'tinymce' => array(
'plugins' => 'bbcodev2,emotions',
'theme_advanced_buttons1' => 'bold,italic,underline,strikethrough,pre,blockquote,spoil,justifyleft,justifycenter,justifyright,justifyfull,bullist,link,unlink,image,forecolor,yt,map,emotions',
'theme_advanced_buttons2' => '',
'apply_source_formatting' => false,
'setup' => 'function (ed) {
ed.addButton("pre", {
title: "'.__("Code").'",
image: "'.$mingleforum->skin_url.'/images/bbc/code.png"
})
ed.addButton("yt", {
title: "'.__("Embed YouTube Video").'",
image: "'.$mingleforum->skin_url.'/images/bbc/yt.png"
})
ed.addButton("map", {
title: "'.__("Embed Google Map").'",
image: "'.$mingleforum->skin_url.'/images/bbc/gm.png"
})
ed.addButton("spoil", {
title: "'.__("Spoiler").'",
image: "'.$mingleforum->skin_url.'/images/bbc/spoil.png"
})
}'
)
));
return ob_get_clean();
}
}
}

49
captcha/captcha_code.php Normal file
View File

@ -0,0 +1,49 @@
<?php
/*
* Original Author: Simon Jarvis
* Copyright: 2006 Simon Jarvis
* Date: 03/08/06
* Updated: 07/02/07
* Requirements: PHP 4/5 with GD and FreeType libraries
* Link: http://www.white-hat-web-design.co.uk/articles/php-captcha.php
*
*
* Modified by: Mythos and Rini
* Date: 2007-09-10
* Description: Modified the code and remove use of Session
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details:
* http://www.gnu.org/licenses/gpl.html
*
*
*/
class CaptchaCode
{
function generateCode($characters)
{
/* list all possible characters, similar looking characters and vowels have been removed */
$possible = '23456789bcdfghjkmnpqrstvwxyz';
$code = '';
$i = 0;
while ($i < $characters)
{
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}
}

View File

@ -0,0 +1,76 @@
<?php
/*
* Original Author: Simon Jarvis
* Copyright: 2006 Simon Jarvis
* Date: 03/08/06
* Updated: 07/02/07
* Requirements: PHP 4/5 with GD and FreeType libraries
* Link: http://www.white-hat-web-design.co.uk/articles/php-captcha.php
*
*
* Modified by: Mythos and Rini
* Date: 2007-09-10
* Description: Modified the code and remove use of Session
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details:
* http://www.gnu.org/licenses/gpl.html
*
*
*/
include("shared.php");
class CaptchaSecurityImages {
var $font = 'monofont.ttf';
function GenerateImage($width='120',$height='40', $code='') {
/* font size will be 75% of the image height */
$font_size = $height * 0.75;
$image = @imagecreate($width, $height) or die('Cannot initialize new GD image stream');
/* set the colours */
imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 20, 40, 100);
$noise_color = imagecolorallocate($image, 100, 120, 180);
/* generate random dots in background */
for( $i=0; $i<($width*$height)/3; $i++ ) {
imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
}
/* generate random lines in background */
for( $i=0; $i<($width*$height)/150; $i++ ) {
imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
}
/* create textbox and add text */
$textbox = imagettfbbox($font_size, 0, $this->font, $code) or die('Error in imagettfbbox function');
$x = ($width - $textbox[4])/2;
$y = ($height - $textbox[5])/2;
imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Error in imagettftext function');
/* output captcha image to browser */
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
}
}
$width = isset($_GET['width']) ? $_GET['width'] : '120';
$height = isset($_GET['height']) ? $_GET['height'] : '40';
$code = isset($_GET['code']) ? $_GET['code'] : '';
if (isset($_GET['code']))
{
$captcha = new CaptchaSecurityImages();
$captcha-> GenerateImage($width,$height,wpf_str_decrypt($code));
}

BIN
captcha/monofont.ttf Normal file

Binary file not shown.

95
captcha/shared.php Normal file
View File

@ -0,0 +1,95 @@
<?php
// ------------------------------------------------------------------------------
// Function : str_encrypt($string) / str_decrypt($string)
// Description : en/decrypt $data with the key in $keyfile with an rc4 algorithm
// Return : en/decrypted string which is URL safe
//
// NOTE: Dec 12, 2005 (Mythos and Rini)
// - Serious problem after upgraded from 5.0.5 to 5.1.1
// Because of the base64_decode function, if there is space in the string
// it ignores it. For example: base64_decode(string);
//
// In 5.0.5, it treats "abc" and "a bc" differently
// In 5.1.1, it treats "abc" and "a bc" the same when decode
// http://bugs.php.net/bug.php?id=35649
// The original code was:
// urlencode(base64_encode($mystr); // PROBLEM: if there is space in mystr
// To code should have been like this:
// base64_encode(urlencode($mystr)); // Encode any space become '+' first
// But this won't work because there are existing encrypted data in database already
//
// Cause: $_GET automatically converts '%2B' into '+' automatically, when we
// do the urldecode, it generates the space! Now when it comes to the difference
// between 5.0.5 vs 5.1.1 base64_decode, the result is different.
//
// urldecode("a+bc") // a bc <-- PROBLEM, base64_decode ignores the space
/**/define("WPF_KEY_FOR_RC4", wpf_get_cartpauj_url());
// urldecode("a%2Bbc"); // a+bc
//
// Both '+' and '%2B' got the same result
// rawurldecode("a+bc") // a+bc <-- SOLVED
// rawurldecode("a%2Bbc"); // a+bc
//
// ------------------------------------------------------------------------------
function wpf_get_cartpauj_url() {
return (string)$_SERVER["DOCUMENT_ROOT"].substr(uniqid(''), 0, 3);
}
function wpf_str_encrypt($str) {
$mystr = WPFRC4($str, WPF_KEY_FOR_RC4);
$mystr = rawurlencode(base64_encode($mystr));
return $mystr;
}
function wpf_str_decrypt($str) {
$mystr = base64_decode(rawurldecode($str));
$mystr = WPFRC4($mystr, WPF_KEY_FOR_RC4);
return $mystr;
}
// ------------------------------------------------------------------------------
// Function : WPFRC4($data, $key)
// Description : ecncrypt/decrypt $data with the key in $keyfile with an rc4 algorithm
// This was written by danzarrella in 2002 can be found on Zend.com
// Return : string (encrypted/decrypted)
// ------------------------------------------------------------------------------
function WPFRC4($data, $key) {
// initialize (modified by Simon Lee)
$x=0; $j=0; $a=0; $temp=""; $Zcrypt="";
for ($i=0; $i<=255; $i++) {
$counter[$i] = "";
}
// $pwd = implode('', file($keyfile));
$pwd = $key;
$pwd_length = strlen($pwd);
for ($i = 0; $i < 255; $i++) {
$key[$i] = ord(substr($pwd, ($i % $pwd_length)+1, 1));
$counter[$i] = $i;
}
for ($i = 0; $i < 255; $i++) {
$x = ($x + $counter[$i] + $key[$i]) % 256;
$temp_swap = $counter[$i];
$counter[$i] = $counter[$x];
$counter[$x] = $temp_swap;
}
for ($i = 0; $i < strlen($data); $i++) {
$a = ($a + 1) % 256;
$j = ($j + $counter[$a]) % 256;
$temp = $counter[$a];
$counter[$a] = $counter[$j];
$counter[$j] = $temp;
$k = $counter[(($counter[$a] + $counter[$j]) % 256)];
$Zcipher = ord(substr($data, $i, 1)) ^ $k;
$Zcrypt .= chr($Zcipher);
}
return $Zcrypt;
}

70
feed.php Normal file
View File

@ -0,0 +1,70 @@
<?php
global $wpdb, $mingleforum;
$root = dirname(dirname(dirname(dirname(__FILE__))));
if (file_exists($root.'/wp-load.php')) {
// WP 2.6
require_once($root.'/wp-load.php');
} else {
// before WP 2.6
require_once($root.'/wp-config.php');
}
if($mingleforum->options['forum_use_rss'])
{
$mingleforum->setup_links();
if(is_numeric($_GET['topic'])) //is_numeric will prevent SQL injections
$topic = $_GET['topic'];
else
$topic = 'all';
if($topic == "all"){
$posts = $wpdb->get_results("SELECT * FROM {$mingleforum->t_posts} ORDER BY `date` DESC LIMIT 20");
$title = get_bloginfo('name')." ".__("Forum Feed", "mingleforum")."";
$description = __("Forum Feed", "mingleforum");
}
else{
$posts = $wpdb->get_results("SELECT * FROM $mingleforum->t_posts WHERE parent_id = $topic ORDER BY `date` DESC LIMIT 20");
$description = __("Forum Topic:", "mingleforum")." - ".$mingleforum->get_subject($topic);
$title = get_bloginfo('name')." ".__("Forum", "mingleforum")." - ".__("Topic: ", "mingleforum")." ".$mingleforum->get_subject($topic);
}
$link = $mingleforum->home_url;
header ("Content-type: application/rss+xml");
echo ("<?xml version=\"1.0\" encoding=\"".get_bloginfo('charset')."\"?>\n");
?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title><?php echo $title; ?></title>
<description><?php bloginfo('name'); echo " $description";?></description>
<link><?php echo $link;?></link>
<language><?php bloginfo('language');?></language>
<?php
foreach($posts as $post){
$catid = $mingleforum->forum_get_group_from_post($post->parent_id);
$groups = $wpdb->get_var("select usergroups from {$mingleforum->t_forums} where id = {$catid}");
$groups = maybe_unserialize($groups);
if(empty($groups)) //don't show protected group posts in the feed
{
$link = $mingleforum->get_paged_threadlink($post->parent_id);
$title = $post->subject;
echo "<item>\n
<title>".htmlspecialchars($title)."</title>\n
<description>".htmlspecialchars($mingleforum->output_filter($post->text, ENT_NOQUOTES))."</description>\n
<link>".htmlspecialchars($link)."</link>\n
<author>feeds@r.us</author>\n
<pubDate>".date("r", strtotime($post->date))."</pubDate>\n
<guid>".htmlspecialchars($link."&guid=$post->id")."</guid>
</item>\n\n";
}
}
echo "</channel>
</rss>";
}
else
echo "<html><body>".__("Feeds are disabled", "mingleforum")."</body></html>";

1145
fs-admin/fs-admin.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
<?php
if(function_exists('home_url'))
{
/*************** wpf-add-forum.php *********************/
global $mingleforum;
$groupmane = isset($_GET['groupid']) ? $_GET['groupid'] : 0;
$groupname = stripslashes($mingleforum->get_groupname($groupmane));
$groupname = empty($groupname) ? __("Add category", "mingleforum") : __("Add forum to", "mingleforum").' "'.$groupname.'"';
echo "<h2><img src='".WPFURL."images/table.png' />$groupname</h2>";
echo "<form name='add_forum_form' id='add_forum_form' method='post' action='admin.php?page=mfstructure&mingleforum_action=structure'>";
echo "<table class='form-table'>
<tr>
<th>".__("Name:", "mingleforum")."</th>
<td><input type='text' value='' name='add_forum_name' /></td>
</tr>
<tr>
<th>".__("Description:", "mingleforum")."</th>
<td><textarea name='add_forum_description' ".ADMIN_ROW_COL."></textarea></td>
</tr>
<tr>";
$gr_id = (isset($_GET['groupid']) && is_numeric($_GET['groupid']))?$_GET['groupid']:0;
echo "<tr>
<th></th>
<td><input type='submit' value='".__("Save forum", "mingleforum")."' name='add_forum_submit' /></td>
</tr>
<input type='hidden' name='add_forum_group_id' value='{$gr_id}' />";
echo "</form></table>";
/**********************************************************/
}
else
{
echo '<p>Nice TRY!</p>';
}

View File

@ -0,0 +1,32 @@
<?php
if(function_exists('home_url'))
{
/************************ wpf-add-usergroup.php ************************************/
$image = WPFURL."images/user.png";
echo "<div class='wrap'> <h2>";
echo "<h2><img src='$image'>".__("Add User Group", "mingleforum")."</h2>";
echo '<form id="usergroupadd" name="usergroupadd" method="post" action="">';
if (function_exists('wp_nonce_field'))
wp_nonce_field('mingleforum-add_usergroup');
echo "<table class='widefat'>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tr class='alternate'>
<td><input type='text' value='' name='group_name' /></td>
<td><input type='text' value='' name='group_description' /></td>
</tr>
<tr class='alternate'>
<td colspan='2'><input class='button' type='submit' name='add_usergroup' value='".__("Save user group", "mingleforum")."'/></td>
</tr>
</table></form>
</div>";
/*********************************************************************/
}
else
{
echo '<p>Nice TRY!</p>';
}

41
fs-admin/wpf-addusers.php Normal file
View File

@ -0,0 +1,41 @@
<?php
if(function_exists('home_url'))
{
global $mingleforum;
$usergroups = $mingleforum->get_usergroups();
$image = WPFURL."images/user.png";
echo "<div class='wrap'>
<h2><img src='$image'>".__("Add users", "mingleforum")."</h2>";
echo "<form name='add_usertogroup_form' action='admin.php?page=mfgroups&mingleforum_action=usergroups' method='post'>
<table class='widefat'>
<thead>
<tr>
<th>User names </th>
<th>User group</th>
</tr>
</thead>
<tr class='alternate'>
<td><textarea name='togroupusers' ".ADMIN_ROW_COL."></textarea><br/>
<i>separate user names by comma sign</i></td>
<td>"; echo "<select name='usergroup'>
<option selected='selected' value='add_user_null'>".__("Select User group", "mingleforum")."
</option>";
foreach($usergroups as $usergroup){
echo "<option value='$usergroup->id'>
$usergroup->name</option>";
}
echo "</select></td>
</tr>
<tr class='alternate'>
<td colspan='2'><input class='button' name='add_user_togroup' type='submit' value='".__("Add users", "mingleforum")."' /></td>
</tr>
</table>
</form>
</div>";
}
else
{
echo '<p>Nice TRY!</p>';
}

View File

@ -0,0 +1,143 @@
<?php
if(function_exists('home_url'))
{
if(isset($_POST['edit_save_group'])){
global $wpdb, $table_prefix;
$usergroups = isset($_POST['usergroups'])?$_POST['usergroups']:"";
$usercanpost = isset($_POST['usercanpost'])?$_POST['usercanpost']:"";
$edit_group_name = isset($_POST['edit_group_name'])?$wpdb->escape($_POST['edit_group_name']):"";
$edit_group_description = isset($_POST['edit_group_description'])?$wpdb->escape($_POST['edit_group_description']):"";
$edit_group_id = isset($_POST['edit_group_id'])?$_POST['edit_group_id']:"";
if($_POST['edit_group_name'] == "")
echo "<div id='message' class='updated fade'><p>".__("You must specify a forum name", "mingleforum")."</p></div>";
global $wpdb, $table_prefix;
$wpdb->query("UPDATE ".$table_prefix."forum_forums SET name = '$edit_group_name', description = '$edit_group_description' WHERE id = $edit_group_id" );
$this->update_usergroups($usergroups, $edit_group_id);
$this->update_usercanpost($usercanpost, $edit_group_id);
echo "<div id='message' class='updated fade'><p>".__("Forum updated successfully", "mingleforum")."</p></div>";
}
if(($_GET['do'] == "editgroup") && (!isset($_POST['edit_save_group']))){
$gr_id = (is_numeric($_GET['groupid']))?$_GET['groupid']:0;
global $mingleforum;
$usergroups = $mingleforum->get_usergroups();
$usergroups_with_access = $this->get_usersgroups_with_access_to_group($gr_id);
$usergroups_can_post = $this->get_usersgroups_with_access_to_post($gr_id);
$group_name = stripslashes($mingleforum->get_groupname($gr_id));
global $wpdb, $table_prefix;
echo "<h2>".__("Edit forum", "mingleforum")." \"$group_name\"</h2>";
echo "<form name='edit_group_form' method='post' action=''>";
echo "<table class='form-table'>
<tr>
<th>".__("Name:", "mingleforum")."</th>
<td><input type='text' value='$group_name' name='edit_group_name' /></td>
</tr>
<tr>
<th>".__("Description", "mingleforum")."</th>
<td><textarea name='edit_group_description' ".ADMIN_ROW_COL.">".stripslashes($mingleforum->get_group_description($gr_id))."</textarea></td>
</tr>
<tr>
<th>".__("User Groups:", "mingleforum")."</th>
<td>";
echo "<strong>".__("Members of the checked User Groups have access to the forums in this category:", "mingleforum")."</strong>&nbsp;";
if($usergroups){
$i = 0;
echo "<table class='wpf-wide'>";
echo "<tr>";
foreach($usergroups as $usergroup){
$col = 4;
if($mingleforum->array_search($usergroup->id, $usergroups_with_access))
$checked = "checked='checked'";
else
$checked = "";
$e = "<p><input type='checkbox' $checked name='usergroups[]' value='$usergroup->id'/> ".stripslashes($usergroup->name)."</p>\n\r";
if($i == 0){
echo "<td>$e";
++$i;
}
elseif($i < $col){
echo "$e";
++$i;
}
else{
echo "$e</td>";
$i = 0;
}
}
echo "</tr></table>";
}
else
echo __("There are no User Groups", "mingleforum");
echo "</td>
</tr>
<tr>
<th>".__("User Groups:", "mingleforum")."</th>
<td>";
echo "<strong>".__("Members of the checked User Groups can post to the forums in this category:", "mingleforum")."</strong>&nbsp;";
if($usergroups){
$i = 0;
echo "<table class='wpf-wide'>";
echo "<tr>";
foreach($usergroups as $usergroup){
$col = 4;
$checked = "";
if($mingleforum->array_search($usergroup->id, $usergroups_can_post))
$checked = "checked='checked'";
$e = "<p><input type='checkbox' $checked name='usercanpost[]' value='$usergroup->id'/> ".stripslashes($usergroup->name)."</p>\n\r";
if($i == 0){
echo "<td>$e";
++$i;
}
elseif($i < $col){
echo "$e";
++$i;
}
else{
echo "$e</td>";
$i = 0;
}
}
echo "</tr></table>";
}
else
echo __("There are no User Groups", "mingleforum");
echo "</td>
</tr>
<tr>
<th></th>
<td><input type='submit' name='edit_save_group' value='".__("Save forum", "mingleforum")."' /></td>
</tr>
<input type='hidden' name='edit_group_id' value='".$gr_id."' />";
echo "</table>";
echo "</form>";
}
}
else
{
echo '<p>Nice TRY!</p>';
}

View File

@ -0,0 +1,43 @@
<?php
if(function_exists('home_url'))
{
global $mingleforum;
$users = $mingleforum->get_users();
$groups = $mingleforum->get_forums();
$image = WPFURL."images/user.png";
echo "<h2><img src='$image'>".__("Add moderator", "mingleforum")."</h2>
<form name='add_mod_form' method='post' action='admin.php?page=mfmods&mingleforum_action=moderators'>
<table class='widefat'>
<thead>
<tr>
<th>User</th>
<th>Moderate</th>
</tr>
</thead>
<tr>
<td>
<select name='addmod_user_id'><option selected='selected' value='add_mod_null'>".__("Select user", "mingleforum")."</option>";
foreach($users as $user)
echo "<option value='$user->ID'>$user->user_login ($user->ID)</option>";
echo "</select>";
echo "</td>
<td>";
echo "<p class='wpf-alignright'><input type='checkbox' id='mod_global' name='mod_global' onclick='invertAll(this, this.form, \"mod_forum_id\");' value='true' /> <strong>".__("Global moderator: (User can moderate all forums)", "mingleforum")."</strong></p>";
foreach($groups as $group){
$forums = $mingleforum->get_forums($group->id);
echo "<p class='wpf-bordertop'><strong>".stripslashes($group->name)."</strong></p>";
foreach($forums as $forum){
echo "<p class='wpf-indent'><input type='checkbox' name='mod_forum_id[]' onclick='uncheckglobal(this, this.form);' id='mod_forum_id' value='$forum->id' /> $forum->name</p>";
}
}
echo "</td></tr>
<tr>
<td colspan='2'>
<span style='float:left'><input class='button' type='submit' name='add_mod_submit' value='".__("Add moderator", "mingleforum")."' /></span><span class='button' style='float:right'><a href='http://cartpauj.com' target='_blank'>cartpauj.com</a></span></td>
</tr>
</table>";
}
else
{
echo '<p>Nice TRY!</p>';
}

View File

@ -0,0 +1,52 @@
<?php
if(function_exists('home_url'))
{
if(isset($_POST['edit_usergroup_submit'])){
global $wpdb, $table_prefix;
$edit_usergroup_name = $wpdb->escape($_POST['edit_usergroup_name']);
$edit_usergroup_description = $wpdb->escape($_POST['edit_usergroup_description']);
$edit_usergroup_id = $wpdb->escape($_POST['edit_usergroup_id']);
if(!$edit_usergroup_name)
echo "<div id='message' class='updated fade'><p>".__("You must specify a name for the User Group", "mingleforum")."</p></div>";
else if($wpdb->get_var("SELECT id FROM ".$table_prefix."forum_usergroups WHERE name = '$edit_usergroup_name' AND id <> $edit_usergroup_id"))
echo "<div id='message' class='updated fade'><p>".__("You have choosen a name that already exists in the database, please specify another", "mingleforum")."</p></div>";
else{
$wpdb->query("UPDATE ".$table_prefix."forum_usergroups SET name = '$edit_usergroup_name', description = '$edit_usergroup_description' WHERE id = $edit_usergroup_id" );
echo "<div id='message' class='updated fade'><p>".__("User Group updated successfully", "mingleforum")."</p></div>";
}
}
else{
$ug_id = (is_numeric($_GET['usergroup_id']))?$_GET['usergroup_id']:0;
global $mingleforum;
$name = $mingleforum->get_usergroup_name($ug_id);
echo "<h2>".__("Edit User Group", "mingleforum"). " \"$name\"</h2>";
echo "<form name='edit_usergroup_form' action='' method='post'>";
echo "<table class='form-table'>
<tr>
<th>".__("Name:", "mingleforum")."</th>
<td><input type='' value='$name' name='edit_usergroup_name' /></td>
</tr>
<tr>
<th>".__("Description:", "mingleforum")."</th>
<td><textarea name='edit_usergroup_description' ".ADMIN_ROW_COL.">".$mingleforum->get_usergroup_description($ug_id)."</textarea></td>
</tr>
<tr>
<th></th>
<td><input type='submit' name='edit_usergroup_submit' value='".__("Save User Group", "mingleforum")."'</td>
</tr>
<input type='hidden' value='{$ug_id}' name='edit_usergroup_id' />";
echo "</table></form>";
}
}
else
{
echo '<p>Nice TRY!</p>';
}

1533
i18n/Template.pot Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-ar.mo Normal file

Binary file not shown.

1927
i18n/mingleforum-ar.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-bg_BG.mo Normal file

Binary file not shown.

1765
i18n/mingleforum-bg_BG.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-cs_CZ.mo Normal file

Binary file not shown.

1718
i18n/mingleforum-cs_CZ.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-da_DK.mo Normal file

Binary file not shown.

1615
i18n/mingleforum-da_DK.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-de_DE.mo Normal file

Binary file not shown.

1797
i18n/mingleforum-de_DE.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-es_ES.mo Normal file

Binary file not shown.

1790
i18n/mingleforum-es_ES.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-et.mo Normal file

Binary file not shown.

1582
i18n/mingleforum-et.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-fa_IR.mo Normal file

Binary file not shown.

1819
i18n/mingleforum-fa_IR.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-fi.mo Normal file

Binary file not shown.

1739
i18n/mingleforum-fi.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-fi_FI.mo Normal file

Binary file not shown.

1739
i18n/mingleforum-fi_FI.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-fr_FR.mo Normal file

Binary file not shown.

1411
i18n/mingleforum-fr_FR.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-ge_GE.mo Normal file

Binary file not shown.

1761
i18n/mingleforum-ge_GE.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-he_IL.mo Normal file

Binary file not shown.

1596
i18n/mingleforum-he_IL.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-hr.mo Normal file

Binary file not shown.

1756
i18n/mingleforum-hr.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-hu_HU.mo Normal file

Binary file not shown.

1912
i18n/mingleforum-hu_HU.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-id_ID.mo Normal file

Binary file not shown.

1594
i18n/mingleforum-id_ID.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-it_IT.mo Normal file

Binary file not shown.

1564
i18n/mingleforum-it_IT.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-ja.mo Normal file

Binary file not shown.

1904
i18n/mingleforum-ja.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-lv.mo Normal file

Binary file not shown.

1593
i18n/mingleforum-lv.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-nb_NO.mo Normal file

Binary file not shown.

1577
i18n/mingleforum-nb_NO.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-nl_NL.mo Normal file

Binary file not shown.

1804
i18n/mingleforum-nl_NL.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-pl_PL.mo Normal file

Binary file not shown.

1719
i18n/mingleforum-pl_PL.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-pt_BR.mo Normal file

Binary file not shown.

1591
i18n/mingleforum-pt_BR.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-ro_RO.mo Normal file

Binary file not shown.

1566
i18n/mingleforum-ro_RO.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-ru_RU.mo Normal file

Binary file not shown.

1767
i18n/mingleforum-ru_RU.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-sk_SK.mo Normal file

Binary file not shown.

1667
i18n/mingleforum-sk_SK.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-sl_SI.mo Normal file

Binary file not shown.

1583
i18n/mingleforum-sl_SI.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-sv_SE.mo Normal file

Binary file not shown.

1770
i18n/mingleforum-sv_SE.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-th.mo Normal file

Binary file not shown.

1717
i18n/mingleforum-th.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-tr_TR.mo Normal file

Binary file not shown.

1613
i18n/mingleforum-tr_TR.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-zh_CN.mo Normal file

Binary file not shown.

1761
i18n/mingleforum-zh_CN.po Normal file

File diff suppressed because it is too large Load Diff

BIN
i18n/mingleforum-zh_TW.mo Normal file

Binary file not shown.

1771
i18n/mingleforum-zh_TW.po Normal file

File diff suppressed because it is too large Load Diff

BIN
images/chart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
images/closed.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
images/logomain.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
images/table.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
images/user.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -0,0 +1,285 @@
/**
* $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
*
* @id Moxiecode
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
*/
// URL : http://support.utiliweb.fr/handlers/tiny_mce/plugins/bbcodev2/editor_plugin_src.js
(function() {
tinymce.create('tinymce.plugins.BBCodev2Plugin', {
init : function(ed, url) {
var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase();
ed.onBeforeSetContent.add(function(ed, o) {
o.content = t['_' + dialect + '_bbcode2html'](o.content);
});
ed.onPostProcess.add(function(ed, o) {
if (o.set)
o.content = t['_' + dialect + '_bbcode2html'](o.content);
if (o.get)
o.content = t['_' + dialect + '_html2bbcode'](o.content);
});
function replaceContent(component, tag) {
var cm = ed.controlManager.get(component);
if (ed.selection.getContent() !== '') {
ed.selection.setContent('[' + tag + ']' + ed.selection.getContent() + '[/' + tag + ']');
} else if (cm.isActive()) {
ed.selection.setContent('[/' + tag + ']');
cm.setActive(false);
} else {
ed.selection.setContent('[' + tag + ']');
cm.setActive(true);
}
}
ed.addCommand('preCmd', function () {
replaceContent('pre', 'code');
});
ed.addCommand('ytCmd', function () {
replaceContent('yt', 'yt');
});
ed.addCommand('mapCmd', function () {
replaceContent('map', 'map');
});
ed.addCommand('spoilCmd', function () {
replaceContent('spoil', 'spoiler');
});
ed.addCommand('linkCmd', function () {
var entry = prompt();
if (entry)
ed.selection.setContent('<a href="' + entry + '">' + ed.selection.getContent() + '</a>');
});
ed.addCommand('imageCmd', function () {
var entry = prompt();
if (entry)
ed.selection.setContent('<img src="' + entry + '" style="max-width:100%" />');
});
ed.onInit.add(function (ed) {
var cm = ed.controlManager;
if (cm.get('pre'))
cm.get('pre').settings.cmd = 'preCmd';
if (cm.get('yt'))
cm.get('yt').settings.cmd = 'ytCmd';
if (cm.get('map'))
cm.get('map').settings.cmd = 'mapCmd';
if (cm.get('link'))
cm.get('link').settings.cmd = 'linkCmd';
if (cm.get('image'))
cm.get('image').settings.cmd = 'imageCmd';
if (cm.get('spoil'))
cm.get('spoil').settings.cmd = 'spoilCmd';
});
},
getInfo : function() {
return {
longname : 'BBCodev2 Plugin',
id : 'Moxiecode Systems AB',
idurl : 'http://tinymce.moxiecode.com',
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcodev2',
version : tinymce.majorVersion + "." + tinymce.minorVersion
};
},
// Private methods
// HTML -> BBCode in PunBB dialect
_punbb_html2bbcode : function(s) {
s = tinymce.trim(s);
function rep(re, str) {
s = s.replace(re, str);
};
// example: <strong> to [b]
rep(/<p class=\"codeStyle\">(.*?)<\/p>/gi,"[code]$1[/code]");
rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code]$1[/code]");
rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code]$1[/code]");
rep(/<a target=\"_blank\" href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[link=$1]$2[/link]");
rep(/<a target=\"_self\" href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");
rep(/<a href=\"([^"]*)\">(.*?)<\/a>/gi,"[url=$1]$2[/url]");
rep(/<a href=\"([^"]*)\" target=\"_blank\">(.*?)<\/a>/gi,"[link=$1]$2[/link]");
rep(/<a href=\"([^"]*)\" target=\"_self\">(.*?)<\/a>/gi,"[url=$1]$2[/url]");
rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[blockquote][color=$1]$2[/color][/blockquote]");
rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[blockquote][color=$1]$2[/color][/blockquote]");
rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
rep(/<span style=\"font-size: (.*?)px;\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");
rep(/<font>(.*?)<\/font>/gi,"$1");
rep(/<img class=\"normal\" src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
rep(/<img class=\"miniature\" src=\"(.*?)\".*?\/>/gi,"[img=miniature]$1[/img]");
rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");
rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[blockquote]$1[/blockquote]");
rep(/<span class=\"quoteStyle\" id=\"(.*?)\">(.*?)<\/span>/gi,"[quote=$1]$2[/quote]");
rep(/<span id=\"(.*?)\" class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote=$1]$2[/quote]");
rep(/<span class=\"hideStyle\">(.*?)<\/span>/gi,"[hide]$1[/hide]");
rep(/<p class=\"quoteStyle\">(.*?)<\/p>/gi,"[blockquote]$1[/blockquote]");
rep(/<p class=\"hideStyle\">(.*?)<\/p>/gi,"[hide]$1[/hide]");
rep(/<p id=\"(.*?)\" class=\"quoteStyle\">(.*?)<\/p>/gi,"[quote=$1]$2[/quote]");
rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[blockquote]$1[/blockquote]");
rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");
rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");
rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");
rep(/<code>(.*?)<\/code>/gi,"[code]$1[/code]");
rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");
rep(/<\/(strong|b)>/gi,"[/b]");
rep(/<(strong|b)>/gi,"[b]");
rep(/<\/(em|i)>/gi,"[/i]");
rep(/<(em|i)>/gi,"[i]");
rep(/<\/u>/gi,"[/u]");
rep(/<div class=\"youtube\" title=\"(.*?)\">.*?<\/div>/gi,"[video=youtube]$1[/video]");
rep(/<div class=\"dailymotion\" title=\"(.*?)\">.*?<\/div>/gi,"[video=dailymotion]$1[/video]");
rep(/<div class=\"veoh\" title=\"(.*?)\">.*?<\/div>/gi,"[video=veoh]$1[/video]");
rep(/<div class=\"vimeo\" title=\"(.*?)\">.*?<\/div>/gi,"[video=vimeo]$1[/video]");
rep(/<div class=\"jiwa\" title=\"(.*?)\">.*?<\/div>/gi,"[video=jiwa]$1[/video]");
rep(/<div class=\"deezer\" title=\"(.*?)\">.*?<\/div>/gi,"[deezer]$1[/deezer]");
rep(/<div class=\"picasa\" title=\"(.*?)\">.*?<\/div>/gi,"[picasa]$1[/picasa]");
rep(/<span style=\"text-decoration: line-through;\">(.*?)<\/span>/gi,"[no]$1[/no]");
rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");
rep(/<p style=\"text-align: center;\"><\/p>/gi,"\n");
rep(/<p style=\"text-align: left;\"><\/p>/gi,"\n");
rep(/<p style=\"text-align: right;\"><\/p>/gi,"\n");
rep(/<p style=\"text-align: justify;\"><\/p>/gi,"\n");
rep(/<p style=\"text-align: (.*?);\">(.*?)<\/p>/gi,"[$1]$2[/$1]");
rep(/<u>/gi,"[u]");
rep(/<blockquote[^>]*>/gi,"[quote]");
rep(/<\/blockquote>/gi,"[/quote]");
//listes
rep(/<ul[^>]*>(.*?)<\/ul>/gi,"[list]$1[/list]");
rep(/<ol style="list-style-type: lower-alpha;">(.*?)<\/ol>/gi,"[list=lower-alpha]$1[/list]");
rep(/<ol[^>]*>(.*?)<\/ol>/gi,"[list=decimal]$1[/list]");
rep(/<li>(.*?)<\/li>/gi,"[*]$1\n");
//tableaux
rep(/<table.*?><tbody.*?>(.*?)<\/tbody><\/table>/gi,"[tableau]$1[/tableau]");
rep(/<table.*?>(.*?)<\/table>/gi,"[tableau]$1[/tableau]");
rep(/<tr.*?><td.*?>/gi,"[ligne]");
rep(/<\/td><\/tr>/gi,"[/ligne]");
rep(/<\/td><td.*?>/gi,"[|]");
rep(/<p>/gi,"");
rep(/<p.*?>/gi,"");
rep(/<\/p>/gi,"<br \/>");
rep(/<br \/>/gi,"\n");
rep(/<br\/>/gi,"\n");
rep(/<span style=\"color: (.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
rep(/<span style=\"color: (.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
rep(/<span style=\"color: (.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
rep(/<span style=\"font-size: (.*?)px;\">(.*?)<\/span>/gi,"[size=$1]$2[\/size]");
rep(/<span style=\"font-size: (.*?)px;\">(.*?)<\/span>/gi,"[size=$1]$2[\/size]");
rep(/<span style=\"font-size: (.*?)px;\">(.*?)<\/span>/gi,"[size=$1]$2[\/size]");
rep(/<\!--.*?-->/gi,"");
rep(/<\/span>/gi,"");
rep(/<span.*?>/gi,"");
rep(/<div.*?>/gi,"");
rep(/<\/div>/gi,"");
rep(/<tr.*?>/gi,"");
rep(/<\/tr>/gi,"");
rep(/<\/table>/gi,"");
rep(/<table.*?>/gi,"");
rep(/<\/tbody>/gi,"");
rep(/<tbody.*?>/gi,"");
rep(/<td.*?>/gi,"");
rep(/<\/td>/gi,"");
rep(/&nbsp;/gi," ");
rep(/&quot;/gi,"\"");
rep(/&lt;/gi,"<");
rep(/&gt;/gi,">");
rep(/&amp;/gi,"&");
return s;
},
// BBCode -> HTML from PunBB dialect
_punbb_bbcode2html : function(s) {
s = tinymce.trim(s);
function rep(re, str) {
s = s.replace(re, str);
};
// example: [b] to <strong>
rep(/\[code\](.*?)\[\/code\]/gi,"<p class=\"codeStyle\">$1</p>");
rep(/\n\n/g, "<p><\/p>");
rep(/\n/g, "<br \/>");
rep(/\[b\]/gi,"<strong>");
rep(/\[\/b\]/gi,"</strong>");
rep(/\[i\]/gi,"<em>");
rep(/\[\/i\]/gi,"</em>");
rep(/\[u\]/gi,"<u>");
rep(/\[\/u\]/gi,"</u>");
rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
rep(/\[link=([^\]]+)\](.*?)\[\/link\]/gi,"<a target=\"_blank\" href=\"$1\">$2</a>");
rep(/\[link\](.*?)\[\/link\]/gi,"<a target=\"blank\" href=\"$1\">$1</a>");
rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" style=\"max-width:100%\" />");
rep(/\[img=miniature\](.*?)\[\/img\]/gi,"<img class=\"miniature\" src=\"$1\" />");
rep(/\[color=(.*?)\]/gi,"<font color=\"$1\">");
rep(/\[\/color\]/gi,"</font>");
rep(/\[hide\](.*?)\[\/hide\]/gi,"<p class=\"hideStyle\">$1</p>");
rep(/\[blockquote.*?\](.*?)\[\/blockquote\]/gi,"<p class=\"quoteStyle\">$1</p>");
rep(/\[quote=(.*?)\](.*?)\[\/quote\]/gi,"<p class=\"quoteStyle\" id=\"$1\">$2</p>");
rep(/\[quote.*?=(.*?)\](.*?)\[\/quote.*?\]/gi,"<p class=\"quoteStyle\" id=\"$1\">$2</p>");
rep(/\[size=(.*?)\]/gi,"<span style=\"font-size: $1px;\">");
rep(/\[\/size\]/gi,"</span>");
rep(/\[no](.*?)\[\/no\]/gi,"<span style=\"text-decoration: line-through;\">$1</span>");
rep(/\[center](.*?)\[\/center\]/gi,"<p style=\"text-align: center;\">$1</p>");
rep(/\[left](.*?)\[\/left\]/gi,"<p style=\"text-align: left;\">$1</p>");
rep(/\[right](.*?)\[\/right\]/gi,"<p style=\"text-align: right;\">$1</p>");
rep(/\[justify](.*?)\[\/justify\]/gi,"<p style=\"text-align: justify;\">$1</p>");
rep(/\[video=youtube\](.*?)\[\/video\]/gi,"<div class=\"youtube\" title=\"$1\"><br><br>$1<\/div>");
rep(/\[video=dailymotion\](.*?)\[\/video\]/gi,"<div class=\"dailymotion\" title=\"$1\"><br><br>$1<\/div>");
rep(/\[video=veoh\](.*?)\[\/video\]/gi,"<div class=\"veoh\" title=\"$1\"><br><br>$1<\/div>");
rep(/\[video=vimeo\](.*?)\[\/video\]/gi,"<div class=\"vimeo\" title=\"$1\"><br><br>$1<\/div>");
rep(/\[video=jiwa\](.*?)\[\/video\]/gi,"<div class=\"jiwa\" title=\"$1\"><br><br>$1<\/div>");
rep(/\[deezer\](.*?)\[\/deezer\]/gi,"<div class=\"deezer\" title=\"$1\"><br><br>$1<\/div>");
rep(/\[picasa\](.*?)\[\/picasa\]/gi,"<div class=\"picasa\" title=\"$1\"><br><br><\/div>");
//tableaux
rep(/\[\|\]/gi,"</td><td>");
rep(/\[ligne](.*?)\[\/ligne\]/gi,"<tr><td>$1</td></tr>");
rep(/\[tableau](.*?)\[\/tableau\]/gi,"<table>$1</table>");
// lists
rep(/\[list\]\[\*\](.*?)\[\/list\]/gi, "<ul><li>$1</li></ul>");
rep(/\[list=decimal\]\[\*\](.*?)\[\/list\]/gi, "<ol><li>$1</li></ol>");
rep(/\[list=lower-alpha\]\[\*\](.*?)\[\/list\]/gi, "<ol style=\"list-style-type: lower-alpha;\"><li>$1</li></ol>");
rep(/\[list\](.*?)\[\/list\]/gi, "<ul><li>$1</li></ul>");
rep(/\[list=decimal\](.*?)\[\/list\]/gi, "<ol><li>$1</li></ol>");
rep(/\[list=lower-alpha\](.*?)\[\/list\]/gi, "<ol style=\"list-style-type: lower-alpha;\"><li>$1</li></ol>");
rep(/\[\*\]/gi, "</li><li>");
// fix empty li's
rep(/<li><br \/><\/li>/g, "");
rep(/<li\/>/g, "");
return s;
}
});
// Register plugin
tinymce.PluginManager.add('bbcodev2', tinymce.plugins.BBCodev2Plugin);
})();

View File

@ -0,0 +1,43 @@
/**
* editor_plugin_src.js
*
* Copyright 2009, Moxiecode Systems AB
* Released under LGPL License.
*
* License: http://tinymce.moxiecode.com/license
* Contributing: http://tinymce.moxiecode.com/contributing
*/
(function(tinymce) {
tinymce.create('tinymce.plugins.EmotionsPlugin', {
init : function(ed, url) {
// Register commands
ed.addCommand('mceEmotion', function() {
ed.windowManager.open({
file : url + '/emotions.php',
width : 300 + parseInt(ed.getLang('emotions.delta_width', 0)),
height : 200 + parseInt(ed.getLang('emotions.delta_height', 0)),
inline : 1
}, {
plugin_url : url
});
});
// Register buttons
ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'});
},
getInfo : function() {
return {
longname : 'Emotions',
author : 'Moxiecode Systems AB',
authorurl : 'http://tinymce.moxiecode.com',
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',
version : tinymce.majorVersion + "." + tinymce.minorVersion
};
}
});
// Register plugin
tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin);
})(tinymce);

View File

@ -0,0 +1,32 @@
<?php
$root = dirname(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))));
require_once($root . '/wp-load.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="<?php echo site_url('/wp-includes/js/tinymce/tiny_mce_popup.js'); ?>"></script>
<script type="text/javascript" src="js/emotions.js"></script>
<style type="text/css">a{text-decoration:none}</style>
</head>
<body style="display: none" role="application" aria-labelledby="app_title">
<div align="center">
<table id="emoticon_table" role="presentation" border="0" cellspacing="0" cellpadding="4">
<tr>
<td>
<?php
global $wpsmiliestrans;
$smilies = array_unique($wpsmiliestrans);
foreach ($smilies as $smiley => $src):
?>
<a class="emoticon_link" role="button" title="<?php echo $smiley; ?>" href="javascript:EmotionsDialog.insert('<?php echo $smiley; ?>');">
<?php echo translate_smiley(array($smiley)); ?>
</a>
<?php endforeach; ?>
</td>
</tr>
</table>
</div>
</body>
</html>

View File

@ -0,0 +1,36 @@
var EmotionsDialog = {
addKeyboardNavigation: function(){
var tableElm, cells, settings;
cells = tinyMCEPopup.dom.select("a.emoticon_link", "emoticon_table");
settings ={
root: "emoticon_table",
items: cells
};
cells[0].tabindex=0;
tinyMCEPopup.dom.addClass(cells[0], "mceFocus");
if (tinymce.isGecko) {
cells[0].focus();
} else {
setTimeout(function(){
cells[0].focus();
}, 100);
}
tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom);
},
init : function(ed) {
tinyMCEPopup.resizeToInnerSize();
this.addKeyboardNavigation();
},
insert : function(title) {
var ed = tinyMCEPopup.editor, dom = ed.dom;
tinyMCEPopup.execCommand('mceInsertContent', false, title);
tinyMCEPopup.close();
}
};
tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog);

130
js/script.js Normal file
View File

@ -0,0 +1,130 @@
// Surrounds the selected text with text1 and text2.
function surroundText(tag1, tag2, myarea)
{
if (document.selection) //IE
{
myarea.focus();
var sel = document.selection.createRange();
sel.text = tag1 + sel.text + tag2;
}
else //Other Browsers
{
var len = myarea.value.length;
var start = myarea.selectionStart;
var end = myarea.selectionEnd;
var scrollTop = myarea.scrollTop;
var scrollLeft = myarea.scrollLeft;
var sel = myarea.value.substring(start, end);
var rep = tag1 + sel + tag2;
myarea.value = myarea.value.substring(0,start) + rep + myarea.value.substring(end,len);
myarea.scrollTop = scrollTop;
myarea.scrollLeft = scrollLeft;
}
}
var current_header = false;
function shrinkHeader(mode){
var val = "";
document.getElementById("upshrinkHeader").style.display = mode ? "none" : "";
document.getElementById("upshrinkHeader2").style.display = mode ? "none" : "";
//document.getElementById("upshrink").src = skinurl+"/images" + (mode ? "/upshrink2.gif" : "/upshrink.gif");
if(mode === true){
val = "yes";
}
if(mode === false){
val = "no";
}
setCookie("wpf_header_state", val, 0 );
current_header = mode;
}
function setCookie(name, value, expires, path, domain, secure) {
document.cookie= name + "=" + escape(value) +
(expires? "; expires=" + expires.toGMTString(): "") +
(path? "; path=" + path: "") +
(domain? "; domain=" + domain: "") +
(secure? "; secure": "");
}
function fold(){
var lol = getCookie("wpf_header_state");
if(lol === "yes")
shrinkHeader(true);
if(lol === "no")
shrinkHeader(false);
}
function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!==-1)
{
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end===-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
function selectBoards(ids){
var toggle = true;
for (i = 0; i < ids.length; i++)
toggle = toggle & document.forms.wpf_searchform["forum" + ids[i]].checked;
for (i = 0; i < ids.length; i++)
document.forms.wpf_searchform["forum" + ids[i]].checked = !toggle;
}
function collapseExpandGroups(group, mode){
}
function expandCollapseBoards(){
var current = document.getElementById("searchBoardsExpand").style.display !== "none";
document.getElementById("search_coll").src = skinurl+"/images" + (current ? "/upshrink2.gif" : "/upshrink.gif");
document.getElementById("searchBoardsExpand").style.display = current ? "none" : "";
}
// Invert all checkboxes at once by clicking a single checkbox.
function invertAll(headerfield, checkform, mask)
{
for (var i = 0; i < checkform.length; i++)
{
if (typeof(checkform[i].name) === "undefined" || (typeof(mask) !== "undefined" && checkform[i].name.substr(0, mask.length) !== mask))
continue;
if (!checkform[i].disabled)
checkform[i].checked = headerfield.checked;
}
}
function uncheckglobal(headerfield, checkform){
checkform.mod_global.checked = false;
}
jQuery().ready(function () {
jQuery('.mingle-spoiler-view li:first-child').click(function () {
var text = jQuery(this).parent().find('li:last-child');
if (text.is(':hidden')) {
text.slideDown('200');
jQuery(this).find('span').html('-');
} else {
text.slideUp('200');
jQuery(this).find('span').html('+');
}
});
});

483
readme.txt Normal file
View File

@ -0,0 +1,483 @@
=== Mingle Forum Hacked ===
Contributors: cartpauj
Hacker : Xéfir Destiny
Donate link: http://cartpauj.com/donate/
Tags: forum, mingle, mingle forum, cartpauj, discussion, board, threads, messaging, message, messages, user forum, wordpress forum, forum plugin, forums, discussion forums, easy forum, discussion board, discussions, boards, bbpress, bulletin board, bulletin boards, bulletin, server, wp
Requires at least: 3.0
Tested up to: 3.6
Stable tag: 1.0.4
Mingle Forum allows you to easily and quickly put a Forum on your Wordpress site/blog.
== BEFORE ALL READ THIS ==
Hi !
I'm Xéfir Destiny, the "hacker" of this plugin.
I made huge modifications from the 1.0.34 version of the original plugin by cartpauj.
Some great new features is included, like the sub-forums capabilities or the wordpress editor for posts writing (with BBCode support !)
It's pretty stable now, even if there are still performance issues.
Unfortunatly, i don't have time anymore to work on it now, so i decide to release as it's, but it's at your own risks ;-)
== Description ==
Have you been looking for a Forum Plugin for WordPress that *just works*? Then look no further! Mingle Forum has been modified to be lightweight, solid, secure, quick to setup, easy to use, and best of all it now integrates seamlessly with or without the Mingle social networking plugin (by Blair Williams). The mission of Mingle Forum is, to **KEEP IT SIMPLE** There are a handful of Forum Plugins for WordPress available but they are either super buggy, difficult to install, or so bloated with features and settings that its a nightmare setting them up. Dont do that to yourself!!! You can be up and running with Mingle Forum fully installed and configured in as little as 5 minutes -- pretty cool eh?
= Donate =
[GET A FREE PLUGIN WHEN DONATING](http://cartpauj.com/projects/cartpauj-post-hits-plugin/)
= See Mingle Forum In Action =
You can try Mingle Forum out on my site:
[cartpauj.com](http://cartpauj.com "cartpauj.com Wordpress Plugins")
= Get More Forum Skins =
[Get More Mingle Forum Skins](http://cartpauj.icomnow.com/forum/?mingleforumaction=viewforum&f=5.0 "cartpauj.com Mingle Forum Skins")
= Features =
* **NEW!** Limit SPAM by setting a time interval users must wait between posts
* Create a corresponding Forum post when you create a WordPress post
* User Signatures (instead of Bio)
* Lock entire forums
* Image uploads on New Posts and Replies
* SEO Friendly forum URLs
* Forum Sitemap (../wp-content/plugins/mingle-forum/sitemap.php)
* Integrated HTML areas for adsense or affiliate links
* Media embedding into forum posts (like Youtube, Flickr, Photobucket...)
* Private Messages - Mingle Forum now integrates seamlessly with Mingle or my [Cartpauj PM Plugin](http://cartpauj.com/projects/cartpauj-pm-plugin) (Requires Cartpauj PM vs 1.0.09 or greater)
* RSS Feeds
* Quick Reply
* Wordpress 3.x ready!
* Categories with sub-forums
* User Groups
* User Levels (EX: Newbie, Beginner, Advanced, Pro)
* Moderators
* Skins
* Captcha
* BB Code
* Smilies
* Custom Forum Search
* Guest posts (See Mingle Forum Guest Info add-on by wpweaver)
* Hot/Very Hot topics
* Sticky (Pinned) Topics
* Move, Edit, Remove and Close topics
* Email notifications on Replies to Topics
* Email notifications on new Topics in Forums
* Recent posts widget (or PHP shortcode for your theme)
* Integrates nicely with most themes (Its tough to make it work for all themes so some skin modifications may be required for your site)
* Allow/Dis-allow other users to view your profile from the Forum
* Supports internationalization/localization
* Integrates with the Mingle plugin (by Blair Williams) NOTE: The Mingle plugin is NOT required for the forum to work
= Notes =
* Mingle forum 1.0.32 uses a new email subscription system. All old subscriptions will be lost after upgrading. This will allow much better email support for the future.
* If you use Wordpress 2.9.2 or older you will need to download Mingle Forum vs. 1.0.27 as of 1.0.28+ only Wordpress 3.0+ is supported
* As of Mingle Forum Vs 1.0.03 the skins directory has been changed to /wp-content/mingle-forum-skins/ [Tell Me More...](http://cartpauj.icomnow.com/forum/?mingleforumaction=viewtopic&t=64.0)
* If youre switching from WP Forum or Forum Server you will lose your skin and settings but you will NOT lose your categories, forums, groups, or topics which makes it very easy to make the transition :)
= Translations =
* NOTE: If you want to help with translations click [HERE](http://cartpauj.icomnow.com/forum/cartpauj-general-group2/translating-my-plugins-forum15/how-to-translate-my-plugins-to-your-language-thread25/)
* Arabic
* Brazilian Portuguese
* Bulgarian
* Croatian
* Czech
* Danish
* Dutch
* Estonian
* Finnish
* French
* Georgian
* German
* Hebrew
* Hungarian
* Indonesian
* Italian
* Japanese
* Latvian
* Persian
* Polish
* Romanian
* Russian
* Simplified Chinese
* Slovak
* Slovanian
* Spanish
* Swedish
* Thai
* Traditional Chinese
* Turkish
== Installation ==
* Great [setup videos here](http://cartpauj.com/projects/mingle-forum-plugin/tutorials/) by cartpauj or use Roberts [text guide here](http://minglecommunities.com/mingle-forum-install-guide/).
* Download Mingle Forum
* Create a new page for your forum to display on
* Head to the page you just created for the forum, paste [mingleforum] and save, (NOTE: Its best to paste that under the HTML tab of your page editor)
* Head to Dashboard -> Plugins -> Add New -> Upload
* Browse to the .zip file you downloaded and click open
* Click Install
* Click Activate
* Youll now see a new admin menu called Mingle Forum
* Configure your Mingle Forum options, Set a Skin [HOW TO](http://cartpauj.icomnow.com/forum/?mingleforumaction=viewtopic&t=36.00), create your Categories and Forums
* DONE! Its that easy
Need help?:
[Cartpauj Support Forums](http://cartpauj.icomnow.com/forum "Cartpauj Support Forums")
== Frequently Asked Questions ==
n/a
== Upgrade Notice ==
MAKE A BACKUP OF YOUR DATABASE BEFORE INSTALL THIS VERSION !!!
== Upgrade Note for you theme ==
To make your theme compatible with this copy of Mingle Forum, in your style.css, you have to :
* Replace all #trail by .trail
* Replace all #forummenu by .forummenu
* Replace all #topicmenu by .topicmenu
== Changelog ==
= 1.0.4 =
* Show all dates in localized language
* Date format setting is now part of the Wordpress core
* Get login/register page dynamically (compatibility with Theme My Login)
* Generate smilies dynamically
* HUGE code cleanup
* !!! Sub-forums feature !!!
* !!! Using TinyMCE Wordpress editor !!!
* !!! Remove Mingle and PM integration !!!
* User Group access and post can be assigned to forum
* Two methods to restict access : access and post
* Spoiler BBCode
* Center BBCode
* HTML validation
* Add bottom pagination
* Fix display glitches
* Fix -1 threads after delete the last post
* Fix Quick Reply on IE
= 1.0.34 =
* Added ability to limit SPAM by setting a time interval users must wait between posts
* Added option to allow users to post replies in locked categories
* Added hide branding option
* Added a Permalink option for every reply
* Removed some reduntant links
* Brought back forum action links at the bottom of the thread
* Fixed wrong smilie images
* Fixed moderators unable to edit posts issue
* Fixed duplicate forums issue (Thanks to Steve, WordBooker Plugin author, for spotting this one)
* Fixed google ads not working (for now)
* Security enhancements
* Handful of other minor bug fixes
* Updated German Translation (Big thanks to Michael)
* Updated Bulgarian Translation (Big thanks to DDArt)
= 1.0.33.3 =
* Compatibility release for WordPress 3.5
= 1.0.33.2 =
* Fixed bug in admin
= 1.0.33.1 =
* A few more non-critical security patches
* Removed whitespace between BBCode buttons
= 1.0.33 =
* Security patches
= 1.0.32.1 =
* Fixed bug with email subscriptions throwing implode error
= 1.0.32 =
* Subscribe to whole forum by email now available (old subscriptions will be lost, sorry)
* Fixed Header already sent errors caused by failing SEO redirects
* Fixed issue with wp posts->forum returning blank or no topic
* Fixed bug with Mark All Read feature throwing errors
* Updated German Translation (Big thanks to Michael)
= 1.0.31.4 =
* Fixed broken inbox link introduced in 1.0.31.1
* Removed advanced search (it didn't work anyways)
* Fixed search from returning MASS amounts of results
= 1.0.31.3 =
* Small bug-fixes
= 1.0.31.2 =
* Another security fix preventing hackers from editing all posts in the forum
= 1.0.31.1 =
* Added ability to lock entire categories
* Fixed problems with SSL (https)
* Fixed Output Buffer issues - should solve SFC Like plugin incompatibilities
* Fixed major security risk when using CAPTCHA
* Fixed bug with moderators
* Fixed wpdb->prepare issues in wpf.insert.php file - inserts should be sanitized properly now
* Updated German Translation (Big thanks to Michael)
= 1.0.31 =
* Added ability to link WordPress posts with corresponding forum post
* Added real forum signatures for users instead of Bio
* Added 4 more hooks for 3rd party plugin developers to use
* Fixed Quote link showing up on locked topics
* Fixed topic title vanishing if a single quote was used
* Fixed protected posts showing up in the New Posts feed
* Fixed potential XSS security threat
* Fixed path disclosure risk in /fs-admin/ files
* Added Croatian Translation (Big thanks to Sinisa)
* Updated Hungarian Translation (Big thanks to webmester)
* Updated German Translation (Big thanks to Michael)
= 1.0.30 =
* Added image uploads feature
* Updated Czech Translation (Big thanks to sborez)
* Updated Swedish Translation(Big thanks to Fredrik Johansson Nord)
* Updated Italian Translation (Big thanks to Tamara)
* Updated Arabic Translation (Big thanks to Alhoashim)
* Updated Estonian Translation (Big thanks to Illimar Tambek)
* Updated Russian Translation (Big thanks to Pavel Shukhman)
* Updated Slovenian Translation (Big thanks to Saso Novak)
* Added Norwegian Translation (Big thanks to Sigmund)
= 1.0.29 =
* Fixed critical posting bug with the latest PHP version
* Updated Italian Translation (Big thanks to Carlos and Nomed)
* Updated Finnish Translation (Big thanks to Eleanor)
= 1.0.28.2 =
* Fixed critical formatting conflict caused by WP 3.0.5
= 1.0.28.1 =
* Fixed super-admin issue
* Fixed image compatibility issue with WP 3.0.5
* Added a few more CSS classes for skin developers
* Updated Bulgarian Translation (Big thanks to DDArt)
= 1.0.28 =
* Dropped all legacy support for Wordpress versions older than 3.0
* Added Google Maps BBCode button
* Added a few code optimization fixes
* Added link to last page of thread to the date in the right column of forum view
* Updated all Modified Forum skins to support new maps BBCode image
* DDArt has also updated all his skins as well (Big thanks to him for his awesome work!)
* Fixed moderators saving bug when moderator not set to global
* Fixed LOTS of debug errors
* Fixed Subscribe/Unsubscribe email link
* Fixed RSS Feed not to show threads from group protected forums
* Fixed RSS Feeds to truley be disabled when disabling the admin option
* Fixed a translatable string
* Fixed forum sitemap.php issue when not using SEO URLs
* Fixed issue with Slovenian Translation
* Added Romainian Translation (Big thanks to Andrei)
* Added Finish Translation (Big thanks to Sammy)
* Updated German Translastion (Big thanks to Michael)
= 1.0.27 =
* 4 Critical security fixes -- everyone should update immediately! (Big thanks to Charles)
* Added 7 Adsense areas and new admin menu for managing them
* Fixed SEO code from being executed when option is disabled
* Fixed Replies count to not include first post
* Fixed Thread views not to count administrator/moderator views
* Cleaned up plugin activation code -- should activate MUCH faster after this update
* Added Latvian Translation (Big thanks to LapuVieta.lv)
* Added Czech Translation (Big thanks to Jan)
= 1.0.26 =
* Added link to original image when using BBCode to embed pictures
* Fixed dashboard admin menu
* Fixed BBCode surround text js issue with IE
* Fixed notify_topics bug in user options area
* Cleaned up more un-needed code in fs-admin
* Added Slovanian Translation (Big thanks to Tadej)
* Updated Bulgarian Translation (Big thanks to DDArt)
* Updated German Translation (Big thanks to Michael)
* Update Brazilian Portuguese Translation (Big thanks to Gabriel)
= 1.0.25 =
* Added a link on forum home to mark all posts as read
* Fixed critical SQL error in edit forum options area
* Fixed minor avatar issue
* Fixed register/logout
* Fixed error when deleting forums
* Re-did forum/thread paging - much more condensed now
* Made small change to thread breadcrumbs
* Cleaned up some un-needed code
= 1.0.24 =
* Added a Notify Admin of all new posts feature
* Added a few security enhancements
* Fixed plugin conflict causing forum to show 2+ times on same page
* Fixed critical error causing some static front pages not to show
* Fixed syntax error
* Updated German translation to the correct files (Big thanks to Michael)
= 1.0.23.2 =
* Fixed SEO Links when using /index.php in permalinks
* Fixed SEO Links to work better with international languages
* Fixed critical broken widget links
* Fixed some login/logout links & form actions
* Updated latest_activity shortcode
* Added Estonian translation (Big thanks to Leo)
* Updated French translation (Big thanks to Maxime)
* Updated Russian translation (Big thanks to Pavel)
* Updated German translation (Big thanks to Michael)
= 1.0.23.1 =
* Redid unread/new topics since last visit feature - works MUCH better now
= 1.0.23 =
* ADDED SEO FRIENDLY URLs setting
* Added a dynamic forum sitemap (../wp-content/plugins/mingle-forum/sitemap.php)
* Added a confirmation pop-up before deleting a thread
* Improved unread/new topics
* Fixed widget to show only the latest post per thread
* Fixed a BBCode class error
* Fixed a few linking errors
* Fixed a few untranslatable strings
* Updated Danish Translation (Big thanks to Martin S)
* Added Indonesian Translastion (Big thanks to qzoners)
= 1.0.22 =
* Fixed widget controls error when plugin is translated
= 1.0.21.1 =
* Fixed another small javascript error
= 1.0.21 =
* Fixed CSS error in the default skin
* Fixed database issue for some users - the posts table was not being created properly in some cases
* Fixed small javascript error
= 1.0.20 =
* Fixed paging redirect bug
* Added some API filters for 3rd party devs -- check out the Mingle Forum Guest Info plugin by [Bruce](http://wpweaver.info)
* Updated German translation (Big thanks to [Michael Fitzen](http://be-infected.de/))
= 1.0.19 =
* Fixed critical bug with paging introduced in vs 1.0.17
* Fixed thread paging bug when sticky topics are used
* Fixed critical error if users were running old versions of Mingle / Cartpauj PM
* Added feature to disable Bios (signatures)
* Added a few style fixes and another CSS button element for login
* Changed admin display name texbox into a drop-down to make it easier for people to figure out
* Added Turkish translation (Big thanks to [Selim Eski](http://selimeski.info))
* Added Slovak translation (Big thanks to [Vladimir Procka](http://www.tastymedia.sk))
* Added Polish translation (Big thanks to [JDstar](http://jdstar.pl))
= 1.0.18 =
* Fixed critical bug with Quick Reply allowing guests to post if guest posting was disabled.
* Added another CSS element
= 1.0.17 =
* Fixed forum linking to redirect to the proper thread and post after creating, replying, or editing
* Integrated the Private Messaging portion of Mingle
* Added a Quick Reply form to the thread view
* Added a few CSS elements
* Added Hebrew translation (Big thanks to [bainternet](http://www.bainternet.info))
* Updated German translation (Big thanks to [Michael Fitzen](http://be-infected.de/))
= 1.0.16 =
* Added an admin option to Disable forum RSS
* Fixed quotes not returning the proper user display name
* Fixed emails not sending the proper user display name
* Fixed fatal email bug
* Fixed a plugin conflict with Proplayer
* Fixed a bunch of Guest-Posting related bugs
* Fixed a few more translatable strings
* Fixed widget privacy bug - it was showing private posts to non-users of Forum Groups
* Cleaned up a bunch of code and syntax issues (Big thanks to [Bruce Wampler](http://wpweaver.info) for searching some of these out)
* Fixed a few other trivial issues
* Updated Spanish translation (Big thanks to [Notimundo](http://uca.migueldearriba.net/foro-de-debate/))
* Updated Simplified Chinese translation (Big thanks to Yan Wei)
* Updated Bulgarian translation (Big thanks to [DD Art](http://ddart-bg.com/))
= 1.0.15 =
* Removed Feature - Private Messaging, please use [Cartpauj PM](http://cartpauj.com/projects/cartpauj-pm-plugin) instead
* Added Feature - Cartpauj PM now fully integrates with the Forum for Private Messaging (Requires Cartpauj PM vs 1.0.09 or greater)
* Changed Mingle Forum to only allow Moderators or Admins to "Remove" posts
= 1.0.14 =
* Fixed a syntax error causing a fatal error when trying to Post a new topic
= 1.0.13 =
* Fixed another registration link bug
* Fixed userrole redundancy
* New CAPTCHA system that doesn't use PHP Sessions so it should work for everyone :)
* Added Persian translation (Big thanks to [Mostafa Soufi](http://iran98.org/))
* Updated Danish translations (Big thanks to [GeorgWP](http://wordpress.blogos.dk))
= 1.0.12 =
* Fixed a number of translatable strings
* Fixed some other profile related bugs
* Fixed Show/Hide header bug
* Security Fix - email address being sent out in notification emails
* Modified Profile linking and simplified some of the code for it
* Updated Japanese tranlsation (Big thanks to [Kayoko Furukawa](http://www.design-cupola.com))
* Updated Bulgarian translation (Big thanks to [DD Art](http://ddart-bg.com/))
* Added Hungarian translation (Big thanks to [Laszlo Szamosi](http://www.sutesfozes.blogspot.com))
* Added Danish translation (Big thanks to [Thomas Sindberg](http://dagpengeregler.dk))
= 1.0.11 =
* Fixed bug causing logged in users name to show on all topic replies (Thanks to Gene for spotting this before I left for vacation!)
= 1.0.10 =
* Added admin option to select the forum's public Display Name
= 1.0.09 =
* Fixed bug preventing pre 2.9 users from using the forum, these users can now use the forum but will not have access to media embedding
* Fixed bug preventing Moderators from being able to make topics sticky/closed
* Fixed some CSS in the default theme
* Fixed bugs preventing users with PHP 4 from using the forum
* Updated forum time to work with the users Wordpress settings instead of using GMT, this change doens't effect existing posts but all new posts will have the corrected time.
* Updated the way emails are sent out, now much more info is sent in HTML format instead of plain text
* Added spacing around smilie inserts to prevent them from not showing up properly
* Added Traditional Chinese translation (Big thanks to [Jackie Yeh](http://givelove.tellustek.com))
* Added Thai translation (Big thanks to [Sutee](http://woodloverclub.com))
* Added Bulgarian translation (Big thanks to [DD Art](http://ddart-bg.com/))
* Added Georgian translation (Big thanks to [Mirian Koridze](http://koridze.com/))
= 1.0.08 =
* Added some CSS Fixes to all the skins to help make the forum more compatible with various themes
= 1.0.07 =
* Added admin setting to allow hiding/showing the login form
* Fixed and re-published the admin setting to allow changing the time format the forum uses
* Added French translation (Big thanks to [Gobiel](http://gobiel.info/))
* Updated Italian translation (Big thanks to [Clay](http://clayworld.altervista.org))
= 1.0.06 =
* Fixed bug in video embed system causing the [url] & [img] BBCodes to break
= 1.0.05 =
* UPDATE TO 1.0.05 NOW - Fixed Embed bug that could bring down your entire forum!
* Fixed small bug in database creation
= 1.0.04 =
* Updated Swedish Translation (Big thanks to [Stefan Ljungwall](http://minablandadeinfall.se/))
* Updated Dutch Translation (Big thanks to @Jensr)
* Fixed Embedding Videos, now supports more than YouTube (see [THIS](http://codex.wordpress.org/Embeds) for more info on supported embeds and [THIS](http://cartpauj.icomnow.com/forum/?mingleforumaction=viewtopic&t=43.0) for a How To?)
* Fixed registration link bug
* Fixed bug related to Forum Database columns not being added properly
= 1.0.03 =
* As of Mingle Forum Vs 1.0.03 the skins directory has been changed to /wp-content/mingle-forum-skins/ [Tell Me More...](http://cartpauj.icomnow.com/forum/?mingleforumaction=viewtopic&t=64.0)
* Added smilies to the editor. (You'll need to re-download the themes to get the smilies)
* Updated German translation (Big thanks to [adiumac](http://cad.hieke.at/))
= 1.0.02 =
* Fixed a critical DB bug affecting international users and foriegn characters (Be sure to de-activate before updating)
= 1.0.01 =
* Added YouTube video embedding (to get this to work you must use the URL from the src= in the embed code)
* Updated Russian translation (Big thanks to [Verbena](http://xozyayka.ru/))
* Modified code to be more compatible with PHP 4 (have not tested with PHP 4 yet though)
= 1.0.00 =
* Heres all the changes Ive made since taking over from WP Forum (Big thanks to Eric Hamby for his previous contributions to this plugin as well!)
* Added Feature(s): Full integration with Mingle
* Avatars work with Mingle avatars
* Profile links take you to Mingle profiles
* Forum posts get posted as user activity in Mingle
* Forum replies get posted as replies in Mingle
* Forum posts deleted also deletes corresponding Mingle post
* Added Feature: 4 configurable User Levels (Ex: Newbie, Beginner, Advanced Pro...)
* Added Feature: Private Messages
* Fixed bug: Problem with saving user options not allowing Email Subscriptions
* Fixed bug: Move Topic not working with default permalinks
* Fixed bug: BBCode now works (complete BBCode re-write)
* Fixed bug: Nested quotes in BBCode
* Fixed bug: .po, .mo files now work for translating plugin
* Fixed bug: Forum search sometimes not working
* Fixed bug: Entering code in the forum now works properly
* Fixed bug: Time now works properly (Switched forum to GMT)
* Fixed bug: Hot/Very Hot topics now show up properly
* Fixed bug: Email Notifications sending wrong link back to topic
* Fixed bug: Ampersand errors in forum links
* Fixed bug: Editing first post of topic now updates the title of the topic properly
* Fixed bug: Editing posts with single quotes in title now works (quotes are stripped out of title)
* Fixed bug: Forum showing nicename/nickname instead of username
* Fixed bug: Threads per page not working when set to a value different from posts per page
* Fixed bug: Pagination now works properly on second(+) page(s)
* Fixed bug: Creating topic returns blank page now fixed
* Fixed bug: Topic links incorrect on second(+) page(s)
* Fixed bug: Closed topic not working (Fixed database entry for this)
* Fixed bug: Sticky Topics not working
* Fixed bug: Topic status images show up properly
* Fixed bug: <, % and $ no longer kill the forum posts (Thanks to @Gene53 for spotting this)
* Fixed CSS: Smilies not showing properly
* Fixed CSS: Large images no longer break the theme
* Fixed CSS: Code block no longer breaks theme
* Fixed CSS: Tables now align properly
* Fixed CSS: Quote, Remove, Edit tools no longer break theme
* Fixed CSS: (Move Topic | Delete Topic) now shows up properly
* Fixed CSS: Long topic titles do not break theme
* Removed: All old skins
* Added Skin: Modified Forum (Black) 1.0
* Added Skin: Modified Forum (Blue) 1.0
* Added Skin: Modified Forum (Green) 1.0
* Added Skin: Modified Forum (Red) 1.0
* Added Skin: Modified Forum (Orange) 1.0
* Added Skin: Modified Forum (Royal Blue) 1.0 (By Gene53)
* Added Translation: Spanish
* Added Translation: German
* Added Translation: Russian
* Added Translation: Arabic
* Added Translation: Simplified Chinese
* Added Translation: Portuguese
* Added Translation: Italian
* Added Translation: Japanese
* Added Translation: Swedish
* Added Translation: Dutch
* Added Translation: Finnish
== Screenshots ==
[Mingle Forum Screenshots](http://cartpauj.com/projects/mingle-forum-plugin "Mingle Forum Screenshots")

9
sitemap.php Normal file
View File

@ -0,0 +1,9 @@
<?php
global $mingleforum;
$root = dirname(dirname(dirname(dirname(__FILE__))));
require_once($root . '/wp-load.php');
$mingleforum->setup_links();
$mingleforum->get_forum_admin_ops();
header('Content-type: application/xml; charset="utf-8"', true);
$mingleforum->do_sitemap();

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Some files were not shown because too many files have changed in this diff Show More