За последние 24 часа нас посетили 15019 программистов и 1670 роботов. Сейчас ищут 1347 программистов ...

Как исправить Parse error: syntax error, unexpected '['

Тема в разделе "PHP для новичков", создана пользователем Tanhuxa, 15 фев 2016.

  1. Tanhuxa

    Tanhuxa Новичок

    С нами с:
    15 фев 2016
    Сообщения:
    6
    Симпатии:
    0
    Добрый день!

    Мне очень нужна помощь в исправлении следующей ошибки:
    "Parse error: syntax error, unexpected '[' in mysite/wp-content/plugins/dropbox-folder-share/dropbox-folder-share.php on line 352"

    Речь идет о сайте на Wordpress, ошибка выскочила после обновления плагина, который добавляет папки с файлами Dropbox на страницы сайта.

    Сообщение указывает на ошибку в 3ей строчке вот этой части кода:
    Код (PHP):
    1. if($opcion['imagesPopup'] === '1') {
    2.    $partUrl = explode("?",$urlFilename);
    3.    $fileInfo = explode("/", wp_check_filetype($partUrl[0])['type']); 
    Весь файл вот здесь:
    Код (PHP):
    1. <?php
    2.  
    3. /**
    4.  * Plugin Name: DropBox Folder Share
    5.  * Plugin URI: http://www.hynotech.com/wp-plugins/dropbox-folder-share/
    6.  * Description: Plugin que permitira incluir carpetas de DropBox en nuestras entradas de blog.
    7.  * Version: 1.5.1
    8.  * Author: Antonio Salas (Hyno)
    9.  * Author URI: http://www.hynotech.com/
    10.  * Twitter: _AntonySalas_
    11.  * GitHub URI: https://github.com/HynoTech/dropbox-folder-share
    12.  * Text Domain: dropbox-folder-share
    13.  * License: GPL-2.0+
    14.  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
    15.  */
    16. if (!\class_exists("DropboxFolderSharePrincipal")) {
    17.  
    18.     Class DropboxFolderSharePrincipal
    19.     {
    20.  
    21.         const _VERSION_GENERAL_ = "1.5.1";
    22.         const _VERSION_JS_ = "1.5";
    23.         const _VERSION_CSS_ = "1.5";
    24.         const _VERSION_ADMIN_ = "2.0.1";
    25.         const _VERSION_CSS_DROPBOX_ = "2.0";
    26.  
    27.         const _PARENT_PAGE_ = "options-general.php";
    28.         const _OPT_SEETINGS_ = "dropbox-folder-share-options";
    29.         const _PERMISOS_REQUERIDOS_ = 'manage_options';
    30.  
    31.         public static $basename; //Indica el directorio hasta el archivo actual "dropbox-folder-share/DropboxFolderShare.php"
    32.         public static $nombre; //Nombre de la carpeta "dropbox-folder-share"
    33.         public static $url; //URL completa dela carpeta actual "http://localhost:8080/wp/wp-content/plugins/dropbox-folder-share/"
    34.         public static $url_path; //URL completa dela carpeta actual "http://localhost:8080/wp/wp-content/plugins/dropbox-folder-share/"
    35.         var $formSections = array();
    36.         var $settings = array(); //Almacena los opciones actuales del Plugin
    37.         var $opcDefault = array(
    38.             "UseAjax" => '1',
    39.             "SeeAs" => "lista",
    40.             "showIcons" => '1',
    41.             "showSize" => '1',
    42.             "showChange" => '1',
    43.             "allowDownload" => '1',
    44.             "allowDownloadFolder" => '1',
    45.             "imagesPopup" => '1',
    46.             "link2Folder" => '1',
    47.             "tipoConexion" => 'fopen'
    48.         );
    49.  
    50.         public function __construct()
    51.         {
    52.             include_once 'class/admin.class.php';
    53.             $this->asignar_variables_estaticas();
    54.             load_plugin_textdomain(self::$nombre, false, self::$nombre . '/languages/');
    55.  
    56.             $objDFS_Admin = new DFS_Admin;
    57.             add_action('admin_menu', array(&$objDFS_Admin, 'pagAdmin'));
    58.             add_action('admin_init', array(&$objDFS_Admin, 'plugin_admin_init'));
    59.  
    60.             add_filter('plugin_action_links_' . self::$basename, array(&$this, 'add_settings_link'), 10, 2);
    61.  
    62.             $this->actualizarOpcAntiguas();
    63.         }
    64.  
    65.         public function asignar_variables_estaticas()
    66.         {
    67.             self::$basename = plugin_basename(__FILE__);
    68.             self::$nombre = dirname(self::$basename);
    69.             self::$url = plugin_dir_url(__FILE__);
    70.             self::$url_path = plugin_dir_path(__FILE__);
    71.         }
    72.  
    73.         function actualizarOpcAntiguas()
    74.         {
    75.             if (get_option('db_fs_hyno_show')) {
    76.                 $estado = (get_option('db_fs_hyno_show') != 'lista') ? 'lista' : 'iconos';
    77.                 $showIcons = (get_option('db_fs_hyno_icons') == '1') ? '1' : '';
    78.                 $showSize = (get_option('db_fs_hyno_size') == '1') ? '1' : '';
    79.                 $showChange = (get_option('db_fs_hyno_changed') == '1') ? '1' : '';
    80.                 $tipoConexion = get_option('db_fs_hyno_conexion');
    81.  
    82.                 $this->opcDefault = array(
    83.                     "SeeAs" => $estado,
    84.                     "showIcons" => $showIcons,
    85.                     "showSize" => $showSize,
    86.                     "showChange" => $showChange,
    87.                     "allowDownload" => '',
    88.                     "link2Folder" => '1',
    89.                     "tipoConexion" => $tipoConexion
    90.                 );
    91.  
    92.                 delete_option("db_fs_hyno_show");
    93.                 delete_option("db_fs_hyno_icons");
    94.                 delete_option("db_fs_hyno_size");
    95.                 delete_option("db_fs_hyno_changed");
    96.                 delete_option("db_fs_hyno_conexion");
    97.                 delete_option("db_fs_hyno_link");
    98.             }
    99.             if (get_option(self::_OPT_SEETINGS_) == null) {
    100.                 update_option(self::_OPT_SEETINGS_, $this->opcDefault);
    101.             }
    102.         }
    103.  
    104.         function ajaxReplaceShortcode($atts){
    105.  
    106.             if (!isset($_POST['dfs_nonce']) || !wp_verify_nonce($_POST['dfs_nonce'],'dfs_nonce'))
    107.                 die(__("Error de seguridad", self::$nombre));
    108.  
    109.             if ( !isset($_POST['link']) || !isset($_POST['ver_como']))
    110.                 die( __("Error de parametros", self::$nombre) );
    111.  
    112.  
    113.  
    114.  
    115.             // set defaults
    116.             $opciones = get_option(self::_OPT_SEETINGS_);
    117.             extract(shortcode_atts(array(
    118.                 'link' => $_POST['link'],
    119.                 'ver_como' => $_POST['ver_como']
    120.             ), $atts));
    121.             //var_dump($atts);
    122.             echo $this->get_folder($link, $ver_como);
    123.             die();
    124.         }
    125.  
    126.         function scriptAjax($link, $ver_como){
    127.             $idContent = "DFS".rand(1,99999);
    128.  
    129.             $regresarScript = "<div id='$idContent'>";
    130.             $regresarScript .= "<div class=\"loader\">Loading...</div>";
    131.             $regresarScript .= "</div>";
    132.             $regresarScript .= "<script>";
    133.             $regresarScript .= "jQuery.post(objDFS.ajax_url,{ action: 'getFolderContent', dfs_nonce: objDFS.dfs_nonce, link: '$link', ver_como: '$ver_como' },function(response){ jQuery('#$idContent').html(response); });";
    134.             $regresarScript .= "</script>";
    135.             return $regresarScript;
    136.         }
    137.  
    138.         function replace_shortcode($atts)
    139.         {
    140.             // set defaults
    141.             $opciones = get_option(self::_OPT_SEETINGS_);
    142.             extract(shortcode_atts(array(
    143.                 'link' => 'https://www.dropbox.com/sh/8ifs95x8qgcaf71/1TCmt_bBy1',
    144.                 'ver_como' => $opciones['SeeAs']
    145.             ), $atts));
    146.             //var_dump($atts);
    147.  
    148.             if ($opciones['UseAjax'] === '1'){
    149.                 return $this->scriptAjax($link, $ver_como);
    150.             }
    151.             else{
    152.                 return $this->get_folder($link, $ver_como);
    153.             }
    154.  
    155.             //
    156.  
    157.         }
    158.  
    159.         function fetch_url($url)
    160.         {
    161.             $opcion = get_option(self::_OPT_SEETINGS_);
    162.             switch ($opcion['tipoConexion']) {
    163.                 case "curl":
    164.                     if (function_exists("curl_init")) {
    165.                         if (!class_exists("Curl")) {
    166.                             include "class/Curl.class.php";
    167.                         }
    168.                         $txtLocale = str_replace("_", "-", get_locale());
    169.                         $curl = new Curl();
    170.                         $curl->setopt(CURLOPT_RETURNTRANSFER, TRUE);
    171.                         $curl->setopt(CURLOPT_SSL_VERIFYPEER, FALSE);
    172.                         $curl->setHeader('Accept-Language', $txtLocale);
    173.                         $curl->get($url);
    174.  
    175.                         return $curl->response;
    176.                     } else {
    177.                         return "NADA";
    178.                     }
    179.                     break;
    180.                 case "fopen": // falls through
    181.                 default:
    182.                     return ($fp = fopen($url, 'r')) ? stream_get_contents($fp) : false;
    183.                     break;
    184.             }
    185.  
    186.             return false;
    187.         }
    188.  
    189.         function get_folder($link, $ver_como = '')
    190.         {
    191.             $opcion = get_option(self::_OPT_SEETINGS_);
    192.  
    193.             $url_data = $link;
    194.             $content = $this->fetch_url($url_data);
    195.  
    196.             $ver_como = ($ver_como == '') ? $opcion['SeeAs'] : $ver_como;
    197.  
    198.             if ($content != "") {
    199.  
    200.                 $dom = new \DOMDocument();
    201.                 libxml_use_internal_errors(true);
    202.                 //$dom->loadHTMLFile($content);
    203.                 //$dom->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'),LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
    204.                 $dom->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'));
    205.                 libxml_use_internal_errors(false);
    206.                 $dom->preserveWhiteSpace = false;
    207.  
    208.  
    209.                 $body = $dom->getElementsByTagName('body');
    210.                 //echo $body->length;
    211.                 //echo "<textarea>".$body->item(0)->ownerDocument->saveHTML()."</textarea>";
    212.  
    213.  
    214.                 if ($body->length > 0) {
    215.  
    216.                     foreach( $dom->getElementsByTagName('meta') as $meta ) {
    217.                         if($meta->getAttribute('property') != "")
    218.                         $metaData[$meta->getAttribute('property')] = $meta->getAttribute('content');
    219.  
    220.                     }
    221.  
    222.                     //var_dump($metaData);
    223.  
    224.  
    225.                     $body_txt = $body->item(0)->ownerDocument->saveHTML();
    226.                     libxml_use_internal_errors(true);
    227.                     $dom->loadHTML(mb_convert_encoding($body_txt, 'HTML-ENTITIES', 'UTF-8'));
    228.                     libxml_use_internal_errors(false);
    229.  
    230.                     $dom->preserveWhiteSpace = false;
    231.                     $titulosDentro = $dom->getElementById('list-view-header');
    232.  
    233.                     if($titulosDentro){
    234.                         //var_dump($titulosDentro);
    235.                         $lista_archivos = $dom->getElementById('list-view-container');
    236.                         $lista_archivos->setAttribute('style', '');
    237.  
    238.                         $detalleURL = parse_url($link);
    239.  
    240.                         $arrayPath = explode("/",$detalleURL['path']);
    241.                         $codeRel = end($arrayPath);
    242.  
    243.  
    244.  
    245.                         $txtCarpeta ="";
    246.                         if ($opcion['link2Folder'] === '1') {
    247.  
    248.                             $txtZip = "";
    249.                             if ($opcion['allowDownloadFolder'] === '1') {
    250.  
    251.                                 //$detalleURL = parse_url($link);
    252.                                 //var_dump($detalleURL);
    253.                                 //parte opcional para escribir parametros
    254.                                 //parse_str($detalleURL['query'], $query_params);
    255.  
    256.  
    257.                                 $query_params['dl'] = 1;
    258.                                 $detalleURL['query'] = http_build_query($query_params);
    259.  
    260.                                 $newUrl = http_build_url($link,
    261.                                     $detalleURL,
    262.                                     HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT
    263.                                 );
    264.                                 //$newUrl = http_build_url($link, array('query'=>'asd=125'), HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT);
    265.  
    266.  
    267.                                 //var_dump($newUrl);
    268.  
    269.                                 /*
    270.                                 $query_str = parse_url($link, PHP_URL_QUERY);
    271.                                 var_dump($query_str);
    272.                                 parse_str($detalleURL['query'], $query_params);
    273.                                 var_dump($query_params);
    274.  
    275.                                 $query_params['dl'] = 1;
    276.  
    277.                                 echo "<h2>".http_build_query($query_params)."</h2>";
    278.  
    279.                                 */
    280.  
    281.                                 $lnkDescarga = $newUrl;
    282.  
    283.                                 $txtZip = '<a href="' . $lnkDescarga . '" target="_blank">';
    284.                                 $txtZip .= '<img style="float: right;" src="'. self::$url .'/img/zip.png">';
    285.                                 $txtZip .= '</a>';
    286.                             }
    287.  
    288.                             $txtCarpeta .= '<a href="' . $link . '" target="_blank">';
    289.                             $txtCarpeta .= '<div id="DropboxIcon">://'.$metaData["og:title"].'<img src="'. self::$url .'/img/ico-external-link.png"></div>';
    290.                             $txtCarpeta .= '</a>';
    291.                             $txtCarpeta .= $txtZip;
    292.                         } else {
    293.                             $txtCarpeta .= '<div id="DropboxIcon">://'.$metaData["og:title"].'</div>';
    294.                         }
    295.  
    296.  
    297.  
    298.                         $lista_archivos->removeChild($titulosDentro);
    299.                         //$parteEsperada = $lista_archivos->ownerDocument->saveHTML();
    300.                         //echo '<textarea>'.$parteEsperada."</textarea>";
    301.  
    302.                         $txtContenedor[0] = '<div id="Hyno_ContenFolder">';
    303.                         $txtContenedor[0] .= '  <div id="Hyno_Header">';
    304.                         $txtContenedor[0] .= '      '.$txtCarpeta;
    305.                         $txtContenedor[0] .= '  </div>';
    306.                         if ($ver_como == 'lista'){
    307.                             $txtContenedor[0] .= '    <div class="list-view-cols" id="list-view-header">';
    308.                             $txtContenedor[0] .= '        <div class="filename-col">Nombre</div>';
    309.                             $txtContenedor[0] .= '        <div class="filesize-col">Tamaño</div>';
    310.                             $txtContenedor[0] .= '        <div class="modified-col">Modificado</div>';
    311.                             $txtContenedor[0] .= '    </div>';
    312.                         }
    313.  
    314.                         $txtContenedor[0] .= '';
    315.                         $txtContenedor[1] = '</div>';
    316.  
    317.                         //$lista_archivos->childNodes->item(0)->C14N();
    318.                         $txtIconosDt = '';
    319.  
    320.                         $olFiles = ($ver_como != 'lista')?'':'<ol class="browse-files gallery-list-view">';
    321.                         foreach($lista_archivos->childNodes->item(0)->childNodes as $childNode){
    322.                             $filename_col = $childNode->childNodes->item(0);
    323.  
    324.                             $lnkIcono = $filename_col->childNodes->item(0);
    325.                             $lnkFilename = $filename_col->childNodes->item(1)->childNodes->item(0);
    326.  
    327.                             if ($opcion['allowDownload'] != '1') {
    328.                                 $this->DOMRemove($lnkIcono);
    329.                                 $this->DOMRemove($lnkFilename);
    330.  
    331.                                 //$element = $dom->createElement('test', 'This is the root element!');
    332.  
    333.                                 //$childNode->childNodes->item(0)->childNodes->item(0)->childNodes->item(0)->parentNode->replaceChild($lnkIconoContent, $element);
    334.                                 //$lnkIconoContent->parentNode->replaceChild($lnkIconoContent, $filename_col->childNodes->item(1)->childNodes->item(0));
    335.                                 //$childNode->childNodes->item(0)->replaceChild($lnkIconoContent->parentNode,$lnkIconoContent);
    336.                                 //echo "CambiandoNODO";
    337.                             }
    338.                             else{
    339.                                 $downloadParam = array("query" => "dl=1");
    340.                                 $downloadFlags = HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT;
    341.  
    342.                                 $urlArchivo = $lnkIcono->getAttribute("href");
    343.                                 $urlArchivo = http_build_url($urlArchivo, $downloadParam, $downloadFlags);
    344.                                 $lnkIcono->setAttribute("href",$urlArchivo);
    345.  
    346.                                 $urlFilename = $lnkFilename->getAttribute("href");
    347.                                 $urlFilename = http_build_url($urlFilename, $downloadParam, $downloadFlags);
    348.                                 $lnkFilename->setAttribute("href",$urlFilename);
    349.  
    350.                                 if($opcion['imagesPopup'] === '1') {
    351.                                     $partUrl = explode("?",$urlFilename);
    352.                                     $fileInfo = explode("/", wp_check_filetype($partUrl[0])['type']);
    353.  
    354.                                     //echo "<h2>--".wp_mime_type_icon(wp_check_filetype($partUrl[0])['type'])."--</h2>";
    355.                                     //echo "<img src=". wp_mime_type_icon(wp_check_filetype($partUrl[0])['type']) ." />";
    356.                                     //echo "<img src=". wp_mime_type_icon('image/jpeg') ." />";
    357.                                     if($fileInfo[0] == 'image'){
    358.                                         $lnkIcono->setAttribute("class",$lnkIcono->getAttribute("class")." thickbox");
    359.                                         $lnkIcono->setAttribute("rel", $codeRel);
    360.  
    361.                                         $lnkFilename->setAttribute("class",$lnkFilename->getAttribute("class")." thickbox");
    362.                                         $lnkFilename->setAttribute("rel", $codeRel."_txt");
    363.                                     }
    364.                                 }
    365.  
    366.  
    367.                                 //echo "<h1> ___SS_".(http_build_url($urlArchivotmp, array(), $downloadFlags))."_ss__</h1>";
    368.  
    369.                                 //var_dump(wp_check_filetype($partUrl[0]));
    370.                                 //var_dump(wp_check_filetype('https://www.dropbox.com/sh/4x9zxo89s6f4u6v/AAAh2eVWRiiqIkvmibHagrkQa/ajedres001.jpg'));
    371.                                 //echo "<h1> ___SS".substr($urlArchivo, 0, - 1)."1ss__</h1>";
    372.                                 //echo "<h1> ___SS_".($urlFilename)."_ss__</h1>";
    373.                                 //echo "<img src=". $this->get_icon_by_file_extension('mp3') ." />";
    374.  
    375.                             }
    376.  
    377.  
    378.  
    379.                             //$filename_col->childNodes->item(0)->setAttribute("href","http://localhost");
    380.                             //$filename_col->childNodes->item(1)->childNodes->item(0)->setAttribute("href","http://localhost");
    381.                             //echo "<h1> ___SS".$filename_col->childNodes->item(0)->nodeName."ss__</h1>";
    382.                             //setAttribute("href","http://localhost")
    383.  
    384.                             if ($opcion['showIcons'] != '1') {
    385.                                 $childNode->childNodes->item(0)->removeChild($filename_col->childNodes->item(0));
    386.                             }
    387.                             if ($opcion['showSize'] != '1') {
    388.                                 $childNode->childNodes->item(1)->lastChild->nodeValue = " -- ";
    389.                             }
    390.                             if ($opcion['showChange'] != '1') {
    391.                                 $childNode->childNodes->item(2)->lastChild->nodeValue = " -- ";
    392.                             }
    393.  
    394.  
    395.                             if ($ver_como != 'lista') {
    396.                                 //$lnkIcono
    397.                                 //$childNode->childNodes->item(0)->childNodes->item(0)->appendChild($lnkIcono);
    398.                                 $childNode->removeChild($childNode->childNodes->item(1));
    399.                                 $childNode->removeChild($childNode->childNodes->item(1));
    400.                                 $childNode->setAttribute("class",$childNode->getAttribute("class"). " iconos");
    401.  
    402.                                 $filename_col->setAttribute('style','display: table; width: 100%;');
    403.                                 $lnkIcono->setAttribute('style','display: table-row; width: 100%;');
    404.                                 $lnkFilename->parentNode->setAttribute('style','display: table-row; width: 100%;');
    405.                             }
    406.  
    407.                             //echo "<h1>".$childNode->parentNode->nodeName."</h1>";
    408.                             //echo "<h1>".$childNode->lastChild->nodeName."</h1>";
    409.                             //ELIMINAR BR CLEAR
    410.                             //$childNode->removeChild($childNode->lastChild);
    411.  
    412.                             //$childNode->parentNode->removeChild($childNode->lastChild);
    413.                             //$childNode->childNodes->item(0)->removeChild($filename_col->childNodes->item(0));
    414.                             //$filename_col['icon'] = $filename_col->childNodes->item(0);
    415.                             //$filename_col['filename'] = $filename_col->childNodes->item(1);
    416.  
    417.  
    418.                             //echo '<textarea>'.$childNode->ownerDocument->saveHTML($childNode)."</textarea>";
    419.                             //echo '<textarea>'.$childNode->childNodes->item(0)->ownerDocument->saveHTML()."</textarea>";
    420.                             $olFiles .= $childNode->ownerDocument->saveHTML($childNode);
    421.  
    422.  
    423.                         }
    424.  
    425.                         $olFiles .= ($ver_como != 'lista')?'':'</ol>';
    426.  
    427.  
    428.  
    429.  
    430.  
    431.  
    432.                         //$imprimirCaja = $txtContenedor[0].'<div id="list-view-container" class="gallery-view-section">' . $olFiles . "</div>".$txtContenedor[1];
    433.                         //$imprimirCaja = $txtContenedor[0].'<div id="list-view-container" class="gallery-view-section">' . $txtIconosDt . "</div>".$txtContenedor[1];
    434.  
    435.  
    436.                         //echo $imprimirCaja;
    437.  
    438.                         //echo '<textarea>'.$imprimirCaja."</textarea>";
    439.                         if ($ver_como === 'lista') {
    440.                             $retorno = $txtContenedor[0].'<div id="list-view-container" class="gallery-view-section">' . $olFiles . "</div>".$txtContenedor[1];
    441.                         } else {
    442.                             $retorno = $txtContenedor[0].'<div id="list-view-container" class="gallery-view-section">' . $txtIconosDt . "</div>".$txtContenedor[1];
    443.                         }
    444.                         $retorno = $txtContenedor[0].'<div id="list-view-container" class="gallery-view-section">' . $olFiles . "</div>".$txtContenedor[1];
    445.                         //echo '<textarea>'.$retorno."</textarea>";
    446.                     }
    447.                     else {
    448.                         $retorno = '<div id="Hyno_ContenFolder"><div class="nav-header">
    449.                         <div id="icon_folder"></div>
    450.                         <span id="folder-title" class="shmodel-filename header_1"><span style="color: red;font-weight: black;">Error</span>://<span id="ERROR"><span style="color: red;font-style: italic; font-weight: lighter;">' . _e('No se puede leer carpeta compartida', self::$nombre) . '</span></span></span>
    451.                         </div>
    452.                         </div>';
    453.                     }
    454.  
    455.                 }
    456.                 else {
    457.                     $retorno = '<div id="Hyno_ContenFolder"><div class="nav-header">
    458.                         <div id="icon_folder"></div>
    459.                         <span id="folder-title" class="shmodel-filename header_1"><span style="color: red;font-weight: black;">Error</span>://<span id="ERROR"><span style="color: red;font-style: italic; font-weight: lighter;">' . _e('No se puede leer carpeta compartida', self::$nombre) . '</span></span></span>
    460.                         </div>
    461.                         </div>';
    462.                 }
    463.  
    464.                 return $retorno;
    465.             }
    466.             else {
    467.                 return  __("No encontrado", self::$nombre);
    468.             }
    469.         }
    470.  
    471.         function add_settings_link($links, $file)
    472.         {
    473.             if (self::$basename === $file && current_user_can(self::_PERMISOS_REQUERIDOS_)) {
    474.                 $links[] = '[url="' . esc_url($this->plugin_options_url()) . '"]' . esc_html__('Configurar', self::$nombre) . '[/url]';
    475.             }
    476.             return $links;
    477.         }
    478.  
    479.         function plugin_options_url()
    480.         {
    481.             return add_query_arg('page', self::$nombre, admin_url(self::_PARENT_PAGE_));
    482.         }
    483.  
    484.         function DOMRemove(DOMNode $from) {
    485.             $sibling = $from->firstChild;
    486.             do {
    487.                 $next = $sibling->nextSibling;
    488.                 $from->parentNode->insertBefore($sibling, $from);
    489.             } while ($sibling = $next);
    490.             $from->parentNode->removeChild($from);
    491.         }
    492.  
    493.     }
    494.  
    495.     $objDropboxFolderSharePrincipal = new DropboxFolderSharePrincipal;
    496.     include_once 'class/http_build_url.php';
    497.     if (!function_exists("file_get_html")) {
    498.         include_once('class/simple_html_dom.php');
    499.     }
    500.     if (!class_exists("DFS_TinyMCE")) {
    501.         include_once 'class/tinymce.class.php';
    502.         $objDFS_TinyMCE = new DFS_TinyMCE();
    503.         add_filter("mce_css", array(&$objDFS_TinyMCE, "dropboxfoldershare_plugin_mce_css"));
    504.         add_filter("mce_external_plugins", array(&$objDFS_TinyMCE, "dropboxfoldershare_register_button"));
    505.         add_filter("mce_buttons", array(&$objDFS_TinyMCE, "dropboxfoldershare_add_button"), 0);
    506.         add_filter("the_posts", array(&$objDFS_TinyMCE, "dropbox_foldershare_styles_and_scripts"));
    507.     }
    508.  
    509.     add_shortcode('dropbox-foldershare-hyno', array(&$objDropboxFolderSharePrincipal, 'replace_shortcode'));
    510.     add_shortcode('DFS', array(&$objDropboxFolderSharePrincipal, 'replace_shortcode'));
    511.  
    512.     //AJAX
    513.     add_action( 'wp_ajax_getFolderContent', array(&$objDropboxFolderSharePrincipal, 'ajaxReplaceShortcode') );
    514.     add_action( 'wp_ajax_nopriv_getFolderContent', array(&$objDropboxFolderSharePrincipal, 'ajaxReplaceShortcode') );
    515.  
    516. }
    517.  
    К сожалению, я не знаю PHP (пока). Сравнила эту строчку с другими с похожими функциями в этом же файле - написание полностью идентично, но ошибку выдает только в этой строчке. Погуглила - нашла кучу похожих ошибок, но именно с квадратными скобками нет.

    Подскажите, пожалуйста, как я могу исправить эту ошибку.

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    видимо, php версия не поддерживает конструкцию wp_check_filetype($partUrl[0])['type']
    надо эту строчку разбить на 2 команды и должно заработать (;
     
  3. Tanhuxa

    Tanhuxa Новичок

    С нами с:
    15 фев 2016
    Сообщения:
    6
    Симпатии:
    0
    А как это сделать?
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    например
    Код (PHP):
    1. $checkFiletype = wp_check_filetype($partUrl[0]);
    2. $type = $checkFiletype['type'];
    3.  
    и в
    Код (PHP):
    1. $fileInfo = explode("/", $type);
    2.  
    всё просто (:)
     
  5. Tanhuxa

    Tanhuxa Новичок

    С нами с:
    15 фев 2016
    Сообщения:
    6
    Симпатии:
    0
    Т.е. вот так это должно выглядеть?
    Код (PHP):
    1. if($opcion['imagesPopup'] === '1') {
    2.    $checkFiletype = wp_check_filetype($partUrl[0]);
    3.    $type = $checkFiletype['type'];
    4.    $fileInfo = explode("/", $type);
    5.  
    6.  
    Хотя я не полностью указала код. Не знаю, важно ли это. Все выражение выглядит вот так:
    Код (PHP):
    1.                       if($opcion['imagesPopup'] === '1') {
    2.                                    $partUrl = explode("?",$urlFilename);
    3.                                    $fileInfo = explode("/", wp_check_filetype($partUrl[0])['type']);
    4.  
    5.  
    6.                                     //echo "<h2>--".wp_mime_type_icon(wp_check_filetype($partUrl[0])['type'])."--</h2>";
    7.                                     //echo "<img src=". wp_mime_type_icon(wp_check_filetype($partUrl[0])['type']) ." />";
    8.                                     //echo "<img src=". wp_mime_type_icon('image/jpeg') ." />";
    9.                                     if($fileInfo[0] == 'image'){
    10.                                         $lnkIcono->setAttribute("class",$lnkIcono->getAttribute("class")." thickbox");
    11.                                         $lnkIcono->setAttribute("rel", $codeRel);
    12.  
    13.                                         $lnkFilename->setAttribute("class",$lnkFilename->getAttribute("class")." thickbox");
    14.                                         $lnkFilename->setAttribute("rel", $codeRel."_txt");
    15.                                     }
    16.                                 } 
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.575
    Симпатии:
    1.759
    Но лучше перейти на php поновее (этот синтаксис появился в 5.4), иначе эту модицикацию придётся делать после каждого обновления плагина. Видимо авторы уже не принимают в учёт более старые версии php-а
     
  8. Tanhuxa

    Tanhuxa Новичок

    С нами с:
    15 фев 2016
    Сообщения:
    6
    Симпатии:
    0
    Действительно, ошибка исчезла, но плагин не работает. На странице появляется только код, вставленный на соответствующей странице:

    [DFS link=”https://www.dropbox.com/папка″ ver_como=”lista”]

    Обновление php в силах нашего шефа, а его нет. А у меня последний день работы в этой конторе и хотелось бы решить эту проблему сегодня. Может, существует еще какое-нибудь решение, чтобы плагин заработал?
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.575
    Симпатии:
    1.759
    Модераторы, перенесите тему в раздел WordPress. А раньше шорткод работал? Если плагин успешно активирован, а шорткоды не работают, обычно это означает, что тема не пропускает пост через фильтр the_content... Если раньше работало, то тут отлаживать надо, и весь код плагина отсматривать. Может ещё где несовместимость
     
  10. Tanhuxa

    Tanhuxa Новичок

    С нами с:
    15 фев 2016
    Сообщения:
    6
    Симпатии:
    0
    Да, код работал. Предыдущая версия перед обновлением уже работала с ошибками (не показывала названия папок).

    Добавлено спустя 5 минут 32 секунды:
    Проблема решена. Всем огромное СПАСИБО за помощь! Особенно p@R@dox 55RU. Код заработал, сразу не увидела изменений, так как коллега тоже ковырялся и, отключив плагин, забыл его включить.