Вы не зашли.
Доброго времени суток всем поклонникам 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/, там жмешь Обзор, выбираешь картинку с компа и жмешь Загрузить
Не в сети