+18.11
Рейтинг
50.70
Сила

1099511627776

2 раза нет это какбы опечатка. Но надеюсь суть предложения понятна.
К стати у меня еще вопрос по типам топиков но это вопрос уже для отдельного поста. Куда бы лучще его запостить?
Тогда звиняйте, за пример он просто был сделан для того чтоб показать что ничего страшного нет в том чтобы добавить эту функциональность — нет
Ну я какбы скрипт накатал. Я думаю его можно в любой модуль втулить.
О своем мнении по поводу размещения этой функциональности в штатном ЛС или в его дополнениях — я высказал.
Стоит ли добавлять это — вопрос к разработчикам.
Использование предлолагаеться так:
$this->oEngine->setParam($this,"kuku","kuku");
print $this->oEngine->getParam($this,"kuku");
Спасибо, но это получеться отдельный модуль. А я говорю о штатной функциональности движка.
Всетаки мое мнение что такая функциональность должна быть штатно в движке
Вот как она выглядит в очень МИНИМАЛЬНОМ виде(Патч для текущей версии ЛС):


diff --git a/config/config.php b/config/config.php
index 0d7c5b1..9ab2c0c 100644
--- a/config/config.php
+++ b/config/config.php
@@ -280,6 +280,8 @@ $config['db']['params']['dbname'] = 'social';
 $config['db']['table']['prefix'] = 'prefix_';
 
 $config['db']['table']['user']                = '___db.table.prefix___user';
+$config['db']['table']['moduleparams']                = '___db.table.prefix___moduleparams';
+
 $config['db']['table']['blog']                = '___db.table.prefix___blog';
 $config['db']['table']['topic']               = '___db.table.prefix___topic';
 $config['db']['table']['topic_tag']           = '___db.table.prefix___topic_tag';
diff --git a/engine/classes/Engine.class.php b/engine/classes/Engine.class.php
index 790f51f..7b04b1e 100644
--- a/engine/classes/Engine.class.php
+++ b/engine/classes/Engine.class.php
@@ -950,6 +950,19 @@ class Engine extends Object {
 			//throw new Exception("(autoload '$sClassName') Can not load CLASS-file");
 		}
 	}
+
+	public static function setParam($obj,$parname,$parvalue) {
+		$oConnect = Engine::getInstance()->Database_GetConnect();
+		$sql = "INSERT INTO ".Config::Get('db.table.moduleparams')." (modulename,paramname,paramvalue) values (?,?,?)";
+		$oConnect->query($sql,get_class($obj),$parname,$parvalue);
+	}
+
+	public static function getParam($obj,$parname) {
+		$oConnect = Engine::getInstance()->Database_GetConnect();
+		$sql = "SELECT paramvalue FROM ".Config::Get('db.table.moduleparams')." WHERE modulename=? AND paramname=?";
+		$aRow=$oConnect->selectRow($sql,get_class($obj),$parname);
+		return $aRow['paramvalue'];
+	}
 	
 }
 
diff --git a/install/sql.sql b/install/sql.sql
index 6f08620..a961497 100644
--- a/install/sql.sql
+++ b/install/sql.sql
@@ -145,6 +145,7 @@ CREATE TABLE IF NOT EXISTS `prefix_country` (
   KEY `country_name` (`country_name`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
+
 -- --------------------------------------------------------
 
 --
@@ -789,3 +790,9 @@ ALTER TABLE `prefix_user_field_value`
 --
 ALTER TABLE `prefix_vote`
   ADD CONSTRAINT `prefix_topic_vote_fk1` FOREIGN KEY (`user_voter_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+
+CREATE TABLE IF NOT EXISTS `prefix_moduleparams` (
+  `modulename` varchar(60) NOT NULL,
+  `paramname` varchar(60) NOT NULL,
+  `paramvalue` varchar(60) NOT NULL,
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
Ну к примеру поля таблицы могут выглядеть так:
modulename varchar(),
paramname varchar(),
paramval varchar()
Циферки можна потом расставить
в Engine внедрить методы:
GetParam, SetParam, EnumParam
Которые и будуть выбирать соответствующие параметры из БД автоматически подставляя в поле modulename — название модуля из которого вызываются.
Как то так
а вы предлагаете каждый раз залить и менять ручками параметры?
Приведу пример: Есть плагин «Гороскопы» у него есть возможность выбирать из 7 разных типов гороскопов. Причем выбирать через админку (т.е. не правкой конфигов). Теперь я хочу чтобы этот ВЫБОР был сохранен. Соответственно либо в конфиге (неудобный способ) или в общей таблице ПАРАМЕТРОВ модуля (удобный способ).
В данный момент это делается через создание собственной таблицы с параметрами. но согласитесь создавать целую таблицу ради к примеру 1-го параметра — не экономично.
Вот как-то так
Ну так как никого не интересует?
Тогда другой вопрос. Кого нибуть интересует такая функциональность ШТАТНО встроенная у ЛС