Webboard

Pełna wersja: Skracanie nawigacji
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
wersja skryptu MyBB: 1.6.12
adres forum:
na czym polega problem (screen, opis, komunikaty, nazwa stylu/theme/szablonu):

Prawdę mówiąc nie do końca wiedziałem jak nazwać swój problem, ale chodzi o to, że kiedy tworzyłem styl nie zakładałem możliwości, w której nawigacja byłaby zbyt obszerna. A jednak. Problem polega na tym, że nawigacja wyjeżdża mi poza ramy tabeli. Chciałbym się dowiedzieć, czy jest możliwość zrobienia czegoś takiego, że kiedy w nawigacji pojawia się 3-4 kolejny dział/wątek (nie wiem jak to nazwać wybaczcie. ) to pierwszy dział/wątek zostaje skrócony do "..."

Wiem, że piszę chaotycznie, ale dzisiaj jakoś tak wyjątkowo nie wiem jak uporządkować myśli. Na screenie mam nadzieję, że w miarę przedstawię wam wizualnie problem.

[Obrazek: 8kzi.png]
W inc/functions.php spróbuj zamienić:
Kod PHP:
        if(is_array($navbits))
    {
        
reset($navbits);
        foreach(
$navbits as $key => $navbit)
        {
            if(isset(
$navbits[$key+1]))
            {
                if(isset(
$navbits[$key+2]))
                {
                    
$sep $navsep;
                }
                else
                {
                    
$sep "";
                }

                
$multipage null;
                
$multipage_dropdown null;
                if(!empty(
$navbit['multipage']))
                {
                    
$multipage multipage($navbit['multipage']['num_threads'], $mybb->settings['threadsperpage'], $navbit['multipage']['current_page'], $navbit['multipage']['url'], true);
                    if(
$multipage)
                    {
                        ++
$i;
                        
$multipage_dropdown " <img src=\"{$theme['imgdir']}/arrow_down.gif\" alt=\"v\" title=\"\" class=\"pagination_breadcrumb_link\" id=\"breadcrumb_multipage\" />{$multipage}";
                        
$sep $multipage_dropdown.$sep;
                    }
                }

                
// Replace page 1 URLs
                
$navbit['url'] = str_replace("-page-1.html"".html"$navbit['url']);
                
$navbit['url'] = preg_replace("/&amp;page=1$/"""$navbit['url']);

                eval(
"\$nav .= \"".$templates->get("nav_bit")."\";");
            }
        }
    } 
na:
Kod PHP:
    if(is_array($navbits))
    {
        
reset($navbits);
                
$navsize count($navbits);
        foreach(
$navbits as $key => $navbit)
        {
            if(isset(
$navbits[$key+1]))
            {
                if(isset(
$navbits[$key+2]))
                {
                    
$sep $navsep;
                }
                else
                {
                    
$sep "";
                }

                
$multipage null;
                
$multipage_dropdown null;
                if(!empty(
$navbit['multipage']))
                {
                    
$multipage multipage($navbit['multipage']['num_threads'], $mybb->settings['threadsperpage'], $navbit['multipage']['current_page'], $navbit['multipage']['url'], true);
                    if(
$multipage)
                    {
                        ++
$i;
                        
$multipage_dropdown " <img src=\"{$theme['imgdir']}/arrow_down.gif\" alt=\"v\" title=\"\" class=\"pagination_breadcrumb_link\" id=\"breadcrumb_multipage\" />{$multipage}";
                        
$sep $multipage_dropdown.$sep;
                    }
                }
                                
                                if(
$navsize && $key+== 2$navbit['name'] = "...";

                
// Replace page 1 URLs
                
$navbit['url'] = str_replace("-page-1.html"".html"$navbit['url']);
                
$navbit['url'] = preg_replace("/&amp;page=1$/"""$navbit['url']);

                eval(
"\$nav .= \"".$templates->get("nav_bit")."\";");
            }
        }
    } 
A wróć działa! Bardzo dziękuje za pomoc!

/edit:
Mam jeszcze "do"pytanie. Czy jest możliwość skrócenia nie o jedno, a o dwa?
Linijkę:
Kod PHP:
if($navsize && $key+== 2$navbit['name'] = "..."
spróbuj zmienić na:
Kod PHP:
if(($navsize && $key+== ) || $navsize && $key+== $navbit['name'] = "..."


Powinieneś ogarnąć jak to działać będzie. :D

(najpierw zlicza nawias, potem reszta).

Jeśli tamto nie spełni wymagań to spróbuj:
Kod PHP:
if($navsize && $key+== || $navsize && $key+== $navbit['name'] = "..."
Wydaje mi się, że powinno działać.