Сообщений: 215 Откуда: Украина Зарегистрирован: 19 Октября 2008, 21:16:55 Сказали спасибо 5 раз Статус: offline
ICQ статус
Опубликовано 27 Февраля 2009, 13:32:46
Всем привет, очень нуждаюсь в вашей помощи.
Кароче расказываю почему статистика перестала считаться.
Это произошло из за того что я модифицировал search.php.
его я модил дабы поиск выводил юзера не в категорию с тем что он ишет а на сам пост, для этого я изменил код. строка ~635
И после этих моих действий перестала считаться статистика скачиваний файла,
if (isset($download_id) && !isNum($download_id)) fallback("index.php"
if (isset($download_id) & !isset($type)) {
$res = 0;
if ($data = dbarray(dbquery("SELECT * FROM ".$db_prefix."downloads WHERE download_id='$download_id'")) {
$cdata = dbarray(dbquery("SELECT * FROM ".$db_prefix."download_cats WHERE download_cat_id='".$data['download_cat']."'");
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'"
redirect($data['download_url']);
}
}
}
if ($res == 0) redirect("index.php"
} elseif (isset($type) & isset($download_id)) {
$res = 0;
if ($data = dbarray(dbquery("SELECT * FROM ".$db_prefix."downloads WHERE download_id='$download_id'")) {
$cdata = dbarray(dbquery("SELECT * FROM ".$db_prefix."download_cats WHERE download_cat_id='".$data['download_cat']."'");
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'"
Что надо изменить в коде doqnloads.php чтобы соответсвовало моему изменеию, и все работало. Просто когда я изменил на page_id там где download_id, то все работало только в файрфоксе. а в IE было чтопопало не выходило на ссылку по нажатию на подробнее. В общем что нада в давнлоадс изменить?
-------------------- Осваиваю 3тий палец в изучении движка, нечего их всего 5
<hr>
Чем больше я узнаю, тем больше понимаю что нечего не знаю (с)
Сообщений: 215 Откуда: Украина Зарегистрирован: 19 Октября 2008, 21:16:55 Сказали спасибо 5 раз Статус: offline
ICQ статус
Опубликовано 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 видим следующее.
Чего мы этим добились? - теперь ссылка будет вести нас конкретно в материал а не куда попало и выглядеть будет так
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'"
выглядет все в совокупности так.
if (isset($page_id)){
$result = dbquery("SELECT * FROM ".$db_prefix."downloads WHERE download_id='$page_id'"
if (dbrows($result) != 0) {
$data = dbarray($result);
opentable($data['download_title']);
if ($data['download_description_p']==""{
$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'"
}
Мы добились подсчета статистики для page_id.
Все теперь поиск работает так как нам надо и статистика считаеться тоже правильно.
З.Ы. Я 3 дня над этим ломал голову. Так как я не программист (савсем не он просто находчивый), но все работает значит все правильно,
но если что-то не так, то напишите я мог сделать какуюто незначительную ошибку, поправьте меня.
-------------------- Осваиваю 3тий палец в изучении движка, нечего их всего 5
<hr>
Чем больше я узнаю, тем больше понимаю что нечего не знаю (с)