par
Damien PCSAT » 07 nov. 2016, 17:44
Bonjour, j'ai un site Wordpress chez Nerim (mutualisé). J'ai lu que les parse error semblent souvent du à une version obsolète de PHP. A ce jour j'ai cette version : 5.0.51a-24+lenny5-log.
Suite à une mise à jour d'un module de Wordpress, mon site est KO et affiche le message suivant
Parse error: syntax error, unexpected '[' in /public_html/wordpress/wp-content/plugins/affilinet-performance-module/classes/Widget.php on line 65
J'ai bien compris le souci, mais je n'ai pas trouvé quoi ajouter (ou supprimer) sur cette ligne 65.
<?php
class Affilinet_Widget extends \WP_Widget
{
public function __construct()
{
$widget_ops = array(
'classname' => __NAMESPACE__ . '\\' . __CLASS__,
'description' => 'affilinet Performance Ads'
);
parent::__construct('Affilinet_Performance_Ad_Widget', 'Affilinet Performance Ads', $widget_ops);
}
/**
* Display the widget edit form
*
* @param array $instance
*
* @return void
*/
public function form($instance)
{
$defaults = array(
'size' => '728x90'
);
$instance = wp_parse_args((array)$instance, $defaults);
$size = $instance['size'];
?>
<p>
<label for="<?php echo $this->get_field_id('size'); ?>"><?php _e('Banner size', 'affilinet'); ?></label>
<select class="widefat" id="<?php echo $this->get_field_id('size'); ?>"
name="<?php echo $this->get_field_name('size'); ?>">
<?php
foreach ($this->allowedSizes() as $optGroup) {
?>
<optgroup label="<?php echo $optGroup['name'] ?>">
<?php
foreach ($optGroup['values'] as $allowed_size) {
?>
<option
value="<?php echo $allowed_size['value']; ?>"
<?php selected($size, $allowed_size['value']); ?>><?php echo $allowed_size['name']; ?></option>
<?php
}
?>
</optgroup>
<?php
}
?>
</select>
</p>
<?php
}
public static function getAllowedSizesJsonForTinyMce()
{
$sizes = self::allowedSizes();
$return = [];
foreach ($sizes as $category) {
$return[] = ['text' => $category['name'], 'disabled' => true];
foreach ($category['values'] as $entry) {
$return[] = ['text' => $entry['name'], 'value' => $entry['value'], 'disabled' => false];
}
}
return json_encode($return, JSON_PRETTY_PRINT);
}
/**
* Return a list of allowed banner sizes
* @return array
*/
private static function allowedSizes()
{
$allowedPlatFormSizes = [
// DE
1 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)']
]
],
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]
],
// AT
7 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)']
]
],
/**
* mobile sizes not yet available in AT
**/
/*
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]*/
],
// CH
6 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)']
]
],
/**
* mobile sizes not yet available in CH
**/
/*
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]
*/
],
// UK
2 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)']
]
],
/**
* mobile sizes not yet available in UK
**/
/*
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]*/
],
// FR
3 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)'],
['value' => '300x600', 'name' => 'Half Page (300px x 600px)']
]
],
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]
],
// NL - currently not implemented
4 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)'],
['value' => '300x600', 'name' => 'Half Page (300px x 600px)']
]
],
/**
* mobile sizes not yet available in NL
**/
/*
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]
*/
]
];
return $allowedPlatFormSizes[(int)get_option('affilinet_platform', 1)];
}
/**
* Handle widget update process
*
* @param array $new_instance
* @param array $old_instance
*
* @return array
*/
public function update($new_instance, $old_instance)
{
$instance = $old_instance;
$instance['size'] = $new_instance['size'];
return $instance;
}
/**
* Display the widget
*
* @param array $args
* @param array $instance
*/
public function widget($args, $instance)
{
extract($args);
/** @var String $before_widget */
echo $before_widget;
echo Affilinet_PerformanceAds::getAdCode($instance['size']);
/** @var String $after_widget */
echo $after_widget;
}
}
Bien entendu, j'ai contacté le support officiel (Nerim et en l'occurrence Affilinet) mais si je peux avoir une piste avant la réponse officielle, je suis preneur.

Merci
Bonjour, j'ai un site Wordpress chez Nerim (mutualisé). J'ai lu que les parse error semblent souvent du à une version obsolète de PHP. A ce jour j'ai cette version : 5.0.51a-24+lenny5-log.
Suite à une mise à jour d'un module de Wordpress, mon site est KO et affiche le message suivant
[quote]Parse error: syntax error, unexpected '[' in /public_html/wordpress/wp-content/plugins/affilinet-performance-module/classes/Widget.php on line 65[/quote]
J'ai bien compris le souci, mais je n'ai pas trouvé quoi ajouter (ou supprimer) sur cette ligne 65.
[php]<?php
class Affilinet_Widget extends \WP_Widget
{
public function __construct()
{
$widget_ops = array(
'classname' => __NAMESPACE__ . '\\' . __CLASS__,
'description' => 'affilinet Performance Ads'
);
parent::__construct('Affilinet_Performance_Ad_Widget', 'Affilinet Performance Ads', $widget_ops);
}
/**
* Display the widget edit form
*
* @param array $instance
*
* @return void
*/
public function form($instance)
{
$defaults = array(
'size' => '728x90'
);
$instance = wp_parse_args((array)$instance, $defaults);
$size = $instance['size'];
?>
<p>
<label for="<?php echo $this->get_field_id('size'); ?>"><?php _e('Banner size', 'affilinet'); ?></label>
<select class="widefat" id="<?php echo $this->get_field_id('size'); ?>"
name="<?php echo $this->get_field_name('size'); ?>">
<?php
foreach ($this->allowedSizes() as $optGroup) {
?>
<optgroup label="<?php echo $optGroup['name'] ?>">
<?php
foreach ($optGroup['values'] as $allowed_size) {
?>
<option
value="<?php echo $allowed_size['value']; ?>"
<?php selected($size, $allowed_size['value']); ?>><?php echo $allowed_size['name']; ?></option>
<?php
}
?>
</optgroup>
<?php
}
?>
</select>
</p>
<?php
}
public static function getAllowedSizesJsonForTinyMce()
{
$sizes = self::allowedSizes();
$return = [];
foreach ($sizes as $category) {
$return[] = ['text' => $category['name'], 'disabled' => true];
foreach ($category['values'] as $entry) {
$return[] = ['text' => $entry['name'], 'value' => $entry['value'], 'disabled' => false];
}
}
return json_encode($return, JSON_PRETTY_PRINT);
}
/**
* Return a list of allowed banner sizes
* @return array
*/
private static function allowedSizes()
{
$allowedPlatFormSizes = [
// DE
1 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)']
]
],
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]
],
// AT
7 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)']
]
],
/**
* mobile sizes not yet available in AT
**/
/*
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]*/
],
// CH
6 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)']
]
],
/**
* mobile sizes not yet available in CH
**/
/*
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]
*/
],
// UK
2 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)']
]
],
/**
* mobile sizes not yet available in UK
**/
/*
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]*/
],
// FR
3 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)'],
['value' => '300x600', 'name' => 'Half Page (300px x 600px)']
]
],
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]
],
// NL - currently not implemented
4 => [
['name' => '----- DESKTOP -----', 'values' =>
[
['value' => '728x90', 'name' => 'Super Banner (728px x 90px)'],
['value' => '300x250', 'name' => 'Medium Rectangle (300px x 250px)'],
['value' => '250x250', 'name' => 'Square Button (250px x 250px)'],
['value' => '468x60', 'name' => 'Fullsize Banner (468px x 60px)'],
['value' => '160x600', 'name' => 'Wide Scyscraper (160px x 600px)'],
['value' => '120x600', 'name' => 'Scyscraper (120px x 600px)'],
['value' => '300x600', 'name' => 'Half Page (300px x 600px)']
]
],
/**
* mobile sizes not yet available in NL
**/
/*
['name' => '----- MOBILE -----', 'values' =>
[
['value' => '168x28', 'name' => 'Feature Phone Medium Banner (168px x 28px)'],
['value' => '216x36', 'name' => 'Feature Phone Large Banner (216px x 36px)'],
['value' => '300x50', 'name' => 'Smartphone Banner (300px x 50px)'],
['value' => '320x50', 'name' => 'Smartphone Wide Banner (320px x 50px)']
]
]
*/
]
];
return $allowedPlatFormSizes[(int)get_option('affilinet_platform', 1)];
}
/**
* Handle widget update process
*
* @param array $new_instance
* @param array $old_instance
*
* @return array
*/
public function update($new_instance, $old_instance)
{
$instance = $old_instance;
$instance['size'] = $new_instance['size'];
return $instance;
}
/**
* Display the widget
*
* @param array $args
* @param array $instance
*/
public function widget($args, $instance)
{
extract($args);
/** @var String $before_widget */
echo $before_widget;
echo Affilinet_PerformanceAds::getAdCode($instance['size']);
/** @var String $after_widget */
echo $after_widget;
}
}[/php]
Bien entendu, j'ai contacté le support officiel (Nerim et en l'occurrence Affilinet) mais si je peux avoir une piste avant la réponse officielle, je suis preneur. ;)
Merci