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

Форум для тех кто начинает осваивать язык php.
NikolayHAOS
Сообщения: 15
Зарегистрирован: Пт сен 04, 2015 11:36 am

Поправить сайт 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, '<', 'Предыдущая') . $links;
                    
                    # Создаём ссылку "Первая"
                    $links = $this->generateHtml(1, '<<', 'Первая') . $links;
                }
                
                # Если текущая страница не первая
                if($this->current_page < $this->amount){
                    # Создаём ссылку "Следующая"
                    $links .= $this->generateHtml($this->current_page + 1, '>', 'Следующая');  
                    
                    # Создаём ссылку "Следующая"
                    $links .= $this->generateHtml($this->amount, '>>', 'Последняя');  
                }   
            }
            
            # Возвращаем ссылки
            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 > 0 ? $left : 1;                
            
            # Если впереди есть как минимум $this->max страниц
            if($start + $this->max <= $this->amount)
                # Назначаем конец цикла вперёд на $this->max страниц или просто на минимум
                $end = $start > 1 ? $start + $this->max : $this->max;
            else{
                # Конец - общее количество страниц
                $end = $this->amount;
 
                # Начало - минус $this->max от конца
                $start = $this->amount - $this->max > 0 ? $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
Администратор
Сообщения: 2113
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 71 раз

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
Зарегистрирован: Пт сен 04, 2015 11:36 am

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
Администратор
Сообщения: 2113
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 71 раз

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; }  
И сами ссылки:

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

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

NikolayHAOS
Сообщения: 15
Зарегистрирован: Пт сен 04, 2015 11:36 am

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

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

Slash писал(а):Если Вы только начинаете вникать в это, то будет сложно.
А где почитать? чтоб хотя бы на данном этапе решить стоит с этим завязываться или нет.

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

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

Аватара пользователя
Slash
Администратор
Сообщения: 2113
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 71 раз

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
Зарегистрирован: Пт сен 04, 2015 11:36 am

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

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

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

Аватара пользователя
Slash
Администратор
Сообщения: 2113
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 71 раз

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

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

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

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

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

NikolayHAOS
Сообщения: 15
Зарегистрирован: Пт сен 04, 2015 11:36 am

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

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

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

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

<p class="DATA">13.09.2015 <span class="NAME"><a href="news/2015/September/13.09-Литературная%20гостиная.docx">Литературная гостиная</a></span></p>
<p class="DATA">12.09.2015 <span class="NAME"><a href="news/2015/September/12.htm">На повестке дня социально</a></span></p>
<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
Администратор
Сообщения: 2113
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 71 раз

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

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

NikolayHAOS писал(а):Как применить к этому списку скрипт постраничной навигации?
В теме Скрипт постраничной навигации (Пагинация на PHP) все рассказано... И еще раз говорю:
Slash писал(а):Для подобной разработки необходим PHP.
То есть у Вас вывод новостей должен происходить программой написанной на php, а не вставленный в html документ.
У Вас сайт написан на PHP или на чистом HTML?

NikolayHAOS
Сообщения: 15
Зарегистрирован: Пт сен 04, 2015 11:36 am

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
Администратор
Сообщения: 2113
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 71 раз

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

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

NikolayHAOS писал(а):Чистом HTML.
Slash писал(а):вывод новостей должен происходить программой написанной на php
Вам придется переделывать весь сайт. Или вариант с готовым движком, где все примочки уже есть.

Аватара пользователя
greendev
Сообщения: 79
Зарегистрирован: Вт фев 19, 2013 4:15 pm

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

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

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

Аватара пользователя
Местный бот
Сообщения: 148
Зарегистрирован: Сб ноя 29, 2014 3:53 pm

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

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

NikolayHAOS, а как вам доверили разбирать сайт школы, если у вас даже базовых знаний нет, ни в php, ни в html?

NikolayHAOS
Сообщения: 15
Зарегистрирован: Пт сен 04, 2015 11:36 am

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

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

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

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

Ответить Пред. темаСлед. тема

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

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