Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Dev
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 9
1

Система страниц

13.06.2012, 20:24. Просмотров 1066. Ответов 12
Метки нет (Все метки)

Добрый вечер! Люди, помогите пожалуйста с написанием системы управления страницами (Добавление, удаление). На данный момент стоит вот такая бесполезная ерунда:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
if(!$_GET) {
    
    require(...);
                    
}else{
                    
    switch($_GET['page']) {
                            
        case 'add':
                            
            require(...);
                        
        break;
                            
        case 'blog': 
                            
            require(...);
                            
        break;
                            
        case 'setting': 
                            
            require(...);
                            
        break;
                            
        case 'editmenu': 
                            
        break;
                        
        } 
                        
}
Или же, объясните мне, по какому принципу работает система страниц в CMS.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2012, 20:24
Ответы с готовыми решениями:

Не срабатывает условие при смене страниц(пагинация страниц)
Есть скрипт для пагинации страниц,вернее пытаюсь ее сделать. Но вот задал я такое условие ...

Пагинация страниц без добавления разрыв страниц
Здравствуйте! Подскажите как сделать нумерацию страниц не используя разрыв страниц, так как если...

Система Windows XP. Эскизы страниц!!!
Помогите мне пожалуйста с этими эскизами!!! Система ХР. Открываю папку с фотками в компе, сразу...

Найти количество страниц книги по сумме цифр номеров всех страниц
Добрый день! Задача звучит так: "Дано n - сумма цифр номеров всех страниц некоторой книги. Найти...

Нумерация страниц в оглавлении для случая с ручной нумерацией страниц в колонтитуле
Здравствуйте. Я уже писал на разных форумах, но ответа так и не получил. Теперь к вам со своей...

12
DrobyshevAlex
1174 / 1124 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.06.2012, 20:36 2
Да по разному может быть. Часто используется в фреймворках MVC
http://ru.wikipedia.org/wiki/Model-View-Controller
http://chtivo.webhost.ru/articles/mvc.php
2
Dev
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 9
13.06.2012, 20:54  [ТС] 3
Вот в том то и дело, что в фреймворке все ясно. Я просто, так скажем, начинающий, и мне хочется для начала поработать чисто на php. Делаю свою мини CMS, хотя я ее называю RMS (Records Management System website).
0
DrobyshevAlex
1174 / 1124 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.06.2012, 21:03 4
Цитата Сообщение от Dev Посмотреть сообщение
Вот в том то и дело, что в фреймворке все ясно
Что то я не понял, при чём тут фреймворк? Я Вам написал что часто делают на базе MVC.
Не один фреймворк тут не причёт, это просто схема взаимодействия классов которая помогает разбить сайт на отдельные модули которые будут вызываться от введённого адреса.
Это просто описание как оно работает, код там дан чисто для примера что бы было более понятно, но не обязан он быть именно таким. В схеме нет не строки кода.
Вот прочтите что такое MVC и делайте свою CMS.
0
Dev
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 9
13.06.2012, 21:08  [ТС] 5
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Что то я не понял, при чём тут фреймворк? Я Вам написал что часто делают на базе MVC.
Не один фреймворк тут не причёт, это просто схема взаимодействия классов которая помогает разбить сайт на отдельные модули которые будут вызываться от введённого адреса.
Это просто описание как оно работает, код там дан чисто для примера что бы было более понятно, но не обязан он быть именно таким. В схеме нет не строки кода.
Вот прочтите что такое MVC и делайте свою CMS.
Что такое MVC я знаю. Работал с Codeigniter. Я просто не так вас понял.
0
DrobyshevAlex
1174 / 1124 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.06.2012, 21:11 6
В CI своя реализация MVC. В Yii своя в Zend своя.
Вот и вы сделайте. Вы задали вопрос, как сделать такое разбитие. Я написал как это обычно делают. Не готовый код и даже не алгоритм, а просто схему
0
Dev
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 9
13.06.2012, 21:16  [ТС] 7
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Вы задали вопрос, как сделать такое разбитие.
Я не такой вопрос задал. Я задал: "как реализовать управление страницами". Я полагаю, что это связано с БД. Немного представляю даже как реализовать, но очень смутно.То есть, у меня есть уже готовая ПУ, но для того, что бы добавить страницу и контент, мне необходимо переодически будет править этот файл, как в ПУ так и в пользовательском виде.
0
DrobyshevAlex
1174 / 1124 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.06.2012, 21:31 8
Ну просто смотря на кусок приведённого кода, можно решить что нужно организовать систему вызова какого либо скрипта в зависимости от адреса в браузере.

Ну страницы храните в бд.
Создайте таблицу pages с полями
SQL
1
2
3
4
5
id - INT
title - VARCHAR
decription - VARCHAR
keywords - VARCHAR
text - text
ну какие конкретно поля нужны сразу может быть и не ясно, анчать можно с 3х. id, title, text
А остальные по мере необходимости добавлять.

Ну а дальше, что вы бы вести страницу, просто передаёте её id и выбираете её из бд.
Что бы выбрать select
Что бы добавить insert
Что бы редактировать update
Что бы удалить delete

Везде передаёте ID.

Так же можно делать навигацию, выбирать часть строк, только title и id например. И разбивать на страницы что бы листать.

Просто если честно не совсем понятно что именно вас интересует. Вы работали с CI. Вы там не работали с базой? Не хранили записи в базе?
0
Dev
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 9
13.06.2012, 22:04  [ТС] 9
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Ну просто смотря на кусок приведённого кода, можно решить что нужно организовать систему вызова какого либо скрипта в зависимости от адреса в браузере.
Почти правильно! Тоесть, передается переменная методом get данных. Например: ?page=add. Должна открыться страница добавления страницы (Посредством условия загружается кусок html и php кода). По такому принципу у меня работает админка. Смотрите. Этот файл находится у меня в отдельной папке. Такой способ подходит только для статических страниц, а не динамических. Просто вижу на многих сайтах то, что используются Гет данные для страниц, даже wordpressCMS. Что я хочу от админки. Нажимаю добавить страницу. Появляется страница добавления страницы с записью на пользовательский вид (Например добавляю страницу О нас или О фирме) =) пользователь вводит название записи (или страницы), саму страницу и другие параметры. Потом все это передается обработчику. Если название страницы написано кирилицей, то мой скрипт переводит в латиницу. Потом добавляется название страницы в определенную таблицу с заготовленным шалном, допустим http://website.ru/?page=(вот сдесь название страницы). Но вот как все это связать? надеюсь вы меня поняли =) Может быть лучше в личку или аську? если есть время?

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Вы там не работали с базой? Не хранили записи в базе?
Работал с базой. Все обычные действия - удалить, редактировать, добавить. И до сих пор это делаю, только теперь не в CI.
0
DrobyshevAlex
1174 / 1124 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.06.2012, 22:21 10
Цитата Сообщение от Dev Посмотреть сообщение
Тоесть, передается переменная методом get данных. Например: ?page=add.
Ну так значит я правильно Вам посоветовал. Учите что такое MVC.
Это и есть то, что поможет вам в зависимости от адреса вызывать различные скрипты.
То есть написалы вы
site/?page=news?action=edit?id=3
И вот ваша система например вызывает
class News
метод edit
и передаёт параметр id = 3
а он в свою очередь выполняет какие либо действия и вызывает view для данный страницы.
так же можно не id передавайть а имя если хотите. только тогда лучше всё таки делать что то типа
3-name
а потом получать так
$id = (int) $_GET['page'];
после этого от бросится всё кроме 3. И с базой работать вы будете уже по этой тройке.

На самом деле всё это очень сложно описать что и как нужно, так как способов огромное количество.
Это уже от вас зависит то как вы реализуете, и скорей всего вы с первого раза идеально не сделаете для себя.
Для вызова методов класса даже есть куча способов, так же есть автозагрузка классов. Нужно продумать сруктуру, как оно будет разбиваться по папкам.
в php 5 есть такие хорошие вещи которые пригодятся вам:
автозагрузка - что бы автоматически подгружать нужные вам классы.
вызов функций
Вообще нужно почитать что есть из магический методов.
Например __call, __get __set практически всегда используются для этих целей. И за 10 минут нельзя рассказать как и для чего.
2
Dev
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 9
13.06.2012, 22:28  [ТС] 11
Сейчас вроди бы что то начинает проглядываться =) Просто я зациклился на одном параметре. Благодарю. Поробую как вы посоветовали.
0
DrobyshevAlex
1174 / 1124 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.06.2012, 22:33 12
То есть вот например вариант.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
$page = isset($_GET['page']) ? $_GET['page'] : 'news';
$action = isset($_GET['action']) ? $_GET['action'] : 'index';
 
class News
{
    function __call($name, $arguments)
    {
        $action = $name . '_action';
        if (method_exists($this, $action))
        {
            $this->$action();
        }
        else
            die('Ошибка 404');
    }
    
    function index_action()
    {
        echo '<a href="?page=news&action=show">Просмотр</a> новости';
    }
    
    function show_action()
    {
        echo 'Вывод одной новости';
    }
}
 
// это нужно через автозагрузку делать и проверку на существование.
$controller = new $page; // создаём класс News из переменнйо $page
 
$controller->$action();
1
Vadim_Lasso
431 / 350 / 259
Регистрация: 29.11.2011
Сообщений: 627
14.06.2012, 00:19 13
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
То есть вот например вариант.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
$page = isset($_GET['page']) ? $_GET['page'] : 'news';
$action = isset($_GET['action']) ? $_GET['action'] : 'index';
 
class News
{
    function __call($name, $arguments)
    {
        $action = $name . '_action';
        if (method_exists($this, $action))
        {
            $this->$action();
        }
        else
            die('Ошибка 404');
    }
    
    function index_action()
    {
        echo '<a href="?page=news&action=show">Просмотр</a> новости';
    }
    
    function show_action()
    {
        echo 'Вывод одной новости';
    }
}
 
// это нужно через автозагрузку делать и проверку на существование.
$controller = new $page; // создаём класс News из переменнйо $page
 
$controller->$action();
Спасибо за простой и понятный пример, наконец то разобрался как выбирать действия в зависимости от url, без использования кучи условий..
0
14.06.2012, 00:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2012, 00:19

Для нумерации страниц книги понадобилось К цифр. Сколько страниц в книге?
Для нумерации страниц книги понадобилось К цифр. Сколько страниц в книге? Если указоное число не...

Цвет набора страниц с вкладками TPageControl и его страниц TTabSheet
При вставке PageControl1 на форму, и создания его страниц TabSheet1, TabSheet2 - они все белого...

По сумме номеров страниц определить, сколько страниц было прочитано
Цикл. Начав читать детектив с 30 страницы, читатель посчитал сумму номеров прочитанных за день...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru