Changeset 88969 in spip-zone


Ignore:
Timestamp:
May 2, 2015, 4:42:21 PM (4 years ago)
Author:
real3t@…
Message:

Version 0.5

Location:
_libs_/html2spip
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _libs_/html2spip/HTML2SPIPEngine.class

    r88968 r88969  
    132132    'img'           => array('_imgS', '', array(
    133133                        'src', 'align', 'width', 'height', 'alt', 'title',
    134                         'hspace', 'vspace', 'border', 'class',
     134                        'hspace', 'vspace', 'border', 'class', '_cke_saved_src',
    135135                       )),
    136136
     
    704704
    705705      default:
    706         $this->interrupt("Unexpected URL: $href");
     706      #  $this->interrupt("Unexpected URL: $href");
    707707    }
    708708
     
    726726      $titre,
    727727      $descriptif,
    728       $this->spipImagesPath,
    729       $this->spipDBResource
     728      $this->spipImagesPath
    730729    );
    731730
     
    834833  }
    835834
     835  # $spip_db_resource no longer useful; any value OK
    836836  public function __construct($spip_db_resource, $images_path) {
    837837    $this->spipDBResource = $spip_db_resource;
  • _libs_/html2spip/misc_tools.php

    r88965 r88969  
    1414# You should have received a copy of the GNU General Public License
    1515# along with this program.  If not, see <http://www.gnu.org/licenses/>.
    16 
    17 ################################################################################
    18 #
    19 # Messages display functions
    20 #
    21 ################################################################################
    22 
    23 function banner($status, $color, $string) {
    24   return "<br /><font color='$color'><strong>$status:</strong></font> $string";
    25 }
    26 
    27 function error($string) {
    28   return banner('ERROR', 'darkred', $string);
    29 }
    30 
    31 function my_die($string) {
    32   die(error($string));
    33 }
    34 
    35 function my_mysql_query($query, $link_identifier) {
    36   if (!($result = mysql_query($query, $link_identifier)))
    37     my_die("Failed SQL query: $query, error: " . mysql_error());
    38 
    39   return $result;
    40 }
    4116
    4217################################################################################
     
    6641}
    6742
    68 function spip_register_procedures($spip) {
    69   spip_unregister_procedures($spip);
     43################################################################################
     44#
     45# Stored SQL Procedures functions
     46#   (Now useless; declarations will be removed in the future)
     47#
     48################################################################################
    7049
    71   $func_insertOrUpdateFichier = "
    72     CREATE PROCEDURE InsertOrUpdateFichier(
    73         OUT _id_document BIGINT(21),
    74         IN _id_vignette BIGINT(21),
    75         IN _extension   VARCHAR(10),
    76         IN _titre       TEXT,
    77         IN _date        DATETIME,
    78         IN _descriptif  TEXT,
    79         IN _fichier     VARCHAR(255),
    80         IN _taille      INT(11),
    81         IN _largeur     INT(11),
    82         IN _hauteur     INT(11),
    83         IN _mode        ENUM('vignette','image','document'),
    84         IN _distant     VARCHAR(3),
    85         IN _maj         TIMESTAMP
    86       )
    87       BEGIN
    88         DECLARE count, id BIGINT(21);
     50# spip_register_procedures($spip)
     51# This function is declared for compatibility.
     52# Will be removed in near future
     53function spip_register_procedures($spip) {}
    8954
    90         SELECT count(*), id_document
    91           INTO count, _id_document
    92         FROM " . SPIP_SITE . "_documents
    93           WHERE fichier = _fichier;
     55# spip_unregister_procedures($spip)
     56# This function is declared for compatibility.
     57# Will be removed in near future
     58function spip_unregister_procedures($spip) {}
    9459
    95         IF count = 0 THEN
    96           INSERT INTO " . SPIP_SITE . "_documents
    97             (
    98               id_vignette,
    99               extension,
    100               titre,
    101               date,
    102               descriptif,
    103               fichier,
    104               taille,
    105               largeur,
    106               hauteur,
    107               mode,
    108               distant,
    109               maj
    110             )
    111           VALUES
    112             (
    113               _id_vignette,
    114               _extension,
    115               _titre,
    116               _date,
    117               _descriptif,
    118               _fichier,
    119               _taille,
    120               _largeur,
    121               _hauteur,
    122               _mode,
    123               _distant,
    124               _maj
    125             );
    126           SELECT LAST_INSERT_ID() INTO _id_document;
    127         END IF;
    128       END
    129   ";
    130   my_mysql_query(
    131     $func_insertOrUpdateFichier,
    132     $spip
    133   );
    134 }
     60################################################################################
     61#
     62# Database related functions
     63#
     64################################################################################
    13565
    136 function spip_unregister_procedures($spip) {
    137   $functions = array(
    138     'InsertOrUpdateFichier',
    139   );
    140 
    141   $query = '';
    142   foreach($functions as $function)
    143     $query .= "DROP PROCEDURE IF EXISTS $function;";
    144 
    145   my_mysql_query($query, $spip);
    146 }
    147 
    148 function spip_add_document($url, $width, $height, $mode, $titre, $descriptif, $path, $spip) {
     66function spip_add_document($url, $width, $height, $mode, $titre, $descriptif, $path) {
    14967  $f_name = iconv('UTF-8', 'ISO-8859-1', preg_replace(
    15068    '/\s+/',
     
    15977  ));
    16078
    161   if ($titre == null)
     79  if (!strlen($titre))
    16280    $titre = $f_name;
    16381
    16482  $f_ext  = strtolower(preg_replace('/^.*\.([^\.]*)$/', '$1', $f_name));
    16583
    166   $f_abs_name = $path . '/' . $f_ext . '/' . $f_name;
    167   if (!($f_hdl = fopen($f_abs_name, 'w')))
    168     die("Cannot open file ($f_abs_name)");
     84  if (_HTML2SPIP_PRESERVE_DISTANT) {
     85    $f_size = @filesize($url) ;
     86    $fichier = $url ;
     87  } else {
     88    $f_abs_name = $path . '/' . $f_ext . '/' . $f_name;
     89    if (!($f_hdl = fopen($f_abs_name, 'w')))
     90      die("Cannot open file ($f_abs_name)");
    16991
    170   if (!($url_hdl = fopen($url, 'r')))
    171     die("Cannot open url ($url)");
     92    if (!($url_hdl = fopen($url, 'r')))
     93      die("Cannot open url ($url)");
    17294
    173   $f_size = 0;
    174   while (!feof($url_hdl))
    175     if (!($f_size += fwrite($f_hdl, fread($url_hdl, 8192))))
    176       die("Failed copy from ($url) to ($f_abs_name)");
     95    $f_size = 0;
     96    while (!feof($url_hdl))
     97      if (!($f_size += fwrite($f_hdl, fread($url_hdl, 8192))))
     98        die("Failed copy from ($url) to ($f_abs_name)");
    17799
    178   if (!(fclose($f_hdl)))
    179     die("Failed fclose on file ($f_abs_name)");
     100    if (!(fclose($f_hdl)))
     101      die("Failed fclose on file ($f_abs_name)");
    180102
    181   if (!(fclose($url_hdl)))
    182     die("Failed fclose on url ($url_hdl)"); # We could ignore that
     103    if (!(fclose($url_hdl)))
     104      die("Failed fclose on url ($url_hdl)"); # We could safely ignore that
     105
     106    $fichier = $f_ext . '/' . $f_name ;
     107  }
     108
     109  if (!($result = sql_select(
     110                    'MAX(id_document)',
     111                    'spip_documents',
     112                    'fichier = ' . sql_quote($fichier)
     113                    )))
     114    die("Failed SQL query: ". sql_error());
     115
     116  if (($row = sql_fetch($result)) && ((int) $row['MAX(id_document)']) > 0)
     117    return $row['MAX(id_document)'];
     118
     119  $date = strftime('%F %T');
    183120
    184121  $doc = array(
    185122    'id_vignette' =>  0,
    186     'extension'   =>  "'" . mysql_real_escape_string($f_ext) . "'",
    187     'titre'       =>  "'" . mysql_real_escape_string($titre) . "'",
    188     'date'        =>  'NOW()',
    189     'descriptif'  =>  "'" . mysql_real_escape_string($descriptif) . "'",
    190     'fichier'     =>  "'" . mysql_real_escape_string($f_ext . '/' . $f_name) . "'",
    191     'taille'      =>  $f_size,
     123    'extension'   =>  $f_ext,
     124    'titre'       =>  $titre,
     125    'date'        =>  $date,
     126    'descriptif'  =>  $descriptif,
     127    'fichier'     =>  $fichier,
     128    'taille'      =>  (int) $f_size,
    192129    'largeur'     =>  (int) $width,
    193130    'hauteur'     =>  (int) $height,
    194     'mode'        =>  "'" . mysql_real_escape_string($mode) . "'",
    195     'distant'     =>  "'non'",
    196     'maj'         =>  'NOW()',
    197   );
    198   # $query =
    199   #   'INSERT INTO ' . SPIP_SITE . '_documents'
    200   #   . ' (' . implode(',', array_keys($doc)) . ')'
    201   #   . ' VALUES'
    202   #   . ' (' . implode(',', $doc) . ')'
    203   # ;
    204   $queries = array(
    205     'CALL InsertOrUpdateFichier(@_id_document,' . implode(',', $doc) . ')',
    206     'SELECT @_id_document',
     131    'mode'        =>  $mode,
     132    'distant'     =>  (_HTML2SPIP_PRESERVE_DISTANT ? "oui" : "non"),
     133    'maj'         =>  $date,
    207134  );
    208135
    209   foreach($queries as $query)
    210     if (!($result = mysql_query($query, $spip)))
    211       die("Failed SQL query ($query): ". mysql_error());
     136  if (!($id = sql_insertq('spip_documents', $doc)))
     137    die("Failed SQL query: ". sql_error());
    212138
    213   $data = mysql_fetch_assoc($result);
    214 
    215   return $data['@_id_document'];
     139  return $id;
    216140}
    217141
Note: See TracChangeset for help on using the changeset viewer.