Новости Joomla

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм...

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм...

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм переопределения макетов Joomla: скопируй нужный тебе файл макета в папку

html шаблона и твори там что хочешь. Это в полной мере относится и к пользовательским полям Joomla.Joomla ищет макеты рендера всех пользовательских полей в следующем порядке:- Есть ли файл
templates/[template name]/html/layouts/[component name]/fields/render.php , переопределяющий макет вывода полей для конкретного компонента? Да - используем его.- Нет? Есть ли файл
components/[component name]/layouts/fields/render.php в папке компонента? Да - используем его.- Нет? Есть ли файл
templates/[template name]/html/layouts/com_fields/fields/render.php, переопределяющий вывод полей для
com_fields? Да - используем его.- Нет? Используем файл
components/com_fields/layouts/fields/render.phpЭто механизм поиска переопределений файлов макетов. Вчера столкнулся с тем, что если поле вставлено в текст материала с помощью шорт-кода (кнопкой редактора) вида
{field 25}, то переопределения не сработали. Поэтому стал вспоминать как сделать свой макет для поля Joomla. Файл
components/com_fields/layouts/field/render.php копируем в
templates/YOUR_TEMPLATE/html/layouts/com_fields/field/etapy-raboty-nad-proektom.php. Обратите внимание, что мы файл переименовали, чтобы в настройках поля видеть его в выпадающем списке. После этого всё заработало как надо. Благо, переводил уже раньше статью
Как происходит рендер пользовательских полей в Joomla?. Потом, порывшись по своему же переводу увидел, что эта особенность работы Joomla в статье уже в ней описана 😂. А также напомнил себе о возможности указывать макет поля прямо в шорт-коде, через запятую:
{field 25,etapy-raboty-nad-proektom}. Правда, если честно, никогда этой возможностью не пользовался. @webtolkru#joomla #php #разработка #webdev

Вышел JoomShoppping 5.6.0Один из популярных компонентов интернет-магазина на Joomla. v.5.6.0

Вышел JoomShoppping 5.6.0Один из популярных компонентов интернет-магазина на Joomla.👩‍💻 v.5.6.0. Что нового?- Добавлена ​​сортировка товаров для конкретной категории- Параметры
count_products_to_page /
count_products_to_row - по умолчанию теперь пустые (используется из конфигурации)- Добавлена сортировка для налогов- Добавлена форма поиска в списке стран- Добавлен фильтр только не завершенных заказов для списка заказов (не закончен: скрывать / показывать / все)- Добавлены состояния опубликовано / не опубликовано для аддонов (опции - дополнения)- Добавлены зависимости (dependencies) для аддонов- ⚠️ Библиотека Tcpdf удалена из ядра Joomshopping. Генерация PDF счетов отключена по умолчанию. Библиотека теперь устанавливается как дополнение Lib TcPdf.- ➕ Новая опция. Техническое обслуживание для дополнений (отладка, журнал, переопределения папок)- ➕ Новая опция: Настройки - Другие - Использовать WebAssetManager. - ➕ Новая опция: Настройки - Другие - Администратор продукты Поиск по словам. Поиск в админке будет искать по описаниям товаров.- Обновлены иконки в админке- ➕ Новая опция конфигурации check_valid_productpage_attribute- ➕Новая опция конфигурации attribut_dep_sorting_in_product_dir- ➕Новая опция конфигурации attribut_nodep_sorting_in_product_dir- ➕Новый метод
prepareSaveParams для ShippingFormRoot (разработчикам способов доставки)- Добавлены новые триггеры для плагинов- Обновление HttpClientLite- Исправления роутера- Исправлен выбор оформления заказаНужно помнить, что не все опции конфигурации JoomShopping доступны для настройки из панели администратора. Некоторые параметры можно изменить только в файлe
components/com_jshopping/config/user_config.php (переопределение
default_config.php). Так же параметры конфигурации могут быть изменены плагинами на события
onBeforeLoadJshopConfig и
onLoadJshopConfig.
Страница расширения#JoomShopping

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

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Друзья, помогите разобраться.

Ситуация... На страничке товара под изображением идет описание товара. Затем после описания выводятся характеристики. Необходимо, чтобы сначала отображались характеристики, а описание под ними. Не знаю где искать и что собственно делать...

Может где-то уже писалось, но пару часов поисков не привели меня к ответу.
*

fliginskih

  • Захожу иногда
  • 197
  • 15 / 1
файл шаблона карточки товара "../component/com_jshopping/template/default/product/product_default.php"
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
ок. спасибо. сейчас гляну...
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Если вам не составит труда, что тут необходимо изменить. К сожалению в этом я дуб  ::) ::) ::)

product_default.php   прилагаю....

Код: php
<?php include(dirname(__FILE__)."/load.js.php");?>

<div class="jshop productfull">
  <form name = "product" method = "post" action = "<?php print $this->action?>">
    <div class="product-detail-wrap clearfix">
      <h1 class="jshop-titleheading"><?php print $this->product->name?>
          <?php if ($this->config->show_product_code){?>
          <span class="jshop_code_prod">(<?php print _JSHOP_EAN?>: <span id="product_code"><?php print $this->product->getEan();?></span>)</span>
          <?php }?>
        </h1>
      <!-- Begin: Product image -->
      <div class="jshop">
        <div class="product-image">
          <?php if ($this->product->label_id && getNameImageLabel($this->product->label_id)){?>
          <div class="product_label"> <img src="<?php print $this->config->image_labels_live_path."/".getNameImageLabel($this->product->label_id); ?>" alt="<?php print getNameImageLabel($this->product->label_id, 2)?>" /> </div>
          <?php }?>
          <?php if (count($this->videos)){?>
          <?php foreach($this->videos as $k=>$video){?>
          <a style = "display:none" class = "video_full" id = "hide_video_<?php print $k;?>" href = ""></a>
          <?php } ?>
          <?php }?>
          <?php if(!count($this->images)) { ?>
          <img id = "main_image" src = "<?php print $this->image_product_path?>/<?php print $this->noimage?>" alt = "<?php print htmlspecialchars($this->product->name)?>" />
          <?php } ?>
          <?php foreach($this->images as $k=>$image) { ?>
          <a  class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($image->image_full!=$this->product->product_full_image){?>style="display:none"<?php }?>> <img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt = "<?php print htmlspecialchars($this->product->name)?>" /> </a>
          <?php } ?>
          <?php if ($this->product->manufacturer_info->manufacturer_logo!="") { ?>
          <div class="manufacturer_logo"> <a href="<?php print SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id='.$this->product->product_manufacturer_id, 2);?>"> <img src="<?php print $this->config->image_manufs_live_path."/".$this->product->manufacturer_info->manufacturer_logo?>" alt="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" title="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" border="0" /> </a> </div>
          <?php } ?>
        </div>
        <div class="jshop_img_description">
          <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
          <?php foreach($this->images as $k=>$image){?>
          <img class = "jshop_img_thumb" src = "<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt = "<?php print htmlspecialchars($this->product->name)?>" onclick = "showImage(<?php print $image->image_id?>)" />
          <?php }?>
          <br />
          <?php }?>
          <?php if (count($this->videos)){?>
          <?php foreach($this->videos as $k=>$video){?>
          <a href="<?php print $this->video_product_path?>/<?php print $video->video_name?>" id="video_<?php print $k?>" onclick = "showVideo(this.id, '<?php print $this->config->video_product_width;?>', '<?php print $this->config->video_product_height;?>'); return false;"><img class="jshop_video_thumb" src = "<?php print $this->video_image_preview_path."/"; if ($video->video_preview) print $video->video_preview; else print 'video.gif'?>" alt = "video" /></a>
          <?php } ?>
          <?php }?>
        </div>
      </div>
      <!-- End: Product image -->
      
      <!-- Begin: Product detail -->
      <div class="product-detail">
        
        <?php if ($this->config->display_button_print) print printContent();?>
        
        <?php if ($this->product->getPriceCalculate() > 0 || !$this->config->user_as_catalog){?>
        <div class="prod_price"> <strong><?php print _JSHOP_PRICE?>: </strong> <span id="block_price"><?php print formatprice($this->product->getPriceCalculate())?></span> </div>
        <?php } ?>
        <?php if ($this->product->product_old_price > 0){?>
        <div class="old_price"> <strong><?php print _JSHOP_OLD_PRICE?>: </strong> <span class="old_price"><?php print formatprice($this->product->product_old_price)?></span> </div>
        <?php } ?>
        <?php include(dirname(__FILE__)."/ratingandhits.php");?>
        <div class = "jshop_prod_description"><?php print $this->product->description; ?></div>
        <?php if ($this->product->product_url!=""){?>
        <div class="prod_url"><a target="_blank" href="<?php print $this->product->product_url;?>"><?php print _JSHOP_READ_MORE?></a></div>
        <?php }?>
        <?php if (count($this->attributes)){?>
        <div class = "jshop_prod_attributes">
          <table class = "jshop">
            <?php foreach($this->attributes as $attribut){?>
            <tr>
              <td width = "50"><?php print $attribut->attr_name?>: </td>
              <td><span id='block_attr_sel_<?php print $attribut->attr_id?>'> <?php print $attribut->selects?> </span></td>
            </tr>
            <?php }?>
          </table>
        </div>
        <?php }?>
        <?php if (count($this->product->freeattributes)){?>
        <div class="prod_free_attribs">
          <table class = "jshop">
            <?php foreach($this->product->freeattributes as $freeattribut){?>
            <tr>
              <td width="80"><?php print $freeattribut->name;?>
                <?php if ($freeattribut->required){?>
                <span>*</span>
                <?php }?></td>
              <td><input type="text" class="inputbox" size="40" name="freeattribut[<?php print $freeattribut->id?>]" value="" /></td>
            </tr>
            <?php }?>
          </table>
          <?php if ($this->product->freeattribrequire) {?>
          <div class="requiredtext">* <?php print _JSHOP_REQUIRED?></div>
          <?php }?>
        </div>
        <?php }?>
        <?php if ($this->product->product_is_add_price){?>
        <div class="price_prod_qty_list_head"><?php print _JSHOP_PRICE_FOR_QTY?></div>
        <table class="price_prod_qty_list">
          <?php foreach($this->product->product_add_prices as $k=>$add_price){?>
          <tr>
            <td class="qty_from" <?php if ($add_price->product_quantity_finish==0){?>colspan="3"<?php } ?>><?php if ($add_price->product_quantity_finish==0) print _JSHOP_FROM; ?>
              <?php print $add_price->product_quantity_start." ".JSHP_ST_?></td>
            <?php if ($add_price->product_quantity_finish > 0){?>
            <td class="qty_line"> - </td>
            <?php } ?>
            <?php if ($add_price->product_quantity_finish > 0){?>
            <td class="qty_to"><?php print $add_price->product_quantity_finish." ".JSHP_ST_;?></td>
            <?php } ?>
            <td class="qty_price"><span id="pricelist_from_<?php print $add_price->product_quantity_start?>"><?php print formatprice($add_price->price)?></span> <span class="per_piece"><?php print _JSHOP_PER_PIECE?></span></td>
          </tr>
          <?php }?>
        </table>
        <?php } ?>
        
        <?php if ($this->config->show_tax_in_product && $this->product->product_tax > 0){ ?>
        <span class="taxinfo"><?php print productTaxInfo($this->product->product_tax);?></span>
        <?php }?>
        <?php if ($this->config->show_plus_shipping_in_product){?>
        <span class="plusshippinginfo"><?php print sprintf(_JSHOP_PLUS_SHIPPING, $this->shippinginfo);?></span>
        <?php } ?>
        <?php if ($this->product->delivery_time != ''){?>
        <div class="deliverytime"><?php print _JSHOP_DELIVERY_TIME?>: <?php print $this->product->delivery_time?></div>
        <?php }?>
        <?php if ($this->config->product_show_weight && $this->product->product_weight > 0){?>
        <div class="productweight"><?php print _JSHOP_WEIGHT?>: <span id="block_weight"><?php print formatweight($this->product->getWeight())?></span> <?php print _JSHOP_WEIGHT_UNIT?></div>
        <?php }?>
        <?php if ($this->product->product_basic_price_show){?>
        <div class="prod_base_price"><?php print _JSHOP_BASIC_PRICE?>: <span id="block_basic_price"><?php print formatprice($this->product->product_basic_price_calculate)?></span> / <?php print $this->product->product_basic_price_unit_name;?></div>
        <?php } ?>
        <?php if (is_array($this->product->extra_field)){?>
        <div class="extra_fields">
          <?php foreach($this->product->extra_field as $extra_field){?>
          <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
          <?php }?>
        </div>
        <?php } ?>
        <?php if ($this->product->vendor_info){?>
        <div class="vendorinfo"> <?php print _JSHOP_VENDOR?>: <?php print $this->product->vendor_info->shop_name?> (<?php print $this->product->vendor_info->l_name." ".$this->product->vendor_info->f_name;?>),
          (
          <?php if ($this->config->product_show_vendor_detail){?>
          <a href="<?php print $this->product->vendor_info->urlinfo?>"><?php print _JSHOP_ABOUT_VENDOR?></a>,
          <?php }?>
          <a href="<?php print $this->product->vendor_info->urllistproducts?>"><?php print _JSHOP_VIEW_OTHER_VENDOR_PRODUCTS?></a> ) </div>
        <?php }?>
        <?php if (!$this->config->hide_text_product_not_available){ ?>
        <div class = "not_available" id="not_available"><?php print $this->available?></div>
        <?php }?>
        <?php if (!$this->hide_buy){?>
        <ul class="prod_buttons">
         <li class="prod_qty"><?php print _JSHOP_QUANTITY?>:</li>
            <li class="prod_qty_input"><input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 20px" value = "<?php print $this->default_count_product?>" /></li>
            <li class="buttons"><input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
              <?php if ($this->enable_wishlist){?>
              <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_WISHLIST?>" onclick="jQuery('#to').val('wishlist');" />
              <?php }?></li>
            <li id="jshop_image_loading" style="display:none"></li>
        </ul>
        <?php }?>
        <input type="hidden" name="to" id='to' value="cart" />
        <input type = "hidden" name = "product_id" id = "product_id" value = "<?php print $this->product->product_id?>" />
        <input type = "hidden" name = "category_id" id = "category_id" value = "<?php print $this->category_id?>" />
      </div>
      <!-- End: Product detail -->
    </div>
    <?php
if (count ($this->demofiles)){?>
    <div class="list_product_demo">
      <table>
        <?php foreach($this->demofiles as $demo){?>
        <tr>
          <td class="descr"><?php print $demo->demo_descr?></td>
          <?php if ($this->config->demo_type == 1) { ?>
          <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>" onClick="popupWin = window.open('<?php print SEFLink("index.php?option=com_jshopping&controller=product&task=showmedia&media_id=".$demo->id);?>', 'video', 'width=<?php print $this->config->video_product_width;?>,height=<?php print $this->config->video_product_height;?>,top=0,resizable=no,location=no'); popupWin.focus(); return false;"><img src = "<?php print $this->config->live_path.'images/play.gif'; ?>" alt = "play" title = "play"/></a></td>
          <?php } else { ?>
          <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>"><?php print _JSHOP_DOWNLOAD;?></a></td>
          <?php }?>
        </tr>
        <?php }?>
      </table>
    </div>
    
    <?php } ?>
    <?php if ($this->config->product_show_button_back){?>
    <input type="button" class = "button" value="<?php print _JSHOP_BACK;?>" onclick="history.go(-1);" />
    <?php }?> </form>
    <?php
    include(dirname(__FILE__)."/related.php");
    include(dirname(__FILE__)."/review.php");
?>
</div>
« Последнее редактирование: 27.12.2011, 18:27:33 от Евгений Я »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Похоже
Код
<?php foreach($this->product->extra_field as $extra_field){?>
          <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
          <?php }?>
это характеристики, в рамках цикла можешь перемещать куда угодно.
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
в рамках цикла можешь перемещать куда угодно.

а конкретнее можно... где описание товара? перед ним и необходимо поставить, как я понимаю..
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
файл шаблона карточки товара "../component/com_jshopping/template/default/product/product_default.php"


fliginskih, а ты не можешь глянуть куда нужно переставить?
*

fliginskih

  • Захожу иногда
  • 197
  • 15 / 1
вот эта конструкция отвечает за характеристики.
Код
       
        <?php if (is_array($this->product->extra_field)){?>
        <div class="extra_fields">
          <?php foreach($this->product->extra_field as $extra_field){?>
          <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
          <?php }?>
        </div>
        <?php } ?>

вот эта конструкция отвечает за описание товара.
Код
<div class = "jshop_prod_description"><?php print $this->product->description; ?></div>

Действия: вырезаем из кода конструкцию характеристик и вставляем выше конструкции описания товара. И смотрим что получилось. Предварительно, рекомендую сделать бэкап файла шаблона.
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0

Действия: вырезаем из кода конструкцию характеристик и вставляем выше конструкции описания товара. И смотрим что получилось. Предварительно, рекомендую сделать бэкап файла шаблона.

да. все срослось, да так что слов нету. лучше, чем я хотел. характеристики оказались сбоку фото товара, просто идеально вписавшись.

остается только впихнуть выражение "Технические характеристики:" перед характеристиками....
вот получившийся участок кода:
Код: php
<div class="product-detail">
       
        <?php if ($this->config->display_button_print) print printContent();?>
       
        <?php if ($this->product->getPriceCalculate() > 0 || !$this->config->user_as_catalog){?>
        <div class="prod_price"> <strong><?php print _JSHOP_PRICE?>: </strong> <span id="block_price"><?php print formatprice($this->product->getPriceCalculate())?></span> </div>
        <?php } ?>
        <?php if ($this->product->product_old_price > 0){?>
        <div class="old_price"> <strong><?php print _JSHOP_OLD_PRICE?>: </strong> <span class="old_price"><?php print formatprice($this->product->product_old_price)?></span> </div>
        <?php } ?>
        <?php include(dirname(__FILE__)."/ratingandhits.php");?>
       
        <?php if (is_array($this->product->extra_field)){?>
                <div class="extra_fields">
                  <?php foreach($this->product->extra_field as $extra_field){?>
                  <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
                  <?php }?>
                </div>
                <?php } ?>
        <div class = "jshop_prod_description"><?php print $this->product->description; ?></div>

здесь, как я понимаю, строка:
Код: php
<?php include(dirname(__FILE__)."/ratingandhits.php");?>
выводит рейтинг.
необходимо вставить новую строку с требуемым выражением? fliginskih, подскажи какую?
у меня в описании выражение записано так:
Код: html4strict
<div style="clear: both;"> </div>
<h3 class="block_h2">Технические характеристики:</h3>
причем первая строка наверно лишняя... если так дальше пойдет, нужно переквалифицироваться в программеры. если честно сейчас никак со временем, спасибо вам и форуму :)
*

fliginskih

  • Захожу иногда
  • 197
  • 15 / 1
если честно, то я немного не понял что вы хотите сделать. Что и где вы хотите видеть?
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
если честно, то я немного не понял что вы хотите сделать. Что и где вы хотите видеть?

я хочу, чтобы выше перечня характеристик товара стояло выражение "Технические характеристики:", чтобы посетитель видел так:


Технические характеристики:

Напряжение: 220V
Мощность: 100Вт
...
Вес: 3кг


*

AlexSF

  • Давно я тут
  • 678
  • 68 / 0
  • В споре истина рождается
А что мешает просто добавить так
Код: php
<div class="extra_fields">
                  <?php foreach($this->product->extra_field as $extra_field){?>
                  <div>Технические характеристики:</div>
                  <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
                  <?php }?>
</div>

разумеется, для <div>Технические характеристики:</div> можно добавить свой класс цсс.
Например так
Код: html4strict
<div class="desc_extra_fields">Технические характеристики:</div>
« Последнее редактирование: 28.12.2011, 16:52:27 от AlexSF »
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
А что мешает просто добавить так
Код: php
<div class="extra_fields">
                  <?php foreach($this->product->extra_field as $extra_field){?>
                  <div>Технические характеристики:</div>
                  <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
                  <?php }?>


)))) ща добавлю.... мешает отсутсвие знаний этой "стихии". спасибооо.
*

AlexSF

  • Давно я тут
  • 678
  • 68 / 0
  • В споре истина рождается
Можно реализовать, ещё красивее(правильнее), добавив свою языковую константу
Код: php
<div class="desc_extra_fields"><?php print _JSHOP_DESC_EXTRA_FIELDS?>:</div>
<?php if (is_array($this->product->extra_field)){?>
<div class="extra_fields">
                  <?php foreach($this->product->extra_field as $extra_field){?>                  
                  <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
                  <?php }?>
</div>
<?php }?>
И дописать значение константы в языковые файлы
Цитировать
define('_JSHOP_DESC_EXTRA_FIELDS', 'Технические характеристики');
« Последнее редактирование: 29.12.2011, 18:47:48 от AlexSF »
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
Можно реализовать, ещё красивее(правильнее), добавив свою языковую константу
.....
И дописать значение константы в языковые файлы ....
это единственный правильный вариант!!)))
или будете от некоторого количества клиентов вопросы по поводу кракозябров получать))))
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
И дописать значение константы в языковые файлы

а язык.файлы здесь  -   /components/com_jshopping/lang ?
у мя там 3 PHP.... добавлять строку -     define('_JSHOP_DESC_EXTRA_FIELDS', 'Технические характеристики');    - во все PHP ?

и еще выскачило такое: 
"_JSHOP_DESC_EXTRA_FIELDS:" выскакивает не только перед характеристиками, а и между отдельными позициями характеристик... значит яз.константа должна стоять не там, где мне подсказали, правильно? поправьте меня пожалуйста.
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
Это означает что она задана либо с ошибкой в формате задавания, либо ошибка в параметре вывода.
Ошибки синтаксические есно. Т.е. где то не стоят " или знак _.. кароче проверьте все тчательно.
Посмотрите внимательно.. как определяются переменные в существующих файлах.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Это означает что она задана либо с ошибкой в формате задавания, либо ошибка в параметре вывода.
Ошибки синтаксические есно. Т.е. где то не стоят " или знак _.. кароче проверьте все тчательно.
Посмотрите внимательно.. как определяются переменные в существующих файлах.

я сделал так:
Код: php
<?php if (is_array($this->product->extra_field)){?>
                <div class="extra_fields">
                  <div class="desc_extra_fields"><?php print _JSHOP_DESC_EXTRA_FIELDS?>:</div>
                  <?php foreach($this->product->extra_field as $extra_field){?>               
                  <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
                  <?php }?>
                </div>
        <?php } ?>

... и теперь "_JSHOP_DESC_EXTRA_FIELDS:" выскакивает только один раз выше перечня характеристик. Если это неправильно поправьте, хотя результат таким образом достигнут.

Мой вопросик про язык.файлы остается открытым. Кто отозвется?)))

*

fliginskih

  • Захожу иногда
  • 197
  • 15 / 1
покажите, как вы в языковом файле добавили переменную "_JSHOP_DESC_EXTRA_FIELDS" для перевода
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
покажите, как вы в языковом файле добавили переменную "_JSHOP_DESC_EXTRA_FIELDS" для перевода
Код: php
define('_JSHOP_DESC_EXTRA_FIELDS', 'Технические характеристики');

... здесь всё получилось. я додумался что это просто.

сейчас проблемка появилась. ситуация такая:

слева рисунок товара. справа перечень характеристик. из-за того, что я добавил строку `Технические характеристики:` пару нижних строк с характеристиками съехали влево, т.к. уже оказались ниже границы рисунка. Я подумал, что где-то задается высота... сейчас думаю где.....
*

fliginskih

  • Захожу иногда
  • 197
  • 15 / 1
у вас сайт на локалке или на хостинге уже?  а то было бы проще помочь, если видеть что куда съехало, со слов не очень понятно
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
у вас сайт на локалке или на хостинге уже?  а то было бы проще помочь, если видеть что куда съехало, со слов не очень понятно

на хосте.. в личку вам отправил
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
а вообще плоховато, что у мя его нет на локалке? хост такой, что там предустановлена Joomla....
*

fliginskih

  • Захожу иногда
  • 197
  • 15 / 1
1) на счет шаблона

- если быстро и не очень правильно, то добавьте к CSS классу ".productfull .jshop" стиль "height: 250px;"
- если правильно, то вам нужно немного переделать структуру шаблона. но это дольше.

2) по поводу локалки или хостинга.

я все делаю через фтп на хостинге, при этом я работаю на линуксе.
*

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
1) на счет шаблона

- если быстро и не очень правильно, то добавьте к CSS классу ".productfull .jshop" стиль "height: 250px;"

".productfull .jshop" присутствует:
Код: css
.productfull .jshop { float: left; margin-right: 20px; width:320px; overflow:hidden; }

значит я сейчас добавлю, как вы подсказываете, "height: 250px;", и посмотрю что вышло.

- если правильно, то вам нужно немного переделать структуру шаблона. но это дольше.

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

Евгений Я

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
- если быстро и не очень правильно, то добавьте к CSS классу ".productfull .jshop" стиль "height: 250px;"
получилось чётко... спасибо еще раз )))
*

chobitok

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Помогите пожалуйста решить проблему: необходимо просто, чтобы описание огибало справа изображение товара. У меня версия 2.9.7.

Код врядли отличается от ранее выложенного, но всё же прикреплю

Код
<?php include(dirname(__FILE__)."/load.js.php");?>
<div class="jshop productfull">
<form name = "product" method = "post" action = "<?php print $this->action?>">

    <h1><?php print $this->product->name?><?php if ($this->config->show_product_code){?> <span class="jshop_code_prod">(<?php print _JSHOP_EAN?>: <span id="product_code"><?php print $this->product->getEan();?></span>)</span><?php }?></h1>
    <?php if ($this->config->display_button_print) print printContent();?>
   
    <?php include(dirname(__FILE__)."/ratingandhits.php");?>
       
    <table class = "jshop">
    <tr>
        <td width = "100" style = "vertical-align:top">
            <?php if ($this->product->label_id && getNameImageLabel($this->product->label_id)){?>
                <div class="product_label">
                    <img src="<?php print $this->config->image_labels_live_path."/".getNameImageLabel($this->product->label_id); ?>" alt="<?php print getNameImageLabel($this->product->label_id, 2)?>" />
                </div>
            <?php }?>
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>
                    <a style = "display:none" class = "video_full" id = "hide_video_<?php print $k;?>" href = ""></a>
                <?php } ?>
            <?php }?>
            <?php if(!count($this->images)){?>
                <img id = "main_image" src = "<?php print $this->image_product_path?>/<?php print $this->noimage?>" alt = "<?php print htmlspecialchars($this->product->name)?>" />
            <?php }?>
            <?php foreach($this->images as $k=>$image){?>
            <a  class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($image->image_full!=$this->product->product_full_image){?>style="display:none"<?php }?>>
                <img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt = "<?php print htmlspecialchars($this->product->name)?>" />
            </a>
            <?php }?>
           
            <?php if ($this->product->manufacturer_info->manufacturer_logo!=""){?>
            <div class="manufacturer_logo">
                <a href="<?php print SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id='.$this->product->product_manufacturer_id, 2);?>">
                    <img src="<?php print $this->config->image_manufs_live_path."/".$this->product->manufacturer_info->manufacturer_logo?>" alt="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" title="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" border="0" />
                </a>
            </div>   
            <?php }?>
        </td>
        <td class = "jshop_img_description" style = "padding-left: 10px;">
            <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
                <?php foreach($this->images as $k=>$image){?>
                    <img class = "jshop_img_thumb" src = "<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt = "<?php print htmlspecialchars($this->product->name)?>" onclick = "showImage(<?php print $image->image_id?>)" />
                <?php }?>
            <br />
            <?php }?>           
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>               
                    <a href="<?php print $this->video_product_path?>/<?php print $video->video_name?>" id="video_<?php print $k?>" onclick = "showVideo(this.id, '<?php print $this->config->video_product_width;?>', '<?php print $this->config->video_product_height;?>'); return false;"><img class="jshop_video_thumb" src = "<?php print $this->video_image_preview_path."/"; if ($video->video_preview) print $video->video_preview; else print 'video.gif'?>" alt = "video" /></a>
                <?php } ?>
            <?php }?>
        </td>
    </tr>
    </table>
   
    <div class = "jshop_prod_description">
        <?php print $this->product->description; ?>
    </div>       
   
    <?php if ($this->product->product_url!=""){?>
    <div class="prod_url">
        <a target="_blank" href="<?php print $this->product->product_url;?>"><?php print _JSHOP_READ_MORE?></a>
    </div>
    <?php }?>
   
    <br />
   
    <?php if (count($this->attributes)){?>
    <div class = "jshop_prod_attributes">
        <table class = "jshop">
        <?php foreach($this->attributes as $attribut){?>
        <tr>
            <td width = "50">
                <?php print $attribut->attr_name?>:
            </td>
            <td>
                <span id='block_attr_sel_<?php print $attribut->attr_id?>'>
                <?php print $attribut->selects?>
                </span>
            </td>
        </tr>
        <?php }?>
        </table>
    </div>
    <br />
    <?php }?>
   
    <?php if (count($this->product->freeattributes)){?>
    <div class="prod_free_attribs">
        <table class = "jshop">
        <?php foreach($this->product->freeattributes as $freeattribut){?>
        <tr>
            <td width="80"><?php print $freeattribut->name;?> <?php if ($freeattribut->required){?><span>*</span><?php }?></td>
            <td><input type="text" class="inputbox" size="40" name="freeattribut[<?php print $freeattribut->id?>]" value="" /></td>
        </tr>
        <?php }?>
        </table>
        <?php if ($this->product->freeattribrequire) {?>
        <div class="requiredtext">* <?php print _JSHOP_REQUIRED?></div>
        <?php }?>
    </div>
    <br/>
    <?php }?>
   
    <?php if ($this->product->product_is_add_price){?>
    <div class="price_prod_qty_list_head"><?php print _JSHOP_PRICE_FOR_QTY?></div>
    <table class="price_prod_qty_list">
    <?php foreach($this->product->product_add_prices as $k=>$add_price){?>
        <tr>
            <td class="qty_from" <?php if ($add_price->product_quantity_finish==0){?>colspan="3"<?php } ?>>
                <?php if ($add_price->product_quantity_finish==0) print _JSHOP_FROM; ?>
                <?php print $add_price->product_quantity_start." ".JSHP_ST_?>
            </td>
            <?php if ($add_price->product_quantity_finish > 0){?>
            <td class="qty_line"> - </td>
            <?php } ?>
            <?php if ($add_price->product_quantity_finish > 0){?>
            <td class="qty_to">
                <?php print $add_price->product_quantity_finish." ".JSHP_ST_;?>
            </td>
            <?php } ?>
            <td class="qty_price">           
                <span id="pricelist_from_<?php print $add_price->product_quantity_start?>"><?php print formatprice($add_price->price)?></span> <span class="per_piece"><?php print _JSHOP_PER_PIECE?></span>
            </td>
        </tr>
    <?php }?>
    </table>
    <br/>
    <?php }?>
   
    <?php if ($this->product->product_old_price > 0){?>
    <div class="old_price">
        <?php print _JSHOP_OLD_PRICE?> <span class="old_price"><?php print formatprice($this->product->product_old_price)?></span>
    </div>
    <?php }?>       
   
    <?php if ($this->product->getPriceCalculate() > 0 || !$this->config->user_as_catalog){?>
    <div class="prod_price">
        <?php print _JSHOP_PRICE?>: <span id="block_price"><?php print formatprice($this->product->getPriceCalculate())?></span>
    </div>
    <?php }?>
   
    <?php if ($this->config->show_tax_in_product && $this->product->product_tax > 0){ ?>
        <span class="taxinfo"><?php print productTaxInfo($this->product->product_tax);?></span>
    <?php }?>
    <?php if ($this->config->show_plus_shipping_in_product){?>
        <span class="plusshippinginfo"><?php print sprintf(_JSHOP_PLUS_SHIPPING, $this->shippinginfo);?></span>
    <?php }?>
    <?php if ($this->product->delivery_time != ''){?>
        <div class="deliverytime"><?php print _JSHOP_DELIVERY_TIME?>: <?php print $this->product->delivery_time?></div>
    <?php }?>
    <?php if ($this->config->product_show_weight && $this->product->product_weight > 0){?>
        <div class="productweight"><?php print _JSHOP_WEIGHT?>: <span id="block_weight"><?php print formatweight($this->product->getWeight())?></span> <?php print _JSHOP_WEIGHT_UNIT?></div>
    <?php }?>
   
    <?php if ($this->product->product_basic_price_show){?>
        <div class="prod_base_price"><?php print _JSHOP_BASIC_PRICE?>: <span id="block_basic_price"><?php print formatprice($this->product->product_basic_price_calculate)?></span> / <?php print $this->product->product_basic_price_unit_name;?></div>
    <?php }?>
   
    <?php if (is_array($this->product->extra_field)){?>
        <div class="extra_fields">
        <?php foreach($this->product->extra_field as $extra_field){?>
            <div><?php print $extra_field['name']; ?>: <?php print $extra_field['value']; ?></div>
        <?php }?>
        </div>
    <?php }?>
   
    <?php if ($this->product->vendor_info){?>
        <div class="vendorinfo">
            <?php print _JSHOP_VENDOR?>: <?php print $this->product->vendor_info->shop_name?> (<?php print $this->product->vendor_info->l_name." ".$this->product->vendor_info->f_name;?>),
            (
            <?php if ($this->config->product_show_vendor_detail){?><a href="<?php print $this->product->vendor_info->urlinfo?>"><?php print _JSHOP_ABOUT_VENDOR?></a>,<?php }?>
            <a href="<?php print $this->product->vendor_info->urllistproducts?>"><?php print _JSHOP_VIEW_OTHER_VENDOR_PRODUCTS?></a> )
        </div>
    <?php }?>
   
    <?php if (!$this->config->hide_text_product_not_available){ ?>
        <div class = "not_available" id="not_available"><?php print $this->available?></div>
    <?php }?>   
                       
    <?php if (!$this->hide_buy){?>                         
        <table class="prod_buttons">
        <tr>
            <td class="prod_qty">
                <?php print _JSHOP_QUANTITY?>:&nbsp;
            </td>
            <td class="prod_qty_input">
                <input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 20px" value = "<?php print $this->default_count_product?>" />
            </td>       
            <td class = "buttons">           
                <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                <?php if ($this->enable_wishlist){?>
                    <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_WISHLIST?>" onclick="jQuery('#to').val('wishlist');" />
                <?php }?>
            </td>
            <td id = "jshop_image_loading" style = "display:none"></td>
        </tr>
        </table>
    <?php }?>
   
<input type="hidden" name="to" id='to' value="cart" />
<input type = "hidden" name = "product_id" id = "product_id" value = "<?php print $this->product->product_id?>" />
<input type = "hidden" name = "category_id" id = "category_id" value = "<?php print $this->category_id?>" />
</form>

<?php
if (count ($this->demofiles)){?>
<div class="list_product_demo">
    <table>
        <?php foreach($this->demofiles as $demo){?>
        <tr>
            <td class="descr"><?php print $demo->demo_descr?></td>           
            <?php if ($this->config->demo_type == 1) { ?>
                <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>" onClick="popupWin = window.open('<?php print SEFLink("index.php?option=com_jshopping&controller=product&task=showmedia&media_id=".$demo->id);?>', 'video', 'width=<?php print $this->config->video_product_width;?>,height=<?php print $this->config->video_product_height;?>,top=0,resizable=no,location=no'); popupWin.focus(); return false;"><img src = "<?php print $this->config->live_path.'images/play.gif'; ?>" alt = "play" title = "play"/></a></td>
            <?php } else { ?>
                <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>"><?php print _JSHOP_DOWNLOAD;?></a></td>
            <?php }?>
        </tr>
        <?php }?>
    </table>
</div>
<?php } ?>

<?php if ($this->config->product_show_button_back){?>
<br/>
<input type="button" class = "button" value="<?php print _JSHOP_BACK;?>" onclick="history.go(-1);" />
<?php }?>

<?php
    include(dirname(__FILE__)."/related.php");
    include(dirname(__FILE__)."/review.php");
?>
</div>
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
Как помочь ?

Описание выводится этим
Код
   
<div class = "jshop_prod_description">
        <?php print $this->product->description; ?>
</div>

А картинка выводится в таблице.
Вам нужно вставить описание в ту же ячейку таблицы где и изображение, и задать диву с изображениями float:left;
ОДНАКО ! У Вас может шаблон выглядеть вообще не так как Вы хотите. Возможно придется перенести мини изображения под основную картинку.. в общем играться надо с самим шаблоном ;)
Лучше если Вы его сразу переделаете на дивы, вместо таблицы ;)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

chobitok

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Спасибо огромное попробую сделать
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вкладки (табы) в описании товара

Автор Sergio

Ответов: 254
Просмотров: 53597
Последний ответ 12.10.2023, 12:20:59
от dron
Где посмотреть варианты карточки товара

Автор itbc

Ответов: 6
Просмотров: 2493
Последний ответ 31.10.2022, 10:05:51
от nevigen
Основная картинка в карточке товара на весь экран

Автор Mister Shadow

Ответов: 1
Просмотров: 2023
Последний ответ 08.07.2022, 22:16:27
от nevigen
meta title на странице товара

Автор ecolora

Ответов: 5
Просмотров: 2175
Последний ответ 30.05.2022, 14:31:44
от kit2m2
Вывести артикул вместо кода товара в письмо клиента

Автор antony2606

Ответов: 2
Просмотров: 2156
Последний ответ 09.02.2021, 17:01:25
от antony2606