[spip-dev] bug dans la classe Link dans inc_version

Dans inc_version, les lignes :

   // If no URL specified, take current one
                 if (!$url) {
                         $url = $GLOBALS['REQUEST_URI'];
                         $url = substr($url, strrpos($url, '/') + 1);

sont fausses car il peut y avoir un / dans la Query-string.
Il faut:

  if (!$url) {
    $url = strpos($GLOBALS[REQUEST_URI], '?');
    $url =
      substr($GLOBALS[PHP_SELF], strrpos($GLOBALS[PHP_SELF], '/')+1) .
    ($url ? substr($GLOBALS[REQUEST_URI], $url) : '');

Je profite de l'occasion pour déplorer qu'un fichier dont le nom évoque un contenu de configuration selon versions (PHP, SQL etc)
contienne aussi cette classe Link, sorte d'API de Spip dont l'existence est
ainsi occultée (meme pas 20 utilisations de sa méthode getForm, contre plus de
60 productions explicite de la balise Form). Il vaudrait mieux mettre ce quart de inc_version (6Ko) dans un fichier séparé, inclus par inc_version pour compatibilité, mais qui pourrait à terme n'étre chargé qu'en cas de besoin.

esj

Déesse A. wrote:

Je profite de l'occasion pour déplorer qu'un fichier dont le nom évoque un contenu de configuration selon versions (PHP, SQL etc)
contienne aussi cette classe Link, sorte d'API de Spip dont l'existence est
ainsi occultée (meme pas 20 utilisations de sa méthode getForm, contre plus de
60 productions explicite de la balise Form). Il vaudrait mieux mettre ce quart de inc_version (6Ko) dans un fichier séparé, inclus par inc_version pour compatibilité, mais qui pourrait à terme n'étre chargé qu'en cas de besoin.

dans le meme genre, je deplore que :

- il y ait confusion entre ecrire/ et include/ (ou lib/), voir (admin/),
- ecrire/inc_connect.php3 contienne non seulement les parametres de connexion
a ld BD, mais aussi du code. Il faudrait creer un fichier contenant uniquement
les parametres de connexion a la BD. J'ai créé des utilitaires complementaires
a SPIP et pour obtenir les parametres, je suis obligé de scripter a fond la
forme avec des regexp ...

sinon, tout va bien ...