Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 94 Ответов
  • 40567 Просмотров
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
дык
Цитировать
$new_img_fly = '<div style="position: absolute
  ;D
В CSS шаблона сайта я прописал все что нужно, не смотрит он в CSS. Код тот же самый, причем абсолют я убрал, с абсолютом естественно он бы не смотрел никуда  ;D
*

iluvvm

  • Захожу иногда
  • 73
  • 2 / 0
*

dark_star

  • Захожу иногда
  • 109
  • 7 / 0
Он у тебя и не будет в ксс смотреть, у тебя же не прописан стиль.
Вот как стиль прописывается
Код
$new_img_fly = '<div id="newprodinweek"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/new_img_fly.png" border="0" alt="Новинка" title="Новинка"></div>';
<div id="newprodinweek">
У тебя сам стиль прописан в коде получается. Так же прописано и у автора данной темы. Я же предложил свой вариант, который выше и щас тут продублировал, чтобы не ползать каждый раз в код и не править как надо, а лазить в ксс и там править.
Код моего ксс
Код
#liderprodash{ // Лидер продаж на странице товара
position:relative;
top:50px;
}

#cat_liderprodash{ // Лидер продаж в списке категории товаров
position:relative;
top:-180px;
}

#newprodinweek{ // Новый товар на странице товара
position:relative;
top:50px;
}

#cat_newprodinweek{ // Новый товар в списке категории товаров
position:relative;
top:-180px;
}
Выводим и на список категории и на саму страницу товара, разные стили ксс, потому что позиционирование разное и отличается.
*

kunev

  • Захожу иногда
  • 118
  • 0 / 0
Попробуй в той теме и сообщении поискать http://joomlaforum.ru/index.php/topic,119541.msg830862.html#msg830862
Я конечно непонял как ты так список категории выводишь, но вдруг та тема или пост наведут тебя на мысль.
Я бы попытался вот после этого или перед этим вставить

да как я уже не пробовал не выходит, просто с дивом, наотрез не работает

<div style='position: absolute; right: 0px; top: 0;'><?php echo $new_img ?></div><div style='position: absolute; right: 0px; bottom: 0;'><?php echo $leader_img ?></div></div>

а с добавлением поля, нету результата

$data[$row][] = "<div style='position: absolute; right: 0px; top: 0;'><?php echo $new_img ?></div><div style='position: absolute; right: 0px; bottom: 0;'><?php echo $leader_img ?></div></div>";

или так

$img_cell .= "<div style='position: absolute; right: 0px; top: 0;'>".$product['new_img']."</div><div style='position: absolute; right: 0px; bottom: 0;'>".$product['leader_img']."</div></div>";
$data[$row][] = $img_cell;

выручайте, как его добавить именно browse_listtable.tpl.php?

« Последнее редактирование: 15.03.2011, 18:01:56 от kunev »
*

dark_star

  • Захожу иногда
  • 109
  • 7 / 0
Код
$data[$row][] = "<div style='position: absolute; right: 0px; top: 0;'><?php echo $new_img ?></div><div style='position: absolute; right: 0px; bottom: 0;'><?php echo $leader_img ?></div></div>";
В php очень слаб, но раз у тебя уже код php идет, зачем ты еще раз его вызываешь? <?php echo $new_img ?>
Так мы его вызывает на fly-странице потому что там не чисто php код.
Попробуй указать просто переменные.
Для проверки просто куда нить добавь в код переменные, чтобы знать выводит у тебя он их или нет. У меня сомнения что он в этом файле вообще будет выводить переменные.
*

kunev

  • Захожу иногда
  • 118
  • 0 / 0
dark_star, дело в том, что если указывать чисто <?php echo $new_img ?> в файле browse_listtable.tpl.php страница сайта не грузится напрочь вообще
*

dark_star

  • Захожу иногда
  • 109
  • 7 / 0
Я о том же, что так не должно быть, по коду там идет цикл, который извлекает данные с массива, и он просто не понимает какую переменную ты запрашиваешь.
Ты пробовал просто вывести эти переменные например внизу самого кода? чтоб увидеть запрашиваются ли переменные вообще?
*

kunev

  • Захожу иногда
  • 118
  • 0 / 0
dark_star, да в том то и дело что видит  ^-^. Вывести его можно $data[$row][] = $product['new_img']

Вообщем, как переменную $product['new_img'] привязать к
$data[$row][] = '<a href="'.$product['product_full_image'].'" onclick="return hs.expand(this)" target="_blank">'
                  . ps_product::image_tag($product['product_thumb_image'], 'alt="'.$product_name .'"')
                  . '</a>';
чтоб картинка хит или новинка была на одной строке с картинкой товара и желательно с нужной позицией, чтоб можно было её сдвинуть на фон картинки с товаром

« Последнее редактирование: 16.03.2011, 01:05:06 от kunev »
*

dark_star

  • Захожу иногда
  • 109
  • 7 / 0
Раз у тебя выводит он ее, просто поставь ее как $product['new_img'] ..... (твой код с картинкой) и завершается все . '</a>';
Код
$data[$row][] = $product['new_img'].'<a href="'.$product['product_full_image'].'" onclick="return hs.expand(this)" target="_blank">'
                  . ps_product::image_tag($product['product_thumb_image'], 'alt="'.$product_name .'"')
                  . '</a>';
И затем правишь уже кссом куда тебе он нужен, примерный ксс я выше приводил ответ № 33

Щас попробовал сделать как ты, взял стандартный browse_listtable.tpl.php и в  нем сделал как написал, картинка отобразилась еще правда добавил $product['leader_img'], чтоб уж и новинку и лидера выводил
Код
$data[$row][] = $product['new_img'].$product['leader_img'].'<a href="'.......
Выводит, и остается только кссом подправить, так как файл я взял стандартный, тоу  меня вот такой ксс получился, чтобы картинка была в левом верхнем углу.
Не забывает, чтобы вывести картинки у вас товар должен быть недавно добавлен (14 дней, так в коде написано, можно и самим изменить на любое количество дней),это для "новинка" и стоять галочка "Специальное приложение", чтобы выводить "Лидер продаж"
Код
#cat_newprodinweek{
position:relative;
top:-160px;
left: -55px;
}
« Последнее редактирование: 16.03.2011, 10:29:08 от dark_star »
*

kunev

  • Захожу иногда
  • 118
  • 0 / 0
гы, делал, тоже токо вроде через запятую crazy! Вечером, как приеду обязательно опробую, я просто в командировке.  От себя +1 за помощь! Спасибо
*

kunev

  • Захожу иногда
  • 118
  • 0 / 0
« Последнее редактирование: 16.03.2011, 20:38:45 от kunev »
*

dark_star

  • Захожу иногда
  • 109
  • 7 / 0
Ну и хорошо что работает, теперь не только в browse_x, но и в browse_listtable.tpl.php можно выводить. Автор статьи добавь к себе в первый пост, как можно вывести в browse_listtable.tpl.php, вдруг кому еще пригодится.

Теперь с тобой попробуем разобраться
А как вывести все новинки?
Какие новинки, куда вывести? Поподробнее распиши свою проблему.
*

iluvvm

  • Захожу иногда
  • 73
  • 2 / 0
Сделал флажки "новинка" и "хит" по предложенному в теме коду. Их видно при просмотре каталога товаров.
А как реализовать раздел "новинки" или "хиты продаж", где будут показаны только отмеченные товары?
*

dark_star

  • Захожу иногда
  • 109
  • 7 / 0
Если брать этот код, то "Лидер продаж" это спец предложение, есть модуль который выводит отдельно все спец предложения (mod_virtuemart_featuredprod) или ссылкой
http://site/index.php?option=com_virtuemart&page=shop.browse&featured=Y
а вот с новинками незнаю, в соседней теме выводят ссылкой, пойду искать где это писалось.
Вот ответ
но он относится к тому хаку, поэтому он не будет работать у вас, потому что изменением файлов там ничего не получится, там идет запрос к базе, а в том хаке вносились изменения в базу магазина.
« Последнее редактирование: 17.03.2011, 22:00:24 от dark_star »
*

iluvvm

  • Захожу иногда
  • 73
  • 2 / 0
Спасибо, сделал как в той теме, работает!
*

dark_star

  • Захожу иногда
  • 109
  • 7 / 0
Конечно работает, там надо изменения вносить в базу. Смысл этой темы-хака, в том что не нужно вносить изменения в базу и выводятся картинки по другим параметрам.
*

Abitatel

  • Захожу иногда
  • 52
  • 10 / 0
ооо, целая страница обсуждения про абсолютное позиционирование.

Уважаемые, если вы занимаетесь изготовлением сайтов, наверное надо выделить время на изучение хотя бы азов css

Итак, рассказываю.

Абсолютное позиционирование работает (ставит координаты) относительно того элемента, у которого позиционирование относительное (relative).

То-есть, если мы имеем

div id=shop_browse (position: relative)

   div id=tovar_items (position - НЕ прописано)
       div id=img_label (position: absolute)

   div id=tovar_items (position - НЕ прописано)
       div id=img_label (position: absolute)

   div id=tovar_items (position - НЕ прописано)
       div id=img_label (position: absolute)

   div id=tovar_items (position - НЕ прописано)
       div id=img_label (position: absolute)

где:
div id=shop_browse - контейнер ВНУТРИ которого выводится СПИСОК товаров,
div id=tovar_items   - контейнер товара
div id=img_label      - контейнер "метки" - новинка или лидер продаж

то контейнеры меток (div id=img_label) "спозиционируются" НЕ относительно контейнеров товаров (div id=tovar_items), а относительно контейнера списка товаров (div id=shop_browse)

Таким образом, если мы хотим позиционировать контейнеры меток относительно контейнеров ТОВАРОВ, нам нужно в стилях контейнеров товаров (div id=tovar_items) прописать position: relative;


ps. ну и на мой взгляд, для вывода картинки-метки, не нужно ее оборачивать в дополнительный див. Можно прописать стили к самой картинке.
например - img id=new_label или img id=leader_label

то-есть вот это можно смело модифицировать в такой вид

Код
// Check for new product wher $db_product query is "SELECT * FROM #__{vm}_product WHERE
// product_id='$product_id' "
if ((time() - $db_product->f("cdate")) < (14 * 86400)) { // 14 Days *  (number of seconds in  24 hours)
    //$new_img = "New Item"; // code required for new tag - text only version
    $new_img_fly = '<img id="new_label" src="'. $mosConfig_live_site .'/images/stories/labels_product/new_img_fly.png" border="0" alt="Новинка" title="Новинка" align="right">'; // code required for new tag
} else {
    $new_img_fly = "";
}

if( $db_product->f("product_special") == "Y" ) {
    $leader_img_fly = '<img id="leader_label" src="'. $mosConfig_live_site .'/images/stories/labels_product/leader_img_fly.png" border="0" alt="Лидер продаж" title="Лидер продаж" align="right">'; // code required for new tag
} else {
    $leader_img_fly = "";
}

и, соответственно, прописать стили

Код
img#new_label,
img#leader_label {
position: absolute;
top:        10px; /*или bottom:   нужное значение;*/
left:        10px; /*или right:   нужное значение;*/
}

хак полезный, автору +
*

Abitatel

  • Захожу иногда
  • 52
  • 10 / 0
кстати можно и еще по другому переделать вывод картинок-меток

например так

Код
// Check for new product wher $db_product query is "SELECT * FROM #__{vm}_product WHERE
// product_id='$product_id' "
if ((time() - $db_product->f("cdate")) < (14 * 86400)) { // 14 Days *  (number of seconds in  24 hours)
     //$new_img = "New Item"; // code required for new tag - text only version
     $new_img_fly = '<div id="new_label"></div>'; // code required for new tag
} else {
     $new_img_fly = "";
}

if( $db_product->f("product_special") == "Y" ) {
     $leader_img_fly = '<div id="leader_label"></div>'; // code required for new tag
} else {
     $leader_img_fly = "";
}

и прописать для этих дивов стили с фонами с нужными картинками.


Цитировать
#new_label,
#leader_label {
position: absolute;
top: 10px;
right: 10px;
background: transparent no-repeat top left;
display: block;
width: 100px; /* под размеры картинки */
height: 100px; /* под размеры картинки */
}

#new_label {
background-image: url(../images/new_label.png)
}

#leader_label {
background-image: url(../images/leader_label.png)
}

ну и, соответственно, положить эти две картинки - new_label.png и leader_label.png в в нужную папку
*

dark_star

  • Захожу иногда
  • 109
  • 7 / 0
Abitatel: Такой вариант был предложен еще в 6 ответе данной темы, чтобы не прописывать все в коде, а вывести в ксс стиль или 33 ответ. Просто автор данной темы не посчитал нужным (или уже не посещает данную темы) добавить этот вариант в первый пост.
Вот только у вас там неувязочка, вы говорите надо везде писать position: relative;, что конечно же правильно, но сами везде и в первом и во втором посте пишите position: absolute;, как пример. Если вы уж объясняете нам как надо правильно писать ксс, то вы не делайте таких ошибок.

По второму посту.
Прописывание картинки не в коде, а в ксс очень хороший метод, ну если конечно вам не нужны alt и title (а они и не нужны, так как это не оригинальная картинка, а дополнительная). Но у вас опять же указан путь к картинке как url(../images/new_label.png). Здесь надо дать пояснения, что картинки надо положить в свой шаблон сайта (site.ru/templates/имя_шаблона) и там создать папку images (если ее там нету), в которую вы и положите картинки. Когда я прочитал я подумал сразу про папку site.ru/images (или я один такой который думает про другие папки).
Своим постом вы некоторых точно запутали и они долго будут думать почему у них не выводится все в нужном месте с position: absolute;, подредактируйте его пжлста, не все ведь знают ксс.
« Последнее редактирование: 02.04.2011, 12:44:55 от dark_star »
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Abitatel: Такой вариант был предложен еще в 6 ответе данной темы, чтобы не прописывать все в коде, а вывести в ксс стиль или 33 ответ. Просто автор данной темы не посчитал нужным (или уже не посещает данную темы) добавить этот вариант в первый пост.
Вот только у вас там неувязочка, вы говорите надо везде писать position: relative;, что конечно же правильно, но сами везде и в первом и во втором посте пишите position: absolute;, как пример. Если вы уж объясняете нам как надо правильно писать ксс, то вы не делайте таких ошибок
высказывание по поводу ошибок меня улыбнуло http://joomlaforum.ru/index.php/topic,124217.msg845022.html#msg845022
*

Abitatel

  • Захожу иногда
  • 52
  • 10 / 0
Abitatel: Такой вариант был предложен еще в 6 ответе данной темы, чтобы не прописывать все в коде, а вывести в ксс стиль или 33 ответ. Просто автор данной темы не посчитал нужным (или уже не посещает данную темы) добавить этот вариант в первый пост.
Вот только у вас там неувязочка, вы говорите надо везде писать position: relative;, что конечно же правильно, но сами везде и в первом и во втором посте пишите position: absolute;, как пример. Если вы уж объясняете нам как надо правильно писать ксс, то вы не делайте таких ошибок.



ООО ! : )) Ну давайте разберемся с "ошибками"

Сначала про absolute. Перечитайте мой пост и подумайте о ЧЕМ я говорил. Я говорил о том что необходимо position: relative прописать для каждого блока ТОВАРА, и тогда блок "метки" с АБСОЛЮТНЫМ позиционированием, будет ПРАВИЛЬНО позиционироваться именно относительно этого внешнего - следующего к нему блока ТОВАРА. Сейчас нарисую и приложу.


примем что:
синий блок -     div id=shop_browse
красный блок - div id=tovar_items   
зеленый блок - div id=new_label (или id=leader_label)

Итак смотрите о чем я писал? "Прыгают" метки у тех, у кого position: relative НЕ прописано для "красных" блоков. И именно для НИХ надо прописать position: relative и только ПОСЛЕ ЭТОГО прописывать абсолютное позиционирование для меток (зеленые блоки), и позиционировать их как угодно.



По второму посту.
Прописывание картинки не в коде, а в ксс очень хороший метод, ну если конечно вам не нужны alt и title (а они и не нужны, так как это не оригинальная картинка, а дополнительная). Но у вас опять же указан путь к картинке как url(../images/new_label.png). Здесь надо дать пояснения, что картинки надо положить в свой шаблон сайта (site.ru/templates/имя_шаблона) и там создать папку images (если ее там нету), в которую вы и положите картинки. Когда я прочитал я подумал сразу про папку site.ru/images (или я один такой который думает про другие папки).
Своим постом вы некоторых точно запутали и они долго будут думать почему у них не выводится все в нужном месте с position: absolute;, подредактируйте его пжлста, не все ведь знают ксс.


По поводу расположения картинок. Специально НЕ написал. Потому как располагать их можно как в шаблоне сайта так и в шаблоне виртмарта. Все зависит от того в каком файле CSS вы будете прописывать стили.
Нужно потрудиться и выучить это а не просто копипастить "готовые решения".
Запутал я кого-то или нет. Смешно. Если кто-то запутался - пусть учит HTML и CSS. Если вы беретесь править CSS САМИ, то уж потрудитесь понимать синтаксис и логику написания стилей. А если не умеете, нечего пенять на "запутали" - заплатите денег тому кто умеет.

И да - картинки положить можно вообще куда угодно. И в стилях потом прописать любой путь - независимо от того где лежит файл стилей, а где сами картинки. И вы прикажете мне прописывать разные варианты нахождения стилей и картинок? : ) Нет уж, увольте. Включайте мозги, учитесь. : )

Позабавили вы меня с "ошибками"  ;D

зы. писать стили внутри контейнеров - дурной тон. выносите все в CSS
*

Abitatel

  • Захожу иногда
  • 52
  • 10 / 0
Ну и в продолжение, для уважаемого dark_star

ссылка номер раз
http://zuitu.ru/prymer_1.html

правильно прописанные стили
для контейнеров товаров - позиционирование относительное
для меток - позиционирование абсолютное


ссылка номер два
http://zuitu.ru/prymer_2.html

тот же код HTML но стили изменены минимально
относительное позиционирование у контейнеров ТОВАРОВ УБРАНО, и прописано к внешнему "синему" контейнеру (в моих предыдущих постах это div id=shop_browse)

ps. если относительное позиционирование убрать еще и у div id=shop_browse, то метки разнесутся вообще по краям окошка браузера.
*

Abitatel

  • Захожу иногда
  • 52
  • 10 / 0
В дополнение к хаку можно сделать вывод меток и в снэпшотах товара (в модулях, в сопутствующих).
Внимание! Делал вывод ТОЛЬКО метки "спецпредложение".
Вывод "новинки" делать там же по аналогии, ничего сложного.

Для этого в /administrator/components/com_virtuemart/classes/ps_product.php

ищем код
Код
function product_snapshot( $product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {

чуть ниже ищем код
Код
$q = "SELECT product_id, product_name, product_parent_id, product_thumb_image FROM #__{vm}_product WHERE product_sku='$product_sku'";

меняем его на
Код
$q = "SELECT product_id, product_name, product_parent_id, product_special, product_thumb_image FROM #__{vm}_product WHERE product_sku='$product_sku'";

далее ищем код
Код
if ($db->next_record()) {

и сразу после него вписываем
Код
if( $db->f("product_special") == "Y" ) {
     $leader_img = '<div style="position: absolute; right: 0px; bottom: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/leader_img.png" border="0" alt="Лидер продаж" title="Лидер продаж" align="right"></div>'; // code required for new tag
} else {
     $leader_img = "";
}

дальше ищем код
Код
$tpl->set( 'show_product_name', $show_product_name );

после него ставим
Код
$tpl->set( "leader_img", $leader_img);

теперь в шаблоне снэпшота components\com_virtuemart\themes\default_my\templates\common\productsnapshot.tpl.php

остается только прописать в нужном месте
Код
<?php echo $leader_img ?>

Итог - в сопутствующих товарах, и в модулях типа feathureprod, randomprod тоже выводятся метки "спецпредложение".


ps. Привел код меток как в оригинале хака для соблюдения "наследственности", но себе сделал "пустыми дивами с фонами".
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Abitatel не работает хак с snapshot не выводится картинка  ^-^
*

Abitatel

  • Захожу иногда
  • 52
  • 10 / 0
Я изложил суть хака. Вы видимо что-то "недохакали". У меня все работает : )
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Ну я всё делал так сказать по инструкции, ничего сложного нет, метки не выводятся именно в сопутствующих, рекомендуемых твоарах (через snapshots).
Например вот здесь
Цитировать
$tpl->set( "leader_img", $leader_img);
должно быть " или всё таки '
Что то ещё походу надо хакать, не робит  ^-^
*

chakivetal

  • Захожу иногда
  • 51
  • 0 / 0
  • Самомученик
Цитировать
ссылка номер раз
http://zuitu.ru/prymer_1.html
 - выдает ошибку 404!
Цитировать
ссылка номер два
http://zuitu.ru/prymer_2.html
 -  та же байда))) Где почитать то?
На счет незнающих - как раз благодаря знающим и учимся... Спасибо Вам!
Хак просто супер! Ломаю голову и никак...
J1.5.22, VM 1.1.8, rv.piratelab.info
Какие файлы выложить?


*

Abitatel

  • Захожу иногда
  • 52
  • 10 / 0
  - выдает ошибку 404!  -  та же байда))) Где почитать то?


восстановил
удалял за ненадобностью
*

chakivetal

  • Захожу иногда
  • 51
  • 0 / 0
  • Самомученик
Цитировать
восстановил...за ненадобностью
))) Спасибо! Начитался...)) Не понимаю откуда берется id именно блока с фоткой, ни id ни class

фото
Исходник
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод товара из дочерних категорий в родительскую

Автор B0nG

Ответов: 0
Просмотров: 1469
Последний ответ 03.08.2014, 15:13:57
от B0nG
ID товара вместо cdata

Автор newsky

Ответов: 0
Просмотров: 1304
Последний ответ 01.07.2014, 13:05:12
от newsky
Расширенный Ajax-поиск по характеристикам товара VirtueMart

Автор Arkadiy

Ответов: 990
Просмотров: 195624
Последний ответ 27.06.2014, 16:47:52
от DeLight
Не могу убрать форму "Задайте вопрос..." на странице товара

Автор abrodski

Ответов: 1
Просмотров: 1390
Последний ответ 20.05.2014, 14:30:44
от abrodski
Свойства товара без подтягивания скидки

Автор One

Ответов: 0
Просмотров: 1140
Последний ответ 13.05.2014, 16:53:53
от One