Мини движок на PHP для вывода данных из базы AMM в HTML

Описание: Вопросы, связанные с каталогизатором фильмов All My Movies
Модераторы: datasource, Автор

GhOsT_MZ2
Пользователь
GhOsT_MZ2
Пользователь
Репутация: 0
С нами: 14 лет 2 месяца

Сообщение #61 GhOsT_MZ2 » Вт января 19, 2010 10:33 pm

ок. Тогда сначала нужно сделать так, чтобы страница грузилась полностью с одного файла. То есть, не должно быть фреймов и процего бреда.
Тут тебя подстережет 2 проблемы:
1) Верстка... Вот тут будет тяжело..
2) Собрать все в кучу, но радует, что код твой и ты уже знаешь что откуда идет... Но все равно рутина...

Как только это сделаешь, можно смело начинать самое ответственное - скрещивание с AJAX)
В итоге будет все красиво, при выборе актера или фильма страница не будет перезагружаться, просто будет подгружаться необходимая информация, а такая вещь, как список будет неизменным...
Потом можно будет и список получать с помощью AJAX, например из файла поиска, который будет выдавать и список актеров и список фильмов... При пустом запросе - полный список, а при поиске - то что нужно...
И главное - не будет путаницы в файлах... а то там же хрен поймешь что где))

ynkas M
Опытный пользователь
Аватара
ynkas M
Опытный пользователь
Репутация: 236
С нами: 15 лет 9 месяцев
Откуда: Россия, Москва

Сообщение #62 ynkas » Вт января 19, 2010 10:42 pm

Мда...
Расписано красиво, но я чувствую времени займет кучу...
Переделывать придется практически все заного, изначально код писал частями и больше для тестов, потом кое как все это склеил и получилась такая каша как сейчас...
Занялся бы, но к сожалению нет времени, вот если бы не ленился и писал пояснения было бы проще, а так приходится ковырять и вспоминать где, что и зачем...
В общем попробую, если быстро пойдет дело скомпоную :?

GhOsT_MZ2
Пользователь
GhOsT_MZ2
Пользователь
Репутация: 0
С нами: 14 лет 2 месяца

Сообщение #63 GhOsT_MZ2 » Вт января 19, 2010 11:01 pm

Я заметил что там каша... Благо скрипты простые... Но, есть один плюс, у тебя много "размазано" и дублировано, поэтому выглядит страшно...
На практике такой простой движок можно сделать в нескольких файлах:
index.php - основная страница, например со списком фильмов и информацией о фильме;
actor.php - страница описания актера со списком чего-ибо (или фильмы актера, которые есть в базе, или список актеров (хотя это не разумно));
Хотя, эти файлы можно и объединить, но будет громоздко...
Далее идут файлы для удобства:
Визуальные (подключаются в определенном месте скрипта):
header.php - отрисовывает верхушку страницы, которая одинаковая на всех страницах;
footer.php - аналог предыдущего, только для низа страницы;
style.css - само собой, без этого никуда)
+ картинки и различные внешние JS-скрипты...

Функциональные (первый подключается вначале каждого скрипта, описанного выше, а остальные - в init.php):
init.php - выполняет инициализацию скрипта, например подключение к БД, подключение других модулей;
function.php - содержит используемые более одного раза куски кода, представляющие из себя функции;
config.php - опционально. Содержит ряд настроек скрипта, что делает его более гибким;

Приведя твой скрипт к такой структуре, будет все удобно и понятно, человек, открываший его, включая тебя, будет знать что и где искать...
Если добавить работу через AJAX, то появится еще 1 файл - например get.php, который будет делать выборки и "выдавать" нужную информацию. За счет него такие файлы, как index.php и actor.php значительно "похудеют".


На мой взгляд, достаточно оптимальная структура, главное все сделать продуманно и максимально гибко...
В более сложных проектах файлов конечно же больше, как основных, так и вспомогательных. Вспомогательные как правило разделены на различные файлы, взависимости от их цели...

ynkas M
Опытный пользователь
Аватара
ynkas M
Опытный пользователь
Репутация: 236
С нами: 15 лет 9 месяцев
Откуда: Россия, Москва

Сообщение #64 ynkas » Пт января 22, 2010 8:28 pm

В общем переделал, теперь работает в 2х файлах (index.php и person.php) с подключаемыми функциями, без фреймов.
Список пришлось перенести вправо, так как в фрейме он подгружался постепенно и было незаметно.
Немного подправил логику вывода...
Фильмография актера выводится разборчиво
Проблема с прокруткой пока осталась
Проблема с ограничением пока осталась

GhOsT_MZ2
Пользователь
GhOsT_MZ2
Пользователь
Репутация: 0
С нами: 14 лет 2 месяца

Сообщение #65 GhOsT_MZ2 » Сб января 23, 2010 4:15 am

Не плохо было бы добавить в CSS свойство overflow: scroll-y для #coolmenu, чтобы отображалась полоса прокрутке в списке фильмов, а то до низа списка какбы не добраться.

ynkas M
Опытный пользователь
Аватара
ynkas M
Опытный пользователь
Репутация: 236
С нами: 15 лет 9 месяцев
Откуда: Россия, Москва

Сообщение #66 ynkas » Сб января 23, 2010 6:11 am

хм
а ты в каком браузере смотришь?))
У меня в IE8 все ок))
В IE8 в режиме совместимости глючат эффекты изображений, но прокрутка есть...

и для дива со списком стоит так

Код: Выделить всё

<div style="height:658px;overflow-x:auto;overflow-y:visible;">

GhOsT_MZ2
Пользователь
GhOsT_MZ2
Пользователь
Репутация: 0
С нами: 14 лет 2 месяца

Сообщение #67 GhOsT_MZ2 » Сб января 23, 2010 3:23 pm

Смотрю в FF и после добавление того свойства, про которое говорил, все стало нормально.

ynkas M
Опытный пользователь
Аватара
ynkas M
Опытный пользователь
Репутация: 236
С нами: 15 лет 9 месяцев
Откуда: Россия, Москва

Сообщение #68 ynkas » Сб января 23, 2010 3:49 pm

Поправил )
Что с аяксом?)

GhOsT_MZ2
Пользователь
GhOsT_MZ2
Пользователь
Репутация: 0
С нами: 14 лет 2 месяца

Сообщение #69 GhOsT_MZ2 » Сб января 23, 2010 4:03 pm

В Opera 9.26 тоже не работало. Изменило ситуацию:
<div id="coolmenu" style="overflow: scroll; height: 100%;">

Насчет AJAX. Качаешь файлик ajax.js и подключаешь его.
Ячейке таблицы, где находится информация о фильме, присваиваешь ID, например, movie_info
Ссылку на фильм в списке делаешь такого вида:
javascript:show_movie(id)

Сама функция выглядит примерно так:

Код: Выделить всё

function movie_desc(id) {
    var ajax = new new_ajax();
    //ajax.onShow('');
    var varsString = "";
    ajax.setVar("MovieID", id);
    ajax.requestFile = "blocks/right_index.php";
    ajax.method = 'GET';
    ajax.element = 'movie_info';
    ajax.sendAJAX(varsString);
}


В файле right_index.php делаешь так, чтобы выводилась только информация о фильме, без лишнего мусора. ID фильма будет передаваться GET-запросом параметром MovieID. Например, $_GET["MovieID"].

И еще, нужно скачть и подключить jQuery.js.

Скрипы:
http://www.sendspace.com/file/u1nlgd
http://www.sendspace.com/file/fptjbv

ynkas M
Опытный пользователь
Аватара
ynkas M
Опытный пользователь
Репутация: 236
С нами: 15 лет 9 месяцев
Откуда: Россия, Москва

Сообщение #70 ynkas » Сб января 23, 2010 4:48 pm

GhOsT_MZ2 писал(а):В Opera 9.26 тоже не работало. Изменило ситуацию:
<div id="coolmenu" style="overflow: scroll; height: 100%;">

но в IE появилась 2я прокрутка и снизу прокрутка...

Скрипты ща попробую прикрутить

Update
Подключил, работает
Но есть одна проблемка, можно только один раз просмотреть фильм из списка, если щелкнуть на просмотренный фильм ничего не происходит...
Это я как понял в IE происходит
Последний раз редактировалось ynkas Вт января 26, 2010 9:13 am, всего редактировалось 2 раза.

GhOsT_MZ2
Пользователь
GhOsT_MZ2
Пользователь
Репутация: 0
С нами: 14 лет 2 месяца

Сообщение #71 GhOsT_MZ2 » Сб января 23, 2010 9:11 pm

Выходит и на IE8 такая же штука с аяксом... Любопытно... Вообщем будем разбираться. Кстати, не знаю как в IE, но в Opera 9.26 карточка поиска кривовато выглядит - середина вправо немного съезжает...

GhOsT_MZ2
Пользователь
GhOsT_MZ2
Пользователь
Репутация: 0
С нами: 14 лет 2 месяца

Сообщение #72 GhOsT_MZ2 » Сб января 23, 2010 10:14 pm

Вообщем "украл" с одного движка трекера кусок JS-кода) Пашет в IE6, Opera 9.26, FF 3.0.17.

Код: Выделить всё

  function movie_desc(id) {
    (function($){
      $.get(
        "blocks/right_index.php?MovieID=" + id,
        {},
        function(data) {
          $("#movie_info").empty();
          $("#movie_info").append(data);
        }
      );
    })(jQuery);
  }

Riemann
Пользователь
Riemann
Пользователь
Репутация: 0
С нами: 15 лет 1 месяц

Сообщение #73 Riemann » Сб января 23, 2010 10:48 pm

Граждане, сообщайте как будут промежуточные варианты с новыми вариантами скриптов, для скачивания. 1-й пост обновляется, но пока результата не видно.

ynkas M
Опытный пользователь
Аватара
ynkas M
Опытный пользователь
Репутация: 236
С нами: 15 лет 9 месяцев
Откуда: Россия, Москва

Сообщение #74 ynkas » Сб января 23, 2010 11:06 pm

Отлично, спасибо за код
Добавлю что работает в IE7, IE8, Safari
Осталось навести марафет и выложу

Снеговик
Пользователь
Снеговик
Пользователь
Репутация: 0
С нами: 14 лет 2 месяца

Сообщение #75 Снеговик » Сб января 23, 2010 11:14 pm

ждем с нетерпением)))))


Вернуться в «All My Movies»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 81 гость