funchat/forumplugins/plugins/achivements/include/install.php

592 lines
18 KiB
PHP
Raw Normal View History

2025-06-02 10:01:12 +02:00
<?php
if(!defined("IN_MYBB"))
{
die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}
function delete_images_unlink()
{
global $db;
$query = $db->simple_select('achivements');
$delete_images = array();
while($achivement_img = $db->fetch_array($query))
{
$delete_images[] = @unlink(MYBB_ROOT.$achivement_img['image']);
}
}
$tables[] = array('name' => 'achivements', 'insert' => "CREATE TABLE IF NOT EXISTS `".TABLE_PREFIX."achivements` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '',
`description` varchar(200) NOT NULL DEFAULT '',
`type` enum('post','threads','rep','time','regdate','custom','archivements'),
`requirement` int(11) NOT NULL DEFAULT 0,
`requirement_unit` varchar(20) NOT NULL DEFAULT 0,
`required_achivements` TEXT NOT NULL DEFAULT '',
`requirement_text` TEXT NOT NULL DEFAULT '',
`modcp` tinyint(1) NOT NULL DEFAULT 0,
`image` varchar(250) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM");
$tables[] = array('name' => 'user_achivements', 'insert' => "CREATE TABLE IF NOT EXISTS `".TABLE_PREFIX."user_achivements` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(11) unsigned NOT NULL,
`aid` int(11) unsigned NOT NULL,
`showprofile` tinyint(1) unsigned NOT NULL DEFAULT 0,
`showpostbit` tinyint(1) unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `aid` (`aid`)
) ENGINE=MyISAM");
$templates[] = array(
"title" => 'achivements',
"template" => $db->escape_string('<html>
<head>
<title>{$mybb->settings[\'bbname\']} - {$lang->achivements}</title>
{$headerinclude}
</head>
<body>
{$header}
<table width="100%" border="0" align="center">
<tr>
<td valign="top">
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="4">
<strong>{$lang->achivementsbyposts}</span></td>
</tr>
<tr>
<td class="tcat" width="10%" align="center"><strong>{$lang->image}</strong></td>
<td class="tcat" width="10%" align="center"><strong>{$lang->posts}</strong></td>
<td class="tcat" width="20%"><strong>{$lang->name}</strong></td>
<td class="tcat"><strong>{$lang->description}</strong></td>
</tr>
{$posts}
</table>
<br />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="4">
<strong>{$lang->achivementsbythreads}</span></td>
</tr>
<tr>
<td class="tcat" width="10%" align="center"><strong>{$lang->image}</strong></td>
<td class="tcat" width="10%" align="center"><strong>{$lang->threads}</strong></td>
<td class="tcat" width="20%"><strong>{$lang->name}</strong></td>
<td class="tcat"><strong>{$lang->description}</strong></td>
</tr>
{$threads}
</table>
<br />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="4">
<strong>{$lang->achivementsbyreputation}</span></td>
</tr>
<tr>
<td class="tcat" width="10%" align="center"><strong>{$lang->image}</strong></td>
<td class="tcat" width="10%" align="center"><strong>{$lang->reputation}</strong></td>
<td class="tcat" width="20%"><strong>{$lang->name}</strong></td>
<td class="tcat"><strong>{$lang->description}</strong></td>
</tr>
{$reputation}
</table>
<br />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="4">
<strong>{$lang->achivementsbytimeonline}</span></td>
</tr>
<tr>
<td class="tcat" width="10%" align="center"><strong>{$lang->image}</strong></td>
<td class="tcat" width="15%" align="center"><strong>{$lang->timeonline}</strong></td>
<td class="tcat" width="20%"><strong>{$lang->name}</strong></td>
<td class="tcat"><strong>{$lang->description}</strong></td>
</tr>
{$timeonline}
</table>
<br />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="4">
<strong>{$lang->achivementsbyregdate}</span></td>
</tr>
<tr>
<td class="tcat" width="10%" align="center"><strong>{$lang->image}</strong></td>
<td class="tcat" width="15%" align="center"><strong>{$lang->regdate}</strong></td>
<td class="tcat" width="20%"><strong>{$lang->name}</strong></td>
<td class="tcat"><strong>{$lang->description}</strong></td>
</tr>
{$regdate}
</table>
</td>
</tr>
</table>
<br />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="4">
<strong>{$lang->achivementscustom}</span></td>
</tr>
<tr>
<td class="tcat" width="10%" align="center"><strong>{$lang->image}</strong></td>
<td class="tcat" width="15%" align="center"><strong>{$lang->requirement}</strong></td>
<td class="tcat" width="20%"><strong>{$lang->name}</strong></td>
<td class="tcat"><strong>{$lang->description}</strong></td>
</tr>
{$custom}
</table>
</td>
</tr>
</table>
{$footer}
</body>
</html>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_empty',
"template" => $db->escape_string('<tr><td class="trow1" colspan="4" align="center">{$lang->achiviementstableempty}</td></tr>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_list',
"template" => $db->escape_string('<tr>
<td class="{$color}" width="10%" align="center"><img src="{$achivements[\'image\']}" /></td>
<td class="{$color}" width="10%" align="center">{$achivements[\'value\']}</td>
<td class="{$color}" width="20%">{$achivements[\'name\']}</td>
<td class="{$color}">{$achivements[\'description\']}</td>
</tr>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_profile',
"template" => $db->escape_string('<br />
<table id="achivements" border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead"><strong>{$lang->achsmemprofile}</strong></td>
</tr>
<tr>
<td class="trow1">
{$achivements}
</td>
</tr>
</table>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_postbit',
"template" => $db->escape_string('{$lang->achivements}: {$achivements}'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
//add templates v2.1
$templates[] = array(
"title" => 'achivements_usercp',
"template" => $db->escape_string('<html>
<head>
<title>{$mybb->settings[\'bbname\']} - {$lang->achivements}</title>
{$headerinclude}
<script languaje="javascript">
function select_all_achivements(){
for (i=0;i<document.achivements_form.elements.length;i++)
if(document.achivements_form.elements[i].type == "checkbox")
document.achivements_form.elements[i].checked=1
}
function unselect_all_achivements(){
for (i=0;i<document.achivements_form.elements.length;i++)
if(document.achivements_form.elements[i].type == "checkbox")
document.achivements_form.elements[i].checked=0
}
</script>
</head>
<body>
{$header}
<form method="post" name="achivements_form" enctype="multipart/form-data" action="usercp.php">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<table width="100%" border="0" align="center">
<tr>
{$usercpnav}
<td valign="top">
{$errors}
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead"><strong>{$lang->achivements}</strong></td>
</tr>
<tr>
<td class="tcat"><strong>{$lang->achivementscurrentprofile}</strong></td>
</tr>
<tr>
<td class="trow1">{$currentachivements}</td>
</tr>
<tr>
<td class="tcat"><strong>{$lang->achivementscurrentpostbit}</strong></td>
</tr>
<tr>
<td class="trow1">{$currentachivementspostbit}</td>
</tr>
<tr>
<td class="tcat"><strong>{$lang->myachivements}</strong></td>
</tr>
<tr>
<td class="trow2">
<a href="javascript:select_all_achivements()"><small>{$lang->markall}</small></a> |
<a href="javascript:unselect_all_achivements()"><small>{$lang->marknone}</small></a><br />
{$achivements}</td>
</tr>
</table>
<br />
<div align="center">
<input type="hidden" name="action" value="do_achivements" />
<input type="submit" class="button" name="profile" value="{$lang->showinprofile}" />
<input type="submit" class="button" name="postbit" value="{$lang->showinpostbit}" />
</div>
</td>
</tr>
</table>
</form>
{$footer}
</body>
</html>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_usercp_all',
"template" => $db->escape_string('<label for="{$ach[\'name\']}"><input type="checkbox" name="showachivement[]" value="{$ach[\'id\']}" /> {$achivement}</label>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_modcp',
"template" => $db->escape_string('<html>
<head>
<title>{$mybb->settings[\'bbname\']} - {$lang->achivements}</title>
{$headerinclude}
</head>
<body>
{$header}
<table width="100%" border="0" align="center">
<tr>
{$modcp_nav}
<td valign="top">
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="4"><strong>{$lang->custom_modules}</strong></td>
</tr>
<tr>
<td class="tcat" width="10%" align="center"><span class="smalltext"><strong>{$lang->image}</strong></span>
<td class="tcat"><span class="smalltext"><strong>{$lang->namedescription}</strong></span>
<td class="tcat" width="20%" align="center" colspan="2"><span class="smalltext"><strong>{$lang->option}</strong></span>
</td>
<tr>
{$custom_achivements}
</tr>
</table>
</td>
</tr>
</table>
{$footer}
</body>
</html>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_modcp_give',
"template" => $db->escape_string('<html>
<head>
<title>{$mybb->settings[\'bbname\']} - {$lang->giveachivements}</title>
{$headerinclude}
</head>
<body>
{$header}
<table width="100%" border="0" align="center">
<tr>
{$modcp_nav}
<td valign="top">
<form action="modcp.php?action=achivements" method="post">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<input type="hidden" name="mod" value="{$mybb->input[\'mod\']}" />
<input type="hidden" name="id" value="{$mybb->input[\'id\']}" />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->giveuserform}</strong></td>
</tr>
<tr>
<td class="trow1"><strong>{$lang->user}</strong>:</td>
<td class="trow2"><input type="text" class="textbox" id="username" name="username" size="40" maxlength="85" tabindex="1" /></td>
</table>
<br />
<div style="text-align:center"><input type="submit" class="button" name="submit" value="{$lang->giveachivements}"/></div>
</form>
</td>
</tr>
</table>
{$footer}
<script type="text/javascript" src="jscripts/autocomplete.js?ver=1400"></script>
<script type="text/javascript">
<!--
if(use_xmlhttprequest == "1")
{
new autoComplete("username", "xmlhttp.php?action=get_users", {valueSpan: "username"});
}
// -->
</script>
</body>
</html>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_modcp_quit',
"template" => $db->escape_string('<html>
<head>
<title>{$mybb->settings[\'bbname\']} - {$lang->quitachivement}</title>
{$headerinclude}
</head>
<body>
{$header}
<table width="100%" border="0" align="center">
<tr>
{$modcp_nav}
<td valign="top">
<form action="modcp.php?action=achivements" method="post">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<input type="hidden" name="mod" value="{$mybb->input[\'mod\']}" />
<input type="hidden" name="acid" value="{$mybb->input[\'acid\']}" />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->quitcustom}</strong></td>
</tr>
<tr>
<td class="trow1"><strong>{$lang->user}</strong>:</td>
<td class="trow2"><input type="text" class="textbox" id="username" name="username" size="40" maxlength="85" tabindex="1" /></td>
</table>
<br />
<div style="text-align:center"><input type="submit" class="button" name="submit" value="{$lang->quitachivement}"/></div>
</form>
</td>
</tr>
</table>
{$footer}
<script type="text/javascript" src="jscripts/autocomplete.js?ver=1400"></script>
<script type="text/javascript">
<!--
if(use_xmlhttprequest == "1")
{
new autoComplete("username", "xmlhttp.php?action=get_users", {valueSpan: "username"});
}
// -->
</script>
</body>
</html>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_modcp_nav',
"template" => $db->escape_string('<tr>
<td class="trow1 smalltext">
<a href="modcp.php?action=achivements" style="display: block;padding: 1px 0 1px 23px;background: url(inc/plugins/achivements/include/images/modcp.png) no-repeat left center;">{$lang->custom_modules}</a></td>
</tr>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$templates[] = array(
"title" => 'achivements_modcp_list',
"template" => $db->escape_string('<tr>
<td class="{$trow}" align="center"><img src="{$custom[\'image\']}" title="{$custom[\'name\']}" /></td>
<td class="{$trow}"><strong>{$custom[\'name\']}</strong><br /><span class="smalltext">{$custom[\'reason\']}</span></td>
<td class="{$trow}" width="10%" align="center"><a href="modcp.php?action=achivements&mod=give&id={$custom[\'id\']}" />{$lang->give}</a></td>
<td class="{$trow}" width="10%" align="center"><a href="modcp.php?action=achivements&mod=quit&id={$custom[\'id\']}" />{$lang->quit}</a></td>
</tr>'),
"sid" => -1,
"version" => 1604,
"dateline" => TIME_NOW,
);
$fields[] = array('table' => 'users', 'column' => 'threads', 'insert' => 'int(11) unsigned NOT NULL default \'0\'');
function settings_insert()
{
global $lang;
$lang->load('achivements');
$settings_achivements[] = array(
"name" => "achivements_enable",
"title" => $lang->enable,
"description" => $lang->enable_des,
"optionscode" => "yesno",
"value" => "1",
"disporder" => 1,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_showachvprofile",
"title" => $lang->showachvprofile,
"description" => $lang->showachvprofiledes,
"optionscode" => "yesno",
"value" => "1",
"disporder" => 2,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_showachvpostbit",
"title" => $lang->showachvpostbit,
"description" => $lang->showachvpostbitdes,
"optionscode" => "yesno",
"value" => "1",
"disporder" => 3,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_sendmp",
"title" => $lang->sendmpachivements,
"description" => $lang->sendmpachivements_des,
"optionscode" => "textarea",
"value" => "",
"disporder" => 4,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_subjectmp",
"title" => $lang->titlemp,
"description" => $lang->titlempdes,
"optionscode" => "textarea",
"value" => $lang->subjectvalue,
"disporder" => 5,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_bodymp",
"title" => $lang->bodymp,
"description" => $lang->bodympdes,
"optionscode" => "textarea",
"value" => $lang->bodyvalue,
"disporder" => 6,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_usermp",
"title" => $lang->user,
"description" => $lang->usersendmp,
"optionscode" => "text",
"value" => "1",
"disporder" => 7,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_rebuild",
"title" => $lang->rebuild,
"description" => $lang->rebuild,
"optionscode" => "yesno",
"value" => "0",
"disporder" => 8,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_maxpostbit",
"title" => $lang->maxpostbit,
"description" => $lang->maxpostbitdes,
"optionscode" => "text",
"value" => "15",
"disporder" => 9,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_taskuseroffline",
"title" => $lang->taskoffline,
"description" => $lang->taskofflinedes,
"optionscode" => "yesno",
"value" => "1",
"disporder" => 10,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_modcp",
"title" => $lang->canmodcpachs,
"description" => $lang->canmodcpachsdes,
"optionscode" => "yesno",
"value" => "1",
"disporder" => 11,
"gid" => 0
);
$settings_achivements[] = array(
"name" => "achivements_showonlycurrent",
"title" => $lang->showonlycurrent,
"description" => $lang->showonlycurrentdes,
"optionscode" => "yesno",
"value" => "1",
"disporder" => 12,
"gid" => 0
);
return $settings_achivements;
}
function count_threads_update()
{
global $db;
$query = $db->simple_select("users", "uid");
while($user = $db->fetch_array($query))
{
$users[$user['uid']] = $user;
}
foreach($users as $user)
{
$query = $db->simple_select("threads", "COUNT(tid) AS threads", "uid = '".$user['uid']."'");
$threads_count = intval($db->fetch_field($query, "threads"));
$db->update_query("users", array("threads" => $threads_count), "uid = '".$user['uid']."'");
}
}
function create_task_tools()
{
global $db, $lang;
$lang->load('achivements');
$new_task_achivements = array(
"title" => "Achivements",
"description" => $lang->desctaks,
"file" => "achivements",
"minute" => '0',
"hour" => '0',
"day" => '*',
"month" => '*',
"weekday" => '*',
"nextrun" => TIME_NOW + (1*24*60*60),
"enabled" => '0',
"logging" => '1'
);
$db->insert_query("tasks", $new_task_achivements);
}
?>