本文整理汇总了PHP中pipeline函数的典型用法代码示例。如果您正苦于以下问题:PHP pipeline函数的具体用法?PHP pipeline怎么用?PHP pipeline使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pipeline函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: action_bank_enregistrer_modereglement_dist
/**
* @deprecated
* @param null|string $arg
*/
function action_bank_enregistrer_modereglement_dist($arg = null)
{
if (is_null($arg)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
$arg = explode("-", $arg);
$id_transaction = intval(array_pop($arg));
$presta = implode("-", $arg);
if (isset($GLOBALS['meta']['bank_paiement']) and $config = unserialize($GLOBALS['meta']['bank_paiement'])) {
$prestas = is_array($config['presta']) ? $config['presta'] : array();
$prestas = array_filter($prestas);
if (is_array($config['presta_abo'])) {
$prestas = array_merge($prestas, array_filter($config['presta_abo']));
}
}
if ((isset($prestas[$presta]) and $prestas[$presta] or $presta == 'gratuit') and $id_transaction and $transaction = sql_fetsel('*', 'spip_transactions', 'id_transaction=' . intval($id_transaction))) {
if ($transaction['statut'] == 'commande') {
sql_updateq("spip_transactions", array('mode' => $presta, 'autorisation_id' => date('d/m/Y-H:i:s') . "/" . $GLOBALS['ip']), 'id_transaction=' . intval($id_transaction));
// trigger le regelement en attente
// cela permet de factoriser le code
$row = sql_fetsel('*', 'spip_transactions', 'id_transaction=' . intval($id_transaction));
pipeline('trig_bank_reglement_en_attente', array('args' => array('statut' => 'attente', 'mode' => $row['mode'], 'type' => $row['abo_uid'] ? 'abo' : 'acte', 'id_transaction' => $id_transaction, 'row' => $row), 'data' => ''));
$GLOBALS['redirect'] = _request('redirect');
$GLOBALS['redirect'] = parametre_url($GLOBALS['redirect'], "attente_mode", $presta, "&");
}
}
}
示例2: supprimer_lien_document
function supprimer_lien_document($id_document, $objet, $id_objet) {
if (!$id_document = intval($id_document))
return false;
// D'abord on ne supprime pas, on dissocie
sql_delete("spip_documents_liens",
$z = "id_objet=".intval($id_objet)." AND objet=".sql_quote($objet)." AND id_document=".$id_document);
// Si c'est une vignette, l'eliminer du document auquel elle appartient
sql_updateq("spip_documents", array('id_vignette' => 0), "id_vignette=".$id_document);
pipeline('post_edition',
array(
'args' => array(
'operation' => 'delier_document',
'table' => 'spip_documents',
'id_objet' => $id_document,
'objet' => $objet,
'id' => $id_objet
),
'data' => null
)
);
// On supprime ensuite s'il est orphelin
// (autorisation verifiee dans l'action)
$supprimer_document = charger_fonction('supprimer_document','action');
return $supprimer_document($id_document);
}
示例3: insert_rubrique
function insert_rubrique($id_parent) {
$champs = array(
'titre' => _T('item_nouvelle_rubrique'),
'id_parent' => intval($id_parent),
'statut' => 'new');
// Envoyer aux plugins
$champs = pipeline('pre_insertion',
array(
'args' => array(
'table' => 'spip_rubriques',
),
'data' => $champs
)
);
$id_rubrique = sql_insertq("spip_rubriques", $champs);
pipeline('post_insertion',
array(
'args' => array(
'table' => 'spip_rubriques',
'id_objet' => $id_rubrique
),
'data' => $champs
)
);
propager_les_secteurs();
calculer_langues_rubriques();
return $id_rubrique;
}
示例4: supprimer_lien_document
/**
* Supprimer un lien entre un document et un objet
*
* @param int $id_document
* @param string $objet
* @param int $id_objet
* @param bool $supprime
* si true, le document est supprime si plus lie a aucun objet
* @param bool $check
* si true, on verifie les documents references dans le texte de l'objet
* et on les associe si pas deja fait
* @return bool
*/
function supprimer_lien_document($id_document, $objet, $id_objet, $supprime = false, $check = false)
{
if (!($id_document = intval($id_document))) {
return false;
}
// D'abord on ne supprime pas, on dissocie
include_spip('action/editer_liens');
objet_dissocier(array('document' => $id_document), array($objet => $id_objet));
// Si c'est une vignette, l'eliminer du document auquel elle appartient
// cas tordu peu probable
sql_updateq("spip_documents", array('id_vignette' => 0), "id_vignette=" . $id_document);
// verifier son statut apres une suppression de lien
include_spip('action/editer_document');
document_instituer($id_document);
pipeline('post_edition', array('args' => array('operation' => 'delier_document', 'action' => 'delier_document', 'table' => 'spip_documents', 'id_objet' => $id_document, 'objet' => $objet, 'id' => $id_objet), 'data' => null));
if ($check) {
// si demande, on verifie que ses documents vus sont bien lies !
$spip_table_objet = table_objet_sql($objet);
$table_objet = table_objet($objet);
$id_table_objet = id_table_objet($objet, $serveur);
$champs = sql_fetsel('*', $spip_table_objet, addslashes($id_table_objet) . "=" . intval($id_objet));
$marquer_doublons_doc = charger_fonction('marquer_doublons_doc', 'inc');
$marquer_doublons_doc($champs, $id_objet, $objet, $id_table_objet, $table_objet, $spip_table_objet, '', $serveur);
}
// On supprime ensuite s'il est orphelin
// et si demande
// ici on ne bloque pas la suppression d'un document rattache a un autre
if ($supprime and !sql_countsel('spip_documents_liens', "objet!='document' AND id_document=" . $id_document)) {
$supprimer_document = charger_fonction('supprimer_document', 'action');
return $supprimer_document($id_document);
}
}
示例5: public_styliser_dist
/**
* Déterminer le squelette qui sera utilisé pour rendre la page ou le bloc
* à partir de `$fond` et du `$contetxe`
*
* Actuellement tous les squelettes se terminent par `.html`
* pour des raisons historiques, ce qui est trompeur
*
* @param string $fond
* @param array $contexte
* @param string $lang
* @param string $connect
* @return array
*/
function public_styliser_dist($fond, $contexte, $lang = '', $connect = '')
{
static $styliser_par_z;
// s'assurer que le fond est licite
// car il peut etre construit a partir d'une variable d'environnement
if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) {
$fond = "404";
}
// Choisir entre $fond-dist.html, $fond=7.html, etc?
$id_rubrique = 0;
// Chercher le fond qui va servir de squelette
if ($r = quete_rubrique_fond($contexte)) {
list($id_rubrique, $lang) = $r;
}
// trouver un squelette du nom demande
// ne rien dire si on ne trouve pas,
// c'est l'appelant qui sait comment gerer la situation
// ou les plugins qui feront mieux dans le pipeline
$squelette = trouver_fond($fond, "", true);
$ext = $squelette['extension'];
$flux = array('args' => array('id_rubrique' => $id_rubrique, 'ext' => $ext, 'fond' => $fond, 'lang' => $lang, 'contexte' => $contexte, 'connect' => $connect), 'data' => $squelette['fond']);
if (test_espace_prive() or defined('_ZPIP')) {
if (!$styliser_par_z) {
$styliser_par_z = charger_fonction('styliser_par_z', 'public');
}
$flux = $styliser_par_z($flux);
}
$flux = styliser_par_objets($flux);
// pipeline styliser
$squelette = pipeline('styliser', $flux);
return array($squelette, $ext, $ext, "{$squelette}.{$ext}");
}
示例6: definir_barre_boutons
/**
* definir la liste des boutons du haut et de ses sous-menus
* On defini les boutons a metrtre selon les droits de l'utilisateur
* puis on balance le tout au pipeline "ajouter_menus" pour que des plugins
* puissent y mettre leur grain de sel
*
* @param array $contexte
* @param bool $icones // rechercher les icones
* @param bool $autorise // ne renvoyer que les boutons autorises
* @return array
*/
function definir_barre_boutons($contexte = array(), $icones = true, $autorise = true)
{
include_spip('inc/autoriser');
$boutons_admin = array();
// les boutons du core, issus de prive/navigation.xml
$liste_boutons = array();
// ajouter les boutons issus des plugin via plugin.xml
if (function_exists('boutons_plugins') and is_array($liste_boutons_plugins = boutons_plugins())) {
$liste_boutons =& $liste_boutons_plugins;
}
foreach ($liste_boutons as $id => $infos) {
$parent = "";
// les boutons principaux ne sont pas soumis a autorisation
if (!isset($infos['parent']) or !($parent = $infos['parent']) or !$autorise or autoriser('menu', "_{$id}", 0, NULL, array('contexte' => $contexte))) {
if ($parent and $parent = preg_replace(',^bando_,', 'menu_', $parent) and isset($boutons_admin[$parent])) {
if (!is_array($boutons_admin[$parent]->sousmenu)) {
$boutons_admin[$parent]->sousmenu = array();
}
$position = (isset($infos['position']) and strlen($infos['position'])) ? intval($infos['position']) : count($boutons_admin[$parent]->sousmenu);
if ($position < 0) {
$position = count($boutons_admin[$parent]->sousmenu) + 1 + $position;
}
$boutons_admin[$parent]->sousmenu = array_slice($boutons_admin[$parent]->sousmenu, 0, $position) + array($id => new Bouton(($icones and $infos['icone']) ? find_in_theme($infos['icone']) : '', $infos['titre'], (isset($infos['action']) and $infos['action']) ? $infos['action'] : null, (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null)) + array_slice($boutons_admin[$parent]->sousmenu, $position, 100);
}
if (!$parent and !in_array($id, array('forum', 'statistiques_visites'))) {
$position = (isset($infos['position']) and $infos['position']) ? $infos['position'] : count($boutons_admin);
$boutons_admin = array_slice($boutons_admin, 0, $position) + array($id => new Bouton(($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '', $infos['titre'], (isset($infos['action']) and $infos['action']) ? $infos['action'] : null, (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null)) + array_slice($boutons_admin, $position, 100);
}
}
}
return pipeline('ajouter_menus', $boutons_admin);
}
示例7: abos_preparer_echeance_dist
/**
* Fonction appelee suite a notification par le presta (paybox/payzen) de paiement automatique de l'echeance
* le presta fourni le numero d'abonne selon sa convention,
* et on doit creer une transaction correspondant au paiement attendu de l'echeance
*
* @param string $id
* numero d'abonnement : numero interne a l'implementation, ou uid fourni par le presta, prefixe par uid: dans ce cas
* @return bool|int
* false si on a pas pu renouveler
* id_transaction du renouvellement si reussi
*/
function abos_preparer_echeance_dist($id)
{
spip_log("abos/preparer_echeance id={$id}", "bank");
/*
if (strncmp($id,"uid:",4)==0){
$where = "abonne_uid=".sql_quote(substr($id,4));
}
else {
$where = "id_abonnement=".intval($id);
}
*/
// recuperer les infos en fonction de l'implementation des abonnements
$id_transaction = pipeline('bank_abos_preparer_echeance', array('args' => array('id' => $id), 'data' => false));
if ($id_transaction) {
return $id_transaction;
}
// DEPRECIE, pour compat ascendante
// sinon on essaye sur l'ancien pipeline
// recuperer les infos en fonction de l'implementation des abonnements
$id_transaction = pipeline('bank_abos_renouveler', array('args' => array('id' => $id), 'data' => false));
if ($id_transaction) {
return $id_transaction;
}
// sinon on essaye d'appeler l'ancien abos/renouveler
if ($renouveler = charger_fonction('renouveler', 'abos', true)) {
return $renouveler($id);
}
return false;
}
示例8: action_quete_calendrier_prive_dist
/**
* Fournir une liste d'"evenements" entre deux dates start et end
* au format json
* utilise pour l'affichage du calendrier prive et public
*
* @return void
*/
function action_quete_calendrier_prive_dist()
{
$securiser_action = charger_fonction('securiser_action', 'inc');
$securiser_action();
$start = _request('start');
$end = _request('end');
$quoi = _request('quoi');
include_spip('inc/quete_calendrier');
$evt = array();
// recuperer la liste des evenements au format ics
$start = date('Y-m-d H:i:s', $start);
$end = date('Y-m-d H:i:s', $end);
$limites = array(sql_quote($start), sql_quote($end));
// on fonction de quoi on récupère : tout (rv + publication) ou l'un ou l'autre.
$entier = $duree = array();
if (!$quoi or $quoi == 'rv') {
$duree = quete_calendrier_interval_rv(reset($limites), end($limites));
$evt = convert_fullcalendar_quete_calendrier_interval_rv($duree, $evt);
}
if (!$quoi or $quoi == 'publication') {
list($entier, ) = quete_calendrier_interval($limites);
$evt = convert_fullcalendar_quete_calendrier_interval($entier, $evt);
}
// permettre aux plugins d'afficher leurs evenements dans ce calendrier
$evt = pipeline('quete_calendrier_prive', array('args' => array('start' => $start, 'end' => $end, 'quoi' => $quoi), 'data' => $evt));
// format json
include_spip('inc/json');
echo json_encode($evt);
}
示例9: abos_decrire_echeance_dist
/**
* @param int $id_transaction
* @param bool $force_auto
* true : l'echeance sera forcement prelevee automatiquement
* false : on peut gerer le paiement echeance manuellement en renvoyant un montant nul
* @return array|bool
* montant : montant de l'echeance / si on renvoie 0 il n'y aura pas de paiement automatique mensuel, mais on recuperera les infos CB si possible (paybox) pour prendre en charge les paiements mensuels
* montant_init : montant de l'echeance initiale (si differente de l'echeance principale)
* int count_init : nombre d'echeances initiales (par defaut 0 si pas renseignee - autre valeur que 0 ou 1 supportee uniquement par PayZen/SystemPay)
* int count : nombre d'echeances (sans compter l(es) echeance(s) initiale(s) - 0 si infini/pas de fin prevue supportee uniquement par PayBox/PayZen/SystemPay)
* string freq : 'monthly' ou 'yearly' (tous les mois ou tous les 12 mois - yearly pas supporte par InternetPlus)
*
* string date_start : optionnel, date de debut d'abonnement Y-m-d H:i:s (support par SystemPay uniquement)
* string wha_oid : optionnel, numero d'offre d'abonnement chez WHA/Internet+
*
* false si pas d'abonnement qui correspond a cette transaction
*/
function abos_decrire_echeance_dist($id_transaction, $force_auto = true)
{
$desc = array('montant' => 0, 'montant_init' => 0, 'count_init' => 0, 'count' => 0, 'freq' => 'monthly', 'date_start' => '', 'wha_oid' => '');
// recuperer les infos en fonction de l'implementation des abonnements
$desc = pipeline('bank_abos_decrire_echeance', array('args' => array('id_transaction' => $id_transaction, 'force_auto' => $force_auto), 'data' => $desc));
return $desc;
}
示例10: formulaires_adhi3_recherche_charger_dist
/**
* Chargement des valeurs par defaut des champs du formulaire
*
* @param string $type_objet[facultatif] objet editorial spip
* @param int $id_objet[facultatif] identifiant de l'objet
* @param boolean $adh_i3_rech_ok si au moins 1 critere de recherche saisis.
*
*/
function formulaires_adhi3_recherche_charger_dist($type_objet, $id_objet)
{
// Recuperation des parametres transmis
$datas['type_objet'] = $type_objet;
$datas['id_objet'] = $id_objet;
// Recuperation des champs du formulaire
// ==> lies a adhclub :
$datas['id_saison'] = _request('id_saison');
$datas['techbase'] = _request('techbase');
$datas['encadrant'] = _request('encadrant');
$datas['niveau'] = _request('niveau');
$datas['niv_rel'] = _request('niv_rel');
// ==> lies a i3 :
$datas['ordre'] = _request('ordre');
$datas['desc'] = _request('desc');
$datas['case'] = _request('case');
$datas['valeur'] = _request('valeur');
$datas['exceptions'] = pipeline('i3_exceptions_des_champs_auteurs_elargis', array());
// Raz des criteres si demande affichage tous les adherents
if (_request('afficher_tous')) {
// ==> lies a adhclub :
set_request('id_saison', '');
set_request('techbase', '');
set_request('encadrant', '');
set_request('niveau', '');
set_request('niv_rel', '');
// ==> lies a i3 :
set_request('valeur', '');
set_request('case', '');
}
return $datas;
}
示例11: exec_config_lang_dist
function exec_config_lang_dist()
{
if (!autoriser('configurer', 'lang')) {
include_spip('inc/minipres');
echo minipres();
} else {
$config = charger_fonction('config', 'inc');
$config();
pipeline('exec_init',array('args'=>array('exec'=>'config_lang'),'data'=>''));
$commencer_page = charger_fonction('commencer_page', 'inc');
echo $commencer_page(_T('titre_page_config_contenu'), "configuration", "langues");
echo debut_gauche('', true);
echo debut_droite('', true);
echo "<br /><div style='text-align: center'>",
gros_titre(_T('info_langues'), '', false),
'</div><br />',
barre_onglets("config_lang", "langues"),
'<br />';
$langue = charger_fonction('langue', 'configuration');
echo $langue();
$transcodeur = charger_fonction('transcodeur', 'configuration');
echo $transcodeur();
echo fin_gauche(), fin_page();
}
}
示例12: cextras_objets_valides
function cextras_objets_valides(){
$objets = array();
$objets_extensibles = pipeline("objets_extensibles", array(
'article' => _T('cextras:table_article'),
'auteur' => _T('cextras:table_auteur'),
'breve' => _T('cextras:table_breve'),
'groupes_mot' => _T('cextras:table_groupes_mot'),
'mot' => _T('cextras:table_mot'),
'rubrique' => _T('cextras:table_rubrique'),
'site' => _T('cextras:table_site')
));
ksort($objets_extensibles);
foreach ($objets_extensibles as $objet => $traduction) {
$objets[$objet] = array(
'table' => table_objet_sql($objet),
'type' => objet_type(table_objet($objet)),
'nom' => $traduction,
);
}
return $objets;
}
示例13: inc_forum_insert_dist
/**
* Un parametre permet de forcer le statut (exemple: plugin antispam)
*
* http://code.spip.net/@inc_forum_insert_dist
*
* @param $objet
* @param $id_objet
* @param $id_forum
* en reponse a
* @param null $force_statut
* @return bool
*/
function inc_forum_insert_dist($objet, $id_objet, $id_forum, $force_statut = null)
{
if (!in_array($force_statut, array('privrac', 'privadm'))) {
if (!strlen($objet) or !intval($id_objet)) {
spip_log("Erreur insertion forum sur objet='{$objet}', id_objet={$id_objet}", 'forum.' . _LOG_ERREUR);
return 0;
}
}
spip_log("insertion de forum {$force_statut} sur {$objet} {$id_objet} (+{$id_forum})", 'forum');
include_spip('inc/filtres');
include_spip('inc/modifier');
include_spip('inc/session');
$champs = objet_info('forum', 'champs_editables');
$c = collecter_requests($champs, array());
$c['statut'] = 'off';
$c['objet'] = $objet;
$c['id_objet'] = $id_objet;
$c['auteur'] = sinon(session_get('nom'), session_get('session_nom'));
$c['email_auteur'] = sinon(session_get('email'), session_get('session_email'));
$c = pipeline('pre_edition', array('args' => array('table' => 'spip_forum', 'id_objet' => $id_forum, 'action' => 'instituer'), 'data' => forum_insert_statut($c, $force_statut)));
$id_reponse = forum_insert_base($c, $id_forum, $objet, $id_objet, $c['statut'], _request('ajouter_mot'));
if (!$id_reponse) {
spip_log("Echec insertion forum sur {$objet} {$id_objet} (+{$id_forum})", 'forum.' . _LOG_ERREUR);
} else {
spip_log("forum insere' {$id_reponse} sur {$objet} {$id_objet} (+{$id_forum})", 'forum');
}
return $id_reponse;
}
示例14: jqueryui_insert_head_css
/**
* Ajout des css de jQuery UI pour les pages publiques
*
* @param: $flux
* @return: $flux
*/
function jqueryui_insert_head_css($flux)
{
/**
* Doit on ne pas insérer les css (défini depuis un autre plugin) ?
*/
if (defined('_JQUERYUI_CSS_NON')) {
return $flux;
}
// Modules demandés par le pipeline jqueryui_plugins
is_array($jqueryui_plugins = pipeline('jqueryui_plugins', array())) || ($jqueryui_plugins = array());
// gestion des dépendances des modules demandés
is_array($jqueryui_plugins = jqueryui_dependances($jqueryui_plugins)) || ($jqueryui_plugins = array());
// ajouter le thème si nécessaire
if ($jqueryui_plugins and !in_array('jquery.ui.theme', $jqueryui_plugins)) {
$jqueryui_plugins[] = 'theme';
}
// les css correspondantes aux plugins
$styles = array('accordion', 'autocomplete', 'button', 'core', 'datepicker', 'dialog', 'draggable', 'menus', 'progressbar', 'resizable', 'selectable', 'selectmenu', 'slider', 'sortable', 'spinner', 'tabs', 'tooltip', 'theme');
// insérer les css nécessaires
foreach ($jqueryui_plugins as $plugin) {
if (in_array($plugin, $styles)) {
$flux .= "<link rel='stylesheet' type='text/css' media='all' href='" . find_in_path('css/ui/' . $plugin . '.css') . "' />\n";
}
}
return $flux;
}
示例15: abos_resilier_dist
/**
* @param $id
* @param array $options
* bool immediat : pour forcer la resiliation immediatement, sans attendre la prochaine echeance de paiement
* string message : message stocke en base pour la resiliation
* bool notify_bank : lancer un appel au presta bancaire pour resilier aupres de lui les paiements auto
* @return bool
*/
function abos_resilier_dist($id, $options = array())
{
spip_log("abos/resilier id={$id}", "abos_resil");
/*
if (strncmp($id,"uid:",4)==0){
$where = "abonne_uid=".sql_quote(substr($id,4));
}
else {
$where = "id_abonnement=".intval($id);
}
*/
if (!isset($options['message'])) {
$options['message'] = '';
}
if (!isset($options['immediat'])) {
$options['immediat'] = false;
}
if (!isset($options['notify_bank'])) {
$options['notify_bank'] = true;
}
$args = array('id' => $id, 'message' => $options['message'], 'notify_bank' => $options['notify_bank']);
$now = date('Y-m-d H:i:s');
if ($options['immediat']) {
$args['statut'] = 'resilie';
$args['date_fin'] = $now;
$args['date_echeance'] = $now;
} else {
$args['date_fin'] = "date_echeance";
}
// appel du pipeline, a charge pour lui d'appeler la fonction
// abos_resilier_notify_bank($abonne_uid,$mode_paiement)
// et de mettre a jour les infos de statut/date de fin d'abonnement
$ok = pipeline('bank_abos_resilier', array('args' => $args, 'data' => true));
return $ok;
}