4.0 logo article : delete/ unlink impossible en php & sql !

Bonjour,

j’ai téléchargé la dernière version de spip hier … je n’arrive pas à unlink un "LOGO_ARTICLE en php :

j’ai une admin sur-mesure en dehors de spip… j’ai ce code :

dans mon form :

dans le code source la VALUE me donne ce résultat : "value=« IMG/logo/photo_cv.jpg?1631313883" »

et en php
$fichier = $_POST[« logo »];
$suplogo = unlink( $fichier );

La suppression via l’unlink est impossible…

De plus, comment supprimer ce fichier des tables DOCUMENTS et DOCUMENTS LIENS en php ?

merci d’avance :slight_smile:

Bon je reviens ici avec une solution :

On cré une boucle dans la table spip_documents_liens pour récupérer l’ensemble des docs de l’article, puis on fait le tri dans une autre boucle avec le champ de la table DOCUMENTS => mode = logoon et on récupère l’id_document et l’url du fichier sans les « ?4562121 » : l’url du logo enregistré dans la BDD.

<BOUCLE_logo(spip_documents_liens){id_objet = #ID_ARTICLE}>
[(#ID_DOCUMENT|?{
<BOUCLE_resultat(DOCUMENTS){id_document}{mode = logoon}>
1 input hidden avec value="#ID_DOCUMENT" et 1 input hidden avec value="#FICHIER"
</BOUCLE_resultat>
})]
</BOUCLE_logo>

puis le php :

$logo = $_POST[« logo »];
$fichier = $_POST[« id_logo »];

$suplogo = unlink( $logo );
$supp_logo=sql_delete(‹ spip_documents ›,‹ id_document= ›.sql_quote($fichier)); $supp_doc_logo=sql_delete(‹ spip_documents_liens ›,‹ id_document= ›.sql_quote($fichier));

De mon côté ça marche bien, si quelqu’un a une solution moins longue … merci d’avance !

Alors, sinon, pour les logos il y a une petite API.

include_spip('action/editer_logo');
logo_supprimer($objet, $id_objet, 'on'); 

Coucou Matthieu,

est ce que ce code API passe dans du code php avec insert sql ?
je précise que j’ai créé une administration en plus de celle de spip et je ne vais plus dans le /ecrire …

je suis bien tombé sur cet article sur le site de spip mais j’ai laissé tombé…

De mon côté la solution que j’ai proposé plus haut fonctionne en upload et en delete … mais j’avoue ce n’est pas Opti ^^

Je ne comprends pas la question.
Si tu as accès aux fonctions sql_*, c’est que tu démarres SPIP (même si tu n’es pas dans ecrire/).
Donc tu as accès à include_spip et un peu ce que tu veux.

Tu as testé le code ?