KirKMS Posted November 15, 2019 Report Share Posted November 15, 2019 Вырезал со сборки friendes.Вырезал на коленки. Заходим в базу данных и в таблице _wall добавить новое поле views тип bigint(20) Зайти в таблицу _communities_wall и добавить поле views тип bigint(20) Заходим в вайл record.tpl которой в паке wall в дериетории шаблона. Ищем там что-то похожее на это <b id="wall_repost_cnt{rec-id}" class="{yes-repost-color}">{reposts}</b> и вставляем ниже код <div class="post_views"> <i class="post_views_icon"></i> <span>{views-num}</span> </div> Сохраняем файл и идём дальше в папку со стилями и открываем ваш главный стиль style.css Вставляем в самый конец вот такой код .post_views_icon { background: url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2210%22%20viewBox%3D%221%202%2014%2010%22%20style%3D%22fill%3A%23828a99%3B%22%3E%3Cpath%20d%3D%22M8%2012C3.8%2012%201%208%201%207%201%206%203.8%202%208%202%2012.2%202%2015%206%2015%207%2015%208%2012.2%2012%208%2012ZM8%2010.5C9.9%2010.5%2011.5%208.9%2011.5%207%2011.5%205.1%209.9%203.5%208%203.5%206.1%203.5%204.5%205.1%204.5%207%204.5%208.9%206.1%2010.5%208%2010.5ZM8%208.6C7.1%208.6%206.4%207.9%206.4%207%206.4%206.1%207.1%205.4%208%205.4%208.9%205.4%209.6%206.1%209.6%207%209.6%207.9%208.9%208.6%208%208.6Z%22%2F%3E%3C%2Fsvg%3E) no-repeat 0 0; width: 14px; height: 10px; margin: 3px 5px 0 0; opacity: 0.5; filter: alpha(opacity=50); display: inline-block; float: left; } .post_views { float: right; padding: 0 10px; } Открываем папку js открываем main.js и добавляем где-то сверху или снизу function WallViews(post_id, type){ if(!type) url = 'AddViews'; else url = 'AddViews2'; $('#wall_record_'+post_id).attr('onMouseOver',''); $.post('/index.php?go=wall&act='+url,{post_id:post_id}, function(d){ $("#wall_record_"+post_id+" .post_views span").html(parseInt($("#wall_record_"+post_id+" .post_views span").text()) + 1); }); } Сохраняем и идем дальше в системные файлы. Заходим в classes и открываем файл wall.php Находим там строку похожу на эту if($row_wall['user_photo']) $tpl->set('{ava}', '/uploads/users/'.$row_wall['author_user_id'].'/50_'.$row_wall['user_photo']); else $tpl->set('{ava}', '{theme}/images/no_ava_50.png'); и вставляем ниже $tpl->set('{views-num}', $row_wall['views']); Открываем файл wall.public.php ищем там megaDate($row_wall['add_date']); if($row_wall['photo']) $tpl->set('{ava}', '/uploads/groups/'.$row_wall['public_id'].'/50_'.$row_wall['photo']); else $tpl->set('{ava}', '{theme}/images/no_ava_50.png'); И вставляем ниже $tpl->set('{views-num}', $row_wall['views']); Дальше идём в паку с модулями и открывем файл wall.php Сразу после switch($act){ вставить case 'AddViews': $post_id = intval($_POST['post_id']); $row = $db->super_query("SELECT id, author_user_id FROM `".PREFIX."_wall` WHERE id = '{$post_id}'"); if($row && $row['author_user_id'] != $user_info['user_id']) $db->query("UPDATE `".PREFIX."_wall` SET views = views+1 WHERE id = '{$post_id}'"); echo 1; die(); break; case 'AddViews2': $post_id = intval($_POST['post_id']); $row = $db->super_query("SELECT id FROM `".PREFIX."_communities_wall` WHERE id = '{$post_id}'"); if($row) $db->query("UPDATE `".PREFIX."_communities_wall` SET views = views+1 WHERE id = '{$post_id}'"); echo 1; die(); break; Тут и для групп тоже в classes и открываем файл wall.php и wall.public.php вместо $tpl->set('{views-num}', $row_wall['views']); ставим это. $tpl->set('{views-num}', $row_wall['views'] ? $row_wall['views'] : '0'); Заходим в файл record.tpl которой в папке wall шаблона в первой строке [record]<div class="wallrecord wall_upage" id="wall_record_{rec-id}" style="margin-top:5px"> Добавляем в любом месте [owner-record]onMouseOver="WallViews({rec-id});"[/owner-record] [record]<div [owner-record]onMouseOver="WallViews({rec-id});"[/owner-record] class="wallrecord wall_upage" id="wall_record_{rec-id}" style="margin-top:5px"> Вроде бы как всё Если хотите отблагодарить то жмите кнопку 4 1 Quote Link to comment Share on other sites More sharing options...
KirKMS Posted November 15, 2019 Author Report Share Posted November 15, 2019 Пока не могу разобраться где запускается функция update Quote Link to comment Share on other sites More sharing options...
00vlad Posted November 15, 2019 Report Share Posted November 15, 2019 12 часов назад, Kir KMS сказал: Пока не могу разобраться где запускается функция update Ты много чего тут забыл добавить Quote Link to comment Share on other sites More sharing options...
Klaus Posted November 16, 2019 Report Share Posted November 16, 2019 18 часов назад, 00vlad сказал: Ты много чего тут забыл добавить И что он забыл ещё? Quote Link to comment Share on other sites More sharing options...
LifeGold Posted November 16, 2019 Report Share Posted November 16, 2019 Поставил на пустую сборку то что выше посмотрел почему не срабатывает то что нужно добавить ниже. в classes и открываем файл wall.php и wall.public.php вместо $tpl->set('{views-num}', $row_wall['views']); ставим это. $tpl->set('{views-num}', $row_wall['views'] ? $row_wall['views'] : '0'); Заходим в файл record.tpl которой в папке wall шаблона в первой строке [record]<div class="wallrecord wall_upage" id="wall_record_{rec-id}" style="margin-top:5px"> Добавляем в любом месте [owner-record]onMouseOver="WallViews({rec-id});"[/owner-record] [record]<div [owner-record]onMouseOver="WallViews({rec-id});"[/owner-record] class="wallrecord wall_upage" id="wall_record_{rec-id}" style="margin-top:5px"> 2 Quote Link to comment Share on other sites More sharing options...
Klaus Posted November 28, 2019 Report Share Posted November 28, 2019 (edited) Все сделал, а просмотры не зачисляются... На всякий случай сделайте бекап! Я еще только начинающий) В wall.public.php ищем похожее на: Цитата $tpl->set('{text}', stripslashes($row_wall['text'])); $tpl->set('{name}', $row_wall['title']); if(strpos($row_wall['views_list'], '|'.$user_info['user_id'].'|') === false){ Ниже ставим: Цитата if(strpos($row_wall['views_list'], '|'.$user_info['user_id'].'|') === false){ $tpl->set('[no_views]', ''); $tpl->set('[/no_views]', ''); } else $tpl->set_block("'\\[no_views\\](.*?)\\[/no_views\\]'si",""); $tpl->set('{views-count}', $row_wall['views_count']); в news.php: ищем - //Выводим кол-во комментов, мне нравится, и список юзеров кто поставил лайки к записи если это не страница "ответов" в запрос добавляем views Тут же перед: //Если есть комменты к записи, то выполняем след. действия, ставим : Цитата $tpl->set('{views-num}', $rec_info['views']); Теперь public.php: ищем - //Если страница вывзана через "к предыдущим записям" В запрос добавляем views Я про тот, который с include ENGINE_DIR.'/classes/wall.public.php'; Дальше modules/wall.php: //Если добавлена просто запись, то сразу обновляем все записи на стене добавляем запрос views в обоих! //Если приватность "Только друщья" то Проверка естьли запрашиваемый юзер в друзьях у юзера который смотрит стр. В if($user_privacy и else добавляем запрос views в шаблон/news/news.tpl вставить в самую крышу: [record]<div class="wallrecord comm_wr news_comm_wr" id="wall_record_{rec-id}" onMouseOver="WallViews({rec-id}[groups], 1[/groups]);" style="padding-bottom:10px;margin-top:5px;margin-bottom: 10px;"> Ищем похожее на: Цитата <input type="hidden" id="update_like{rec-id}" value="0" /> <div class="fl_r public_wall_like cursor_pointer" onClick="{like-js-function}" onMouseOver="groups.wall_like_users_five('{rec-id}'[wall-func], 'uPages'[/wall-func])" onMouseOut="groups.wall_like_users_five_hide('{rec-id}')" id="wall_like_link{rec-id}"> <div class="fl_l" id="wall_like_active">Мне нравится</div> <div class="public_wall_like_no {yes-like}" id="wall_active_ic{rec-id}"></div> <b id="wall_like_cnt{rec-id}" class="{yes-like-color}">{likes}</b> </div> Вставляем ниже: Цитата <div class="post_views"> <i class="post_views_icon"></i> <span>{views-num}</span> </div> Edited July 9, 2021 by Stark98 1 1 1 Quote Link to comment Share on other sites More sharing options...
vseti1994 Posted November 29, 2019 Report Share Posted November 29, 2019 8 часов назад, Stark98 сказал: Никто и спасибо не сказал... дай базу данных и в таблице поставит КОЛИЧЕСТВО ПРОСМОТРОВ ЗАПИСИ Quote Link to comment Share on other sites More sharing options...
Klaus Posted November 30, 2019 Report Share Posted November 30, 2019 13 часов назад, vseti1994 сказал: дай базу данных и в таблице поставит КОЛИЧЕСТВО ПРОСМОТРОВ ЗАПИСИ Заходим в базу данных и в таблице _wall добавить новое поле views тип bigint(20) Зайти в таблицу _communities_wall и добавить поле views тип bigint(20) Quote Link to comment Share on other sites More sharing options...
Disy Posted December 3, 2019 Report Share Posted December 3, 2019 Баг с $tpl->set('{views-num}', $row_wall['views'] ? $row_wall['views'] : '0'); Так как нолик он и остается на стене если обновить страницу запись в базу вроде как происходит, но вывода нет.. Quote Link to comment Share on other sites More sharing options...
LifeGold Posted December 3, 2019 Report Share Posted December 3, 2019 Насколько я понял просмотрев код. Она срабатывают только на странице других пользователей, если смотреть свою стену, просмотров не добавиться. Quote Link to comment Share on other sites More sharing options...
Disy Posted December 3, 2019 Report Share Posted December 3, 2019 1 час назад, muller сказал: Насколько я понял просмотрев код. Она срабатывают только на странице других пользователей, если смотреть свою стену, просмотров не добавиться. в [owner-record]onMouseOver="WallViews({rec-id});"[/owner-record] ковычки убери) Quote Link to comment Share on other sites More sharing options...
Disy Posted December 3, 2019 Report Share Posted December 3, 2019 [owner-record] [/owner-record] имею ввиду.. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.