本文整理汇总了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");
}
}
示例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));
}
示例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));
}
}
示例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;
}
示例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;
}
示例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);
}
示例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
)
);
}
示例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);
}
示例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;
}
示例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);
}
示例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);
}
示例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());
}
示例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);
}
示例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,'');
}
示例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 '';
}