public function addPayoutInputs(HTML_QuickForm2_Container $fieldSet)
    {
        $el = $fieldSet->addSelect('aff_payout_type')->setLabel(___('Affiliate Payout Type'))->loadOptions(array_merge(array('' => ___('Not Selected'))));
        foreach (Am_Aff_PayoutMethod::getEnabled() as $method) {
            $el->addOption($method->getTitle(), $method->getId());
        }
        $fieldSet->addScript()->setScript('
/**** show only options for selected payout method */
$(function(){
$("#' . $el->getId() . '").change(function()
{
    for (i in this.options)
    {
        var v = this.options[i].value;
        (i == this.selectedIndex) ?
            $(":input[name^=aff_"+v+"_]").parents(".row").show() :
            $(":input[name^=aff_"+v+"_]").parents(".row").hide();
    }
}).change();
});
/**** end of payout method options */
');
        foreach ($this->getDi()->userTable->customFields()->getAll() as $f) {
            if (strpos($f->name, 'aff_') === 0) {
                $f->addToQf2($fieldSet);
            }
        }
    }
Exemple #2
0
    public function insertBrick(HTML_QuickForm2_Container $form)
    {
        $paysystems = $this->getPaysystems();
        if (count($paysystems) == 1 && $this->getConfig('hide_if_one')) {
            reset($paysystems);
            $form->addHidden('paysys_id')->setValue(current($paysystems)->getId())->toggleFrozen(true);
            return;
        }
        $psOptions = $psHide = array();
        foreach ($paysystems as $ps) {
            $psOptions[$ps->getId()] = $this->renderPaysys($ps);
            $psHide[$ps->getId()] = Am_Di::getInstance()->plugins_payment->loadGet($ps->getId())->hideBricks();
        }
        $psHide = Am_Controller::getJson($psHide);
        if (count($paysystems) != 1) {
            $attrs = array('id' => 'paysys_id');
            $el0 = $el = $form->addAdvRadio('paysys_id', array('id' => 'paysys_id'), array('intrinsic_validation' => false));
            $first = 0;
            foreach ($psOptions as $k => $v) {
                $attrs = array();
                if (!$first++ && Am_Di::getInstance()->request->isGet()) {
                    $attrs['checked'] = 'checked';
                }
                $el->addOption($v, $k, $attrs);
            }
        } else {
            /** @todo display html here */
            reset($psOptions);
            $el = $form->addStatic('_paysys_id', array('id' => 'paysys_id'))->setContent(current($psOptions));
            $el->toggleFrozen(true);
            $el0 = $form->addHidden('paysys_id')->setValue(key($psOptions));
        }
        $el0->addRule('required', $this->___('Please choose a payment system'), null, HTML_QuickForm2_Rule::SERVER);
        $el0->addFilter('filterId');
        $el->setLabel($this->___('Payment System'));
        $form->addScript()->setScript(<<<CUT
jQuery(document).ready(function(\$) {
    /// hide payment system selection if:
    //   - there are only free products in the form
    //   - there are selected products, and all of them are free
    \$(":checkbox[name^='product_id'], select[name^='product_id'], :radio[name^='product_id'], input[type=hidden][name^='product_id']").change(function(){
        var count_free = 0, count_paid = 0, total_count_free = 0, total_count_paid = 0;
        \$(":checkbox[name^='product_id']:checked, select[name^='product_id'] option:selected, :radio[name^='product_id']:checked, input[type=hidden][name^='product_id']").each(function(){
            if ((\$(this).data('first_price')>0) || (\$(this).data('second_price')>0))
                count_paid++;
            else
                count_free++;
        });

        \$(":checkbox[name^='product_id'], select[name^='product_id'] option, :radio[name^='product_id'], input[type=hidden][name^='product_id']").each(function(){
            if ((\$(this).data('first_price')>0) || (\$(this).data('second_price')>0))
                total_count_paid++;
            else
                total_count_free++;
        });
        if ( ((count_free && !count_paid) || (!total_count_paid && total_count_free)) && (total_count_paid + total_count_free)>0)
        { // hide select
            \$("#row-paysys_id").hide().after("<input type='hidden' name='paysys_id' value='free' class='hidden-paysys_id' />");
        } else { // show select
            \$("#row-paysys_id").show();
            \$(".hidden-paysys_id").remove();
        }
    }).change();
    window.psHiddenBricks = [];
    \$("input[name='paysys_id']").change(function(){
        if (!this.checked) return;
        var val = \$(this).val();
        var hideBricks = {$psHide};
        \$.each(window.psHiddenBricks, function(k,v){ \$('#row-'+v+'-0').show(); });
        window.psHiddenBricks = hideBricks[val];
        if (window.psHiddenBricks)
        {
            \$.each(window.psHiddenBricks, function(k,v){ \$('#row-'+v+'-0').hide(); });
        }
    }).change();
});
CUT
);
    }
Exemple #3
0
    public function addPayoutInputs(HTML_QuickForm2_Container $fieldSet)
    {
        $el = $fieldSet->addSelect('aff_payout_type')->setLabel(___('Affiliate Payout Type'))->loadOptions(array_merge(array('' => ___('Not Selected'))));
        foreach (Am_Aff_PayoutMethod::getEnabled() as $method) {
            $el->addOption($method->getTitle(), $method->getId());
        }
        $fieldSet->addScript()->setScript('
/**** show only options for selected payout method */
$(function(){
$("#' . $el->getId() . '").change(function()
{
    var selected = $("#' . $el->getId() . '").val();
    $("option", $(this)).each(function(){
        var option = $(this).val();
        if(option == selected){
            $("input[name^=aff_"+option+"_]").closest(".row").show();
        }else{
            $("input[name^=aff_"+option+"_]").closest(".row").hide();
        }
    });
}).change();
});
/**** end of payout method options */
');
        foreach ($this->getDi()->userTable->customFields()->getAll() as $f) {
            if (strpos($f->name, 'aff_') === 0) {
                $f->addToQf2($fieldSet);
            }
        }
    }