Valider 63eb295b rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Utiliser 'array_column' plutôt que 'array_map' + 'reset', là où il n’y a pas d’ambiguité.

(C’est 2x plus rapide).
parent 7a1756a1
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1103,7 +1103,7 @@ function liste_rubriques_auteur($id_auteur, $raz = false) {
		)
		and count($r)
	) {
		$r = array_map('reset', $r);
		$r = array_column($r, 'id_objet');

		// recuperer toute la branche, au format chaine enumeration
		include_spip('inc/rubriques');
@@ -1730,7 +1730,7 @@ function auteurs_objet($objet, $id_objet, $cond = '') {
		$where
	);
	if (is_array($auteurs)) {
		return array_map('reset', $auteurs);
		return array_column($auteurs, 'id_auteur');
	}
	return array();
}
+11 −7
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -204,7 +204,7 @@ function statuts_articles_visibles($statut_auteur) {
	static $auth = array();
	if (!isset($auth[$statut_auteur])) {
		$auth[$statut_auteur] = array();
		$statuts = array_map('reset', sql_allfetsel('distinct statut', 'spip_articles'));
		$statuts = array_column(sql_allfetsel('distinct statut', 'spip_articles'), 'statut');
		foreach ($statuts as $s) {
			if (autoriser('voir', 'article', 0, array('statut' => $statut_auteur), array('statut' => $s))) {
				$auth[$statut_auteur][] = $s;
@@ -316,7 +316,7 @@ function auteurs_lister_statuts($quoi = 'tous', $en_base = true) {
			$statut = AUTEURS_MIN_REDAC;
			$statut = explode(',', $statut);
			if ($en_base) {
				$check = array_map('reset', sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)));
				$check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
				$retire = array_diff($statut, $check);
				$statut = array_diff($statut, $retire);
			}
@@ -331,19 +331,23 @@ function auteurs_lister_statuts($quoi = 'tous', $en_base = true) {
				// prendre aussi les statuts de la table des status qui ne sont pas dans le define
				$statut = array_diff(array_values($GLOBALS['liste_des_statuts']), $exclus);
			}
			$s_complement = array_map('reset',
				sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $exclus, 'NOT')));
			$s_complement = array_column(
				sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $exclus, 'NOT')),
				'statut'
			);

			return array_unique(array_merge($statut, $s_complement));
			break;
		default:
		case "tous":
			$statut = array_values($GLOBALS['liste_des_statuts']);
			$s_complement = array_map('reset',
				sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut, 'NOT')));
			$s_complement = array_column(
				sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut, 'NOT')),
				'statut'
			);
			$statut = array_merge($statut, $s_complement);
			if ($en_base) {
				$check = array_map('reset', sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)));
				$check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
				$retire = array_diff($statut, $check);
				$statut = array_diff($statut, $retire);
			}
+3 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -208,15 +208,15 @@ function test_enfants_rubrique($id_rubrique, $types = array()) {
		// recuperer tous les freres et soeurs de la rubrique visee
		$id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
		$fratrie = sql_allfetsel('id_rubrique', 'spip_rubriques', 'id_parent=' . intval($id_parent));
		$fratrie = array_map('reset', $fratrie);
		$fratrie = array_column($fratrie, 'id_rubrique');
		$has = sql_allfetsel('DISTINCT id_parent', 'spip_rubriques', sql_in('id_parent', $fratrie));
		$has = array_map('reset', $has);
		$has = array_column($has, 'id_parent');
		$fratrie = array_diff($fratrie, $has);

		while (count($fratrie) and is_array($types) and count($types)) {
			$type = array_shift($types);
			$h = sql_allfetsel('DISTINCT id_rubrique', table_objet_sql($type), sql_in('id_rubrique', $fratrie));
			$h = array_map('reset', $h);
			$h = array_column($h, 'id_rubrique');
			$has = array_merge($has, $h);
			$fratrie = array_diff($fratrie, $h);
		}
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -154,7 +154,7 @@ function genie_queue_watch_dist() {
	$deja_la = true;
	$taches = taches_generales();
	$programmees = sql_allfetsel('fonction', 'spip_jobs', sql_in('fonction', array_keys($taches)));
	$programmees = array_map('reset', $programmees);
	$programmees = array_column($programmees, 'fonction');
	foreach ($taches as $tache => $periode) {
		if (!in_array($tache, $programmees)) {
			queue_genie_replan_job($tache, $periode, time() - round(rand(1, $periode)), 0);
+3 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -382,7 +382,7 @@ function propager_les_secteurs() {
				"spip_rubriques",
				"profondeur=" . intval($prof + 1) . " AND id_parent NOT IN (" . sql_get_select("zzz.id_rubrique",
					"spip_rubriques AS zzz", "zzz.profondeur=" . intval($prof)) . ")", '', '', '0,100')) {
			$rows = array_map('reset', $rows);
			$rows = array_column($rows, 'id');
			sql_updateq("spip_rubriques", array('profondeur' => $prof + 2), sql_in("id_rubrique", $rows));
		}

@@ -663,7 +663,7 @@ function inc_calcul_branche_in_dist($id) {
			'spip_rubriques',
			sql_in('id_parent', $r) . " AND " . sql_in('id_rubrique', $r, 'NOT')
		)) {
		$r = join(',', array_map('reset', $filles));
		$r = join(',', array_column($filles, 'id_rubrique'));
		$branche .= ',' . $r;
	}

@@ -718,7 +718,7 @@ function inc_calcul_hierarchie_in_dist($id, $tout = true) {
			'spip_rubriques',
			sql_in('id_rubrique', $ids_nouveaux_parents) . " AND " . sql_in('id_parent', $hier, 'NOT')
		)) {
		$ids_nouveaux_parents = join(',', array_map('reset', $parents));
		$ids_nouveaux_parents = join(',', array_column($parents, 'id_parent'));
		$hier = $ids_nouveaux_parents . (strlen($hier) ? ',' . $hier : '');
	}