function coder_review_uc3x_reviews in Ubercart 7.3
Warns about namespace and function name changes.
File
- uc_store/
includes/ coder_review_uc3x.inc, line 11 - Implements Coder Upgrade functionality for Ubercart 6.x -> 7.x upgrades.
Code
function coder_review_uc3x_reviews() {
$rules = array(
// Ubercart hook names were namespaced.
array(
'#type' => 'regex',
'#value' => '(?<!uc)_(add_to_cart|add_to_cart_data|calculate_tax|cart_display|(?<!update_)cart_item|cart_pane|checkout_pane|download_authorize|file_action|file_transfer_alter|line_item|line_item_alter|line_item_data_alter|order|order_actions|order_pane|order_product|order_product_alter|order_state|payment_method|payment_gagteway|product_class|product_description|product_description_alter|product_feature|product_types|shipment|shipping_type|shipping_method|store_status|update_cart_item)\\s*\\(',
'#source' => 'all',
'#never' => 'function theme',
'#warning_callback' => '_coder_review_uc3x_hook_warning',
),
// Private functions were moved into uc_ namespace.
array(
'#type' => 'regex',
// (?<![(|]) prevents this very line from generating a warning.
'#value' => '\\b(?<![(|])(_2checkout_post_url|_call_order_pane_byref|_checkout_pane_(data|list)|_country_import_(include|list)|_get_order_screen_titles|_line_item_(data|list)|_order_pane_(data|list)|_parse_cs_avs_code|_parse_cs_cvv_code|_parse_cs_reason_code|_payment_gateway_(data|list)|_payment_method_(data|list)|_save_cc_data_to_order|_store_footer_options|summarize_(checkbox|child_form_pages|element|form|null)|_total_sort|_valid_card_(expiration|issue|number|start)|_valid_cvv)\\b',
'#source' => 'all',
'#warning_callback' => '_coder_review_uc3x_function_warning',
),
// Theme functions were namespaced.
array(
'#type' => 'regex',
'#value' => 'theme\\([\'"](address_pane|cart_review_table|summary_overview)[\'"]',
'#warning_callback' => '_coder_review_uc3x_function_warning',
),
// TAPIr table ids were namespaced.
array(
'#type' => 'regex',
'#value' => '(?<!uc_)op_((admin|order)_comments|products)_(customer|edit|view)_table',
'#source' => 'allphp',
'#warning_callback' => '_coder_review_uc3x_function_warning',
),
// uc_payment_process() is now uc_payment_process_payment().
array(
'#type' => 'regex',
'#value' => '\\buc_payment_process\\s*\\(',
'#warning' => 'uc_payment_process() is now uc_payment_process_payment() because of hook_process().',
),
// uc_add_js() was removed, use drupal_add_js() instead.
array(
'#type' => 'grep',
'#value' => 'uc_add_js(',
'#warning' => 'uc_add_js() has been removed. Use drupal_add_js() instead.',
),
// First argument to uc_product_get_models() and hook_uc_product_models()
// changed from $node to $nid.
array(
'#type' => 'regex',
'#value' => '(\\buc_product_get_models|\\B_uc_product_models)\\s*\\(',
'#warning' => 'First argument to uc_product_get_models() and hook_uc_product_models() has changed - it is now an integer node id instead of a node object.',
),
// Checkout and order pane callback arguments changed.
array(
'#type' => 'regex',
'#value' => 'pane.*\\(\\$op,\\s*&?\\$(arg1|order)(,\\s*&?\\$arg2)?',
'#never' => '\\(\\$op,\\s*&?\\$order,\\s*&?\\$form\\s*=\\s*NULL,\\s*&\\$form_state\\s*=\\s*NULL\\)',
'#warning' => 'Checkout and order pane callbacks take the arguments ($op, $order, &$form = NULL, &$form_state = NULL).',
),
// uc_price() removed.
array(
'#type' => 'grep',
'#value' => 'uc_price(',
'#warning' => 'The function uc_price() was removed.',
),
// hook_uc_price_handler() removed.
array(
'#type' => 'regex',
'#value' => '\\B_uc_price_handler\\(',
'#warning' => 'hook_uc_price_handler() was removed.',
'#severity' => 'normal',
),
// theme_uc_price() has only one argument.
array(
'#type' => 'regex',
'#value' => 'theme\\s*\\(\\s*[\'"]uc_price[\'"]\\s*,[^,]+,',
'#warning' => 'theme_uc_price() takes only one argument: "price", which is a float.',
),
// Specify the allowed arguments to theme_uc_product_price() before it is ported.
array(
'#type' => 'regex',
'#value' => 'theme\\s*\\(\\s*[\'"]uc_product_price[\'"]\\s*,[^,]+,',
'#not' => '[\'"]#price',
'#warning' => 'theme_uc_product_price() takes a render element with a "#value" and optional "#title" and "#attributes".',
),
// uc_order_load_line_items() has only one argument.
array(
'#type' => 'regex',
'#value' => 'uc_order_load_line_items\\([^,]+,',
'#warning' => 'uc_order_load_line_items() takes only one argument, the order object. Both stored and calculated line items are returned at once.',
),
);
$review = array(
'#title' => t('Converting Ubercart 2.x modules to 3.x'),
'#rules' => $rules,
'#severity' => 'critical',
);
return array(
'ubercart3x' => $review,
);
}