Регистрация    Забыли пароль?        Правила форума    FAQ (читать перед созданием новой темы)
Имя   Пароль  запомнить
  
Просмотр темы
Вернуться на сайт: PHP-Fusion SF Russian Support Site

Форум поддержки PHP-Fusion SF | PHP-Fusion SF - Система Управлением Сайта | Установка и настройка системы
# 1 Тема: Изменил тип описка сайта и перестала считаться статистика.
dicoz
Пользователь

Avatar пользователя

dicoz

Любитель Fusion

Сообщений: 215
Откуда: Украина
Зарегистрирован: 19 Октября 2008, 21:16:55
Сказали спасибо 5 раз
Статус: offline
ICQ статус 248570740
Опубликовано 27 Февраля 2009, 13:32:46
Всем привет, очень нуждаюсь в вашей помощи.
Кароче расказываю почему статистика перестала считаться.
Это произошло из за того что я модифицировал search.php.
его я модил дабы поиск выводил юзера не в категорию с тем что он ишет а на сам пост, для этого я изменил код. строка ~635

echo (($subj_c!=0&&$fields!=1)?"<span style='background-color:yellow;font-weight:bold;padding-left:2px;padding-right:2px'>":""smiley."<a href='downloads.php?cat_id=".$data['download_cat']."&download_id=".$data['download_id']."' target='_blank'>".$data['download_title']."</a> - ".$data['download_filesize']." $new".(($subj_c!=0&&$fields!=1)?"</span>":""smiley."<br><br>\n";




вместо download_id вписал page_id

echo (($subj_c!=0&&$fields!=1)?"<span style='background-color:yellow;font-weight:bold;padding-left:2px;padding-right:2px'>":""smiley."<a href='downloads.php?cat_id=".$data['download_cat']."&page_id=".$data['download_id']."' target='_blank'>".$data['download_title']."</a> - ".$data['download_filesize']." $new".(($subj_c!=0&&$fields!=1)?"</span>":""smiley."<br><br>\n";






И после этих моих действий перестала считаться статистика скачиваний файла,

if (isset($download_id) && !isNum($download_id)) fallback("index.php"smiley;

if (isset($download_id) & !isset($type)) {
$res = 0;
if ($data = dbarray(dbquery("SELECT * FROM ".$db_prefix."downloads WHERE download_id='$download_id'"smiley)) {
$cdata = dbarray(dbquery("SELECT * FROM ".$db_prefix."download_cats WHERE download_cat_id='".$data['download_cat']."'"smiley);
if (checkgroup($cdata['download_cat_access'])) {
if (checkgroup($data['download_access'])) {
$res = 1;
$result = dbquery("UPDATE ".$db_prefix."downloads SET download_count=download_count+1 WHERE download_id='$download_id'"smiley;
redirect($data['download_url']);
}
}
}
if ($res == 0) redirect("index.php"smiley;
} elseif (isset($type) & isset($download_id)) {
$res = 0;
if ($data = dbarray(dbquery("SELECT * FROM ".$db_prefix."downloads WHERE download_id='$download_id'"smiley)) {
$cdata = dbarray(dbquery("SELECT * FROM ".$db_prefix."download_cats WHERE download_cat_id='".$data['download_cat']."'"smiley);
if (checkgroup($cdata['download_cat_access'])) {
if (checkgroup($data['download_access'])) {
$res = 1;
$result = dbquery("UPDATE ".$db_prefix."downloads SET download_count=download_count+1 WHERE download_id='$download_id'"smiley;




Что надо изменить в коде doqnloads.php чтобы соответсвовало моему изменеию, и все работало. Просто когда я изменил на page_id там где download_id, то все работало только в файрфоксе. а в IE было чтопопало не выходило на ссылку по нажатию на подробнее. В общем что нада в давнлоадс изменить?


--------------------
Осваиваю 3тий палец в изучении движка, нечего их всего 5 smiley
<hr>
Чем больше я узнаю, тем больше понимаю что нечего не знаю (с)
^ наверх ^ 248570740
# 2  
dicoz
Пользователь

Avatar пользователя

dicoz

Любитель Fusion

Сообщений: 215
Откуда: Украина
Зарегистрирован: 19 Октября 2008, 21:16:55
Сказали спасибо 5 раз
Статус: offline
ICQ статус 248570740
Опубликовано 28 Февраля 2009, 23:13:05
Как извесно в движке при добавлении материала есть графа для ссылки, но если
их много то мы их помещаем в тег <url></url> и пишем в низу полной версии материала.
Но если мы так делаем то когда юзер использует поиск по вашему сайту, то и находит то что
искал его кидает куда попало в категорию с этим материалом и уж не как не в тему, это потому
что поисковик настроен не на то чтобы отправить вас в соответствующую тему при клике, а на то
чтобы скачать файл по ссылке которую мы не написали в графу для ссылки при добавлении материала.

Цель:
Сделать так чтобы использую поиск по сайту при клике по ссылке, юзер попадал в полную версию
материала который он ищет, как при надатии на кнопку "Подробнее".

Сделать так чтобы модификация работала во всех браузерах без побочных эффектов.

Файлы которые для этого надо можияицировать:
/downloads.php
/search.php

Итак
По умолчанию когда мы используем поиск при нажатии на искомую ссылку материала она выглядит
следующим образом. http://allwow.ru/downloads.php?cat_id=11&download_id=55 (это пример).
А поскольку в графу для ссылки на файл мы нечего не добавляли, то и ссылка ведет нас в некуда.
Некоторые броузеры нас кидают в категорию с этим файлом, соответственно cat_id=11 ,
а некоторые типа IE кидают на главную страницу.
Нам необходимо обойти этот маленький недочет путем редактирования файла /search.php.
открываем его текстовым редактором и в строке ~636 видим следующее.

<a href='downloads.php?cat_id=".$data['download_cat']."&page_id=".$data['download_id']."' target='_blank'>".$data['download_title']."</a>






меняем этот код на этот

<a href='downloads.php?page_id=".$data['download_id']."' target='_blank'>".$data['download_title']."</a>






Чего мы этим добились? - теперь ссылка будет вести нас конкретно в материал а не куда попало и выглядеть будет так
http://allwow.ru/downloads.php?page_id=55

Наша модификация создала побочный эффект счетчика который считает колличество просмотров темы (скачиваний)
поскольку чкачивание материала ведеться по подсчету обращения к
download_id а не к page_id - поэтому мы открываем файл /downloads.php и добавляем правило подсчета статистики для
page_id.
Делаем мы это в строке ~183 сразу под таким вот изложением
$cont=$data['download_description_p'];




добавляем строку
$result = dbquery("UPDATE ".$db_prefix."downloads SET download_count=download_count+1 WHERE download_id='$page_id'"smiley;






выглядет все в совокупности так.

if (isset($page_id)){
$result = dbquery("SELECT * FROM ".$db_prefix."downloads WHERE download_id='$page_id'"smiley;
if (dbrows($result) != 0) {
$data = dbarray($result);
opentable($data['download_title']);
if ($data['download_description_p']==""smiley{
$cont=$data['download_description'];
}else{
$cont=$data['download_description_p'];
$result = dbquery("UPDATE ".$db_prefix."downloads SET download_count=download_count+1 WHERE download_id='$page_id'"smiley;
}






Мы добились подсчета статистики для page_id.

Все теперь поиск работает так как нам надо и статистика считаеться тоже правильно.
З.Ы. Я 3 дня над этим ломал голову. Так как я не программист (савсем не он просто находчивый), но все работает значит все правильно,
но если что-то не так, то напишите я мог сделать какуюто незначительную ошибку, поправьте меня.


--------------------
Осваиваю 3тий палец в изучении движка, нечего их всего 5 smiley
<hr>
Чем больше я узнаю, тем больше понимаю что нечего не знаю (с)
^ наверх ^ 248570740
Перейти на форум:


95,289,904 уникальных посетителей
сейчас: 29 Апреля 2024, 18:11:11
Генерация страницы: 0.06 сек.