Chargement en cours formulaires/ajouter_depot.html +1 −1 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -19,7 +19,7 @@ <a class="spip_out" title="<:svp:bulle_ajouter_spipzone:>" href="https://plugins.spip.net/depots/principal.xml" onclick="$('#xml_paquets').attr('value',$(this).attr('href')).focus();return false;"><:svp:info_adresse_spipzone:></a> <i>(<a class="spip_out" href="https://plugins.spip.net/spip.php?page=depots" onclick="window.open(this.href); return false;"><:svp:titre_liste_depots:></a>)</i> </p> [<span class="erreur_message">(#ENV{erreurs}|table_valeur{xml_paquets})</span>] <input type="text" name="xml_paquets" id="xml_paquets" value="[https://plugins.spip.net/depots/principal.xml(#VAL{depot}|svp_compter|table_valeur{depot}|=={0}|oui)]" class="text" /> <input type="text" name="xml_paquets" id="xml_paquets" value="[https://plugins.spip.net/depots/principal.xml(#ENV{nb_depots}|non)]" class="text" /> </div> </div> Chargement en cours formulaires/ajouter_depot.php +3 −1 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -20,7 +20,9 @@ if (!defined("_ECRIRE_INC_VERSION")) { **/ function formulaires_ajouter_depot_charger_dist() { // On ne renvoie pas les valeurs saisies mais on fait un raz systematique return array(); return array( 'nb_depots' => (int)sql_countsel('spip_depots'), ); } /** Chargement en cours svp_fonctions.php +0 −169 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -244,175 +244,6 @@ function svp_afficher_langues($langues, $sep = ', ') { } /** * Retourne un texte indiquant un nombre total de contributions pour un dépot * * Calcule différents totaux pour un dépot donné et retourne un texte * de ces différents totaux. Les totaux correspondent par défaut aux * plugins et paquets, mais l'on peut demander le total des autres contributions * avec le second paramètre. * * @uses svp_compter() * @param int $id_depot * Identifiant du dépot * Zéro (par défaut) signifie ici : «dans tous les dépots distants» * (id_dépot>0) et non «dans le dépot local» * @param string $contrib * Type de total demandé ('plugin' ou autre) * Si 'plugin' : indique le nombre de plugins et de paquets du dépot * Si autre chose : indique le nombre des autres contributions, c'est * à dire des zips qui ne sont pas des plugins, comme certaines libraires ou * certains jeux de squelettes. * @return string * Texte indiquant certains totaux tel que nombre de plugins, nombre de paquets... **/ function svp_compter_depots($id_depot, $contrib = 'plugin') { $total = svp_compter('depot', $id_depot); if (!$id_depot) { $info = _T('svp:info_depots_disponibles', array('total_depots' => $total['depot'])) . ', ' . _T('svp:info_plugins_heberges', array('total_plugins' => $total['plugin'])) . ', ' . _T('svp:info_paquets_disponibles', array('total_paquets' => $total['paquet'])); } else { if ($contrib == 'plugin') { $info = _T('svp:info_plugins_heberges', array('total_plugins' => $total['plugin'])) . ', ' . _T('svp:info_paquets_disponibles', array('total_paquets' => $total['paquet'] - $total['autre'])); } else { $info = _T('svp:info_contributions_hebergees', array('total_autres' => $total['autre'])); } } return $info; } /** * Retourne un texte indiquant un nombre total de plugins * * Calcule le nombre de plugins correspondant à certaines contraintes, * tel que l'appartenance à un certain dépot, une certaine catégorie * ou une certaine branche de SPIP et retourne une phrase traduite * tel que «64 plugins disponibles» * * @uses svp_compter() * @param int $id_depot * Identifiant du dépot * Zéro (par défaut) signifie ici : «dans tous les dépots distants» * (id_dépot>0) et non «dans le dépot local» * @param string $categorie * Type de catégorie (auteur, communication, date...) * @param string $compatible_spip * Numéro de branche de SPIP. (3.0, 2.1, ...) * @return string * Texte indiquant un nombre total de paquets **/ function svp_compter_plugins($id_depot = 0, $categorie = '', $compatible_spip = '') { $total = svp_compter('plugin', $id_depot, $categorie, $compatible_spip); $info = _T('svp:info_plugins_disponibles', array('total_plugins' => $total['plugin'])); return $info; } /** * Compte le nombre de plugins, paquets ou autres contributions * en fonction de l'entité demandée et de contraintes * * Calcule, pour un type d'entité demandé (depot, plugin, paquet, catégorie) * leur nombre en fonction de certaines contraintes, tel que l'appartenance * à un certain dépot, une certaine catégorie ou une certaine branche de SPIP. * * Lorsque l'entité demandée est un dépot, le tableau des totaux possède, * en plus du nombre de dépots, le nombre de plugins et paquets. * * @note * Attention le critère de compatibilite SPIP pris en compte est uniquement * celui d'une branche SPIP * * @param string $entite * De quoi veut-on obtenir des comptes. Peut être 'depot', 'plugin', * 'paquet' ou 'categorie' * @param int $id_depot * Identifiant du dépot * Zéro (par défaut) signifie ici : «dans tous les dépots distants» * (id_dépot>0) et non «dans le dépot local» * @param string $categorie * Type de catégorie (auteur, communication, date...) * @param string $compatible_spip * Numéro de branche de SPIP. (3.0, 2.1, ...) * @return array * Couples (entite => nombre). **/ function svp_compter($entite, $id_depot = 0, $categorie = '', $compatible_spip = '') { $compteurs = array(); $where = array(); if ($id_depot) { $where[] = "t1.id_depot=" . sql_quote($id_depot); } else { $where[] = "t1.id_depot>0"; } if ($entite == 'plugin') { $from = array('spip_plugins AS t2', 'spip_depots_plugins AS t1'); $where[] = "t1.id_plugin=t2.id_plugin"; if ($categorie) { $where[] = "t2.categorie=" . sql_quote($categorie); } if ($compatible_spip) { $creer_where = charger_fonction('where_compatible_spip', 'inc'); $where[] = $creer_where($compatible_spip, 't2', '>'); } $compteurs['plugin'] = sql_count(sql_select('DISTINCT t1.id_plugin', $from, $where)); } elseif ($entite == 'paquet') { $from = array('spip_paquets AS t1'); if ($categorie) { $ids = sql_allfetsel('id_plugin', 'spip_plugins', 'categorie=' . sql_quote($categorie)); $ids = array_column($ids, 'id_plugin'); $where[] = sql_in('t1.id_plugin', $ids); } if ($compatible_spip) { $creer_where = charger_fonction('where_compatible_spip', 'inc'); $where[] = $creer_where($compatible_spip, 't1', '>'); } $compteurs['paquet'] = sql_countsel($from, $where); } elseif ($entite == 'depot') { $from = array('spip_depots AS t1'); $select = array( 'COUNT(t1.id_depot) AS depot', 'SUM(t1.nbr_plugins) AS plugin', 'SUM(t1.nbr_paquets) AS paquet', 'SUM(t1.nbr_autres) AS autre' ); $compteurs = sql_fetsel($select, $from, $where); } elseif ($entite == 'categorie') { $from = array('spip_plugins AS t2', 'spip_depots_plugins AS t1'); $where[] = "t1.id_plugin=t2.id_plugin"; if ($id_depot) { $ids = sql_allfetsel('id_plugin', 'spip_depots_plugins AS t1', $where); $ids = array_column($ids, 'id_plugin'); $where[] = sql_in('t2.id_plugin', $ids); } if ($compatible_spip) { $creer_where = charger_fonction('where_compatible_spip', 'inc'); $where[] = $creer_where($compatible_spip, 't2', '>'); } if ($categorie) { $where[] = "t2.categorie=" . sql_quote($categorie); $compteurs['categorie'] = sql_count(sql_select('DISTINCT t1.id_plugin', $from, $where)); } else { $select = array('t2.categorie', 'count(DISTINCT t1.id_plugin) as nb'); $group_by = array('t2.categorie'); $plugins = sql_allfetsel($select, $from, $where, $group_by); $compteurs['categorie'] = array_column($plugins, 'nb', 'categorie'); } } return $compteurs; } /** * Compile la balise `#SVP_BRANCHES_SPIP` * Chargement en cours Chargement en cours
formulaires/ajouter_depot.html +1 −1 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -19,7 +19,7 @@ <a class="spip_out" title="<:svp:bulle_ajouter_spipzone:>" href="https://plugins.spip.net/depots/principal.xml" onclick="$('#xml_paquets').attr('value',$(this).attr('href')).focus();return false;"><:svp:info_adresse_spipzone:></a> <i>(<a class="spip_out" href="https://plugins.spip.net/spip.php?page=depots" onclick="window.open(this.href); return false;"><:svp:titre_liste_depots:></a>)</i> </p> [<span class="erreur_message">(#ENV{erreurs}|table_valeur{xml_paquets})</span>] <input type="text" name="xml_paquets" id="xml_paquets" value="[https://plugins.spip.net/depots/principal.xml(#VAL{depot}|svp_compter|table_valeur{depot}|=={0}|oui)]" class="text" /> <input type="text" name="xml_paquets" id="xml_paquets" value="[https://plugins.spip.net/depots/principal.xml(#ENV{nb_depots}|non)]" class="text" /> </div> </div> Chargement en cours
formulaires/ajouter_depot.php +3 −1 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -20,7 +20,9 @@ if (!defined("_ECRIRE_INC_VERSION")) { **/ function formulaires_ajouter_depot_charger_dist() { // On ne renvoie pas les valeurs saisies mais on fait un raz systematique return array(); return array( 'nb_depots' => (int)sql_countsel('spip_depots'), ); } /** Chargement en cours
svp_fonctions.php +0 −169 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -244,175 +244,6 @@ function svp_afficher_langues($langues, $sep = ', ') { } /** * Retourne un texte indiquant un nombre total de contributions pour un dépot * * Calcule différents totaux pour un dépot donné et retourne un texte * de ces différents totaux. Les totaux correspondent par défaut aux * plugins et paquets, mais l'on peut demander le total des autres contributions * avec le second paramètre. * * @uses svp_compter() * @param int $id_depot * Identifiant du dépot * Zéro (par défaut) signifie ici : «dans tous les dépots distants» * (id_dépot>0) et non «dans le dépot local» * @param string $contrib * Type de total demandé ('plugin' ou autre) * Si 'plugin' : indique le nombre de plugins et de paquets du dépot * Si autre chose : indique le nombre des autres contributions, c'est * à dire des zips qui ne sont pas des plugins, comme certaines libraires ou * certains jeux de squelettes. * @return string * Texte indiquant certains totaux tel que nombre de plugins, nombre de paquets... **/ function svp_compter_depots($id_depot, $contrib = 'plugin') { $total = svp_compter('depot', $id_depot); if (!$id_depot) { $info = _T('svp:info_depots_disponibles', array('total_depots' => $total['depot'])) . ', ' . _T('svp:info_plugins_heberges', array('total_plugins' => $total['plugin'])) . ', ' . _T('svp:info_paquets_disponibles', array('total_paquets' => $total['paquet'])); } else { if ($contrib == 'plugin') { $info = _T('svp:info_plugins_heberges', array('total_plugins' => $total['plugin'])) . ', ' . _T('svp:info_paquets_disponibles', array('total_paquets' => $total['paquet'] - $total['autre'])); } else { $info = _T('svp:info_contributions_hebergees', array('total_autres' => $total['autre'])); } } return $info; } /** * Retourne un texte indiquant un nombre total de plugins * * Calcule le nombre de plugins correspondant à certaines contraintes, * tel que l'appartenance à un certain dépot, une certaine catégorie * ou une certaine branche de SPIP et retourne une phrase traduite * tel que «64 plugins disponibles» * * @uses svp_compter() * @param int $id_depot * Identifiant du dépot * Zéro (par défaut) signifie ici : «dans tous les dépots distants» * (id_dépot>0) et non «dans le dépot local» * @param string $categorie * Type de catégorie (auteur, communication, date...) * @param string $compatible_spip * Numéro de branche de SPIP. (3.0, 2.1, ...) * @return string * Texte indiquant un nombre total de paquets **/ function svp_compter_plugins($id_depot = 0, $categorie = '', $compatible_spip = '') { $total = svp_compter('plugin', $id_depot, $categorie, $compatible_spip); $info = _T('svp:info_plugins_disponibles', array('total_plugins' => $total['plugin'])); return $info; } /** * Compte le nombre de plugins, paquets ou autres contributions * en fonction de l'entité demandée et de contraintes * * Calcule, pour un type d'entité demandé (depot, plugin, paquet, catégorie) * leur nombre en fonction de certaines contraintes, tel que l'appartenance * à un certain dépot, une certaine catégorie ou une certaine branche de SPIP. * * Lorsque l'entité demandée est un dépot, le tableau des totaux possède, * en plus du nombre de dépots, le nombre de plugins et paquets. * * @note * Attention le critère de compatibilite SPIP pris en compte est uniquement * celui d'une branche SPIP * * @param string $entite * De quoi veut-on obtenir des comptes. Peut être 'depot', 'plugin', * 'paquet' ou 'categorie' * @param int $id_depot * Identifiant du dépot * Zéro (par défaut) signifie ici : «dans tous les dépots distants» * (id_dépot>0) et non «dans le dépot local» * @param string $categorie * Type de catégorie (auteur, communication, date...) * @param string $compatible_spip * Numéro de branche de SPIP. (3.0, 2.1, ...) * @return array * Couples (entite => nombre). **/ function svp_compter($entite, $id_depot = 0, $categorie = '', $compatible_spip = '') { $compteurs = array(); $where = array(); if ($id_depot) { $where[] = "t1.id_depot=" . sql_quote($id_depot); } else { $where[] = "t1.id_depot>0"; } if ($entite == 'plugin') { $from = array('spip_plugins AS t2', 'spip_depots_plugins AS t1'); $where[] = "t1.id_plugin=t2.id_plugin"; if ($categorie) { $where[] = "t2.categorie=" . sql_quote($categorie); } if ($compatible_spip) { $creer_where = charger_fonction('where_compatible_spip', 'inc'); $where[] = $creer_where($compatible_spip, 't2', '>'); } $compteurs['plugin'] = sql_count(sql_select('DISTINCT t1.id_plugin', $from, $where)); } elseif ($entite == 'paquet') { $from = array('spip_paquets AS t1'); if ($categorie) { $ids = sql_allfetsel('id_plugin', 'spip_plugins', 'categorie=' . sql_quote($categorie)); $ids = array_column($ids, 'id_plugin'); $where[] = sql_in('t1.id_plugin', $ids); } if ($compatible_spip) { $creer_where = charger_fonction('where_compatible_spip', 'inc'); $where[] = $creer_where($compatible_spip, 't1', '>'); } $compteurs['paquet'] = sql_countsel($from, $where); } elseif ($entite == 'depot') { $from = array('spip_depots AS t1'); $select = array( 'COUNT(t1.id_depot) AS depot', 'SUM(t1.nbr_plugins) AS plugin', 'SUM(t1.nbr_paquets) AS paquet', 'SUM(t1.nbr_autres) AS autre' ); $compteurs = sql_fetsel($select, $from, $where); } elseif ($entite == 'categorie') { $from = array('spip_plugins AS t2', 'spip_depots_plugins AS t1'); $where[] = "t1.id_plugin=t2.id_plugin"; if ($id_depot) { $ids = sql_allfetsel('id_plugin', 'spip_depots_plugins AS t1', $where); $ids = array_column($ids, 'id_plugin'); $where[] = sql_in('t2.id_plugin', $ids); } if ($compatible_spip) { $creer_where = charger_fonction('where_compatible_spip', 'inc'); $where[] = $creer_where($compatible_spip, 't2', '>'); } if ($categorie) { $where[] = "t2.categorie=" . sql_quote($categorie); $compteurs['categorie'] = sql_count(sql_select('DISTINCT t1.id_plugin', $from, $where)); } else { $select = array('t2.categorie', 'count(DISTINCT t1.id_plugin) as nb'); $group_by = array('t2.categorie'); $plugins = sql_allfetsel($select, $from, $where, $group_by); $compteurs['categorie'] = array_column($plugins, 'nb', 'categorie'); } } return $compteurs; } /** * Compile la balise `#SVP_BRANCHES_SPIP` * Chargement en cours