예제 #1
0
파일: documenter.php 프로젝트: rhertzog/lcs
function action_documenter_post($r)
{
	// - sign indique le portfolio image ou document, dans le cas de
	// la page exec=articles
	// - id est l'id_objet (id_article ou id_rubrique etc)
	// - type est 'article' (ou 'rubrique')
	// - id_document le doc a supprimer ou a delier de l'objet
	//   SI VIDE, on supprime tous les documents du type SIGN
	//   (bouton "supprimer tous les documents")
	list(, $sign, $id, $type, ,$id_document) = $r;

	if ($id_document) {
		supprimer_lien_document($id_document, $type, $id);
	}
	else {
		$obj = "id_objet=".intval($id)." AND objet=".sql_quote($type);
		$typdoc = sql_in('docs.extension', array('gif', 'jpg', 'png'), $sign  ? '' : 'NOT');

		$s = sql_select('docs.id_document AS id_doc', "spip_documents AS docs LEFT JOIN spip_documents_liens AS l ON l.id_document=docs.id_document", "$obj AND docs.mode='document' AND $typdoc");
		while ($t = sql_fetch($s)) {
			supprimer_lien_document($t['id_doc'], $type, $id);
		}
	}

	if ($type == 'rubrique') {
		include_spip('inc/rubriques');
		depublier_branche_rubrique_if($id);
	}
}
/**
 * Dissocier un ou des documents
 *
 * @param int|string $document
 *   id_document a dissocier
 *   I/image pour dissocier les images en mode Image
 *   I/document pour dissocier les images en mode document
 *   D/document pour dissocier les documents non image en mode document
 * @param  $objet
 *   objet duquel dissocier
 * @param  $id_objet
 *   id_objet duquel dissocier
 * @param bool $supprime
 *   supprimer les documents orphelins apres dissociation
 * @param bool $check
 *   verifier le texte des documents et relier les documents references dans l'objet
 * @return void
 */
function dissocier_document($document, $objet, $id_objet, $supprime = false, $check = false)
{
    if ($id_document = intval($document)) {
        supprimer_lien_document($id_document, $objet, $id_objet, $supprime, $check);
    } else {
        list($image, $mode) = explode('/', $document);
        $image = $image == 'I';
        $typdoc = sql_in('docs.extension', array('gif', 'jpg', 'png'), $image ? '' : 'NOT');
        $obj = "id_objet=" . intval($id_objet) . " AND objet=" . sql_quote($objet);
        $s = sql_select('docs.id_document', "spip_documents AS docs LEFT JOIN spip_documents_liens AS l ON l.id_document=docs.id_document", "{$obj} AND vu='non' AND docs.mode=" . sql_quote($mode) . " AND {$typdoc}");
        while ($t = sql_fetch($s)) {
            supprimer_lien_document($t['id_document'], $objet, $id_objet, $supprime, $check);
        }
    }
    // pas tres generique ca ...
    if ($objet == 'rubrique') {
        include_spip('inc/rubriques');
        depublier_branche_rubrique_if($id_objet);
    }
}