[Решено] Своя глобальная переменная. Как создать?

Аватар пользователя AlexeyBorisenko AlexeyBorisenko 3 октября 2012 в 7:19

Добрый день!
Подскажите, как реализовать в Drupal 6 свою переменную, которую можно было бы редактировать через админку.
Смысл заключается в том, что есть каталог товаров. У каждого продукта есть цена в $.
Товары выводятся естественно через views (список товаров) и с полным описанием через node.tpl.
В этих файлах я сделал, что поле Цена * Курс доллара = Цена в рублях. Причина такой функции, что цена товара меняется чаще только за счет изменения курса доллара.

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

В каком направление рыть???

0 Thanks

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 3 октября 2012 в 8:54

Сделай форму с 1 полем ввода.
В обработчике формы используй variable_set. И в дальнейшем межешь обращаться к ней по variable_get
Можно ещё в preprocess_node добавить к объекту ноды этот курс.

Аватар пользователя sg85 sg85 3 октября 2012 в 8:56

variable_set\variable_get для работы с этой переменной
Forms API для админки
hook_menu для неё же
Views API для создания хендлера вьювс(я так понимаю, вам это поле еще и выводить нужно) либо, PHP Field или как его там для того же но прямо в админке(в вашем случае 1й вариант лучше)
Ну и любая статья по написанию модулей

Аватар пользователя Groomak Groomak 3 октября 2012 в 11:48

Я ковырял этот вопрос больше 2 лет назад. Так же насчет курса.
Итак. Создаешь новый тип ноды. Добавляешь поля для ввода курса, и всего что нужно. У меня 24 поля. Дальше в шаблоне

пишешь <?php $nid = (НОМЕР НОДЫ СО СВОИМИ ПОЛЯМИ) ; $node = node_load($nid);?>

теперь переменные доступны по <?php print $node->ИМЯ ПОЛЯ[0]['value']?>

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 3 октября 2012 в 12:20
"Chyvakoff" wrote:

В обработчике формы используй variable_set. И в дальнейшем межешь обращаться к ней по variable_get

Мусье, какой variable_set(), вы о чём?
hook_settings() же, и всё будет афтаматическе

Аватар пользователя Groomak Groomak 3 октября 2012 в 12:23
"RxB" wrote:

Мусье, какой variable_set(), вы о чём?
hook_settings() же, и всё будет афтаматическе

Курс доллара должен редактироваться менеджером сайта, - а как с этим быть?

Аватар пользователя Groomak Groomak 3 октября 2012 в 12:46
"RxB" wrote:

А пермишены отменили в шестом друпале?

Я не спорю. Мне интересен Ваш способ, так как возможно более технологичен. Можете поподробнее объяснить как модератору редактировать эти переменные из админки?

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 3 октября 2012 в 12:52
"Chesla" wrote:

Я не спорю. Мне интересен Ваш способ, так как возможно более технологичен. Можете поподробнее объяснить как модератору редактировать эти переменные из админки?

1. Включить компьютер
...
...
...
n. Залогиниться на сайт
n+1. Перейти на страницу с настройками
n+2. Отредактировать настройки
n+3. Нажать сохранить

В модуле examples примера нет, вроде, смотреть тут или в любом другом месте в гугле http://kristiannissen.wordpress.com/2009/05/21/drupal-6-and-admin-settings/

Аватар пользователя Groomak Groomak 3 октября 2012 в 13:08
"RxB" wrote:

n. Залогиниться на сайт
n+1. Перейти на страницу с настройками
n+2. Отредактировать настройки
n+3. Нажать сохранить

ВАШ САРКАЗМ НЕ УМЕСТЕН.

ЧТО НУЖНО СДЕЛАТЬ ДЛЯ ТОГО ЧТО БЫ НАСТРОЙКИ ПЕРЕМЕННЫХ ОКАЗАЛИСЬ НА СТРАНИЦЕ С НАСТРОЙКАМИ? и ЧТО ЭТО КСТАТИ ЗА СТРАНИЦА?

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 3 октября 2012 в 13:19

Chesla, я уж не знаю как ответить. Толи троллишь ты меня, толи тормозишь как первый пень. Я вроде не работаю пересказчиком документации.
1. Написать модуль somemodule.
2. Реализовать там hook_menu()
3. Сунуть туда такое:

    'page callback' => 'drupal_get_form',
    'page arguments' => array('somemodule_configure'),

Потом сделать функцию:

function somemodule_configure() {
  $form['somemodule_somesettings'] = array(
    '#type' => 'radios',
    '#title' => t('somesettings'),
    '#default_value' => variable_get('somemodule_somesettings', 0),
    '#options' => array(t('somesettings1'), t('somesettings2')),
  );
  return system_settings_form($form);
}

Появится страница в админке, на которую может зайти менеджер и сделать настройки.

"Chesla" wrote:

ВАШ САРКАЗМ НЕ УМЕСТЕН.

Или не тупим или показываем справку, пример с кодом был в прошлом комментарии.

Аватар пользователя Groomak Groomak 3 октября 2012 в 13:29

Никто не тупит. Не всем подсилу/нужно писать модули, а Вы пропустили вот это

1. Написать модуль somemodule.

2. Реализовать там hook_menu()
3. Сунуть туда такое:

Теперь ответ полный. А ссылка не рабочая.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 10 ноября 2015 в 11:48
"Chesla" wrote:

Теперь ответ полный. А ссылка не рабочая.

Ага, и ссылка нерабочая, и гугл продали хохлам

"Chesla" wrote:

Не всем подсилу/нужно писать модули

Что сложного в написании модулей? CTRL + C and CTRL + V не работает?
Конечно лучше быдлокодить и делать лишний node_load(), чем расти, развиваться и делать нормальные во всех отношениях сайты

Аватар пользователя Groomak Groomak 3 октября 2012 в 13:42
"RxB" wrote:

Конечно лучше быдлокодить и делать лишний node_load(), чем расти, развиваться и делать нормальные во всех отношениях сайты

Вот за этим и задан был мой вопрос:

Мне интересен Ваш способ, так как возможно более технологичен. Можете поподробнее объяснить как модератору редактировать эти переменные из админки?

На что было полученно от вас милейший:

Толи троллишь ты меня, толи тормозишь как первый пень. Я вроде не работаю пересказчиком документации.

Не хочешь делится своими сакральными знаниями не делись. Нехер пнями остальных называть. Не думал что на этом сайте такое быдло водится.

Суперпупернебыдлокодер

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 3 октября 2012 в 13:47
"Chesla" wrote:

Не хочешь делится своими сакральными знаниями не делись. Нехер пнями остальных называть. Не думал что на этом сайте такое быдло водится.

Напоминает обиду мужика-импотента, когда его баба обвинила в половом бессилии.
Повторю:
была ссылка на заметку в блоге
Не открывается ссылка? Кеш гугла придуман для лохов, понятно.
есть сайт drupal.org
первый же результат по запросу Form Settings http://drupal.org/node/222158
есть модули ядра, которые крайне рекомендуются для изучения.

Я очень извиняюсь, что не написал для Вашего высочества модуль реализующий сию приблуду.