KirKMS Опубликовано 15 ноября, 2019 Жалоба Поделиться Опубликовано 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 Ссылка на комментарий Поделиться на другие сайты Поделиться
KirKMS Опубликовано 15 ноября, 2019 Автор Жалоба Поделиться Опубликовано 15 ноября, 2019 Пока не могу разобраться где запускается функция update Ссылка на комментарий Поделиться на другие сайты Поделиться
00vlad Опубликовано 15 ноября, 2019 Жалоба Поделиться Опубликовано 15 ноября, 2019 12 часов назад, Kir KMS сказал: Пока не могу разобраться где запускается функция update Ты много чего тут забыл добавить Ссылка на комментарий Поделиться на другие сайты Поделиться
Klaus Опубликовано 16 ноября, 2019 Жалоба Поделиться Опубликовано 16 ноября, 2019 18 часов назад, 00vlad сказал: Ты много чего тут забыл добавить И что он забыл ещё? Ссылка на комментарий Поделиться на другие сайты Поделиться
LifeGold Опубликовано 16 ноября, 2019 Жалоба Поделиться Опубликовано 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 Ссылка на комментарий Поделиться на другие сайты Поделиться
Klaus Опубликовано 28 ноября, 2019 Жалоба Поделиться Опубликовано 28 ноября, 2019 (изменено) Все сделал, а просмотры не зачисляются... На всякий случай сделайте бекап! Я еще только начинающий) В 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> Изменено 9 июля, 2021 пользователем Stark98 1 1 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
vseti1994 Опубликовано 29 ноября, 2019 Жалоба Поделиться Опубликовано 29 ноября, 2019 8 часов назад, Stark98 сказал: Никто и спасибо не сказал... дай базу данных и в таблице поставит КОЛИЧЕСТВО ПРОСМОТРОВ ЗАПИСИ Ссылка на комментарий Поделиться на другие сайты Поделиться
Klaus Опубликовано 30 ноября, 2019 Жалоба Поделиться Опубликовано 30 ноября, 2019 13 часов назад, vseti1994 сказал: дай базу данных и в таблице поставит КОЛИЧЕСТВО ПРОСМОТРОВ ЗАПИСИ Заходим в базу данных и в таблице _wall добавить новое поле views тип bigint(20) Зайти в таблицу _communities_wall и добавить поле views тип bigint(20) Ссылка на комментарий Поделиться на другие сайты Поделиться
Disy Опубликовано 3 декабря, 2019 Жалоба Поделиться Опубликовано 3 декабря, 2019 Баг с $tpl->set('{views-num}', $row_wall['views'] ? $row_wall['views'] : '0'); Так как нолик он и остается на стене если обновить страницу запись в базу вроде как происходит, но вывода нет.. Ссылка на комментарий Поделиться на другие сайты Поделиться
LifeGold Опубликовано 3 декабря, 2019 Жалоба Поделиться Опубликовано 3 декабря, 2019 Насколько я понял просмотрев код. Она срабатывают только на странице других пользователей, если смотреть свою стену, просмотров не добавиться. Ссылка на комментарий Поделиться на другие сайты Поделиться
Disy Опубликовано 3 декабря, 2019 Жалоба Поделиться Опубликовано 3 декабря, 2019 1 час назад, muller сказал: Насколько я понял просмотрев код. Она срабатывают только на странице других пользователей, если смотреть свою стену, просмотров не добавиться. в [owner-record]onMouseOver="WallViews({rec-id});"[/owner-record] ковычки убери) Ссылка на комментарий Поделиться на другие сайты Поделиться
Disy Опубликовано 3 декабря, 2019 Жалоба Поделиться Опубликовано 3 декабря, 2019 [owner-record] [/owner-record] имею ввиду.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения