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

3 октября 2012 в 7:19

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

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

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

Комментарии

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

3 октября 2012 в 8:56

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

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

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

3 октября 2012 в 11:48

"Chyvakoff" wrote:

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

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

3 октября 2012 в 12:20

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

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

3 октября 2012 в 12:23

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

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

3 октября 2012 в 12:46

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

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

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

3 октября 2012 в 12:52

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

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

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

3 октября 2012 в 13:08

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:
ВАШ САРКАЗМ НЕ УМЕСТЕН.

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

3 октября 2012 в 13:19

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

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

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

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

3 октября 2012 в 13:29

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

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

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

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

10 ноября 2015 в 11:48

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

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

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

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

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

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

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

3 октября 2012 в 13:42

"Chesla" wrote:

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


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

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

3 октября 2012 в 13:47