|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Илья Спесивцев Администратор
Зарегистрирован: 26.02.2008 Сообщения: 703 Откуда: Техподдержка
|
Добавлено: 2008-02-29 12:23 pm Заголовок сообщения: Добавление вкладки Бестселлеры |
|
|
1. Переименовать шаблон.
2. В header.php после строки:
Код: | //Здесь, если нужно, можно переопределить javascript-функции из index.php |
добавить:
Код: | var pagescontent = new Array('page:0','page:1','page:2','page:3');
var pagesrealcontent = new Array('page:0','','','');
var pagestitle = new Array(SITE_TITLE, SITE_TITLE + ": Поиск",SITE_TITLE,SITE_TITLE);
var MyPages = new Pages(
Array("CatalogPage", "SearchPage","FilmsPage", "StartPage"),
Array("Каталог", "Поиск", "Фильмы", "<span style='color:#887700;'>Бестселлеры</span>"),
Array("if (document.getElementById('backbox')) document.getElementById('backbox').innerHTML = ''","if (document.getElementById('backbox')) document.getElementById('backbox').innerHTML = ''", "", "", ""),
"PageSelector",
"MyPages"
)
<?php if (isset($_GET['all_bestsellers']) || ($user['Login']=='guest')) { ?>
function updateUI(newLocation,
historyData) {
action = newLocation.split(":");
for (i=0;i<3;i++){
if (pagesrealcontent[i].length && (pagesrealcontent[i]==newLocation)){
document.title = pagestitle[i];
MyPages.select(i);
return;
}
}
switch (action[0]){
case '':
window.location = "#" + pagescontent[3];
break;
case 'page':
document.title = pagestitle[i];
MyPages.select(action[1]);
pagescontent[action[1]] = newLocation;
pagesrealcontent[action[1]] = newLocation;
setCookie ("page"+action[1], newLocation);
break;
case 'film':
DrawFilm(action[1],action[2],action[3]);
pagescontent[2] = newLocation;
pagesrealcontent[2] = newLocation;
setCookie ("page2", newLocation);
break;
}
}
<?php } ?>
|
3. В main.php после строки:
Код: | <!-- /Главное меню -->
|
добавить:
Код: | <div id="StartPage" style="display:none;padding:10px;">
<div id="StartBox" style='margin1:10px;'>
<?php
$result2 = mysql_query("SELECT FilmID, count(*) as c FROM hits WHERE DateHit>(NOW()-INTERVAL 70 DAY) GROUP BY FilmID");
$filmMonthPopularity = array();
while ($result2 && $field2 = mysql_fetch_assoc($result2)){
$filmMonthPopularity[$field2["FilmID"]] = $field2["c"];
}
$sql = "SELECT ID,
Name,
OriginalName,
Year,
Poster,
TypeOfMovie
FROM films WHERE films.Hide=0";
$result = mysql_query($sql);
while ($result && $field = mysql_fetch_assoc($result)){
$films[$field['ID']] = $field;
}
$result2 = mysql_query("SELECT FilmID, GenreID FROM filmgenres");
$filmgenres = array();
while ($result2 && $field2 = mysql_fetch_assoc($result2)){
$filmgenres[$field2["FilmID"]][] = $field2["GenreID"];
}
$result2 = mysql_query("SELECT FilmID, CountryID FROM filmcountries");
$filmcountries = array();
while ($result2 && $field2 = mysql_fetch_assoc($result2)){
$filmcountries[$field2["FilmID"]][] = $field2["CountryID"];
}
$result2 = mysql_query("SELECT ID, Name FROM genres");
$genres = array();
while ($result2 && $field2 = mysql_fetch_assoc($result2)){
$genres[$field2["ID"]] = $field2["Name"];
}
$result2 = mysql_query("SELECT ID, Name FROM countries");
$countries = array();
while ($result2 && $field2 = mysql_fetch_assoc($result2)){
$countries[$field2["ID"]] = $field2["Name"];
}
$optionSkipDownloaded = (isset($_GET['all_bestsellers']))? false : true;
$downloadedFilms = array();
if ($optionSkipDownloaded) {
$result2 = mysql_query("SELECT FilmID FROM hits WHERE UserID={$user['ID']}");
while ($result2 && $field2 = mysql_fetch_assoc($result2)){
$downloadedFilms[$field2["FilmID"]] = $field2["FilmID"];
}
}
//calculate categories
$categoryIndex = array();
define('CATEGORY_SERIES',1);
define('CATEGORY_COMEDY',2);
define('CATEGORY_ACTION',3);
define('CATEGORY_DOCUMENTARY',4);
define('CATEGORY_ANIME',5);
define('CATEGORY_ANIMATION',6);
define('CATEGORY_HORROR',7);
define('CATEGORY_FANTASY_SCFI',8);
define('CATEGORY_DRAMA',9);
$categoryNames = array(
CATEGORY_SERIES => 'Сериалы',
CATEGORY_COMEDY => 'Комедии',
CATEGORY_ACTION => 'Боевики',
CATEGORY_DOCUMENTARY => 'Документальные',
CATEGORY_ANIME => 'Аниме',
CATEGORY_ANIMATION => 'Мультфильмы',
CATEGORY_HORROR => 'Ужасы',
CATEGORY_FANTASY_SCFI => 'Фантастика/фэнтези',
CATEGORY_DRAMA => 'Драма/мелодрама'
);
foreach ($films as $id => $film) {
$weight = isset($filmMonthPopularity[$id])? $filmMonthPopularity[$id] : 0;
if (!isset($downloadedFilms[$id])){
if ($film['TypeOfMovie']=='Худ. телесериал') {
$categoryIndex[CATEGORY_SERIES][$id] = $weight;
} elseif (@in_array(23, $filmgenres[$id])) {
$categoryIndex[CATEGORY_DOCUMENTARY][$id] = $weight;
} elseif (@in_array(25, $filmgenres[$id])) {
$categoryIndex[CATEGORY_ANIME][$id] = $weight;
} elseif (@in_array(13, $filmgenres[$id])) {
$categoryIndex[CATEGORY_ANIMATION][$id] = $weight;
} elseif (@in_array(4, $filmgenres[$id]) && !@in_array(3, $filmgenres[$id]) && !@in_array(7, $filmgenres[$id])) {
$categoryIndex[CATEGORY_COMEDY][$id] = $weight;
} elseif ((@in_array(10, $filmgenres[$id]) || @in_array(5, $filmgenres[$id]))) {
$categoryIndex[CATEGORY_FANTASY_SCFI][$id] = $weight;
} elseif (@in_array(7, $filmgenres[$id])) {
$categoryIndex[CATEGORY_HORROR][$id] = $weight;
} elseif (@in_array(6, $filmgenres[$id]) || @in_array(3, $filmgenres[$id]) || @in_array(18, $filmgenres[$id])) {
$categoryIndex[CATEGORY_ACTION][$id] = $weight;
} elseif ((@in_array(2, $filmgenres[$id]) || @in_array(17, $filmgenres[$id])) && !@in_array(18, $filmgenres[$id])) {
$categoryIndex[CATEGORY_DRAMA][$id] = $weight;
}
}
}
$selectedFilms = array();
$categoriesWeight = array();
foreach ($categoryIndex as $categoryId => $categoryContent) {
arsort($categoryContent);
$c = 0;
foreach ($categoryContent as $id=>$weight) {
$c++;
if ($c>5) break;
@$categoriesWeight[$categoryNames[$categoryId]] += $weight;
$film = $films[$id];
$OriginalName = $film["OriginalName"];
$str = "";
for($i=0;$i<strlen($OriginalName);$i++){
$str .= "&#".ord($OriginalName{$i}).";";
}
$posters = preg_split("/(\r\n|\r|\n)/", $film["Poster"]);
$film["Poster"] = $posters[0] ? $posters[0] : "templates/{$config['template']}/images/noposter.jpg";
$film["OriginalName"] = $str;
$film["OriginalName1252"] = $OriginalName;
$thisFilmCountries = array();
if (isset($filmcountries[$id])) {
foreach ($filmcountries[$id] as $counryId) {
$thisFilmCountries[] = $countries[$counryId];
}
}
$film["countries"] = implode(" / ", $thisFilmCountries);
$selectedFilms[$categoryNames[$categoryId]][] = $film;
}
}
arsort($categoriesWeight);
$_RESULT['categories'] = $categoriesWeight;
$_RESULT['selected_films'] = $selectedFilms;
echo "<br><table border='0' width='100%' cellspacing='15'>";
foreach (array_keys($categoriesWeight) as $categoryName) {
echo "<tr>";
echo "<td colspan=5><span class='sectionheader' >$categoryName</span><br><img src='images/hr2.gif' width='327' height='1'><br><td>";
echo "</tr>";
echo "<tr>";
foreach ($selectedFilms[$categoryName] as $film) {
echo "<td align='center' width='20%' style='padding-top:10px; border: 1px dotted silver; background-color:#F5F5F5;' valign='top'>";
echo "<a href='#film:{$film['ID']}:1:0'><img width='100px' height='150px' src='{$film['Poster']}' border='0'><br><b>{$film['Name']}</b><p style='margin:2px;margin-bottom:5px;color:gray'>{$film['OriginalName']} ({$film['Year']})</p></a>";
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
if (!isset($_GET['all_bestsellers']) && ($user['Login']!='guest')) echo "<br><div style='text-align:center;color:gray'>Из списка убраны фильмы, которые вы уже качали. Чтобы просмотреть список полностью нажмите <a href='?all_bestsellers' target='_blank'>здесь</a></div>";
?>
</div>
</div> |
3. В styles.css найти строку
Код: | #CatalogPage, #SearchPage, #FilmsPage { |
и заменить ее на
Код: | #StartPage, #CatalogPage, #SearchPage, #FilmsPage { |
Последний раз редактировалось: Илья Спесивцев (2008-07-09 07:25 am), всего редактировалось 3 раз(а) |
|
Вернуться к началу |
|
PrX
Зарегистрирован: 29.02.2008 Сообщения: 1
|
Добавлено: 2008-02-29 18:57 pm Заголовок сообщения: |
|
|
Для тех кто хочет чтоб первой открывалась вкладка с фильмами а не с бестселлерами нужно в файле main.php изменить
Код: | switch (action[0]){
case '':
window.location = "#" + pagescontent[3];
|
на
Код: |
switch (action[0]){
case '':
window.location = "#" + pagescontent[0];
|
|
|
Вернуться к началу |
|
Danphil
Зарегистрирован: 29.02.2008 Сообщения: 15 Откуда: Москва
|
Добавлено: 2008-03-01 11:32 am Заголовок сообщения: |
|
|
Можно сделать чтобы новую вкладку "Бестеллеры" не видели Гости? Или допустим для них там отображалась фраза
"Только зарегистрированные пользователи могут создавать закладки.
Зарегистрируйтесь
или войдите под своим логином"
как сделанно для вкладки "Фильмы" |
|
Вернуться к началу |
|
Константин
Зарегистрирован: 29.02.2008 Сообщения: 6
|
Добавлено: 2008-03-01 11:41 am Заголовок сообщения: |
|
|
Да, у меня тоже гостю разрешено заходить и качать фильмы, а в бестселлерах показываются по-умолчанию еще не скачанные гостем фильмы, поэтому там присутствуют только самые непопулярные фильмы... |
|
Вернуться к началу |
|
Илья Спесивцев Администратор
Зарегистрирован: 26.02.2008 Сообщения: 703 Откуда: Техподдержка
|
Добавлено: 2008-03-01 13:06 pm Заголовок сообщения: |
|
|
Тогда проще заменить:
Код: | $optionSkipDownloaded = (isset($_GET['all_bestsellers']))? false : true; |
на
Код: | $optionSkipDownloaded = false;
|
и удалить внизу:
Код: | if (!isset($_GET['all_bestsellers']) && ($user['Login']!='guest')) echo "<br><div style='text-align:center;color:gray'>Из списка убраны фильмы, которые вы уже качали. Чтобы просмотреть список полностью нажмите <a href='?all_bestsellers' target='_blank'>здесь</a></div>"; |
|
|
Вернуться к началу |
|
Instruktor
Зарегистрирован: 29.02.2008 Сообщения: 89
|
Добавлено: 2008-03-03 08:26 am Заголовок сообщения: |
|
|
Дайте пожалуйста разъяснение логики работы мода. |
|
Вернуться к началу |
|
Илья Спесивцев Администратор
Зарегистрирован: 26.02.2008 Сообщения: 703 Откуда: Техподдержка
|
Добавлено: 2008-03-03 09:45 am Заголовок сообщения: |
|
|
vadim@m9-uz.ru писал(а): | Дайте пожалуйста разъяснение логики работы мода. |
Отбирает клики по фильмам за последние 70 дней, сортирует фильмы по группам, выводит для каждой группы наиболее популярные фильмы. |
|
Вернуться к началу |
|
жека Славин
Зарегистрирован: 09.03.2008 Сообщения: 11
|
Добавлено: 2008-03-09 23:12 pm Заголовок сообщения: |
|
|
Цитата: | Отбирает клики по фильмам за последние 70 дней, сортирует фильмы по группам, выводит для каждой группы наиболее популярные фильмы. |
проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать? |
|
Вернуться к началу |
|
Илья Спесивцев Администратор
Зарегистрирован: 26.02.2008 Сообщения: 703 Откуда: Техподдержка
|
Добавлено: 2008-03-10 08:29 am Заголовок сообщения: |
|
|
жека Славин писал(а): |
проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать? |
Не должно ничего смещаться. |
|
Вернуться к началу |
|
Diver
Зарегистрирован: 09.03.2008 Сообщения: 96
|
Добавлено: 2008-03-10 15:32 pm Заголовок сообщения: |
|
|
Илья Спесивцев писал(а): | жека Славин писал(а): |
проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать? |
Не должно ничего смещаться. |
У меня такая же проблема (смещение) в опере 9.50 beta2 (linux). В других браузерах не проверял. Пришлось отключить этот мод |
|
Вернуться к началу |
|
жека Славин
Зарегистрирован: 09.03.2008 Сообщения: 11
|
Добавлено: 2008-03-10 18:14 pm Заголовок сообщения: |
|
|
Илья Спесивцев писал(а): | жека Славин писал(а): |
проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать? |
Не должно ничего смещаться. |
можно его в отдельный файл сделать?Чтобы как модуль присоединялся или как я описывал в топике система FAQ. Только он что то не работает |
|
Вернуться к началу |
|
Илья Спесивцев Администратор
Зарегистрирован: 26.02.2008 Сообщения: 703 Откуда: Техподдержка
|
Добавлено: 2008-03-10 20:22 pm Заголовок сообщения: |
|
|
жека Славин писал(а): | Илья Спесивцев писал(а): | жека Славин писал(а): |
проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать? |
Не должно ничего смещаться. |
можно его в отдельный файл сделать?Чтобы как модуль присоединялся или как я описывал в топике система FAQ. Только он что то не работает |
Это же не плагин, а модификация. Нет никакой гарантии, что она будет работать как ожидается, тем более одновременно с другой модификацией. |
|
Вернуться к началу |
|
жека Славин
Зарегистрирован: 09.03.2008 Сообщения: 11
|
Добавлено: 2008-03-11 17:30 pm Заголовок сообщения: |
|
|
Илья Спесивцев писал(а): | жека Славин писал(а): | Илья Спесивцев писал(а): | жека Славин писал(а): |
проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать? |
Не должно ничего смещаться. |
можно его в отдельный файл сделать?Чтобы как модуль присоединялся или как я описывал в топике система FAQ. Только он что то не работает |
Это же не плагин, а модификация. Нет никакой гарантии, что она будет работать как ожидается, тем более одновременно с другой модификацией. |
так систему FAQ я отдельно написал в одтельном файлы и просто линку на него прописал |
|
Вернуться к началу |
|
Instruktor
Зарегистрирован: 29.02.2008 Сообщения: 89
|
Добавлено: 2008-03-14 10:18 am Заголовок сообщения: |
|
|
Вот от чего мне логика показалась непонятной:
Как видно мод работает с таблицей hits а у меня в ней нет ни одной записи за 2008 год, хотя внешне все функиции каталога работают.
Что за hits и отчего она перестала обновляться?
Из-за неё бестселлеры у меня совсем не бестселлеры |
|
Вернуться к началу |
|
Илья Спесивцев Администратор
Зарегистрирован: 26.02.2008 Сообщения: 703 Откуда: Техподдержка
|
Добавлено: 2008-03-14 12:30 pm Заголовок сообщения: |
|
|
Instruktor писал(а): | Вот от чего мне логика показалась непонятной:
Как видно мод работает с таблицей hits а у меня в ней нет ни одной записи за 2008 год, хотя внешне все функиции каталога работают.
Что за hits и отчего она перестала обновляться?
Из-за неё бестселлеры у меня совсем не бестселлеры |
Да, hits не заполняется при $config['hitmethod'] = 1 или 3 |
|
Вернуться к началу |
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|