Seleccionar idioma:
Realizar Donación - Mods Premium - Portfolio



Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.
* Sobre enlace del bloque Últimos mensajes, hacerlo más informativo p su función?
  Leído 1523 veces
* Viendo el foro
 0 Usuarios y 1 Visitante están viendo este foro.


Tema Solucionado
*
Sep 23 2014


Verán, estaba acomodando y simplificando el bloque Últimos mensajes...
Por ahora sólo le he dejado el avatar, float left, sacado la columna divisoria, enlace a tema y enlace a última respuesta...

Esto porque los quiero mostrar en la columna derecha, y no es muy ancha, se hace largo para abajo sin información útil, etc...

En fin, que me quedé pensando en el enlace que más se ve en ese bloque, y es el que va al tema... al comienzo del tema...
Siendo un bloque de Últimos mensajes (respuestas a un tema), no sería mejor que en vez de mostrar el título del tema allí mostrara una parte de esa respuesta nueva... y directamente el enlace a ella? O bueno, ahora pensandolo un poco... capaz así no sirve porque se vería una respuesta a "algo" que no se sabe qué es...
Entonces mejor, que debajo del enlace del tema incluir un texto corto, de esa respuesta? y al lado si el icono de ir a respuesta...?
Está disponible en alguna variable el texto de respuesta? cómo acortarlo sin romper cosas? (por los img, b, enlaces, etc)

O sea, que sea últimos mensajes y nada más... si alguien quiere leer el tema completo, que apriete y busque el comienzo...

O sea, lo que busco es que la información visual del bloque sea más acorde, y realmente informativa... si no lo único que se ve es el avatar y tema nuevo... y apenas un icono para ir a la respuesta (sin naaaaada de información sobre esa respuesta en si...)

Será complicado cambiar a algo así?

Ahora lo tengo así:

Código: [Seleccionar]
echo'
<td style="width: 50%">
<table style="width: 100%;" cellspacing="0">
<tr>
<td>
<div style="float:left; padding-right:3px;">
'.$avatar.'
</div>
<a style="text-decoration: none;" href="'.$scripturl.'?topic='.$ID_TOPIC.'.0" title="Ir al tema: '.$subject.'"><b>'.$subject.'</b></a>&nbsp;
', !$Output['is_new'] ? '' : '<a href="' . $scripturl . '?topic=' . $Output['topic'] . '.msg' . $Output['new_from'] . ';topicseen#new" rel="nofollow"><img src="' . $settings['lang_images_url'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /></a>', '
<div style="float: right;padding-right: 5px;">
<a href="'.$href_last.'">
<img alt="Ir a la respuesta" title="Ir a la respuesta" src="'.$settings['images_url'].'/icons/last_post.gif" />
</a>
</div>
<!--<br />
<span class="smalltext">'.$txt['adkmod_block_last_updated'] .': '.$posterTime.'</span>
<br />
<span class="smalltext">'.$txt['post_by'] .': '.$MEMBER_STARTED.'</span>
<br />
<span class="smalltext">'.$txt['adkmod_forum'].': '.$Output['board']['link'].'</span>-->
</td>
</tr>
</table>
</td>';

De paso le agregué unos alt y titles más... (ir al tema:, ir a la respuesta)

2.0.12

Mensajes: 1070

Ver Perfil  Email 

« Última Modificación: Septiembre 23, 2014, 09:27:29 am por luuuciano »
En línea

*
Sep 24 2014


Sobre que funcion estas trabajando exactamente? y la version del portal es la 3?

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#1

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Sep 25 2014


Sobre que funcion estas trabajando exactamente? y la version del portal es la 3?

Si, es la ADK 3.
La función sería: adk_ultimosmensajes()

Se entendió mi punto más o menos?

Yo por ej creo que lo usaría sólo dejando el Avatar del último que responde, título/enlace al post inicial, y abajo en texto unos cuantos caracteres de esa última participación... con 3 puntos enlace + flecha enlace... esos dos enlaces irían a esa última participación...

De esa forma se previsualiza un poco la participación (respuesta) en si... si no no hay más que ir y apretar y ver qué es

Los otros datos de quién lo puso, fecha, etc... los he ocultado para ganar espacio y simplicidad, no me parecen tan relevantes como lo otro

2.0.12
#2

Mensajes: 1070

Ver Perfil  Email 

En línea

*
Sep 26 2014


Para poder realizar lo de que muestre una parte del mensaje podes hacerlo de dos maneras...

1º Codigo por defecto de smf... Tendrias que utilizar la variable $Output['preview']
Con ella tendrias un texto de 128 caracteres.... (Este no es de mi agrado)

2º Utilizando una funcion desarrollada en esta nueva version del portal Adk_Truncate

Lo primero que tendrias que hacer es buscar y elimnar o comentar esto en la funcion adk_ultimosmensajes:

Código: [Seleccionar]
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']), array('<br />' => '&#10;')));
if ($smcFunc['strlen']($row['body']) > 128)
$row['body'] = $smcFunc['substr']($row['body'], 0, 128) . '...';

Y despues donde queres que se vea el pedaso de texto tendrias que poner algo asi:

Código: [Seleccionar]
',Adk_Truncate($Output['preview'], 100, '...', true, true),'

Donde 100 seria la cantidad de caracteres a mostrar antes que salgan los ...

Esta funcion te mostrara no solo los caracteres, sino que respetara el codigo bbc que tenga el mensaje, sin romper etiquetas html ni nada por el estilo.

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#3

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Sep 26 2014


Eso parece ser un gol de arco a arco ^HeRaCLeS^!
 +10

Tremendo!
Gracias por compartirlo, y como siempre bien explicado....... apenas pueda me pongo a tocar y probar! :-D

Unido automaticamente - {Septiembre 26, 2014, 01:52:04 pm}


Esta funcion te mostrara no solo los caracteres, sino que respetara el codigo bbc que tenga el mensaje, sin romper etiquetas html ni nada por el estilo.

Listo, acabo de probar... y el problema es que algunas cosas se filtran y el texto queda muy raro... acá se puede ver:
http://cbabikes.com.ar/

O acá dejo algunos ejemplos (3) de cómo queda el texto:

Código: [Seleccionar]
Estoy al tanto [url=http://cbabikes.com.ar/profile/user-2427]@fransoneira[/url]/ grac...

[quote author=JCR ASPECT 10 link=topic=11682.msg153076#msg153076 date=1411741706]
Mónica, mi nombr...

[b]Pronóstico Extendido[/b] Sábado: Nublado Parcial Máx. 22 °C / Mín. 11 °C - Dom...

Le podré agregar algo a la función Adk_Truncate para que mejore esos casos?
O es que lo está mostrando de una forma incorrecta? (porque si se le aplicase el código bbcode a esas cosas... el de quote rompería el esquema no? porque no cierra por ej...)

2.0.12
#4

Mensajes: 1070

Ver Perfil  Email 

« Última Modificación: Septiembre 26, 2014, 03:52:33 pm por luuuciano »
En línea

*
Sep 26 2014


error mio :P Me falto decirte un paso mas jejeje

En la funcion busca esto:

Código: [Seleccionar]
'preview' => $row['body'],
Reemplaza con esto:

Código: [Seleccionar]
'preview' => parse_bbc($row['body']),
Perdon...


*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#5

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Sep 26 2014


Grosssso, ahora si! :)

Dejo acá como queda la función por si a alguien más le sirve:

Código: [Seleccionar]
/*ultimosmensajes.php*/
function adk_ultimosmensajes()
{
global $context, $settings, $scripturl, $txt, $db_prefix, $user_info;
global $modSettings, $smcFunc, $adkportal, $boardurl, $adkFolder;

//SSI FUNCTION
$exclude_boards = null;
$include_boards = null;
$num_recent = !empty($adkportal['adk_two_column']) ? $adkportal['ultimos_mensajes']*2 : $adkportal['ultimos_mensajes'];
$output_method = 'array';

if ($exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
$exclude_boards = array($modSettings['recycle_board']);
else
$exclude_boards = empty($exclude_boards) ? array() : (is_array($exclude_boards) ? $exclude_boards : array($exclude_boards));

// Only some boards?.
if (is_array($include_boards) || (int) $include_boards === $include_boards)
{
$include_boards = is_array($include_boards) ? $include_boards : array($include_boards);
}
elseif ($include_boards != null)
{
$output_method = $include_boards;
$include_boards = array();
}

$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 all the posts in distinct topics.  Newer ones will have higher IDs.
$request = $smcFunc['db_query']('substring', '
SELECT
m.poster_time, ms.subject, m.id_topic, m.id_member, m.id_msg, b.id_board, b.name AS board_name, t.num_replies, t.num_views,
mem.avatar,
mg.online_color,
IFNULL(a.id_attach, 0) AS id_attach, a.filename, a.attachment_type,
IFNULL(mem.real_name, m.poster_name) AS poster_name, ' . ($user_info['is_guest'] ? '1 AS is_read, 0 AS new_from' : '
IFNULL(lt.id_msg, IFNULL(lmr.id_msg, 0)) >= m.id_msg_modified AS is_read,
IFNULL(lt.id_msg, IFNULL(lmr.id_msg, -1)) + 1 AS new_from') . ', SUBSTRING(m.body, 1, 384) AS body, m.smileys_enabled, m.icon
FROM {db_prefix}topics AS t
INNER JOIN {db_prefix}messages AS m ON (m.id_msg = t.id_last_msg)
INNER JOIN {db_prefix}boards AS b ON (b.id_board = t.id_board)
INNER JOIN {db_prefix}messages AS ms ON (ms.id_msg = t.id_first_msg)
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.id_member)' . (!$user_info['is_guest'] ? '
LEFT JOIN {db_prefix}log_topics AS lt ON (lt.id_topic = t.id_topic AND lt.id_member = {int:current_member})
LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = b.id_board AND lmr.id_member = {int:current_member})' : '') . '
LEFT JOIN {db_prefix}attachments AS a ON (a.id_member = mem.id_member)
LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN mem.id_group = {int:reg_mem_group} THEN mem.id_post_group ELSE mem.id_group END)
WHERE t.id_last_msg >= {int:min_message_id}
' . (empty($exclude_boards) ? '' : '
AND b.id_board NOT IN ({array_int:exclude_boards})') . '
' . (empty($include_boards) ? '' : '
AND b.id_board IN ({array_int:include_boards})') . '
AND {query_wanna_see_board}' . ($modSettings['postmod_active'] ? '
AND t.approved = {int:is_approved}
AND m.approved = {int:is_approved}' : '') . '
ORDER BY t.id_last_msg DESC
LIMIT ' . $num_recent,
array(
'current_member' => $user_info['id'],
'include_boards' => empty($include_boards) ? '' : $include_boards,
'exclude_boards' => empty($exclude_boards) ? '' : $exclude_boards,
'min_message_id' => $modSettings['maxMsgID'] - 35 * min($num_recent, 5),
'is_approved' => 1,
'reg_mem_group' => 0,
)
);
$posts = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
{
/* $row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']), array('<br />' => '&#10;')));
if ($smcFunc['strlen']($row['body']) > 128)
$row['body'] = $smcFunc['substr']($row['body'], 0, 128) . '...';*/

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

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';

// Build the array.
$posts[] = array(
'board' => array(
'id' => $row['id_board'],
'name' => $row['board_name'],
'href' => $scripturl . '?board=' . $row['id_board'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['board_name'] . '</a>'
),
'avatar' => $row['avatar'] == '' ? ($row['id_attach'] > 0 ? '<img width="50" height="50" src="' . (empty($row['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $row['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) . '" alt="" border="0" />' : '') : (stristr($row['avatar'], 'http://') ? '<img width="50" height="50" src="' . $row['avatar'] . '" alt="" border="0" />' : '<img width="50" height="50" src="' . $modSettings['avatar_url'] . '/' . $smcFunc['htmlspecialchars']($row['avatar']) . '" alt="" border="0" />'),
'topic' => $row['id_topic'],
'poster' => array(
'id' => $row['id_member'],
'name' => $row['poster_name'],
'href' => empty($row['id_member']) ? '' : $scripturl . '?action=profile;u=' . $row['id_member'],
'link' => empty($row['id_member']) ? ('<b>'.$row['poster_name'].'</b>') : '<a style="color: '.$row['online_color'].'; font-weight: bold;" href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['poster_name'] . '</a>'
),
'online_color' => $row['online_color'],
'subject' => $row['subject'],
'replies' => $row['num_replies'],
'views' => $row['num_views'],
'short_subject' => shorten_subject($row['subject'], 25),
'preview' => parse_bbc($row['body']),
'time' => timeformat($row['poster_time']),
'timestamp' => forum_time(true, $row['poster_time']),
'href' => $scripturl . '?topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . ';topicseen#new',
'link' => '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . '#new" rel="nofollow">' . $row['subject'] . '</a>',
// Retained for compatibility - is technically incorrect!
'new' => !empty($row['is_read']),
'is_new' => empty($row['is_read']),
'new_from' => $row['new_from'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
);
}
$smcFunc['db_free_result']($request);


echo'
<table style="width: 100%;">';

if (!empty($adkportal['adk_two_column'])) {
$i = 0;
echo'
<tr>';
}
if (!empty($posts)) {
$u = 1;
$totales = count($posts);
foreach($posts AS $Output)
{
$ID_TOPIC = $Output['topic'];
$subject = $Output['subject'];
$posterTime = !empty($adkportal['adk_two_column']) ? timeformat($Output['timestamp'], '%d/%m - %H:%M:%S') : $Output['time'];

$id_member = $Output['poster']['id'];
$href_last = $Output['href'];
if($id_member == 0)
{
$MEMBER_STARTED = $Output['poster']['link'];
$avatar = '<img src="'.$adkFolder['images'].'/noavatar.jpg" class="adk_avatar" alt="" />';
}
else
{
$MEMBER_STARTED = $Output['poster']['link'];
if(!empty($Output['avatar']))
$avatar = $Output['avatar'];
else
$avatar = '<img src="'.$adkFolder['images'].'/noavatar.jpg" class="adk_avatar" alt="" />';

}

if (!empty($adkportal['adk_two_column'])) {
if($i == 2){
echo'</tr>',$totales >= $u-2 ? '<tr><td colspan="2"><hr /></td></tr>' :'','<tr>';
$i = 0;
}
}
else
echo '<tr>';

echo'
<td style="width: 50%">
<table style="width: 100%;" cellspacing="0">
<tr>
<td>
<div style="float:left; padding-right:3px;">
'.$avatar.'
</div>
<a style="text-decoration: none;" href="'.$scripturl.'?topic='.$ID_TOPIC.'.0" title="Ir al tema: '.$subject.'"><b>'.$subject.'</b></a>&nbsp;
', !$Output['is_new'] ? '' : '<a href="' . $scripturl . '?topic=' . $Output['topic'] . '.msg' . $Output['new_from'] . ';topicseen#new" rel="nofollow"><img src="' . $settings['lang_images_url'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /></a>', '
<div style="float: right;padding-right: 5px;">
',Adk_Truncate($Output['preview'], 100, '...', true, true),' <a href="'.$href_last.'">
<img alt="Ir a la respuesta" title="Ir a la respuesta" src="'.$settings['images_url'].'/icons/last_post.gif" />
</a>
</div>
<!--<br />
<span class="smalltext">'.$txt['adkmod_block_last_updated'] .': '.$posterTime.'</span>
<br />
<span class="smalltext">'.$txt['post_by'] .': '.$MEMBER_STARTED.'</span>
<br />
<span class="smalltext">'.$txt['adkmod_forum'].': '.$Output['board']['link'].'</span>-->
</td>
</tr>
</table>
</td>';

if (!empty($adkportal['adk_two_column']))
$i++;
else {
echo '</tr>';

if ($totales >= $u+1)
echo'<tr><td colspan="2"><hr /></td></tr>';
}

$u++;
}
}
else
echo '
<td>
<div style="text-align: center;">
<strong>'.$txt['adkmod_block_no_post_see'].'</strong>
</div>
</td>';
if (!empty($adkportal['adk_two_column']))
echo'
</tr>';
echo'
</table>';
}

El resultado es algo como esto:
*


Lo volví a poner en el bloque central, a dos columnas...
También probé ponerle 150 caracteres al "avance"... pero ya hay más posibilidades de que se muestren imágenes y demás cosas*... la idea en este caso es tenerlo así "acotado", ejjeej

Creo que incluso luego le agregaré un texto "Ir a esta respuesta/participación" antes de la flecha, por más que el ALT ya lo tiene... bien APB, jajaja

* O en todo caso... habría que armar una Adk_Truncate_Solotexto que saque las imágenes... jeje

2.0.12
#6

Mensajes: 1070

Ver Perfil  Email 

« Última Modificación: Septiembre 26, 2014, 04:39:19 pm por luuuciano »
En línea

*
Sep 26 2014


Me alegro que te haya servido ;)

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#7

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Sep 29 2014


^HeRaCLeS^
Se te ocurre qué puede ser que en los textos que salen del truncate los caracteres extendidos se ven mal?
Lo más raro es que solo pasa con algunos de los textos (con los "viejos" creo, los que fueron importados... los nuevos los muestra bien)

Me fijé en la tabla y está bien, utf8_general_ci... y el acento en el mensaje "original" se ve bien... es cuando lo muestra el truncate que se ve mal (y en realidad es en este bloque, el de autonews muestra caracteres bien...)

Probé pasar el adkblocks y el adkfunctions a utf8 por si las moscas... y nada tampoco

2.0.12
#8

Mensajes: 1070

Ver Perfil  Email 

En línea

*
Sep 29 2014


Pero antes de cambiar de servidor funcionaba bien no? y la codificacion de la base de datos es la misma antes y ahora?

y en lugar de los acentos que pone? codigo utf8 o signo de interrogacion o el rombito?

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#9

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea




Otros temas de su interes

Duda sobre adk recent topics ZabiinoOo Mayo 27, 2018, 06:23:02 am
Error a intentar borrar un post/imgen del movie sistem yeiry27 Julio 27, 2011, 08:16:05 am
Una pregunta Dark Junio 30, 2011, 03:40:15 am
Problema con los permisos de ADK portal mermelado Abril 11, 2014, 04:34:31 pm
Cambiar nombre de los botones del menu Pucara Julio 02, 2014, 07:58:27 pm
Staff Princesa1 Octubre 04, 2011, 06:33:22 am



Usuario:
Contraseña:
Sesión:
hermes bracelet replica, christian louboutin replica, van cleef and arpels replica, red bottoms replica, cartier love bracelet replica christian louboutin replica, christian louboutin replica, hermes bracelet replica,