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


× Быстрый вопрос
Пользователь месяца
dos1k dos1k 1-й за Май
Очков активности: 1 194 28 тем, 115 сообщений, 4 балла репутации
Сайт: dos1k.ru
ТОП самых активных за этот месяц
  • Фотография Olya23
    #1

    Olya23
    Очков активности: 990 3 темы, 123 сообщения, 5 баллов репутации

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

    Rodiola (rukodelkovo.ru)
    Очков активности: 684 0 тем, 76 сообщений, 6 баллов репутации

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

    maxnik (konovalovpavel.ru)
    Очков активности: 90 0 тем, 20 сообщений, 3 балла репутации

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

    agrx (key-assort.ru)
    Очков активности: 54 0 тем, 18 сообщений, 2 балла репутации

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

    fedornabilkin (plohoneponyal.ru)
    Очков активности: 51 0 тем, 17 сообщений, 2 балла репутации

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

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

  • Фотография Андрей WPMasterKZ
    #7

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 37.5 0 тем, 25 сообщений, 1 балл репутации

  • Фотография re-search
    #8

    re-search
    Очков активности: 36 5 тем, 9 сообщений, 1 балл репутации

  • Фотография FIvYUr
    #9

    FIvYUr (catblogger.ru)
    Очков активности: 36 0 тем, 24 сообщения, 1 балл репутации

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

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

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 24.05.2019
  • Яндекс выдача: 19.06.2019
Топ 5 участников по репутации


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

#1 Евгений

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

Отправлено 04 Август 2009 - 13:03

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

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


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

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

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

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

 

 

  • 0

#2 v1ex

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

Отправлено 04 Август 2009 - 13:50

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

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

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

#3 Евгений

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

Отправлено 04 Август 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 Август 2009 - 13:59

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

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

#5 v1ex

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

Отправлено 04 Август 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
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 05 Август 2009 - 10:36

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

#7 v1ex

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

Отправлено 05 Август 2009 - 10:49

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

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



Похожие темы

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

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