uForum.uz

uForum.uz (https://uforum.uz/index.php)
-   Веб программирование (https://uforum.uz/forumdisplay.php?f=171)
-   -   PHP. Let's exchange our knowledge (https://uforum.uz/showthread.php?t=836)

JIN 03.11.2009 19:53

Доброе время суток! Дорогие мастера сайтов помогите написать скрипть! Ни дано написал Админку для своего сайта все работает хорошо, ну вот не могу написать скрипт разделитель статьи по страницам! Спасибо заранее!!!

JackDaniels 04.11.2009 04:25

Цитата:

Сообщение от JIN (Сообщение 295517)
Доброе время суток! Дорогие мастера сайтов помогите написать скрипть! Ни дано написал Админку для своего сайта все работает хорошо, ну вот не могу написать скрипт разделитель статьи по страницам! Спасибо заранее!!!

Например, за минуту в Яндексе —

PHP код:

function PagePrint($variable) {
global 
$beginPage$endPage;//------Объявляем глобальные переменные, отвечающие за ссылку на первую и последнюю страницу
$href='';//-----Перемменная содержащая в себе  постраничный   вывод 
$separator=' ';//-----Переменная задающая разделитель между ссылками, по умолчанию пробел
$style='style="text-decoration:none" style="color:orange" style="font-weight:bold"';//-------Задаёт стиль текущей страницы
$stylePage='style="text-decoration:none" style="color:blue" style="font-weight:bold"';//------Задаёт стиль ссылки на первую и последнюю страницу
   
if(is_array($variable))://------Проверяем тип array
   #Перебираем массив и присваиваем $number - количество записей, $start - точка извлечения, $pageCount - количество записей, $andere - другие свойства ссылки, $class - стиль для ссылок, $showLink - количество ссылок на странице
   
list($number$start$pageCount$andere$class$showLink)=$variable;
   
#Обрабатывам $start
     
if(empty($start) && !is_int($start) && !is_numeric($start)) $start=0;
     else 
$start=$start;
     
#Обрабатываем $number
     
if(empty($number) && !is_int($number) && !is_numeric($number)) $number=10;
     else 
$number=$number;


     
$page=(($start/10)+1);//-------Рассчитывавем номер страницы
     
$count=ceil($pageCount/$number);//------Количество страниц 

       #Вывод сслыки на первую и последнюю страницы
        
if($count!==1) :
        
$beginPage="<a href="".getenv(' PHP _SELF')."?start=0".$andere."" ".$stylePage.">перв</a>";//--------Первая страница
        
$endPage="<a href="".getenv(' PHP _SELF')."?start=".(($count-1)*10).$andere."" ".$stylePage.">посл</a>";//-----Последняя страница
        
else: FALSE;
        endif;


         if(
$pageCount==10): return False;
         else:
         
# Постраничный   вывод 
         
$begin=$page intval($showLink/2);//------Определяет номер страницы с которой выводить
            
for($j=0$j<=$showLink$j++):
            
$i=$begin+$j;//------Номер страницы
            #Защищает скрипт если $<0, будет до тех пор увеличивать пока $showPage=1
              
if($i<1):
              
$showLink++;
              continue;
              endif;
                
# Постраничный   вывод 
                
if($i>$count) break;//-----Защита если количество $i>возможных записей
                  
if($i==$page$href=$href." <a ".$style." >".$i."</a>";//------Вывод текущей страницы
                  
else $href=$href." <a href="".getenv('PHP_SELF')."?start=".(($i - 1)*10).$andere."" ".$class.">".$i."</a> ";//------Вывод следующих страниц
           
endfor;
         return 
$href;
         endif;
   endif;


Цитата:

Входным параметром функции является массив из шести элементов:

$number - количество отображаемых сообщений на странице
$start - точка извлечения из базы данных, т.е номер сообщения с которого начинается зивлечение данных
$pageCount - общее количество записей, т.е сколько всего содержит база записей
$andere - другие параметры ссылки, будь то новые переменные или что-либо ещё
$class - данный параметр задаёт внешний вид ссылок, т.е ссылки на страницы
$showLink - количество ссылок на странице

Первый параметр может быть передан через метод @$_GET['number'], только в том случае, если Вы захотите чтобы пользователь мог изменять количество сообщений на странице.
Второй параметр обязательно передаётся в массив методом @$_GET['start'], так как параметр $start всё время меняется когда пользователь кликает по ссылке на страницу.

Если, Вы вдруг не захотите, передавать первый, третий, четвёртый, пятый элемент массива вместо них необходимо передать пустоту - '', без пробела между кавычками.

Как Вы можете видеть функция сильно расширяет возможности при создании постраничного вывода . Теперь Вы можете разместить свой постраничный вывод на маленьком участке страницы, регулируя количество отображаемых ссылок параметром $showLink. Всё это удобно при создании галлерей, поиска по каталогу сайта или чего-нибудь ещё.

Ниже будут приведены примеры вызова функции:

PagePrint('', @$_GET['start'], 90, '', '', 10) - Всего записей в базе 90, постраничный вывод будет отображать по десять ссылок

PagePrint(@$_GET['number'], @$_GET['start'], 90, '', '', 10) - Всего записей в базе 90, постраничный вывод будет отображать по десять ссылок и есть возможность изменять количество отображаемых записей на странице

PagePrint(@$_GET['number'], @$_GET['start'], 90, '&category=1', '', 10) - Всего записей в базе 90, постраничный вывод будет отображать по десять ссылок, есть возможность изменять количество отображаемых записей на странице и ссылка передаёт дополнительную переменную category со значением 1

PagePrint(@$_GET['number'], @$_GET['start'], 90, '&category=1', 'style="color:black"', 10) - Всего записей в базе 90, постраничный вывод будет отображать по десять ссылок, есть возможность изменять количество отображаемых записей на странице, ссылка передаёт дополнительную переменную category со значением 1 и ссылки на странице будут чёрного цвета.
Надеюсь приведённые ниже объяснения и комментарии внутри функции помогут разобраться Вам с принципом работы функции.

set-uz 22.06.2010 17:48

Как создать поддомен с помощью htaccess?
 
Как создать поддомен с помощью htaccess?
Например
Пользователь зарегистрировался под логином Exlample и ему должно автоматический создаться exlample.site.uz.
Зарание спасибо!

Игорь Бронников 22.06.2010 18:58

Цитата:

Сообщение от set-uz (Сообщение 414513)
Как создать поддомен с помощью htaccess?
Например
Пользователь зарегистрировался под логином Exlample и ему должно автоматический создаться exlample.site.uz.
Зарание спасибо!

Htaccess тут ни при чем.
1) Нужно настроить DNS сервер, чтобы *.site.uz вели на нужный IP
2) Обычно apache посылает первому сайту в конфиге, если не находит подходящий, т.е. если в конфиге апача первым прописать site.uz, то все запросы типа abc.site.uz будут посылаться сайту site.uz
3) Скриптом проанализировать $_SERVER['SERVER_NAME'] чтобы понять, какой сайт показывать

Nizomiddin Kodirov 08.01.2011 07:35

Дорогие. Подскажите почему у меня на денвере не работает функция eregi или ereg?

Ruslan Aliev 09.01.2011 18:36

В последней версии php они уже "deprecated", старайтесь от них избавляться.
Например, заменяйте их на str_replace или preg_replace

Anton 09.01.2011 20:07

Люди может я и не в тему, но где вы всему этому учились, может кто подскажет?

Как только у меня будет 50 сообщений я создам отдельную тему, в которой будет ясно, почему я задаю этот вопрос... С Уважением

German Stimban 10.01.2011 10:55

Цитата:

Сообщение от Игорь Бронников (Сообщение 414531)
Htaccess тут ни при чем.
1) Нужно настроить DNS сервер, чтобы *.site.uz вели на нужный IP
2) Обычно apache посылает первому сайту в конфиге, если не находит подходящий, т.е. если в конфиге апача первым прописать site.uz, то все запросы типа abc.site.uz будут посылаться сайту site.uz
3) Скриптом проанализировать $_SERVER['SERVER_NAME'] чтобы понять, какой сайт показывать

2. Лучше в конфиге апача создать виртуалхост с именем *.site.uz, то есть заставить обрабатывать все поддомены site.uz
3. Не помню точно, как это делалось, но помощью .htaccess можно переделывать запрос. Например пользователь вводит адрес example.site.uz, а .htaccess прозрачно переводит запрос в вид типа site.uz/example или site.uz/users.php?username=example. Если актуально, могу глянуть как такое делается.

Ruslan Aliev 13.01.2011 08:53

Цитата:

Сообщение от German Stimban (Сообщение 498660)
Цитата:

Сообщение от Игорь Бронников (Сообщение 414531)
Htaccess тут ни при чем.
1) Нужно настроить DNS сервер, чтобы *.site.uz вели на нужный IP
2) Обычно apache посылает первому сайту в конфиге, если не находит подходящий, т.е. если в конфиге апача первым прописать site.uz, то все запросы типа abc.site.uz будут посылаться сайту site.uz
3) Скриптом проанализировать $_SERVER['SERVER_NAME'] чтобы понять, какой сайт показывать

2. Лучше в конфиге апача создать виртуалхост с именем *.site.uz, то есть заставить обрабатывать все поддомены site.uz
3. Не помню точно, как это делалось, но помощью .htaccess можно переделывать запрос. Например пользователь вводит адрес example.site.uz, а .htaccess прозрачно переводит запрос в вид типа site.uz/example или site.uz/users.php?username=example. Если актуально, могу глянуть как такое делается.

Мы не заморачивались.
просто в ServerAlias прописывали *.site.uz а потом разбирали $_SERVER['SERVER_NAME'] в php скрипте.

Ruslan Aliev 13.01.2011 08:53

Цитата:

Сообщение от Anton (Сообщение 498496)
Люди может я и не в тему, но где вы всему этому учились, может кто подскажет?

Как только у меня будет 50 сообщений я создам отдельную тему, в которой будет ясно, почему я задаю этот вопрос... С Уважением

Так это наша профессия.


Текущее время: 09:13. Часовой пояс GMT +5.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
OOO «Единый интегратор UZINFOCOM»