Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Reducir url agregando puntos suspensivosTema Solucionado

Foros donde podréis dejar vuestras dudas sobre phpBB 3.0.x
Cerrado

0
No hay votos
 
Votos totales: 0

EmmaX
Usuario/a
Mensajes: 86
Registrado: 08 May 2011, 19:50
Edad: 34

Reducir url agregando puntos suspensivos

#1

Mensaje por EmmaX »

Buenas gente, hace tiempo no preguntaba nada por estos lados asi que hoy vengo con una gran duda..

Mi duda es esta, yo en mi portal tengo una bloque que muestra los ultimos temas de un foro en especifico, para mostrarlo uso el siguiente codigo:

Código: Seleccionar todo

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './phpBB3/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');

/* create_where_clauses( int[] gen_id, String type )
* This function outputs an SQL WHERE statement for use when grabbing
* posts and topics */

function create_where_clauses($gen_id, $type)
{
global $db, $auth;

$size_gen_id = sizeof($gen_id);

switch($type)
{
case 'forum':
$type = 'forum_id';
break;
case 'topic':
$type = 'topic_id';
break;
default:
trigger_error('No type defined');
}

// Set $out_where to nothing, this will be used of the gen_id
// size is empty, in other words "grab from anywhere" with
// no restrictions
$out_where = '';

if ($size_gen_id > 0)
{
// Get a list of all forums the user has permissions to read
$auth_f_read = array_keys($auth->acl_getf('f_read', true));

if ($type == 'topic_id')
{
$sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . '
WHERE ' . $db->sql_in_set('topic_id', $gen_id) . '
AND ' . $db->sql_in_set('forum_id', $auth_f_read);

$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
// Create an array with all acceptable topic ids
$topic_id_list[] = $row['topic_id'];
}

unset($gen_id);

$gen_id = $topic_id_list;
$size_gen_id = sizeof($gen_id);
}

$j = 0; 

for ($i = 0; $i < $size_gen_id; $i++)
 {
$id_check = (int) $gen_id[$i]; // If the type is topic, all checks have been made and the query can start to be built if( $type == 'topic_id' ) { $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' '; } // If the type is forum, do the check to make sure the user has read permissions else if( $type == 'forum_id' && $auth->acl_get('f_read', $id_check) )
{
$out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' ';
} 

$j++;
}
}

if ($out_where == '' && $size_gen_id > 0)
{
trigger_error('A list of topics/forums has not been created');
}

return $out_where;
}

// Número de últimos posts a mostrar:
$search_limit = 5;

// ID del foro específico. Si deseas más de un foro, separar por "comas".
$forum_id = array(3);
$forum_id_where = create_where_clauses($forum_id, 'forum');



$topics = 'SELECT * FROM ' . TOPICS_TABLE . '
' . $forum_id_where . '
AND topic_status <> ' . ITEM_MOVED . '
AND topic_approved = 1
ORDER BY topic_id DESC';

$topics_result = $db->sql_query_limit($topics, $search_limit);

while ($topics_row = $db->sql_fetchrow($topics_result))
{
$topic_title = $topics_row['topic_title'];
$topic_title = censor_text($topic_title);
$topic_author = get_username_string('full', $topics_row['topic_poster'], $topics_row['topic_first_poster_name'], $topics_row['topic_first_poster_colour']);
$topic_date = $user->format_date($topics_row['topic_time']);
$topic_last_post = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "p=" . $topics_row['topic_last_post_id'] . "#" . $topics_row['topic_last_post_id']);
$topic_last_author = get_username_string('full', $topics_row['topic_last_poster_id'], $topics_row['topic_last_poster_name'], $topics_row['topic_last_poster_colour']);
$topic_link = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t=" . $topics_row['topic_id']);

echo "<b>!!</b> <a href=\"$topic_link\">$topic_title</a> por $topic_author - $topic_date<br>";


}
?>
este codigo es uno que encontre aqui y que fue publicado por mitch en su momento, no esta de mas decir que funciona perfecto..


lo que necesito ahora es que al momento de mostrarse el titulo de los ultimos temas, los cuales estaran linkeados con la url del tema, estos se muestren de manera reducida y que al final tengan "..." (puntos suspensivos).

por si no me explique bien, dejo un ejemplo:

Se confirma nueva película del director de Looper (Asi se muestra actualmente)
Se confirma nueva película... (Asi quiero que se muestre)

deseo que el link se muestre recortado por asi decirlo pero que aun asi redirija hacia el mismo lugar..


buscando y buscando encontre esto:

Código: Seleccionar todo

function recortar_texto($texto, $limite=100){   
    $texto = trim($texto);
    $texto = strip_tags($texto);
    $tamano = strlen($texto);
    $resultado = '';
    if($tamano <= $limite){
        return $texto;
    }else{
        $texto = substr($texto, 0, $limite);
        $palabras = explode(' ', $texto);
        $resultado = implode(' ', $palabras);
        $resultado .= '...';
    }   
    return $resultado;
}

$cadena = 'La Región de León, Región Leonesa o Reino de León, es una región histórica española definida tras la división territorial de España en 1833';

//Modo de uso:
echo recortar_texto($cadena, 50); // Imprimirá: La Región de León, Región Leonesa o Reino de León,...
Se que es una funcion php, pero no soy muy diestro en el tema por lo que no se como combinarla o implementarla junto con el codigo que me muestra los ultimos temas.


Espero alguien sepa como ayudarme o por lo menos decirme si estos se puede o no se puede hacer.. gracias por haberlo leido, espero sus respuestas...
Datos de Soporte | Mostrar
URL: http://www.anime-backup.com
Versión phpBB: phpBB3 3.0.12
MODs Instalados:
[BETA] phpBB SEO Premod v 3.0.12
GYM SItemaps & RSS,
phpBB SEO Zero duplicate,
phpBB SEO No duplicate,
phpBB SEO Related Topics,
phpBB SEO Dynamic Meta tags
phpBB SEO Optimal titles
Automod 1.0.2
UMIL 1.0.5
[MODDB] Auto Group 1.0.2
[MODDB] Board3 Portal 2.0.2
[MODDB] phpBB jQuery Base 1.0.1
[MODDB] Universal No Avatar 1.0.0
[MODDB] Convert quoted images to url 1.0.2
[MODDB] Facebook Profile Link 1.0.1
[MODDB] Twitter Profile Link 1.0.6
[MODDB] Contact board administration 1.0.10
[MODDB] Prime Trash Bin 1.1.8
[MODDB] Me/we/you/us filter 1.0.4d
[MODDB] NV User Topics1.0.4.1
[MODDB] ReIMG Image Resizer 2.0.1
[MODDB] Advanced BBCode Box 3.0.13 (desactivado)
[MODDB] Country Flags User Edition 1.2.1
[MODDB] Multi Smile 1.0.1
[RC] Reputation System 0.7.0
[RC] phpBB3 Social Network 0.7.2
[DEV] AOS Notifications 0.0.8
[RC] AOS Tag User BBCode 1.0.0
[RC] Simple PM Quick Reply 1.1.1
[BETA] Medal System MOD 1.0.1
[N/A] ERS Nuevos Mensajes 1.0.1
[RC] cBB Blockgets v1.0.4
[RC] cBB Chat 1.0.1
[RC] cBB QuickMod v1.0.3
[AddOn] cBB Chat AddOn v1.0.0(cBB)
[Plugin] Cookie Law v1.0.0 (cBB)
[Plugin] phpBB SEO v1.0.0 (cBB)
Popup por defecto para MP viewtopic.php?t=39904
Citar en Respuesta Rapida http://phpbb.alorse.net/viewtopic.php?f=13&t=223
Plantilla(s) usada(s): Prosilver
Servidor: Linux
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Usuario de pruebas:
Nick: test-user
Pass: test-user

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 37

Re: Reducir url agregando puntos suspensivos  Tema Solucionado

#2

Mensaje por Alorse »

En realidad es muy sencillo, solo busca esto:

Código: Seleccionar todo

$topic_title = $topics_row['topic_title'];
Y después pon esto:

Código: Seleccionar todo

if (strlen($topic_title) > 50)
	  $topic_title = substr($topic_title, 0, 49) . "...+"; // 49 es el numero de caracteres a mostrar por titulo

EmmaX
Usuario/a
Mensajes: 86
Registrado: 08 May 2011, 19:50
Edad: 34

Re: Reducir url agregando puntos suspensivos

#3

Mensaje por EmmaX »

Alorse escribió:En realidad es muy sencillo, solo busca esto:

Código: Seleccionar todo

$topic_title = $topics_row['topic_title'];
Y después pon esto:

Código: Seleccionar todo

if (strlen($topic_title) > 50)
	  $topic_title = substr($topic_title, 0, 49) . "...+"; // 49 es el numero de caracteres a mostrar por titulo

jaja, capo! muchas gracias, nuevamente me resolves un problema..

mi duda esta resuelta, no si si lo tengo que hacer yo o no pero creo que el tema lo tienen que cerrar ja.. gracias de nuevo
Datos de Soporte | Mostrar
URL: http://www.anime-backup.com
Versión phpBB: phpBB3 3.0.12
MODs Instalados:
[BETA] phpBB SEO Premod v 3.0.12
GYM SItemaps & RSS,
phpBB SEO Zero duplicate,
phpBB SEO No duplicate,
phpBB SEO Related Topics,
phpBB SEO Dynamic Meta tags
phpBB SEO Optimal titles
Automod 1.0.2
UMIL 1.0.5
[MODDB] Auto Group 1.0.2
[MODDB] Board3 Portal 2.0.2
[MODDB] phpBB jQuery Base 1.0.1
[MODDB] Universal No Avatar 1.0.0
[MODDB] Convert quoted images to url 1.0.2
[MODDB] Facebook Profile Link 1.0.1
[MODDB] Twitter Profile Link 1.0.6
[MODDB] Contact board administration 1.0.10
[MODDB] Prime Trash Bin 1.1.8
[MODDB] Me/we/you/us filter 1.0.4d
[MODDB] NV User Topics1.0.4.1
[MODDB] ReIMG Image Resizer 2.0.1
[MODDB] Advanced BBCode Box 3.0.13 (desactivado)
[MODDB] Country Flags User Edition 1.2.1
[MODDB] Multi Smile 1.0.1
[RC] Reputation System 0.7.0
[RC] phpBB3 Social Network 0.7.2
[DEV] AOS Notifications 0.0.8
[RC] AOS Tag User BBCode 1.0.0
[RC] Simple PM Quick Reply 1.1.1
[BETA] Medal System MOD 1.0.1
[N/A] ERS Nuevos Mensajes 1.0.1
[RC] cBB Blockgets v1.0.4
[RC] cBB Chat 1.0.1
[RC] cBB QuickMod v1.0.3
[AddOn] cBB Chat AddOn v1.0.0(cBB)
[Plugin] Cookie Law v1.0.0 (cBB)
[Plugin] phpBB SEO v1.0.0 (cBB)
Popup por defecto para MP viewtopic.php?t=39904
Citar en Respuesta Rapida http://phpbb.alorse.net/viewtopic.php?f=13&t=223
Plantilla(s) usada(s): Prosilver
Servidor: Linux
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Usuario de pruebas:
Nick: test-user
Pass: test-user

Cerrado

Volver a “Foros de Soporte 3.0.x”