Поправить сайт HTML PHP

Форум для тех кто начинает осваивать язык php.
NikolayHAOS
Сообщения: 15

Поправить сайт HTML PHP

Сообщение NikolayHAOS » Пт сен 04, 2015 11:45 am

Всем доброго времени суток.
Есть сайт школы {ссылка удалена}
На первой странице публикуются новости, что идут снизу вверх (список в середине), отображалось бы например записей 20, а остальные прятались бы на "другую страницу" (не знаю как правильно выразиться) а внизу номера 1. 2. 3. 4. по ним кликаешь и переходишь на предыдущие новости.

И выделение меню, что справа, как отключить полное затенение, и строка чтоб не красным выделялась, а слегка серым?
Прочитал тему Скрипт постраничной навигации (Пагинация на PHP)
Пока ничего не понял.
Но очень хочется разобраться.
1. Создаем файл pagination.php помещаем в него код

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

<?php 
    
/*
    * Класс для генерации постраничной навигации
    */
    
class Pagination
    
{
        
/**
        * 
        * @var Ссылок навигации на страницу
        * 
        */
        
private $max 10;
        
        
/**
        * 
        * @var Ключ для GET, в который пишется номер страницы
        * 
        */
        
private $index 'page';
        
        
/**
        * 
        * @var Текущий GET-запрос
        * 
        */
        
private $query;
        
        
/**
        * 
        * @var Текущая страница
        * 
        */
        
private $current_page;
        
        
/**
        * 
        * @var Общее количество записей
        * 
        */
        
private $total
        
        
/**
        * 
        * @var Записей на страницу
        * 
        */
        
private $limit;
        
        
/**
        * Запуск необходимых данных для навигации
        * @param integer $total - общее количество записей
        * @param integer $limit - количество записей на страницу
        * 
        * @return
        */
        
public function __construct$total$limit )
        {
            
# Устанавливаем общее количество записей
            
$this->total  $total;
            
            
# Устанавливаем количество записей на страницу
            
$this->limit  $limit;
            
            
# Устанавливаем количество страниц
            
$this->amount $this->amount();
            
            
# Вызываем метод установки текущей страницы
            
$this->setCurrentPage();
            
            
# Вызываем метод установки текущего GET-запроса
            
$this->setQueryString();
        }
        
        
/**
        *  Для вывода ссылок
        * 
        * @return HTML-код со ссылками навигации
        */
        
public function get()
        {
            
# Для записи ссылок
            
$links null;
            
            
# Получаем ограничения для цикла
            
$limits $this->limits();
            
            
# Генерируем ссылки
            
for($page=$limits[0]; $page<=$limits[1]; $page++)
            {
                
# Если текущая это текущая страница
                
if($page == $this->current_page)
                    
# Обводим жирным
                    
$links .= '<b>'$page .'</b>';
                else
                    
# Заносим ссылку
                    
$links .= $this->generateHtml($page);
            }
            
            
# Если ссылки создались - генерируем "Следующая", "Предыдущая", "Первая", "Последняя"
            
if(!is_null$links ))
            {
                
# Если текущая страница не первая
                
if($this->current_page 1){
                    
# Создаём ссылку "Предыдущая"
                    
$links $this->generateHtml($this->current_page 1'&lt;''Предыдущая') . $links;
                    
                    
# Создаём ссылку "Первая"
                    
$links $this->generateHtml(1'&lt;&lt;''Первая') . $links;
                }
                
                
# Если текущая страница не первая
                
if($this->current_page $this->amount){
                    
# Создаём ссылку "Следующая"
                    
$links .= $this->generateHtml($this->current_page 1'&gt;''Следующая');  
                    
                    
# Создаём ссылку "Следующая"
                    
$links .= $this->generateHtml($this->amount'&gt;&gt;''Последняя');  
                }   
            }
            
            
# Возвращаем ссылки
            
return $links;
        }
        
        
/**
        * Для получения, откуда начинать выборку
        * 
        * @return integer
        */
        
public function skip(){
            return 
                
$this->current_page $this->limit $this->limit;
        }
        
        
/**
        * Для получение ограничения выборки
        * 
        * @return integer
        */
        
public function take(){
            
# Получаем, откуда начинаем
            
$skip $this->skip();
            
            
# Возвращаем ограницение
            
return
                
$skip $this->limit $this->total $this->total $skip $this->limit;
        }
        
        
/**
        * Для генерации HTML-кода ссылки
        * @param string $query - текущий GET-запрос
        * @param integer $page - номер страницы
        * 
        * @return
        */
        
private function generateHtml$page$text=null$title=null ){
            
# Если текст ссылки не указан
            
if(!$text)
                
# Указываем, что текст - цифра страницы
                
$text $page;
            
            
# Формируем ссылку
            
$query $this->index .'='$page;
            
            
# Формируем строку запроса (после вопроса)
            
$query $this->query $this->query .'&'$query $query;
                
            
# Формируем HTML код ссылки и возвращаем
            
return
                
'<a href="?'$query .'" title="'$title .'">'$text .'</a>';
        }
        
        
/**
        *  Для получения, откуда стартовать вывод ссылок
        * 
        * @return массив с началом и концом отсчёта
        */
        
private function limits()
        {
            
# Вычисляем ссылки слева (чтобы активная ссылка была посередине)
            
$left $this->current_page round($this->max 2);
 
            
# Вычисляем начало отсчёта
            
$start $left $left 1;                
            
            
# Если впереди есть как минимум $this->max страниц
            
if($start $this->max <= $this->amount)
                
# Назначаем конец цикла вперёд на $this->max страниц или просто на минимум
                
$end $start $start $this->max $this->max;
            else{
                
# Конец - общее количество страниц
                
$end $this->amount;
 
                
# Начало - минус $this->max от конца
                
$start $this->amount $this->max $this->amount $this->max 1;
              
            }
            
            
# Возвращаем
            
return [$start$end];
        }
 
        
/**
        * Для установки текущей страницы
        * 
        * @return
        */
        
private function setCurrentPage()
        {
            
# Получаем номер страницы
            
$this->current_page = isset($_GET[$this->index]) ? (int) $_GET[$this->index] : 1;
            
            
# Если текущая страница боле нуля
            
if($this->current_page 0)
            {
                
# Если текунщая страница меньше общего количества страниц
                
if($this->current_page $this->amount)
                    
# Устанавливаем страницу на последнюю
                    
$this->current_page $this->amount;
            }
            else
                
# Устанавливаем страницу на первую
                
$this->current_page 1;
        }
        
        
/**
        * Для получения и установки текущего GET-запроса
        * 
        * @return
        */
        
private function setQueryString(){
            
# Получаем параметры текущего запроса
            
$query parse_url$_SERVER['REQUEST_URI'], PHP_URL_QUERY );
            
            
# Разбираем строку запроса
            
parse_str$query$params );
            
            
# Удаляем значение страницы, если есть
            
unset( $params[$this->index] );
            
            
# Формируем запрос
            
$this->query http_build_query$params );
        }
        
        
/**
        * Для получеия общего числа страниц
        * 
        * @return число страниц
        */
        
private function amount()
        {
            
# Делим и возвращаем
            
return
                
ceil$this->total $this->limit );
        }
    } 

2. Создаем файл скрипта это как? какой файл?
3. как указать на главную страницу где код вводить?
Вот файл главной страницы index.htm {ссылка удалена, файл больше не доступен}

Я предполагал что нужно будет новости обрамить каким-то тегом (кодом) который будет выводить нужное кол-во строк, но как вижу не все так просто.
Помогите пожалуйста.

Сайт редактируется с помощью программы Microsoft Office SharePoint Designer 2007.
Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2028
Поблагодарили: 62 раза

Re: Поправить сайт HTML PHP

Сообщение Slash » Пт сен 04, 2015 12:26 pm

Что касается постраничной навигации (пагинация), как я понял у Вас сайт написан на чистом HTML, верно? Или я ошибаюсь?
Для подобной разработки необходим PHP.
NikolayHAOS писал(а):меню, что справа, как отключить полное затенение, и строка чтоб не красным выделялась, а слегка серым

Гляньте исходный код страницы и увидите:

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

<TABLE border=0 height=100 onmouseout="bgColor=''" onmouseover="bgColor='gray'" width=333 cellspacing="3">
<
TBODY>
<
TR>
<
TD bgColor=FFFF66 style="height: 21px"><strong>Меню</strong></TD>
<
tr>

<
TD onmouseout="bgColor=''" onmouseover="bgColor='red'" style="width: 320px" class="style23">
<
a href="pages/имя%20школы.htm"><strong>Имя Героя имя школы</strong></a></TD>

</
tr>
<
tr

Полный бардак... Думаю следует заменить на это:

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

<table border="0" height="100" width="333" cellspacing="3">
    <
tbody>
        <
tr>
            <
td bgColor="#FFFF66" style="height: 21px">
                <
strong>Меню</strong>
            </
td>
        <
tr>
            <
td onmouseover="bgColor='gray'" style="width: 320px" class="style23">
                <
a href="pages/имя%20школы.htm"><strong>Имя Героя имя школы</strong></a>
            </
td>
        </
tr

Еще: зачем использовать событие onmouseover и подобные? Лучше использовать классы CSS.
Я бы не стал использовать кириллицу в URL и в названиях файла pages/имя%20школы.htm.
В общем наведите порядок...
NikolayHAOS
Сообщения: 15

Re: Поправить сайт HTML PHP

Сообщение NikolayHAOS » Пт сен 04, 2015 1:14 pm

Спасибо, что помогаете.
Slash писал(а):как я понял у Вас сайт написан на чистом HTML, верно? Или я ошибаюсь?

Наверное да, я в этом не разбираюсь.
Slash писал(а):Для подобной разработки необходим PHP.

И как его внедрить в сайт? Это сложно?
Slash писал(а):В общем наведите порядок...

Согласен.
НО разбираться сайтом только начинаю (до этого вообще с ними не связывался), кто и что делал до этого, тайна покрытая мраком.
Применяется шаблон к страницам при создании (index.dwt) при этом не ко всем страницам (а только последние 1,5-2 года), потыкав по ссылкам можно найти другое отображение страницы.

Добавлено спустя 14 минут 44 секунды:
Ой спасибо тебе добрый человек, наконец то я нашел этот red.
такой вопрос как такое можно упростить:

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

<TD onmouseout="bgColor=''" onmouseover="bgColor='red'" style="width: 320px" class="style23">
<
a href="pages/personaln.%20dann..htm"><strong>Персональные данные</strong></a></TD>

</
tr>
<
tr>
<
TD onmouseout="bgColor=''" onmouseover="bgColor='red'" style="width: 320px; height: 24px;" class="style23">
<
strong><a href="index.htm">Новости</a></strong></TD>
</
tr>
<
tr>
<
TD onmouseout="bgColor=''" onmouseover="bgColor='red'" class="style24" style="width: 320px">
<
a href="pages/letopis.htm"><strong>Летопись Победы</strong></a></TD>

</
tr>
<
tr>
<
TD onmouseout="bgColor=''" onmouseover="bgColor='red'" style="width: 320px" class="style23">
<
span class="style23">
<
a href="pages/vipusk.htm"><strong>Жизнеустройство выпускников</strong></a></span><strong><span class="style23"><br>
<
A href="pages/npd.htm">&nbsp;документы</A> </span> </strong>
</
TD>

</
tr>
<
tr>
<
TD onmouseout="bgColor=''" onmouseover="bgColor='red'" style="width: 320px" class="style23">
<
A href="pages/npd.htm"><strong>Учредительные и правоустанавливающие документы</strong></A><strong>
</
strong>
</
TD>

</
tr>
<
tr>
<
TD onmouseout="bgColor=''" onmouseover="bgColor='red'" class="style24" style="width: 320px">
<
a href="pages/orgobrpro.htm"><strong>Организация образовательного&nbsp;процесса 
</strong> </a
</
TD>
</
tr>
<
tr>
 


Чтобы форматирование применять комплексно ко всему списку, а не индивидуально к каждой строчке? Или стилем мобыть?
Аватара пользователя
Slash
Администратор
Сообщения: 2028
Поблагодарили: 62 раза

Re: Поправить сайт HTML PHP

Сообщение Slash » Пт сен 04, 2015 1:43 pm

NikolayHAOS писал(а):И как его внедрить в сайт? Это сложно?

Если Вы только начинаете вникать в это, то будет сложно.
NikolayHAOS писал(а):НО разбираться сайтом только начинаю (до этого вообще с ними не связывался)

Ну что ж, все когда начинали с ноля.

Добавлено спустя 12 минут 55 секунд:
NikolayHAOS писал(а):как такое можно упростить

Меню я бы все делал классами и возможно без таблицы. Например, такой класс:

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

a.rex {
    font-size: 10px;
    font-weight: bold;
    text-decoration: none;
    width: 95%;
    display: block;
    padding: 2px;
    margin: 2px;
    border-right: #bbbbbb 1px solid;
    border-left: #bbbbbb 1px solid;
    border-top: #bbbbbb 1px solid;
    border-bottom: #bbbbbb 1px solid;
}
    
a
.rex:link { color: #00bfff;    }
a.rex:visited { color: #00bfff; }
a.rex:hover { color: #000000; background-color: #f0f0f0; }
a.rex:active { color: #008800; background-color: #f0f0f0; }  

И сами ссылки:

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

<class="rex" href="pages/personaln.%20dann..htm">Персональные данные</a>
<
class="rex" href="index.htm">Новости</a>
<!-- 
И так далее --> 
NikolayHAOS
Сообщения: 15

Re: Поправить сайт HTML PHP

Сообщение NikolayHAOS » Пт сен 04, 2015 1:48 pm

Slash писал(а):Если Вы только начинаете вникать в это, то будет сложно.

А где почитать? чтоб хотя бы на данном этапе решить стоит с этим завязываться или нет.

З.Ы. Когда передавали сайт школы он вообще выглядел как бог послал, щас хоть немного "стандартизирован" хотя бы внешне.
Вообще хотел создать с нуля на друпал, вроде разобрался что и как, но начальство не разрешило,
- а не дай бог ты уйдешь, то кто там чего разбираться будет.
Посему буду доводить до ума, то что есть.
Еще раз спасибо за помощь, убрал это нелепое подсвечивание всего меню серым, и выделения строк красным цветом.

Добавлено спустя 1 минуту 29 секунд:
Slash писал(а):Меню я бы все делал классами и возможно без таблицы. Например, такой класс:

Понятно, попробую вечером.
Аватара пользователя
Slash
Администратор
Сообщения: 2028
Поблагодарили: 62 раза

Re: Поправить сайт HTML PHP

Сообщение Slash » Пт сен 04, 2015 2:00 pm

NikolayHAOS писал(а):А где почитать? чтоб хотя бы на данном этапе решить стоит с этим завязываться или нет.

Можете скачать учебник и учиться по нему - https://www.google.ru/?gws_rd=ssl#newwi ... %D0%BA+php
Вот на официальном сайте php: http://php.net/manual/ru/tutorial.php
NikolayHAOS
Сообщения: 15

Re: Поправить сайт HTML PHP

Сообщение NikolayHAOS » Сб сен 05, 2015 4:03 pm

Такой вопрос, как правильно создать шаблон страницы, поясню:
вот сейчас все завязано на таблицу, и на страницах хрен разберешь что куда.
А если использовать <div> для создания блоков и работать уже с ним, а не с таблицей?
Аватара пользователя
Slash
Администратор
Сообщения: 2028
Поблагодарили: 62 раза

Re: Поправить сайт HTML PHP

Сообщение Slash » Сб сен 05, 2015 8:06 pm

NikolayHAOS писал(а):А если использовать <div> для создания блоков и работать уже с ним, а не с таблицей?

На самом деле неважно с чем Вы будите работать, с table или div, запутаться можно с любым тегом... Что бы проще было разбираться, делайте, как я показал Вам во втором посте темы: Re: Поправить сайт HTML PHP
То есть делайте отступы от края документа внутри каждого тега. Пример:

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

<table> <!-- Это открывающий тегто что внутри делаем отступ от края -->
    <
tr> <!-- Внутри этого тега делаем отступ еще больше -->
        <
td> <!-- Тут делаем отступ еще больше -->
            <!-- 
Тут так же делаем отступ еще больше -->
        </
td>
    <
tr>
</
table

Надеюсь понятно объяснил...
NikolayHAOS
Сообщения: 15

Re: Поправить сайт HTML PHP

Сообщение NikolayHAOS » Вс сен 13, 2015 12:26 pm

Привел новостную страницу сайта к удобоваримому виду.

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

<class="DATA">13.09.2015 <span class="NAME"><a href="news/2015/September/13.09-Литературная%20гостиная.docx">Литературная гостиная</a></span></p>
<
class="DATA">12.09.2015 <span class="NAME"><a href="news/2015/September/12.htm">На повестке дня социально</a></span></p>
<
class="DATA">11.09.2015 <span class="NAME"><a href="news/2015/September/11.09-%20Такая%20%20разная%20осень.docx">Такая разная осень</a></span></p

Как применить к этому списку скрипт постраничной навигации?
Аватара пользователя
Slash
Администратор
Сообщения: 2028
Поблагодарили: 62 раза

Re: Поправить сайт HTML PHP

Сообщение Slash » Вс сен 13, 2015 12:54 pm

NikolayHAOS писал(а):Как применить к этому списку скрипт постраничной навигации?

В теме Скрипт постраничной навигации (Пагинация на PHP) все рассказано... И еще раз говорю:
Slash писал(а):Для подобной разработки необходим PHP.

То есть у Вас вывод новостей должен происходить программой написанной на php, а не вставленный в html документ.
У Вас сайт написан на PHP или на чистом HTML?
NikolayHAOS
Сообщения: 15

Re: Поправить сайт HTML PHP

Сообщение NikolayHAOS » Вс сен 13, 2015 5:58 pm

Чистом HTML.
НО если переименовать страницу index.htm в index.php, то код php выполняется.
Проверял вставив код из примера

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

<html>
<head>
<title>My First Page</title>
</head>
<body>
<?PHP
echo "Hello World!";
?>
</body>
</html>
Аватара пользователя
Slash
Администратор
Сообщения: 2028
Поблагодарили: 62 раза

Re: Поправить сайт HTML PHP

Сообщение Slash » Вс сен 13, 2015 7:51 pm

NikolayHAOS писал(а):Чистом HTML.

Slash писал(а):вывод новостей должен происходить программой написанной на php

Вам придется переделывать весь сайт. Или вариант с готовым движком, где все примочки уже есть.
Аватара пользователя
greendev
Сообщения: 79

Re: Поправить сайт HTML PHP

Сообщение greendev » Пн сен 14, 2015 1:09 pm

Поддерживаю вариант с готовым движком.
Можно ставить хоть Drupal, хоть Wordpress.
Выбираете шаблон, настраиваете меню, виджеты и прочее прямо из админки. Можно даже не лезть в код.
Главное - сохранить логин и пароль в надёжном месте.
После Вас, я думаю, найдётся тот, кто разбирается в данных движках, ибо они достаточно популярны.
Аватара пользователя
Местный бот
Сообщения: 153

Re: Поправить сайт HTML PHP

Сообщение Местный бот » Пн сен 14, 2015 4:09 pm

NikolayHAOS, а как вам доверили разбирать сайт школы, если у вас даже базовых знаний нет, ни в php, ни в html?
<php
// Понравилось? Жми большой палец вверх.
// Местный бот 2014 - 2016 ©

echo 'Большой Привет от Местного бота!';
NikolayHAOS
Сообщения: 15

Re: Поправить сайт HTML PHP

Сообщение NikolayHAOS » Пн сен 14, 2015 5:11 pm

Местный бот, мне не доверили, на меня его спихнули когда учительница информатики ушла в декрет.
Она, кстати сказать, что такое html вообще не в курсе была. Все редактировалось чисто визуально через Microsoft Office SharePoint Designer 2007.
Что не помешало ей вести сайт три года, да кривенько, но главное чтоб сайт был, сверху спрашивают.
Ну а я решил хоть немного его к общему знаменателю подвести, вот со знаниями вы правы пока не густо, посему и читаю и по форумам смотрю что да как, учусь так сказать.

Добавлено спустя 1 минуту 13 секунд:
А на счет готовых шаблонов, дык это устанешь информацию с одного сайта на другой переносить, ибо документов и текста ОГО-ГО

Вернуться в «PHP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость