Jump to content
  • 0

Создать массива или дроработать


lev99
 Share

Question

В принципе все работает и можно было оставить так, как есть, но мне кажется его можно улучшить

if ($params->get('use_wm')==0) { $use_wm1 = '';}elseif ($params->get('use_wm')==1) { $use_wm1 = ' #wm,';};if ($params->get('use_rupay')==0) { $use_rupay1 = "";}elseif ($params->get('use_rupay')==1) { $use_rupay1 = " #rupay,";};if ($params->get('use_yandex')==0) { $use_yandex1 = "";}elseif ($params->get('use_yandex')==1) { $use_yandex1 = " #yandex,";};if ($params->get('use_paypal')==0) { $use_paypal1 = "";}elseif ($params->get('use_paypal')==1) { $use_paypal1 = " #paypal,";};if ($params->get('use_moneybookers')==0) { $use_moneybookers1 = "";}elseif ($params->get('use_moneybookers')==1) { $use_moneybookers1 = " #moneybookers,";};if ($params->get('use_robox')==0) { $use_robox1 = "";}elseif ($params->get('use_robox')==1) { $use_robox1 = " #robox,";};if ($params->get('use_liqpay')==0) { $use_liqpay1 = "";}elseif ($params->get('use_liqpay')==1) { $use_liqpay1 = " #liqpay,";};if ($params->get('use_smscoin')==0) { $use_smscoin1 = "";}elseif ($params->get('use_smscoin')==1) { $use_smscoin1 = " #smscoin,";};if ($params->get('use_cbank')==0) { $use_cbank1 = "";}if ($params->get('use_cbank')==1) { $use_cbank1 = " #cbank,";};$useshowwm = "$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1";$useshorupay = "$use_wm1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1";$useshowyandex = "$use_wm1$use_rupay1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1";$useshowpaypal = "$use_wm1$use_rupay1$use_yandex1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1";$useshowmoneybookers = "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1";$useshowrobox = "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_liqpay1$use_smscoin1$use_cbank1";$useshowliqpay = "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_smscoin1$use_cbank1";$useshowsmscoin = "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_cbank1";$useshowcbank = "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1";$useshowhideall = "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1";$useshowwmamm = rtrim($useshowwm, ",");$useshorupayamm = rtrim($useshorupay, ",");$useshowyandexamm = rtrim($useshowyandex, ",");$useshowpaypalamm = rtrim($useshowpaypal, ", ");$useshowmoneybookersamm = rtrim($useshowmoneybookers, ",");$useshowroboxamm = rtrim($useshowrobox, ",");$useshowliqpayamm = rtrim($useshowliqpay, ",");$useshowsmscoinamm = rtrim($useshowsmscoin, ",");$useshowcbankamm = rtrim($useshowcbank, ",");$useshowhideallamm = rtrim($useshowhideall, ",");echo trim($useshowwmamm, ' ');echo trim($useshorupayamm, ' ');echo trim($useshowyandexamm, ' ');echo trim($useshowpaypalamm, ' ');echo trim($useshowmoneybookersamm, ' ');echo trim($useshowroboxamm, ' ');echo trim($useshowliqpayamm, ' ');echo trim($useshowsmscoinamm, ' ');echo trim($useshowcbankamm, ' ');echo trim($useshowhideallamm, ' ');

Все это должно превратиться в это

(function($) {		this.show_wm = function()	{		$('#rupay, #robox').hide();		$('#wm').slideDown(500);		return false;	};		this.show_rupay = function()	{		$('#wm, #robox').hide();		$('#rupay').slideDown(500);		return false;	};		this.show_robox = function()	{		$('#wm, #rupay').hide();		$('#robox').slideDown(500);		return false;	};		this.hide_all = function()	{		$('#wm, #rupay, #robox').hide();		return false;	}    
Edited by lev99
Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0

1) Тернарный оператор

2) Что мешает сразу использовать trim при присвоении значения переменной?

3) Используйте нормальную конкатенацию в PHP и отбивку пробелами для удобочитаемости.

Link to comment
Share on other sites

  • 0

Сделайте шаблон, по типу:

$show_template = <<<'EOL'this.show_${name} = function(){  $('${selectors}').show();  return false;};EOL;

А потом:

$code = "";if($params->get('use_liqpay')){  $code .= str_replace("${name}", "liqpay", str_replace("${selectors}", ".liqpay", $show_template));}echo $code;
Link to comment
Share on other sites

  • 0

antonKar, afdw

спасибо, насчет мешает, наверно не знание, тот код был написан, так как смог придумать и он работает, но если поможете исправить, я не против, еще раз спасибо.

Пока остановился на этом:

$use_wm1 = $params->get( 'use_wm' ) == 0 ? '' : ' #wm,';$use_rupay1 = $params->get( 'use_rupay' ) == 0 ? '' : '  #rupay,';$use_yandex1 = $params->get( 'use_yandex' ) == 0 ? '' : ' #yandex,';$use_paypal1 = $params->get( 'use_paypal' ) == 0 ? '' : ' #paypal,';$use_moneybookers1 = $params->get( 'use_moneybookers' ) == 0 ? '' : '#moneybookers,';$use_robox1 = $params->get( 'use_robox' ) == 0 ? '' : ' #robox,';$use_liqpay1 = $params->get( 'use_liqpay' ) == 0 ? '' : ' #liqpay,';$use_smscoin1 = $params->get( 'use_smscoin' ) == 0 ? '' : ' #smscoin,';$use_cbank1 = $params->get( 'use_rupay' ) == 0 ? '' : ' #cbank,';echo trim( rtrim( "$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_rupay1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_smscoin1$use_cbank1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_cbank1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1", "," ), ' ' );echo trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );
Link to comment
Share on other sites

  • 0

А громоздкий не получиться

(function($) {	<?php 	if ($use_wm)	{?>	this.show_wm = function()	{		$('<?php echo $useshowwm; ?>').hide();		$('#wm').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}	if ($use_rupay)	{?>	this.show_rupay = function()	{		$('<?php echo $useshorupay; ?>').hide();		$('#rupay').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}	if ($use_yandex)	{?>	this.show_yandex = function()	{		$('<?php echo $useshowyandex; ?>').hide();		$('#yandex').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}	if ($use_paypal)	{?>	this.show_paypal = function()	{		$('<?php echo $useshowpaypal; ?>').hide();		$('#paypal').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}	if ($use_moneybookers)	{?>	this.show_moneybookers = function()	{		$('<?php echo $useshowmoneybookers; ?>').hide();		$('#moneybookers').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}	if ($use_robox)	{?>	this.show_robox = function()	{		$('<?php echo $useshowrobox; ?>').hide();		$('#robox').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}	if ($use_liqpay)	{?>	this.show_liqpay = function()	{		$('<?php echo $useshowliqpay; ?>').hide();		$('#liqpay').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}	if ($use_smscoin)	{?>	this.show_smscoin = function()	{		$('<?php echo $useshowsmscoin; ?>').hide();		$('#smscoin').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}	if ($use_cbank)	{?>	this.show_cbank = function()	{		$('<?php echo $useshowcbank; ?>').hide();		$('#cbank').<?php echo $jfadtogquery;?>;		return false;	};	<?php	}?>	this.hide_all = function()	{		$('<?php echo $useshowhideall; ?>').hide();		return false;	}    })(jQuery);

понаписано


Насчет массива нравиться идея, только, как отключение продумать 

Edited by lev99
Link to comment
Share on other sites

  • 0

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

 

1. $params->get()  возвращает 1 или 0 в зависимости от того подключена платежная система или нет? Если да, то в зависимости от этого и нужно генерировать html, а не javascript. Если платежная система не подключена то зачем вообще выводить html код для нее?

2. Для всех платежных систем должен быть один обработчик. Вы по сути пытаетесь реализовать обычные табы, которые можно сделать даже без JS.

Link to comment
Share on other sites

  • 0

согласен, может меня и занесло, вот и прошу помощь  :P

Изначально это выглядело так:

echo $t2;
if ($use_wm)
{?>
function show_wm()
{
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#wm').;
return false;
};
}
if ($use_rupay)
{?>
function show_rupay()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#rupay').;
return false;
};
}
if ($use_yandex)
{?>
function show_yandex()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#yandex').;
return false;
};
}
if ($use_egold)
{?>
function show_egold()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#egold').;
return false;
};
}
if ($use_paypal)
{?>
function show_paypal()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#paypal').;
return false;
};
}
if ($use_libertyreserve)
{?>
function show_libertyreserve()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#libertyreserve').;
return false;
};
}
if ($use_moneybookers)
{?>
function show_moneybookers()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#moneybookers').;
return false;
};
}
if ($use_robox)
{?>
function show_robox()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#robox').;
return false;
};
}
if ($use_sms)
{?>
function show_sms()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#sms').;
return false;
};
}
if ($use_sms1)
{?>
function show_sms1()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#sms1').;
return false;
};
}
if ($use_mmail)
{?>
function show_mmail()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#mmail').;
return false;
};
}
if ($use_liqpay)
{?>
function show_liqpay()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#liqpay').;
return false;
};
}
if ($use_smscoin)
{?>
function show_smscoin()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
('#smscoin').;
return false;
};
}
if ($use_cbank)
{?>
function show_cbank()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide();
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}?>
('#cbank').;
return false;
};
}?>

function hide_all()
{
if ($use_wm)
{?>
('#wm').hide();
}
if ($use_rupay)
{?>
('#rupay').hide()
}
if ($use_yandex)
{?>
('#yandex').hide();
}
if ($use_egold)
{?>
('#egold').hide();
}
if ($use_paypal)
{?>
('#paypal').hide();
}
if ($use_libertyreserve)
{?>
('#libertyreserve').hide();
}
if ($use_moneybookers)
{?>
('#moneybookers').hide();
}
if ($use_robox)
{?>
('#robox').hide();
}
if ($use_sms)
{?>
('#sms').hide();
}
if ($use_sms1)
{?>
('#sms1').hide();
}
if ($use_mmail)
{?>
('#mmail').hide();
}
if ($use_liqpay)
{?>
('#liqpay').hide();
}
if ($use_smscoin)
{?>
('#smscoin').hide();
}
if ($use_cbank)
{?>
('#cbank').hide();
}?>
return false;
}

 

сейчас подумываю так

$use_wm1 = $params->get( 'use_wm' ) == 0 ? '' : ' #wm,';$use_rupay1 = $params->get( 'use_rupay' ) == 0 ? '' : '  #rupay,';$use_yandex1 = $params->get( 'use_yandex' ) == 0 ? '' : ' #yandex,';$use_paypal1 = $params->get( 'use_paypal' ) == 0 ? '' : ' #paypal,';$use_moneybookers1 = $params->get( 'use_moneybookers' ) == 0 ? '' : '#moneybookers,';$use_robox1 = $params->get( 'use_robox' ) == 0 ? '' : ' #robox,';$use_liqpay1 = $params->get( 'use_liqpay' ) == 0 ? '' : ' #liqpay,';$use_smscoin1 = $params->get( 'use_smscoin' ) == 0 ? '' : ' #smscoin,';$use_cbank1 = $params->get( 'use_cbank' ) == 0 ? '' : ' #cbank,';$useshowwm = array();array_push($useshowwm, $use_rupay1);array_push($useshowwm, $use_yandex1);array_push($useshowwm, $use_paypal1);array_push($useshowwm, $use_moneybookers1);array_push($useshowwm, $use_robox1);array_push($useshowwm, $use_smscoin1);array_push($useshowwm, $use_cbank1);$useshowwmamm = implode(", ", $useshowwm);$useshorupay = array();array_push($useshorupay, $use_yandex1);array_push($useshorupay, $use_paypal1);array_push($useshorupay, $use_moneybookers1);array_push($useshorupay, $use_robox1);array_push($useshorupay, $use_liqpay1);array_push($useshorupay, $use_smscoin1);array_push($useshorupay, $use_cbank1);$useshorupayamm = implode(", ", $useshorupay);

хотелось упростить, а у меня получается только усложнить :(   

Edited by lev99
Link to comment
Share on other sites

  • 0
<div class="tabs"><?php$pses = array("cbank", "robox", "...");foreach($pses as $ps){  if($params->get( 'use_' . $ps ))  {    ?>    <div class="tab" id="<?= $ps ?>-tab"><img src="/images/<?= $ps ?>.png"></div>    <?php  }}?></div>

Ну вот примерно так. Это вкладки. Далее выводите 1 раз то, что будет во вкладках, а потом:

<script>var pses = [<?= implode(", ", $pses) ?>];</script>

И на JS делаете всё остальное.

Link to comment
Share on other sites

  • 0
а потом: <script> var pses = []; </script> И на JS делаете всё остальное.

А потом тоже не нужно. Функционал самих вкладок вообще никак не должен зависеть от того какие выводятся платежные системы.

 

Все можно выводить сразу из php в цикле

<ul class="tabs"><?php$pses = array("cbank", "robox", "...");foreach($pses as $ps){  if($params->get( 'use_' . $ps ))  {?>    <li><a class="tab" id="<?= $ps ?>-tab"><img src="/images/<?= $ps ?>.png"></a></li><?php  }}?></ul><div class="content-tabs"><?phpforeach($pses as $ps){  if($params->get( 'use_' . $ps ))  {?>    <div id="content-<?= $ps ?>-tab" class="content-tab">содержимое вкладки</div><?php  }}?></div>

и js что-то вроде такого.

$(document).ready(function(){    $('.tabs a.tab').on('click', function(e){        e.preventDefault();        $('.tabs a.tab').removeClass('active');        $(this).addClass('active');        $('.content-tabs > .content-tab').hide();        $('#content-'+$(this).attr('id')).slideDown();        return false;    });});
Link to comment
Share on other sites

  • 0
<?php$use_wm1 = $params->get( 'use_wm' ) == 0 ? '' : ' #wm,';$use_rupay1 = $params->get( 'use_rupay' ) == 0 ? '' : '  #rupay,';$use_yandex1 = $params->get( 'use_yandex' ) == 0 ? '' : ' #yandex,';$use_paypal1 = $params->get( 'use_paypal' ) == 0 ? '' : ' #paypal,';$use_moneybookers1 = $params->get( 'use_moneybookers' ) == 0 ? '' : '#moneybookers,';$use_robox1 = $params->get( 'use_robox' ) == 0 ? '' : ' #robox,';$use_liqpay1 = $params->get( 'use_liqpay' ) == 0 ? '' : ' #liqpay,';$use_smscoin1 = $params->get( 'use_smscoin' ) == 0 ? '' : ' #smscoin,';$use_cbank1 = $params->get( 'use_cbank' ) == 0 ? '' : ' #cbank,';$hideall = trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );$payments = array(   'wm' => trim( rtrim( "$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),   'rupay' => trim( rtrim( "$use_wm1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),   'yandex' => trim( rtrim( "$use_wm1$use_rupay1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),   'paypal' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),   'moneybookers' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),   'robox' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),   'liqpay' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_smscoin1$use_cbank1", "," ), ' ' ),   'smscoin' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_cbank1", "," ), ' ' ),   'cbank' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1", "," ), ' ' ));?><script>   (function ($) {      <?php foreach($payments as $payment => $value): ?>         <?php if($params->get('use_' . $payment)): ?>            this.show_<?php echo $payment; ?> = function () {               $('<?php echo $value; ?>').hide();               $('#<?php echo $payment; ?>').<?php echo $jfadtogquery;?>;               return false;            };         <?php endif; ?>      <?php endforeach; ?>      this.hide_all = function () {         $('<?php echo $hideall; ?>').hide();         return false;      }   })(jQuery);   <?php if ($jammfadtogquery1 == 1): ?>   jQuery(function ($) {      $('#amoney').on('click', '.south', function () {         $('#amoney .south').removeClass('active');         $(this).addClass('active');      });   });   <?php endif; ?></script>

как такое запустить?

Link to comment
Share on other sites

  • 0

Николя223

как использовать? jQuery или CSS

——-

а возможно вместо onclick подцепить href

<a class="south" href="#hide_all" style="margin:3px;text-decoration: none;" title="Скрыть все">Благодарность Автору</a><a id="ammh1" style="margin:3px;" class="south" href="#wm" title="WebMoney"></a><a id="ammh2" style="margin:3px;" class="south" href="#rupay" title="RBKMoney"></a><a id="ammh8" style="margin:3px;" class="south" href="#robox" title="ROBOKASSA"></a>
	this.#show_wm.attr('href') = function()	{			                       $('#rupay, #robox').hide();	               $('#wm').slideDown(500);		    return false;	};	this.#show_rupay.attr('href') = function()	{			$('#wm, #robox').hide();			$('#rupay').slideDown(500);		    return false;	};	this.#show_robox.attr('href') = function()	{			$('#wm, #rupay').hide();			$('#robox').slideDown(500);		    return false;	};		this.#hide_all.attr('href') = function()	{			$('#wm, #rupay, #robox').hide();			return false;	}    
Edited by lev99
Link to comment
Share on other sites

  • 0

wwt вам написал, что 

 

Если да, то в зависимости от этого и нужно генерировать html, а не javascript.

сделайте так. 
6f72d8afd2.jpg

далее - каждому модулю присвойте одинаковый класс. например pay_module
да собственно и все. 
вместо всех элементов обращайтесь по классу ко всем
а при выводе массива обращайтесь по классу но за исключением того элемента, который в текущей итерации
я понятно объяснил?  ;)

самая важная задача разработчика - не просто работоспособный код, а чтобы его легко было читать и не плеваться каждый раз как его видишь
upd: столкнулся я как то с oscommerce - движок вроде как один из популярных, но там все сделано через одно место.... его переделывать нужно причем полностью... зла нехватает

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By Only091
      Помогите пожалуйста, не получается сделать постраничную навигацию. Делал все по урокам. в Итоге получилось сделать два разных каталога один с фильтрами другой с постраничной навигацией. И теперь я пытаюсь объединить два каталога. Но не получается. Сами файлы урока в архике каталог. Буду очень благодарен если мне помогут! catalog.phpcatalogDB.js
      каталог.7z
    • By stonelabs
      Всем привет!

      Наша компания (https://stone-labs.com/) ищет команды (!) разработчиков для реализации ряда заказных проектов. Местоположение не важно - мы практикуем удаленную работу.
       
      Обязательные требования:
      Laravel или Symfony frameworks jQuery (UI), JavaScript, Ajax, Bootstrap MySQL REST API, опыт внедрения Third-party APIs английский на уровне чтения и понимания технической документации опыт в разработке веб приложений и их архитектуры с нуля корректное использование git & pull request flow работа в дневное время во временной зоне UTC +3  
      Будет плюсом, если у вашей команды есть:
      опыт с GitLab CI/CD, Jenkins опыт с MySQL Cluster, MongoDB, PostgreSQL, Redis опыт с Vue.js опыт Linux администрирования, SSH, Nginx, DevOps  
      Если вам интересно сотрудничество, пожалуйста, пишите на наш ящик wanted@stone-labs.com 
    • By Defroing
      <form method="POST" action= "action_handler.php" id="form"> <section class="table_1"> <table class="iksweb"> <tbody> <tr> <td rowspan="3"><b>История компании «Mc donald's»</b> <h3 class="the">Кто основал компанию «Mc donald's»?</h3> <section class="conteiner"> <div class="checkbox"> <input type="checkbox" class="i-6" id="i6" value="0" name="formDoor[]"> <label for="i6" tabindex="12">Роналд Макдоналд</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="i7" value="0" name="formDoor[]"> <label for="i7" tabindex="13">Рэй Крок</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="checkbox_68" value="1" name="formDoor[]"> <label for="checkbox_68" tabindex="14">Братья Дик и Мак Макдоналд</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="checkbox_170" value="0" name="formDoor[]"> <label for="checkbox_170" tabindex="14">Клинт Иствуд</label> </div> <div class="out-block out-6"></div> </section> </td> </tr> </tbody> </table> <div class="dsw"> <button class="b-6" tabindex="11" id="btn-1" type="submit" name="formSubmit">Отправить</button> </div> </form> <?php mysql_connect("localhost", "root", ""); mysql_select_db('olala') or die(mysql_error()); if(isset($_GET['submit'])){ $arr=$_GET; foreach ($arr as $key => $value) { $reg="/^check/";//отбираю нужные элементы if( preg_match ($reg,$key )) { //$new_mass[]=$arr[$key]; //print_r($new_mass); echo $arr[$key]; $sql_1="INSERT INTO `table_one` (`name`) VALUES('$arr[$key]')"; mysql_query($sql_1) or die(mysql_error()); } } } ?>  Создаю опросник и хочу, чтобы чекбоксы заносились в БД(таблицу пока не создавал). Хотелось узнать на счёт php кода, сможете подсказать, что в нём не так (дать какие нибудь советы). В openserver опросник пока не выкладывал.
    • By seoww
      Доброго времени суток. Я не сильно знающий веб-разработчик, но учусь. Начал создавать интернет магазин. Написал код самого сайта, посмотрел видео как делаются интернет-магазины и теперь не могу разобраться с PhpMyAdmin. Я не понимаю как она взаимодействует с сайтом. В интернете погуглил, так ничего дельного найти и не смог. Помогите пожалуйста.
      P.S сильно в меня камни не кидайте, я только учусь 
      Всем добра!
    • By Gmansurov
      Нужно отправить текст на сайт, не знаю как это сделать и не могу найти форумы по этим темам. Google Cloud Platform. Помогите пожалуйста.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy