News:

SMF 2.1.4 has been released! Take it for a spin! Read more.

Main Menu

Besoin d'aide-merci d'avance

Started by mira-san, October 10, 2007, 07:20:33 AM

Previous topic - Next topic

mira-san

Bonjour,
Voilà j'ai lu le sujet http://www.simplemachines-fr.org/forum/index.php?topic=499.0 qui traite sur la possibilité de mettre une news sur le site grâce à la fonctionssi_boardNews , je n'ai pas eu de problème tout marche à merveille sauf pour les avatars des membres qui postent le sujet et aussi comme vous pouvez le voir sur le screen est ce que c'est possible d'effacer le petit logo à coté du titre?
Voici le screen:
www.gotei-scantrad.com/screen.jpg
Merci d'avance.

Dragmire

Tu vas modifier la fonction boardnews dans SSI.php :
Rapido ce serait par là: "foreach ($return as $news)..."
en essayant de virer le $news['icon'] et en rajoutant une image avec l'url $news['poster']['avatar'].

Bonne bidouille!

mira-san

Merci beaucoup de ta réponse mais comme je suis une débutante totale est ce que tu peux me donner le petit code direct stp?
Ou bien un tuto.
En tout cas merci beaucoup.

Yağız...

Bonjour,

Trouve et suprimme dans SSI.php:
<a href="', $news['href'], '">', $news['icon'], '</a>
Ca c'est pour le petit icon :)

Et pour avatar tu peux regarder ici:
http://www.simplemachines.org/community/index.php?topic=23578.msg1227624#msg1227624

mira-san

J'ai essayé de faire comme ils ont dit mais rien ne change, peut être parce que le code est adapté à smf 1.1.3 et pas 1.1.4
Est ce que vous pouvez m'aider svp?

Eleglin

Il n'y a pas de gros changements entre 1.1.3 et 1.1.4.
99% des modif qui marchent pour 1.1.3 marcheront pour 1.1.4.
No support by PM or Mail.

mira-san


Yağız...

Tu peux utiliser ce code:
', $news['avatar']['image'], '

mira-san

Et j'insère où ce code?
Merci pour vos réponses.

Yağız...

Après ce code là:
<div class="smaller">', $news['time'], ' ', $txt[525], ' ', $news['poster']['link'], '</div>

mira-san

Ok.
Et je le fais sur le SSI d'origine ou celui que j'ai modifié d'après ce lien http://www.simplemachines.org/community/index.php?topic=23578.msg1227624#msg1227624  ?
Merci encore une fois de tes réponses.

mira-san


Yağız...


mira-san

Merci encore une fois pour tes réponses, mais malheureusement ça ne marche toujours pas :-[ je désespère.
Pour information voici le bout de code de la fonction news. 
Je met ce code dans ma page <?PHP

ssi_boardNews(); flush();

?>
Et celui est dans le SSI.php


// Show the latest news, with a template... by board.
function ssi_boardNews($board = null, $limit = null, $start = null, $length = null, $output_method = 'echo')
{
global $scripturl, $db_prefix, $txt, $settings, $modSettings, $context;
global $func;

loadLanguage('Stats');

// Must be integers....
if ($limit === null)
$limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 5;
else
$limit = (int) $limit;

if ($start === null)
$start = isset($_GET['start']) ? (int) $_GET['start'] : 0;
else
$start = (int) $start;

if ($board !== null)
$board = (int) $board;
elseif (isset($_GET['board']))
$board = (int) $_GET['board'];

if ($length === null)
$length = isset($_GET['length']) ? (int) $_GET['length'] : 0;
else
$length = (int) $length;

$limit = max(0, $limit);
$start = max(0, $start);

// Make sure guests can see this board.
$request = db_query("
SELECT ID_BOARD
FROM {$db_prefix}boards
WHERE " . ($board === null ? '' : "ID_BOARD = $board
AND ") . "FIND_IN_SET(-1, memberGroups)
LIMIT 1", __FILE__, __LINE__);
if (mysql_num_rows($request) == 0)
{
if ($output_method == 'echo')
die($txt['smf_news_error2']);
else
return array();
}
list ($board) = mysql_fetch_row($request);
mysql_free_result($request);

// Load the message icons - the usual suspects.
$stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'moved', 'recycled', 'wireless');
$icon_sources = array();
foreach ($stable_icons as $icon)
$icon_sources[$icon] = 'images_url';

// Find the post ids.
$request = db_query("
SELECT ID_FIRST_MSG
FROM {$db_prefix}topics
WHERE ID_BOARD = $board
ORDER BY ID_FIRST_MSG DESC
LIMIT $start, $limit", __FILE__, __LINE__);
$posts = array();
while ($row = mysql_fetch_assoc($request))
$posts[] = $row['ID_FIRST_MSG'];
mysql_free_result($request);

if (empty($posts))
return array();

// Find the posts.
$request = db_query("
SELECT
m.icon, m.subject, m.body, IFNULL(mem.realName, m.posterName) AS posterName, m.posterTime,
t.numReplies, t.ID_TOPIC, m.ID_MEMBER, m.smileysEnabled, m.ID_MSG, t.locked, mem.avatar, a.ID_ATTACH, a.attachmentType, a.filename
FROM ({$db_prefix}topics AS t, {$db_prefix}messages AS m)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
LEFT JOIN {$db_prefix}attachments AS a ON (a.ID_MEMBER = m.ID_MEMBER)
WHERE t.ID_FIRST_MSG IN (" . implode(', ', $posts) . ")
AND m.ID_MSG = t.ID_FIRST_MSG
ORDER BY t.ID_FIRST_MSG DESC
LIMIT " . count($posts), __FILE__, __LINE__);
$return = array();
while ($row = mysql_fetch_assoc($request))
{
// If we want to limit the length of the post.
if (!empty($length) && $func['strlen']($row['body']) > $length)
{
$row['body'] = $func['substr']($row['body'], 0, $length);

// The first space or line break. (<br />, etc.)
$cutoff = max(strrpos($row['body'], ' '), strrpos($row['body'], '<'));

if ($cutoff !== false)
$row['body'] = $func['substr']($row['body'], 0, $cutoff);
$row['body'] .= '...';
}

$row['body'] = parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']);
if (stristr($row['avatar'], 'http://') && !empty($modSettings['avatar_check_size']))
{
$sizes = url_image_size($row['avatar']);

// Does your avatar still fit the maximum size?
if ($modSettings['avatar_action_too_large'] == 'option_refuse' && is_array($sizes) && (($sizes[0] > $modSettings['avatar_max_width_external'] && !empty($modSettings['avatar_max_width_external'])) || ($sizes[1] > $modSettings['avatar_max_height_external'] && !empty($modSettings['avatar_max_height_external']))))
{
// Fix it permanently!
$row['avatar'] = '';
updateMemberData($row['ID_MEMBER'], array('avatar' => '\'\''));
}
}

// Check that this message icon is there...
if (empty($modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
$icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? 'images_url' : 'default_images_url';

censorText($row['subject']);
censorText($row['body']);

$return[] = array(
'id' => $row['ID_TOPIC'],
'message_id' => $row['ID_MSG'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
'subject' => $row['subject'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'body' => $row['body'],
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0">' . $row['numReplies'] . ' ' . ($row['numReplies'] == 1 ? $txt['smf_news_1'] : $txt['smf_news_2']) . '</a>',
'replies' => $row['numReplies'],
'comment_href' => !empty($row['locked']) ? '' : $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . ';num_replies=' . $row['numReplies'],
'comment_link' => !empty($row['locked']) ? '' : '<a href="' . $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . ';num_replies=' . $row['numReplies'] . '">' . $txt['smf_news_3'] . '</a>',
'new_comment' => !empty($row['locked']) ? '' : '<a href="' . $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . '">' . $txt['smf_news_3'] . '</a>',
'poster' => array(
'id' => $row['ID_MEMBER'],
'name' => $row['posterName'],
'href' => !empty($row['ID_MEMBER']) ? $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] : '',
'link' => !empty($row['ID_MEMBER']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>' : $row['posterName']
),
'locked' => !empty($row['locked']),
'is_last' => false,
'avatar' => array(
'name' => $row['avatar'],
'image' => $row['avatar'] == '' ? ($row['ID_ATTACH'] > 0 ? '<img src="' . (empty($row['attachmentType']) ? $scripturl . '?action=dlattach;attach=' . $row['ID_ATTACH'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) . '" alt="" class="avatar" border="0" />' : '') : (stristr($row['avatar'], 'http://') ? '<img src="' . $row['avatar'] . '" alt="" class="avatar" border="0" />' : '<img src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($row['avatar']) . '" alt="" class="avatar" border="0" />'),
'href' => $row['avatar'] == '' ? ($row['ID_ATTACH'] > 0 ? (empty($row['attachmentType']) ? $scripturl . '?action=dlattach;attach=' . $row['ID_ATTACH'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) : '') : (stristr($row['avatar'], 'http://') ? $row['avatar'] : $modSettings['avatar_url'] . '/' . $row['avatar']),
'url' => $row['avatar'] == '' ? '' : (stristr($row['avatar'], 'http://') ? $row['avatar'] : $modSettings['avatar_url'] . '/' . $row['avatar']),
),
);
}
mysql_free_result($request);

if (empty($return))
return $return;

$return[count($return) - 1]['is_last'] = true;

if ($output_method != 'echo')
return $return;

foreach ($return as $news)
{
echo '
<div>
<b>', $news['subject'], '</b>
<div class="smaller">', $news['time'], ' ', $txt[525], ' ', $news['poster']['link'], '</div>

<div class="post" style="padding: 2ex 0;">', $news['body']['avatar']['image'], '</div>

', $news['link'], $news['locked'] ? '' : ' | ' . $news['comment_link'], '
</div>';

if (!$news['is_last'])
echo '
<hr style="margin: 2ex 0;" width="100%" />';
}
}

// Show the most recent events.
function ssi_recentEvents($max_events = 7, $output_method = 'echo')
{
global $db_prefix, $user_info, $scripturl, $modSettings, $txt, $sc, $ID_MEMBER;

// Find all events which are happening in the near future that the member can see.
$request = db_query("
SELECT
cal.ID_EVENT, cal.startDate, cal.endDate, cal.title, cal.ID_MEMBER, cal.ID_TOPIC,
cal.ID_BOARD, t.ID_FIRST_MSG
FROM {$db_prefix}calendar AS cal
LEFT JOIN {$db_prefix}boards AS b ON (b.ID_BOARD = cal.ID_BOARD)
LEFT JOIN {$db_prefix}topics AS t ON (t.ID_TOPIC = cal.ID_TOPIC)
WHERE cal.startDate <= '" . strftime('%Y-%m-%d', forum_time(false)) . "'
AND cal.endDate >= '" . strftime('%Y-%m-%d', forum_time(false)) . "'
AND (cal.ID_BOARD = 0 OR $user_info[query_see_board])
ORDER BY cal.startDate DESC
LIMIT $max_events", __FILE__, __LINE__);
$return = array();
$duplicates = array();
while ($row = mysql_fetch_assoc($request))
{
// Check if we've already come by an event linked to this same topic with the same title... and don't display it if we have.
if (!empty($duplicates[$row['title'] . $row['ID_TOPIC']]))
continue;

// Censor the title.
censorText($row['title']);

if ($row['startDate'] < strftime('%Y-%m-%d', forum_time(false)))
$date = strftime('%Y-%m-%d', forum_time(false));
else
$date = $row['startDate'];

$return[$date][] = array(
'id' => $row['ID_EVENT'],
'title' => $row['title'],
'can_edit' => allowedTo('calendar_edit_any') || ($row['ID_MEMBER'] == $ID_MEMBER && allowedTo('calendar_edit_own')),
'modify_href' => $scripturl . '?action=' . ($row['ID_BOARD'] == 0 ? 'calendar;sa=post;' : 'post;msg=' . $row['ID_FIRST_MSG'] . ';topic=' . $row['ID_TOPIC'] . '.0;calendar;') . 'eventid=' . $row['ID_EVENT'] . ';sesc=' . $sc,
'href' => $row['ID_BOARD'] == 0 ? '' : $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0',
'link' => $row['ID_BOARD'] == 0 ? $row['title'] : '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0">' . $row['title'] . '</a>',
'start_date' => $row['startDate'],
'end_date' => $row['endDate'],
'is_last' => false
);

// Let's not show this one again, huh?
$duplicates[$row['title'] . $row['ID_TOPIC']] = true;
}
mysql_free_result($request);

foreach ($return as $mday => $array)
$return[$mday][count($array) - 1]['is_last'] = true;

if ($output_method != 'echo' || empty($return))
return $return;

// Well the output method is echo.
echo '
<span style="color: #' . $modSettings['cal_eventcolor'] . ';">' . $txt['calendar4'] . '</span> ';
foreach ($return as $mday => $array)
foreach ($array as $event)
{
if ($event['can_edit'])
echo '
<a href="' . $event['modify_href'] . '" style="color: #FF0000;">*</a> ';

echo '
' . $event['link'] . (!$event['is_last'] ? ', ' : '');
}
}

Yağız...

Faut supprimer ['body'] dans le code d'avatar.

mira-san

Et bin voilà ça marche, je n'arrive pas à y croire.
Merci beaucoup mais vraiment beaucoup du fond du coeur cakal93 je ne sais ce que je serai devenue sans ton aide.
Merci vraiment d'avoir pris le temps.
------------------------------------------------------------------
Juste une toute dernière question oui la dernière XD
Comment avoir en bas de page <suivant>1 2 3 4 ...<précédent>

mira-san

Une dernière petite réponse svp?En ce qui concerne la numérotation de la  page des news
------------------------------------------------------------------------------------
Pour information plus de 200 personnes ont pu tiré profit de ma question et de vos magnifiques réponses.
Merci cakal93


MkC

Quote from: mira-san on October 30, 2007, 06:05:21 PM
Pour information plus de 200 personnes ont pu tiré profit de ma question et de vos magnifiques réponses.
Faux le nombre de lecture ne correspond pas aux nombres de lecteurs, un lecteur peut lire plusieurs  fois le même topic cela incrémente aussi   :-X

mira-san

C'est pas grave l'important c'est qu'au moins 10 personnes ont pu tiré profit des réponses et c'est déjà énorme.
La dernière question est toujours en suspend:
Juste une toute dernière question oui la dernière XD
Comment avoir en bas de page <suivant>1 2 3 4 ...<précédent>

MkC

Réponse: En comptant le nombre de posts et en cherchant un multiplicateur  :P

mira-san

Alors là j'ai rien compris, tu utilises des thermes pro et franchement je n'ai aucune idée de ce que tu veux dire. :(

MkC

la requete liste les posts, il suffit donc de les compter et de trouver un facteur multiplicateur pour savoir les numéros de pages à afficher. Pro pro, non je suis juste mkc  :D

mira-san

ça serai plus simple si tu pouvais le code à mettre stp?

GravuTrad

mkc ne peut plus te répondre sur ce forum, peut être quelqu'un d'autre...
On a toujours besoin d'un plus petit que soi! (Petit!Petit!)


Think about Search function before posting.
Pensez à la fonction Recherche avant de poster.

mira-san

Ok, bin si quelqu'un sait comment mettre la pagination ça serai vraiment bien.
Merci à tous.

Eleglin

C'est quoi la page en question ?
Qu'on puisse voir à quoi ça ressemble.  ;)
No support by PM or Mail.

mira-san

#26
C'est sur ma page index, j'utilise la fonction de news de smf et j'aimerai qu'il y ait genre <précédent 2.3.4.5 suivant> en bas de mes news.
Bon voilà mon site www.monsite.com
En claire j'ai envi de conservé toutes mes news et que les visiteurs peuvent passé d'une page à l'autre grâce à la pagination.

Eleglin

Oki, moi je te conseille de poster cette question sur la section anglophone.
Il y'a plus de traffic dessus, et tu auras peut-être plus de chances d'avoir une réponse ?
D'autant plus qu'il s'agit d'un usage avancé, du moins j'ai l'impression que ça change des requêtes habituelles. ;)
No support by PM or Mail.

mira-san

Déjà pour me faire comprendre en français c'est pas facile alors en anglais o_0.
Quelqu'un peux me faire une toute petite trad.

Advertisement: