Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: создание сайта CMS
 
 автор: Sajmon_root   (10.02.2010 в 10:39)   письмо автору
 
 

День добрый!
Подскажите как можно создать сайт (структура) на 2-х языках и чтоб можно было управлять контентом?
Есть у меня сайт на HTML но я хочу его переделать под PHP!
Сайт состоит из 3-х таблиц:
1) шапка с меню
2) Основная таблица с контентом
3) низ сайта
Я сделал так: создал файл index.php template.php ru.php
пока файл index.php содержит одну строку
 include ("template.php");  
Я подгрузил шаблончики (таблици)
в файле template.php html код сайта но без текста, я создал переменные которые подгрежаются с ru.php пример кода с template.php

...
include ("ru.php");
<table border="0" width="100%">
   <tr>
         <td>$Description</td>
    </tr>
</table>

пример кода ru.php

$Description="какой то текст";

я так сделал чтоб во первых уменьшить размер сайта (подгружаю верх и низ из шаблона)
во вторых создал отдельный файл для текста (чтоб если изменять так только в одном месте)

Вот только как с другим языком быть?
мне советывали создать такой же сайт но только на английском - так это же в 2 раза больше размер сайта

Подскажите как правильно и рационально реализовать структуру сайта? Чтоб там было 2 языка и можно было управлять контентом?

  Ответить  
 
 автор: DJ Paltus   (10.02.2010 в 12:45)   письмо автору
 
   для: Sajmon_root   (10.02.2010 в 10:39)
 

Наиболее удобно хранить содержимое сайта в БД в двух симметричных таблицах - одна содержит русский, другая - английский вариант сайта. Для переключения языков следует завести переменную сессии - и брать данные из нужной таблицы в зависимости от ее значения.
Соответственно, скрипт должен залезть в базу, выбрать нужную таблицу, вытащить из нее содержимое страницы и поместить его в переменную $Description, в Вашем случае, а затем вывести. Работы много, но Вы же хотите свою ЦМС :о)

  Ответить  
 
 автор: Sajmon_root   (10.02.2010 в 13:29)   письмо автору
 
   для: DJ Paltus   (10.02.2010 в 12:45)
 

Да! Мне хотелось бы управлять контентом! А можно по подробнее про сесионую переменую! Я с Вами полностью согласен что данные нужно хранить в БД. Я впринципи и расчитывал данные с файла ru.php хранить в БД чтоб в последствии можно было управлять контентом!

  Ответить  
 
 автор: DJ Paltus   (10.02.2010 в 13:56)   письмо автору
 
   для: Sajmon_root   (10.02.2010 в 13:29)
 

Сессии:
http://www.softtime.ru/bookphp/gl8_1.php


Да и вообще, прочитайте книжку, она хорошая.

  Ответить  
 
 автор: Sajmon_root   (10.02.2010 в 14:40)   письмо автору
 
   для: DJ Paltus   (10.02.2010 в 13:56)
 

Подскажите как создается динамическое меню а именно ссылки куда они будит ссылоться? вот эти страницы куда ссылается ссылки с меню они создаются автоматически?

  Ответить  
 
 автор: Ури Геллер   (10.02.2010 в 14:17)   письмо автору
 
   для: DJ Paltus   (10.02.2010 в 12:45)
 

>Работы много, но Вы же хотите свою ЦМС :о)

1 день

  Ответить  
 
 автор: DJ Paltus   (10.02.2010 в 14:21)   письмо автору
 
   для: Ури Геллер   (10.02.2010 в 14:17)
 

А если хорошую?

  Ответить  
 
 автор: Ури Геллер   (10.02.2010 в 14:47)   письмо автору
 
   для: DJ Paltus   (10.02.2010 в 14:21)
 

а если хорошую скачай на hotscripts.com, только такую поискать там надо

  Ответить  
 
 автор: Zilog   (10.02.2010 в 16:30)   письмо автору
 
   для: DJ Paltus   (10.02.2010 в 12:45)
 

>Наиболее удобно хранить содержимое сайта в БД в двух симметричных таблицах

А если структура таблицы изменится - вносить изменения в 2х (и более) таблицах?

имхо, но я сделал иначе - две таблицы, в первой страницы - во второй переводы.
запорсы к БД малость сложнее, зато никакого гемороя с кол-вом языков и структурой таблиц - добавляй сколько душе угодно.

  Ответить  
 
 автор: Loki   (10.02.2010 в 16:39)   письмо автору
 
   для: DJ Paltus   (10.02.2010 в 12:45)
 

А если три языка? Три таблицы? А если 50?
Так с БД не работают...

  Ответить  
 
 автор: DJ Paltus   (10.02.2010 в 17:17)   письмо автору
 
   для: Loki   (10.02.2010 в 16:39)
 

Ладно, ладно, загнобили. Нет бы, автору темы отвечать на вопросы.

  Ответить  
 
 автор: neadekvat   (10.02.2010 в 18:12)   письмо автору
 
   для: Sajmon_root   (10.02.2010 в 10:39)
 

Дело ваше, конечно, можете хоть сотню таблиц для языков создавать, но я бы использовал такую архитектуру бд:
langs (languages) (все языки, используемые на сайте)
id | name
id - первичный ключ таблицы, это же значение будет хранится в таблице news
name - название языка. Желательно, я думаю, писать его на самом языке, то есть "Русский, English, Deutsch" и т.д. Используется для того, чтобы показать пользователю, какие языки доступны на сайте

news (пусть будут новости)
real_id | news_id | lang

real_id - первичный ключ таблицы, auto_increment естессно, повторяться не может
news_id - id новости, т.е. то, что мы будем видеть в адресной строке (news?id=n), а т.к. языков у нас будет несколько, то могут повторяться (чтобы адреса страниц не зависили от выбранного языка). Конечно, придется немножко подумать над системой добавления материалов, чтобы сохранить id новости в разных языках (начинаю повторятся что-то..)
Не забудьте добавить индекс
lang - id языка, можно будет через explain проверить, но мне кажется, здесь индекса уже не нужно.

Забудьте про сессии - что за бред? То есть я приду, выбиру свой язык, а потом отойду минут на 30, и что же? Снова выбирать язык? Ставьте значение выбранного языка в кукисы (cookie)

Вот собстно мой вариант.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования