FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Recherche rapide

Vous n'êtes pas identifié(e).

Version 1.4.13 : [.tar.gz][.zip] (maj 20/10/2014)
Pack langue française pour 1.4.x : [.zip] (maj 06/01/2012)

Branche 1.5.x : fluxbb.org
Pack langue française pour 1.5.x : [.zip] (maj 14/01/2016)

Ancienne Version 1.2.24 fr : [.zip] (maj 26/08/2011)

Vous avez un problème ?
Avant de poser votre question sur les forums d'entraide nous vous invitons à consulter :

#1 15-06-2011 12:16:31

fanf73
Wik-wiki
Lieu : Lyon
Inscription : 12-09-2006
Messages : 4 432
Site Web

Deux niveaux d'épinglage : annoncer et épingler

Un petit truc qui est parfois bien utile : avoir deux niveaux "d'épinglage". Les topics placés en "annonce" seront ainsi positionnés avant ceux qui sont épinglés.

Footer.php
Chercher ligne 51

if ($cur_topic['sticky'] == '1')
    echo "\t\t\t\t".'<dd><span><a href="moderate.php?fid='.$forum_id.'&amp;unstick='.$id.'">'.$lang_common['Unstick topic'].'</a></span></dd>'."\n";
else
    echo "\t\t\t\t".'<dd><span><a href="moderate.php?fid='.$forum_id.'&amp;stick='.$id.'">'.$lang_common['Stick topic'].'</a></span></dd>'."\n";

Remplacer par

if ($cur_topic['sticky'] == '1')
{
     echo "\t\t\t\t".'<dd><span><a href="moderate.php?fid='.$forum_id.'&amp;announce='.$id.'">'.$lang_common['Announce topic'].'</a></span></dd>'."\n";
     echo "\t\t\t\t".'<dd><span><a href="moderate.php?fid='.$forum_id.'&amp;unstick='.$id.'">'.$lang_common['Unstick topic'].'</a></span></dd>'."\n";
}
else if ($cur_topic['sticky'] == '2')
{
     echo "\t\t\t\t".'<dd><span><a href="moderate.php?fid='.$forum_id.'&amp;stick='.$id.'">'.$lang_common['Stick topic'].'</a></span></dd>'."\n";
     echo "\t\t\t\t".'<dd><span><a href="moderate.php?fid='.$forum_id.'&amp;unstick='.$id.'">'.$lang_common['Unstick topic'].'</a></span></dd>'."\n";
}    
else
{
    echo "\t\t\t\t".'<dd><span><a href="moderate.php?fid='.$forum_id.'&amp;stick='.$id.'">'.$lang_common['Stick topic'].'</a></span></dd>'."\n";
    echo "\t\t\t\t".'<dd><span><a href="moderate.php?fid='.$forum_id.'&amp;announce='.$id.'">'.$lang_common['Announce topic'].'</a></span></dd>'."\n";
}

Moderate.php

Chercher

// Stick a topic
else if (isset($_GET['stick']))
{
    confirm_referrer('viewtopic.php');

    $stick = intval($_GET['stick']);
    if ($stick < 1)
        message($lang_common['Bad request']);

    $db->query('UPDATE '.$db->prefix.'topics SET sticky=\'1\' WHERE id='.$stick.' AND forum_id='.$fid) or error('Unable to stick topic', __FILE__, __LINE__, $db->error());

    redirect('viewtopic.php?id='.$stick, $lang_misc['Stick topic redirect']);
}

Ajouter après

// Announce a topic
else if (isset($_GET['announce']))
{
    confirm_referrer('viewtopic.php');

    $stick = intval($_GET['announce']);
    if ($stick < 1)
        message($lang_common['Bad request']);

    $db->query('UPDATE '.$db->prefix.'topics SET sticky=\'2\' WHERE id='.$stick.' AND forum_id='.$fid) or error('Unable to stick topic', __FILE__, __LINE__, $db->error());

    redirect('viewtopic.php?id='.$stick, $lang_misc['Stick topic redirect']);
}

Viewforum.php

Chercher

if ($cur_topic['sticky'] == '1')
{
    $item_status .= ' isticky';
    $status_text[] = '<span class="stickytext">'.$lang_forum['Sticky'].'</span>';
}

Ajouter après

if ($cur_topic['sticky'] == '2')
{
    $item_status .= ' iannounce';
    $status_text[] = '<span class="announceytext">'.$lang_forum['Announce'].'</span>';
}

lang/French/common.php

Chercher

'Stick topic'            =>      'Épingler la discussion',

Ajouter après

'Announce topic'        =>      'Annoncer la discussion',

lang/French/forum.php

Chercher

'Sticky'    =>    'Épinglée&#160;:',

Ajouter après

'Announce'    =>    'Annonce&#160;:',

Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#2 08-07-2011 21:12:44

Fredy
Nouveau Membre
Inscription : 08-07-2011
Messages : 6

Re : Deux niveaux d'épinglage : annoncer et épingler

Je vous propose une mise à jour du code si dessus en ajoutant les annonces gobales (c'est à dire qui s'affiche sur tous les forums)

Il faut avoir réalisé les étapes du post ci dessus de fanf73

Edit.php

Chercher ligne 113

$stick_topic = isset($_POST['stick_topic']) ? '1' : '0';

Remplacer par

    if (isset($_POST['stick_topic']) != '3')
        $stick_topic = isset($_POST['stick_topic']) ? '1' : '0';
    else
        $stick_topic = '3';

Chercher ligne 263

$checkboxes[] = '<label><input type="checkbox" name="stick_topic" value="1" tabindex="'.($cur_index++).'" />'.$lang_common['Stick topic'].'<br /></label>';

Ajouter après

    if (isset($_POST['stick_topic']) || $cur_post['sticky'] == '3')
        $checkboxes[] = '<label><input type="checkbox" name="stick_topic" value="3" checked="checked" tabindex="'.($cur_index++).'" />'.$lang_common['Announceg topic'].'<br /></label>';
    else
        $checkboxes[] = '<label><input type="checkbox" name="stick_topic" value="3" tabindex="'.($cur_index++).'" />'.$lang_common['Announceg topic'].'<br /></label>';

post.php

Chercher ligne 159

$stick_topic = isset($_POST['stick_topic']) && $is_admmod ? '1' : '0';

Remplacer par

    if (isset($_POST['stick_topic']) == '3' && $is_admmod)
        $stick_topic = '3';
    else
        $stick_topic = isset($_POST['stick_topic']) && $is_admmod ? '1' : '0';

Chercher ligne 650

$checkboxes[] = '<label><input type="checkbox" name="stick_topic" value="1" tabindex="'.($cur_index++).'"'.(isset($_POST['stick_topic']) ? ' checked="checked"' : '').' />'.$lang_common['Stick topic'].'<br /></label>';

Ajouter après

$checkboxes[] = '<label><input type="checkbox" name="stick_topic" value="3" tabindex="'.($cur_index++).'"'.(isset($_POST['stick_topic']) ? ' checked="checked"' : '').' />'.$lang_common['Announceg topic'].'<br /></label>';

Viewforum.php

Chercher ligne 314

$result = $db->query('SELECT id FROM '.$db->prefix.'topics WHERE forum_id='.$id.' 

Ajouter après

OR sticky = 3 

Chercher ligne 340

WHERE t.forum_id='.$id.' 

Ajouter après

OR t.sticky = 3 

chercher ligne 370

if ($cur_topic['sticky'] == '2')
{
    $item_status .= ' iannounce';
    $status_text[] = '<span class="announceytext">'.$lang_forum['Announce'].'</span>';
}

Ajouter après

        else if ($cur_topic['sticky'] == '3')
        {
            $item_status .= ' iannounceg';
            $status_text[] = '<span class="announcegtext">'.$lang_forum['Announceg'].'</span>';
        }

lang/French/common.php

Chercher

'Stick topic'            =>      'Épingler la discussion',

Ajouter après

'Announceg topic'        =>        'Mettre la discussion en annonce globale sur tous les forums',

lang/French/forum.php

Chercher

'Sticky'    =>    'Épinglée&#160;:',

Ajouter après

'Announceg'    =>    'Annonce globale&#160;:',

style/[Votre style].css

Chercher

.pun #vf td.tcl span.stickytext, .pun #vf td.tcl span.closedtext {
    font-size: 1em;
    font-weight: bold;
}

Ajouter après

.pun #vf td.tcl span.announceytext, .pun #vf td.tcl span.closedtext {
    font-size: 1em;
    font-weight: bold;
}

.pun #vf td.tcl span.announcegtext, .pun #vf td.tcl span.closedtext {
    font-size: 1em;
    font-weight: bold;
}

Chercher

.pun .blocktable td.tcl span.stickytext {
    color: #000;
}

Ajouter après

.pun .blocktable td.tcl span.announceytext {
    color: #F00;
}

.pun .blocktable td.tcl span.announcegtext {
    color: #F00;
}

N'hésitez pas si vous avez des remarques ou si vous trouver des bugs smile

Hors ligne

#3 30-11-2011 12:57:24

slam2
Régulier
Inscription : 25-12-2006
Messages : 78
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

Bonjour,

Pardonnez mon intrusion sur ce topic, mais y a t-il une possible solution pour séparer les Annonces, Post-it, Annonces-Global des simples messages? Histoire que sa respire un peux mieux dans les discutions.. Merci beaucoup!

Cdt, Slam2

Hors ligne

#4 30-11-2011 14:32:33

Fredy
Nouveau Membre
Inscription : 08-07-2011
Messages : 6

Re : Deux niveaux d'épinglage : annoncer et épingler

slam2 a écrit :

Bonjour,
Pardonnez mon intrusion sur ce topic, mais y a t-il une possible solution pour séparer les Annonces, Post-it, Annonces-Global des simples messages? Histoire que sa respire un peux mieux dans les discutions.. Merci beaucoup!
Cdt, Slam2

Bien sur j'ai fait quelque chose comme cela sur un de mes forums :


Exemple

Hors ligne

#5 30-11-2011 14:37:58

slam2
Régulier
Inscription : 25-12-2006
Messages : 78
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

J'ai aussi tenter de le faire, mais le probleme c'est soit j'ai que les annonces qui sont séparés, soit il y a un espace entres Annonces, Epinglé et topics.. C'est problématique :S

Hors ligne

#6 30-11-2011 16:10:27

fanf73
Wik-wiki
Lieu : Lyon
Inscription : 12-09-2006
Messages : 4 432
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

Bonjour,

Il risque d'être difficile de t'aider si tu ne nous dis pas ce que tu as déjà fait et qui ne fonctionne pas smile


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#7 15-12-2011 18:23:05

slam2
Régulier
Inscription : 25-12-2006
Messages : 78
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

Bonsoir,

désolé du retard, je n'étais pas très dispo ces temps-ci. Donc je vous poste la ligne de code mise actuellement, qui bien évidemment ne fonctionne pas comme je le souhaite, hélas


viewforum.php

		if ($cur_topic['sticky'] == '1')
		{
			$item_status .= ' isticky';
			$status_text[] = '<span class="stickytext">'.$lang_forum['Sticky'].'</span>';
		}
		
		if ($cur_topic['sticky'] == '2')
		{
			$item_status .= ' iannounce';
			$status_text[] = '<span class="announceytext">'.$lang_forum['Announce'].'</span>';
		}
		else if ($cur_topic['sticky'] == '3')
        {
            $item_status .= ' iannounceg';
            $status_text[] = '<span class="announcegtext">'.$lang_forum['Announceg'].'</span>';
		}

		if($cur_topic['sticky'] != 0)
		{
?>
            </tbody>
            </table>
        </div>
    </div>
</div>
<br/>
<div id="vf" class="blocktable">
    <div class="box">
        <div class="inbox">
            <table cellspacing="0">
            <tbody>
<?php
		}
		
		$tagged_subject = (!empty($span_tag[$cur_topic['id']])) ? sprintf($tag_display_span, implode(', ', $span_tag[$cur_topic['id']])).pun_htmlspecialchars($cur_topic['subject']) : pun_htmlspecialchars($cur_topic['subject']);

Merci beaucoup, pour votre coup de patte!

Hors ligne

#8 17-12-2011 14:33:49

Fredy
Nouveau Membre
Inscription : 08-07-2011
Messages : 6

Re : Deux niveaux d'épinglage : annoncer et épingler

Salut,

Pour les séparer il faut que tu réalise un affichage des annonces avant les topics classique.

Par ex si tu ne veux séparer que les annonces général :

if ($cur_topic['sticky'] == '3')
{
?>			</tbody>
			</table>
		</div>
	</div>
</div>
<div id="vf" class="blocktable">
	<h2><span><?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></span></h2><br />
	<div class="box">
		<div class="inbox">
			<table cellspacing="0">
			<thead>
				<tr>
					<th class="tcl" scope="col"><?php echo $lang_common['Topic'] ?></th>
					<th class="tc2" scope="col"><?php echo $lang_common['Replies'] ?></th>
<?php if ($pun_config['o_topic_views'] == '1'): ?>					<th class="tc3" scope="col"><?php echo $lang_forum['Views'] ?></th>
<?php endif; ?>					<th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
				</tr>
			</thead>
			<tbody>
	<?php
}

Le problème c'est que tu ne nous dit toujours pas ce que tu souhaite happy met nous une maquette par exemple.

Dernière modification par Fredy (17-12-2011 14:34:27)

Hors ligne

#9 20-12-2011 15:25:38

slam2
Régulier
Inscription : 25-12-2006
Messages : 78
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

A vrai dire, ton système d'affichage est excellent! Donc voilà!

Hors ligne

#10 07-03-2012 21:12:29

slam2
Régulier
Inscription : 25-12-2006
Messages : 78
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

Soucis toujours d'actualité, j'ai séché, merci beaucoup

Hors ligne

#11 23-03-2012 11:35:45

Fredy
Nouveau Membre
Inscription : 08-07-2011
Messages : 6

Re : Deux niveaux d'épinglage : annoncer et épingler

Salut slam2,

je vais faire un petit tuto pour ceux qui sont intéressé, quand j'ai le temps (ce week je vais essayer).

Dernière modification par Fredy (23-03-2012 11:40:07)

Hors ligne

#12 22-05-2012 15:52:13

slam2
Régulier
Inscription : 25-12-2006
Messages : 78
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

Pas de soucis, ca marche!

Hors ligne

#13 28-05-2012 13:29:25

Loppy
Nouveau Membre
Inscription : 13-05-2012
Messages : 8

Re : Deux niveaux d'épinglage : annoncer et épingler

Bonjour merci d'abord; comment fait-on pour que l'annonce globale ne s'affiche pas dans certaines sections?

Hors ligne

#14 03-07-2012 01:17:15

kristoch
Régulier
Inscription : 01-06-2012
Messages : 52

Re : Deux niveaux d'épinglage : annoncer et épingler

Fredy a écrit :

...

Viewforum.php

Chercher ligne 314

$result = $db->query('SELECT id FROM '.$db->prefix.'topics WHERE forum_id='.$id.' 

Ajouter après

OR sticky = 3 

Chercher ligne 340

WHERE t.forum_id='.$id.' 

Ajouter après

OR t.sticky = 3 

N'hésitez pas si vous avez des remarques ou si vous trouver des bugs smile

le blem est que ces 2 lignes sont introuvables dans mon fichier!

du coup l'annonce globale n'est pas globalement affichée...

aucun where t.forum

et la ligne

$result = $db->query('SELECT id FROM '.$db->prefix.'topics WHERE forum_id='.$id.' 

est celle ci (donc je ne peux mettre le code après, il ne passe pas)

$result = $db->query('SELECT id FROM '.$db->prefix.'topics WHERE forum_id='.$id.' ORDER BY sticky DESC, '.$sort_by.', id DESC LIMIT '.$start_from.', '.$pun_user['disp_topics']) or error('Unable to fetch topic IDs', __FILE__, __LINE__, $db->error());

ma version est 1.4.8

Hors ligne

#15 22-11-2012 17:04:51

safearea
Nouveau Membre
Inscription : 22-11-2012
Messages : 1

Re : Deux niveaux d'épinglage : annoncer et épingler

Je rencontre exactement le même problème que kristoch avec la version 1.4.7

Hors ligne

#16 04-02-2013 23:06:23

fakrys
Régulier
Lieu : Vendée
Inscription : 29-01-2013
Messages : 50
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

Bonsoir,

Je vous remercie beaucoup. Suis en fluxbb v1.5.2 et les annonces (sticky 2) ont bien été ajoutées! smile
Par contre quand j'ai voulu les afficher à part, et mis la modif qui suit en remplaçant donc le '3' par '2', rien ne se passe!

???

Fredy a écrit :

Salut,

Pour les séparer il faut que tu réalise un affichage des annonces avant les topics classique.

Par ex si tu ne veux séparer que les annonces général :

if ($cur_topic['sticky'] == '3')
{
?>			</tbody>
			</table>
		</div>
	</div>
</div>
<div id="vf" class="blocktable">
	<h2><span><?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></span></h2><br />
	<div class="box">
		<div class="inbox">
			<table cellspacing="0">
			<thead>
				<tr>
					<th class="tcl" scope="col"><?php echo $lang_common['Topic'] ?></th>
					<th class="tc2" scope="col"><?php echo $lang_common['Replies'] ?></th>
<?php if ($pun_config['o_topic_views'] == '1'): ?>					<th class="tc3" scope="col"><?php echo $lang_forum['Views'] ?></th>
<?php endif; ?>					<th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
				</tr>
			</thead>
			<tbody>
	<?php
}

Le problème c'est que tu ne nous dit toujours pas ce que tu souhaite happy met nous une maquette par exemple.


Fab'

Hors ligne

#17 01-05-2013 09:09:15

david18
Habitué très actif
Lieu : France
Inscription : 28-10-2012
Messages : 466
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

bonjours,


le dossier viewforum.php dispose de 309 lignes et non 314 lignes comment faire la suite  de l'astuce de fredy ?

ps: c'est dommage c'était intéressant cette fonction .


cdlt

david

Hors ligne

#18 20-05-2015 10:35:16

btz94
Habitué
Inscription : 10-07-2010
Messages : 113

Re : Deux niveaux d'épinglage : annoncer et épingler

Pas mal, le soucis c'est que lorsqu'on édite une discussion qui était en annonce (sticky = 2), l'annonce part ;/

Hors ligne

#19 21-05-2015 16:59:35

Mpok
Néo Admin
Inscription : 10-08-2006
Messages : 2 917
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

Déterrage…


Life is a struggle, programming is a suffer.

Hors ligne

#20 24-05-2015 17:13:15

btz94
Habitué
Inscription : 10-07-2010
Messages : 113

Re : Deux niveaux d'épinglage : annoncer et épingler

Navré, mais c'était d'actu donc j'me suis permis d'le remettre au gout du jour.

Hors ligne

#21 27-09-2015 13:17:39

BobRegMan
Nouveau Membre
Inscription : 27-06-2015
Messages : 1

Re : Deux niveaux d'épinglage : annoncer et épingler

Peut être intéressant de le remettre a jour. si quelqu'un s'y connait et a du temps.

Merci d'avance sinon pas grave

Hors ligne

#22 27-09-2015 17:27:32

adaur
Habitué très actif
Lieu : Derrière Notepad ++ !
Inscription : 25-09-2008
Messages : 1 936
Site Web

Re : Deux niveaux d'épinglage : annoncer et épingler

Avant de demander une mise à jour, es-tu sûr que cela ne fonctionne pas ?


"As code is more often read than written it's really important to write clean code." - Franz
Twitter: @adaurfr
Mon fork de FluxBB: FeatherBB

Hors ligne

Pied de page des forums