Регистрация
Вход через соцсети
Восстановление пароля

Как показать количество переходов по ссылке?

Новый топик
08.08.2012, 14:31
Ответить | Цитировать
Dima

Зарегистрирован:
2010-05-10
Сообщений: 5

Нужно сделать свой каталог тематических сайтов
bonsheri.ru/sajty-o-sobakah/informacionnyie-saity/

Как показать количество переходов по ссылке?
то есть нужно отобразить рядом с ссылкой количество переходов по ней.

выводятся сайты только списком по 10 шт.
Спасибо за помощь.
08.08.2012, 15:53
Ответить | Цитировать
Алексей
TrueCreation
Алексей

Зарегистрирован:
2011-08-01
Сообщений: 1

Я бы добавил туда поле "количество переходов".
А после клика делал бы аякс запрос, который бы обращался к разделу с шаблоном и передавал бы ссылку.
А в шаблоне уже плюсовал бы данные по переходу ищя необходимую ссылку.
После аяка переход по href'у.
11.08.2012, 19:18
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Рас это каталог то попробуйте использовать редирект совместно

Первый вариант:
Кликая по ссылке вы попадаете в "Отображение объекта"
где в свою очеред насроен редерект на необходимый сайт

Вверху страници "Отображение объекта" вы вставляете данный код
"; $db->query("UPDATE `Message{$classID}` SET `visited`=`visited`+1 WHERE `Message_ID`=$f_RowID"); echo "

Логика:
Таким образом при посещение "Отображение объекта" счетчик будет увелличиваться на 1 за переход, после чего его будет переадрисовывать на необходимую вам страницу. В придачу перед переходом можно поставить какую нибудь рекламу.

Второй вариант:
Создайте компанент с формой
Код:
<form name='adminForm' enctype='multipart/form-data' method='post' action='".$SUB_FOLDER.$HTTP_ROOT_PATH."add.php'>
<input name='cc' value='$cc' type='hidden'>
<input name='sub' value='$sub' type='hidden'>
<input name='catalogue' value='$catalogue' type='hidden'>
<input name='posting' value='1' type='hidden'>
<input name='f_BackLink' value='$backlink' type='hidden'>
<input name='f_Object_Sub_Class_ID' value='$scID' type='hidden'>
<input name='f_Object_ID' value='$objID' type='hidden'>
<input name='f_Object_Author_ID' value='$userID' type='hidden'>
<input name='f_Object_voter_ID' value='".$current_user['User_ID']."' type='hidden'>
<input type='submit' name='visit' value='Название сайта'>
</form>


Системные настройки:
Код:
global $db, $current_user;
$scID = (int)$scID;
$objID = (int)$objID;
$userID = (int)$userID;
$recNum = 0;

$visit = 0;
$user_visit = 0;

if($scID && $objID) {
$visit = $db->get_var("SELECT SUM(visit) FROM Message".$cc_env['Class_ID']."
WHERE Object_Sub_Class_ID=".$scID."
AND Object_ID=".$objID."");
}
if($userID) {
$user_vis = $db->get_row("SELECT COUNT(*) AS visitCount, SUM(visit) AS visitSum FROM Message".$cc_env['Class_ID']."
WHERE Object_Author_ID=".$userID."", ARRAY_A);
if($user_vis['visitSum'] && $user_rat['visitCount']) $user_visit = ceil($user_vis['visitSum']/$user_vis['visitCount']);
}


Действие после добавления объекта
Код:
";
#redirection section
ob_end_clean();
if($_POST[f_BackLink]) $goBackLink = $f_BackLink;
else $goBackLink = $SUB_FOLDER."/";
header("Location: 'Ссылка на ваш сайт'");
die();
echo "


Ссылка на сайт
".s_list_class(номер_раздела, номер_компанента_в_разделе, "&scID=$cc&objID=$f_RowID&userID=$f_UserID&backlink=".urlencode(htmlspecialchars($GLOBALS[client_url]))."", true)."

Колличество переходов
".(int)s_list_class(номер_раздела, номер_компанента_в_разделе, "&scID=$cc&objID=$f_RowID&showWeight=1", true)."

Добавьте ваш компанент в какойнить фиктивный раздел или куда вам угодно
после чего впишите номер_раздела, номер_компанента_в_разделе в соответствующие места кода

Логика:
В данном примере вы создали форму которая при клике добавляет к переменной visit +1 и вас перебрасывает на сайт указанный в Действие после добавления объекта

Достоинства и недостатки:
Первый вариант:
+ малый размер кода
+ добовляет +1 к полю в базе данных
+ очень легко редактировать в административной панели (редактирование обьекта)
- лишний переход с переадрисацией

Второй вариант:
+ быстрый переход без переадрисаций
- большой код (дополнительный компанент)
- сложно редактировать в административной панели (каждый переход новый объект)
- еще одна таблица для базы данных (увеличение размера базы данных)
- Это прототип и он может не работать я набрасал не проверяя.

P.S.: Данные решения я не придумывал (зачем изобретать колесо). Я всеголиш их подогнал под нештатную ситуацию

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
14.08.2012, 14:14
Ответить | Цитировать
Dima

Зарегистрирован:
2010-05-10
Сообщений: 5

Спасибо - буду пробывать
198 196 2012-08-14 14:14:31 12482
Описание проекта