Вы не зашли.
Доброго времени суток всем поклонникам NG CMS!
Долго искал бесплатную замену DLE и вот вышел NG CMS. Очень все понравилось и дальше планирую работать только с этим движком.
На данный момент у меня вопрос как сделать? Для работы моего нового проекта, надо как минимум чтобы в разделе управления пользователями была статистика не только о количестве новостей добавленных каждым пользователем, но и общее количестве просмотров этих новостей.
А еще лучше, чтобы такие данные можно было вывести на отдельную страницу сайта онлайн, а также экспортировать в Excel. Как возможно такое реализовать?
Помогите пожалуйста с этим вопросом!
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
\engine\actions\users.php
Найти ~244 строчку
$sql = "select * from ".uprefix."_users ".$where.' '.$order.' '.$limit;Заменить на
$sql = "SELECT u.*, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews FROM ".uprefix."_users u ".$where.' '.$order.' '.$limit;Найти ~254 строчку
'news'			=>	$row['news'],заменить на
news'			=>	$row['news'].($row['cntviews']?' ['.$row['cntviews'].']':''),Теперь в скобочках можно наблюдать количество просмотров всех новостей

А еще лучше, чтобы такие данные можно было вывести на отдельную страницу сайта онлайн, а также экспортировать в Excel. Как возможно такое реализовать?
Я бы прикрутил эту фичу к плагину статистики, но моего плагина пока нет, а чужое мне уже и не хочется трогать после недавних событий. Так что ждите других людей, это же так нравится пользователям ![]()
Изменено Wolverine (2011-01-11 15:00:28)
Не в сети
Wolverine, 
ну ту по идеи надо не во всю статистику выводить, а выводить на отдельной странице список юзеров с постраничкой и и сортить по количеству новостей и просмотров
Не в сети
Весь алгоритм уже готов в users.php, дальше работает Ctrl-C/Ctrl-V в плагин статистики и 20 минут создания еще одной собственной страницы и перенос шаблонов.
А вообще есть же плагин userlist, который давно выводит список всех пользователей, вот туда еще логичнее всунуть этот функционал. Тогда тут вообще на 5 минут работы.
С Excel чуть посложнее, но есть готовая библиотека в PEAR - Spreadsheet_Excel_Writer http://pear.php.net/package/Spreadsheet … redirected и мануал на русском для старта http://www.phpclub.ru/detail/article/Excel_Writer
Изменено Wolverine (2011-01-11 15:20:18)
Не в сети
Спасибо, что не оставили мой вопрос без ответа. 
Изменил код - статистика просмотров отражается.
Теперь относительно экспорта  Excel: эти данные я бы мог в ручную перегнать копированием и вставкой сначала в блокнот, а потом в Excel, но наверно из-за того, что просмотры отражаются в скобках, данные о количестве новостей и просмотров в  Excel попадают в один столбец.
Соответственно в этом случае я не могу применить формулу для дальнейшего расчета. Конечно можно перебить данные просмотров вручную, но хотелось бы проще.
Про плагины и библиотеки еще не разобрался. Поизучаю, тогда если будут вопросы напишу. А пока еще раз большое спасибо!
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
Ну скобки то можно убрать
news'   => $row['news'].($row ['cntviews']?' '.$row['cntviews']:''),Только это геморно имхо руками копировать, надо автоматизировать. Тебе что нужно экспортировать? Тот вариант, что и в админке? То есть Ник, Количество новостей, Суммарное количество их просмотров. Для всех пользователей?
vitaly, о, я что-то слышал про него, но не использовал. Тогда все гораздо легче становится.
Изменено Wolverine (2011-01-11 20:49:27)
Не в сети
Да мне нужно в одной таблице по каждому пользователю: Ник, количество его новостей и суммарное количество просмотров новостей этого пользователя.
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
Если есть баги сорри, делал за 15 минут, завтра экзамен ![]()
1. Добавление кнопки "Выгрузить в CSV"

\engine\skins\default\tpl\users\table.tpl
Найти
<input type="submit" value="{l_sortit}" class="button" />
</form>ниже добавить
<form method="POST" name="CSV" action="admin.php?mod=users&action=csv">
<input type="submit" value="Выгрузить в CSV" class="button" />
</form>2. PHP обработчик
\engine\actions\users.php
Найти
case 'massDelInactive'	: userMassDeleteInactive();	break;ниже добавить
case 'csv'				: userCSV();	break;Найти
// ==============================================
// Actions
// ==============================================ПЕРЕД этим блоком добавить
# put to CSV file
function userCSV(){
	global $mysql;
	
	$sql = "SELECT u.id, u.name, u.news, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews FROM ".uprefix."_users u WHERE `news` <> 0";
	
	$fp = fopen('users.csv', 'w');
	fputcsv($fp, array('Никнейм', 'Количество новостей', 'Суммарное количество просмотров'), ';');
	
	foreach ($mysql->select($sql) as $row){
		fputcsv($fp, array($row['name'], $row['news'], $row['cntviews']), ';');
	}
	
	fclose($fp);
}


Не в сети
Wolverine, спасибо все работает!
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
Wolverine, Вы мне здорово помогли с отображением количества просмотров в разделе "управления пользователями".
Подскажите пожалуйста еще, какой код и куда засунуть, чтобы количество просмотров всех новостей пользователя отображалось у него в разделе "Мой профиль" так же в скобках рядом с количеством его новостей.
Заранее благодарен.
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
\engine\plugins\uprofile\uprofile.php
Найти
// Check if valid user identity is specified
	$urow = '';
	if (isset($params['id']) && (intval($params['id']) > 0)) {
		$urow = $mysql->record("select * from ".uprefix."_users where id = ".intval($params['id']));
	} else if (isset($params['name'])) {
		$urow = $mysql->record("select * from ".uprefix."_users where name = ".db_squote($params['name']));
	} else if (isset($_REQUEST['id'])) {
		$urow = $mysql->record("select * from ".uprefix."_users where id = ".intval($_REQUEST['id']));
	} else if (isset($_REQUEST['name'])) {
		$urow = $mysql->record("select * from ".uprefix."_users where name = ".db_squote($_REQUEST['name']));
	}Заменить на
	// Check if valid user identity is specified
	$urow = '';
	if (isset($params['id']) && (intval($params['id']) > 0)) {
		$urow = $mysql->record("select *, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews from ".uprefix."_users u where id = ".intval($params['id']));
	} else if (isset($params['name'])) {
		$urow = $mysql->record("select *, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews from ".uprefix."_users u where name = ".db_squote($params['name']));
	} else if (isset($_REQUEST['id'])) {
		$urow = $mysql->record("select *, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews from ".uprefix."_users u where id = ".intval($_REQUEST['id']));
	} else if (isset($_REQUEST['name'])) {
		$urow = $mysql->record("select *, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews from ".uprefix."_users u where name = ".db_squote($_REQUEST['name']));
	}Найти
$tpl -> template('users', $tpath['users']);
	$tvars['vars'] = array(
		'user'		=>	$urow['name'],
		'news'		=>	$urow['news'],Заменить на
$tpl -> template('users', $tpath['users']);
	$tvars['vars'] = array(
		'user'		=>	$urow['name'],
		'news'		=>	$urow['news'].($urow['cntviews']?' ['.$urow['cntviews'].']':''),Или можно сделать отдельную переменную под просмотры, которую можно будет использовать в шаблоне \uprofile\tpl\users.tpl, то есть написать Количество просмотров: {cntviews} после (примерно 88 строка)
'status'	=>	$status,добавить
'cntviews'	=>	$urow['cntviews'],
Изменено Wolverine (2011-01-20 12:32:45)
Не в сети
Wolverine, несколько раз пробовал, тщательно менял коды, просмотры не появляются. Что еще может быть?
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
Тогда давайте я попробую уточнить.
Вот замена двух первых кодов достаточно, потому что далее вы пишите "или".
Или вот это тоже надо проделать? Если да, то напишите подробнее, а то не пойму эти коды в этом же файле? И что значить добавить? После вставить?
Код:
'status' => $status,
добавить
Код:
'cntviews' => $urow['cntviews'],
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
Не в сети
Вот, заменил первых два кода - не работает. Посмотрите файл, что не так вставил.
<?php
// Protect against hack attempts
if (!defined('NGCMS')) die ('HAL');
LoadPluginLang('uprofile', 'main', '', '', ':');
register_plugin_page('uprofile','edit','uprofile_editProfile',0);
register_plugin_page('uprofile','apply','uprofile_applyProfile',0);
register_plugin_page('uprofile','show','uprofile_showProfile',0);
// =============================================================
// External functions of plugin
// =============================================================
function uprofile_list() {
}
function uprofile_showProfile($params) {
    global $mysql, $lang, $tpl, $template, $SYSTEM_FLAGS, $PFILTERS;
    $SYSTEM_FLAGS['info']['title']['group']        = $lang['uprofile:header.view'];
    //LoadPluginLang('uprofile', 'users', '', '', ':');
    // Check if valid user identity is specified
    $urow = '';
    if (isset($params['id']) && (intval($params['id']) > 0)) {
        $urow = $mysql->record("select *, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews from ".uprefix."_users u where id = ".intval($params['id']));
    } else if (isset($params['name'])) {
        $urow = $mysql->record("select *, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews from ".uprefix."_users u where name = ".db_squote($params['name']));
    } else if (isset($_REQUEST['id'])) {
        $urow = $mysql->record("select *, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews from ".uprefix."_users u where id = ".intval($_REQUEST['id']));
    } else if (isset($_REQUEST['name'])) {
        $urow = $mysql->record("select *, (SELECT SUM(n.views) FROM ".prefix."_news n WHERE u.id = n.author_id) AS cntviews from ".uprefix."_users u where name = ".db_squote($_REQUEST['name']));
    }
    if (!is_array($urow)) {
        msg(array("type" => "error", "text" => $lang['uprofile:msge_no_user']));
        return;
    }
    if (is_array($PFILTERS['plugin.uprofile']))
        foreach ($PFILTERS['plugin.uprofile'] as $k => $v) { $v->showProfilePre($urow['id'], $urow); }
    // Determine paths for all template files
    $tpath = locatePluginTemplates(array('users'), 'uprofile', pluginGetVariable('uprofile', 'localsource'));
    // Make page title
    $SYSTEM_FLAGS['info']['title']['group']    = $lang['loc_userinfo'];
    $SYSTEM_FLAGS['info']['title']['item']    = $urow['name'];
$status = (($urow['status'] >= 1)&&($urow['status'] <= 4))?$lang['uprofile:st_'.$urow['status']]:$lang['uprofile:st_unknown'];
    // Check for new style of photos storing
    if (preg_match('/^'.$urow['id'].'\./', $urow['photo'])) {
        $uphoto = $urow['photo'];
    } else {
        $uphoto = $urow['id'].'.'.$urow['photo'];
    }
    // Check for new style of avatars storing
    if (preg_match('/^'.$urow['id'].'\./', $urow['avatar'])) {
        $uavatar = $urow['avatar'];
    } else {
        $uavatar = $urow['id'].'.'.$urow['avatar'];
    }
$photo = photos_url.'/'.(($urow['photo'] != "")?'thumb/'.$uphoto:'nophoto.gif');
    // GRAVATAR.COM integration ** BEGIN **
    if ($urow['avatar'] != '') {
        $avatar    = avatars_url.'/'.$uavatar;
    } else {
        if ($config['avatars_gravatar']) {
            $avatar    = 'http://www.gravatar.com/avatar/'.md5(strtolower($userROW['mail'])).'.jpg?s='.$config['avatar_wh'].'&d='.urlencode(avatars_url."/noavatar.gif");
        } else {
            $avatar = avatars_url."/noavatar.gif";
        }
    }
    // GRAVATAR.COM integration ** END **
    $tpl -> template('users', $tpath['users']);
    $tvars['vars'] = array(
        'user'        =>    $urow['name'],
        'news'        =>    $urow['news'].($urow['cntviews']?' ['.$urow['cntviews'].']':''),
        'com'        =>    $urow['com'],
        'status'    =>    $status,
        'last'        =>    langdate("j Q Y", $urow['last']),
        'reg'        =>    langdate("j Q Y", $urow['reg']),
        'site'        =>    secure_html($urow['site']),
        'icq'        =>    is_numeric($urow['icq']) ? '<a target="_blank" href="http://www.icq.com/people/about_me.php?uin='.$urow['icq'].'">'.$urow['icq'].'</a>' : secure_html($urow['icq']),
        'icqimg'    =>    is_numeric($urow['icq']) ? '<img src="http://status.icq.com/online.gif?icq='.$urow['icq'].'&img=1" />' : '',
        'from'        =>    secure_html($urow['where_from']),
        'info'        =>    secure_html($urow['info']),
        'photo'        =>    $photo,
        'photo_link'=>    ($urow['photo'] != "") ? photos_url.'/'.$uphoto:'',
        'avatar'    =>    $avatar
    );
    if (is_array($PFILTERS['plugin.uprofile']))
        foreach ($PFILTERS['plugin.uprofile'] as $k => $v) { $v->showProfile($urow['id'], $urow, $tvars); }
    $tpl -> vars('users', $tvars);
    $template['vars']['mainblock'] .= $tpl -> show('users');
}
function uprofile_editProfile(){
    // Call editForm routine
    uprofile_editForm();
}
function uprofile_applyProfile() {
    global $template, $userROW, $lang;
    // Check if user is logged in
    if (!is_array($userROW)) {
        msg(array("type" => "error", "text" => $lang['uprofile:msge_notlogged']));
        return;
    }
    // Call Apply changes routine
    uprofile_editApply();
    // Redirect back if we do not have any messages
    if (!$template['vars']['mainblock']) {
        @header("Location: ".generateLink('uprofile', 'edit', array()));
    } else {
        // We have some messages. Don't affect it, print editForm.
        uprofile_editForm();
    }
}
// =============================================================
// Internal functions of plugin
// =============================================================
// Show profile for specified user
function profile_show() {
    global $mysql;
}
// Show EDIT FORM for current user's profile
function uprofile_editForm(){
    global $mysql, $userROW, $lang, $config, $tpl, $template, $SYSTEM_FLAGS, $PFILTERS;
$SYSTEM_FLAGS['info']['title']['group'] = $lang['uprofile:header.edit'];
    // Check if user is logged in
    if (!is_array($userROW)) {
        msg(array("type" => "error", "text" => $lang['uprofile:msge_notlogged']));
        return;
    }
    //
    // Show profile
    // Save current user's parameters
    $currentUser = $userROW;
    // Manage profile data [if needed]
    if (is_array($PFILTERS['plugin.uprofile']))
        foreach ($PFILTERS['plugin.uprofile'] as $k => $v) { $v->editProfileFormPre($currentUser['id'], $currentUser); }
    // Determine paths for all template files
    $tpath = locatePluginTemplates(array('profile'), 'uprofile', pluginGetVariable('uprofile', 'localsource'));
    // If AVATARs are enabled
    if ($config['use_avatars']) {
        if ($currentUser['avatar'] !== "") {
            // Check for new style of avatar storing
            if (preg_match('/^'.$currentUser['id'].'\./', $currentUser['avatar'])) {
                $avatar = $currentUser['avatar'];
            } else {
                $avatar = $currentUser['id'].'.'.$currentUser['avatar'];
            }
            $imgavatar = '<img src="'.avatars_url.'/'.$avatar.'" style="margin: 5px; border: 0px;" alt="" />';
            $delavatar = '<input type="checkbox" name="delavatar" id="delavatar" class="check" /> <label for="delavatar">'.$lang["uprofile:delete"].'</label>';
        }
        $showrow_avatar = '<input type="file" name="newavatar" size="40" /><br />'.$imgavatar.'<br />'.$delavatar;
    } else {
        $showrow_avatar = $lang['uprofile:avatars_denied'];
    }
    // If PHOTOS are enabled
    if ($config['use_photos']) {
        if ($currentUser['photo'] !== "") {
            // Check for new style of avatar storing
            if (preg_match('/^'.$currentUser['id'].'\./', $currentUser['photo'])) {
                $photo = $currentUser['photo'];
            } else {
                $photo = $currentUser['id'].'.'.$currentUser['photo'];
            }
            $imgphoto = '<a href="'.photos_url.'/'.$photo.'" target="_blank"><img src="'.photos_url.'/thumb/'.$photo.'" style="margin: 5px; border: 0px;" alt="" /></a>';
            $delphoto = '<input type="checkbox" name="delphoto" id="delphoto" class="check" /> <label for="delphoto">'.$lang["uprofile:delete"].'</label>';
        }
        $showrow_photo = '<input type="file" name="newphoto" size="40" /><br />'.$imgphoto.'<br />'.$delphoto;
    } else {
        $showrow_photo = $lang['uprofile:photos_denied'];
    }
$status = (($currentUser['status'] >= 1)&&($currentUser['status'] <= 4))?$lang['uprofile:st_'.$currentUser['status']]:$lang['uprofile:st_unknown'];
    $tvars['vars'] = array(
        'php_self'    =>    $PHP_SELF,
        'name'        =>    $currentUser['name'],
        'regdate'    =>    LangDate("l, j Q Y - H:i", $currentUser['reg']),
        'last'        =>    (empty($currentUser['last'])) ? $lang['no_last'] : LangDate("l, j Q Y - H:i", $currentUser['last']),
        'status'    =>    $status,
        'news'        =>    $currentUser['news'],
        'comments'    =>    $currentUser['com'],
        'email'        =>    secure_html($currentUser['mail']),
        'ifchecked'    =>    $ifchecked,
        'site'        =>    secure_html($currentUser['site']),
        'icq'        =>    secure_html($currentUser['icq']),
        'from'        =>    secure_html($currentUser['where_from']),
        'about'        =>    secure_html($currentUser['info']),
        'about_sizelimit_text'    => str_replace('{limit}', intval($config['user_aboutsize']), $lang['uprofile:about_sizelimit']),
        'about_sizelimit'    => intval($config['user_aboutsize']),
        'avatar'    =>    $showrow_avatar,
        'photo'        =>    $showrow_photo,
        'form_action'    =>    generateLink('core', 'plugin', array('plugin' => 'uprofile', 'handler' => 'apply')),
    );
    if (is_array($PFILTERS['plugin.uprofile']))
        foreach ($PFILTERS['plugin.uprofile'] as $k => $v) { $v->editProfileForm($currentUser['id'], $currentUser, $tvars); }
    $tpl -> template('profile', $tpath['profile']);
    $tpl -> vars('profile', $tvars);
    $template['vars']['mainblock'] .= $tpl -> show('profile');
}
function uprofile_editApply(){
    global $mysql, $tpl, $lang, $template, $userROW, $auth_db, $config, $PFILTERS;
    // Load required library
    @include_once root.'includes/classes/upload.class.php';
    // Check if user is logged in
    if (!is_array($userROW)) {
        msg(array("type" => "error", "text" => $lang['uprofile:msge_notlogged']));
        return;
    }
    if (!isset($_POST['oldpass']) || (EncodePassword($_POST['oldpass']) != $userROW['pass'])) {
        msg(array("type" => "error", "text" => $lang['uprofile:msge_needoldpass']));
        return;
    }
    // Delete avatar if requested
    if ($_REQUEST['delavatar']) {
        uprofile_manageDelete('avatar', $userROW['id']);
    } else {
        $avatar = $userROW['avatar'];
    }
    // Delete photo if requested
    if ($_REQUEST['delphoto']) {
        uprofile_manageDelete('photo', $userROW['id']);
    } else {
        $photo = $userROW['photo'];
    }
    // UPLOAD AVATAR
    if ($_FILES['newavatar']['name']) {
        // Delete an avatar if user already has it
        uprofile_manageDelete('avatar', $userROW['id']);
        $fmanage = new file_managment();
        $imanage = new image_managment();
        $up = $fmanage->file_upload(array('type' => 'avatar', 'http_var' => 'newavatar', 'replace' => 1, 'manualfile' => $userROW['id'].'.'.strtolower($_FILES['newavatar']['name'])));
        if (is_array($up)) {
            // Now fetch information about size and prepare to write info into DB
            if (is_array($sz = $imanage->get_size($config['avatars_dir'].$up[1]))) {
                $fmanage->get_limits('avatar');
                // Check avatar size limit (!!!)
                $lwh = intval($config['avatar_wh']);
                if ($lwh && (($sz[1] > $lwh)||($sz[2] > $lwh))) {
                    // Fatal: uploaded avatar mismatch size limits !
                    msg(array("type" => "error", "text" => $lang['uprofile:msge_size'], "info" => sprintf($lang['uprofile:msgi_size'], $lwh.'x'.$lwh)));
                    $fmanage->file_delete(array('type' => 'avatar', 'id' => $up[0]));
                } else {
                    $mysql->query("update ".prefix."_".$fmanage->tname." set width=".db_squote($sz[1]).", height=".db_squote($sz[2])." where id = ".db_squote($up[0]));
                    $avatar = $up[1];
                }
            } else {
                // We were unable to fetch image size. Damaged file, delete it!
                msg(array("type" => "error", "text" => $lang['uprofile:msge_damaged']));
                $fmanage->file_delete(array('type' => 'avatar', 'id' => $up[0]));
            }
        }
    }
    // UPLOAD PHOTO
    if ($_FILES['newphoto']['name']) {
        // Delete a photo if user already has it
        uprofile_manageDelete('photo', $userROW['id']);
        $fmanage = new file_managment();
        $imanage = new image_managment();
        $up = $fmanage->file_upload(array('type' => 'photo', 'http_var' => 'newphoto', 'replace' => 1, 'manualfile' => $userROW['id'].'.'.strtolower($_FILES['newphoto']['name'])));
        if (is_array($up)) {
            // Now write info about image into DB
            if (is_array($sz = $imanage->get_size($config['photos_dir'].$subdirectory.'/'.$up[1]))) {
                $fmanage->get_limits('photo');
                // Create preview for photo
                $tsz = intval($config['photos_thumb_size']);
                if (($tsz < 10)||($tsz > 1000)) $tsz = 150;
                $thumb = $imanage->create_thumb($config['photos_dir'].$subdirectory, $up[1], $tsz,$tsz);
                // If we were unable to create thumb - delete photo, it's damaged!
                if (!$thumb) {
                    msg(array("type" => "error", "text" => $lang['uprofile:msge_damaged']));
                    $fmanage->file_delete(array('type' => 'avatar', 'id' => $up[0]));
                } else {
                    $mysql->query("update ".prefix."_".$fmanage->tname." set width=".db_squote($sz[1]).", height=".db_squote($sz[2]).", preview=1 where id = ".db_squote($up[0]));
                    $photo = $up[1];
                }
            } else {
                // We were unable to fetch image size. Damaged file, delete it!
                msg(array("type" => "error", "text" => $lang['uprofile:msge_damaged']));
                $fmanage->file_delete(array('type' => 'avatar', 'id' => $up[0]));
            }
        }
    }
    $sqlFields = array (
        'avatar' => $avatar,
        'photo' => $photo,
        'mail' => $_REQUEST['editmail'],
        'site' => $_REQUEST['editsite'],
        'icq' => is_numeric($_REQUEST['editicq'])?$_REQUEST['editicq']:'',
        'where_from' => $_REQUEST['editfrom'],
        'info' => (intval($config['user_aboutsize'])?substr($_REQUEST['editabout'],0,$config['user_aboutsize']):$_REQUEST['editabout'])
    );
    if ($_REQUEST['editpassword'] != '') {
        if (method_exists($auth_db, 'save_profile')) {
            $auth_db->save_profile($userROW['id'], array('password' => $_REQUEST['editpassword']));
        }
        $sqlFields['pass'] = EncodePassword($_REQUEST['editpassword']);
    }
    // Call external plugins for request processing
    if (is_array($PFILTERS['plugin.uprofile']))
        foreach ($PFILTERS['plugin.uprofile'] as $k => $v) { $v->editProfile($useROW['id'], $userROW, $sqlFields); }
    // Prepare SQL line
    $sqlF = array();
    foreach ($sqlFields as $f => $v)
        array_push($sqlF, $f . " = " . db_squote($v));
    $sqlUpdate = "update ".uprefix."_users set ".join(", ",$sqlF)." where id = ".db_squote($userROW['id']);
    $mysql->query($sqlUpdate);
    // Call external plugins for request processing
    if (is_array($PFILTERS['plugin.uprofile']))
        foreach ($PFILTERS['plugin.uprofile'] as $k => $v) { $v->editProfileNotify($useROW['id'], $userROW, $sqlFields); }
    return true;
}
function uprofile_manageDelete($type, $userID){
    global $mysql, $userROW;
    // Load required library
    @include_once root.'includes/classes/upload.class.php';
    $localUpdate = 0;
    $userID = intval($userID);
    if ($userID != $userROW['id']) {
        if (!is_array($uRow = $mysql->record("select * from ".uprefix."_users where id = ".$userID)))
         return;
    } else {
        $uRow = $userROW;
        $localUpdate = 1;
    }
    // Search for avatar record in mySQL table
    if (is_array($imageRow = $mysql->record("select * from ".prefix."_images where owner_id = ".$userID." and category = ".($type=='avatar'?1:2)))) {
        // Info was found in SQL table
        $fmanager = new file_managment();
        $fmanager->file_delete(array('type' => $type, 'id' => $imageRow['id']));
        //unlink(avatars_dir.$imageRow['name']);
    } else if ($uRow[$type]) {
        // Try to delete all avatars of this user
        @unlink($avatar_dir.$uRow['id'].'.*');
    }
    $mysql->query("update ".uprefix."_users set ".($type=='photo'?'photo':'avatar')." = '' where id = ".$userID);
    if ($localUpdate) $userROW[$type] = '';
}
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
Мистика какая-то. Я еще надеялся, что может не работает на денвере. Сейчас загнал на тестовый домен - тоже не работает.Wolverine, вот можете сами убедиться http://games-manual.ru
Логин: yukos
пароль: 123
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
Yukos, ты прикалываешься что ли 
 
Или ты говоришь про отсутствие просмотров отдельной строкой? Тогда тебе нужно проделать действия Или можно сделать отдельную переменную под просмотры,
Не в сети
Wolverine, Вы что, меня самого уже трясет. Я никогда на форумах не тусовался и к своему стыду не знаю, как вставить картинку. Вот сейчас сделал скрин, подскажите как загрузить, сами увидите.
Суета сует, - все суета... (Екклесиаст)
Дешевый и надежный хостинг
Не в сети
Заходишь на http://photoload.ru/, там жмешь Обзор, выбираешь картинку с компа и жмешь Загрузить
Не в сети