Новости Joomla

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

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Подскажите какие файлы править - не могу разобраться, и поиск не помог.
« Последнее редактирование: 30.08.2011, 23:59:22 от Katerina01 »
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Ребят, никто не знает как поменять местами описание и товары на странице производителя?
Нужно чтобы сначала шли товары а потом описание.
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Ребят, никто не знает как поменять местами описание и товары на странице производителя?
Нужно чтобы сначала шли товары а потом описание.

Сначала уточню, правильно ли я понял.
Вы хотите на странице всех товаров конкретного производителя типа
/index.php?option=com_virtuemart&page=shop.browse&manufacturer_id=1&Itemid=2  ,
на которую можно попасть, используя модуль mod_virtuemart_manufacturers ,
оставить вверху название производителя, а описание производителя переместить вниз под товары?
Если да, то:

\administrator\components\com_virtuemart\html\shop.browse.php
вывод в хедере названия и описания (с картинкой, если есть) производителя примерно в стр.128-138
elseif( $manufacturer_id) {
      $db->query( "SELECT manufacturer_id, mf_name, mf_desc FROM #__{vm}_manufacturer WHERE manufacturer_id='$manufacturer_id'");
      $db->next_record();
      $mainframe->setPageTitle( $db->f("mf_name") );

      $browsepage_lbl = shopMakeHtmlSafe( $db->f("mf_name") );
      $tpl->set( 'browsepage_lbl', $browsepage_lbl );
      $browsepage_lbltext = $db->f("mf_desc");
      $tpl->set( 'browsepage_lbltext', $browsepage_lbltext );
      $browsepage_header = $tpl->fetch( 'browse/includes/browse_header_manufacturer.tpl.php' );
   }

Если вверху надо убрать описание производителя, а его название оставить, закомментируйте стр.
$tpl->set( 'browsepage_lbltext', $browsepage_lbltext );
Если и название также убрать, то закомментируйте стр.
$tpl->set( 'browsepage_lbl', $browsepage_lbl );

Вверху убрали. Внизу можно вставить над пагинацией. Для этого

после примерно стр.476,477
$tpl->set( 'products', $products );
$tpl->set( 'search_string', $search_string );
вставьте

if( $manufacturer_id) {
      $db->query( "SELECT manufacturer_id, mf_name, mf_desc FROM #__{vm}_manufacturer WHERE manufacturer_id='$manufacturer_id'");
      $db->next_record();
      $mainframe->setPageTitle( $db->f("mf_name") );
      $browsepage_lbl = shopMakeHtmlSafe( $db->f("mf_name") );
      $tpl->set( 'browsepage_lbl', $browsepage_lbl );
      $browsepage_lbltext = $db->f("mf_desc");
      $tpl->set( 'browsepage_lbltext', $browsepage_lbltext );
      $browsepage_header = $tpl->fetch( 'browse/includes/ browse_pagenav.tpl.php' );
   }



а также в
\components\com_virtuemart\themes\default\templates\browse\includes\browse_pagenav.tpl.php
после проверки Direct Access (и до <?php if(!@is_object( $pagenav)) return;  ?>) в стр.3
вставить
<h3><?php echo $browsepage_lbl ?></h3>
<div class="browseDesc"><?php echo $browsepage_lbltext ?></div>





Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
И снова fsv спешит на помощь! Еще +1 от меня  :D

А теперь к делу.
Да Вы правильно меня поняли. Нужно название производителя оставить вверху, а само описание перенести вниз.
Решение, которое Вы указали работает, но при одном условии - если работает пагинация!
В shop.browse.php код относящийся к пагинации у меня закомментирован - соответственно нет пагинации и нет описания производителей(((.

Куда еще, кроме browse_pagenav.tpl.php, можно запихнуть вывод
<div class="browseDesc"><?php echo $browsepage_lbltext ?></div> ?
Последнее, что у меня выводится на странице производителей - "недавно просмотренные товары" (по-моему это browse_notables.tpl.php)



*

fsv

  • Moderator
  • 2781
  • 411 / 2
"Недавно просмотренные товары" - recent.tpl.php , который не в группе шаблонов browse (в папке common).
Если пагинация совсем не нужна, можно попробовать в browse_pagenav.tpl.php после вышеуказанной вставки все удалить. То есть шаблон пагинации будет для вывода "чего-хочу". А в shop.browse.php пагинацию можно тогда не комментировать.
Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Цитировать
...можно попробовать в browse_pagenav.tpl.php после вышеуказанной вставки все удалить. То есть шаблон пагинации будет для вывода "чего-хочу". А в shop.browse.php пагинацию можно тогда не комментировать.
Я пока так и сделала. Но у меня на счет пагинации есть задумка, о которой наверное лучше рассказать в отдельной теме))
И все же больше нет вариантов, кроме как browse_pagenav.tpl.php?
*

fsv

  • Moderator
  • 2781
  • 411 / 2
И все же больше нет вариантов, кроме как browse_pagenav.tpl.php?

Сходу в recent не получилось. Надо "колупать" дальше. Но сейчас уже сплю...
Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
У меня еще такая идея есть:
Создаем browse_pagenav2.tpl.php в него пишем наш див.
Потом в shop.browse.php:
Код
$tpl->set( 'products', $products );
$tpl->set( 'search_string', $search_string );

if( $manufacturer_id) {
      $db->query( "SELECT manufacturer_id, mf_name, mf_desc FROM #__{vm}_manufacturer WHERE manufacturer_id='$manufacturer_id'");
      $db->next_record();
      $mainframe->setPageTitle( $db->f("mf_name") );
      $browsepage_lbl = shopMakeHtmlSafe( $db->f("mf_name") );
      $tpl->set( 'browsepage_lbl', $browsepage_lbl );
      $browsepage_lbltext = $db->f("mf_desc");
      $tpl->set( 'browsepage_lbltext', $browsepage_lbltext );
      $browsepage_header = $tpl->fetch( 'browse/includes/browse_pagenav2.tpl.php' );
   }
           if ( $num_rows > 1 ) {
$browsepage_footer = $tpl->fetch( 'browse/includes/browse_pagenav2.tpl.php' );
                 $tpl->set( 'browsepage_footer', $browsepage_footer );
           }

// if ( $num_rows > 1 ) {
// $browsepage_footer = $tpl->fetch( 'browse/includes/browse_pagenav.tpl.php' );
// $tpl->set( 'browsepage_footer', $browsepage_footer );
// } else {
// $tpl->set( 'browsepage_footer', '' );
// }


Как бы работает...
Но что бы сделать такое  :-* с этим if ( $num_rows > 1 ), чтобы когда понадобится разкомментировать пагинацию это все вместе работало?
Сейчас если это сделать,то будет показана только пагинация((
Надеюсь смысл понятен ;)
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Смысл понятен. Но ваш вариант сходу затрудняюсь.
Другое не очень понятно. Зачем дальше править shop.browse.php.

Если пагинация совсем временно не нужна, можно попробовать в browse_pagenav.tpl.php после вышеуказанной вставки все удалить. ... А в shop.browse.php пагинацию можно тогда не комментировать.

Когда опять нужна станет пагинация, в browse_pagenav.tpl.php вернуть удаленные строки. И будет и описание производителя, и пагинация.
Или это вам не подходит из-за вашей "задумки с пагинацией"?

Веб-разработка: заказ. Только новая разработка.
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Еще вариант. Кажется, лучше того, что предложил ранее. В смысле универсальнее для раздельной работы над шаблонами browse.

Вариант вывода информации в дополнительно созданном для этого шаблоне в футере browse над пагинацией.

1. Делаем копию browse_header_manufacturer.tpl.php и переименовываем ее в browse_footer_manufacturer.tpl.php. Ложим новый шаблон в ту же папку
\components\com_virtuemart\themes\default\templates\browse\includes\  .

2. Смотрим настройки темы VM -> Product List Style
если «Product Listing with a table (default)», то вы используете шаблон  browse_layouttable.tpl.php
если «Flat Product List (fixed to 1 product per row, using a table)», то вы используете шаблон  browse_listtable.tpl.php
если «Product List (no table, div-based)», то вы используете шаблон browse_notables.tpl.php
В папке \www\components\com_virtuemart\themes\default\templates\browse\includes\
открываете используемый шаблон.
Пусть это будет browse_notables.tpl.php.
перед
echo $browsepage_footer;
вставляете
echo $browsepage_footer_mf;

3. \administrator\components\com_virtuemart\html\shop.browse.php
после примерно стр.476,477
$tpl->set( 'products', $products );
$tpl->set( 'search_string', $search_string );
вставьте

Код
if( $manufacturer_id) {
$db->query( "SELECT manufacturer_id, mf_name, mf_desc FROM #__{vm}_manufacturer WHERE manufacturer_id='$manufacturer_id'");
$db->next_record();
$mainframe->setPageTitle( $db->f("mf_name") );
$browsepage_lbl = shopMakeHtmlSafe( $db->f("mf_name") );
$tpl->set( 'browsepage_lbl', $browsepage_lbl );
$browsepage_lbltext = $db->f("mf_desc");
$tpl->set( 'browsepage_lbltext', $browsepage_lbltext );
$browsepage_footer_mf = $tpl->fetch( 'browse/includes/browse_footer_manufacturer.tpl.php' );
$tpl->set( 'browsepage_footer_mf', $browsepage_footer_mf );
}


« Последнее редактирование: 01.09.2011, 13:38:15 от fsv »
Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
 fsv, вот этот вариант идеален, думаю всем подойдет! :D
Теперь с описанием можно творить все что угодно!
Еще раз спасибо, fsv.
 
*

SolopoV

  • Давно я тут
  • 576
  • 16 / 0
  • зеленею...
У меня после такого хака, описания производителей "протянулись" по всем категориям товаров, а не только на "страницах производителей".

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

Содержимое browse_footer_manufacturer.tpl.php
Код
<div><?php echo $browsepage_lbltext ?></div>

Содержимое browse_header_manufacturer.tpl.php
Код
<div><h2>Тра-та-та от <span class="whites"><?php echo $browsepage_lbl ?></span></h2></div>

Блок "elseif( $manufacturer_id)" (ориентир. со строки 136) в shop.browse.php с title и desc... заменил на свой
Код
	elseif( $manufacturer_id) {
$db->query( "SELECT manufacturer_id, mf_name, mf_desc FROM #__{vm}_manufacturer WHERE manufacturer_id='$manufacturer_id'");
$db->next_record();
$mainframe->setPageTitle( $db->f("mf_name") );
$browsepage_lbl = shopMakeHtmlSafe( $db->f("mf_name") );
$tpl->set( 'browsepage_lbl', $browsepage_lbl );
$browsepage_lbltext = $db->f("mf_desc");
$tpl->set( 'browsepage_lbltext', $browsepage_lbltext );
$mainframe->prependMetaTag( "description", substr(strip_tags($browsepage_lbl.'. '.$browsepage_lbltext), 0, 220) );
$browsepage_header = $tpl->fetch( 'browse/includes/browse_header_manufacturer.tpl.php' );
$browsepage_footer_mf = $tpl->fetch( 'browse/includes/browse_footer_manufacturer.tpl.php' );
$tpl->set( 'browsepage_footer_mf', $browsepage_footer_mf );
}
Пункт третий из предыдущих постов не делал.
Если кто знает, как вывести описание только на первой странице, напишите пожалуйста.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Описание категории опустить под товары

Автор angelo4ek-001

Ответов: 5
Просмотров: 2321
Последний ответ 12.11.2015, 01:53:39
от fsv
VirtueMart -как убрать слово "КАТЕГОРИИ" на первой странице магазина

Автор stalker828

Ответов: 12
Просмотров: 9574
Последний ответ 30.07.2014, 11:51:16
от ZAIRA
Не заполняется "Описание категории"

Автор atlantavto2011

Ответов: 0
Просмотров: 1330
Последний ответ 07.07.2014, 18:21:48
от atlantavto2011
Убрать авторизацию с сайта.

Автор Chebyrek

Ответов: 8
Просмотров: 10393
Последний ответ 31.05.2014, 11:25:44
от Andreiand
Как убрать границы у таблицы?

Автор mernata

Ответов: 2
Просмотров: 2344
Последний ответ 31.03.2014, 09:04:30
от mernata