عرض عدد مقالات المؤلف بعد اسمه في صحفة المؤلفين

مرحبا،

(1) كيف يمكن عرض عدد مقالات المؤلف بعد اسمه في صحفة المؤلفين؟ auteurs. الحلقة الحالية تعرض nom and bio. أود إضافة عدد المقالات بعد الاسم.

(2) في حال كان من الممكن عرض عدد المقالات، هل يمكن ترتيب أسماء المؤلفين حسب عدد مقالاتهم؟

مع الشكر.

اهلا

١- لا يوجد صفحة تعرض المؤلفين بين الصفحات النموذجية في spip، هناك صفحة لكل مؤلف.
اذا قمت انت بوضع صفحة للمؤلفين يمكنك ضمن حلقة المؤلف auteurs (بعد الاسم) وضع حلقة articles هكذا:

<B_articles>
		<h2><:articles_auteur:> (#GRAND_TOTAL)</h2>			
</B_articles>

٢- هناك ترتيب حسب عدد مقالات المؤلفين في الصفحة
/prive/objets/liste/auteur.html
باستخدام المعيار compteur_articles

مرحبا، شكرا على الرد. الطريقة الأولى تضع مجموع المقالات في الموقع مع اسم كل مؤلف/ة.

بالنسبة للطريقة الثانية، بحثت عن الملف ووجدت ما يلي (جزء):

[(#COMPTEUR_ARTICLES|singulier_ou_pluriel{info_1_article,info_nb_articles})][
(#PIPELINE{'compter_contributions_auteur'

لكن ليس لهذه الحلقة تأثير على عرض أسماء المؤلفين حسب عدد مقالاتهم. مع الشكر على الرد دائما.

في هذا الملف تجد الحلقة:

BOUCLE_liste_aut(AUTEURS){tout}{id_?}{where?}{statut?}{recherche?}{tri #ENV{par,multi nom},#GET{defaut_tri}}{pagination #ENV{nb,10} aut}{!compteur_articles_filtres #ENV{filtre_statut_articles,poubelle}}>``

لم اجرب لكن حاول استخدام هذه الحلقة مع تغيير المعيار:
{tri #ENV{par,multi nom},#GET{defaut_tri}}

ليصبح:
{tri #ENV{par,compteur_articles}}

او
{tri compteur_articles}

مرحبا، أجريت محاولات مختلفة ولكن لم أحصل على النتيجة المرغوبة. سوف أصرف النظر عن المسألأة. شكرا لإرشاداتك.

مرحبا
1 - اضافة الدالتين التاليتين في ملف squelettes/mes_fonctions.php/:

function critere_compteur_articles_filtres($idb, &$boucles, $crit, $left = false) {
	$boucle = &$boucles[$idb];

	$_statut = calculer_liste($crit->param[0], [], $boucles, $boucle->id_parent);

	$not = '';
	if ($crit->not) {
		$not = ", 'NOT'";
	}
	$boucle->from['LAA'] = 'spip_auteurs_liens';
	$boucle->from_type['LAA'] = 'left';
	$boucle->join['LAA'] = ["'auteurs'", "'id_auteur'", "'id_auteur'", "'LAA.objet=\'article\''"];

	$boucle->from['articles'] = 'spip_articles';
	$boucle->from_type['articles'] = 'left';
	$boucle->join['articles'] = [
		"'LAA'",
		"'id_article'",
		"'id_objet'",
		"'(articles.statut IS NULL OR '.sql_in_quote('articles.statut',[$_statut]$not).')'"
	];

	$boucle->select[] = 'COUNT(articles.id_article) AS compteur_articles';
	$boucle->group[] = 'auteurs.id_auteur';
}

function balise_COMPTEUR_ARTICLES($p) {
	return rindex_pile($p, 'compteur_articles', 'compteur_articles_filtres');
}

2- في صفحة المؤلفين وضع التالي:

[(#SET{defaut_tri,#ARRAY{
					statut,1,
					multi nom,1,
					id_auteur,1,
					site,1,
					compteur_articles,-1,
					points,-1
				}})
				]<B_liste_aut>
				#ANCRE_PAGINATION
				<div class="liste-objets auteurs">
				<table class='spip liste'>
				[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}})</strong></caption>]
					<thead>

						[<tr><td colspan="[(#PLUGIN{organiseur}|?{7,6})]"><nav role='navigation' class='pagination'>(#GET{p})</nav></td></tr>]

						[<tr><td colspan="[(#PLUGIN{organiseur}|?{7,6})]"><nav class='pagination'>(#PAGINATION{prive})</nav></td></tr>]
						<tr class='first_row'>
							<th class='statut' scope='col'>[(#TRI{statut,#CHEMIN_IMAGE{auteur-16.png}|balise_img{<:lien_trier_statut|attribut_html:>},ajax})]</th>
							<th class='nom' scope='col' colspan='2'>[(#TRI{multi nom,<:info_nom:>,ajax})]</th>
							<th class='email' scope='col'>[(#TRI{email,<:email|label_nettoyer:>,ajax})]</th>
							<th class='nombre' scope='col'>[(#TRI{compteur_articles,<:info_articles:>,ajax})]</th>
							<th class='id' scope='col'>[(#TRI{id_auteur,<:info_numero_abbreviation:>,ajax})]</th>
						</tr>
					</thead>
					<tbody>
					<BOUCLE_liste_aut(AUTEURS){statut?}{tri #ENV{par,multi nom},#GET{defaut_tri}}{pagination #ENV{nb,10} aut}{!compteur_articles_filtres #ENV{filtre_statut_articles,poubelle}}>
						[(#LANG|changer_typo)]
						<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)][ (#NOM**|initiale|=={#ENV{i}}|et{#ENV{i}}|?{on}|unique)]">
							<td class='statut'>[(#STATUT|puce_statut{auteur})]</td>
							<td class='nom[ (#NOM|non)vide]'[(#LOGO_AUTEUR|non)colspan='2']><a href="[(#ID_AUTEUR|generer_objet_url{auteur})]"[ title="(#BIO*|couper{200}|attribut_html)"]>[<span class='rang'>(#RANG).</span> ][(#NOM|trim|sinon{#BIO*|couper{80}|trim}|sinon{<:info_numero_abbreviation:>#ID_AUTEUR})]</a>[ <small>((#STATUT|=={0minirezo}|et{#WEBMESTRE|=={oui}}|?{<:statut_webmestre:>}))</small>][ <small>((#STATUT|=={0minirezo}|et{#AUTORISER{'','','',#ID_AUTEUR}|non}|?{<:statut_admin_restreint:>}))</small>]</td>
							[<td class='logo'><a href="[(#ID_AUTEUR|generer_objet_url{auteur})]" style="background-image:url\((#LOGO_AUTEUR|image_recadre_avec_fallback{40,40}|extraire_attribut{src}))"></a></td>]
							<td class='email'>[<a href='mailto:(#EMAIL)'>[(#EMAIL|couper{30})]</a>]</td>
							<td class='nombre'>[(#COMPTEUR_ARTICLES|singulier_ou_pluriel{info_1_article,info_nb_articles})][<br /><span>(#PIPELINE{'compter_contributions_auteur',#ARRAY{args,#ARRAY{id_auteur,#ID_AUTEUR},data,#ARRAY{}}}|implode{'<br />'})</span>]</td>
							<td class='id'>[(#AUTORISER{modifier,auteur,#ID_AUTEUR}|?{
								<a href="[(#URL_ECRIRE{auteur_edit,id_auteur=#ID_AUTEUR})]" title="<:admin_modifier_auteur|attribut_html:>">#ID_AUTEUR</a>,
								#ID_AUTEUR
							})]</td>
						</tr>
					</BOUCLE_liste_aut>
					[(#REM|changer_typo)]
					</tbody>
				</table>
				[<nav class='pagination'>(#PAGINATION{prive})</nav>]
				</div>
				</B_liste_aut>[
				<div class="liste-objets auteurs caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
				]<//B_liste_aut>

اذا كنت تريد عرض المدراء والمحررين فقط (دون الزوار) احذف معيار {statut?} من الحلقة.
تحصل على صفحة تتيح لك ترتيب المؤلفين حسب العمود الذي تنقر على عنوانه. مثلا اذل نقرت على « مقالات » يتم ترتيب المؤلفين حسب عدد مقالاتهم.

مرحبا. جربت هذه الطريقة أيضا، ولكن لم تأت بالنتيجة المرغوبة (صفحة بيضاء). أظن أني أعرف الفكرة وراء هذه الطريقة، ولكن التنفيذ شيء آخر. الفكرة هي أن الكتاب وعدد مقالاتهم ومعلومات أخرى تظهر في قسم الكتاب في المنطقة الخاصة، ولذا لو تم تعديل ما يحدث في المنطقة الخاصة ليتم في الصفحات العامة نكون وصلنا إلى حل. لا تشغل بالك في الموضوع. أشكر لك اهتمامك الدائم.

اذا حصلت هلى صفحة بيضاء فهذا يعني ان هناك خطأ في ادخال الدالتين في mes_fonction.php. يمكن فتح سجل الاخطاء (log) لمعرفة الخطأ:
الاوامر اعلاه جاءت من صفحة المؤلفين في المدال الخاص وهطا ما تعرضه: