Autor | Zpráva | ||
---|---|---|---|
Michal101 Profil * |
#1 · Zasláno: 7. 7. 2009, 14:13:56
Ahoj na hostingu IC mi tato fce hlasi permision denied, zkousel jsem slozce dat i 777. Tuto fci spousti virtuemart mod pro joomlu. Slysel jsem ze je to kvuli verzi php, nevite nekdo co s tim ?
Onen script: <?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); /** * ECB Currency Converter Module * * @version $Id: convertECB.php 1095 2007-12-19 20:19:16Z soeren_nb $ * @package VirtueMart * @subpackage classes * @copyright Copyright (C) 2004-2007 soeren - All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details. * * http://virtuemart.net */ /** * This class uses the currency rates provided by an XML file from the European Central Bank * Requires cURL or allow_url_fopen */ class convertECB { var $archive = true; var $last_updated = ''; var $document_address = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml'; var $info_address = 'http://www.ecb.int/stats/eurofxref/'; var $supplier = 'European Central Bank'; /** * Converts an amount from one currency into another using * the rate conversion table from the European Central Bank * * @param float $amountA * @param string $currA defaults to $vendor_currency * @param string $currB defaults to $GLOBALS['product_currency'] (and that defaults to $vendor_currency) * @return mixed The converted amount when successful, false on failure */ function convert( $amountA, $currA='', $currB='' ) { global $mosConfig_cachepath, $mosConfig_live_site, $mosConfig_absolute_path, $mosConfig_offset, $vendor_currency, $vmLogger; // global $vendor_currency is DEFAULT! if( !$currA ) { $currA = $vendor_currency; } if( !$currB ) { $currB = $GLOBALS['product_currency']; } // If both currency codes match, do nothing if( $currA == $currB ) { return $amountA; } if( $GLOBALS['converter_array'] == '') { setlocale(LC_TIME, "en-GB"); $now = time() + 3600; // Time in ECB (Germany) is GMT + 1 hour (3600 seconds) if (date("I")) { $now += 3600; // Adjust for daylight saving time } $weekday_now_local = gmdate('w', $now); // week day, important: week starts with sunday (= 0) !! $date_now_local = gmdate('Ymd', $now); $time_now_local = gmdate('Hi', $now); $time_ecb_update = '1415'; if( is_writable($mosConfig_cachepath) ) { $store_path = $mosConfig_cachepath; } else { $store_path = $mosConfig_absolute_path."/media"; } $archivefile_name = $store_path.'/daily.xml'; $ecb_filename = $this->document_address; $val = ''; if(file_exists($archivefile_name) && filesize( $archivefile_name ) > 0 ) { // timestamp for the Filename $file_datestamp = date('Ymd', filemtime($archivefile_name)); // check if today is a weekday - no updates on weekends if( date( 'w' ) > 0 && date( 'w' ) < 6 // compare filedate and actual date && $file_datestamp != $date_now_local // if localtime is greater then ecb-update-time go on to update and write files && $time_now_local > $time_ecb_update) { $curr_filename = $ecb_filename; } else { $curr_filename = $archivefile_name; $this->last_updated = $file_datestamp; $this->archive = false; } } else { $curr_filename = $ecb_filename; } if( !is_writable( $store_path )) { $this->archive = false; $vmLogger->debug( "The file $archivefile_name can't be created. The directory $store_path is not writable" ); } if( $curr_filename == $ecb_filename ) { // Fetch the file from the internet require_once( CLASSPATH.'connectionTools.class.php'); $contents = vmConnector::handleCommunication( $curr_filename ); $this->last_updated = date('Ymd'); } else { $contents = @file_get_contents( $curr_filename ); } if( $contents ) { // if archivefile does not exist if( $this->archive ) { // now write new file file_put_contents( $archivefile_name, $contents ); } $contents = str_replace ("<Cube currency='USD'", " <Cube currency='EUR' rate='1'/> <Cube currency='USD'", $contents); /* XML Parsing */ require_once( $mosConfig_absolute_path. '/includes/domit/xml_domit_lite_include.php' ); $xmlDoc =& new DOMIT_Lite_Document(); if( !$xmlDoc->parseXML( $contents, false, true ) ) { $vmLogger->err( 'Failed to parse the Currency Converter XML document.'); $GLOBALS['product_currency'] = $vendor_currency; return $amountA; } $currency_list = $xmlDoc->getElementsByTagName( "Cube" ); // Loop through the Currency List for ($i = 0; $i < $currency_list->getLength(); $i++) { $currNode =& $currency_list->item($i); $currency[$currNode->getAttribute("currency")] = $currNode->getAttribute("rate"); unset( $currNode ); } $GLOBALS['converter_array'] = $currency; } else { $GLOBALS['converter_array'] = -1; $vmLogger->err( 'Failed to retrieve the Currency Converter XML document.'); $GLOBALS['product_currency'] = $vendor_currency; return $amountA; } } $valA = isset( $GLOBALS['converter_array'][$currA] ) ? $GLOBALS['converter_array'][$currA] : 1; $valB = isset( $GLOBALS['converter_array'][$currB] ) ? $GLOBALS['converter_array'][$currB] : 1; $val = $amountA * $valB / $valA; //$vmLogger->debug('Converted '.$amountA.' '.$currA.' to '.$val.' '.$currB); return $val; } // end function convertecb } ?> nastaveni php |
||
Jan Tvrdík Profil |
#2 · Zasláno: 7. 7. 2009, 14:27:13
Michal101:
Polši sem celou chybovou hlášku. |
||
Michal101 Profil * |
#3 · Zasláno: 7. 7. 2009, 16:13:05
Warning: file_put_contents(joomla/cache/daily.xml) [function.file-put-contents]: failed to open stream: Permission denied in joomla/administrator/components/com_virtuemart/classes/currency/convertECB.php on line 119
|
||
Lamicz Profil |
#4 · Zasláno: 8. 7. 2009, 05:30:53
Zkontroluj prava zapisu do slozky joomla/cache, pripadne vytvor v te slozce ten soubor (daily.xml) rucne a nastav mu chmod 777.
|
||
Michal101 Profil * |
#5 · Zasláno: 8. 7. 2009, 07:31:35
:) sem blb dik lamicz .. daily.xml mel 644 .. tudiz vyreseno
|
||
Časová prodleva: 15 let
|
0