Example #1
0
function generer_generer_url($type, $p)
{
	$_id = interprete_argument_balise(1,$p);

	if (!$_id) $_id = champ_sql('id_' . $type, $p);

	return generer_generer_url_arg($type, $p, $_id);
}
Example #2
0
File: url_.php Project: nursit/SPIP
function generer_generer_url($type, $p)
{
    $_id = interprete_argument_balise(1, $p);
    if (!$_id) {
        $primary = id_table_objet($type);
        $_id = champ_sql($primary, $p);
    }
    return generer_generer_url_arg($type, $p, $_id);
}
Example #3
0
/**
 * #URL_EVENEMENT envoie sur la page de l'evenement
 * ou sur la page de l'article avec un &id_evenement=xxx
 * selon la configuration de l'agenda
 *
 * @param object $p
 * @return object
 */
function balise_URL_EVENEMENT_dist($p)
{
    include_spip("inc/config");
    include_spip("balise/url_");
    if (lire_config("agenda/url_evenement", 'evenement') !== 'article') {
        $code = generer_generer_url('evenement', $p);
    } else {
        $_ide = interprete_argument_balise(1, $p);
        if (!$_ide) {
            $_ide = champ_sql('id_evenement', $p);
        }
        $_ida = "generer_info_entite({$_ide},'evenement','id_article')";
        $code = generer_generer_url_arg('article', $p, $_ida);
        $code = "parametre_url({$code},'id_evenement',{$_ide},'&')";
    }
    $code = champ_sql('url_evenement', $p, $code);
    $p->code = $code;
    if (!$p->etoile) {
        $p->code = "vider_url({$code})";
    }
    $p->interdire_scripts = false;
    return $p;
}
Example #4
0
function balise_LOGO__dist($p)
{
    preg_match(",^LOGO_([A-Z_]+?)(|_NORMAL|_SURVOL|_RUBRIQUE)\$,i", $p->nom_champ, $regs);
    $type = strtolower($regs[1]);
    $suite_logo = $regs[2];
    // cas de #LOGO_SITE_SPIP
    if ($type == 'site_spip') {
        $type = 'site';
        $_id_objet = "\"'0'\"";
    }
    $id_objet = id_table_objet($type);
    if (!isset($_id_objet) or !$_id_objet) {
        $_id_objet = champ_sql($id_objet, $p);
    }
    $fichier = $p->etoile === '**' ? -1 : 0;
    $coord = array();
    $align = $lien = '';
    $mode_logo = '';
    if ($p->param and !$p->param[0][0]) {
        $params = $p->param[0];
        array_shift($params);
        foreach ($params as $a) {
            if ($a[0]->type === 'texte') {
                $n = $a[0]->texte;
                if (is_numeric($n)) {
                    $coord[] = $n;
                } elseif (in_array($n, array('top', 'left', 'right', 'center', 'bottom'))) {
                    $align = $n;
                } elseif (in_array($n, array('auto', 'icone', 'apercu', 'vignette'))) {
                    $mode_logo = $n;
                }
            } else {
                $lien = calculer_liste($a, $p->descr, $p->boucles, $p->id_boucle);
            }
        }
    }
    $coord_x = !$coord ? 0 : intval(array_shift($coord));
    $coord_y = !$coord ? 0 : intval(array_shift($coord));
    if ($p->etoile === '*') {
        include_spip('balise/url_');
        $lien = generer_generer_url_arg($type, $p, $_id_objet);
    }
    $connect = $p->id_boucle ? $p->boucles[$p->id_boucle]->sql_serveur : '';
    if ($type == 'document') {
        $qconnect = _q($connect);
        $doc = "quete_document({$_id_objet}, {$qconnect})";
        if ($fichier) {
            $code = "quete_logo_file({$doc}, {$qconnect})";
        } else {
            $code = "quete_logo_document({$doc}, " . ($lien ? $lien : "''") . ", '{$align}', '{$mode_logo}', {$coord_x}, {$coord_y}, {$qconnect})";
        }
        // (x=non-faux ? y : '') pour affecter x en retournant y
        if ($p->descr['documents']) {
            $code = '(($doublons["documents"] .= ",". ' . $_id_objet . ") ? {$code} : '')";
        }
    } elseif ($connect) {
        $code = "''";
        spip_log("Les logos distants ne sont pas prevus");
    } else {
        $code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
    }
    // demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
    if ($coord_x or $coord_y) {
        $code = "filtrer('image_graver',filtrer('image_reduire'," . $code . ", '{$coord_x}', '{$coord_y}'))";
    }
    $p->code = $code;
    $p->interdire_scripts = false;
    return $p;
}