Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

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

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

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

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Увеличение выбора покупаемых товаров в карточке товара + - подсмотрел у vm

Стили добавляйте сами.

com_jshopping\templates\default\produc\product_default.php
находим
Код
<input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 20px" value = "<?php print $this->default_count_product?>" />
ниже добавляем сточки
Код
<input class="quantity-plus" type="button" onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">
<input class="quantity-minus" type="button" onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
isNaN вроде применяется только на UNIX платформах
« Последнее редактирование: 09.01.2012, 13:37:13 от Aspik »
Мои расширения - http://eco-joom.com/ru/
*

nevigen

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

BaevAS

  • Захожу иногда
  • 116
  • 1 / 0
  • Время проведенное на рыбалке, в счет жизни не идет
Только вчера с этим кувыркался а сегодня вот есть решение. Большое человеческое спасибо
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Прекрасненько !

Если в горизонтале используются кнополки то конечно логичней
Код
<input class="quantity-minus" type="button" onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">

<input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 20px" value = "<?php print $this->default_count_product?>" />

<input class="quantity-plus" type="button" onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">


Тогда минус перед полем, плюс после :) Работает.
разрабам может в сток кинуть ?

ЗЫ. кинул в ФАК. Ну и в репу дал ;)
« Последнее редактирование: 09.01.2012, 12:17:30 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
разрабам может в сток кинуть ?
Совсем не понятен вопрос
Мои расширения - http://eco-joom.com/ru/
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Ну я имел ввиду вставить в инсталляцию сразу.
Чтобы не хакать.
Хотя дело касается шаблона... тут уж без разницы. Все равно это индивидуальные вещи и правятся под себя.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
спасибо, тока там надо не забыть value="-" и value="+" вставить, или свою кнопку... я сразу и не понял почему знака нет на кнопке :)

кстати тоже самое работает и в таблице корзины.... добавить надо в .........com_jshopping/templates/default/cart/cart.php
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
вообще знак делается на кнопки методом CSS оформления.
Мои расширения - http://eco-joom.com/ru/
*

serikus

  • Новичок
  • 5
  • 0 / 0
Попробывал сделать картинками http://ms4mobile.make-art.lv/index.php/webshop/makeart/portrait, у меня изображения на разном уровне с кнопкой. Как это можно исправить?
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
*

serikus

  • Новичок
  • 5
  • 0 / 0
готовое решение по стилям можно взять от сюда http://demo.virtuemart.net/index.php?page=shop.product_details&category_id=11&flypage=flypage_default.tpl&product_id=28&option=com_virtuemart&Itemid=12&vmcchk=1&Itemid=12

Код
<li class="prod_qty_input">
<input class="quantity-minus" type="image" img src="http://ms4mobile.make-art.lv/images/minus.png" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
<input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 35px" value = "<?php print $this->default_count_product?>" />
<input class="quantity-plus" type="image" img src="http://ms4mobile.make-art.lv/images/plus.png" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">
</li>

*Просмотрел я код, вроде бы похоже. Но проблема в том, что надо и CSS редактировать, а мои познания не столь велики. Я пробывал несколько раз, но как видите на ссылке моей, картинки не на одном уровне. вот что меня напрягает
« Последнее редактирование: 15.01.2012, 17:11:33 от serikus »
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
эээ... а Вас не напрягает что Вы мне линканули VirtueMart в теме JoomShopping? И мне редактировать надо php файл, а не Page Source из Оперы?


*Просмотрел я код, вроде бы похоже. Но проблема в том, что надо и CSS редактировать, а мои познания не столь велики.
нет не напрягает, читайте первый пост откуда взято решение.
Да вам надо редактировать CSS -  найти вашу таблицу стилей можно по пути components\com_jshopping\css
Лучшего использовать mozilla+firebug
Знания css+html обязательны
Мои расширения - http://eco-joom.com/ru/
*

serikus

  • Новичок
  • 5
  • 0 / 0
нет не напрягает, читайте первый пост откуда взято решение.
Да вам надо редактировать CSS -  найти вашу таблицу стилей можно по пути components\com_jshopping\css
Лучшего использовать mozilla+firebug
Знания css+html обязательны

к сожалению моих знаний в CSS не хватит. Может быть предоставите какую либо наводку, или ссыль для поиска, так как неудобно просить делать за меня.


*пробывал
Код
<table width="100%">
   <tr>
    <td width="100"></td>
    <td align="center"> CODE</td>
   </tr>
  </table>
, не вышло.
« Последнее редактирование: 15.01.2012, 17:26:33 от serikus »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Если хотите чтобы было красиво, надо ЦСС поправить.

В файле цсс шаблона (если дефолтный то components/com_jshopping/css/default.css)
Нужно зайти и создать 2 класса и к ним прописать стили
.quantity-minus {описать вид вывода}
.quantity-plus {описать вид вывода}

Пример части ЦСС с обозначенного выше ресурса ;)
Код
input.quantity-minus {
    background: url("themes/vmTheme_framework//assets/css/../../images/style1/quantity-controls.png") repeat-x scroll 15px 0 transparent;
    border: medium none;
    float: left;
    height: 14px;
    padding: 0;
    width: 15px;
}

Если просто сделать то можно добавить в код строки (там где Вы меняли)
Цитировать
<input class="quantity-minus" value="-" type="button" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
Соответственно для плюса "+"

Без знаний никак :)
Посмотрите видеоуроки или читать тут
« Последнее редактирование: 15.01.2012, 18:50:27 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
JS 3.5.0

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

вариант с картинками

Код
<input class="quantity-minus" type="image" img src="<?php print $this->image_path ?>images/minus-16.png" onclick="var qty_el = document.getElementById('quantity<?php print $key_id ?>'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
<input type="text" id="quantity<?php print $key_id ?>" name="quantity[<?php print $key_id ?>]" value="<?php print $prod['quantity'] ?>" class="inputbox" style="width: 20px" />
<?php print $prod['_qty_unit'];?>
<input class="quantity-plus" type="image" img src="<?php print $this->image_path ?>images/plus-16.png" onclick="var qty_el = document.getElementById('quantity<?php print $key_id ?>'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">


вариант с текстовыми + -

Код
<input class="quantity-minus" value="-" type="button" onclick="var qty_el = document.getElementById('quantity<?php print $key_id ?>'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
<input type="text" id="quantity<?php print $key_id ?>" name="quantity[<?php print $key_id ?>]" value="<?php print $prod['quantity'] ?>" class="inputbox" style="width: 20px" />
<?php print $prod['_qty_unit'];?>
<input class="quantity-plus" value="+" type="button" onclick="var qty_el = document.getElementById('quantity<?php print $key_id ?>'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">
*

soft87

  • Новичок
  • 3
  • 6 / 0
Так красивее, сразу пересчитывает:

Код
      <input class="quantity-minus" type="button" value="-" onclick="var qty_el = document.getElementById('quantity[<?php print $key_id ?>]'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--; document.updateCart.submit(); return false;">
      <input type = "text" id = "quantity[<?php print $key_id ?>]" name = "quantity[<?php print $key_id ?>]" value = "<?php print $prod['quantity'] ?>" class = "inputbox" style = "width: 25px" />
      <input class="quantity-plus" type="button" value="+" onclick="var qty_el = document.getElementById('quantity[<?php print $key_id ?>]'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++; document.updateCart.submit(); return false;">
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
очень кстати :) с меня плюсик
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Очень содержательная дискуссия. Даже не знаю кому плюсануть.
Спасибо Aspik и nevigen
*

Polosat

  • Захожу иногда
  • 202
  • 7 / 0
  • Мечты - это то, из чего сделано будущее
Спасибо, в карточке товара работает, а как вывести всё это дело в категорию товара? Что бы не заходя в карточку товара можно было кидать товары в корзину из категории при этом выбирая кол-во ?  ::)

вот нашел подобную тему-вопрос, без ответа

http://joomlaforum.ru/index.php/topic,180316.0.html

Пытаюсь вживить код + -  в файл  product.php

/components/com_jshopping/templates/default/list_products/
« Последнее редактирование: 15.03.2012, 19:19:22 от Polosat »
*

Polosat

  • Захожу иногда
  • 202
  • 7 / 0
  • Мечты - это то, из чего сделано будущее
никак не могу подружить между собой 2 куска кода из разных файлов

вот это то что есть в списке товара в категории без + -

Код
  <div class="buttons">
            <?php if ($product->buy_link){?>
            <a href="<?php print $product->buy_link?>"><?php print _JSHOP_BUY?></a> &nbsp;
            <?php }?>
            <a href="<?php print $product->product_link?>"><?php print _JSHOP_DETAIL?></a>
            <?php print $product->_tmp_var_buttons;?>
        </div>

а вот этот код из карточки товара который генерирует + -

Код
   <table class="prod_buttons">
        <tr>
            <td class="prod_qty">
                <?php print _JSHOP_QUANTITY?>:&nbsp;
            </td>
            <td class="prod_qty_input">
                <li class="prod_qty_input">
<input class="quantity-minus" type="image" img src="http://ms4mobile.make-art.lv/images/minus.png" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
<input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 35px" value = "<?php print $this->default_count_product?>" />
<input class="quantity-plus" type="image" img src="http://ms4mobile.make-art.lv/images/plus.png" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">
</li>

            </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 }?>
                <?php print $this->_tmp_product_html_buttons;?>
            </td>
            <td id = "jshop_image_loading" style = "display:none"></td>
        </tr>
        </table>
*

Deamelfuse

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
То же самое. Увеличивая или уменьшая кол-во в любом товаре, увеличение и уменьшение происходит только в первом:(

У кого нибудь есть соображения по этому поводу?

*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
То же самое. Увеличивая или уменьшая кол-во в любом товаре, увеличение и уменьшение происходит только в первом:(

У кого нибудь есть соображения по этому поводу?



Есть  :)

на несколько сообщений выше http://joomlaforum.ru/index.php/topic,196216.msg1074742.html#msg1074742
*

Polosat

  • Захожу иногда
  • 202
  • 7 / 0
  • Мечты - это то, из чего сделано будущее
Есть  :)

на несколько сообщений выше http://joomlaforum.ru/index.php/topic,196216.msg1074742.html#msg1074742

Это не решение, оно или не работает или в корзину попадает один товар. Для себя решил установкой VM 2...
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
Это не решение, оно или не работает или в корзину попадает один товар. Для себя решил установкой VM 2...

Вы проверяли ?

Что значит "или" ?

vm2 - да на здоровье


*

Alexey1979

  • Новичок
  • 2
  • 0 / 0
И все таки вопрос остался без внимания, как можно сделать кнопки увеличения/уменьшения колчиества товара не на странице продукта, а на странице категории где отображен список товаров. Я попробовал и получилась та же самая беда, все кнопки последующих товаров управляют лишь колчиеством первого товара. Сам не силен в джава скрипте, но что то говорит мне, что надо как то ID товара к кнопкам прикрутить, чтобы нажав на кнопку с ID=7 количество увеличилось только в поле Input c ID=7 а не в первом товаре или ещё где нибудь. Специалисты подскажите на выше описанном примере для одного товара, как сделать подобное на списке товара.     :(
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
И все таки вопрос остался без внимания, как можно сделать кнопки увеличения/уменьшения колчиества товара не на странице продукта, а на странице категории где отображен список товаров. Я попробовал и получилась та же самая беда, все кнопки последующих товаров управляют лишь колчиеством первого товара. Сам не силен в джава скрипте, но что то говорит мне, что надо как то ID товара к кнопкам прикрутить, чтобы нажав на кнопку с ID=7 количество увеличилось только в поле Input c ID=7 а не в первом товаре или ещё где нибудь. Специалисты подскажите на выше описанном примере для одного товара, как сделать подобное на списке товара.     :(
В этих строках видно куда передается увеличение или уменьшение цифры:
Код
document.getElementById('quantity')
Следовательно каждому товару для поля с количеством надо давать индивидуальное имя и номер. Например:
Код
<input type = "text" name = "quantity_<?php print $this->product_id?>" id = "quantity_<?php print $this->product_id?>"...
И передавать увеличение соответственно:
Код
document.getElementById('quantity_<?php print $this->product_id?>')
Не проверял, но думаю направление мысли понятно...
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

nuruzadeh

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
И все таки вопрос остался без внимания, как можно сделать кнопки увеличения/уменьшения колчиества товара не на странице продукта, а на странице категории где отображен список товаров. Я попробовал и получилась та же самая беда, все кнопки последующих товаров управляют лишь колчиеством первого товара. Сам не силен в джава скрипте, но что то говорит мне, что надо как то ID товара к кнопкам прикрутить, чтобы нажав на кнопку с ID=7 количество увеличилось только в поле Input c ID=7 а не в первом товаре или ещё где нибудь. Специалисты подскажите на выше описанном примере для одного товара, как сделать подобное на списке товара.     :(
Здравствуйте! никто не подскажет что и где за ошибка? почему меняется только первый товар?
*

nuruzadeh

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Здравствуйте! Никто не сможет по этой теме помоч?
*

b-boy

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Народ! Еще никто не решил вопрос, как реализовать изменение количества товара на странице категории?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод товаров из всех подкатегорий на странице категории

Автор Faina

Ответов: 355
Просмотров: 68716
Последний ответ 11.10.2025, 08:48:34
от kit2m2
[Решено] Вывод 3-х первых картинок в списке товаров категории

Автор rudoy24

Ответов: 30
Просмотров: 12405
Последний ответ 19.07.2024, 11:41:28
от juleczka
Определить расширение. pop_description для списка товаров

Автор Alex_gs

Ответов: 3
Просмотров: 2207
Последний ответ 24.09.2023, 12:18:34
от kit2m2
Смена фото при наведении в списке товаров категории

Автор Taatshi

Ответов: 57
Просмотров: 6483
Последний ответ 15.06.2023, 15:53:25
от Akeksandr
Шаблон фильтрации товаров

Автор Prevergenec

Ответов: 1
Просмотров: 2535
Последний ответ 23.01.2023, 18:13:43
от kit2m2