本文整理汇总了PHP中get_all_currencies函数的典型用法代码示例。如果您正苦于以下问题:PHP get_all_currencies函数的具体用法?PHP get_all_currencies怎么用?PHP get_all_currencies使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_all_currencies函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: testGenerate
function testGenerate()
{
$templates = array('currencies_list' => array(), 'currencies_inline' => array(), 'fiat_currencies_list' => array(), 'fiat_currencies_inline' => array(), 'crypto_currencies_list' => array(), 'crypto_currencies_inline' => array(), 'commodity_currencies_list' => array(), 'commodity_currencies_inline' => array(), 'exchange_wallets_list' => array(), 'mining_pools_list' => array(), 'securities_list' => array(), 'exchange_list' => array());
foreach (get_all_currencies() as $cur) {
$templates['currencies_list'][] = " * " . get_currency_name($cur);
$templates['currencies_inline'][] = get_currency_abbr($cur);
}
foreach (get_all_fiat_currencies() as $cur) {
$templates['fiat_currencies_list'][] = " * " . get_currency_name($cur);
$templates['fiat_currencies_inline'][] = get_currency_abbr($cur);
}
foreach (get_all_cryptocurrencies() as $cur) {
$templates['crypto_currencies_list'][] = " * " . get_currency_name($cur);
$templates['crypto_currencies_inline'][] = get_currency_abbr($cur);
}
foreach (get_all_commodity_currencies() as $cur) {
$templates['commodity_currencies_list'][] = " * " . get_currency_name($cur);
$templates['commodity_currencies_inline'][] = get_currency_abbr($cur);
}
$grouped = account_data_grouped();
foreach ($grouped['Exchanges'] as $key => $data) {
if (!$data['disabled']) {
$templates['exchange_wallets_list'][] = " * " . get_exchange_name($key);
}
}
foreach ($grouped['Mining pools'] as $key => $data) {
if (!$data['disabled']) {
$templates['mining_pools_list'][] = " * " . get_exchange_name($key);
}
}
foreach ($grouped['Securities'] as $key => $data) {
if (!$data['disabled']) {
$templates['securities_list'][] = " * " . get_exchange_name($key);
}
}
foreach (get_exchange_pairs() as $key => $pairs) {
$templates['exchange_list'][] = " * " . get_exchange_name($key);
}
$templates['currencies_list'] = implode("\n", array_unique($templates['currencies_list']));
$templates['fiat_currencies_list'] = implode("\n", array_unique($templates['fiat_currencies_list']));
$templates['crypto_currencies_list'] = implode("\n", array_unique($templates['crypto_currencies_list']));
$templates['commodity_currencies_list'] = implode("\n", array_unique($templates['commodity_currencies_list']));
$templates['exchange_wallets_list'] = implode("\n", array_unique($templates['exchange_wallets_list']));
$templates['mining_pools_list'] = implode("\n", array_unique($templates['mining_pools_list']));
$templates['securities_list'] = implode("\n", array_unique($templates['securities_list']));
$templates['exchange_list'] = implode("\n", array_unique($templates['exchange_list']));
$templates['currencies_inline'] = implode(", ", array_unique($templates['currencies_inline']));
$templates['fiat_currencies_inline'] = implode(", ", array_unique($templates['fiat_currencies_inline']));
$templates['crypto_currencies_inline'] = implode(", ", array_unique($templates['crypto_currencies_inline']));
$templates['commodity_currencies_inline'] = implode(", ", array_unique($templates['commodity_currencies_inline']));
// load the template
$input = file_get_contents(__DIR__ . "/../README.template.md");
foreach ($templates as $key => $value) {
$input = str_replace('{$' . $key . '}', $value, $input);
}
// write it out
file_put_contents(__DIR__ . "/../README.md", $input);
}
开发者ID:phpsource,项目名称:openclerk,代码行数:58,代码来源:GenerateReadmeTest.php
示例2: testAllExchangeCurrencies
function testAllExchangeCurrencies()
{
foreach (get_exchange_pairs() as $exchange => $pairs) {
foreach ($pairs as $p) {
$this->assertTrue(in_array($p[0], get_all_currencies()), "Exchange {$exchange} had invalid currency {$p['0']} in pair {$p['0']}/{$p['1']}");
$this->assertTrue(in_array($p[1], get_all_currencies()), "Exchange {$exchange} had invalid currency {$p['1']} in pair {$p['0']}/{$p['1']}");
}
}
}
开发者ID:phpsource,项目名称:openclerk,代码行数:9,代码来源:CryptoTest.php
示例3: getJSON
function getJSON($arguments)
{
$result = array();
foreach (get_all_currencies() as $cur) {
$instance = \DiscoveredComponents\Currencies::getInstance($cur);
$result[] = array("code" => $instance->getCode(), "abbr" => $instance->getAbbr(), "name" => $instance->getName(), "cryptocurrency" => $instance->isCryptocurrency(), "fiat" => $instance->isFiat(), "commodity" => $instance->isCommodity());
}
return $result;
}
开发者ID:phpsource,项目名称:openclerk,代码行数:9,代码来源:Currencies.php
示例4: getJSON
function getJSON($arguments)
{
// important for url_for() links
define('FORCE_NO_RELATIVE', true);
$result = array();
$result['currencies'] = array();
foreach (get_all_currencies() as $cur) {
$result['currencies'][] = array('code' => $cur, 'abbr' => get_currency_abbr($cur), 'name' => get_currency_name($cur), 'fiat' => is_fiat_currency($cur));
}
require __DIR__ . "/../../inc/api.php";
$result['rates'] = api_get_all_rates();
return $result;
}
开发者ID:phpsource,项目名称:openclerk,代码行数:13,代码来源:Rates.php
示例5: getJSON
function getJSON($arguments)
{
// important for url_for() links
define('FORCE_NO_RELATIVE', true);
if (!in_array($arguments['currency1'], get_all_currencies())) {
throw new \Exception("Invalid currency '" . $arguments['currency1'] . "'");
}
if (!in_array($arguments['currency2'], get_all_currencies())) {
throw new \Exception("Invalid currency '" . $arguments['currency2'] . "'");
}
$q = db()->prepare("SELECT * FROM ticker_recent WHERE currency1=? AND currency2=? ORDER BY volume DESC");
$q->execute(array($arguments['currency1'], $arguments['currency2']));
$result = array();
while ($ticker = $q->fetch()) {
$result[] = array('exchange' => $ticker['exchange'], 'last_trade' => $ticker['last_trade'], 'bid' => $ticker['bid'], 'ask' => $ticker['ask'], "volume" => $ticker['volume'], 'time' => $ticker['created_at'], 'url' => absolute_url(url_for('historical', array('id' => $ticker['exchange'] . "_" . $ticker['currency1'] . $ticker['currency2'] . "_daily"))));
}
if (!$result) {
throw new \Exception("No rates found");
}
return $result;
}
开发者ID:phpsource,项目名称:openclerk,代码行数:21,代码来源:Rate.php
示例6: getData
public function getData($days)
{
$key_column = array('type' => 'string', 'title' => ct("Currency"));
$columns = array();
// get all balances
$balances = get_all_summary_instances($this->getUser());
$last_updated = find_latest_created_at($balances, "total");
// and convert them using the most recent rates
$rates = get_all_recent_rates();
// create data
// TODO refactor this into generic any-currency balances
$data = array();
if (isset($balances['totalbtc']) && $balances['totalbtc']['balance'] != 0) {
$columns[] = array('type' => 'number', 'title' => get_currency_abbr('btc'));
$data[] = graph_number_format(demo_scale($balances['totalbtc']['balance']));
}
foreach (get_all_currencies() as $cur) {
// if the key is a currency, use the same currency colour across all graphs (#293)
$color = array_search($cur, get_all_currencies());
if ($cur == 'btc') {
continue;
}
if (!is_fiat_currency($cur) && isset($balances['total' . $cur]) && $balances['total' . $cur]['balance'] != 0 && isset($rates['btc' . $cur])) {
$columns[] = array('type' => 'number', 'title' => get_currency_abbr($cur), 'color' => $color);
$data[] = graph_number_format(demo_scale($balances['total' . $cur]['balance'] * $rates['btc' . $cur]['bid']));
}
if (is_fiat_currency($cur) && isset($balances['total' . $cur]) && $balances['total' . $cur]['balance'] != 0 && isset($rates[$cur . 'btc']) && $rates[$cur . 'btc']['ask']) {
$columns[] = array('type' => 'number', 'title' => get_currency_abbr($cur), 'color' => $color);
$data[] = graph_number_format(demo_scale($balances['total' . $cur]['balance'] / $rates[$cur . 'btc']['ask']));
}
}
// display a helpful message if there's no data
if (!$data) {
throw new NoDataGraphException_AddAccountsAddresses();
}
// sort data by balance
arsort($data);
$data = array(get_currency_abbr('btc') => $data);
return array('key' => $key_column, 'columns' => $columns, 'data' => $data, 'last_updated' => $last_updated);
}
开发者ID:phpsource,项目名称:openclerk,代码行数:40,代码来源:EquivalentPieBTC.php
示例7: getData
public function getData($days)
{
$key_column = array('type' => 'string', 'title' => ct("Currency"));
$columns = array();
$columns[] = array('type' => 'string', 'title' => ct("Currency"), 'heading' => true);
$columns[] = array('type' => 'string', 'title' => ct("Total"));
// a table of each currency
// get all balances
$balances = get_all_summary_instances($this->getUser());
$summaries = get_all_summary_currencies($this->getUser());
$currencies = get_all_currencies();
$last_updated = find_latest_created_at($balances, "total");
// create data
$data = array();
foreach ($currencies as $c) {
if (isset($summaries[$c])) {
$balance = isset($balances['total' . $c]) ? $balances['total' . $c]['balance'] : 0;
$data[] = array("<span title=\"" . htmlspecialchars(get_currency_name($c)) . "\">" . get_currency_abbr($c) . "</span>", currency_format($c, demo_scale($balance), 4));
}
}
return array('key' => $key_column, 'columns' => $columns, 'data' => $data, 'last_updated' => $last_updated, 'add_more_currencies' => true, 'no_header' => true);
}
开发者ID:phpsource,项目名称:openclerk,代码行数:22,代码来源:BalancesTable.php
示例8: getCompositionSources
function getCompositionSources($days, $extra_days)
{
$sources = array();
$summary_currencies = get_all_summary_currencies($this->getUser());
foreach (get_all_currencies() as $cur) {
if (isset($summary_currencies[$cur])) {
if ($cur == 'btc') {
// we can't LIMIT by days here, because we may have many accounts for one exchange
// first get summarised data
$sources[] = array('query' => "SELECT *, '{$cur}' AS exchange FROM graph_data_summary WHERE user_id=:user_id AND summary_type='totalbtc'\n AND data_date > DATE_SUB(NOW(), INTERVAL " . ($days + $extra_days) . " DAY) ORDER BY data_date DESC", 'key' => 'data_date', 'balance_key' => 'balance_closing');
// and then get more recent data
$sources[] = array('query' => "SELECT *, '{$cur}' AS exchange FROM summary_instances WHERE is_daily_data=1 AND summary_type='totalbtc'\n AND user_id=:user_id AND created_at >= DATE_SUB(NOW(), INTERVAL " . ($days + $extra_days) . " DAY) ORDER BY created_at DESC", 'key' => 'created_at', 'balance_key' => 'balance');
} else {
// we can't LIMIT by days here, because we may have many accounts for one exchange
// first get summarised data
$sources[] = array('query' => "SELECT *, '{$cur}' AS exchange FROM graph_data_summary WHERE user_id=:user_id AND summary_type='equivalent_btc_{$cur}'\n AND data_date > DATE_SUB(NOW(), INTERVAL " . ($days + $extra_days) . " DAY) ORDER BY data_date DESC", 'key' => 'data_date', 'balance_key' => 'balance_closing');
// and then get more recent data
$sources[] = array('query' => "SELECT *, '{$cur}' AS exchange FROM summary_instances WHERE is_daily_data=1 AND summary_type='equivalent_btc_{$cur}'\n AND user_id=:user_id AND created_at >= DATE_SUB(NOW(), INTERVAL " . ($days + $extra_days) . " DAY) ORDER BY created_at DESC", 'key' => 'created_at', 'balance_key' => 'balance');
}
}
}
return $sources;
}
开发者ID:phpsource,项目名称:openclerk,代码行数:23,代码来源:BtcEquivalentGraph.php
示例9: construct_graph_renderer
/**
* Helper function that converts a {@code graph_type} to a GraphRenderer
* object, which we can then use to get raw graph data and format it as necessary.
*/
function construct_graph_renderer($graph_type, $arg0, $arg0_resolved)
{
$bits = explode("_", $graph_type);
$all_exchanges = get_all_exchanges();
if (count($bits) == 3) {
$cur1 = false;
$cur2 = false;
if (strlen($bits[1]) == 6) {
$cur1 = substr($bits[1], 0, 3);
$cur2 = substr($bits[1], 3);
$cur1 = in_array($cur1, get_all_currencies()) ? $cur1 : false;
$cur2 = in_array($cur2, get_all_currencies()) ? $cur2 : false;
}
if (strlen($bits[2]) == 6 && !$cur1 && !$cur2) {
$cur1 = substr($bits[2], 0, 3);
$cur2 = substr($bits[2], 3);
$cur1 = in_array($cur1, get_all_currencies()) ? $cur1 : false;
$cur2 = in_array($cur2, get_all_currencies()) ? $cur2 : false;
}
if ($bits[2] == "daily" && $cur1 && $cur2 && isset($all_exchanges[$bits[0]])) {
return new GraphRenderer_Ticker($bits[0], $cur1, $cur2);
}
if ($bits[2] == "markets" && $cur1 && $cur2 && $bits[0] == "average") {
return new GraphRenderer_AverageMarketData($cur1, $cur2);
}
if ($bits[0] == "composition" && in_array($bits[1], get_all_currencies())) {
switch ($bits[2]) {
case "pie":
return new GraphRenderer_CompositionPie($bits[1]);
case "table":
return new GraphRenderer_CompositionTable($bits[1]);
case "daily":
return new GraphRenderer_CompositionGraph($bits[1]);
case "stacked":
return new GraphRenderer_CompositionStacked($bits[1]);
case "proportional":
return new GraphRenderer_CompositionProportional($bits[1]);
}
}
if ($bits[0] == "total" && in_array($bits[1], get_all_currencies()) && $bits[2] == "daily") {
return new GraphRenderer_SummaryGraph('total' . $bits[1], $bits[1]);
}
if ($bits[0] == "hashrate" && in_array($bits[1], get_all_currencies()) && $bits[2] == "daily") {
return new GraphRenderer_SummaryGraphHashrate('totalmh_' . $bits[1], $bits[1]);
}
if ($bits[0] == "securities" && in_array($bits[2], get_all_currencies())) {
$renderer = new GraphRenderer_BalancesGraphSecurities('securities_' . $bits[1], $arg0, $bits[2], $arg0_resolved);
return $renderer;
}
if ($bits[0] == "pair" && isset($all_exchanges[$bits[1]]) && $cur1 && $cur2) {
return new GraphRenderer_ExchangePair($bits[1], $cur1, $cur2);
}
}
// issue #273: fix bitmarket_pl exchange
if (count($bits) == 4) {
$cur1 = false;
$cur2 = false;
if (strlen($bits[2]) == 6) {
$cur1 = substr($bits[2], 0, 3);
$cur2 = substr($bits[2], 3);
$cur1 = in_array($cur1, get_all_currencies()) ? $cur1 : false;
$cur2 = in_array($cur2, get_all_currencies()) ? $cur2 : false;
}
if ($bits[3] == "daily" && $cur1 && $cur2 && isset($all_exchanges[$bits[0] . "_" . $bits[1]])) {
return new GraphRenderer_Ticker($bits[0] . "_" . $bits[1], $cur1, $cur2);
}
}
if (count($bits) >= 2) {
if (substr($bits[0], 0, strlen("all2")) == "all2" || substr($bits[0], 0, strlen("crypto2")) == "crypto2") {
$cur = substr($bits[0], -3);
if (in_array($cur, get_all_currencies())) {
if (count($bits) == 3 && $bits[2] == "daily" && isset($all_exchanges[$bits[1]])) {
// e.g. all2nzd_bitnz_daily
return new GraphRenderer_SummaryGraphConvertedExchange($bits[0] . "_" . $bits[1], $cur);
}
if (count($bits) == 4 && $bits[3] == "daily" && isset($all_exchanges[$bits[1] . "_" . $bits[2]])) {
// e.g. all2pln_bitmarket_pl_daily (#273)
return new GraphRenderer_SummaryGraphConvertedExchange($bits[0] . "_" . $bits[1] . "_" . $bits[2], $cur);
}
if (count($bits) == 2 && $bits[1] == "daily") {
// e.g. crypto2ltc_daily
return new GraphRenderer_SummaryGraphConvertedCrypto($bits[0], $cur);
}
}
}
}
if (count($bits) >= 2 && $bits[0] == "metrics") {
$possible = GraphRenderer_AdminMetrics::getMetrics();
$bits_two = explode("_", $graph_type, 2);
if (isset($possible[$bits_two[1]])) {
return new GraphRenderer_AdminMetrics($bits_two[1]);
}
}
switch ($graph_type) {
case "btc_equivalent":
return new GraphRenderer_EquivalentPieBTC();
//.........这里部分代码省略.........
开发者ID:phpsource,项目名称:openclerk,代码行数:101,代码来源:new.php
示例10: get_all_recent_rates
function get_all_recent_rates()
{
global $global_all_recent_rates;
if ($global_all_recent_rates === null) {
$global_all_recent_rates = array();
$query = "";
foreach (get_all_currencies() as $cur) {
if ($cur == 'btc') {
continue;
}
// we don't provide a 'btcbtc' rate
$exchange = get_default_currency_exchange($cur);
$query .= "(currency1 = 'btc' AND currency2 = '{$cur}' AND exchange='{$exchange}') OR";
$query .= "(currency1 = '{$cur}' AND currency2 = 'btc' AND exchange='{$exchange}') OR";
}
$q = db()->prepare("SELECT * FROM ticker_recent WHERE 1 AND ({$query} 0)");
$q->execute();
while ($ticker = $q->fetch()) {
$global_all_recent_rates[$ticker['currency1'] . $ticker['currency2']] = $ticker;
}
}
return $global_all_recent_rates;
}
开发者ID:phpsource,项目名称:openclerk,代码行数:23,代码来源:util.php
示例11: lang_key
<h3><?php
echo lang_key('bank_currency_settings');
?>
</h3>
<div class="form-group">
<label class="col-sm-3 col-lg-2 control-label"><?php
echo lang_key('bank_currency');
?>
</label>
<div class="col-sm-9 col-md-3 controls">
<select name="bank_currency" class="form-control">
<?php
$options = get_all_currencies();
?>
<?php
$bank_currency = isset($settings->bank_currency) ? $settings->bank_currency : '';
?>
<?php
$v = set_value('bank_currency') != '' ? set_value('bank_currency') : $bank_currency;
?>
<?php
$sel = $v == 'use_paypal' ? 'selected="selected"' : '';
?>
<option value="use_paypal" <?php
开发者ID:priyranjansingh,项目名称:classified,代码行数:30,代码来源:settings_view.php
示例12: insert_new_address_balance
insert_new_address_balance($job, $address, $balance);
} else {
if ($instance instanceof \Openclerk\Currencies\BlockBalanceableCurrency) {
// get the most recent block count, to calculate confirmations
$block = null;
$q = db()->prepare("SELECT * FROM blockcount_" . $currency . " WHERE is_recent=1");
$q->execute();
if ($result = $q->fetch()) {
$block = $result['blockcount'] - \Openclerk\Config::get($currency . "_confirmations", 6);
}
$balance = $instance->getBalanceAtBlock($address['address'], $block, $logger);
insert_new_address_balance($job, $address, $balance);
} else {
// we can't do confirmations or block balances
$balance = $instance->getBalance($address['address'], $logger);
insert_new_address_balance($job, $address, $balance);
}
}
if ($instance instanceof \Openclerk\Currencies\MultiBalanceableCurrency) {
$balances = $instance->getMultiBalances($address['address'], $logger);
foreach ($balances as $code => $balance) {
if (in_array($code, get_all_currencies())) {
if ($code != $currency) {
// skip balances we've already inserted for this currency
insert_new_balance($job, $address, 'ripple', $code, $balance);
}
} else {
$logger->info("Unknown multi currency '{$code}'");
}
}
}
开发者ID:phpsource,项目名称:openclerk,代码行数:31,代码来源:discovered.php
示例13: graph_types
/**
* Get all of the defined graph types. Used for display and validation.
*/
function graph_types()
{
$total_fiat_currencies = array();
foreach (get_total_conversion_summary_types() as $c) {
$total_fiat_currencies[] = $c['title'];
}
$total_fiat_currencies = implode_english($total_fiat_currencies);
$data = array('category_general' => array('title' => t('General'), 'category' => true), 'subcategory_general' => array('title' => t('General graphs'), 'subcategory' => true), 'btc_equivalent' => array('title' => t('Equivalent BTC balances (pie)'), 'heading' => t('Equivalent BTC'), 'description' => t('A pie chart representing the overall proportional value of all currencies if they were all converted into BTC.') . '<p>' . t('Exchanges used:') . ' ' . get_default_exchange_text(array_diff(get_all_currencies(), array('btc'))) . '.', 'default_width' => get_site_config('default_user_graph_height'), 'uses_summaries' => true), 'btc_equivalent_graph' => array('title' => t('Equivalent BTC balances (graph)'), 'heading' => t('Equivalent BTC'), 'description' => t('A line graph displaying the historical value of all currencies if they were all converted into BTC.') . '<p>' . t('Exchanges used:') . ' ' . get_default_exchange_text(array_diff(get_all_currencies(), array('btc'))) . '.', 'days' => true, 'uses_summaries' => true), 'btc_equivalent_stacked' => array('title' => t('Equivalent BTC balances (stacked)'), 'heading' => t('Equivalent BTC'), 'description' => t('A stacked area graph displaying the historical value of all currencies if they were all converted into BTC.') . '<p>' . t('Exchanges used:') . ' ' . get_default_exchange_text(array_diff(get_all_currencies(), array('btc'))) . '.', 'days' => true, 'uses_summaries' => true), 'btc_equivalent_proportional' => array('title' => t('Equivalent BTC balances (proportional)'), 'heading' => t('Equivalent BTC'), 'description' => t('A stacked area graph displaying the proportional historical value of all currencies if they were all converted into BTC.') . '<p>' . t('Exchanges used:') . ' ' . get_default_exchange_text(array_diff(get_all_currencies(), array('btc'))) . '.', 'days' => true, 'uses_summaries' => true), 'ticker_matrix' => array('title' => t('All currencies exchange rates (matrix)'), 'heading' => t('All exchanges'), 'description' => t('A matrix displaying the current bid/ask of all of the currencies and exchanges :interested_in.', array(':interested_in' => link_to(url_for('wizard_currencies'), t('you are interested in'))))), 'balances_table' => array('title' => t('Total balances (table)'), 'heading' => t('Total balances'), 'description' => t('A table displaying the current sum of all your currencies (before any conversions).'), 'default_width' => get_site_config('default_user_graph_height'), 'uses_summaries' => true), 'total_converted_table' => array('title' => t('Total converted fiat balances (table)'), 'heading' => t('Converted fiat'), 'description' => t('A table displaying the equivalent value of all cryptocurrencies and fiat currencies if they were immediately converted into fiat currencies. Cryptocurrencies are converted via BTC.') . '<p>' . t('Supports :currencies.', array(':currencies' => $total_fiat_currencies)) . '<p>' . t('Exchanges used:') . ' ' . get_default_exchange_text(array_diff(get_all_currencies(), array('btc'))) . '.', 'default_width' => get_site_config('default_user_graph_height'), 'uses_summaries' => true), 'crypto_converted_table' => array('title' => t('Total converted crypto balances (table)'), 'heading' => t('Converted crypto'), 'description' => t('A table displaying the equivalent value of all cryptocurrencies - but not fiat currencies - if they were immediately converted into other cryptocurrencies.') . '<p>' . t('Exchanges used:') . ' ' . get_default_exchange_text(array_diff(get_all_cryptocurrencies(), array('btc'))) . '.', 'default_width' => get_site_config('default_user_graph_height'), 'uses_summaries' => true), 'balances_offset_table' => array('title' => t('Total balances with offsets (table)'), 'heading' => t('Total balances'), 'description' => t('A table displaying the current sum of all currencies (before any conversions), along with the current total offset values of each currency.'), 'uses_summaries' => true));
$summaries = array();
$conversions = array();
if (user_logged_in()) {
$summaries = get_all_summary_currencies();
$conversions = get_all_conversion_currencies();
}
$data['category_summaries'] = array('title' => t('Your summaries'), 'category' => true);
$data['subcategory_summaries_total'] = array('title' => t('Historical currency value'), 'subcategory' => true);
// we can generate a list of summary daily graphs from all the currencies that we support
foreach (get_summary_types() as $key => $summary) {
$cur = $summary['currency'];
$data["total_" . $cur . "_daily"] = array('title' => t("Total :currency historical (graph)", array(':currency' => get_currency_name($cur))), 'heading' => t("Total :currency", array(':currency' => get_currency_abbr($cur))), 'description' => t("A line graph displaying the historical sum of your :currency (before any conversions).", array(':currency' => get_currency_name($cur))), 'hide' => !isset($summaries[$cur]), 'days' => true, 'delta' => true, 'technical' => true, 'uses_summaries' => true);
}
$data['subcategory_summaries_crypto2'] = array('title' => t('Historical converted value'), 'subcategory' => true);
foreach (get_crypto_conversion_summary_types() as $key => $summary) {
$cur = $summary['currency'];
$data["crypto2" . $key . "_daily"] = array('title' => t("Converted :title historical (graph)", array(':title' => $summary['title'])), 'heading' => t("Converted :title", array(':title' => $summary['short_title'])), 'description' => t("A line graph displaying the historical equivalent value of all cryptocurrencies - and not other fiat currencies - if they were immediately converted to :title.", array(':title' => $summary['title'])), 'hide' => !isset($conversions['summary_' . $key]), 'days' => true, 'delta' => true, 'technical' => true, 'uses_summaries' => true);
}
/*
* Issue #112 reported that 'all2CUR' was not correctly converting fiat currencies other than CUR.
* Rather than renaming 'all2CUR' as 'all cryptocurrencies and CUR', which doesn't seem to be particularly useful
* - and it will mean we'll have to track two new summaries for every currency -
* as of 0.19 this will now correctly be calculated as 'all cryptocurrencies and fiat currencies'. This means that there
* will be a jump in the value of data when deployed.
*/
foreach (get_total_conversion_summary_types() as $key => $summary) {
$cur = $summary['currency'];
$data["all2" . $key . "_daily"] = array('title' => t("Converted :title historical (graph)", array(':title' => $summary['title'])), 'heading' => t("Converted :title", array(':title' => $summary['short_title'])), 'description' => t("A line graph displaying the historical equivalent value of all cryptocurrencies and fiat currencies if they were immediately converted to :title (where possible).", array(':title' => $summary['title'])), 'hide' => !isset($conversions['summary_' . $key]), 'days' => true, 'delta' => true, 'technical' => true, 'uses_summaries' => true);
}
$data['subcategory_summaries_composition'] = array('title' => t('Total balance composition'), 'subcategory' => true);
// we can generate a list of composition graphs from all of the currencies that we support
foreach (get_all_currencies() as $currency) {
$data["composition_" . $currency . "_pie"] = array('title' => t("Total :currency balance composition (pie)", array(':currency' => get_currency_name($currency))), 'heading' => t("Total :currency", array(':currency' => get_currency_abbr($currency))), 'description' => t("A pie chart representing all of the sources of your total :currency balance (before any conversions).", array(':currency' => get_currency_name($currency))), 'hide' => !isset($summaries[$currency]), 'default_width' => get_site_config('default_user_graph_height'), 'uses_summaries' => true);
}
$data['subcategory_summaries_graph'] = array('title' => t('All balances (graph)'), 'subcategory' => true);
foreach (get_all_currencies() as $currency) {
$data["composition_" . $currency . "_daily"] = array('title' => t("All :currency balances (graph)", array(':currency' => get_currency_name($currency))), 'heading' => t("All :currency balances", array(':currency' => get_currency_abbr($currency))), 'description' => t("A line graph representing all of the sources of your total :currency balance (before any conversions).", array(':currency' => get_currency_name($currency))), 'days' => true, 'hide' => !isset($summaries[$currency]), 'uses_summaries' => true);
}
$data['subcategory_summaries_table'] = array('title' => t('All balances (table)'), 'subcategory' => true);
foreach (get_all_currencies() as $currency) {
$data["composition_" . $currency . "_table"] = array('title' => t("Your :currency balances (table)", array(':currency' => get_currency_name($currency))), 'heading' => t("Your :currency balances", array(':currency' => get_currency_abbr($currency))), 'description' => t("A table displaying all of your :currency balances and the total balance (before any conversions).", array(':currency' => get_currency_name($currency))), 'hide' => !isset($summaries[$currency]), 'uses_summaries' => true);
}
$data['subcategory_summaries_stacked'] = array('title' => t('All balances (stacked)'), 'subcategory' => true);
foreach (get_all_currencies() as $currency) {
$data["composition_" . $currency . "_stacked"] = array('title' => t("All :currency balances (stacked)", array(':currency' => get_currency_name($currency))), 'heading' => t("All :currency balances", array(':currency' => get_currency_abbr($currency))), 'description' => t("A stacked area graph displaying the historical value of your total :currency balance (before any conversions).", array(':currency' => get_currency_name($currency))), 'days' => true, 'hide' => !isset($summaries[$currency]), 'uses_summaries' => true);
}
$data['subcategory_summaries_proportional'] = array('title' => t('All balances (proportional)'), 'subcategory' => true);
foreach (get_all_currencies() as $currency) {
$data["composition_" . $currency . "_proportional"] = array('title' => t("All :currency balances (proportional)", array(':currency' => get_currency_name($currency))), 'heading' => t("All :currency balances", array(':currency' => get_currency_abbr($currency))), 'description' => t("A stacked area graph displaying the proportional historical value of your total :currency balance (before any conversions).", array(':currency' => get_currency_name($currency))), 'days' => true, 'hide' => !isset($summaries[$currency]), 'uses_summaries' => true);
}
$data['category_hashrate'] = array('title' => t('Your mining'), 'category' => true);
$data['category_hashrate_hashrate'] = array('title' => t('Historical hashrates'), 'subcategory' => true);
// and for each cryptocurrency that can be hashed
foreach (get_all_hashrate_currencies() as $cur) {
$data["hashrate_" . $cur . "_daily"] = array('title' => t(":currency historical MHash/s (graph)", array(':currency' => get_currency_name($cur))), 'heading' => t(":currency MHash/s", array(':currency' => get_currency_abbr($cur))), 'description' => t("A line graph displaying the historical hashrate sum of all workers mining :currency across all mining pools (in MHash/s).", array(':currency' => get_currency_name($cur))), 'hide' => !isset($summaries[$cur]), 'days' => true, 'delta' => true, 'technical' => true, 'uses_summaries' => true);
}
// merge in graph_types_public() here
foreach (graph_types_public($summaries) as $key => $public_data) {
// but add 'hide' parameter to hide irrelevant currencies
if (isset($public_data['pairs'])) {
$pairs = $public_data['pairs'];
$public_data['hide'] = !(isset($summaries[$pairs[0]]) && isset($summaries[$pairs[1]]));
}
$data[$key] = $public_data;
}
$data['subcategory_layout'] = array('title' => t('Layout tools'), 'subcategory' => true);
$data['linebreak'] = array('title' => t('Line break'), 'description' => t('Forces a line break at a particular location. Select \'Enable layout editing\' to move it.'), 'heading' => t('Line break'));
$data['heading'] = array('title' => t('Heading'), 'description' => t("Displays a line of text as a heading at a particular location. Also functions as a line break. Select 'Enable layout editing' to move it.'"), 'string0' => t("Example heading"), 'heading' => t('Heading'));
// add sample images
$images = array('btc_equivalent' => 'btc_equivalent.png', 'composition_btc_pie' => 'composition_btc_pie.png', 'composition_ltc_pie' => 'composition_ltc_pie.png', 'composition_nmc_pie' => 'composition_nmc_pie.png', 'btce_btcnmc_daily' => 'btce_btcnmc_daily.png', 'btce_btcftc_daily' => 'btce_btcftc_daily.png', 'btce_btcltc_daily' => 'btce_btcltc_daily.png', 'bitstamp_usdbtc_daily' => 'bitstamp_usdbtc_daily.png', 'bitnz_nzdbtc_daily' => 'bitnz_nzdbtc_daily.png', 'btcchina_cnybtc_daily' => 'btcchina_cnybtc_daily.png', 'cexio_btcghs_daily' => 'cexio_btcghs_daily.png', 'vircurex_btcltc_daily' => 'vircurex_btcltc_daily.png', 'vircurex_btcdog_daily' => 'vircurex_btcdog_daily.png', 'themoneyconverter_usdeur_daily' => 'themoneyconverter_usdeur_daily.png', 'themoneyconverter_usdaud_daily' => 'themoneyconverter_usdaud_daily.png', 'themoneyconverter_usdcad_daily' => 'themoneyconverter_usdcad_daily.png', 'themoneyconverter_usdnzd_daily' => 'themoneyconverter_usdnzd_daily.png', 'crypto2btc_daily' => 'crypto2btc_daily.png', 'crypto2ltc_daily' => 'crypto2ltc_daily.png', 'crypto2nmc_daily' => 'crypto2nmc_daily.png', 'crypto2dog_daily' => 'crypto2dog_daily.png', 'all2nzd_bitnz_daily' => 'all2nzd_bitnz_daily.png', 'all2cad_virtex_daily' => 'all2cad_virtex_daily.png', 'all2usd_bitstamp_daily' => 'all2usd_bitstamp_daily.png', 'all2usd_btce_daily' => 'all2usd_btce_daily.png', 'btc_equivalent_graph' => 'btc_equivalent_graph.png', 'btc_equivalent_proportional' => 'btc_equivalent_proportional.png', 'btc_equivalent_stacked' => 'btc_equivalent_stacked.png', 'total_btc_daily' => 'total_btc_daily.png', 'total_ltc_daily' => 'total_ltc_daily.png', 'total_nmc_daily' => 'total_nmc_daily.png', 'total_ghs_daily' => 'total_ghs_daily.png', 'hashrate_ltc_daily' => 'hashrate_ltc_daily.png', 'balances_table' => 'balances_table.png', 'balances_offset_table' => 'balances_offset_table.png', 'crypto_converted_table' => 'crypto_converted_table.png', 'total_converted_table' => 'total_converted_table.png', 'composition_btc_daily' => 'composition_btc_daily.png', 'composition_ltc_daily' => 'composition_ltc_daily.png', 'composition_nmc_daily' => 'composition_ltc_daily.png', 'composition_ftc_daily' => 'composition_ltc_daily.png', 'composition_ppc_daily' => 'composition_ltc_daily.png', 'composition_nvc_daily' => 'composition_ltc_daily.png', 'composition_dog_daily' => 'composition_dog_daily.png', 'composition_btc_table' => 'composition_btc_table.png', 'composition_ltc_table' => 'composition_ltc_table.png', 'composition_nmc_table' => 'composition_nmc_table.png', 'composition_ftc_table' => 'composition_ltc_table.png', 'composition_ppc_table' => 'composition_ltc_table.png', 'composition_nvc_table' => 'composition_ltc_table.png', 'composition_dog_table' => 'composition_dog_table.png', 'composition_btc_proportional' => 'composition_btc_proportional.png', 'composition_ltc_proportional' => 'composition_ltc_proportional.png', 'composition_nmc_proportional' => 'composition_nmc_proportional.png', 'composition_ftc_proportional' => 'composition_ltc_proportional.png', 'composition_ppc_proportional' => 'composition_ltc_proportional.png', 'composition_nvc_proportional' => 'composition_ltc_proportional.png', 'composition_btc_stacked' => 'composition_btc_stacked.png', 'composition_ltc_stacked' => 'composition_ltc_stacked.png', 'composition_nmc_stacked' => 'composition_ltc_stacked.png', 'composition_ftc_stacked' => 'composition_ltc_stacked.png', 'composition_ppc_stacked' => 'composition_ltc_stacked.png', 'composition_nvc_stacked' => 'composition_ltc_stacked.png', 'composition_ghs_stacked' => 'composition_ghs_stacked.png', 'average_usdbtc_daily' => 'average_usdbtc_daily.png', 'average_usdbtc_markets' => 'average_usdbtc_markets.png', 'average_cadbtc_daily' => 'average_cadbtc_daily.png', 'average_cadbtc_markets' => 'average_cadbtc_markets.png', 'average_audbtc_daily' => 'average_audbtc_daily.png', 'average_audbtc_markets' => 'average_audbtc_markets.png', 'average_nzdbtc_daily' => 'average_nzdbtc_daily.png', 'average_nzdbtc_markets' => 'average_nzdbtc_markets.png', 'average_btcdog_daily' => 'average_btcdog_daily.png', 'average_btcdog_markets' => 'average_btcdog_markets.png', 'average_btcltc_daily' => 'average_btcltc_daily.png', 'average_btcltc_markets' => 'average_btcltc_markets.png', 'ticker_matrix' => 'ticker_matrix.png', 'calculator' => 'calculator.png');
$data = add_example_images($data, $images);
return $data;
}
开发者ID:phpsource,项目名称:openclerk,代码行数:84,代码来源:types.php
示例14: is_valid_currency
function is_valid_currency($c)
{
return in_array($c, get_all_currencies());
}
开发者ID:phpsource,项目名称:openclerk,代码行数:4,代码来源:crypto.php
示例15: render_sources_graph
/**
* Renders a collection of $sources with a given set of arguments $args, a user ID $user_id
* and a heading callback function $get_heading_title.
*
* @param $has_subheadings true (default), false (no subheading), 'last_total' (total the most recent data)
* @param $stacked if true, renders the graph as a stacked graph rather than line graph. defaults to false.
* @param $make_proportional if true, converts all values to proportional data w.r.t. each date point, up to 100%. defaults to false.
*/
function render_sources_graph($graph, $sources, $args, $user_id, $get_heading_title, $has_subheadings = true, $stacked = false, $make_proportional = false)
{
$data = array();
$last_updated = false;
$days = get_graph_days($graph);
$extra_days = extra_days_necessary($graph);
$exchanges_found = array();
$maximum_balances = array();
// only used to check for non-zero accounts
$data_temp = array();
$hide_missing_data = !require_get("debug_show_missing_data", false);
$latest = array();
foreach ($sources as $source) {
$q = db()->prepare($source['query']);
$q_args = $args;
$q_args['user_id'] = $user_id;
$q->execute($q_args);
while ($ticker = $q->fetch()) {
$key = date('Y-m-d', strtotime($ticker[$source['key']]));
if (!isset($data_temp[$key])) {
$data_temp[$key] = array();
}
if (!isset($data_temp[$key][$ticker['exchange']])) {
$data_temp[$key][$ticker['exchange']] = 0;
}
$data_temp[$key][$ticker['exchange']] += $ticker[$source['balance_key']];
$last_updated = max($last_updated, strtotime($ticker['created_at']));
$exchanges_found[$ticker['exchange']] = $ticker['exchange'];
if (!isset($maximum_balances[$ticker['exchange']])) {
$maximum_balances[$ticker['exchange']] = 0;
}
$maximum_balances[$ticker['exchange']] = max($ticker[$source['balance_key']], $maximum_balances[$ticker['exchange']]);
if (!isset($latest[$ticker['exchange']])) {
$latest[$ticker['exchange']] = 0;
}
$latest[$ticker['exchange']] = max($latest[$ticker['exchange']], strtotime($ticker[$source['key']]));
}
}
// get rid of any exchange summaries that had zero data
foreach ($maximum_balances as $key => $balance) {
if ($balance == 0) {
foreach ($data_temp as $dt_key => $values) {
unset($data_temp[$dt_key][$key]);
}
unset($exchanges_found[$key]);
}
}
// sort by date so we can get previous dates if necessary for missing data
ksort($data_temp);
$data = array();
// add headings after we know how many exchanges we've found
$first_heading = array('title' => t("Date"));
if ($make_proportional) {
$first_heading['min'] = 0;
$first_heading['max'] = 100;
}
$headings = array($fir
|
请发表评论