а не проще ли сделать отдельную базу на страницы отдельную на новости ?
просто немного непонятно как это все работает
Скрипт, ссылку на который я дал позволяет удобно редактировать данные в любой таблице. Неважно, какую хранит информацию эта таблица - новости, статьи, публикации и т.п.
Разумеется, для хранения информации мы будем использовать разные таблицы
таблица pages
таблица news
таблица articles
таблица publications
таблица forms
и так далее.
Этот скрипт просто читает записи в некоторй таблице (потому и таблица так названа - items). В админке у тебя будут скрипты
pages_admin.php
news_admin.php
articles_admin.php
publications_admin.php
forms_admin.php
и так далее.
Но все эти скрипты будут очень похожи друг на друга. Потому как их назначение - предоставить удобный интерфейс для добавления/редактирования/удален ия записей в соответствующих таблицах БД.
Цитата:
а тут начинается самое непонятное заместо того чтобы вывести
Компания ТИНКО - это техника безопасности, информа...
выводится статья
непонятно зачем это
можно было написать все в странице
Универсальность. Вот ответ. Положим, табе заказали сделать сайт для фирмы. Они хотят, чтобы на сайте бали следующие страницы:
О компании
Новости
Каталог продукции
Обратная связь
Техническая поддержка
Контакты
Что ты делаешь? Заливаешь на хостинг все файлы, запускаешь файл install.php, который создает таблицы в БД. Потом заходишь в админку, и создаешь страницы
О компании (содержит модуль articles)
Новости (содержит модуль news)
Каталог продукции (содержит модуль catalog)
Обратная связь (содержит модуль forms)
Техническая поддержка (содержит модуль articles)
Контакты (содержит модуль articles)
Потом в той же админке добавляешь статьи "О компании", "Техническая поддержка", "Контакты" (с помощью JavaScript-редактора). И делаешь привязку
статья<->страница
Аналогично, добавляешь записи в таблицу news.
Заливаешь CSV-файл каталога продукции.
Добавляешь форму "Обратная связь". Опять привязываешь страницу "Обратная связь" с формой "Обратная связь".
И в течение дня делаешь сайт.
А потом заказчик тебе говорит, не хочу просто каталог, хочу Интернет-магазин. А вместо страницы "Техническая поддержка" хотим что-то вроде "Ворос-ответ". Ничего страшного. Заходишь в админку, и для страницы "Каталог продукции" модуль catalog заменяешь на модуль shop. А для страницы "Техническая поддержка" модуль articles заменяешь на модуль questions. Это занимает еще пять минут.
Сайт легко подвергается изменению. Как детский конструктор "Lego". Страница - это контейнер. Какой модуль поместим в контейнер, такое содержимое страницы и будет сгенерировано.
Мы до сих пор говорили, что страница содержит один модуль. Но на самом деле, страница может содержать несколько модулей. Каждый модуль формирует свою часть страницы http://www.php.su/forum/uploads/...cb041d35page.jpg
Написал для тебя несколько небольших скриптов. Можешь посмотреть, как работает и изучить исходники. Для админки можно использовать вот этот скрипт http://forum.php.su/topic.php?fo...=28&topic=34
Он подойдет для работы с таблицами pages, news и articles. Правда, там нет возможности добавлять новые записи. Но это нетрудно исправить.
Немного разовьем тему. У нас есть только два модуля. Но эти модули - универсальные.
Допустим, ты решил размещать на своем сайта статьи. Или, нет. Термин "статьи" мы уже использовали для других нужд. Назовем их публикации. Для этого берем модуль news и немного его модифицируем. Получаем модуль publications. При переходе на страницу "Публикации" посетитель видит список статей/публикаций (с постраничной навигацией).
Или, скажем, ты решил разместить на своем сайте учебник по html. Что такое учебник? Список публикаций ( Глава 1, Глава 2, ... ). Т.е. у нас тот будет использоваться тот же модуль publications.
Блин, цирк. Если флажок установлен, на сервер передается переменная $_REQUEST['agree'] = 'Off'. Ты ее сравниваешь со строкой 'off'. Вполне логично, что 'Off' != 'off' поэтому $error=true.
Если флажок не выставлен, переменная $_REQUEST['agree'] не определена. Сравнивать undefined переменную с чем бы то ни было - глупое занятие. Всегда будет false. Т.е. если пользователь не выставил флажок, то по твоей логике, $error=false, т.е. пользователь согласен с соглашением.
Ты изменил логику с точностью до наоборот.
И вообще, так никто не делает. Нет никакой необходимости сравнивать $_REQUEST['agree'] с чем бы то ни было. Если флажок установлен, переменная $_REQUEST['agree'] определена. Если флажок не выставлен -- перменная не определена
Для каждой страницы сайта надо настраивать модуль, отвечающий за формирование основного содержимого страницы.
Например, у тебя есть страница "Новости компании". Ты можешь настроить вывод новостей так, что будут показываться только заголовки или заголовки и анонсы. Можно показывать 10 новостей на страницу, а можно 20. Можно для каждой новости показывать маленькую картинку и т.п.
По большому счету, у нас может быть несколько страниц, использующих модуль news, например
Новости компании
Новинки продукции
Новости отрасли
Только в этом случае у нас в БД кроме таблицы news будет еще одна таблица, new_categories где будут храниться категории новостей, а таблица news будет содержать дополнительное поле category - для хранения ссылки на категорию новостей, которой принадлежит данная новость.
По поводу модуля forms. В БД создаем две таблицы - forms и forms_fields. Одно хранит формы, другое - поля этих форм. Таблица forms_fields содержит поле parent, которе содержит уникальный ID формы, которой принадлежит это поле.
Используя фигурные скобки, ты указываешь, где заканчивается имя переменной, и начинается строка.
Да и вообще, использование в строке переменных -- анахронизм, от которого давно пора отказаться. Во-первых, строки в двойных кавычках обрабатываются медленнее, чем в одинарных (PHP нужно время на анализ спецсиволов). Во-вторых, это просто нечитабельно.
Поле settings содержит дополнительную информацию, которорая задает дополнительные характеристики для работы модуля. Например, для модуля news это поле может иметь вид
10|announce|img
10 - количество новостей для показа на одной странице (постраничная навигация)
title/announce - показывать только заголовок новости или заголовок и анонс
img/noimg - показывать или нет картинку в списке новостей
Это строка, которую с помощью функции explode можно преобразовать в массив.
Цитата:
...а как лучше реализовать идею с полем модуль через селект...
Ну, ты все правильно делаешь. Сначала предлагаешь пользователю выбрать модуль, отправляешь данные формы на сервер, а потом (уже зная, какой модуль был выбран) предлагаешь выставить дополнительные характеристики
Сам с этой проблемой не сталкивался, но много о ней слышал. Это русский Apache
Цитата:
В русском Apache есть параметр, который если установлен, то Apache при загрузке бинарников заменяет байт 00 на 20 (пробел). Необходимо "выключить" перекодировку multipart содержимого POST-а в .htaccess строкой: CharsetRecodeMultipartForms Off.
Здравствуйте.У меня проблема.В форме регистрации длина поля ввода названия 25 символов,но,когда заполняешь русскими символами выводятся не все символы и к тому же иногда со всякими левыми знаками,типа � .В базе данных прописана кодировка cp1251 и название там выглядит в виде символов Р?НФА+ЗАГРУЗКР? .Как сделать,что выводились все русские символы,которые заполнил при реге и без всяких косяков? Файл реги прилагается
Функции substr, ereg и некоторые другие некорректно работают с UTF-8. Надо использовать функции mb_substr, mb_ereg и т.д.