Ищите сценарий создания ссылки PREV - NEXT, который будет циклически изменяться в алфавитном или числовом формате на всех страницах .php в каталоге. - PullRequest
0 голосов
/ 17 марта 2012

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

У меня есть список проектов в каталоге, к которому я обращаюсьсо страницы меню.Как только пользователь выбирает проект из меню, я действительно хотел бы добавить кнопки PREV и NEXT, чтобы позволить пользователю циклически выполнять проекты по одному, вместо того, чтобы каждый раз возвращаться на страницу меню. Конечно, я мог бы написать код ссылки, но подумал, что это будет отличная работа для скрипта.

Мне действительно нужно, чтобы он был бесконечным, поэтому, когда он достигает последнегоЕсли файл находится в каталоге, кнопка СЛЕДУЮЩАЯ все еще активна и приведет вас к первому элементу.(С первого пункта кнопка PREV должна перейти к последнему пункту)

Я искал много лет, но до сих пор не нашел ничего, что вполне справлялось бы с работой.Содержание страниц не поступает из базы данных, но я использовал некоторые базовые php-включения для блоков навигации.Мне не нужно ничего, кроме простых элементов управления NEXT и PREV, так как не будет большого количества страниц.

Любые предложения, которые наиболее ценятся.Приветствия.

1 Ответ

0 голосов
/ 17 марта 2012

Если идентификаторы числовые, это очень просто.Предполагая, что URL для отображения проекта:

http://myserver/project.php?id=3

... вам просто нужно сделать что-то вроде:

  // Sanitise user input
  $currentId = (int) $_GET['id'];

  // Calculate next/prev IDs
  $nextId = $currentId + 1;
  $prevId = ($currentId > 1) ? $currentId - 1 : 1; // Make sure the previous ID is not below 1

  // Make links
  $nextLink = "<a href=\"project.php?id=$nextId\">Next</a>";
  $prevLink = "<a href=\"project.php?id=$prevId\">Previous</a>";

Если вы делаете это на основе файлаСами имена, это немного сложнее - но только немного.Вам нужно будет получить список файлов в каталоге и использовать их вместо этого.Теперь предположим, что ваш URL выглядит следующим образом:

http://myserver/project.php?name=somefile
<?php

  // Sanitise user input
  $currentFile = basename($_GET['name']);

  // These will hold the previous/next project names
  $prev = $next = '';

  // Loop the directory until we find the current file
  $dp = opendir('.'); // Open current dir, this can be adjusted to your file structure
  while (($file = readdir($dp)) !== FALSE) {
    if (in_array($file, array('.','..')) continue; // Skip . and ..
    if ($file == $currentFile) {
      if (($file = readdir($dp)) !== FALSE) {
        $next = $file;
      }
      break;
    }
    $prev = $file;
  }
  closedir($dp);

  // Make links
  if ($next !== '') {
    $nextLink = '<a href="project.php?name='.htmlspecialchars($next).'">Next</a>';
  } else {
    // Handle no next project here
  }

  if ($prev !== '') {
    $prevLink = '<a href="project.php?name='.htmlspecialchars($prev).'">Previous</a>';
  } else {
    // Handle no previous project here
  }
...