当前位置: 首页>>代码示例>>PHP>>正文


PHP copie_locale函数代码示例

本文整理汇总了PHP中copie_locale函数的典型用法代码示例。如果您正苦于以下问题:PHP copie_locale函数的具体用法?PHP copie_locale怎么用?PHP copie_locale使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了copie_locale函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: action_copier_local_post

function action_copier_local_post($id_document) {

	// Il faut la source du document pour le copier
	$row = sql_fetsel("fichier, descriptif", "spip_documents", "id_document=$id_document");
	$source = $row['fichier'];

	include_spip('inc/distant'); // pour 'copie_locale'
	include_spip('inc/documents'); // pour 'set_spip_doc'
	$fichier = copie_locale($source);
	if ($fichier) {
		$fichier = _DIR_RACINE . $fichier;
		$taille = filesize($fichier);
		// On le sort du repertoire IMG/distant/
		$dest = preg_replace(',^.*/distant/[^/_]+[/_],', '', $fichier);
		$dest = sous_repertoire(_DIR_IMG, preg_replace(',^.*\.,', '', $fichier)) . $dest;
		if ($dest != $fichier
		AND @rename($fichier, $dest))
			$fichier = $dest;

		// On indique l'ancien URL dans le descriptif (pis-aller)
		$row['descriptif'] .= ($row['descriptif'] ? "\n\n":'') . "[->$source]";

		// $fichier contient IMG/distant/...
		// or, dans la table documents, IMG doit etre exclu.
		$fichier = set_spip_doc($fichier);
		spip_log("convertit doc $id_document en local: $source => $fichier");
		sql_updateq('spip_documents', array('fichier' =>$fichier, 'distant'=>'non', 'taille'=>$taille, 'descriptif'=> $row['descriptif']),"id_document=".$id_document);
		
	} else {
		spip_log("echec copie locale $source");
	}
}
开发者ID:rhertzog,项目名称:lcs,代码行数:32,代码来源:copier_local.php

示例2: action_copier_local_post

/**
 * http://code.spip.net/@action_copier_local_post
 *
 * @param  $id_document
 * @return bool|mixed|string
 */
function action_copier_local_post($id_document)
{
    // Il faut la source du document pour le copier
    $row = sql_fetsel("mode,fichier, descriptif, credits", "spip_documents", "id_document={$id_document}");
    $source = $row['fichier'];
    include_spip('inc/distant');
    // pour 'copie_locale'
    $fichier = copie_locale($source);
    if ($fichier) {
        $fichier = _DIR_RACINE . $fichier;
        $files[] = array('tmp_name' => $fichier, 'name' => basename($fichier));
        $ajouter_documents = charger_fonction('ajouter_documents', 'action');
        spip_log("convertit doc {$id_document} en local: {$source} => {$fichier}");
        $liste = array();
        $ajouter_documents($id_document, $files, '', 0, $row['mode'], $liste);
        spip_unlink($fichier);
        // ajouter l'origine du document aux credits
        include_spip('action/editer_document');
        document_modifier($id_document, array('credits' => ($row['credits'] ? $row['credits'] . ', ' : '') . $source));
        return true;
    } else {
        spip_log("echec copie locale {$source}");
    }
    return _T('medias:erreur_copie_fichier', array('nom' => $source));
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:31,代码来源:copier_local.php

示例3: action_tourner_post

/**
 * Tourner un document
 *
 * http://code.spip.net/@action_tourner_post
 *
 * @param int $id_document
 * @param int $angle
 *   angle de rotation en degre>0
 * @return
 */
function action_tourner_post($id_document, $angle)
{
    $row = sql_fetsel("fichier,extension", "spip_documents", "id_document=" . intval($id_document));
    if (!$row) {
        return;
    }
    include_spip('inc/charsets');
    # pour le nom de fichier
    include_spip('inc/documents');
    // Fichier destination : on essaie toujours de repartir de l'original
    $var_rot = $angle;
    $effacer = false;
    include_spip('inc/distant');
    # pour copie_locale
    $src = _DIR_RACINE . copie_locale(get_spip_doc($row['fichier']));
    if (preg_match(',^(.*)-r(90|180|270)\\.([^.]+)$,', $src, $match)) {
        $effacer = $src;
        $src = $match[1] . '.' . $match[3];
        $var_rot += intval($match[2]);
    }
    $var_rot = (360 + $var_rot) % 360;
    // 0, 90, 180 ou 270
    if ($var_rot > 0) {
        $dest = preg_replace(',\\.[^.]+$,', '-r' . $var_rot . '$0', $src);
        spip_log("rotation {$var_rot} {$src} : {$dest}");
        include_spip('inc/filtres');
        include_spip('public/parametrer');
        // charger les fichiers fonctions #bugfix spip 2.1.0
        $res = filtrer('image_rotation', $src, $var_rot);
        $res = filtrer('image_format', $res, $row['extension']);
        list($hauteur, $largeur) = taille_image($res);
        $res = extraire_attribut($res, 'src');
        include_spip('inc/getdocument');
        deplacer_fichier_upload($res, $dest);
    } else {
        $dest = $src;
        $size_image = @getimagesize($dest);
        $largeur = $size_image[0];
        $hauteur = $size_image[1];
    }
    // succes !
    if ($largeur > 0 and $hauteur > 0) {
        $set = array('fichier' => set_spip_doc($dest), 'largeur' => $largeur, 'hauteur' => $hauteur, 'distant' => 'non');
        if ($taille = @filesize($dest)) {
            $set['taille'] = $taille;
        }
        sql_updateq('spip_documents', $set, "id_document=" . intval($id_document));
        if ($effacer) {
            spip_log("rotation : j'efface {$effacer}");
            spip_unlink($effacer);
        }
        // pipeline pour les plugins
        pipeline('post_edition', array('args' => array('table' => 'spip_documents', 'table_objet' => 'documents', 'spip_table_objet' => 'spip_documents', 'type' => 'document', 'id_objet' => $id_document, 'champs' => array('rotation' => $angle, 'orientation' => $var_rot, 'fichier' => $row['fichier']), 'action' => 'tourner'), 'data' => $set));
    }
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:65,代码来源:tourner.php

示例4: BOUCLE_documents_portfoliohtml_4dc0f36e18dd7a26ebc382429cbc9835

function BOUCLE_documents_portfoliohtml_4dc0f36e18dd7a26ebc382429cbc9835(&$Cache, &$Pile, &$doublons, &$Numrows, $SP)
{
    static $command = array();
    static $connect;
    $command['connect'] = $connect = '';
    $doublons_index = array();
    $in = array();
    $in[] = 'png';
    $in[] = 'jpg';
    $in[] = 'gif';
    // Initialise le(s) critère(s) doublons
    if (!isset($doublons[$d = 'documents'])) {
        $doublons[$d] = '';
    }
    if (!isset($command['table'])) {
        $command['table'] = 'documents';
        $command['id'] = '_documents_portfolio';
        $command['from'] = array('documents' => 'spip_documents', 'L1' => 'spip_documents_liens', 'L2' => 'spip_types_documents');
        $command['type'] = array();
        $command['groupby'] = array();
        $command['select'] = array("0+documents.titre AS num", "documents.date", "documents.id_document", "L2.mime_type", "L1.id_objet AS id_rubrique", "documents.titre", "documents.fichier");
        $command['orderby'] = array('num', 'documents.date');
        $command['join'] = array('L1' => array('documents', 'id_document'), 'L2' => array('documents', 'extension'));
        $command['limit'] = '';
        $command['having'] = array();
    }
    $command['where'] = array(quete_condition_statut('documents.statut', 'publie,prop,prepa', 'publie', ''), array('(documents.taille > 0 OR documents.distant=\'oui\')'), array('=', 'L1.id_objet', sql_quote(@$Pile[0]['id_rubrique'], '', 'bigint(21) NOT NULL DEFAULT \'0\'')), array('=', 'L1.objet', sql_quote('rubrique')), array('=', 'documents.mode', "'document'"), sql_in('documents.extension', sql_quote($in)), array('=', 'L1.vu', "'non'"), array(sql_in('documents.id_document', $doublons[$doublons_index[] = 'documents'], 'NOT')));
    if (defined("_BOUCLE_PROFILER")) {
        $timer = time() + microtime();
    }
    $t0 = "";
    // REQUETE
    $iter = IterFactory::create("SQL", $command, array('squelettes/inc/inc-rub-documents.html', 'html_4dc0f36e18dd7a26ebc382429cbc9835', '_documents_portfolio', 2, $GLOBALS['spip_lang']));
    if (!$iter->err()) {
        $SP++;
        // RESULTATS
        while ($Pile[$SP] = $iter->fetch()) {
            foreach ($doublons_index as $k) {
                $doublons[$k] .= "," . $Pile[$SP]['id_document'];
            }
            // doublons
            $t0 .= ($t1 = strval(vider_url(urlencode_1738(generer_url_entite($Pile[$SP]['id_document'], 'document', '', '', true))))) !== '' ? '
		<a href="' . $t1 . ('" type="' . interdire_scripts($Pile[$SP]['mime_type']) . '" onclick="location.href=\'' . parametre_url(vider_url(urlencode_1738(generer_url_entite($Pile[$SP]['id_rubrique'], 'rubrique', '', '', true))), 'id_document', $Pile[$SP]['id_document']) . '#documents_portfolio\';return false;"' . (($t2 = strval(interdire_scripts(@$Pile[0]['exposer']))) !== '' ? ' class="' . $t2 . '"' : '') . (($t2 = strval(interdire_scripts(couper(attribut_html(traiter_doublons_documents($doublons, typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0]))), '80')))) !== '' ? ' title="' . $t2 . '"' : '') . '>' . interdire_scripts(inserer_attribut(inserer_attribut(filtrer('image_graver', filtrer('image_reduire', copie_locale(get_spip_doc($Pile[$SP]['fichier'])), '0', '100')), 'class', 'spip_vignette_portfolio'), 'alt', interdire_scripts(couper(attribut_html(traiter_doublons_documents($doublons, typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0]))), '80')))) . '</a>
	') : '';
        }
        $iter->free();
    }
    if (defined("_BOUCLE_PROFILER") and 1000 * ($timer = time() + microtime() - $timer) > _BOUCLE_PROFILER) {
        spip_log(intval(1000 * $timer) . "ms BOUCLE_documents_portfolio @ squelettes/inc/inc-rub-documents.html", "profiler" . _LOG_AVERTISSEMENT);
    }
    return $t0;
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:52,代码来源:html_4dc0f36e18dd7a26ebc382429cbc9835.php

示例5: action_supprimer_document_dist

function action_supprimer_document_dist($id_document = 0)
{
    if (!$id_document) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $id_document = $securiser_action();
    }
    include_spip('inc/autoriser');
    if (!autoriser('supprimer', 'document', $id_document)) {
        spip_log("Echec : Suppression document {$id_document} interdite", _LOG_ERREUR);
        return false;
    }
    // si c'etait une vignette, modifier le document source !
    if ($source = sql_getfetsel('id_document', 'spip_documents', 'id_vignette=' . intval($id_document))) {
        include_spip('action/editer_document');
        document_modifier($source, array("id_vignette" => 0));
    }
    include_spip('inc/documents');
    if (!($doc = sql_fetsel('*', 'spip_documents', 'id_document=' . intval($id_document)))) {
        spip_log("Echec : Suppression document {$id_document} : le document n'existe pas en base", _LOG_ERREUR);
        return false;
    }
    spip_log("Suppression du document {$id_document} (" . $doc['fichier'] . ")");
    include_spip('action/editer_liens');
    // Si c'est un document ayant une vignette, supprimer aussi la vignette
    if ($doc['id_vignette']) {
        action_supprimer_document_dist($doc['id_vignette']);
        objet_dissocier(array('document' => $doc['id_vignette']), '*');
    }
    // Si c'est un document ayant des documents annexes (sous-titre, ...)
    // les supprimer aussi
    $annexes = array_map('reset', sql_allfetsel("id_document", "spip_documents_liens", "objet='document' AND id_objet=" . intval($id_document)));
    foreach ($annexes as $id) {
        action_supprimer_document_dist($id);
    }
    // dereferencer dans la base
    objet_dissocier(array('document' => $id_document), '*', array('role' => '*'));
    sql_delete('spip_documents', 'id_document=' . intval($id_document));
    // Supprimer le fichier si le doc est local,
    // et la copie locale si le doc est distant
    if ($doc['distant'] == 'oui') {
        include_spip('inc/distant');
        if ($local = _DIR_RACINE . copie_locale($doc['fichier'], 'test')) {
            spip_unlink($local);
        }
    } else {
        spip_unlink(get_spip_doc($doc['fichier']));
    }
    pipeline('post_edition', array('args' => array('operation' => 'supprimer_document', 'action' => 'supprimer_document', 'table' => 'spip_documents', 'id_objet' => $id_document, 'document' => $doc), 'data' => null));
    return true;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:50,代码来源:supprimer_document.php

示例6: action_editer_site_dist

function action_editer_site_dist($arg = null)
{
    if (is_null($arg)) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
    }
    if (!($id_syndic = intval($arg))) {
        $id_syndic = site_inserer(_request('id_parent'));
        if ($logo = _request('logo') and $format_logo = _request('format_logo')) {
            include_spip('inc/distant');
            $logo = _DIR_RACINE . copie_locale($logo);
            @rename($logo, _DIR_IMG . 'siteon' . $id_syndic . '.' . $format_logo);
        }
    }
    if (!$id_syndic) {
        return array(0, '');
    }
    $err = site_modifier($id_syndic);
    return array($id_syndic, $err);
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:20,代码来源:editer_site.php

示例7: action_supprimer_document_dist

function action_supprimer_document_dist($id_document) {
	include_spip('inc/autoriser');
	if (!autoriser('supprimer','document',$id_document))
		return false;

	include_spip('inc/documents');
	if (!$doc = sql_fetsel('*', 'spip_documents', 'id_document='.$id_document))
		return false;

	spip_log("Suppression du document $id_document (".$doc['fichier'].")");

	// Si c'est un document ayant une vignette, supprimer aussi la vignette
	if ($doc['id_vignette']) {
		action_supprimer_document_dist($doc['id_vignette']);
		sql_delete('spip_documents_liens', 'id_document='.$doc['id_vignette']);
	}

	// Supprimer le fichier si le doc est local,
	// et la copie locale si le doc est distant
	if ($doc['distant'] == 'oui') {
		include_spip('inc/distant');
		if ($local = copie_locale($doc['fichier'],'test'))
			spip_unlink($local);
	}
	else spip_unlink(get_spip_doc($doc['fichier']));

	sql_delete('spip_documents', 'id_document='.$id_document);

	pipeline('post_edition',
		array(
			'args' => array(
				'operation' => 'supprimer_document',
				'table' => 'spip_documents',
				'id_objet' => $id_document
			),
			'data' => null
		)
	);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:39,代码来源:supprimer_document.php

示例8: teleporter_http_recuperer_source

/**
 * Récupérer la source et détecter son extension
 *
 * @uses  teleporter_http_extension()
 *
 * @param string $source
 *     URL de la source HTTP
 * @param string $dest_tmp
 *     Répertoire de destination
 * @return array|string
 *     - Texte d'erreur si une erreur survient,
 *     - Liste sinon (répertoire de destination temporaire, extension du fichier source)
 */
function teleporter_http_recuperer_source($source, $dest_tmp)
{
    # securite : ici on repart toujours d'une source neuve
    if (file_exists($dest_tmp)) {
        spip_unlink($dest_tmp);
    }
    $extension = "";
    # si on ne dispose pas encore du fichier
    # verifier que le zip en est bien un (sans se fier a son extension)
    #	en chargeant son entete car l'url initiale peut etre une simple
    # redirection et ne pas comporter d'extension .zip
    include_spip('inc/distant');
    $head = recuperer_page($source, false, true, 0);
    if (preg_match(",^Content-Type:\\s*?(.*)\$,Uims", $head, $m) and include_spip('base/typedoc')) {
        $mime = $m[1];
        // passer du mime a l'extension !
        if ($e = array_search($mime, $GLOBALS['tables_mime'])) {
            $extension = $e;
        }
    }
    if (!$extension or in_array($extension, array('bin', 'gz'))) {
        if (preg_match(",^Content-Disposition:\\s*attachment;\\s*filename=(.*)['\"]?\$,Uims", $head, $m) and $e = teleporter_http_extension($m[1])) {
            $extension = $e;
        } else {
            $extension = teleporter_http_extension($source);
        }
    }
    # format de fichier inconnu
    if (!$extension) {
        spip_log("Type de fichier inconnu pour la source {$source}", "teleport" . _LOG_ERREUR);
        return _T('svp:erreur_teleporter_type_fichier_inconnu', array('source' => $source));
    }
    $dest_tmp = preg_replace(";\\.[\\w]{2,3}\$;i", "", $dest_tmp) . ".{$extension}";
    if (!defined('_SVP_PAQUET_MAX_SIZE')) {
        define('_SVP_PAQUET_MAX_SIZE', 67108864);
    }
    // 64Mo
    include_spip('inc/distant');
    $dest_tmp = copie_locale($source, 'force', $dest_tmp, _SVP_PAQUET_MAX_SIZE);
    if (!$dest_tmp or !file_exists($dest_tmp = _DIR_RACINE . $dest_tmp)) {
        spip_log("Chargement impossible de la source {$source}", "teleport" . _LOG_ERREUR);
        return _T('svp:erreur_teleporter_chargement_source_impossible', array('source' => $source));
    }
    return array($dest_tmp, $extension);
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:58,代码来源:http.php

示例9: svp_actualiser_depot

/**
 * Actualisation des plugins d'un dépot déjà crée
 *
 * Actualise les informations uniquement si la signature du fichier
 * XML de description du dépot a changé
 * 
 * @param int $id
 *     Identifiant du dépot
 * @return bool
 *     false si erreur, true sinon
 */
function svp_actualiser_depot($id)
{
    include_spip('inc/distant');
    $id = intval($id);
    // pas de depot a cet id ?
    if (!($depot = sql_fetsel('*', 'spip_depots', 'id_depot=' . sql_quote($id)))) {
        return false;
    }
    $fichier_xml = _DIR_RACINE . copie_locale($depot['xml_paquets'], 'modif');
    $sha = sha1_file($fichier_xml);
    if ($depot['sha_paquets'] == $sha) {
        // Le fichier n'a pas change (meme sha1) alors on ne fait qu'actualiser la date
        // de mise a jour du depot en mettant a jour *inutilement* le sha1
        spip_log('Aucune modification du fichier XML, actualisation non declenchee - id_depot = ' . $depot['id_depot'], 'svp_actions.' . _LOG_INFO);
        sql_replace('spip_depots', array_diff_key($depot, array('maj' => '')));
    } else {
        // Le fichier a bien change il faut actualiser tout le depot
        $infos = svp_phraser_depot($fichier_xml);
        if (!$infos) {
            return false;
        }
        // On actualise les paquets dans spip_paquets en premier lieu.
        // Lors de la mise a jour des paquets, les plugins aussi sont actualises
        $ok = svp_actualiser_paquets($depot['id_depot'], $infos['paquets'], $nb_paquets, $nb_plugins, $nb_autres);
        // apres la mise a jour des paquets d'un depot, on actualise les informations des paquets locaux
        // principalement l'info "maj_version" indiquant s'il existe un paquet plus recent
        include_spip('inc/svp_depoter_local');
        svp_actualiser_maj_version();
        if ($ok) {
            // On met à jour :
            // -- les infos ne pouvant pas etre editees par le formulaire d'edition
            //    d'un depot et extraites du xml
            // -- le nombre de paquets et de plugins du depot ainsi que le nouveau sha1
            // ce qui aura pour effet d'actualiser la date de mise a jour
            $champs = array('url_serveur' => $infos['depot']['url_serveur'], 'url_brouteur' => $infos['depot']['url_brouteur'], 'url_archives' => $infos['depot']['url_archives'], 'url_commits' => $infos['depot']['url_commits'], 'nbr_paquets' => $nb_paquets, 'nbr_plugins' => $nb_plugins, 'nbr_autres' => $nb_autres, 'sha_paquets' => $sha);
            sql_updateq('spip_depots', $champs, 'id_depot=' . sql_quote($depot['id_depot']));
        }
    }
    return true;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:51,代码来源:svp_depoter_distant.php

示例10: supprimer_documents

function supprimer_documents($liste = array()) {
	if (!count($liste))
		return;

	$in = sql_in('id_document', $liste);

	// Supprimer les fichiers locaux et les copies locales
	// des docs distants
	$s = sql_select("fichier, distant", "spip_documents", $in);
	while ($t = sql_fetch($s)) {
		if ($t['distant'] == 'oui') {
			include_spip('inc/distant');
			if ($local = copie_locale($t['fichier'], 'test'))
				spip_log("efface $local = ".$t['fichier']);
				supprimer_fichier($local);
		}
		else {
			if (@file_exists($f = get_spip_doc($t['fichier']))) {
				spip_log("efface $f");
				supprimer_fichier($f);
			}
		}
	}

	// Supprimer les entrees dans spip_documents et associees
	sql_delete('spip_documents', $in);
	// en principe il ne devrait rien y avoir ici si les documents sont bien orphelins
	sql_delete('spip_documents_liens', $in);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:29,代码来源:documents.php

示例11: taille_image

function taille_image($img)
{
    static $largeur_img = array(), $hauteur_img = array();
    $srcWidth = 0;
    $srcHeight = 0;
    $logo = extraire_attribut($img, 'src');
    if (!$logo) {
        $logo = $img;
    } else {
        $srcWidth = extraire_attribut($img, 'width');
        $srcHeight = extraire_attribut($img, 'height');
    }
    // ne jamais operer directement sur une image distante pour des raisons de perfo
    // la copie locale a toutes les chances d'etre la ou de resservir
    if (preg_match(';^(\\w{3,7}://);', $logo)) {
        include_spip('inc/distant');
        $fichier = copie_locale($logo);
        $logo = $fichier ? _DIR_RACINE . $fichier : $logo;
    }
    if (($p = strpos($logo, '?')) !== FALSE) {
        $logo = substr($logo, 0, $p);
    }
    $srcsize = false;
    if (isset($largeur_img[$logo])) {
        $srcWidth = $largeur_img[$logo];
    }
    if (isset($hauteur_img[$logo])) {
        $srcHeight = $hauteur_img[$logo];
    }
    if (!$srcWidth or !$srcHeight) {
        if (file_exists($logo) and $srcsize = @getimagesize($logo)) {
            if (!$srcWidth) {
                $largeur_img[$logo] = $srcWidth = $srcsize[0];
            }
            if (!$srcHeight) {
                $hauteur_img[$logo] = $srcHeight = $srcsize[1];
            }
        } elseif (@file_exists($f = "{$logo}.src") and lire_fichier($f, $valeurs) and $valeurs = unserialize($valeurs)) {
            if (!$srcWidth) {
                $largeur_img[$logo] = $srcWidth = $valeurs["largeur_dest"];
            }
            if (!$srcHeight) {
                $hauteur_img[$logo] = $srcHeight = $valeurs["hauteur_dest"];
            }
        }
    }
    return array($srcHeight, $srcWidth);
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:48,代码来源:filtres.php

示例12: aide_fichier

function aide_fichier($path, $help_server)
{
    $md5 = md5(serialize($help_server));
    $fichier_aide = _DIR_AIDE . substr($md5, 0, 16) . "-" . $path;
    $lastm = @filemtime($fichier_aide);
    $lastversion = @filemtime(_DIR_RESTREINT . 'inc_version.php');
    $here = @(is_readable($fichier_aide) and $lastm >= $lastversion);
    $contenu = '';
    if ($here) {
        lire_fichier($fichier_aide, $contenu);
        return array($contenu, $lastm);
    }
    // mettre en cache (tant pis si echec)
    sous_repertoire(_DIR_AIDE, '', '', true);
    $contenu = array();
    include_spip('inc/distant');
    foreach ($help_server as $k => $server) {
        // Remplacer les liens aux images par leur gestionnaire de cache
        $url = "{$server}/{$path}";
        $local = _DIR_AIDE . substr(md5($url), 0, 8) . "-" . preg_replace(",[^\\w.]+,i", "_", $url);
        $local = _DIR_RACINE . copie_locale($url, 'modif', $local);
        lire_fichier($local, $page);
        $page = aide_fixe_img($page, $server);
        // les liens internes ne doivent pas etre deguises en externes
        $url = parse_url($url);
        $re = '@(<a\\b[^>]*\\s+href=["\'])' . '(?:' . $url['scheme'] . '://' . $url['host'] . ')?' . $url['path'] . '([^"\']*)@ims';
        $page = preg_replace($re, '\\1\\2', $page);
        preg_match_all(_SECTIONS_AIDE, $page, $sections, PREG_SET_ORDER);
        // Fusionner les aides ayant meme nom de section
        $vus = array();
        foreach ($sections as $section) {
            list($tout, $prof, $sujet, ) = $section;
            if (in_array($sujet, $vus)) {
                continue;
            }
            $corps = aide_section($sujet, $page, $prof);
            foreach ($contenu as $k => $s) {
                if ($sujet == $k) {
                    // Section deja vue qu'il faut completer
                    // Si le complement a des sous-sections,
                    // ne pas en tenir compte quand on les rencontrera
                    // lors des prochains passages dans la boucle
                    preg_match_all(_SECTIONS_AIDE, $corps, $s, PREG_PATTERN_ORDER);
                    if ($s) {
                        $vus = array_merge($vus, $s[2]);
                    }
                    $contenu[$k] .= $corps;
                    $corps = '';
                    break;
                }
            }
            // Si totalement nouveau, inserer le titre
            // mais pas le corps s'il contient des sous-sections:
            // elles vont venir dans les passages suivants
            if ($corps) {
                $corps = aide_section($sujet, $page);
                $contenu[$sujet] = $tout . "\n" . $corps;
            }
        }
    }
    $contenu = '<div>' . join('', $contenu) . '</div>';
    // Renvoyer les liens vraiment externes dans une autre fenetre
    $contenu = preg_replace('@<a href="(http://[^"]+)"([^>]*)>@', '<a href="\\1"\\2 target="_blank">', $contenu);
    // Correction typo dans la langue demandee
    #changer_typo($lang_aide);
    $contenu = '<body>' . $contenu . '</body>';
    if (strlen($contenu) <= 100) {
        return array(false, false);
    }
    ecrire_fichier($fichier_aide, $contenu);
    return array($contenu, time());
}
开发者ID:genma,项目名称:spip_ynh,代码行数:72,代码来源:aider.php

示例13: taille_image

function taille_image($img) {

	static $largeur_img =array(), $hauteur_img= array();
	$srcWidth = 0;
	$srcHeight = 0;

	$logo = extraire_attribut($img,'src');

	if (!$logo) $logo = $img;
	else {
		$srcWidth = extraire_attribut($img,'width');
		$srcHeight = extraire_attribut($img,'height');
	}

	// ne jamais operer directement sur une image distante pour des raisons de perfo
	// la copie locale a toutes les chances d'etre la ou de resservir
	if (preg_match(';^(\w{3,7}://);', $logo)){
		include_spip('inc/distant');
		$fichier = copie_locale($logo);
		$logo = $fichier ? _DIR_RACINE . $fichier : $logo;
	}
	if (($p=strpos($logo,'?'))!==FALSE)
		$logo=substr($logo,0,$p);

	$srcsize = false;
	if (isset($largeur_img[$logo]))
		$srcWidth = $largeur_img[$logo];
	if (isset($hauteur_img[$logo]))
		$srcHeight = $hauteur_img[$logo];
	if (!$srcWidth OR !$srcHeight){
		if ($srcsize = @getimagesize($logo)){
			if (!$srcWidth)	$largeur_img[$logo] = $srcWidth = $srcsize[0];
			if (!$srcHeight)	$hauteur_img[$logo] = $srcHeight = $srcsize[1];
		}
		// $logo peut etre une reference a une image temporaire dont a n'a que le log .src
		// on s'y refere, l'image sera reconstruite en temps utile si necessaire
		elseif(@file_exists($f = "$logo.src")
		  AND lire_fichier($f,$valeurs)
		  AND $valeurs=unserialize($valeurs)) {
			if (!$srcWidth)	$largeur_img[$mem] = $srcWidth = $valeurs["largeur_dest"];
			if (!$srcHeight)	$hauteur_img[$mem] = $srcHeight = $valeurs["hauteur_dest"];
	  }
	}
	return array($srcHeight, $srcWidth);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:45,代码来源:filtres.php

示例14: action_editer_site_dist

function action_editer_site_dist($arg=null) {

	if (is_null($arg)){
		$securiser_action = charger_fonction('securiser_action', 'inc');
		$arg = $securiser_action();
	}
	$resyndiquer = false;

	include_spip('inc/filtres'); // pour vider_url()

	if (preg_match(',options/(\d+),',$arg, $r)) {
		$id_syndic = $r[1];
		$resyndiquer = editer_site_options($id_syndic);
	// Envoi depuis le formulaire d'edition d'un site existant
	} else if ($id_syndic = intval($arg)) {
		// reload si on change une des valeurs de syndication
		if (
		(_request('url_syndic') OR _request('resume') OR _request('syndication'))
		AND $t = sql_fetsel('url_syndic,syndication,resume', 'spip_syndic', "id_syndic=".sql_quote($id_syndic))
		AND (
			(_request('url_syndic') AND _request('url_syndic') != $t['url_syndic'])
			OR
			(_request('syndication') AND _request('syndication') != $t['syndication'])
			OR
			(_request('resume') AND _request('resume') != $t['resume'])
			)
		)
			set_request('reload', 'oui');
		revisions_sites($id_syndic);

	// Envoi normal depuis le formulaire de creation d'un site
	}
	elseif (strlen(vider_url(_request('url_site')))
		AND strlen(_request('nom_site'))) {
			set_request('reload', 'oui');
			$id_syndic = insert_syndic(_request('id_parent'));
			revisions_sites($id_syndic);
			if ($logo = _request('logo')
			 AND $format_logo = _request('format_logo')){
			 	include_spip('inc/distant');
				@rename(copie_locale($logo),
				_DIR_IMG . 'siteon'.$id_syndic.'.'.$format_logo);
			 }
	}
	// Erreur
	else {
		include_spip('inc/headers');
		redirige_url_ecrire();
	}

	// Re-syndiquer le site
	if (_request('reload') == 'oui') {
		// Effacer les messages si on supprime la syndication
		if (_request('syndication') == 'non')
			sql_delete("spip_syndic_articles", "id_syndic=".sql_quote($id_syndic));

		$t = sql_getfetsel('descriptif', 'spip_syndic', "id_syndic=$id_syndic AND syndication IN ('oui', 'sus', 'off')", '','', 1);
		if ($t !== NULL) {

			// Si descriptif vide, chercher le logo si pas deja la
			$chercher_logo = charger_fonction('chercher_logo', 'inc');
			if (!$logo = $chercher_logo($id_syndic, 'id_syndic', 'on')
			OR !$t) {
				if ($auto = vider_url(_request('url_auto'))) {
					$auto = analyser_site($auto);
					if (!strlen($t) AND strlen($auto['descriptif']))
						revisions_sites($id_syndic, array('descriptif' => $auto['descriptif']));
				}
				if (!$logo
				AND $auto['logo'] AND $auto['format_logo'])
					@rename($auto['logo'],
					_DIR_IMG . 'siteon'.$id_syndic.'.'.$auto['format_logo']);
			}
			$resyndiquer = true;
		}
	}

	if ($resyndiquer) {
	  // ah si PHP connaisait les fermetures...
	  // A la place, une constante utilisee exclusivement
	  // dans la fct suivante.
		define('_GENIE_SYNDIC_NOW', $id_syndic);
		// forcer l'execution immediate de cette tache
		// (i.e. appeler la fct suivante avec gestion du verrou)
		cron(0, array('syndic' => -91));
	}
	if (_request('redirect')) {
	$redirect = parametre_url(urldecode(_request('redirect')),
		'id_syndic', $id_syndic, '&');
		include_spip('inc/headers');
		redirige_par_entete($redirect);
	}
	else
		return array($id_syndic,'');
}
开发者ID:rhertzog,项目名称:lcs,代码行数:95,代码来源:editer_site.php

示例15: image_du_document

function image_du_document($document)
{
    $e = $document['extension'];
    if (strpos($GLOBALS['meta']['formats_graphiques'], $e) !== false and (!test_espace_prive() or $GLOBALS['meta']['creer_preview'] == 'oui') and $document['fichier']) {
        if ($document['distant'] == 'oui') {
            $image = _DIR_RACINE . copie_locale($document['fichier']);
        } else {
            $image = get_spip_doc($document['fichier']);
        }
        if (@file_exists($image)) {
            return $image;
        }
    }
    return '';
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:15,代码来源:documents.php


注:本文中的copie_locale函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。