Skocz do zawartości

Skracanie długich słów z tytułów


sylverand

Rekomendowane odpowiedzi

Witam

nie znam takich spraw w PHP, ale jeden informatyk zrobil mi dobrze stronę na której wyciągane ostatnie tematy z forum jak mają za długie wyrazy w tytule, to te długie wyrazy skraca kropkując, ale 2-giemu informatykowi o tym nie powiedzialem i nie zrobil tak a juz go nie ma w zasięgu bo wyjechał.

Umialby ktos ten kawalek kodu tak dostosowac, zeby rowniez ucinal za dlugie wyrazy jak sie pojawią w tytule?

Tutaj mam ten kawalek kodu ktory dziala prawidlowo i tnie za dlugie słowa:

function get_forum_links() {

$posts = $this->Setting->get_last_forum_posts();

$forum_links = array();

if (empty($posts) || !is_array($posts)) {

return $forum_links;

}

foreach ($posts AS $nr => $post) {

$post_id = $post['post_id'];

$post_subject = $post['post_subject'];

$topic_id = $post['topic_id'];

$topic_title = $post['topic_title'];

$ahref = '/forum/viewtopic.php?p=' . $post_id . '#' . $post_id;

$atext = '';

$wwidth = 10;

$wreplace = '...';

$words = preg_split('/\s+/', html_entity_decode($topic_title), -1, PREG_SPLIT_NO_EMPTY);

foreach ($words AS $word) {

if (strlen($word) > $wwidth) {

$word = substr($word, 0, $wwidth - strlen($wreplace));

}

$atext .= ' ' . $word;

}

$forum_links[] = array(

'ahref' => $ahref,

'atext' => $atext,

);

}

return $forum_links;

}

}

a tutaj mam tą samą funkcje brania tytułów ostatnich postów z forum, też działa, tylko że jak jest za dlugie slowo albo brak odstępów w tytule to sie rozjezdza cała tabela szerokooo:

$tresc = readData($this->m_aSkorki[ROOT][sKIN]); // wczytanie treści

$loop_na_forum = regexGetLeaveID($tresc,LOOP_NA_FORUM,'%TMP_LOOP_NA_FORUM%');

$loop_na_forum_b = regexGetLeaveID($tresc,LOOP_NA_FORUM_B,'');

//$loop_na_forum_c = regexGetLeaveID($tresc,LOOP_NA_FORUM_C,'');

//$loop_na_forum_d = regexGetLeaveID($tresc,LOOP_NA_FORUM_D,'');

$sql = "SELECT MAX(p.post_id) id, t.topic_title nazwa ".

"FROM phpbb_posts p, phpbb_topics t ".

"WHERE t.topic_id = p.topic_id GROUP BY p.topic_id ORDER BY id DESC LIMIT 0,8";

$res = mysql_query($sql) or die(__FILE__.__LINE__.mysql_error());

$stan = 0;

while($row = mysql_fetch_array($res)){

if($stan == 0) {$loop = $loop_na_forum; $stan = 1;} else { $loop = $loop_na_forum_b; $stan = 0;}

$tmp = array(LINK_TO_PHPBB2."viewtopic.php?p=$row[id]#$row[id]",$row[nazwa]);

$TMP_LOOP_NA_FORUM .= str_replace($LABELS[LOOP_NA_FORUM],$tmp,$loop);

}

wielkie dzięki za pomoc, pewnie to jest proste ale mi nie wychodzi :)

Myśl i bogać się

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności