Having problems with the following script I am trying to install on my oscommerce shop. I keep getting the following error:

Parse error: syntax error, unexpected ')' in /home/n/a/nature/public_html/includes/modules/payment/patrasys.php on line 100

below is the code. I cant find the error. Please advise

<?php
/*
$Id: PATRASYS.php,v 1.00 2004/10/22 michael vernersen Exp $

Copyright (c) 2004 RockOn

Released under the GNU General Public License
*/

define("FILENAME_CHECKOUT_ACCEPT_PATRASYS","patrasys_return.php");




class PATRASYS {
var $code, $title, $description, $enabled;



// class constructor
function patrasys() {
$this->code = 'patrasys';
$this->title = MODULE_PAYMENT_PATRASYS_TEXT_TITLE;
$this->description = MODULE_PAYMENT_PATRASYS_TEXT_DESCRIPTION;
$this->enabled = ((MODULE_PAYMENT_PATRASYS_STATUS == 'True') ? true : false);
$this->sort_order = MODULE_PAYMENT_PATRASYS_SORT_ORDER;
$this->email_footer = MODULE_PAYMENT_PATRASYS_TEXT_EMAIL_FOOTER;
$this->text_success = MODULE_PAYMENT_PATRASYS_TEXT_SUCCESS;

if ((int)MODULE_PAYMENT_PATRASYS_ORDER_STATUS_ID > 0) {
$this->order_status = MODULE_PAYMENT_PATRASYS_ORDER_STATUS_ID;
}

if (is_object($order)) $this->update_status();
$this->form_action_url ='https://patrasys-retail.com/11/patraserve_ALL.dq';
}


// class methods
function update_status() {
global $order;

if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PATRASYS_ZONE > 0) ) {
$check_flag = false;
$check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_PATRASYS_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");
while ($check = tep_db_fetch_array($check_query)) {
if ($check['zone_id'] < 1) {
$check_flag = true;
break;
} elseif ($check['zone_id'] == $order->billing['zone_id']) {
$check_flag = true;
break;
}
}

if ($check_flag == false) {
$this->enabled = false;
}
}
}

function javascript_validation() {

return false;
}

function selection() {
return array('id' => $this->code,
'module' => $this->title);
}

function pre_confirmation_check() {
return false;
}

function confirmation() {
return array('title' => MODULE_PAYMENT_PATRASYS_TEXT_DESCRIPTION);
}

function process_button() {
global $order,$currencies, $currency;
$shopip=$_SERVER[SERVER_ADDR];

$invno = rand();

$process_button_string = '<tr>';
if (MODULE_PAYMENT_PATRASYS_GATEWAY == 'PATRASYS') {

$process_button_string .= '<td class="main"><b></b></td>';
$process_button_string .= '<td class="main"></td>';
$process_button_string .= '</tr><tr>';
$process_button_string .= '<td></td>';

$process_button_string .= tep_draw_hidden_field('pat_userid', MODULE_PAYMENT_PATRASYS_PATUSERID);
$process_button_string .= tep_draw_hidden_field('amount',number_format($order->info['total'], 2));

$products=$order->products;
for($i=0, $n=sizeof($products); $i<$n; $i++)
{
if(){
$productname.=$order->products[$i]['name'];
}else{
$productname.=','.$order->products[$i]['name'];
}

}

$process_button_string .= tep_draw_hidden_field('identifier',$productname);
$process_button_string .= tep_draw_hidden_field('returnlink',tep_href_link(FILENAME_CHECKOUT_ACCEPT_PATRASYS, '', 'SSL'));
$process_button_string .= tep_draw_hidden_field('currency',$currency);
$process_button_string .= tep_draw_hidden_field('custom','Order no.'.$invno);


$process_button_string .= tep_draw_hidden_field('billing_names',$order->billing['firstname'].' '.$order->billing['lastname'] );
$process_button_string .= tep_draw_hidden_field('billing_address',$order->billing['street_address']);
$process_button_string .= tep_draw_hidden_field('billing_postcode', $order->billing['postcode']);
$process_button_string .= tep_draw_hidden_field('cardholder_email', $order->customer['email_address']);
$process_button_string .= tep_draw_hidden_field('billing_tel', $order->customer['telephone']);
$process_button_string .= tep_draw_hidden_field('custom', $shopip);
$process_button_string .= tep_draw_hidden_field('billing_city', $order->billing['city']);


$process_button_string .= '</tr><tr><td></td>';

} else
$process_button_string .= '</tr>';
return $process_button_string;
}

function before_process() {
return false;
}

function after_process() {
global $insert_id;
//$eorderid=$_SESSION['eorderid'];
//tep_db_query("insert into eccorder(orderid,eccorderid)values('".$insert_id."','".$eorderid."')");
return false;
}

function get_error() {
if (MODULE_PAYMENT_PATRASYS_GATEWAY == 'PATRASYS') {
switch ($reason) {
default: return ERROR_UNKNOWN;
}
}
}

function check() {
if (!isset($this->_check)) {
$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_PATRASYS_STATUS'");
$this->_check = tep_db_num_rows($check_query);
}
return $this->_check;
}

function install() {
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('USER ID', 'MODULE_PAYMENT_PATRASYS_PATUSERID', 'demo8', 'This is the User ID allocated to your Patrasys Account. You can find this in your welcome email.
', '6', '5', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Patrasys Credit Card Module', 'MODULE_PAYMENT_PATRASYS_STATUS', 'True', 'Do you want to accept Credit Card payments?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now());");




tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_PATRASYS_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '4', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Payment Gateway', 'MODULE_PAYMENT_PATRASYS_GATEWAY', 'PATRASYS', 'Select the Payment-Gateway', '6', '6', 'tep_cfg_select_option(array(\'PATRASYS\'), ', now())");



tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_PATRASYS_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_PATRASYS_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");


}

function remove() {
tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
}

function keys() {
return array('MODULE_PAYMENT_PATRASYS_PATUSERID','MODULE_PAYMENT_PATRASYS_STATUS','MODULE_PAYMENT_PATRASYS_ZONE','MODULE_PAYMENT_PATRASYS_GATEWAY', 'MODULE_PAYMENT_PATRASYS_SORT_ORDER', 'MODULE_PAYMENT_PATRASYS_ORDER_STATUS_ID');
}
}
?>

    Welcome to PHPBuilder. In the future, please make use of this forum's [noparse]

    ...

    [/noparse] bbcode tags around your PHP code samples. I've added them to your post, and as you can see it greatly aids readability.

    Anyway, the problem is that your if condition is empty on that line.

    if(){
    

    You need some valid expression within those empty parentheses.

      Thanks for the welcome NogDog, glad to be here.

      I don't quite understand how the problem is that my condition is empty on that line. I know you said it needs some valid expression within those empty parenthes but what does that quite mean?

        An if() statement is intended to execute a block of code if some condition is true. As such, you need to define that condition, otherwise there is no sense in having any if() statement.

        In "human" language terms, the following make sense (at least semantically):
        [indent]- If I am hungry, I'll eat something.
        - If the alarm clock goes off, I get up.
        [/indent]

        But the following make no sense:
        [indent]- If, I'll eat something.
        -If, I get up.
        [/indent]

        Likewise you cannot just have your PHP code say:

        if(){
           $productname.=$order->products[$i]['name'];
        }
        

        I don't know what logic you want there, but assuming you want an if() there at all, it would need to be something like:

        if($something == "something else") {
           $productname.=$order->products[$i]['name'];
        }
        
        // . . . or . . .
        
        if(thisFunctionReturnsTrue()) {
           $productname.=$order->products[$i]['name'];
        }
        

          I think I understand when you are saying it doesn't make sense, whats getting me those is that I don't quite know what to put there.

            go download the script again, there are at least a couple of missing lines.

              It looks like it's supposed to be a check for first pass through the loop

              for($i=0, $n=sizeof($products); $i<$n; $i++) {
              	if($i == 0){
              		$productname.=$order->products[$i]['name'];
              	}else{
              		$productname.=','.$order->products[$i]['name'];
              	}
              }
              

                good guess johanafm, but actully it is:

                $productname="";
                   $products=$order->products;
                   for($i=0, $n=sizeof($products); $i<$n; $i++)
                   {
                    if($productname==""){
                     $productname.=$order->products[$i]['name'];
                    }else{
                         $productname.=','.$order->products[$i]['name'];
                    }
                
                   }
                
                
                  dagon;10932128 wrote:

                  good guess johanafm, but actully it is:

                  $productname="";
                     $products=$order->products;
                     for($i=0, $n=sizeof($products); $i<$n; $i++)
                     {
                      if($productname==""){
                       $productname.=$order->products[$i]['name'];
                      }else{
                           $productname.=','.$order->products[$i]['name'];
                      }
                  
                     }
                  
                  

                  So if I copy & paste that it should work?

                    Got it working.

                    Thanks to everyone who contributed and helped out and taking time to post.

                    Appreciate it.

                      copy and paste the whole source that i linked to, if you lost those lines, you could of lost others.

                        Write a Reply...