Новости Joomla

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla 🖨Ну что, интересная инициатива от @webtolkru в виде интервью с разными участниками весьма меня увлекла. Я, вооружившись данным примером, решил подготовить выпуск для NorrNext (@norrnext) и экстраполировал идею на международный масштаб. Теперь готовлю эксклюзивный выпуск с участниками Joomla сообщества со всего мира, которые, в той или иной мере, внесли свой вклад в развитие и популяризацию системы. Будут беседы с людьми из разных стран и фото с юбилейной символикой 📸Работа в процессе 👆 📝О результатах оповещу отдельно.

Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5

👩‍💻 Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5.Работает везде, где работают плагины группы content. Проверено в материалах, модулях, в описаниях товаров JoomShopping.Плагин конвертирует любую таблицу в адаптивную блочную сетку Bootstrap 5.В админке, в редакторе создаете таблицу, размещает в её ячейках контент, а на сайте эта таблица выводиться как адаптивная сетка из блоков. На мобильных устройствах контент размещенный в таблице будет виден и ничто не вылезет за пределы сайта как раньше.Версия плагина: 1.0.0. Разработчик предупреждает, что плагин пока не корректно работает со сложными таблицами (где много объединенных ячеек или столбцов) - данная проблема будет решена в следующих версиях. В дальнейшем планируется также добавление настроек.Стоимость: 2 500р. Тем, кто даст обратную связь по работе плагина и развёрнутый комментарий, тот получит скидку в 50% на любое другое платное расширение разработчика или сможет сделать заказ на разработку по льготной цене.Разработчик - участник нашего сообщества Дмитрий (@kit2m2).ПодробнееСайт разработчика@joomlafeed#joomla #JoomShopping #расширения

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

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
AdsManager старый 2.2

так как у меня на сайте недавно появилась перелинковка-"сортировка" ( по городам, по станциям метро) путем создании новой страницы.
Видел на каком то сайте и решил себе сделать.
Для этого выбрал кротчайший вариант -
ссылки вида
Код
/page=show_result&ad_metro=Китай-Город  
/page=show_result&ad_city=Москва

появилась немыслимая вариация новых страниц, а писать к каждому Title, keywords, descr это проще застрелиться ( для категорий отдельно на создавал вручную, но теперь думаю переделать под шаблон), а если не писать то берется стандартное с сайта, что ни есть гуд

Для начала думал создать отдельную функцию под такие страницы, но что то там не срасталось в итоге исправил существующие.
 ( возможно не оптимальный вариант. Буду рад предложениям. ну какой созрел)

все добавления делаются в файлах lang.php и AdsManager.php

фаил lang.php добавляем

Код
//List CITY
DEFINE( "ADSMANAGER_LIST_CITY", "Недвижимость в городе ");

//List Metro
DEFINE( "ADSMANAGER_LIST_METRO", "Недвижимость у станции метро ");


фаил AdsManager.php добавляем и изменяем
в самом начале добавляем
Код
//keyword+discr
$ad_city            = mosGetParam( $_GET, 'ad_city', "" );
$ad_metro            = mosGetParam( $_GET, 'ad_metro', "");

чуть ниже добавляем аргументы $ad_metro, $ad_city, а в других 0 0( в противном случае будут ошибки, так как к show_all обращаются)
 в секциях switch ($page)

Код
case 'show_result':
//keywords - metro
 /*   if ((($ad_city !="")||($ad_metro !=""))&&(($catid == 0)||(!isset($catid))))
        show_result($option,$ad_city,$ad_metro,$order,$limitstart);
*////kew
/* else*/

//keyw 2 arg v konce
    if (($catid == 0)||(!isset($catid)))
show_all($option,$expand,$text_search,$order,$limitstart,$ad_city,$ad_metro);
else
show_category($catid,$option,$expand,$text_search,$order,$limitstart);
break;

  case 'show_all': {
//keyw 2 arg v konce
$cache->call( 'show_all',$option,$expand,$text_search,$order,$limitstart,0,0);

    break;
  }

case 'search': {
if ($catid == 0)
   //keyw 2 arg v konce
$cache->call( 'show_all',$option,$expand,$text_search,$order,$limitstart,0,0);
else
$cache->call( 'show_category',$catid,$option,$expand,$text_search,$order,$limitstart);
    break;
  
  }



тот же фаил функция show_all

было ( возможно некоторых пунктов у вас нет, так как функция уже менялась под поиск)
Код
function show_all($option,$expand,$text_search,$order,$limitstart)
{
global $mainframe,$database,$mosConfig_absolute_path,$mosConfig_live_site;

$itemid          = intval( mosGetParam( $_GET, 'Itemid', 0 ));
//Поиск по цене
$cenot = intval( mosGetParam( $_GET, 'pr_ot', 0 ));
$cendo = intval( mosGetParam( $_GET, 'pt_do', 0 ));

//Поиск по цене

//Поиск по общей площади
    $areaot = intval( mosGetParam( $_GET, 'area_ot', 0 ));
$areado = intval( mosGetParam( $_GET, 'area_do', 0 ));

//Поиск по площади участка
    $s_ot  = intval( mosGetParam( $_GET, 'site_ot', 0 ));
    $s_do  = intval( mosGetParam( $_GET, 'site_do', 0 ));

//



// Dynamic Page Title
$mainframe->SetPageTitle( ADSMANAGER_LIST_TEXT );

//Pathway
$database->setQuery( "SELECT c.id, c.name,c.parent ".
" FROM #__adsmanager_categories as c ".
"WHERE c.published = 1 ORDER BY c.parent,c.ordering");
$list = $database->loadObjectList();
getSubCatsList($list,0,$subcats,$itemid,$option,$order,$expand);
$paths[0]->text = ADSMANAGER_ROOT_TITLE;
$paths[0]->link = sefRelToAbs('index.php?option='.$option.'&Itemid='.$itemid);
adsmanager_html::show_pathway($paths,$option);
adsmanager_html::show_subcats($subcats);

//List
if (isset($text_search))
$url_text_search = "&text_search=".$text_search;
$url ="index.php?option=$option&page=show_all".$url_text_search."&order=".$order."&area_ot=".$area_ot."&area_do=".$area_do."&site_ot=".$s_ot."&site_do=".$s_do."&pr_ot=".$cenot."&pr_do=".$cendo;//Пагинация поиска
adsList(ADSMANAGER_LIST_TEXT,"",$url,"show_all","1",$text_search,$expand,$order,0,$option,$limitstart);
}


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


Код


function show_all($option,$expand,$text_search,$order,$limitstart,$ad_city,$ad_metro)
{
global $mainframe,$database,$mosConfig_absolute_path,$mosConfig_live_site;

$itemid          = intval( mosGetParam( $_GET, 'Itemid', 0 ));
//Поиск по цене
$cenot = intval( mosGetParam( $_GET, 'pr_ot', 0 ));
$cendo = intval( mosGetParam( $_GET, 'pt_do', 0 ));

//Поиск по цене

//Поиск по общей площади
    $areaot = intval( mosGetParam( $_GET, 'area_ot', 0 ));
$areado = intval( mosGetParam( $_GET, 'area_do', 0 ));

//Поиск по площади участка
    $s_ot  = intval( mosGetParam( $_GET, 'site_ot', 0 ));
    $s_do  = intval( mosGetParam( $_GET, 'site_do', 0 ));

//
///модификация под метро и город
    if($ad_city){
     $title = ADSMANAGER_LIST_CITY . $ad_city;
     $keyw = ADSMANAGER_LIST_CITY . $ad_city . ", квартиры в городе " . $ad_city;
     $disc = ADSMANAGER_LIST_CITY . $ad_city . ". Все объекты недвижимости по продаже, покупке, аренде в городе " . $ad_city;

            }
    elseif($ad_metro) {
    $title = ADSMANAGER_LIST_METRO . $ad_metro;
    $keyw = ADSMANAGER_LIST_METRO . $ad_metro .", квартиры у станции " . $ad_metro;
    $disc = ADSMANAGER_LIST_METRO . $ad_metro .". Все объекты недвижимости находящиеся около метро " . $ad_metro;
}

    else  {
    $title = ADSMANAGER_LIST_TEXT;
    

}
// Dynamic Page Title
    $mainframe->SetPageTitle( $title );
    $mainframe->prependMetaTag( "description", $disc );
    $mainframe->prependMetaTag( "keywords" , $keyw );



//Pathway
$database->setQuery( "SELECT c.id, c.name,c.parent ".
" FROM #__adsmanager_categories as c ".
"WHERE c.published = 1 ORDER BY c.parent,c.ordering");
$list = $database->loadObjectList();
getSubCatsList($list,0,$subcats,$itemid,$option,$order,$expand);
$paths[0]->text = ADSMANAGER_ROOT_TITLE;
$paths[0]->link = sefRelToAbs('index.php?option='.$option.'&Itemid='.$itemid);
adsmanager_html::show_pathway($paths,$option);
adsmanager_html::show_subcats($subcats);

//List
if (isset($text_search))
$url_text_search = "&text_search=".$text_search;
$url ="index.php?option=$option&page=show_all".$url_text_search."&order=".$order."&area_ot=".$area_ot."&area_do=".$area_do."&site_ot=".$s_ot."&site_do=".$s_do."&pr_ot=".$cenot."&pr_do=".$cendo;//Пагинация поиска
adsList($title,$disc,$url,"show_all","1",$text_search,$expand,$order,0,$option,$limitstart);
}



Вот как то так.
Буду рад советам по оптимизации.
Может потом созрею на полное авто мета описание под сами объекты и категории.






« Последнее редактирование: 03.12.2014, 05:46:20 от AlexSims »
С фантазией плохо.
*

Grendy

  • Захожу иногда
  • 247
  • 26 / 0
Код
$title = ADSMANAGER_LIST_CITY . $ad_city;
$keyw = ADSMANAGER_LIST_CITY . $ad_city . ", квартиры в городе " . $ad_city;
$disc = ADSMANAGER_LIST_CITY . $ad_city . ". Все объекты недвижимости по продаже, покупке, аренде в городе " . $ad_city;

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

Код
$title = ADSMANAGER_LIST_CITY.$ad_city;
$keyw = "$title, квартиры в городе $ad_city";
$disc = "$title. Все объекты недвижимости по продаже, покупке, аренде в городе $ad_city";

А подобное

Код
$disc = ADSMANAGER_LIST_CITY . $ad_city . ". Все объекты недвижимости по продаже, покупке, аренде в городе " . $ad_city;

эстетичнее смотрелось бы и удобнее было бы редактировать, будь оно отформатировано с помощью той же функцией sprintf(). К тому же, вставлять в код произвольный текст - не комильфо.

Насчёт постраничной навигации, кому как, а я бы запретил такие страницы к индексации. Фактически они лишь мешают продвижению «главной» (первой страницы категории). А если уж сильно хочется втюхивать такие странички поисковикам, проверяем по переменной $limitstart, находимся ли мы на первой странице, и если находимся, выводим одно описание, в противном случае - другое либо добавляем через тире «страницы N».
Плюс в репутацию больше говорит о благодарности, чем слово "Спасибо" в теме, которую повторно, возможно, никогда уже не посетишь.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
Код
$title = ADSMANAGER_LIST_CITY . $ad_city;
$keyw = ADSMANAGER_LIST_CITY . $ad_city . ", квартиры в городе " . $ad_city;
$disc = ADSMANAGER_LIST_CITY . $ad_city . ". Все объекты недвижимости по продаже, покупке, аренде в городе " . $ad_city;

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

Код
$title = ADSMANAGER_LIST_CITY.$ad_city;
$keyw = "$title, квартиры в городе $ad_city";
$disc = "$title. Все объекты недвижимости по продаже, покупке, аренде в городе $ad_city";

А подобное

Код
$disc = ADSMANAGER_LIST_CITY . $ad_city . ". Все объекты недвижимости по продаже, покупке, аренде в городе " . $ad_city;

эстетичнее смотрелось бы и удобнее было бы редактировать, будь оно отформатировано с помощью той же функцией sprintf(). К тому же, вставлять в код произвольный текст - не комильфо.

Насчёт постраничной навигации, кому как, а я бы запретил такие страницы к индексации. Фактически они лишь мешают продвижению «главной» (первой страницы категории). А если уж сильно хочется втюхивать такие странички поисковикам, проверяем по переменной $limitstart, находимся ли мы на первой странице, и если находимся, выводим одно описание, в противном случае - другое либо добавляем через тире «страницы N».
- спасибо за подсказку ( я что то не додумался сократить так).
- со sprintf() надо еще разбираться _))

в последнем случае так и сделал - дописал слово Страница № и от переменной $limitstart номер получил.

С фантазией плохо.
*

Grendy

  • Захожу иногда
  • 247
  • 26 / 0
- со sprintf() надо еще разбираться _))

Код
DEFINE( "ADSMANAGER_LIST_CITY", "Недвижимость в городе %s. Все объекты недвижимости по продаже, покупке, аренде в городе %s.");

В результате выполнения

Код
sprintf(ADSMANAGER_LIST_CITY, $ad_city, $ad_city)

Получим вывод нужного текста с подставленными на места %s переменными $ad_city.

А можно ещё вот так:
Код
$ad_city            = mosGetParam( $_GET, 'ad_city', 'любой' );
$ad_metro            = mosGetParam( $_GET, 'ad_metro', 'любая станция');

Код
sprintf(ADSMANAGER_LIST_CITY, $ad_city, $ad_metro)

Код
DEFINE( "ADSMANAGER_LIST_CITY", "Город: %s. Все объекты недвижимости по продаже, покупке, аренде рядом с метро: %s.");

Так, если оба параметра могут присутствовать в адресе страницы, и станция учтена будет, и город :)
Плюс в репутацию больше говорит о благодарности, чем слово "Спасибо" в теме, которую повторно, возможно, никогда уже не посетишь.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
теперь осталось придумать как запихнуть эти новые ссылки в Xmap (sitemap), а то Яндекс не хочет индексировать их почему то.
С фантазией плохо.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
запихнул я эти ссылки ( метро + города, область)
проблема была еще в том что они идут через запятую в строке ( ее решил )
теперь осталось найти решение как:
- устранить "пробелы" после запятой которые указывали
- и с регистром букв разобраться ( так как много дублей может на создаваться)

Решение такое

в файле com_adsmanager.php ( что лежит в папке components/com_xmap/extensions )

в функции &getTree после кода
Код
[b] $params['include_ads'] = $include_ads;[/b]

добавляем ( это нужно чтоб можно было выбирать в какой форме выводить и приоритет и частоту сканирования поисковиком)
Спойлер
[свернуть]


далее в этом же файле в функции getCategories
после кода
Спойлер
[свернуть]

добавляем свой код - метро+город  ( долго не мог понять почему не работало, пока условие and category = $catid не добавил в запросе )

Спойлер
[свернуть]


в файле com_adsmanager.xml ( в той же папке )

добавляем

Код
<param name="include_ads_mc" type="list" default="1" label="metro-city" description="Should we include ads into the sitemap?">
                        <option value="0">Never</option>
                        <option value="1">Always</option>
                        <option value="2">In XML Sitemap Only</option>
                        <option value="3">In Site Sitemap Only</option>
</param>


и чуть ниже

Спойлер
[свернуть]




изначально было около 4600 ссылок в этой sitemape( объявы и категории)
теперь стало 5940 ( с городами и метро) - надо как-нибудь придумать как в отдельный фаил Sitemap их запихать


пробелы и точки вначале и конце каждого слова подрезал ( - 100 лишних ссылок)
« Последнее редактирование: 24.12.2014, 01:44:42 от AlexSims »
С фантазией плохо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль поиска - не сбрасываются результаты при переходе на другие страницы

Автор Ingener

Ответов: 9
Просмотров: 2297
Последний ответ 13.11.2016, 21:20:21
от moonaway
создание второй страницы с AdsManager

Автор SerGunSter

Ответов: 0
Просмотров: 1236
Последний ответ 14.01.2016, 16:42:23
от SerGunSter
AdsManager 2.8.0 Stable. Название родительских категорий в <title>

Автор lustoff

Ответов: 0
Просмотров: 1225
Последний ответ 07.01.2016, 12:15:27
от lustoff
Некорректное отображение страницы подачи нового объявления

Автор Lenko.A.N

Ответов: 0
Просмотров: 1044
Последний ответ 24.06.2015, 16:02:02
от Lenko.A.N
Добавление в title номера страницы

Автор Serafon

Ответов: 5
Просмотров: 2623
Последний ответ 24.07.2014, 14:17:19
от Serafon