Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Автоматический текстовый слайдер с паузой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dcc0
Отправлено: 22 Апреля, 2015 - 16:08:58
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




За первую реализацию меня на habr-e заминусовали и публиковать там вторую часть уже смысла нет, опять будут ругаться. Но не хочется, чтобы наработка пропала. Материал ниже является учебным, но не претендует ни на что (верю, что может кому-то пригодиться). Если администраторы сочтут материал приемлемым для занесения в раздел "уроки" или "статьи", я не против.

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


Постановка задачи.
1. Выводить записи на главной странице. Первой должна выводиться последняя запись, сделанная администратором.
2. Автоматически перелистывать. Зациклить: с последней записи должен быть переход на первую страницу.
3. Возможность перехода вручную.
4. Понятные человеку урлы/ссылки (ЧПУ) - названия файлов должны кратко отражать суть записи (транслитерация).
Названия могут совпадать.
5. Пауза между автоматическим перелистыванием должна быть такой, чтобы человек успевал прочитать статью.
6. Паузы должны высчитываться налету или высчитываться при добавлении записи администратором.
7. Дополнительно: возможность остановить переход совсем.

Для шестого пункта предпочтителен второй вариант с вычислением времени при добавлении записи.
Средства реализации: PHP и файлы, разметка HTML5 и немного анимации с CSS3. Перезагрузка страницы будет происходить во фрейме iframe - псевдо-аякс.

Реализация
Для обновления фрейма используется тег
CODE (html):
скопировать код в буфер обмена
  1. <source lang="html">
  2. <meta http-equiv="Refresh" content="<?=$my_time;?>; URL=index.php?p=<?=--$p?>&<?=$entry[0]?>"/>

Для перехода по страницам инкремент/декремент - переменная p.
my_time - хранит паузу. Данные о количестве всех записей хранятся в файле allcount.dat
Для ЧПУ делаем отдельное поле, назовем его заголовок.


Вариативный псевдокод для файла с панелью администратора.
Под вариативным псевдокодом понимается то, что задача однозначно может быть реализована, но с возможными вариациями:

Админка
Спойлер (Отобразить)



Вывод для пользователя

Спойлер (Отобразить)

P.S. Если отказаться от ЧПУ, то можно отказаться и от glob.


Конкретная реализация, но с отступлением (писал уже после псевдокода) и без некоторых функций, чтобы было понятней.

index.php - пользовательская страница
Спойлер (Отобразить)


Директории с базой у меня bd/ и для админки ad/

Админка - ad/index.php . В ней два куска - форма и обработчик:

Спойлер (Отобразить)


Спойлер (Отобразить)


Прошу только не писать про MySQL и целесообразность, интересует именно идея и на файлах.

(Отредактировано автором: 22 Апреля, 2015 - 17:19:09)



-----
Март 2021. Бросил программирование
 
 Top
ShniderHost
Отправлено: 21 Мая, 2015 - 16:53:30
Post Id



Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Идея вполне интересная
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Пользовательские функции »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB