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

Vivaldy

  • Новичок
  • 5
  • 0 / 0
Я новичок в Joomla, прошу простить за возможные ошибки. Попросили сделать правку, но не знаю как это лучше организовать и с какой стороны подойти.

Есть сайт на этом движке, на некоторых страницах прямо в код страниц вставлены простые javascript-ы которые по предустановленным формулам позволяют пользователям на странице делать нужный им расчет (к примеру стоимость резки бетона, если толщина реза такая то) То есть в этих всех формулах есть 3-4 переменные, аля стоимость резки погонного метра. Товарищ чей сайт просит переделать это так чтоб он мог менять эти цены в одном месте, а не искать по всем страницам все калькуляторы и менять там и переживать не забыл ли он какой то так как страниц много.

То есть в идеале чтоб в интерфейсе админки было место где можно было бы меня значения переменных, а на страницах это значение как то подставлять.

Подскажите как это сделать?
*

varX

  • Завсегдатай
  • 1881
  • 125 / 5
  • разработка компонентов
Это не сложно. Сначала нужно потратить какое-то время на изучение php и javascript. Без этого никак. После того, как научитесь писать самостоятельно более-менее осмысленный код, можно приступать к изучению самой Joomla, интерфейса ее админки, структуры MVC, принципам построения и разработки модулей, компонентов и плагинов. С этого момента у вас подобные вопросы возникать уже не будут, а будут вопросы совершенно другого рода.

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

Если есть какие-то начальные знания в javascript, можно сделать "по рабоче-крестьянскому". То есть вывести где-то в шаблоне или в модуле HTML-кода все нужные переменные один раз, а в своих скриптах уже к ним обращаться. Но это для случая, если сайт ваш, и он не представляет сколько-либо значимой ценности. В противном случае, за такой кодинг можно серьезно поплатиться репутацией, а в тяжелых случаях даже здоровьем (шутка).
*

Vivaldy

  • Новичок
  • 5
  • 0 / 0
Спасибо за ответ, php, javascript знаю довольно не плохо ( опыта > 10 лет достаточно? ). Однако с Joomla вообще не знаком.

Задавая вопрос - я рассчитывал что мне подскажут где есть возможность создать в интерфейсе пару переменных или наметят направление в котором смотреть и не нужно будет несколько дней изучать как устроена эта cms-ка, искать шаблоны, разбираться где, что куда и зачем. Обращаться к тем кто знает и умеет я пробовал, но пока у меня результаты обращений сводились к тому что люди предлагают писать компоненты и плагины, когда мне нужно простое cena_rezka_betona = 1234, единственное нужно чтоб изменения значения происходило через админку, а не правку файлов.
*

dmitry_stas

  • Легенда
  • 12171
  • 1155 / 7
единственное нужно чтоб изменения значения происходило через админку, а не правку файлов.

ну вот именно поэтому вам

люди предлагают писать компоненты и плагины

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

Aleks.Denezh

  • Живу я здесь
  • 3367
  • 417 / 4
результаты обращений сводились к тому что люди предлагают писать компоненты и плагины, когда мне нужно простое cena_rezka_betona = 1234, единственное нужно чтоб изменения значения происходило через админку, а не правку файлов.
Проблема в том что люди вам правильно советовали!
и как ни странно всё это очень просто!
1. создаёте каркас модуля http://inet-reklama.com/sozdanie-modulya.html
2. устанавливаете его через админку
3. идёте в /modules/mod_ваш_модуль/mod_ваш_модуль.xml
4. в секции <fieldset name="params"> добавляете поля в стиле: <field name="cena_rezka_betona" type="text" label="Цена резки бетона" value="" /> (сколько вам надо)
5. идёте в /modules/mod_ваш_модуль/tmpl/default.php и в нём пишите:
<script>var cena_rezka_betona=<?= $params->get('cena_rezka_betona') ?> </script>
<script src="ссылка на скрипт калькулятора"></script>
6. Удаляете весь код что у вас вставлен прямо в код страницы
7. вставляете в материла нужный модуль (если версия Joomla новая то есть кнопка для вставки модуля, если нет то вставляете типа: {loadmodule mod_breadcrumbs, Хлебные крошки}
и профит

всё занять должно не больше 10-ти минут, и ничего учить не нужно!
*

Vivaldy

  • Новичок
  • 5
  • 0 / 0
Проблема в том что люди вам правильно советовали!
и как ни странно всё это очень просто!
1. создаёте каркас модуля http://inet-reklama.com/sozdanie-modulya.html
2. устанавливаете его через админку
3. идёте в /modules/mod_ваш_модуль/mod_ваш_модуль.xml
4. в секции <fieldset name="params"> добавляете поля в стиле: <field name="cena_rezka_betona" type="text" label="Цена резки бетона" value="" /> (сколько вам надо)
5. идёте в /modules/mod_ваш_модуль/tmpl/default.php и в нём пишите:
<script>var cena_rezka_betona=<?= $params->get('cena_rezka_betona')?> </script>
<script src="ссылка на скрипт калькулятора"></script>
6. Удаляете весь код что у вас вставлен прямо в код страницы
7. вставляете в материла нужный модуль (если версия Joomla новая то есть кнопка для вставки модуля, если нет то вставляете типа: {loadmodule mod_breadcrumbs, Хлебные крошки}
и профит

всё занять должно не больше 10-ти минут, и ничего учить не нужно!
Огромное спасибо! Сейчас попробую это сделать.
*

Aleks.Denezh

  • Живу я здесь
  • 3367
  • 417 / 4
Огромное спасибо! Сейчас попробую это сделать.
совсем забыл написать в четвёртом пункте, что после добавления так поля, оно будет доступно в настройках модуля, и после установки модуля посмотрите что бы он был опубликован на всех старницах
*

Aleks.Denezh

  • Живу я здесь
  • 3367
  • 417 / 4
Кстати при таком подходе есть один небольшой минус, придётся для каждого калькулятора делать свой модуль, если вы хотите что бы была в одном месте настройка для всех калькуляторов то можно сделать плагин: http://inet-reklama.com/sozdanie-plagina.html  при создании в событиях выбрать группу content и чекбокс поставить на событии onContentPrepare, кстати поля для него можно в параметрах сразу набросать в конструкторе!
Установить плагин, а дальше в методе:
Код
 public function onContentPrepare( $context, $article, $params )
    {
        $article->text = str_replace( '{calc1}', $this->insertCalc1(), $article->text );
        $article->text = str_replace( '{calc2}', $this->insertCalc2(), $article->text );
        $article->text = str_replace( '{calc3}', $this->insertCalc3(), $article->text );
        ....
        $article->text = str_replace( '{calcN}', $this->insertCalcN(), $article->text );
    }

    private function insertCalc1()
    {
        return '<script><script>var cena_rezka_betona='.$this->params->get('cena_rezka_betona').'; </script><script src="ссылка на скрипт калькулятора"></script>';
    }
    private function insertCalc2()
    {

    }
    private function insertCalc3()
    {

    }
*

Vivaldy

  • Новичок
  • 5
  • 0 / 0
Огромное Вам спасибо! Все получилось, сделал плагин, в нем собрал параметры, настроил отображение и расчет!

Расстроило лишь следующее, пример:
Пользователь выбирает материал из которого сделана стена (бетон, кирпич, газоблок и т.д.) и указывает толщину стены, а система считает.
цена для бетона * на толщину стены * коэффициент = ценник.

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

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
однако удобнее было бы сделать таблицу в бд, и в нее добавлять записи типа - id, название параметра, цена. Но как это реализуется я не понял - видимо стандартными средствами никак и надо что-то писать.
Если список параметров предопределённый, то, как советовал @Aleks.Denezh, делайте плагин. А у него в параметрах выводите поля, со своими характеристиками и там забивайте значения. Плагин свои настройки хранит в БД. Дальше - в любой точке приложения сможете получить эти данные
*

Vivaldy

  • Новичок
  • 5
  • 0 / 0
Если список параметров предопределённый, то, как советовал @Aleks.Denezh, делайте плагин. А у него в параметрах выводите поля, со своими характеристиками и там забивайте значения. Плагин свои настройки хранит в БД. Дальше - в любой точке приложения сможете получить эти данные
Я так и сделал. Однако описал случай когда такой подход не подходит и лишь пояснил что его сделать таким же способом не получится.
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Я вас всёравно не понимаю. Вы хотите динамическую настрйку параметров? Типа, чтоб не нужно было лезть в код, когда нужно добавить новый параметр? Или как?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать рамку вокруг модуля?

Автор RaMzEs1997

Ответов: 29
Просмотров: 244
Последний ответ 14.11.2018, 16:15:03
от lexxbry
Медленная загрузка сайта и админки

Автор yevgeniy.anufriyev

Ответов: 9
Просмотров: 210
Последний ответ 01.11.2018, 10:39:32
от yevgeniy.anufriyev
Как сделать пункт меню, который бы ссылался на последнюю опубликованную статью в?

Автор Sportacus

Ответов: 11
Просмотров: 222
Последний ответ 01.10.2018, 16:09:14
от Septdir
Сделать сайт на Joomla

Автор Michail19821982

Ответов: 10
Просмотров: 168
Последний ответ 27.09.2018, 14:24:35
от Michail19821982
Можно ли сделать отображение в меню количества документов в статье

Автор SergeiK2011

Ответов: 1
Просмотров: 143
Последний ответ 15.09.2018, 05:45:57
от Cedars