Перейти к содержимому


Пользователь месяца
TimurR TimurR 1-й за Август
Очков активности: 726 3 темы, 35 сообщений, 11 баллов репутации
ТОП самых активных за этот месяц
  • Фотография ShowPrint
    #1

    ShowPrint (ShowPrint.ru)
    Очков активности: 207 2 темы, 17 сообщений, 6 баллов репутации

  • Фотография Ixman
    #2

    Ixman (o5cat.ru)
    Очков активности: 105 0 тем, 10 сообщений, 7 баллов репутации

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 84 Вне конкурса за определение пользователя месяца

  • Фотография magnet
    #4

    magnet (rbfxdirect.com)
    Очков активности: 67.5 Вне конкурса за определение пользователя месяца

  • Фотография TimurR
    #5

    TimurR
    Очков активности: 42 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #6

    BLIK
    Очков активности: 39 Вне конкурса за определение пользователя месяца

  • Фотография AnnaYa
    #7

    AnnaYa (topbase.ru)
    Очков активности: 33 2 темы, 5 сообщений, 2 балла репутации

  • Фотография Developer
    #8

    Developer
    Очков активности: 33 2 темы, 16 сообщений, 1 балл репутации

  • Фотография Алексей111
    #9

    Алексей111
    Очков активности: 28.5 5 тем, 4 сообщения, 1 балл репутации

  • Фотография Игорь Ку
    #10

    Игорь Ку (dudesday.ru)
    Очков активности: 24 1 тема, 5 сообщений, 2 балла репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 24.09.2018
Топ 5 участников по репутации


Где и как вы храните настройки сайта?

#1 Евгений

Евгений
  • Неактивные
  • 481 сообщений
  • Репутация: 0
0

Отправлено 04 August 2009 - 13:03

Я в mysql создаю таблицу config
где примерно следущие поля

Название сайта | Стартовая страница | email администратора | url сайта | сайт отключен


т.е. всего одна строчка, и для этой строчки отводится таблица, в принципе удобно, но недавно посмотрел как это сделано в WP

ИД | Настройка | Значение

и далее настройки в столбик. Плюсы: настройки можно добавлять прямо из админки. Но когда я так попробовал сделать, оказалось что вытаскивать эти настройки сложнее чем первом способе.

Как, где и в каком виде вы храните настройки сайта?

 

 

  • 0

#2 v1ex

v1ex
  • Неактивные
  • 225 сообщений
  • Репутация: 0

Отправлено 04 August 2009 - 13:50

В основном храню, как в WP. Иногда в config.php :D

P.S.
А в чем сложность вытаскивания настроек при способе как в WP?

P.S.S.
Ваш способ, мне кажется ужастным :) Целая таблица с одной записью... не хорошо :)
  • 0

#3 Евгений

Евгений
    Topic Starter
  • Неактивные
  • 481 сообщений
  • Репутация: 0

Отправлено 04 August 2009 - 13:58

# Вытаскиваем настройки
	$option_query = mysql_query("SELECT * FROM ".PREFIX."option WHERE option_id = 1") or die(mysql_error()); 
	$option = mysql_fetch_array($option_query);

теперь все настройки в массиве $option.

теперь передаем эти настройки в шаблон

display_template('./themes/'.SKIN.'/header.tpl', $option);


ну а там например вывод заголовка

<title><?php echo $template['option_namesite']; ?></title>


т.е.
$option['option_namesite'] - Название сайта
$option['option_email'] - емейл администратора
$option['option_skin'] - скин
и т.д.
---------

у меня не получилось это же самое организовать когда хранил настройки как в WP
  • 0

#4 Евгений

Евгений
    Topic Starter
  • Неактивные
  • 481 сообщений
  • Репутация: 0

Отправлено 04 August 2009 - 13:59

P.S.S.
Ваш способ, мне кажется ужастным Целая таблица с одной записью... не хорошо

мне он тоже кажется ужастным))) поэтому я и создал эту тему
  • 0

#5 v1ex

v1ex
  • Неактивные
  • 225 сообщений
  • Репутация: 0

Отправлено 04 August 2009 - 16:57

<?php
	class Options
	{
		private $dbInfo;
		public function __construct($dbHost, $dbUser, $dbPass, $dbName) {
			 $this->dbInfo = array('dbHost' = $dbHost, 'dbUser' = $dbUser, 'dbPass' = $dbPass, 'dbName' = $dbName);
		}
		public function getOption($name) {
			$return = '';
			$msConnect = mysql_connect($this->dbInfo['dbHost'], $this->dbInfo['dbUser'], $this->dbInfo['dbPass']) or die(mysql_error());
			mysql_select_db($this->dbInfo['dbName'], $msConnect);
			$res = mysql_query("SELECT * FROM options WHERE name = {$name}", $msConnect);
			if (mysql_num_rows($res) > 0) {
				$row = mysql_fetch_array($res);
				$return = $row['value'];
			}
			mysql_close($msConnect);
			return $return;
		}
		public function setOption($name, $value) {
			//// 
		}
		public function createOption($name, $value) {
			/////
		}
		public function deleteOption($name) {
			////
		}
	}
?>
Ну, я бы написал вроде такого класса, с помощью которого можно было-бы полноценно управлять опциями (для этого осталось описать пару методов). Ну и теперь в шаблоне можно так опции получать:
$options = new Options('localhost', 'root', '', 'mydata');
	display_template('./themes/'.SKIN.'/header.tpl', $options);
<title><?php print $template['options']->getOption('title'); ?></title>

P.S.
Работоспособность кода не проверял, но думаю суть ясна.

P.S.S.
Единственный минус тут, если частое обращение к опциям - частое обращение к ДБ, но я думаю в наше время это не так кретично, да и если что, подход легко изменить, например опции при первом запросе все вытаскивать и хранить их в членах класса, а в деконструкторе, проверяем были ли внесены изминения, если да - то еще один запросик с апдейтом. Вобщем почти ORM :)
  • 0

#6 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 05 August 2009 - 10:36

v1ex, считаю что для пары простых настроек подойдёт обычный массив, зачем всё в БД пихать. Если конечно человек хочет с помощью интерфейса править данные, то естественно удобнее в БД хранить, иначе нафиг.
  • 0

#7 v1ex

v1ex
  • Неактивные
  • 225 сообщений
  • Репутация: 0

Отправлено 05 August 2009 - 10:49

v1ex, считаю что для пары простых настроек подойдёт обычный массив, зачем всё в БД пихать. Если конечно человек хочет с помощью интерфейса править данные, то естественно удобнее в БД хранить, иначе нафиг.

Согласен, нету смысла в БД хранить данные без правки через интерфейс. Сам люблю хранить все в массиве, но вот заказчики к сожалению - нет :)
  • 0



Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru