Новости Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

👩‍💻 Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla.v.6.1.0 Что нового?Модуль корзины. Отображение корзины в виде offcanvas-элемента.Кнопка выхода в панели управления пользователя. Что тут сказать, просто добавили. Отправка писем только для заказов, оплаченных определёнными способами. Это удобно для рассылки сообщений, привязанных к региону или провайдеру (например, инструкции по банковскому переводу только для заказов, оплаченных банковским переводом).Листинг выплат по партнерской системе. В разделе управления партнёрскими программами появилось новое подменю «Выплаты», в котором перечислены выплаты партнёрам (упрощённое отслеживание и сверка). Добавлены настройки, благодаря которым можно определить категории товаров, на которые начисляется партнёрская комиссия с продаж.Список комплектов товаров. Система комплектов позволяет отслеживать остатки товаров, продаваемых в комплекте.Подробнее в блоге Hikashop.Поскольку мы не сообщали ранее о Hikashop 6.0, то вкратце скажем, что он вышел в июне 2025г. В новой версии было:- 13 исправлений ошибок- 17 улучшений. В частности:- - Hikashop теперь проверяет UserAgent пользователя перед добавлением товара в корзину, чтобы отсечь ботов. Ведь компонент хранит корзины в базе данных.- - улучшен роутинг компонента, позволяющий использовать в названии товара даже слеши.- - улучшения фильтра товаров - ускорение загрузки категорий/брендов/характеристик.- 4 новых функции:- - добавлена поддержка Joomla 6.0.- - Улучшена возможность адаптации форм HikaShop на фронтенде к шаблонам, не использующим стандартные классы Joomla.- - Плагин внутреннего баланса: возможность исключить уцененные товары из начисленных баллов.- - Теперь можно выбирать склады для вариантов товаров.Подробнее в Changelog Hikashop.Также при работе с Hikashop стоит учитывать, что один и тот же код поддерживает версии Joomla от 3.х до 5.х, а в таблице сравнения версий заявлена и Joomla 2.5. Беглый просмотр кода показал, что компонент как был, так и остался старым и для совместимости с Joomla 4+ просто добавлен плагин.@joomlafeed#joomla #расширения #hikashop

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста...

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста...

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста "Просто о Digital"Гость:🎙 Владимир Сергеенко ( https://t.me/aixman ) • Интернет-маркетолог с 14-летним опытом• Соавтор книги «Нетворкинг»• Спикер конференции Ассоциации директоров по развитиюВедущий:💻 Игорь Филипенко ( https://t.me/igorleee )• Программист и предприниматель с 16-летним опытом в digital• Основатель подкаста "Просто о Digital"• Специалист по автоматизации бизнес-процессовВ этом выпуске вы узнаете:🔥 Актуальность сайтов в эпоху нейросетей• Актуален ли сайт сейчас и будет ли актуален в будущем?• Зачем нужен сайт? Есть ли иные инструменты привлечения клиентов?🤖 Нейросети vs Поисковики vs Сайты• Почему нейросети не заменят сайты в B2B-сегменте• Как Google и Яндекс меняют алгоритмы из-за AI-конкуренции📊 Сайт как центр вселенной вашего трафика• Почему без сайта вы сливаете 40% маркетингового бюджета впустую?🛡 Безопасность и Joomla 6.0• Как отфильтровать 99% ботов и сэкономить на трафике• Почему Joomla теперь обходит WordPress в безопасности и скорости⚖️ Выбор платформы: битва CMS• WordPress: 50% рынка но 80% уязвимостей• Joomla: профессиональная CMS для сложных проектов• Drupal: почему его похоронили в 2023 году• Tilda: когда конструктор выгоднее CMSПриятного просмотра/прослушивания!RSS: https://cloud.mave.digital/61930Mave: https://igorfilipenko.mave.digitalЯндекс Музыка: https://music.yandex.ru/album/35840190Telegram Mave: https://t.me/mavestreambot/app?startapp=igorfilipenkoApple Podcasts: https://podcasts.apple.com/us/podcast/просто-о-digital-и-бизнесе/id1801903450ВКонтакте: https://vk.com/podcasts-12488584Youtube: https://www.youtube.com/playlist?list=PLfR6jTpnkohDDco32xZ-KyMyWi_S5Xdy2=========================Видео-формат подкаста:Rutube: https://rutube.ru/video/b5762754f9d3e0dc382f32f3034be0a2/Youtube: https://youtu.be/nu1XF2jNbxY#подкаст #podcast

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

Vaska

  • Осваиваюсь на форуме
  • 29
  • 0 / 2
Приветствую!

Имею сайт на Mambo 4.5.
Включен SEF.

Страницы контента имеют ссылки: http://mysite.ru/content/view/440/115/
440 - это ID страницы контента
115 - это ID меню

Есть проблема с поиском на сайте, с компонентом com_search.
При выводе найденного в компоненте поиска, ссылка имеет вид http://mysite.ru/content/view/440/
То-есть не выводится, в ссылке, ID меню.
По этой причине весь контент имеет дубли.

Нужно доработать компонент com_search, чтобы ссылки имели вид http://mysite.ru/content/view/440/115/

Компонент http://mysite.ru/content/view/440/115/ состоит из двух файлов и ссылается на ещё один файл класса weblinks.class.php.
Прикрепляю все три файла.

\components\com_search\search.php
Код
<?php

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

/**
* To be implemented in Version 4.6
*/
function mosLogSearch( $search_term ) {
global $database;
global $mosConfig_enable_log_searches;

if (@$mosConfig_enable_log_searches) {
$database->setQuery( "SELECT hits"
. "\nFROM #__core_log_searches"
. "\nWHERE LOWER(search_term)='$search_term'" );
$hits = intval( $database->loadResult() );
echo $database->getErrorMsg();
if ($hits) {
$database->setQuery( "UPDATE #__core_log_searches SET hits=(hits+1)"
. "\nWHERE LOWER(search_term)='$search_term'" );
$database->query();
echo $database->getErrorMsg();
} else {
$database->setQuery( "INSERT INTO #__core_log_searches VALUES"
. "\n('$search_term','1')" );
$database->query();
echo $database->getErrorMsg();
}
}
}

require_once( $mainframe->getPath( 'front_html' ) );

$gid = $my->gid;

search_html::openhtml( htmlspecialchars( $searchword ) );

$searchword = mosGetParam( $_REQUEST, 'searchword', '' );
$searchword = $database->getEscaped( trim( $searchword ) );

$search_ignore = array();
@include "$mosConfig_absolute_path/language/$mosConfig_lang.ignore.php";

search_html::searchbox( htmlspecialchars( $searchword ) );
if (!$searchword) {
search_html::message( _NOKEYWORD );
} else if (in_array( $searchword, $search_ignore )) {
search_html::message( _IGNOREKEYWORD );
} else {
search_html::searchintro( htmlspecialchars( $searchword ) );

mosLogSearch( $searchword );

$totalRows = 0;

// current content
$obj = new mosContent( $database );
$rows = $obj->search( $searchword );
$totalRows += count( $rows );
unset( $obj );

// archived content
$obj = new mosContent( $database );
$archived = $obj->search( $searchword, '-1', 'Archived ' );
unset( $obj );

// this needs to be more dynamic? not hardcoded
require_once( "components/com_weblinks/weblinks.class.php" );

$obj = new mosWeblink( $database );
// merge the weblinks results, columns must match format of content
$rows = array_merge( $rows, $obj->search( $searchword ) );
unset( $obj );

// bring current and archived together, with the latter at the end
$rows = array_merge( $rows, $archived );
$totalRows = count( $rows );

// выводит содержание найденного, но не ссылку
for ($i=0, $n=count($rows); $i < $n; $i++) {
$row = &$rows[$i]->text;
$row = preg_replace( "'<script[^>]*>.*?</script>'si", "", $row );
$row = str_replace( '{mosimage}', '', $row );
$row = preg_replace( '/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is','\2 (\1)', $row );
$row = preg_replace( '/<!--.+?-->/', '', $row);
$row = preg_replace( '/{.+?}/', '', $row);
$row = substr( strip_tags( $row ), 0, 50 );
}
////////////////////

if ($n) {
search_html::display( $rows );
} else {
search_html::displaynoresult();
}

search_html::conclusion( $totalRows, htmlspecialchars( $searchword ) );
}
?>


\components\com_search\search.html.php

Код
<?php

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

class search_html {
function openhtml( $searchword ) {
?>
<h2 class="b-module-lined-headline m-09-techspecs-headline">
      <span><?php echo _SEARCH_TITLE; ?></span>
    </h2>
<?php
}

function searchbox( $searchword ) {
?>
<form action="index.php" method="POST">
  <div class="module-grid">

    <div class="form-group has-feedback">
      <label for="inputEmail" class="control-label col-sm-3"><?php echo _PROMPT_KEYWORD; ?>:</label>
      <div class="col-sm-9">
<input type="text" name="searchword" style="max-width:100%" value="<?php echo stripslashes($searchword);?>" class="inputbox2" />
    </div>
  </div>

  <div class="buttonSet row">
    <div class="col-xs-12 text-right"><input type="submit" name="submit" value="<?php echo _SEARCH_TITLE;?>" class="button" /></div>
  </div>
</div>
<input type="hidden" name="option" value="com_search" />
</form>

<div class="margintop40"></div>
  <?php
}

function searchintro( $searchword ) {
?>
   <h2><?php echo _PROMPT_KEYWORD; ?>: <strong><?php echo stripslashes($searchword); ?></strong>
<?php
}

function message( $message ) {
?>
    <div class="alert alert-info">
<?php
eval ('echo "'.$message.'";');
?>
</div>
<div class="marginbottom50"></div>
<?php
}

function displaynoresult() {
echo "</h2>";
}

function display( &$rows ) {
global $mosConfig_offset;
$c = count ($rows); eval  ('echo "'._NUM_RESULTS.'";'); ?>
</div>
<div class="marginbottom40"></div>
<?php
$tabclass = array("sectiontableentry1", "sectiontableentry2");
$k = 0;
  ?>
<div class="table-responsive">
<table class="table table-striped comcontent">
  <?php
  foreach ($rows as $row) {
$arrDateTime = explode(" ", $row->created);
$arrDate = explode("-", $arrDateTime[0]);
$arrTime = explode(":", $arrDateTime[1]);
$created = strftime ("%e %B", mktime ($arrTime[0],$arrTime[1],$arrTime[2],$arrDate[1],$arrDate[2],$arrDate[0]) + $mosConfig_offset*60*60);
  ?>



  <tr>
    <td width="5%"><?php echo $created; ?></td>
    <td><a href="<?php echo sefRelToAbs($row->href); ?>"><?php echo $row->title;?></a></td>
    <td><span class="small"><?php echo $row->section; ?></span></td>
  </tr>
 
  <tr class="success">
    <td></td>
    <td><?php echo $row->text;?> &#133; </td>
    <td></td>
  </tr>
  <?php
  $k = 1 - $k;
  }
}


function conclusion( $totalRows, $searchword ) {
global $mosConfig_live_site;
?>
  <tr>
    <td colspan="3">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3">
<?php
eval ('echo "'._CONCLUSION.'";');
?>
  </tr>
</table>
</div>
<div class="marginbottom40"></div>
<?php
}
}
?>


\components\com_weblinks\weblinks.class.php

Код
<?php
// $Id: weblinks.class.php,v 1.5 2004/03/19 17:41:13 rcastley Exp $
/**
* Content code
* @package Mambo Open Source
* @Copyright (C) 2000 - 2003 Miro International Pty Ltd
* @ All rights reserved
* @ Mambo Open Source is Free Software
* @ Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
* @version $Revision: 1.5 $
**/

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

/**
* Web Links Class
* @package Weblinks
* @copyright 2000-2003 Miro International Pty Ltd
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @version $Revision: 1.5 $
*/

/**
* Category database table class
*/
class mosWeblink extends mosDBTable {
/** @var int Primary key */
var $id=null;
/** @var int */
var $catid=null;
/** @var int */
var $sid=null;
/** @var string */
var $title=null;
/** @var string */
var $url=null;
/** @var string */
var $description=null;
/** @var datetime */
var $date=null;
/** @var int */
var $hits=null;
/** @var int */
var $published=null;
/** @var boolean */
var $checked_out=null;
/** @var time */
var $checked_out_time=null;
/** @var int */
var $ordering=null;
/** @var int */
var $archived=null;
/** @var int */
var $approved=null;

/**
* @param database A database connector object
*/
function mosWeblink( &$db ) {
$this->mosDBTable( '#__weblinks', 'id', $db );
}
// overloaded check function
function check() {
// filter malicious code
$this->filter();

// specific filters
$iFilter = new InputFilter();

if ($iFilter->badAttributeValue( array( 'href', $this->url ))) {
$this->_error = 'Please provide a valid URL';
return false;
}

// check for valid name
if (trim( $this->title ) == '') {
$this->_error = _WEBLINK_TITLE;
return false;
}

if (!(eregi("http://", $this->url) || (eregi("https://",$this->url)))) {
$this->url = "http://".$this->url;
}

// check for existing name
$this->_db->setQuery( "SELECT id FROM #__weblinks "
. "\nWHERE title='$this->title' AND catid='$this->catid'"
);

$xid = intval( $this->_db->loadResult() );
if ($xid && $xid != intval( $this->id )) {
$this->_error = _WEBLINK_EXIST;
return false;
}
return true;
}

/**
* @param string Target search string
*/
function search( $text, $state='', $sectionPrefix='' ) {
$text = trim( $text );
if ($text == '') {
return array();
}

$this->_db->setQuery( "SELECT date AS created, title,"
. "\n url AS href, description AS text, '1' AS browsernav, '{$sectionPrefix}Weblinks' AS section"
. "\nFROM #__weblinks WHERE (title LIKE '%$text%'"
. "\n OR description LIKE '%$text%')"
. "\n ORDER BY created DESC"
);

return $this->_db->loadObjectList();
}
}
?>

Не предлагайте обновиться до новой версии. Буду расценивать как флуд.
ФТП-доступа нет.

Заплачу 800 руб. на ЯД или на карту Сбербанка.
*

Vaska

  • Осваиваюсь на форуме
  • 29
  • 0 / 2
Re: Mambo 4.5 доработать компонент com_search
« Ответ #1 : 07.06.2017, 23:56:01 »
Если пишите мне в личку, то я ещё  не имею прав отвечать на сообщения в личке.
Имейте это в виду.
*

Vaska

  • Осваиваюсь на форуме
  • 29
  • 0 / 2
Re: Mambo 4.5 доработать компонент com_search
« Ответ #2 : 08.06.2017, 18:40:46 »
Задание выполнено!
*

Vaska

  • Осваиваюсь на форуме
  • 29
  • 0 / 2
Re: Mambo 4.5 доработать компонент com_search
« Ответ #3 : 19.08.2018, 15:46:35 »
Столкнулся снова с тем, что в модулях так же нет, в конце ссылки, ID меню.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Снова по CSS

Автор Atlant77

Ответов: 1
Просмотров: 901
Последний ответ 18.06.2017, 07:42:43
от draff
Mambo 4.5 исправить редактор (обрезает теги)

Автор Vaska

Ответов: 12
Просмотров: 1985
Последний ответ 17.06.2017, 17:57:19
от Taatshi
Нужно разобраться, что приводит к огромно

Автор ninko1

Ответов: 9
Просмотров: 1158
Последний ответ 24.04.2017, 20:28:56
от ninko1
Фото лента для сайта

Автор ecs23

Ответов: 1
Просмотров: 1023
Последний ответ 05.01.2017, 03:50:21
от era
Доработка VirtueMart

Автор seoboy

Ответов: 0
Просмотров: 937
Последний ответ 11.12.2016, 15:32:34
от seoboy