EVO bot Лёшка
Буду спамить каждый день) Просьба. Кто что вспомнит про события плагинов, подредактируйте страничку. https://github.com/evolution-cms/docs/blob/master/ru/03_Разработчику/02_Элементы/04_Плагины/02_События_плагинов.md
Эльдар
ребят ещё вопросит подскажит плз)
Эльдар
или хотябы как загуглить это правильно)
Эльдар
в общем мне надо чтобы в карточке товара клиент вписывал в поле цена например 10 долларов а на сайте это сумма переводилась в рубли и получается посетители видят только сумму в рублях а манагер пишет на сайте в долларах только это как то через банк должно работать вроде мне сказали чтобы он считал курс доллара через банк и выводил подсчитанную сумму
Эльдар
😂😂🙈
Эльдар
мультивалютность
а точно понял спасибо)
Эльдар
блиин ребят в гугле на ево не могу найти как сделать чтобы в админке на товар писали сумму в долларах а выводилось для пользователей в рублях
Эльдар
на рево нашёл а на ево нету
Сергей
на рево нашёл а на ево нету
делается 10 минут, рассказывать 20 минут, понимание приходит через 30 минут)
Сергей
глобальные переменные доступны для редактирования? модуль может какой то стоит или плагин ?
Эльдар
делается 10 минут, рассказывать 20 минут, понимание приходит через 30 минут)
ну в общем я пока гуглил понял что нужно сначало создать снипет который будет брать курс с банка и обновляется каждые сутки , и потом как то сделать чтобы высчитвал
Сергей
обновление курсов, это 0.1% из всей задачи
Эльдар
блин думал найду готовый код скопирую чёт не удалось) своих знаний php нету чтобы самому написать))
Эльдар
может ссылочка есть какая то ?)
Pathologic
а деньги есть? ((:
Сергей
плагин customSettings или модуль global_placeholders есть?
Эльдар
а деньги есть? ((:
да я сам хотел научится делать, просто попросил подсказать как
Сергей
нету на сайте походу
в экстраз есть
Эльдар
в экстраз есть
щас скачаю понял спасибо
Pathologic
а что там подсказывать, хранить где-то курсы и обновлять, при выводе переводить в рубли
Pathologic
разве что еще корзину допилить
Эльдар
разве что еще корзину допилить
не, тут просто сайт каталог
Сергей
щас скачаю понял спасибо
в конфигурации плагина поставить три валюты Курс рубля~RUB||Курс доллара~USD||Курс евро~EUR
Сергей
что то долго
Эльдар
да что то не заходит блин))
Сергей
да что то не заходит блин))
создать плагин на событие OnSiteSettingsRender с кодом $e = &$modx->Event; if ($e->name == 'OnSiteSettingsRender') { $config = array( 'title' => 'Дополнительные настройки', 'fields' => array( 'RUB' => array( 'title' => 'Курс рубля' ), 'USD' => array( 'title' => 'Курс доллара' ), 'EUR' => array( 'title' => 'Курс евро' ), ) ); $output = ''; $output .= '</td></tr></table></div><div style="display: block;" class="tab-page" id="tabPageCustomSettings"><h2 class="tab">' . $config['title'] . '</h2><script type="text/javascript">tpSettings.addTabPage(document.getElementById("tabPageCustomSettings"));</script><table border="0" cellpadding="3" cellspacing="0" width="100%"><tbody>'; foreach ($config['fields'] as $key => $value) { $value['type'] = !empty($value['type']) ? $value['type'] : 'text'; $value['value'] = isset($modx->config[$key]) ? $modx->config[$key] : (isset($value['value']) ? $value['value'] : ''); $output .= '<tr><th nowrap width="1%">' . $value['title'] . '<br><small>[(' . $key . ')]</small></th> <td><input type="' . $value['type'] . '" value="' . $modx->htmlspecialchars(stripslashes($value['value'])) . '" name="' . $key . '" onchange="documentDirty=true;" /></td></tr><tr><td colspan="2"><div class="split"></div></td></tr>'; } $output .= '</tbody></table>'; $e->output($output); }
EVO bot Лёшка
создать плагин на событие OnSiteSettingsRender с кодом $e = &$modx->Event; if ($e->name == 'OnSiteSettingsRender') { $config = array( 'title' => 'Дополнительные настройки', 'fields' => array( 'RUB' => array( 'title' => 'Курс рубля' ), 'USD' => array( 'title' => 'Курс доллара' ), 'EUR' => array( 'title' => 'Курс евро' ), ) ); $output = ''; $output .= '</td></tr></table></div><div style="display: block;" class="tab-page" id="tabPageCustomSettings"><h2 class="tab">' . $config['title'] . '</h2><script type="text/javascript">tpSettings.addTabPage(document.getElementById("tabPageCustomSettings"));</script><table border="0" cellpadding="3" cellspacing="0" width="100%"><tbody>'; foreach ($config['fields'] as $key => $value) { $value['type'] = !empty($value['type']) ? $value['type'] : 'text'; $value['value'] = isset($modx->config[$key]) ? $modx->config[$key] : (isset($value['value']) ? $value['value'] : ''); $output .= '<tr><th nowrap width="1%">' . $value['title'] . '<br><small>[(' . $key . ')]</small></th> <td><input type="' . $value['type'] . '" value="' . $modx->htmlspecialchars(stripslashes($value['value'])) . '" name="' . $key . '" onchange="documentDirty=true;" /></td></tr><tr><td colspan="2"><div class="split"></div></td></tr>'; } $output .= '</tbody></table>'; $e->output($output); }
http://docs.evo.im/04_extras/if.html
Сергей
все настройки уже в коде
Сергей
так это уже 20% готово)
Эльдар
а блин)
Эльдар
я думал уже всё))
Сергей
создать страницу, с шаблоном бланк, с техническим адресом типа update_rate, поставить на ней сниппет [!update_rate!]
Сергей
создать сниппет update_rate с кодом <?php $content = get_cbr_xml(); if($content) { $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i"; preg_match_all($pattern, $content, $out, PREG_SET_ORDER); $USD = ""; $EUR = ""; foreach($out as $cur) { if($cur[2] == 840) { $USD = str_replace(",", ".", $cur[4]); $modx->db->update(array('setting_value' => $USD), $modx->getFullTableName('system_settings'), "setting_name='USD'"); } if($cur[2] == 978) { $EUR = str_replace(",", ".", $cur[4]); $modx->db->update(array('setting_value' => $EUR), $modx->getFullTableName('system_settings'), "setting_name='EUR'"); } } $modx->clearCache('full'); } function get_cbr_xml() { $link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" . date("d/m/Y"); $fd = fopen($link, "r"); $text = ""; if($fd) { while(!feof($fd)) { $text .= fgets($fd, 4096); } return $text; } fclose($fd); }
Сергей
открыть конфигурацию системы
Сергей
Сергей
есть такое дело?
Эльдар
Эльдар
да)
Сергей
сниппет готов?
Эльдар
да)
Эльдар
всё сделал по твоей инструкции)
Сергей
перейти на свеже созданную страницу update_rate
Сергей
там просто белый фон должен быть
Эльдар
да так и есть
Сергей
вернуться в конфигурацию и обновить страницу или фрейм
Сергей
курсы есть?
Сергей
F5
Сергей
можно ещё раз открыть конфигурацию
Сергей
Эльдар
[!update_rate!] это я прописал в самом ресурсе в содержимом или надо было в шаблоне прописать
Эльдар
?
Сергей
шаблон бланк, в контенте поставить [!update_rate!]
Эльдар
Сергей
в конфигурации то что сйечас написано?
Эльдар
нет
Эльдар
щас я ещё раз всё перечитаю видимо я что то упустил
Сергей
я пока это писал, так же делал, и у меня всё работает
Эльдар
создать плагин на событие OnSiteSettingsRender с кодом $e = &$modx->Event; if ($e->name == 'OnSiteSettingsRender') { $config = array( 'title' => 'Дополнительные настройки', 'fields' => array( 'RUB' => array( 'title' => 'Курс рубля' ), 'USD' => array( 'title' => 'Курс доллара' ), 'EUR' => array( 'title' => 'Курс евро' ), ) ); $output = ''; $output .= '</td></tr></table></div><div style="display: block;" class="tab-page" id="tabPageCustomSettings"><h2 class="tab">' . $config['title'] . '</h2><script type="text/javascript">tpSettings.addTabPage(document.getElementById("tabPageCustomSettings"));</script><table border="0" cellpadding="3" cellspacing="0" width="100%"><tbody>'; foreach ($config['fields'] as $key => $value) { $value['type'] = !empty($value['type']) ? $value['type'] : 'text'; $value['value'] = isset($modx->config[$key]) ? $modx->config[$key] : (isset($value['value']) ? $value['value'] : ''); $output .= '<tr><th nowrap width="1%">' . $value['title'] . '<br><small>[(' . $key . ')]</small></th> <td><input type="' . $value['type'] . '" value="' . $modx->htmlspecialchars(stripslashes($value['value'])) . '" name="' . $key . '" onchange="documentDirty=true;" /></td></tr><tr><td colspan="2"><div class="split"></div></td></tr>'; } $output .= '</tbody></table>'; $e->output($output); }
ты как плагин назвал?
Сергей
Эльдар
тут ничего писать не над?)
Сергей
нет
Сергей
так плагин то работает, выше же ты скрин скинул
Эльдар
значит получается я должен открыть эту страницу
Эльдар
потом открыть новый ресурс который создал
Эльдар
и обновить эту страницу?
Сергей
страницу которую создал с шаблоном бланк
Эльдар
то что страницу я также назвал update_rate ничего?)
Сергей
без разницы
Эльдар
а дальше что надо было сделать?
Эльдар
а это я потом буду искать ошибку
Сергей
плагин сниппет страница
Эльдар
это же я сделал) а всё теперь вывод делать?