![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 10.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam na ukończeniu fajny sklep oparty o oscommerce. Problem polega na tym, że cała baza zatowarowana jest na podstawie cennika hurtowni action (ok 12 000 produktów z opisami i zdjęciami). Niestety niektóre nazwy to nawet 60-70 i więcej znaków nie oddzielanych spacjami np bartonxp2500/hdd320/1gbddr2/dvd-rw/..... a co za tym idzie sklep zaczyna się rozjeżdzac Próbowałem 2 rozwiązań z forum, niestety bez rezultatów.
Tabele, które się rozjeżdzają mają budowe:
Dzięki za pomoc. Pozdrawiam Ten post edytował MotyF 6.05.2007, 10:27:23 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
użyj funkcji word_wrap" title="Zobacz w manualu PHP" target="_manual lub utnij kawałek nazwy:
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 10.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki ale coś nie pomaga. Zaznaczam, że wkleiłem to na początku skryptu (sama góra)
Po pierwsze jest o jeden zawias za dużo <?phpif(strlen($bardzo_dluga_nazwa) > 50) { $bardzo_dluga_nazwa = '<span title="' . htmlspecialchars($bardzo_dluga_nazwa) . '">' . htmlspecialchars(substr($bardzo_dluga_nazwa, 0, 47)) . '...</span>');}?> ale to nie problem. Według tego co widzisz w budowie modułu nazwa produktu to: $products_name więc ustawiłem tak: <?php if(strlen($products_name) > 15) { $products_name = '<span title="' . htmlspecialchars($products_name) . '">' . htmlspecialchars(substr($products_name, 0, 20)) . '...</span>'; } ?> Niestety nazwy są nadal długie. Czy możesz mmi jeszcze pomóc? Dzięki p.S. Co oznaczają 2 ostatnie parametry? Ten post edytował MotyF 5.05.2007, 19:11:36 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze to stosuj tagi [ php ] tu wklejasz swój kod PHP [ /php ] bo twoje posty są strasznie nieczytelne.
Po drugie z tego co widzę, to nazwa produktu przechowywana jest w zmiennej $new_products['products_name'] a nie $products_name. Po trzecie nie wklejaj tego na samej górze skryptu, tylko wstaw do pętli która odczytuje nazwy produktów z bazy danych - tak żeby każdy produkt miał skróconą nazwę. Po czwarte: substr" title="Zobacz w manualu PHP" target="_manual - tutaj pisze do czego służy drugi i trzeci parametr tej funkcji. -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 10.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Na początku dzięki za odpowiedź.
Nie jestem na tyle obyty w php aby wkleić w pętle. Umieściłem cały skrypt w tagach, więc jak możesz napisz gdzie wkleić (cały czas próbuje) Po drugie. Jeżeli nazwa produktu to np. ACTINA SOLAR 200 X2 1*5110/1GB/2*250GB/DVR/PP4DP gdzie 1 człon nazwy nie jest długi, ale drugi jest za długi. Czy Twój sposób pomoże i w takim przypapdku. Pozdrawiam |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat Po drugie. Jeżeli nazwa produktu to np. ACTINA SOLAR 200 X2 1*5110/1GB/2*250GB/DVR/PP4DP gdzie 1 człon nazwy nie jest długi, ale drugi jest za długi. Czy Twój sposób pomoże i w takim przypapdku. W takim wypadku lepiej zastosować wordwrap():
Liczba 20 (drugi parametr funkcji wordwrap) określa ile maksymalnie znaków może mieć jeden wyraz. Jeśli w nazwie będzie jakiś dłuższy - zostanie podzielony na 2 części. Krótsze wyrazy pozostaną bez zmian. -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 10.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki. Musiałem zjechać do liczby 6, aby wszystko wyglądało ładnie. Dzięki Tobie rozumie, jak czytać instrukcje wordwrap'a. Wcześniej bez przykładu nie mogłem sam tego zrobić. Czy na tym forum jest opcja pomógł/postaw piwo?
Jeszcze jeden plik potzrebuje takiej operacji ale nie moge sobie jeszcze dać rady. Pisze nowy post, ponieważ poprzedni miałby za dużo znaków
cd
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:24 |