Opis krótki zmiana ilości znaków QuickCart v6.5

proguma

Avatar: proguma

2014-09-28 02:09

Witam

Bardzo proszę o pomoc bo szukam szukam i nic :) pod różnymi nazwami na forum jak nie krótki opis zmiana ilości znaków to pod samo opis i nic nie mogę znaleźć, a teraz do rzeczy gdzie się ustawia albo modyfikuje plik który odpowiada za ilość wyświetlanych znaków w krótkim opisie produktu ? żeby np miał tylko 100 :) Potrzebuje mieć zawsze taką sama ilość a liczyć przy wpisywaniu literek nie bardzo mam chęć ;)

» Quick.Cart v6.x

proguma

openzibi

Avatar: openzibi

2014-09-28 10:10

Najprostsze rozwiazanie:
w core/products.php znajdż linię

$sDescription '<div class="description">'.$aData['sDescriptionShort'].'</div>';



Zamień na

 $sDescription '<div class="description">'.$aData['sDescriptionShort'].'</div>';
          
$sDescription substr($aData['sDescriptionShort'],0,100); 



Krótki opis będzie obcięty po 100 znakach. Oczywiście można to rozszerzyć o automatyczne dodawanie "trzech kropeczek" itd.
W pewnych sytuacjach można też wykorzystać css i ellipsis.

StudioStrona.pl

openzibi

Avatar: openzibi

2014-09-28 12:02

Tu masz poprawiony i ulepszony wariant (likwiduje krzaczki jeżeli ostatnią literą przed ucięciem jest polski znak )

$sDescription '<div class="description">'.$aData['sDescriptionShort'].'</div>';
          
$sDescription =  mb_substr($sDescription,0,100,'UTF-8');

StudioStrona.pl

proguma

Avatar: proguma

2014-09-29 00:22

Działa :) pięknie dziękuję , a możesz jeszcze zdradzić jak dodać te trzy kropki na obcięciu i ten drugi kod z UTF psuje wygląd strony czyli do koszyka robi się szare i idzie na prawo.

proguma

proguma

Avatar: proguma

2014-09-29 01:03

Nie można edytować postów :) jeszcze tylko jedna prośba bo tylko to mi przeszkadza czyli poziome menu na podstronie :) jak to wywalić ?

[img]http://www.proguma.pl/smieci/menu.jpg[/img]

proguma

openzibi

Avatar: openzibi

2014-09-29 08:11

Mój ostatni przykład (2 linie) zamień na jedną poniższą

$sDescription '<div class="description">'.mb_substr($aData['sDescriptionShort'],0,100,'UTF-8').'</div>';



Co nazywasz menu poziomym?

StudioStrona.pl

proguma

Avatar: proguma

2014-09-29 10:44

to co jest w załączniku na obrazku czyli te pozycje które widać na tych poziomych paskach. Jest menu lewe czyli jak w większości sklepów i od razu generuje się to jak dodaje np w menu kolejne podmenu np. test>test1>test2

nie wiem jak dodać obrazek w poprzednim poście jest link ale dam raz jeszcze tutaj

http://www.proguma.pl/smieci/menu.jpg

proguma

openzibi

Avatar: openzibi

2014-09-29 14:57

Edycja strony/Zaawansowane/Podstrony/ Wybierz - Brak wyświetlania

Ta opcja jest od wersji v6.3

StudioStrona.pl

proguma

Avatar: proguma

2014-09-30 12:42

jednak człowiek całe życie się uczy :) tak proste a potrzeba porady ;) dzięki śliczne za pomoc, a a co do ostatniego kodu to nie wiem czy coś źle robie czy jeszcze jest nie tak, ale daj sobie spokój chyba że dla samego siebie chcesz jeszcze go poprawiać bo u mnie po wklejeniu np dwa asortymenty są poprawnie czyli to do koszyka a inne takie jak poprzednio czyli szare i na lewo. Ważne że mam te ograniczone znaki do 100 itd. jeszcze tylko te 3 kropki w krótkim opisie na odcięciu jak byś mógł mi powiedzieć i już na chwile obecną było by wszystko a w niedalekiej przyszłości na pewno się pojawie u Ciebie jako klient żeby porobić strony już takie jak to się mówi na wypasie ;)

proguma

openzibi

Avatar: openzibi

2014-09-30 13:20

Tu obcina 50 znakach. Na chwlę włączony przykład: http://quicktest.pl/forc641/
Coś musiałeś "za dużo" zrobić lub może usunąłeś zakończenie if'a pod zmienianą linią.

}



Wracając do początku i kropeczek:

$sDescription '<div class="description">'.$aData['sDescriptionShort'].'</div>';


zamień na

$sDescription '<div class="description">'.mb_substr($aData['sDescriptionShort'],0,50,'UTF-8').' ...</div>';


To jest najprostszy wariant, w którym kropeczki zawsze są widoczne.

StudioStrona.pl

proguma

Avatar: proguma

2014-10-01 00:45

teraz wszystko śmiga aż miło :) jeszcze raz ślicznie dziękuje :)

proguma

Jupraw

Avatar: Jupraw

2015-01-27 11:37

@openzibi, czy możesz pomóc w tym temacia dla QuickCms v 6.0.
Próbowałem z kodem:
$aData['sDescriptionShort'] = '<div class="description2">'.mb_substr($aData['sDescriptionShort'],0,100,'UTF-8').' <a href="'.$aLinksIds[$aData['iPage']].'">Czytaj_więcej&rsaquo;&rsaquo;&rsaquo;</a></div>';
ale pojawia się także na pustej stronie nadrzędnej (po wstawieniu na nią jakiegokolwiek znaku jest OK). Gdzie robię błąd?

Jupraw

boboo

Avatar: boboo

2015-01-27 12:29

@Jupraw,
w pliku /templates/default/_lists.php
zamień:

<div class="description">'.$aData['sDescriptionShort'].'</div>


na:

<div class="description">'.cutText($aData['sDescriptionShort'], 100).' <a href="'.$aData['sLinkName'].'">Czytaj_więcej &rsaquo;&rsaquo;&rsaquo;</a>'.'</div>


(liczba 100 oznacza długość uciętego tekstu)
Wykorzystując obecną w trash.php funkcję cutText masz jeszcze dodatkową zaletę: tekst nie jest ucinany w połowie słowa (jeśli to będzie akurat setny znak) tylko zostaje to "zaokrąglone w dół" do całego słowa.

boboo :-)

artek

Avatar: artek

2021-01-21 09:16

Właśnie potrzebowałem podobnego rozwiązania i znalazłem idealne https://stackoverflow.com/a/9374593
Po wstawieniu do w/w pliku funkcji

 function truncate($str$len) {
  
$tail max(0$len-10);
  
$trunk substr($str0$tail);
  
$trunk .= strrev(preg_replace('~^..+?[\s,:]\b|^...~''...'strrev(substr($str$tail$len-$tail))));
  return 
$trunk;
}


zmieniamy ten fragment

$sDescription '<div class="description">'.truncate($aData['sDescriptionShort'],50).'</div>';

Artur - ProjektGraficzny.com

Do góry
o nas | kontakt