Тема: Личные сообщения
Тема на оф. сайте - [MOD] PMv3 - 1.7.4 / 1.7.6
С помощью этого мода ваши пользователи смогут обмениваться личными сообщениями на сайте. Возможности мода:
управление в админке
включить/отключить систему Личных сообщений
разрешить/запретить HTML и BBCODE в сообщениях
разрешить/запретить Смайлики в сообщениях
бан определённого пользователя
управление в профиле пользователя
включить/отключить уведомление по эл.почте о новых сообщениях
включить/отключить всплывающее уведомление о новых сообщениях
включить/отключить звуковой сигнал при получении новых сообщений (если проинсталлировано)
Внимание! файлы в архиве и код приведённый ниже немного отличаются от оф.версии.
1. Разпаковываем архив, заливаем файлы на сервер, сохраняя иерархию.
Файл lang_russian_main.txt заливать не нужно, он пригодится во время установки.
2. файл includes/constants.php
найти
define('WORDMATCH_TABLE', $table_prefix.'wordmatch');после добавить
define('PM_TABLE', $table_prefix.'pm');
define('PM_RDLT', 0);
define('PM_SDLT', 1);
define('PM_SENT', 2);
define('PM_UNREAD', 3);
define('PM_USDLT', 4);3. модификация БД
- сделать резервную копию БД
- добавить новые таблицы с помощью pm_install_v3.php
- после удачной инсталляции удалить файл pm_install.php
4. файл logout.php
найти
if (!ereg("index.php", $url) && !ereg("lightbox.php", $url) && !ereg("login.php", $url) && !ereg("register.php", $url) &&
!ereg("member.php", $url)) {
redirect($url);
}заменить на
if (!ereg("index.php", $url) && !ereg("lightbox.php", $url) && !ereg("login.php", $url) && !ereg("register.php", $url) &&
!ereg("member.php", $url) && !ereg("pm.php", $url)) {
redirect($url);
}5. файл admin/settings.php
найти
show_form_footer($lang['save_changes'], "", 2);перед этим добавить
show_table_separator($setting_group[XX], 2, "setting_group_XX");
show_setting_row("pm", "radio");
show_setting_row("pm_html", "radio");
show_setting_row("pm_bbcode", "radio");
show_setting_row("pm_img", "radio");
show_setting_row("pm_inbox");
show_setting_row("pm_sentbox");
show_setting_row("pm_outbox");найти в этом файле последний блок, начинающийся с
show_table_separator($setting_group[
к числу в квадратных скобках прибавить 1
заменить XX в нашем коде на получившееся число.
запомнить число XX, оно нам ещё понадобится
6. файл lang/russian/admin.php
перед ?> добавить
/*-- Setting-Group XX --*/
$setting_group[XX]="Личные Сообщения";
$setting['pm'] = "Разрешить Личные Сообщения";
$setting['pm_html'] = "Разрешить использовать HTML в сообщениях";
$setting['pm_bbcode'] = "Разрешить использовать BBCODE в сообщениях";
$setting['pm_img'] = "Разрешить использовать Смайлы в сообщениях";
$setting['pm_inbox'] = "Входящие : макс. количество сообщений<span class=\"smalltext\"><br />если<b>0</b> - без
ограничения</span>";
$setting['pm_sentbox'] = "Отправленные : макс. количество сообщений<span class=\"smalltext\"><br />если<b>0</b> - без
ограничения</span>";
$setting['pm_outbox'] = "Исходящие : макс. количество сообщений<span class=\"smalltext\"><br />если <b>0</b> - без
ограничения</span>";заменить ХХ на ваше число из предыдущего шага
7. файл includes/functions.php
найти
else {
$user_name = format_text($lang['userlevel_guest'], 2);
$user_name_link = $user_name;
}после этого добавить
// Mod PM Start
if ($user_info['user_level'] > GUEST && $user_info['user_pm_ban'] == 0 && $user_info['user_id'] != $image_row['user_id'] &&
$image_row['user_id'] != -1 && $image_row['owner_pm_ban'] == 0) {
$details_user_pm = "<a
href=\"".$site_sess->url(ROOT_PATH."pm.php?action=new&user_id=".$image_row['user_id']."&username=".$image_row['user_name'])."\"><
img src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_user_pm_alt']."\" /></a>";
} elseif ($user_info['user_level'] == GUEST){
$details_user_pm = "<img src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_hinweis']."\" />";
}else {
$details_user_pm = "";
}
// Mod PM END7.1 найти
$site_template->register_vars(array(
"image_id" => $image_row['image_id'],после этого добавить
// Mod PM Start
"details_user_pm" => $details_user_pm,
// Mod PM END7.2 найти
function format_text($text, $html = 0, $word_wrap = 0, $bbcode = 0, $bbcode_img = 0) {перед этим добавить
//-----------------------------------------------------
//--- Stat PM / Smilies ------------------------------
//-----------------------------------------------------
function smiles($text,$enablesmilies = 1) {
global $smileyfromcache, $smileytocache;
$imagesdir = TEMPLATE_PATH."/smiles";
if(gettype($smileyfromcache) != "array") {
$smilesfrom = get_smiles();
foreach ($smilesfrom as $key => $val) {
$smileyfromcache[] ='/(((>[^<]*)|(^[^<]*))([\s\n\r]|^|<br( \/)?[>]))('.str_replace('|','\|', quotemeta(str_replace("<", "<", str_replace(">",
">", str_replace("\/", "\\\/", $key))))).')/s';
$smileytocache[] = "\\1<img src=\"$imagesdir/$val.gif\" border=\"0\" alt=\"\" />";
}
}
if ($enablesmilies) {
$text = parsesmilies($text);
}
return $text;
}
function parsesmilies($text) {
global $smileyfromcache, $smileytocache;
$oldtext = "";
while($oldtext != $text) {
$oldtext = $text;
$text = preg_replace($smileyfromcache, $smileytocache, $text);
}
return $text;
}
function get_smiles(){
$smilesfrom = array(
":-))" => "very_happy",
":)" => "happy",
"X(" => "angry",
":B" => "nerd",
":lol:" => "very_happy",
":D" => "big_smile",
":O" => "surprised",
":o" => "surprised",
";)" => "wink",
":wink:" => "wink",
":(" => "sad",
":*(" => "very_sad",
":cry:" => "very_sad",
":confused:" => "confused",
":shy:" => "embarrassed",
":vicious:" => "vicious",
":|" => "undecided",
"(:" => "happy",
":P" => "tongue",
":p" => "tongue",
"B)" => "cool",
":pig:" => "pig",
":X" => "in_love",
"|)" => "asleep",
"=;" => "talk_to_hand",
"0:)" => "angel",
":devil:" => "devil",
":clown:" => "clown",
"3:O" => "cow",
"3:o" => "cow",
":monkey:" => "monkey",
"(~~)" => "pumpkin",
"[-(" => "huff",
"*:)" => "bulb",
":$" => "shhh",
"b(" => "beat_up",
":E:" => "peace",
":gr" => "sick",
"=*" => "kiss",
";;)" => "flirt",
":?)" => "what",
":mad:" => "mad",
":R:" => "praying",
"[-x" => "nono",
"[:D]" => "hugging",
":dance:" => "dancing",
"=D" => "applause",
"(?)" => "thinking",
":^o" => "liar",
"@)" => "hypnotized",
"8|" => "rolleyes",
"8}" => "crazy",
"?|" => "tired",
"=p~" => "drooling",
"$)" => "money",
":whistle:" => "whistling",
"#o" => "doh",
":alien:" => "alien2",
":S" => "scared"
);
return $smilesfrom;
}
function get_smiles_text() {
global $lang;
$smiles_text = "";
$smilesfrom = get_smiles();
$val_old = "";
$i = 0;
$val_old = array();
foreach ($smilesfrom as $key => $val) {
if (!in_array($val, $val_old)) {
$smiles_text .= "<a href=\"javascript:emoticon('$key')\"><img src=\"".TEMPLATE_PATH."/smiles/$val.gif\" border=\"0\"
alt=\"$key\" /></a> ";
}
$val_old[] = $val;
$i++;
if ($i > 15) {
// $smiles_text .= "<a href=\"smiles.php\" onclick=\"window.open('smiles.php', '_4imagessmilies',
'HEIGHT=310,resizable=yes,scrollbars=yes,WIDTH=225');return false;\"
target=\"_4imagessmilies\"> ".$lang['all']."</a>";
return $smiles_text;
}
}
return $smiles_text;
}
//-----------------------------------------------------
//--- SMILIES END ------------------------------------
//-----------------------------------------------------
//-----------------------------------------------------
//--- Start PM ---------------------------------------
//-----------------------------------------------------
function strip_brackets($text){
global $lang;
$code_entities_match = array('#<#', '#>#', '#"#', '#:#', '#\[#', '#\]#', '#\(#', '#\)#', '#\{#', '#\}#');
$code_entities_replace = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}');
return preg_replace($code_entities_match, $code_entities_replace, $text);
}
function thumb($id, $dim = 50, $align = "bottom") {
global $site_db, $user_info, $site_sess;
if (empty($dim)) $dim = 50;
if (empty($align)) $align = "bottom";
$text = "";
$sql = "SELECT image_name, image_id, image_media_file, image_thumb_file, cat_id
FROM ".IMAGES_TABLE."
WHERE image_id = ".$id;
if ($row = $site_db->query_firstrow($sql)) {
if (!get_file_path($row['image_thumb_file'], "thumb", $row['cat_id'], 0, 0)) {
$file_src = ICON_PATH."/".get_file_extension($row['image_media_file']).".gif";
}else{
$file_src = get_file_path($row['image_thumb_file'], "thumb", $row['cat_id'], 0, 1);
}
$image_info = @get_imagesize($file_src, $info);
$width = $image_info[0];
$height = $image_info[1];
$wh = get_resize($image_info[0], $image_info[1], $dim, $dim);
$text = "<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$row['image_id'])."\"><img width = \"".$wh[0]."\"
height=\"".$wh[1]."\" src=\"".$file_src."\" alt=\"".str_replace("\"", """, $row['image_name'])."\" align=\"".$align."\" border=\"1\" /></a>";
}
return $text;
}
function bb_code($text){
global $lang, $config;
$text = strip_brackets($text);
$text = str_replace(" ", " ", $text);
// now Replace 2 spaces with " " to catch odd #s of spaces.
$text = str_replace(" ", " ", $text);
// Replace tabs with " " so tabbed code indents sorta right without making huge long lines.
$text = str_replace("\t", " ", $text);
$text = "<div class=\"codehead\"><b>".$lang['code'].":</b><div class=\"codeblock\">".stripslashes($text)."</div></div>";
return $text;
}
function format_text_pm($text, $html = 0, $word_wrap = 0, $bbcode = 0, $bbcode_img = 0, $smiles = 1, $brackets = 1){
global $lang, $config;
$text = trim($text);
if ($html == 0 || $html == 2) {
// $text = str_replace("<", "&lt;", $text);
// $text = str_replace(">", "&gt;", $text);
$text = str_replace("<br>", "\r", $text);
$text = str_replace("<br />", "\n", $text);
$text = str_replace("<", "<", $text);
$text = str_replace(">", ">", $text);
$text = str_replace('"', "''", $text);
$text = safe_htmlspecialchars($text);
}
// Replace { to prevent parsing in templates
global $site_template;
$text = preg_replace(
'='.preg_quote($site_template->start).'([A-Z0-9_]+)'.preg_quote($site_template->end).'=Usi',
'{\1}',
$text
);
if ($html !== 2) {
$text = nl2br(trim($text));
$text = replace_url($text);
}
//$text = preg_replace("/(\[)(php)(])(\r\n)*(.*)(\[\/php\])/esiU", "phphighlite('\\5')", $text);
if ($config['pm_img']) {
$text = ($smiles) ? smiles($text) : $text;
}
if ($bbcode == 1) {
$text = preg_replace("/\[php\](.*?)\[\/php\]/esi", "phphighlite('\\1')", $text);
$text = preg_replace("/\[code\](.*?)\[\/code\]/esi", "bb_code('\\1')", $text);
}
if ($brackets) {
$entities_match = array('{', '}');
$entities_replace = array('{', '}');
$text = str_replace($entities_match, $entities_replace, $text);
}
if ($bbcode == 1) {
$text = preg_replace("/\[thumb=([0-9]+)(,([0-9]+)?)?(,([a-zA-Z]+))?\]/esi","thumb('\\1','\\3','\\5')",$text);
$search_array = array(
"/\[b\](.*?)\[\/b\]/si",
"/\[i\](.*?)\[\/i\]/si",
"/\[u\](.*?)\[\/u\]/si",
"/\[email\](.*?)\[\/email\]/si",
"/\[email=(.*?)\](.*?)\[\/email\]/si",
"/\[quote=(.*?)\](.*?)/si",
"/\[quote\](.*?)/si",
"/\[\/quote\]/si",
"/\[url=(.*?)\](.*?)\[\/url\]/si",
"/\[url\](.*?)\[\/url\]/si",
"/\[urlb=(.*?)\](.*?)\[\/urlb\]/si",
"/\[urlb\](.*?)\[\/urlb\]/si",
"/\[sub\](.*?)\[\/sub\]/si",
"/\[sup\](.*?)\[\/sup\]/si",
"/\[color=(.*?)\](.*?)\[\/color\]/si",
"/\[size=(.*?)\](.*?)\[\/size\]/si",
"/\[tt\](.*?)\[\/tt\]/si",
"/\[s\](.*?)\[\/s\]/si",
"/\[move\](.*?)\[\/move\]/si",
// "/\[align=(.*?)\](.*?)\[\/align\]/si",
"/\[align=(.*?)\](.*?)\[\/align\](.<br \/>)?/si",
"/\[font=(.*?)\](.*?)\[\/font\]/si",
"/\[shadow=(.*?)\,(.*?)\,(.*?)\](.*?)\[\/shadow\]/si",
"/\[glow=(.*?)\,(.*?)\,(.*?)\](.*?)\[\/glow\]/si",
"/\[quote2=(.*?)\,(.*?)(\(.*?\))?\](.*?)/si",
"/\[\/quote2\]/si",
"/(\[)(list)(=)(['\"]?)([^\"']*)(\\4])(.*)(\[\/list)(((=)(\\4)([^\"']*)(\\4]))|(\]))/siU",
"/(\[)(list)(])(.*)(\[\/list\])/siU",
"/(\[\*\])/siU",
"/(\[\/\*\])/siU",
"/javascript:/si",
"/about:/si"
);
$replace_array = array(
"<b>\\1</b>",
"<i>\\1</i>",
"<u>\\1</u>",
"<a href=mailto:\\1>\\1</a>",
"<a href=mailto:\\1>\\2</a>",
"<div class=\"quotehead\"><b>\\1</b> ".$lang['wrote'].":<div class=\"quoteblock\">\\2",
"<div class=\"quotehead\"><b>".$lang['quote'].":</b><div class=\"quoteblock\">\\1",
"</div></div>",
"<a href=\"\\1\" target=_blank>\\2</a>",
"<a href=\\1 target=_blank>\\1</a>",
"<b><a href=\"\\1\" target=_blank>\\2</a></b>",
"<b><a href=\\1 target=_blank>\\1</a></b>",
"<sub>\\1</sub>",
"<sup>\\1</sup>",
"<font color=\"\\1\">\\2</font>",
"<font style=\"font-size: \\1px\">\\2</font>",
"<tt>\\1</tt>",
"<s>\\1</s>",
"<marquee>\\1</marquee>",
"<div align=\"\\1\">\\2</div>",
"<font face=\"\\1\">\\2</font>",
"<font style=\"Filter: Shadow(color=\\1, Direction=\\2); Width=\\3px;\">\\4</font>",
"<font style=\"Filter: Glow(color=\\1, Strength=\\2); Width=\\3px;\">\\4</font>",
// function getbrowser() {
// if (strstr($_SERVER['HTTP_USER_AGENT'],'Firefox')) {
// "<font style=\"Filter: Glow(color=\\1, Strength=\\2); Width=\\3px;\"></font>",
// }else {
// "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"display: inline; vertical-align: middle; font: inherit;\"><tr><td
style=\"filter: Glow(color=red, strength=2); font: inherit;\">\\4</td></tr></table>",
// }
// "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"display: inline; vertical-align: middle; font: inherit;\"><tr><td
style=\"filter: Glow(color=red, strength=2); font: inherit;\">\\4</td></tr></table>",
"<div class=\"quotehead\">\\1<b>\\2</b>\\3:<div class=\"quoteblock\">\\4",
"</div></div>",
"<ol type=\"\\5\">\\7</ol>",
"<ul>\\4</ul>",
"<li>",
"</li>",
"java script",
"about :"
);
preg_match_all("/(\[quote=(.+?)\])|(\[quote\])/", $text, $regs);
$quoteopen = count($regs[0]);
preg_match_all("/(\[\/quote\])/", $text, $regs);
$quoteclose = count($regs[0]);
if($quoteopen > $quoteclose) {
$toclose = $quoteopen - $quoteclose;
for($i = 0 ; $i < $toclose ; $i++) {
$text .= "[/quote]";
}
} elseif($quoteclose > $quoteopen) {
$toopen = $quoteclose - $quoteopen;
for($i = 0 ; $i < $toopen ; $i++) {
$text = "[quote]$text";
}
}
$text = preg_replace($search_array, $replace_array, $text);
if (!$bbcode_img) {
$text = preg_replace("/\[img\](.*?)\[\/img\]/si", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $text);
$text = preg_replace("/\[img=(.*?)\,(.*?)\](.*?)\[\/img\]/si","<a href=\"\\3\" target=\"_blank\">\\3</a>",$text);
$text = preg_replace("/\[img height=(.*?)\ width=(.*?)\](.*?)\[\/img\]/si","<a href=\"\\3\" target=\"_blank\">\\3</a>",$text);
$text = preg_replace("/\[img width=(.*?)\ height=(.*?)\](.*?)\[\/img\]/si","<a href=\"\\3\" target=\"_blank\">\\3</a>",$text);
$text = preg_replace("/\[flash=(.*?)\,(.*?)\](.*?)\[\/flash\]/si","<a href=\"\\3\" target=\"_blank\">\\3</a>",$text);
} else {
$text = preg_replace("/\[img\](.*?)\[\/img\]/si", "<img src=\"\\1\" border=\"0\">", $text);
$text = preg_replace("/\[img=(.*?)\,(.*?)\](.*?)\[\/img\]/si","<img src=\"\\3\" height=\"\\2\" width=\"\\1\">",$text);
$text = preg_replace("/\[img height=(.*?)\ width=(.*?)\](.*?)\[\/img\]/si","<img src=\"\\3\" height=\"\\1\" width=\"\\2\">",$text);
$text = preg_replace("/\[img width=(.*?)\ height=(.*?)\](.*?)\[\/img\]/si","<img src=\"\\3\" width=\"\\1\" height=\"\\2\">",$text);
$text = preg_replace("/\[flash=(.*?)\,(.*?)\](.*?)\[\/flash\]/si","<object classid=\"clsid: D27CDB6E-AE6D-11cf-96B8-444553540000\"
width=\\1 height=\\2><param name=movie value=\\3><param name=play value=true><param name=loop value=true><param name=quality
value=high><embed src=\\3 width=\\1 height=\\2 play=true loop=true quality=high></embed></object>",$text);
}
$text = str_replace("[hr]", "<hr>", $text);
$text = replace_badwords($text);
}
$text = str_replace("\\'", "'", $text);
$text = str_replace("\\\"", """, $text);
return $text;
}
//-----------------------------------------------------
//--- End PM / Smilies -------------------------------
//-----------------------------------------------------8. файл includes/page_header.php
найти
} else {
$data = unserialize($data);
$total_images = $data['total_images'];
$total_categories = $data['total_categories'];
$auth_cat_sql['auth_viewcat']['IN'] = $data['auth_viewcat']['IN'];
$auth_cat_sql['auth_viewcat']['NOTIN'] = $data['auth_viewcat']['NOTIN'];
}после этого добавить
//-----------------------------------------------------
//--- Start Mod: PM -----------------------------------
//-----------------------------------------------------
$user_pm_banned = "";
$pm_popup_script = "";
$pm_popup_header ="";
$pm_popup_head = "";
$pm_new_count = "";
$pm_new_total ="";
$pm_sentbox = "";
$pm_outbox = "";
$pm_inbox = "";
$sentbox = "";
$outbox = "";
$inbox = "";
$newpm ="";
$pm = "";
if ($config['pm'] && $user_info['user_level'] > GUEST) {
$user_pm_banned = $user_info['user_pm_ban'];
$sql = "SELECT COUNT(pm_id) AS total
FROM ".PM_TABLE."
WHERE pm_to = ".$user_info['user_id']." AND (pm_type = ".PM_SENT." OR pm_type = ".PM_SDLT." OR pm_type =
".PM_UNREAD." OR pm_type = ".PM_USDLT.")";
$result = $site_db->query_firstrow($sql);
$pm_inbox = $result['total'];
$sql = "SELECT COUNT(pm_id) AS total
FROM ".PM_TABLE."
WHERE pm_from = ".$user_info['user_id']." AND (pm_type = ".PM_UNREAD." OR pm_type = ".PM_USDLT.")";
$result = $site_db->query_firstrow($sql);
$pm_outbox = $result['total'];
$sql = "SELECT COUNT(pm_id) AS total
FROM ".PM_TABLE."
WHERE pm_from = ".$user_info['user_id']." AND (pm_type = ".PM_SENT." OR pm_type = ".PM_RDLT.")";
$result = $site_db->query_firstrow($sql);
$pm_sentbox = $result['total'];
$sql = "SELECT COUNT(pm_id) AS new
FROM ".PM_TABLE."
WHERE pm_to = ".$user_info['user_id']." AND (pm_type = ".PM_UNREAD." OR pm_type = ".PM_USDLT.")
ORDER BY pm_date DESC";
$result = $site_db->query_firstrow($sql);
$pm_new_count = $result['new'];
$sql = "SELECT pm_date
FROM ".PM_TABLE."
WHERE pm_to = ".$user_info['user_id']." AND (pm_type = ".PM_UNREAD." OR pm_type = ".PM_USDLT.")
ORDER BY pm_date DESC";
$result = $site_db->query_firstrow($sql);
$pm_new = "<a href=\"".$site_sess->url(ROOT_PATH."pm.php")."\">".(($pm_new_count) ? "<blink>".$pm_new_count."</blink>" :
0)."</a>";
$pm = preg_replace("/".$site_template->start."msg_new_count".$site_template->end."/siU", $pm_new, $lang['pm_link']);
$pm = preg_replace("/".$site_template->start."inbox".$site_template->end."/siU", "<a
href=\"".$site_sess->url(ROOT_PATH."pm.php")."\">".$lang['pm_inbox']."</a>", $pm);
$blink = "<script language=\"JavaScript\">\n<!--\nvar flg=0;\nfunction blink(){\nvar
myElement=document.getElementById('blnk');\nflg^=1;\nif(flg==1){\nmyElement.style.visibility='hidden';\n}\nelse{\nmyElement.style.visibility
='visible';\n}\ntimerID = setTimeout( 'blink()' , 500 );\n}\n//-->\n</script>\n";
if ($user_info['user_pm_sound'] == 1) {
$sound = "<embed src=\"".TEMPLATE_PATH."/sounds/".$config['language_dir']."/post.wav\" hidden=\"true\">";
$show_inbox = ($pm_new_count) ? $blink. $sound."<span id=\"blnk\">".$lang['pm_inbox']."</span><script
language=\"JavaScript\">blink();</script>": $lang['pm_inbox'];
}else{
$show_inbox = ($pm_new_count) ? $blink. "<span id=\"blnk\">".$lang['pm_inbox']."</span><script
language=\"JavaScript\">blink();</script>": $lang['pm_inbox'];
}
$inbox = "<a href=\"".$site_sess->url(ROOT_PATH."pm.php?action=inbox")."\" title=\"".(($pm_new_count) ? $lang['pm_new_messages'].":
".$pm_new_count."\n" : "").$lang['pm_total'].": ".$pm_inbox."\">".$show_inbox."</a>";
$sentbox = "<a href=\"".$site_sess->url(ROOT_PATH."pm.php?action=sentbox")."\" title=\"".$lang['pm_total'].":
".$pm_sentbox."\">".$lang['pm_sentbox']."</a>";
$outbox = "<a href=\"".$site_sess->url(ROOT_PATH."pm.php?action=outbox")."\" title=\"".$lang['pm_total'].":
".$pm_outbox."\">".$lang['pm_outbox']."</a>";
$newpm = "<a href=\"".$site_sess->url(ROOT_PATH."pm.php?action=new")."\">".$lang['pm_new']."</a>";
if ($result && $user_info['user_pm_popup']) {
$cookie_name = (defined("COOKIE_NAME")) ? COOKIE_NAME : "4images_";
$cookie_pmnewpopup = isset($HTTP_COOKIE_VARS[$cookie_name.'pmnewpopup']) ?
unserialize(stripslashes($HTTP_COOKIE_VARS[$cookie_name.'pmnewpopup'])) : 0;
if ($cookie_pmnewpopup < $result['pm_date']) {
if (ereg("pm.php", $self_url) && $action == "inbox") {
$cookie_expire = time() + 60 * 60 * 24 * 90;
setcookie($cookie_name.'pmnewpopup', serialize($result['pm_date']), $cookie_expire, COOKIE_PATH, COOKIE_DOMAIN,
COOKIE_SECURE);
}elseif (!ereg("pm.php", $self_url) || (ereg("pm.php", $self_url) && ($action == "sentbox" || $action == "outbox"))){
$cookie_expire = gmdate('D, d M Y H:i:s \G\M\T', time() + 60 * 60 * 24 * 90);
$pm_popup_script = " <script language=\"JavaScript\">
<!--
function SetCookie (name, value, expire, path, domain, secure) {
document.cookie = name + '=' + escape(value) + ((expire)?(';expires=' + expire):'') + ((path)?';path=' + path:'') + ((domain)?';domain='
+ domain:'') + ((secure && (secure == true))?'; secure':'');
}
function confirm_newpm() {
input_box=confirm('".$lang['pm_popup_confirm']."');
if (input_box==true) { // Output when OK is clicked
second_box=confirm('".$lang['pm_popup_newwindow']."');
if (second_box==true) {
SetCookie('".$cookie_name."pmnewpopup','".serialize($result['pm_date'])."','".$cookie_expire."','".COOKIE_PATH."','".COOKIE_DOMAIN."','".
COOKIE_SECURE."');
window.open('".$site_sess->url(ROOT_PATH."pm.php")."','pmnew','width=600,height=500,menubar=yes,scrollbars=yes,toolbar=yes,location
=yes,directories=yes,resizable=yes,top=50,left=50');
} else {
SetCookie('".$cookie_name."pmnewpopup','".serialize($result['pm_date'])."','".$cookie_expire."','".COOKIE_PATH."','".COOKIE_DOMAIN."','".
COOKIE_SECURE."');
window.location='".$site_sess->url(ROOT_PATH."pm.php")."';
}
} else {
SetCookie('".$cookie_name."pmnewpopup','".serialize($result['pm_date'])."','".$cookie_expire."','".COOKIE_PATH."','".COOKIE_DOMAIN."','".
COOKIE_SECURE."');
}
}
// -->
</script>";
$pm_popup_header = " onload=\"Javascript:confirm_newpm()\"";
}
}
}
}
//-----------------------------------------------------
//--- End Mod: PM -------------------------------------
//-----------------------------------------------------8.1 найти
"media_url" => MEDIA_PATH,после этого добавить
//-----------------------------------------------------
//--- Start Mod: PM -----------------------------------
//-----------------------------------------------------
"pm_show" => $config['pm'],
"pm" => $pm,
"pm_boxes" => ($inbox) ?
$inbox." | ".$sentbox." | ".$outbox." | ".$newpm : "",
"pm_inbox" => $inbox,
"pm_sentbox" => $sentbox,
"pm_outbox" => $outbox,
"pm_newpm" => $newpm,
"pm_popup_script" => $pm_popup_script,
"pm_popup_header" => $pm_popup_header,
"pm_inbox_total" => ($pm_inbox) ? $pm_inbox : 0,
"pm_outbox_total" => ($pm_outbox) ? $pm_outbox : 0,
"pm_sentbox_total" => ($pm_sentbox) ? $pm_sentbox : 0,
"pm_new_total" => ($pm_new_count) ? $pm_new_count : 0,
"lang_pm_preview" => $lang['pm_preview'],
"user_pm_banned" => $user_pm_banned,
//-----------------------------------------------------
//--- End Mod: PM -------------------------------------
//-----------------------------------------------------9. файл includes/db_field_definitions.php
перед ?> добавить
$additional_user_fields['user_pm_ban'] = array($lang['pm_user_ban'], "radio", 0);
$additional_user_fields['user_pm_inbox'] = array($lang['pm_inbox'], "text", 0);
$additional_user_fields['user_pm_sentbox'] = array($lang['pm_sentbox'], "text", 0);
$additional_user_fields['user_pm_outbox'] = array($lang['pm_outbox'], "text", 0);
$additional_user_fields['user_pm_email'] = array($lang['pm_email'], "radio", 0);
$additional_user_fields['user_pm_popup'] = array($lang['pm_popup'], "radio", 0);
$additional_user_fields['user_pm_sound'] = array($lang['pm_sound'], "radio", 0);10. файл includes/paging.php
найти
var $first,$last,$total_pages,$config,$desc,$next,$back;
function Paging($page = 1, $perpage = 0, $num_rows_all = 0, $link_args = "") {заменить на
var $first,$last,$total_pages,$config,$desc,$next,$back,$extra;
function Paging($page = 1, $perpage = 0, $num_rows_all = 0, $link_args = "", $text = "", $extra = "", $page_text = "", $style = "") {
10.1 найти
global $lang, $config;после этого добавить
//-------- Config ------------
//Change $this->alt to 1 if u want display number of pages not more then u set in the settings, no metter on witch page u are.
//by default if u have 20 pages, for example, and in the settings set to show only 10, it will actualy show u 20 pages when u go to 10th page.
$this->alt = 1;
//------- End Config ---------
$this->style = ($style) ? $style : "paging";
$this->extra = ($extra) ? "#".$extra : "";
$this->page_text = ($page_text) ? $page_text : "page";
$this->desc = ($text) ? $text : $lang['paging_stats'];10.2 найти
$link_args = ereg_replace("&page=[0-9]*", "", $link_args);
$link_args = ereg_replace("page=[0-9]*&", "", $link_args);заменить на
$link_args = ereg_replace("&".$this->page_text."=[0-9]*", "", $link_args);
$link_args = ereg_replace($this->page_text."=[0-9]*&", "", $link_args);10.3 найти и удалить
$this->desc = $lang['paging_stats'];10.4 найти
function get_paging() {
$html = "";
if ($this->total_pages > 1) {
$page_back = $this->page - 1;
$page_next = $this->page + 1;
if ($page_back > 0) {
$html .= "<a href=\"".$this->link_args."page=1\" class=\"paging\">".$this->paging_firstpage."</a> ";
$html .= "<a href=\"".$this->link_args."page=$page_back\" class=\"paging\">".$this->paging_back."</a> ";
}
for ($page_num = 1; $page_num <= $this->total_pages; $page_num++) {
if ($page_num >= ($this->page-$this->range) && $page_num <= ($this->page+$this->range)) {
if ($this->page == $page_num) {
$html .= "<b class=\"pagingon\">$page_num</b> ";
}
else {
$html .= "<a href=\"".$this->link_args."page=$page_num\" class=\"paging\">$page_num</a> ";
}
}
}
if ($page_next <= $this->total_pages) {
$html .= "<a href=\"".$this->link_args."page=$page_next\" class=\"paging\">".$this->paging_next."</a> ";
$html .= "<a href=\"".$this->link_args."page=$this->total_pages\" class=\"paging\">".$this->paging_lastpage."</a>";
}
}
return $html;заменить на
function get_paging() {
$html = "";
if ($this->total_pages > 1) {
$page_back = $this->page - 1;
$page_next = $this->page + 1;
if ($this->alt) {
if ($page_back > 0) {
$html .= "<a href=\"".$this->link_args.$this->page_text."=1".$this->extra."\"
class=\"".$this->style."\">".$this->paging_firstpage."</a> ";
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$page_back.$this->extra."\"
class=\"".$this->style."\">".$this->paging_back."</a> ";
}
$page_num2 = ceil($this->range / 2);
$page_num3 = $this->range;
$page_left = 1;
if (($this->page - $page_num2) > 0) {
$html .= "<a href=\"".$this->link_args.$this->page_text."=".(($this->page - $this->range < $page_num2) ? $page_num2 :
(($this->page <= ($this->total_pages - $page_num2)) ? $this->page - $this->range : $this->total_pages - $this->range - $page_num2 +
1)).$this->extra."\" class=\"".$this->style."\">...</a> ";
}
for ($page_num = 1; $page_num <= $this->total_pages; $page_num++){
if ($page_num3) {
if ($page_left) {
if (($page_num >= $this->page - ($this->range - $page_num2)) || ($page_num > $this->total_pages - $this->range
&& $this->page > $this->total_pages - $this->range )) {
if ($this->page == $page_num) {
$page_left--;
$page_num2--;
$page_num3--;
$html .= "[<b class=\"".$this->style."on\">".$page_num."</b>] ";
}
else {
$page_num2--;
$page_num3--;
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$page_num.$this->extra."\"
class=\"".$this->style."\">".$page_num."</a> ";
}
}
}else{
if ($page_num <= $this->page + ($this->range - $page_num2)) {
if ($this->page == $page_num) {
$html .= "[<b class=\"".$this->style."on\">".$page_num."</b>] ";
}
else {
$page_num2--;
$page_num3--;
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$page_num.$this->extra."\"
class=\"".$this->style."\">".$page_num."</a> ";
}
}
}
}
}
$page_num2 = ceil($this->range / 2);
if (($this->page + $page_num2) <= $this->total_pages) {
$html .= "<a href=\"".$this->link_args.$this->page_text."=".(($this->page + $page_num2 <= $this->total_pages -
$this->range) ? (($this->page < $page_num2) ? $this->range + $page_num2 : $this->page + $this->range) : $this->total_pages -
$page_num2 + 1).$this->extra."\" class=\"".$this->style."\">...</a> ";
}
if ($page_next <= $this->total_pages) {
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$page_next.$this->extra."\"
class=\"".$this->style."\">".$this->paging_next."</a> ";
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$this->total_pages.$this->extra."\"
class=\"".$this->style."\">".$this->paging_lastpage."</a>";
}
}else{
if ($page_back > 0) {
$html .= "<a href=\"".$this->link_args.$this->page_text."=1".$this->extra."\"
class=\"".$this->style."\">".$this->paging_firstpage."</a> ";
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$page_back.$this->extra."\"
class=\"".$this->style."\">".$this->paging_back."</a> ";
}
for ($page_num = 1; $page_num <= $this->total_pages; $page_num++) {
if ($page_num >= ($this->page - $this->range) && $page_num <= ($this->page + $this->range)) {
if ($this->page == $page_num) {
$html .= "<b class=\"".$this->style."on\">".$page_num."</b> ";
}else{
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$page_num.$this->extra."\"
class=\"".$this->style."\">".$page_num."</a> ";
}
}
}
if ($page_next <= $this->total_pages) {
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$page_next.$this->extra."\"
class=\"".$this->style."\">".$this->paging_next."</a> ";
$html .= "<a href=\"".$this->link_args.$this->page_text."=".$this->total_pages.$this->extra."\"
class=\"".$this->style."\">".$this->paging_lastpage."</a>";
}
}
}
return $html;11. файл member.php
найти
if ($user_row = get_user_info($user_id)) {
if (isset($user_row['user_showemail']) && $user_row['user_showemail'] == 0) {
$content = $lang['invalid_user_id'];
}перед этим добавить
// Mod PM Start
if ($user_info['user_level'] > GUEST && $user_info['user_pm_ban'] == 0 && $user_row['user_pm_ban'] == 0) {
$lang_send_pm = "<a
href=\"".$site_sess->url(ROOT_PATH."pm.php?action=new&user_id=".$user_row['user_id']."&username=".$user_row['user_name'])."\"><img
src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_user_pm_alt']."\" /></a>";
}elseif ($user_info['user_level'] < GUEST){
$lang_send_pm = "<img src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_hinweis']."\" />";
} else {
$lang_send_pm = "";
}
// Mod PM End11.1 найти
$site_template->register_vars(array(
"user_id" => $user_row['user_id'],
"user_name" => format_text($user_row['user_name'], 2),после этого добавить
// Mod PM Start
"lang_pm" => $lang_pm,
// Mod PM End11.2 найти
$site_template->register_vars(array(
"user_id" => $user_row['user_id'],
"user_name" => (isset($user_row['user_name'])) ? format_text($user_row['user_name'], 2) : REPLACE_EMPTY,перед этим добавить
// Mod PM Start
if ($user_info['user_level'] > GUEST && $user_info['user_pm_ban'] == 0 && $user_row['user_pm_ban'] == 0) {
$lang_send_pm = "<a
href=\"".$site_sess->url(ROOT_PATH."pm.php?action=new&user_id=".$user_row['user_id']."&username=".$user_row['user_name'])."\"><img
src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_user_pm_alt']."\" /></a>";
}elseif ($user_info['user_level'] < GUEST){
$lang_send_pm = "<img src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_hinweis']."\" />";
} else {
$lang_send_pm = "";
}
// Mod PM End11.3 найти
$site_template->register_vars(array(
"user_id" => $user_row['user_id'],
"user_name" => (isset($user_row['user_name'])) ? format_text($user_row['user_name'], 2) : REPLACE_EMPTY,после этого добавить
// Mod PM START
"lang_pm" => $lang['pm'],
"lang_send_pm" => $lang_send_pm,
// Mod PM END11.4 найти
"lang_edit_profile_msg" => $edit_profile_msg,после этого добавить
// Mod PM
"lang_pm" => $lang['pm'],
// Mod PM12. файл details.php
найти
$site_template->register_vars(array(
"comment_id" => $comment_row[$i]['comment_id'],перед этим добавить
// Mod PM Start
if ($user_info['user_level'] > GUEST && $user_info['user_pm_ban'] == 0 && $comment_row[$i]['owner_pm_ban'] == 0 &&
$comment_row[$i]['user_id'] != -1) {
$comment_user_pm = "<a
href=\"".$site_sess->url(ROOT_PATH."pm.php?action=quote&mode=comment&id=".$comment_row[$i]['comment_id']."&user_id=".$comme
nt_row[$i]['user_id']."&username=".$comment_row[$i]['user_name'])."\" /><img src=\"".get_gallery_image("pm.gif")."\" border=\"0\"
alt=\"".$lang['pm_user_pm_alt']."\" /></a>";
} elseif ($user_info['user_level'] == GUEST){
$comment_user_pm = "<img src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_hinweis']."\" />";
}else {
$comment_user_pm = "";
}
// Mod PM END12.1 найти
$site_template->register_vars(array(
"comment_id" => $comment_row[$i]['comment_id'],после этого добавить
// Mod PM Start
"comment_user_pm" => $comment_user_pm,
// Mod PM Start12.2 найти
$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active,
i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads,
i.image_votes, i.image_rating, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.", "user_name").get_user_table_field(",
u.", "user_email")."заменить на
$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active,
i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads,
i.image_votes, i.image_rating, i.image_hits, u.user_pm_ban AS owner_pm_ban".$additional_sql.", c.cat_name".get_user_table_field(", u.",
"user_name").get_user_table_field(", u.", "user_email")."12.3 найти
$sql = "SELECT c.comment_id, c.image_id, c.user_id, c.user_name AS comment_user_name, c.comment_headline,
c.comment_text, c.comment_ip, c.comment_date".get_user_table_field(", u.", "user_level").get_user_table_field(", u.",
"user_name").get_user_table_field(", u.", "user_email").get_user_table_field(", u.", "user_showemail").get_user_table_field(", u.",
"user_invisible").get_user_table_field(", u.", "user_joindate").get_user_table_field(", u.", "user_lastaction").get_user_table_field(", u.",
"user_comments").get_user_table_field(", u.", "user_homepage").get_user_table_field(", u.", "user_icq")."заменить на
$sql = "SELECT c.comment_id, c.image_id, c.user_id, c.user_name AS comment_user_name, c.comment_headline,
c.comment_text, c.comment_ip, c.comment_date, u.user_pm_ban AS owner_pm_ban".get_user_table_field(", u.",
"user_level").get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "user_email").get_user_table_field(", u.",
"user_showemail").get_user_table_field(", u.", "user_invisible").get_user_table_field(", u.", "user_joindate").get_user_table_field(", u.",
"user_lastaction").get_user_table_field(", u.", "user_comments").get_user_table_field(", u.", "user_homepage").get_user_table_field(", u.",
"user_icq")."13. файл lang/russian/main.php
не получилось у меня вставить этот код здесь на форуме, так что просто скопируйте всё из файла lang_russian_main.txt в ваш файл lang/russian/main.php
14. файл templates/[ваш_шаблон]/header.html
перед </head>
вставить
{pm_popup_script}14.1 найти
<body заменить на
<body {pm_popup_header}15. файл templates/[ваш_шаблон]/style.css
добавить
.msg0 {
background-color: #FFCECE;
color: #2F6B9D;
}
.msg1 {
background-color: #CEFFDD;
color: #2F6B9D;
}
.msg_good {
background-color: #CEFFDD;
font-weight: bold;
border: 1px solid #5E6C80;
padding: 3px 3px 3px 3px ;
margin: 3px 0px 3px 0px ;
}
.msg_error {
background-color: #FFCECE;
font-weight: bold;
border: 1px solid #5E6C80;
padding: 3px 3px 3px 3px ;
margin: 3px 0px 3px 0px ;
}
.msg_plain {
background-color: transparent;
font-weight: bold;
border: 1px solid #5E6C80;
padding: 3px 3px 3px 3px ;
margin: 3px 0px 3px 0px ;
}
/*--BBCode--------------------------------------------------*/
input.bbcbutton {
background-color : #EFEFEF;
color : #000000;
font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif;
}
.helpline {
width: 300px;
height: 30px;
overflow: hidden;
background-color: transparent;
border-style: none;
font-family: Verdana,Tahoma,Arial,Helvetica,sans-serif;
font-size : 10px;
color: #666666;
}
div.quotehead {
font-size: 11px;
color: black;
padding: 0px 24px 0px 24px ;
}
div.quoteblock {
border: 1px solid #5E6C80;
font-size: 10px;
padding: 8px 8px 8px 8px ;
}
div.codehead {
font-size: 11px;
color: black;
padding: 0px 24px 0px 24px ;
}
div.codeblock {
border: 1px solid #5E6C80;
font-family: Courier, 'Courier New', sans-serif;
font-size: 10px;
padding: 8px 8px 8px 8px ;
background-color: #F5F5F5;
white-space: pre;
}
/*--PM Mod--------------------------------------------------*/
.username_input {
font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
color: #0f5475;
font-size: 11px;
width: 140px;
}
.username_input_button {
font-family: Tahoma,Verdana,Arial, Helvetica, sans-serif;
background-color: #003366;
color: #fcdc43;
font-size: 11px;
font-weight: bold;
width: 120px;
}16. файл templates/[ваш_шаблон]/user_logininfo.html
найти
» <a href="{url_logout}">{lang_logout}</a>после этого добавить
<!-- Start Mod: PM ------------------------------------------------------------>
{if pm_show}
{ifnot user_pm_banned}
<br />
<br />
» {pm_inbox} ({pm_inbox_total})<br />
» {pm_sentbox} ({pm_sentbox_total})<br />
» {pm_outbox} ({pm_outbox_total})<br />
» {pm_newpm}<br /><br />
{pm}
{endifnot user_pm_banned}
{endif pm_show}
<!-- End Mod: PM -------------------------------------------------------------->17. файл templates/[ваш_шаблон]/member_editprofile.html
найти
<tr>
<td class="row1"><b>{lang_invisible}</b></td>
<td class="row1">
<input type="radio" name="user_invisible" value="1"{user_invisible_yes} />
{lang_yes}
<input type="radio" name="user_invisible" value="0"{user_invisible_no} />
{lang_no}
</td>
</tr>после этого добавить
<!-- Mod PM -->
{ifnot user_pm_banned}
<tr>
<td colspan="2" valign="top" class="head1"><b>{lang_pm}</b></td>
</tr>
<tr>
<td class="row2"><b>{lang_user_pm_email}</b></td>
<td class="row2">
<input type="radio" name="user_pm_email" value="1"{user_pm_email_yes} />
{lang_yes}
<input type="radio" name="user_pm_email" value="0"{user_pm_email_no} />
{lang_no}
</td>
</tr>
<tr>
<td class="row1"><b>{lang_user_pm_popup}</b></td>
<td class="row1">
<input type="radio" name="user_pm_popup" value="1"{user_pm_popup_yes} />
{lang_yes}
<input type="radio" name="user_pm_popup" value="0"{user_pm_popup_no} />
{lang_no}
</td>
</tr>
{endifnot user_pm_banned}
<!-- Mod PM -->17.1 для добавления звукового сигнала - найти
<tr>
<td class="row1"><b>{lang_user_pm_popup}</b></td>
<td class="row1">
<input type="radio" name="user_pm_popup" value="1"{user_pm_popup_yes} />
{lang_yes}
<input type="radio" name="user_pm_popup" value="0"{user_pm_popup_no} />
{lang_no}
</td>
</tr>после этого добавить
<tr>
<td class="row1"><b>{lang_user_pm_sound}</b></td>
<td class="row1">
<input type="radio" name="user_pm_sound" value="1"{user_pm_sound_yes} />
{lang_yes}
<input type="radio" name="user_pm_sound" value="0"{user_pm_sound_no} />
{lang_no}
</td>
</tr>18. файл templates/[ваш_шаблон]/member_profile.html
найти
<tr>
<td class="row2"><b>{lang_icq}</b></td>
<td class="row2">{if user_icq}<a href="http://www.icq.com/people/about_me.php?uin={user_icq}" target="_blank">{user_icq}</a>
(<b>{user_icq_status}</b>){endif user_icq}</td>
</tr>после этого добавить
<!-- Mod PM -->
{ifnot user_pm_banned}
<tr>
<td class="row1"><b>{lang_pm}</b></td>
<td class="row1">{lang_send_pm}</td>
</tr>
{endifnot user_pm_banned}
<!-- Mod PM -->19. файл templates/[ваш_шаблон]/comment_bit.html
найти
{comment_user_icq_button}после этого добавить
<!-- Mod PM -->
{ifnot user_pm_banned}
{comment_user_pm}
{endifnot user_pm_banned}
<!-- Mod PM -->20. файл templates/[ваш_шаблон]/details.html
найти
{user_name_link}после этого добавить
{details_user_pm}21. файл admin/backup.php
найти
WORDLIST_TABLE,после этого добавить
PM_TABLE,22. файл search.php
найти
$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active,
i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads,
i.image_votes, i.image_rating, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.", "user_name")."заменить на
$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active,
i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads,
i.image_votes, i.image_rating, i.image_hits".$additional_sql.", c.cat_name, u.user_pm_ban AS owner_pm_ban".get_user_table_field(", u.",
"user_name")."ДОПОЛНЕНИЕ
если у вас установлен мод: memberlist
23. файл memberlist.php
найти
$userlist .="<tr>\n<td class=\"head2\" align=\"center\">".$lang['user_name']."</td>\n<td class=\"head2\"
align=\"center\">".$lang['join_date']."</td>\n<td class=\"head2\" align=\"center\">".$lang['email']."</td>\n<td class=\"head2\"
align=\"center\">".$lang['homepage']."</td>\n<td class=\"head2\" align=\"center\">".$lang['lang_total_user_comments']."</td>\n<td
class=\"head2\" align=\"center\">".$lang['lang_total_user_images']."</td>\n</tr>\n";заменить на
$userlist .="<tr>\n<td class=\"head2\" align=\"center\">".$lang['user_name']."</td>\n<td class=\"head2\"
align=\"center\">".$lang['join_date']."</td>\n<td class=\"head2\" align=\"center\">".$lang['email']."</td>\n<td class=\"head2\"
align=\"center\">".$lang['homepage']."</td>\n<td class=\"head2\" align=\"center\">".$lang['lang_total_user_comments']."</td>\n<td
class=\"head2\" align=\"center\">".$lang['lang_total_user_images']."</td>\n";
//-- Start Mod: PM -------------------------------------------------------------
if ($user_info['user_pm_ban'] == 0 && $config['pm']) {
$userlist .="<td class=\"head2\" align=\"center\">".$lang['pm_user_pm'].":</td>\n";
}
//-- End Mod: PM ---------------------------------------------------------------
$userlist .="</tr>\n";23.1 найти
$user_email_button = "";после этого добавить
//-- Start Mod: PM -------------------------------------------------------------
$user_pm_button = "";
//-- End Mod: PM ---------------------------------------------------------------23.2 найти
$user_join_date = (isset($user_row['user_joindate'])) ? format_date($config['date_format'], $user_row['user_joindate']) :
REPLACE_EMPTY;перед этим добавить
//-- Start Mod: PM -------------------------------------------------------------
if ($user_info['user_level'] > GUEST && $user_info['user_pm_ban'] == 0 && $config['pm']) {
$user_pm_button = "<a
href=\"".$site_sess->url(ROOT_PATH."pm.php?action=new&user_id=".$user_row['user_id']."&username=".$user_row['user_name'])."\"><img
src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_user_pm_alt']."\" /></a>";
} elseif ($user_info['user_level'] < GUEST){
$user_pm_button = "<img src=\"".get_gallery_image("pm.gif")."\" border=\"0\" alt=\"".$lang['pm_hinweis']."\" />";
} else {
$user_pm_button = "";
}
//-- End Mod: PM ---------------------------------------------------------------23.3 найти
$userlist .= "<td valign=\"top\" align=\"center\">".$total_user_images_link."</td>";
после этого добавить
//-- Start Mod: PM -------------------------------------------------------------
if ($user_info['user_pm_ban'] == 0 && $config['pm']) {
$userlist .= "<td valign=\"top\" align=\"center\">".$user_pm_button."</td>";
}
//-- End Mod: PM ---------------------------------------------------------------