Новости Joomla

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

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

JanP

  • Moderator
  • 107
  • 10 / 0
Здравствуйте,

Хотел бы представить вам новый компонент для организации интернет-магазина на Joomla.

Phoca Cart - компонент электронной коммерции для Joomla! 3.8+. 
Продукт активно развивается, но для того, чтобы сделать его более стабильным в ближайшее время, требуется помощь Joomla сообщества. Будет замечательно, если вы поможете с тестированием Phoca Cart.

Приглашаю Вас  ознакомиться с возможностями Phoca Cart!

Как установить:
http://www.phoca.cz/documents/116-phoca-cart-component/807-installing-sample-data-demo-data-in-phoca-cart

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

Большое спасибо.

Jan

P.S. Прошу прощения за мой русский язык, я использую Google Translate.

Демо: http://www.phoca.cz/phocacartdemo/
Страница на J.E.D.: https://extensions.joomla.org/extension/phoca-cart/

« Последнее редактирование: 10.11.2018, 14:04:59 от Sulpher »
*

Sulpher

  • Moderator
  • 2126
  • 402 / 16
  • Шаблоны и расширения Joomla
Jan, we're glad you contacted Russian Joomla! community and requested for a help with beta-testing. It shows that Joomla has no borders. Vítejte na ruske komunite! :-)

---
@all:
форумчанам, не владеющим английским: автор поста из Чехии, я поприветствовал его на нашем форуме и поблагодарил за проявленный интерес.
*

JanP

  • Moderator
  • 107
  • 10 / 0
спасибо, Jan
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
I just tried to checkout and entered user\pass demo\demo (didnt guess?)
And got it
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Еще хотелось бы уточнить несколько моментов
1. Платность
2. Поддержка русского сегмента (локализация, платежные шлюзы итп)
3. Модульность и MVC-шность
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
@Jan
Do you plan to update this https://github.com/PhocaCz/PhocaCart ?

Last commit more than a year ago.

UPD
Ah, I see in public activity that you tagged 3.0.0RC2 yesterday, but everything is dated 6 Mar 2015
« Последнее редактирование: 29.04.2016, 00:14:28 от SDKiller »
*

JanP

  • Moderator
  • 107
  • 10 / 0
Hi,

@voland

Hmm, the error comes from this file:
libraries\joomla\log\logger\formattedtext.php

cca line: 165:
Код
if (!fwrite($this->file, $line . "\n"))
{
throw new RuntimeException('Cannot write to log file.');
}
Seems like Joomla! cannot write entry to log file (it uses fwrite, so there can be problems with permissions or ownership - no FTP layer can be used), but why it is in checkout, really no idea :idea:

1) what you do you mean with "paid"
2) for now there is no russian language as I know, there are two payment methods: cash on delivery, PayPal. Payment methods are stored as plugins, so more can be written, Phoca Cart is still in development version, so there are only two for now. And one more info. Phoca Cart is not VirtueMart, it should be simple and easy extension, it does not make sense to do another VirtueMart. The extension should be simple and easy so it can be maintained well.
3) It is written like other Phoca extensions - in Joomla! MVC pattern - outputs can be overridden, there are layouts for HTML parts.

@SDKiller
Yes, sometimes I update only releases, not the code. Now I have updated it. https://github.com/PhocaCz/PhocaCart

Jan
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Well done Jan  8)  Keep going :D NorrNext is testing (me and Eugene) ;) I think I found an issue with fields in payment plugins I will let you know by email.
*

Sulpher

  • Moderator
  • 2126
  • 402 / 16
  • Шаблоны и расширения Joomla
Яндекс Касса для Phoca Cart
Вышел плагин оплаты Яндекс Касса для Phoca Cart с отправкой чека в соответствии с требованиями 54-ФЗ.



*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Поставил потестировать.
Импорт, как я понял, еще недоделан?

И да, в русификации бросилось в глаза слово "Експорт", когда правильно "Экспорт."

PS. @JanP is that ok I use russian?
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
One more thing with doubles, even worse.
http://phoca.localzone/index.php/phoca/4-di/23-di-s3-3.html - i.e. i changed category, so phoca tells "Item not found", but httpcode is 200 OK instead of 404 NOT Found.
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

JanP

  • Moderator
  • 107
  • 10 / 0
Hi voland,

1) thank you for the feedback
2) I learned Russian only for two years, I can read Azbuka, but it will be better to communicate in English for me.
3) Do you get any problem with Import?
4) Russian language - I think, this is much more a question on Russian translator :idea:
5) I didn't test the experimental routing yet, so I cannot say if it will work OK - the priority for now is to work with standard Joomla! SEF: https://www.phoca.cz/phocacartdemo/ (but of course it is a plan for the future - we will see, if something changes in the experimental routing system)
6) 200 or 404 - yes, the question is always problematic - return 200 because no error happened but no items found or return 404 which means in fact error. User can be confused that error comes but it is not an error, it is just the situation that e.g. filtering didn't find any item :idea: - hard to say. So, is "no item found" and 404 error or is it 200 with empty result? The change to 404 is of course easy, but the question is if it should be taken as an error?

Код
throw new Exception(JText::_('No Item Found'), 404);

7) the search module is here:
https://www.phoca.cz/phoca-cart-search-module
you can see demo here:
https://www.phoca.cz/phocacartdemo/

It is not standard Joomla! search plugin for search module, because this module is fully integrated in Phoca Cart, with the filter function - so you can get get search outcomes including filter function

See this link:
https://www.phoca.cz/phocacartdemo/items?search=rapid&manufacturer=1-skoda

... phocacartdemo/items?search=rapid&manufacturer=1-skoda

which means, the user selected manufacturer Škoda and then searched Rapid model including the manufacturer filter.

The filter module is here:
https://www.phoca.cz/phoca-cart-filter-module




Jan


*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
5) I didn't test the experimental routing yet, so I cannot say if it will work OK - the priority for now is to work with standard Joomla! SEF: https://www.phoca.cz/phocacartdemo/ (but of course it is a plan for the future - we will see, if something changes in the experimental routing system)
I looked your demo and situation with standart routing absolutely same.
It is really important, until your component will have good router, there will no any reasons to use it in production.
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
6) 200 or 404 - yes, the question is always problematic - return 200 because no error happened but no items found or return 404 which means in fact error. User can be confused that error comes but it is not an error, it is just the situation that e.g. filtering didn't find any item :idea: - hard to say. So, is "no item found" and 404 error or is it 200 with empty result? The change to 404 is of course easy, but the question is if it should be taken as an error?
There is no question at all.
http-code must be 404 only.
You can show for user 404 or suggested items or anything you want, but answer for bots must be 404
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
One more thing with doubles, even worse.
http://phoca.localzone/index.php/phoca/4-di/23-di-s3-3.html - i.e. i changed category, so phoca tells "Item not found", but httpcode is 200 OK instead of 404 NOT Found.
As the component thinks that this is correct URL, but item not found, then 200 is totally ok. The idea here is to filter out incorrect URL (request) and not going further to item throwing 404. Then it would be Page not found instead of Item not found.
*

JanP

  • Moderator
  • 107
  • 10 / 0
Цитировать
I looked your demo and situation with standart routing absolutely same.
It is really important, until your component will have good router, there will no any reasons to use it in production.

Not sure if I understand you correctly. The component does not have any specific SEF, it just uses the standard one from Joomla!

Example:

Link to Categories view
https://www.phoca.cz/phocacartdemo/ (home page, no menu link alias set)

... phocacartdemo/

Link to Category 1
https://www.phoca.cz/phocacartdemo/1-skoda (alias from category used)

... phocacartdemo/1-skoda

Link to Product 2 in Category 1
https://www.phoca.cz/phocacartdemo/1-skoda/2-skoda-rapid (alias from category used and alias from product used)

... phocacartdemo/1-skoda/2-skoda-rapid

Products can be stored in more categories, so in case the product 2 will be in another category, the link will be:

... phocacartdemo/3-audi/2-skoda-rapid

This follows Joomla! SEF rules, so for now, not sure what should be different there :idea:

Jan
« Последнее редактирование: 27.09.2017, 14:37:44 от JanP »
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Link to Product 2 in Category 1
https://www.phoca.cz/phocacartdemo/1-skoda/2-skoda-rapid (alias from category used and alias from product used)
Ок
look
https://www.phoca.cz/phocacartdemo/1-skoda/2-lada-rapid
https://www.phoca.cz/phocacartdemo/1-skoda/2-tesla-is-the-best
and even
https://www.phoca.cz/phocacartdemo/1-tesla/2-S
are the same ))
No 301 redirect, no even rel canonical tag in code.

I know, Joomla have same problem too, but I dont care, cause many years use plugin JL NoDoubles, developed by @zikkuratvk

*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
So, @JanP would you fix those bugs?

I liked your component very much and want to test it more or even make some sites on it.
But without normal SEF I wont :-(
*

JanP

  • Moderator
  • 107
  • 10 / 0
Hi,

Цитировать
So, @JanP would you fix those bugs?

First of all, these are not bugs but the Joomla! SEF feature. I think this is much more a question on Joomla! developers than for me. The extension just follow the CMS rules and it uses the CMS SEF feature. I don't know, if even is possible to change this feature by the component because SEF is managed by Joomla!:

For example: option=com_your_extension just cannot be changed to own rules as the router works on Joomla! first and then asks for the rules in extension.

Anyway the number in URL has many advantages:

- the router decision is faster (because of working with integer)
- the chance to get confusing alias is minimal because search engines don't create non existing links the same like the CMS will not create such link
- if user comes to site with right integer but wrong alias, this has advantage, because you don't want to display non existing product but some existing, so you offer the right product instead of saying: product does not exist - for selling it is better to offer right product instead of nothing.

A practical scenario:

1) You create a product with mistake in alias
.../phocacartdemo/1-skoda/2-radip
2) Search engines will store this link: .../phocacartdemo/1-skoda/2-radip
3) You discover the error and you will correct the alias to:
.../phocacartdemo/1-skoda/2-rapid
4) In search engine, there is still old link and when user click on this old link with mistake, he/she get right page (without having the number, user gets the: no item found page, so the question is what is better: nothing or right product?)

And it can happen that the wrong alias stays in search engines for some months but still no problem when the link is managed by integer.

But, it does not matter what I write here, this is the Joomla! feature, so it can be changed there. And core developers test the experimental new feature and I will just observer it and follow it in future.

Jan 
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ок
look
https://www.phoca.cz/phocacartdemo/1-skoda/2-lada-rapid
https://www.phoca.cz/phocacartdemo/1-skoda/2-tesla-is-the-best
and even
https://www.phoca.cz/phocacartdemo/1-tesla/2-S
are the same ))
This is Joomla to blame for that, @voland. As @JanP said:
The component does not have any specific SEF, it just uses the standard one from Joomla!
, why don't you continue to use JL NoDoubles?
All the more, I heard that the new Joomla router has managed to get rid of this mess, hasn't it?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
This is Joomla to blame for that, @voland. As @JanP said:, why don't you continue to use JL NoDoubles?
All the more, I heard that the new Joomla router has managed to get rid of this mess, hasn't it?
I test it with JL No Doubles on\off and with experimatel routing on\off - result is the same.

*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Цитировать
I don't know, if even is possible to change this feature by the component because SEF is managed by Joomla!
It is possible  ^-^ You can check for alias of item in the controller (before processing the view) and throw 404 if alias does not match. But this of course will bring extra queries to get item.

Here is the example of such function I made for our NorrCompetition component:

Код
public function processCompetition($model)
{
    $competitionId    = $this->input->getInt('id', 0);
    $competitionAlias = $this->input->getString('alias', '');

    try
    {
        $competition = $model->getCompetition($competitionId);

        if ($competition->id < 1
            || $competition->state == 0
            || (!empty($competitionAlias) && $competitionAlias != $competition->alias))
        {
            throw new Exception(
                JText::_($this->textPrefix . '_ERROR_COMPETITION_NOT_FOUND'), 404
            );
        }
    }
    catch (InvalidArgumentException $e)
    {
        throw new Exception(
            JText::_($this->textPrefix . '_ERROR_COMPETITION_NOT_FOUND'), 404
        );
    }
    catch (RuntimeException $e)
    {
        $this->setRedirect(
            JRoute::_(CompetitionHelperRoute::getCompetitionsRoute(), false)
        );
        $this->setMessage(
            JText::_($this->textPrefix . '_ERROR_OCCURRED'), 'error'
        );

        JLog::add($e->getMessage(), JLog::ERROR, $this->option);

        $this->redirect();
    }
}

Alias is set in the parse method of router and is available in input.
*

JanP

  • Moderator
  • 107
  • 10 / 0
b2z
Цитировать
It is possible ...

Thank you for the tip.

There are two types of view. Programmer view and business view.

Programmer view: there is no discussion as you should only get what you ask. If you ask something with wrong alias, you should get no data.

Business view: the question is now more complicated because in business, the "no items" or "we don't have this product", etc. does not exist. "No item found" means that customer goes to another shop.

So, what scenario is better?

REQUEST   -   PROGRAMMER ANSWER   -   BUSINESS ANSWER
skoda/2-rapid   -   Škoda Rapid   -   Škoda Rapid
skoda/2-radip   -   No items   -   Škoda Rapid
skoda/2-something   -   No items   -   Škoda Rapid

As programmer you answer in 2 cases with "no items", as businessman you offer in all cases a product - most probably, in 99% percent, you offer the right product. Of course it can happen that user get answer which he/she didn't expect (but when talking about all possible scenarios, this is really very tiny chance).

So the question is, be hard as programmer and don't return anything in case it will be correct or be a businessman and offer the right product. Be aware, we don't offer completely different product - if user asks for A, we don't offer B - this is not the case, we offer the most correct product we have - it is just correction of wrong alias or fake alias. In case user asks alias which really does not exist, then the answer is "no items".

:idea:

Jan
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
So, what scenario is better?

only one more

Цитировать
REQUEST   -   PROGRAMMER ANSWER   -   PROGRAMMER CORRECT ANSWER   -   BUSINESS ANSWER
skoda/2-rapid   -   Škoda Rapid   -   Škoda Rapid   -   Škoda Rapid
skoda/2-radip   -   No items   -   301 redirect to skoda/2-rapid (or canonical)  -   Škoda Rapid
skoda/2-something   -   No items   -  301 redirect to skoda/2-rapid (or canonical)  -   Škoda Rapid

:)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Still no canonical and good SEF.
Use SEF Wizard =)
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

voland

  • Moderator
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Phoca Cart - version 5.0.0 RC released

Автор JanP

Ответов: 0
Просмотров: 396
Последний ответ 05.03.2025, 17:42:21
от JanP
Phoca Cart - анонсы версий и пресс-релизы (press-releases)

Автор JanP

Ответов: 31
Просмотров: 2360
Последний ответ 13.06.2024, 14:24:33
от JanP
Цифровые товары на Phoca Cart 3

Автор lalalag

Ответов: 3
Просмотров: 3492
Последний ответ 12.03.2024, 03:15:49
от JanP
Плагин оплаты ЮKassa для Phoca Cart

Автор Sulpher

Ответов: 0
Просмотров: 1881
Последний ответ 09.09.2023, 21:34:54
от Sulpher
Шаблоны для Phoca Cart

Автор Sulpher

Ответов: 2
Просмотров: 2073
Последний ответ 29.08.2023, 19:13:08
от Bobbi86