На 100% уверен что знать надо. Ноду можно сгенерировать из любого модуля.
Мне нужно стемезировать node-product.tpl.php. Понятно что можно это сделать в своей теме путем добавления этого файла.
Тогда скажите как добавить в этот tpl.php ubercart attribute (выпадающий список).
То есть щас это выводится в одной переменной $content (содержимое, изображение, цена, кнопка добавление в корзину и выпадающий список с категорией товара). Надо это по отдельности вывести.
Вам 200% тогда это знать не надо, вам надо знать:
1. разницу между формой и темплейтом
2. как работать с файлом node-product.tpl.php, который лежит в вашей теме.
3. и быть уверенным что вы хотите поместить элемент формы в темлейт, и что он должен делать.
4. и конечно Form API
Безлепкин ты не обижайся на нас, тут понимаеш такое дело, вот представь себя школьника пусть и старших классов в универе среди последнего курса студентов, которых спрашивает как решить уравнение лагранжа пользуясь калкулятором...
твой вопрос сформулирован изначально не в той плоскости, тебе про молекулярную физику пытаються сказать, а ты про простую физику в лучшем случае думаеш, потому и недопонимание. Что бы получить вразумительный ответ ты сформируй првильный вопрос - в даном случае чувствуеться что ты пытаешся решить задачю своим методом и спрашиваеш почему не получаеться, вместо того чтобы разбираться где ты не правильно думаеш или применяеш технологию проще отшутиться. Ты попробуй объяснить что ты имееш и что ты пытаешся получить, тобиш какую задачю решаеш. Бо может статься что она решаеться готовым решением и совсем не так как ты себе представляеш...
Модуль ubercart передает параметры в модуль node наверное.
Но уже не надо
Надо теперь в блоке вывести форму (кнопку добавить в карзину в ней же и выпадающий список с категорией).
Делаю drupal_get_form('id_формы') но надо что бы в зависимости от nid выводилось.
Если нет его можно добавить скопировав и подрубив файл node.tpl.php
Отсюда вопрос - откуда копировать?
"Bezlepkin" wrote:
какждый тут пытается высметять и поумничать. Человеком надо быть в первую очередь.
Есть такое.. вы не обижайтесь.
Просто в силу сложности друпала вы его не до конца поняли и решили что плясать надо от формирования ноды, а не от темизации. Чисто логически вы правы, но в контексте Drupal - нет.
Выведи в шаблоне объект ноды: print_r($node);
Если стоит [module=devel] , то dpm($node);
И посмотри что там внутри.
Поймешь из чего сформирован массив объект ноды и сможешь выводить части этого объекта в нужных тебе местах.
Если чего то нехватает - то заюзаешь hook_nodeapi и добавишь в ноду нужные тебе переменные. А где и как формируется нода-поверь,тебе не нужно.Точнее смысла нет выяснять что и как там формируется.
Комментарии
На 80% уверен что оно вам знать не надо...
А так - все "ноды формируются" в модуле node.
Э... там же гдe и другие *.tpl.php?
Они в разных местах могут лежать..
Ещё бы ТС попонятнее выразился. А то в женщине загадки меньше чем в топике.
Если лежит то скорее всего в папке темы оформления (кто-то закинул).
Если нет его можно добавить скопировав и подрубив файл node.tpl.php
На 100% уверен что знать надо. Ноду можно сгенерировать из любого модуля.
Мне нужно стемезировать node-product.tpl.php. Понятно что можно это сделать в своей теме путем добавления этого файла.
Тогда скажите как добавить в этот tpl.php ubercart attribute (выпадающий список).
То есть щас это выводится в одной переменной $content (содержимое, изображение, цена, кнопка добавление в корзину и выпадающий список с категорией товара). Надо это по отдельности вывести.
Вам 200% тогда это знать не надо, вам надо знать:
1. разницу между формой и темплейтом
2. как работать с файлом node-product.tpl.php, который лежит в вашей теме.
3. и быть уверенным что вы хотите поместить элемент формы в темлейт, и что он должен делать.
4. и конечно Form API
Вы знаете ответ на мой вопрос?
42! (с)
сорри не удержался
Лан...
Заметил особенность, какждый тут пытается высметять и поумничать. Человеком надо быть в первую очередь.
Безлепкин ты не обижайся на нас, тут понимаеш такое дело, вот представь себя школьника пусть и старших классов в универе среди последнего курса студентов, которых спрашивает как решить уравнение лагранжа пользуясь калкулятором...
твой вопрос сформулирован изначально не в той плоскости, тебе про молекулярную физику пытаються сказать, а ты про простую физику в лучшем случае думаеш, потому и недопонимание. Что бы получить вразумительный ответ ты сформируй првильный вопрос - в даном случае чувствуеться что ты пытаешся решить задачю своим методом и спрашиваеш почему не получаеться, вместо того чтобы разбираться где ты не правильно думаеш или применяеш технологию проще отшутиться. Ты попробуй объяснить что ты имееш и что ты пытаешся получить, тобиш какую задачю решаеш. Бо может статься что она решаеться готовым решением и совсем не так как ты себе представляеш...
Мой вопрос был где формируется node-product.tpl.php.
Я не спрашивал как мне сделать что то.
первый пост ответил на твой вопрос, какие претензии?
Модуль ubercart передает параметры в модуль node наверное.
Но уже не надо
Надо теперь в блоке вывести форму (кнопку добавить в карзину в ней же и выпадающий список с категорией).
Делаю drupal_get_form('id_формы') но надо что бы в зависимости от nid выводилось.
Все это уже есть. Поищите в блоках да обрящите.
А выпадающий список в уберкарте это атрибуты.
Грубо конечно сказано, но по другому...
А еще возьмите тему с поддержкой уберкарта, например acquia_prosper
Хорошо отвечаю на первый вопрос. Файл формируется в текстовом редакторе.
Bezlepkin, Вы в тему оформления зашли?
Файл node.tpl.php в папке темы видите?
Скопируйте его и переименуйте node-product.tpl.php - можете править!
Вам еще что-то подсказать?
Отсюда вопрос - откуда копировать?
Есть такое.. вы не обижайтесь.
Просто в силу сложности друпала вы его не до конца поняли и решили что плясать надо от формирования ноды, а не от темизации. Чисто логически вы правы, но в контексте Drupal - нет.
Выведи в шаблоне объект ноды:
print_r($node);
Если стоит [module=devel] , то
dpm($node);
И посмотри что там внутри.
Поймешь из чего сформирован
массивобъект ноды и сможешь выводить части этого объекта в нужных тебе местах.Если чего то нехватает - то заюзаешь hook_nodeapi и добавишь в ноду нужные тебе переменные. А где и как формируется нода-поверь,тебе не нужно.Точнее смысла нет выяснять что и как там формируется.
Поищите в блоках да обрящите.???????
Такое решение.
Создал блок.
<?php
function add_to_cart_block($op = 'list', $delta = 0, $edit = array()) {
switch (
$op) {case 'list':
$blocks[0]['info'] = t('Add to cart');
$blocks[0]['cache'] = BLOCK_NO_CACHE;
return $blocks;
case
'view':$node = node_load(arg(1));
$block['content'] = theme('uc_product_add_to_cart', $node, 0, 0);
return
$block;}
}
?>
А чё, case уже без break юзают?
<? $o='Краткость-сестра таланта'?>
<?=$o?>
Где вы $o нашли?
И у вандюка break почему то только после case 'save' стоит.