Новости Joomla

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

zafarkhon

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
1. Изменить файл – /administrator/components/com_virtuemart/classes/currency/convertECB.php.
Код
var $document_address = 'http://<URL вашего сайта>/eurofxref-daily.xml';
var $info_address = 'http://<URL вашего сайта>/';
2. Скачать файл с валютами. Я этот файл для себя настроил. Данные изменить не трудно. Этот файл нужно поставить в корен сайта.
3. В файле /administrator/components/com_virtuemart/classes/currency/convertECB.php после function add вставить:
Код
function add_curr(&$d) {
global $VM_LANG;

$today = date("y-m-d");
    $newcontent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<gesmes:Envelope xmlns:gesmes=\"\" xmlns=\"\">
<gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time='".$today."' >
<Cube currency='USD' rate='1'/>
<Cube currency='UZS' rate='".vmGet($d, 'uzs_rate' )."'/>
<Cube currency='UZB' rate='".vmGet($d, 'uzb_rate' )."'/>
</Cube>
</Cube>
</gesmes:Envelope>";
$filename = "../eurofxref-daily.xml";
if (is_writable($filename)) {

if (!$handle = fopen($filename, 'w+')) {
echo $VM_LANG->_('PHPSHOP_CURR_ERROR_1')." ".$filename;
exit;
}
if (fwrite($handle, $newcontent) === FALSE) {
echo $VM_LANG->_('PHPSHOP_CURR_ERROR_2')." ".$filename;
exit;
}
fclose($handle);
} else {
echo $VM_LANG->_('PHPSHOP_CURR_ERROR_3')." ".$filename." ".$VM_LANG->_('PHPSHOP_CURR_ERROR_4'); exit;
}
@unlink ("../cache/daily.xml");

return false;

}
4. В файле /administrator/components/com_virtuemart/languages/product/russian.php вставить:
Код
'PHPSHOP_CURR_UZS' => 'Сум (наличный)',
'PHPSHOP_CURR_UZB' => 'Сум (безналичный)',
'PHPSHOP_CURR_TITLE' => 'Ручное добавление курс валют',
'PHPSHOP_CURR_MSG_TITLE' => 'Успешно добавлен',
'PHPSHOP_CURR_ERROR_1' => 'Не могу открыть файл',
'PHPSHOP_CURR_ERROR_2' => 'Не могу произвести запись в файл',
'PHPSHOP_CURR_ERROR_3' => 'Файл',
'PHPSHOP_CURR_ERROR_4' => 'недоступен для записи',
'PHPSHOP_CURR_VALUE' => 'Добавить/изменить курс валют',
5. В файле /administrator/components/com_virtuemart/html/admin.curr_list.php после всего текста вставить:
Код
$path = defined('_VM_IS_BACKEND' )? '/administrator/' : '/';
?>
<script type="text/javascript">
var priceDlg = null;
function showCurrForm(prodId) {
   
    // define some private variables
    var showBtn;
sUrl = '<?php $sess->purl( $mm_action_url .'index3.php?page=product.ajax_tools&task=getcurrform&no_html=1', false, false, true )?>&product_id=' + prodId;
callback = { success : function(o) {

        priceDlg = Ext.Msg.show({
                    width:300,
                    height:250,
           title:'<?php echo $VM_LANG->_('PHPSHOP_CURR_TITLE')?>',
           msg: o.responseText,
           buttons: Ext.Msg.OKCANCEL,
           fn: handleResult
       });
}};
Ext.Ajax.request({method:'GET', url: sUrl, success: callback.success });
}

function handleResult( btn ) {
switch( btn ) {
case 'ok':
submitCurrForm( 'currForm' );
break;
case 'cancel':
break;
}
}
function submitCurrForm(formId) {
    // define some private variables
    var dialog, showBtn, hideTask;
   
    function showDialog( content ) {
    var msgbox = Ext.Msg.show( {
            title: '<?php echo $VM_LANG->_('PHPSHOP_CURR_MSG_TITLE')?>',
            msg: content,
            autoCreate: true,
                    width:300,
                    height:150,
                    fn: msgBoxClick,
                    modal: false,
                    resizable: false,
                    buttons: Ext.Msg.OK,
                    shadow:true,
                    animEl:Ext.get( 'vm-toolbar' )
            });
    // This Dialog shows the result of the price update. We want it to autohide after 3000 seconds
    // Here we need to use "DelayedTask" because we need to cancel the autohide function if the user clicked
    // the dialog away
    hideTask = new Ext.util.DelayedTask(msgbox.hide, msgbox);
    hideTask.delay( 3000 );
    }

    var msgBoxClick = function(result) {
    if( result == 'ok' ) {
    hideTask.cancel();
    }
    };
    // return a public interface
    var callback = {
    success: function(o) {
    //Ext.DomHelper.insertHtml( document.body, o.responseText );
   
    showDialog( o.responseText );
    },
    failure: function(o) {
    Ext.Msg.alert('Error!', 'Something went wrong while posting the form data (possibly 404 error).');
    },
        upload : function(o){
            //Ext.DomHelper.insertHtml( 'beforeEnd', document.body, o.responseText );
    showDialog( o.responseText );
        }
    };
   
    Ext.Ajax.request({method:'POST', url: '<?php echo $_SERVER['PHP_SELF'] ?>', success: callback.success, failure: callback.failure, form: formId});

}
function cancelCurrForm(id) {
updateCurrField( id );
}
function updateCurrField( id ) {
sUrl = '<?php  $sess->purl( $mm_action_url .'index3.php?option=com_virtuemart&no_html=1&page=product.ajax_tools&task=getcurrform', false, false, true )?>&product_id=' + id;
callback = { success : function(o) { Ext.get("priceform-dlg").innerHTML = o.responseText; }};
Ext.Ajax.request({method:'GET', url: sUrl, success:callback.success });
}
function reloadForm( parentId, keyName, keyValue ) {
sUrl = '<?php  $sess->purl( $mm_action_url .'index3.php?option=com_virtuemart&no_html=1&page=product.ajax_tools&task=getcurrform', false, false, true )?>&product_id='+parentId+'&'+keyName+'='+keyValue;
callback = { success : function(o) { priceDlg.updateText( o.responseText) }};
Ext.Ajax.request({method:'GET', url: sUrl, success:callback.success });
}
</script>
<?php
$formName = uniqid('currForm');
?>
<div id="priceform-dlg"></div>
<br /><br />
<div align="center"><input style="padding:6px; cursor:pointer;" type="button" style="button" onclick="showCurrForm(1)" value="<?php echo $VM_LANG->_('PHPSHOP_CURR_VALUE'); ?>" /></div>
6. В файле /administrator/components/com_virtuemart/classes/html/product.ajax_tools.php после case 'getshoppergroups': вставить:
Код
case 'getcurrform':
$dom = new DomDocument();
$dom->load('http://<URL вашего сайта>/eurofxref-daily.xml');
$items = $dom->getElementsByTagName("Cube");
foreach ($items as $node)
{
  $_currency = $node->getAttribute("currency");
  $_rate = $node->getAttribute("rate");
  if($_currency == "UZS") { $uzs_rate = $_rate; }
  if($_currency == "UZB") { $uzb_rate = $_rate; }
}
$formName = 'currForm';
$content = '<form id="'.$formName.'" method="post" name="currForm">';
$content .= '<table class="adminform"><tr><td><strong>'.$VM_LANG->_('PHPSHOP_CURR_UZS').':</strong></td><td><input type="text" name="uzs_rate" value="'.$uzs_rate.'" class="inputbox" id="uzs_rate_'.$formName.'" size="11" /></td></tr>';
$content .= '<tr><td><strong>'.$VM_LANG->_('PHPSHOP_CURR_UZB').':</strong></td><td><input type="text" name="uzb_rate" value="'.$uzb_rate.'" class="inputbox" id="uzb_rate_'.$formName.'" size="11" /></td></tr></table>';
$content .= '<input type="hidden" name="func" value="'. ('currAdd'). '" />';
$content .= '<input type="hidden" name="ajax_request" value="1" />';
$content .= '<input type="hidden" name="no_html" value="1" />';
$content .= '<input type="hidden" name="vmtoken" value="'.vmSpoofValue($sess->getSessionId()).'" />';
$content .= '<input type="hidden" name="option" value="'.$option.'" />';
$content .= '</form>';
vmConnector::sendHeaderAndContent( 200, $content );
break;


[вложение удалено Администратором]
« Последнее редактирование: 24.10.2009, 20:24:51 от zafarkhon »
*

pikachu

  • Осваиваюсь на форуме
  • 46
  • 7 / 0
Пункт №2, function add нет в данном файле в 1.1.4 версии.
Пункт №5, что значит "после всего текста"?

Вообще у меня пока не завелось. При нажатии на кнопку изменения курса валют - ничего не происходит. Рою дальше.
*

cosmos_ss

  • Новичок
  • 7
  • 0 / 0
А ведь действительно "не стартует", кнопка появляется, но когда нажимаешь ничего не происходит. Версия как положено 1.1.4
*

Dronia

  • Новичок
  • 6
  • 1 / 0
Есть очень хороший компонент. Глянуть можно на сайте производителя http://kdt.biz.ua/joomla-virtuemart-extensions/priceinfo
Перепробовал кучу всего и это лучшее что есть в инете. Купил за 10 WMZ. могу поделится за 5 WMZ Только двоим... чтоб отбить расходы и не обидеть производителя.... пишите на мыло Dronia@email.ua

Всем доброго времени суток.
Подскажите пожалуйста есть ли возможность сделать VirtueMart мультивалютным?
Просто изменять набор валют на сайте я умею, но задача стоит следующая:
1. Хранить исходные цены всех товаров на сайте в долларах (в админке)
2. Показывать цены для покупателей в гривнах
3. Регулировать каждый день изменения цен благодаря установке курса доллара

Объяню причину - цены в связи с изменением курса доллара очень часто меняются и приходится каждый раз выгружать их из 1С с измененными значениями. Однако цены в долларах фиксированы постоянно и в этом случае для изменения цен надо всего навсего корректировать курс валюты. Подскажите пожалуйста как лучше всего решить данную проблему.
 !
*

MixaJI

  • Новичок
  • 3
  • 0 / 0
У меня при нажатии на кнопку Сохранить курсы видает
Файл http://caraudiotuning.com.ua/eurofxref-daily.xml недоступен для записи
хотя на хостинге у файла eurofxref-daily.xml атрибут 0777
в чём грабли? хелп
*

MixaJI

  • Новичок
  • 3
  • 0 / 0
У меня при нажатии на кнопку Сохранить курсы видает
Файл http://caraudiotuning.com.ua/eurofxref-daily.xml недоступен для записи
хотя на хостинге у файла eurofxref-daily.xml атрибут 0777
в чём грабли? хелп
Сори не туда
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AJAX проверка e-mail и имени пользователя.

Автор Silent_Breeze

Ответов: 60
Просмотров: 18846
Последний ответ 09.06.2013, 17:13:36
от tiptopvkr
PDF и Virtuemart

Автор TrOn

Ответов: 37
Просмотров: 19928
Последний ответ 06.08.2012, 04:44:56
от Fire_Anton
[Решено] highslide в Virtuemart 1.1.2 и 1.0.15 - красивые всплывающие окна

Автор PaLyCH

Ответов: 86
Просмотров: 57375
Последний ответ 28.04.2012, 09:32:18
от nevigen
Перенаправление на /index.php vm 1.1.3

Автор Wester

Ответов: 22
Просмотров: 34209
Последний ответ 08.03.2012, 16:12:53
от phaeton480
Удаление банера Virtuemart 1.1.2 с корзины

Автор galemus

Ответов: 9
Просмотров: 15873
Последний ответ 15.08.2010, 03:49:55
от турист