Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/plugins/avatarep.php on line 1102

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/class_language.php on line 201
Varios tipos de anuncios en el Portal
Hatsue   4 Aug, 2011, 7:03 am
#1

He de aclarar que me da igual si se hace mediante Pro Portal o el Portal clasico de MYBB.

Lo que quiero conseguir es que a la hora de colocar un anuncios en el portal, dependiendo del foro en el que lo postees, aparezca una imagen o otra al lado de todo el mensaje. Es decir:

Añadir una función al portal que te pida la ID de un foro, y junto a esa ID una imagen que aparecera al lado de cada noticia de ese foro.

Si colocas la ID del foro 5, con una imagen llamada "Eventos", cada cosa que postees en el foro 5 aparecera al lado lo de "Eventos". Mientras que si posteas algo en el foro con ID 6, pues como le pusiste la imagen "Noticias", al lado de cada nuevo tema aparecera la imagen de Noticia.

No se si es posible, o sera muy dificil y demas...

Gracias de antemano.
Omar G.   4 Aug, 2011, 12:39 pm
#2
Creo que con el Template COnditionals es posible, en mi localhost yo lo tengo para que me muestre el FID en cada noticia, seria algo como:
Código PHP:
<?php 
logo_
{$annucement_fid}.png

Lo que pasa es que no recuerdo que edite xD
Hatsue   4 Aug, 2011, 8:28 pm
#3
La verdad es que soy bastante novato para eso... ¿Donde he de colocar lo que me diste?

Y no creo que sea solo meter eso, ya que deberia de colocar el enlace a la imagen... la verdad es que no lo se mucho nada T.T
Gypaete   5 Aug, 2011, 12:57 am
#4
Código PHP:
<?php 
[img]http://TU FORO/images/logo_{$fid}.png[/img]
EDITO:
(4 Aug, 2011, 12:39 pm)JustU escribió: Creo que con el Template COnditionals es posible, en mi localhost yo lo tengo para que me muestre el FID en cada noticia, seria algo como:
Código PHP:
<?php 
logo_
{$annucement_fid}.png

Lo que pasa es que no recuerdo que edite xD
Para qué el Template Conditionals aquí? No sirve de nada y es {$fid}
Última modificación: 5 Aug, 2011, 1:03 am por juan.
Omar G.   5 Aug, 2011, 1:06 pm
#5
Como dije arriba:

Cita:[...]CREO[...]

Ademas a modificacion que yo hice era para sacar el fid de otra forma y asi coneguir el nombre del foro aparte de solo el numero del foro.

COmo dije no me acuerdo como lo hize y donde esta el tutorial (ni si quiera lo use fuera de mi localhost).
Torrecus_mybb_import8215   5 Aug, 2011, 4:09 pm
#6
En una ocasión el master Santiago me hizo el favor de hacerme un código para hacer algo así, aunque ya no recuerdo exactamente cual era (se hicieron algunos cambios). Prueba con este:

Código:
<?php

if (!defined("IN_PORTAL")) {
     die("<div style=\"border:1px solid #CC0000; padding:3px; margin:0; font-family:Tahoma; width:250px; font-size:12px;\"><strong>Error:</strong> This file cannot be viewed directly!</div>");
}

/********** CONFIG *********/
$threadspro = array(
     'from_forums' => '2,4', // ID de los foros, separados por coma
     'quantity' => 10, // Cuantos threads extraer
     'chars' => 200, // Cuantos caracteres en el resumen
     'after_cut' => '...' // String a agregar despues del corte
);
/********** END CONFIG *********/

// Get forums user cannot view
$unviewable = get_unviewable_forums();
if($unviewable)
{
     $unviewwhere = " AND t.fid NOT IN ($unviewable)";
}

$threadlimit = 10;
$query = $db->query("
     SELECT t.*, f.name AS forumname, t.subject AS threadsubject, u.username, u.usergroup, u.displaygroup, i.*, i.name AS iconname,
     t.dateline AS threaddate, t.lastpost AS threadlastpost, p.message AS postcontent
     FROM ".TABLE_PREFIX."threads t
     LEFT JOIN ".TABLE_PREFIX."icons i ON (i.iid=t.icon)
     LEFT JOIN ".TABLE_PREFIX."users u ON (t.lastposter=u.username)
     LEFT JOIN ".TABLE_PREFIX."posts p ON (t.firstpost=p.pid)
     LEFT JOIN ".TABLE_PREFIX."forums f ON (t.fid=f.fid)
     WHERE t.visible = '1'
     AND t.fid IN (" . $threadspro['from_forums'] . ")
     $unviewwhere
     GROUP BY t.tid
     ORDER BY threaddate DESC
     LIMIT 0, $threadlimit
");

while($threads = $db->fetch_array($query))
{
     // Delete images
     $postcontent = preg_replace('#\[img\](\r\n?|\n?)(https?://([^<>\"\']+?))\[/img\]#', '', $threads['postcontent']);

     // Delete links with no anchor
     $postcontent = preg_replace('#\[url\]([^\r\n\"<]+?)\[/url\]#', '', $postcontent);

     // Delete any other bbcode (leaving the text inbetween intact)
     $postcontent = preg_replace('#\[(.*?)\]#', '', $postcontent);

     if(is_object($parser))
     {
         $postcontent = $parser->parse_html($postcontent);
     }

     if(strlen($postcontent) > $threadspro['chars'])
     {
         $postcontent = neat_trim($postcontent, $threadspro['chars'], $threadspro['after_cut']);
     }

     if($threads['icon'] > 0)
     {
         $icon = "<img src=\"{$threads['path']}\" alt=\"{$threads['iconname']}\" title=\"{$threads['iconname']}\" />";
     }
     else
     {
         $icon = "&nbsp;";
     }

     if(strlen($threads['threadsubject']) > "40")
     {
         $threadsthreadsubject = my_substr($threads['threadsubject'],0,40)."...";
     }
     else
     {
         $threadsthreadsubject = $threads['threadsubject'];
     }

     if(strlen($threads['forumname']) > "20")
     {
         $threadsforumname = my_substr($threads['forumname'],0,20)."...";
     }
     else
     {
         $threadsforumname = $threads['forumname'];
     }

     $threadlink = get_thread_link($threads['tid']);
     $forumlink = get_forum_link($threads['fid']);
     $forumname = $threads['forumname'];
     $replies = my_number_format($threads['replies']);
     $views = my_number_format($threads['views']);
     $lastpostdate = my_date($mybb->settings['dateformat'], $threads['threadlastpost']);
     $lastposttime = my_date($mybb->settings['timeformat'], $threads['threadlastpost']);
     $lastposter = format_name($threads['username'], $threads['usergroup'], $threads['displaygroup']);
     $lastposter = build_profile_link($lastposter, $threads['lastposteruid']);

     /*********** EDIT HERE? **********/
     /* {$postcontent} = POST CONTENT */
     /*********** EDIT HERE? **********/
    
     $last_thread_modified .= "<tr>
         <td class=\"trow1\" align=\"center\" height=\"24\">$icon</td>
         <td class=\"trow2\"><a href=\"$threadlink\" title=\"$threads[threadsubject]\">$threadsthreadsubject</a><br /><small>{$postcontent}</small></td>
         <td class=\"trow1\" align=\"center\"><a href=\"{$forumlink}\">{$forumname}</a></td>
         <td class=\"trow1\"><span class=\"smalltext\">$lastpostdate $lastposttime<br />by $lastposter</span></td>
</tr>";

}
if(!$last_thread_modified){ $last_thread_modified = "<tr><td class=\"trow1\" colspan=\"5\">{$lang->no_thread}</td></tr>"; }
echo "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
         <tr>
             <td class=\"thead\" colspan=\"6\"><div class=\"expcolimage\"><img src=\"{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div><strong>{$lang->latest_threads}</strong></td>
         </tr>
             <tr>
                 <td class=\"tcat\" width=\"5%\" height=\"24\">&nbsp;</td>
                 <td class=\"tcat\" width=\"50%\"><span class=\"smalltext\"><strong>{$lang->latest_threads_thread}</strong></span></td>
                 <td class=\"tcat\" width=\"10%\" align=\"center\"><span class=\"smalltext\"><strong>Foro</strong></span></td>
                 <td class=\"tcat\" width=\"25%\" align=\"center\"><span class=\"smalltext\"><strong>{$lang->latest_threads_lastpost}</strong></span></td>
             </tr>
         <tbody style=\"{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
         {$last_thread_modified}
         </tbody>
     </table>";

// http://www.justin-cook.com/wp/2006/06/27/php-trim-a-string-without-cutting-any-words/
function neat_trim($str, $n, $delim='...') {
    $len = strlen($str);
    if ($len > $n) {
        preg_match('/(.{' . $n . '}.*?)\b/', $str, $matches);
        return rtrim($matches[1]) . $delim;
    }
    else {
        return $str;
    }
}

?>

Me parece que no te va a mostrar los iconos del foro, sino el icono del mensaje, en caso que el autor haya colocado alguno, pero si fuere el caso, debe ser fácil de cambiar.
Gypaete   5 Aug, 2011, 6:24 pm
#7
Ese código es fácil Torrecus.

Haz lo que te dije yo y por ejemplo en el showthread es $tid, member es $uid etc...
Hatsue   5 Aug, 2011, 6:40 pm
#8
Mmmm... la verdad es que no sabia muy bien como hacerlo, y lo he visto demaciado lioso, asi que he optado por el método fácil.

Pondré la imagen a la izquierda del texto a la hora de escribir el anuncio, y en el Portal se vera de esa manera, similar a la que me ayudasteis.

Aun así, muchas gracias a todos Tongue
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.