Перейти к содержанию
Официальный форум поддержки Simpla

Как сделать ссылку на страницу на которой мы находимся не активной?


Рекомендуемые сообщения

 Добрый день. Подскажите пожалуйста как сделать ссылку на страницу на которой мы находимся не активной? т.е Я открыл категорию, а ссылка на эту категорию остается активной. 

 И вопрос по логотипу. Когда я на главной ссылка на логотипе активная, как сделать ее не активной только с главной?

http://bestaqua.com.ua/ 

 

Ссылка на сообщение
Поделиться на другие сайты

Т.е. ссылка на эту категорию была не активна в тот момент когда я нахожусь в этой категории, а когда перехожу в другую категорию ссылка становится активной итд

Ссылка на сообщение
Поделиться на другие сайты

$('#catalog_menu li.active a').removeAttr('href');

 

#catalog_menu - блок где находиться наше меню

li.active  - активный пункт меню

a - HTML тег ссылки

removeAttr - удалим атрибут

href - атрибут в "a" - ссылка

Ссылка на сообщение
Поделиться на другие сайты

Инфинити а кудой это вставлять? Побробовал как бы разобратся но сайт лег(((

сейчас глянул ваш сайт:

1. что бы через jQuery удалить атрибут требуется в Вашем МЕГА меню установить класс для активной категории

2. куда и как что вставить: http://api.jquery.com/removeattr/

3. в шаблоне код JS вставляется м/у {literal}ТУТ JS / CSS{/literal}

Ссылка на сообщение
Поделиться на другие сайты

Инфинити. Я безумно извеняюсь. Можно еще разок для "особо одаренных" туго дается

 

1. что бы через jQuery удалить атрибут требуется в Вашем МЕГА меню установить класс для активной категории
 
нужен детальный мануал набора букв чтобы это прописать, т.е. какой кусок кода это сделает?
 
2. куда и как что вставить: http://api.jquery.com/removeattr/
 
как я понял в какойто (КАКОЙ?) jQuery файл нужно воткнуть строки
 
$element.prop( "onclick", null );
console.log( "onclick property: ", $element[ 0 ].onclick );
 
а в какое место? или неважно?
 
3. в шаблоне код JS вставляется м/у {literal}ТУТ JS / CSS{/literal}
 
тут вообще не понятно, ни какой шаблон JS , что такое му? и как понять @ТУТ JS/CSS@
 
СПС за попытку помочь но я не особо пока шарю, поэтому туплю и задаю кучу глупых вопросов.
Ссылка на сообщение
Поделиться на другие сайты

:)

$('#catalog_menu li.active a').removeAttr('href'); - данные строки по сути не зависят от кода.

Вставлять их в index.tpl или TPL файл где находиться меню

что бы получить токкен для jQuery требуеться поставить условие в шаблон где находится меню 

{if $category->id == $c->id}class="selected"{/if}

 

т.к. меню у вас из DIV то и поиск нужный ссылки мы меняем

$('.top_menu_lvl2 a.selected').removeAttr('href');

 

 

Итого:

1. Поправить TPL шаблон каталога, нужно установить условия {if $category->id == $c->id} для ссылок что бы при активном состоянии добавлялся класс по которому мы найдем ее

<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>

 

2. Установиться в файл шаблона или index.tpl 

{literal}
<script type="text/javascript">
(function($){
    $(function(){
        $('.top_menu_lvl2 a.selected').removeAttr('href');
    });
})(jQuery);
</script>
{/literal}

* лучше поставить  в самый низ файла 

Ссылка на сообщение
Поделиться на другие сайты

Что-то мне кажется, что в этой теме все усложнено непомерно.

 

Не проще ли в index.tpl вместо

<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>

вставить

{if $category->id == $c->id}{$c->name|escape}{else}<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>{/if}

 

?

Ссылка на сообщение
Поделиться на другие сайты

))) все верно! Что то я не туда подумал изначально... Через Smarty будет быстрее, экономнее и практичней

<a {if $category->id == $c->id} class="selected" {else} href="catalog/{$c->url}"{/if}  data-category="{$c->id}">{$c->name|escape}</a>

только думаю вот такое условие не потревожит стили 

Ссылка на сообщение
Поделиться на другие сайты

Вот Мой Index.php

 

<?PHP
 
/**
 * Simpla CMS
 *
 * @copyright  2011 Denis Pikusov
 * @link   http://simp.la
 * @author   Denis Pikusov
 *
 */
error_reporting(E_ALL); 
 
// Засекаем время
$time_start = microtime(true);
 
session_start();
 
require_once('view/IndexView.php');
 
$view = new IndexView();
 
// Если все хорошо
if(($res = $view->fetch()) !== false)
{
 // Выводим результат
 header("Content-type: text/html; charset=UTF-8"); 
 print $res;
 
 // Сохраняем последнюю просмотренную страницу в переменной $_SESSION['last_visited_page']
 if(empty($_SESSION['last_visited_page']) || empty($_SESSION['current_page']) || $_SERVER['REQUEST_URI'] !== $_SESSION['current_page'])
 {
  if(!empty($_SESSION['current_page']) && $_SESSION['last_visited_page'] !== $_SESSION['current_page'])
   $_SESSION['last_visited_page'] = $_SESSION['current_page'];
  $_SESSION['current_page'] = $_SERVER['REQUEST_URI'];
 }  
}
else 
 // Иначе страница об ошибке
 header("http/1.0 404 not found");
 
 // Подменим переменную GET, чтобы вывести страницу 404
 $_GET['page_url'] = '404';
 $_GET['module'] = 'PageView';
 print $view->fetch();   
}
 
 
$p=11; $g=2; $x=7; $r = ''; $s = $x;
$bs = explode(' ', $view->config->license);  
foreach($bs as $bl){
 for($i=0, $m=''; $i<strlen($bl)&&isset($bl[$i+1]); $i+=2){
  $a = base_convert($bl[$i], 36, 10)-($i/2+$s)%26;
  $b = base_convert($bl[$i+1], 36, 10)-($i/2+$s)%25;
  $m .= ($b * (pow($a,$p-$x-1) )) % $p;}
 $m = base_convert($m, 10, 16); $s+=$x;
 for ($a=0; $a<strlen($m); $a+=2) $r .= @chr(hexdec($m{$a}.$m{($a+1)}));}
 
@list($l->domains, $l->expiration, $l->comment) = explode('#', $r, 3);
 
$l->domains = explode(',', $l->domains);
 
$h = getenv("HTTP_HOST");
if(substr($h, 0, 4) == 'www.') $h = substr($h, 4);
 
// Отладочная информация
if(1)
{
 print "<!--\r\n";
 $time_end = microtime(true);
 $exec_time = $time_end-$time_start;
  
   if(function_exists('memory_get_peak_usage'))
  print "memory peak usage: ".memory_get_peak_usage()." bytes\r\n";  
 print "page generation time: ".$exec_time." seconds\r\n";  
 print "-->";
}
 
А вот индексвью
 
а вот ещё индексвью
 
<?PHP
 
/**
 * Simpla CMS
 *
 * @copyright  2011 Denis Pikusov
 * @link   http://simp.la
 * @author   Denis Pikusov
 *
 * Этот класс использует шаблон index.tpl,
 * который содержит всю страницу кроме центрального блока
 * По get-параметру module мы определяем что сожержится в центральном блоке
 *
 */
 
require_once('View.php');
 
class IndexView extends View
 public $modules_dir = 'view/';
 
 public function __construct()
 {
  parent::__construct();
 }
 
  
 /**
  *
  * Отображение
  *
  */
 function fetch()
 {
  // Содержимое корзины
  $this->design->assign('cart',  $this->cart->get_cart());
 
        // Категории товаров
  $this->design->assign('categories', $this->categories->get_categories_tree());
  
  // Страницы
  $pages = $this->pages->get_pages(array('visible'=>1));  
  $this->design->assign('pages', $pages);
       
  // Текущий модуль (для отображения центрального блока)
  $module = $this->request->get('module', 'string');
  $module = preg_replace("/[^A-Za-z0-9]+/", "", $module);
 
  // Если не задан - берем из настроек
  if(empty($module))
   return false;
  //$module = $this->settings->main_module;
 
  // Создаем соответствующий класс
  if (is_file($this->modules_dir."$module.php"))
  {
    include_once($this->modules_dir."$module.php");
    if (class_exists($module))
    {
     $this->main = new $module($this);
    } else return false;
  } else return false;
 
  // Создаем основной блок страницы
  if (!$content = $this->main->fetch())
  {
   return false;
  }  
 
  // Передаем основной блок в шаблон
  $this->design->assign('content', $content);  
  
  // Передаем название модуля в шаблон, это может пригодиться
  $this->design->assign('module', $module);
    
  // Создаем текущую обертку сайта (обычно index.tpl)
  $wrapper = $this->design->smarty->getTemplateVars('wrapper');
  if(is_null($wrapper))
   $wrapper = 'index.tpl';
   
  if(!empty($wrapper))
   return $this->body = $this->design->fetch($wrapper);
  else
   return $this->body = $content;
 
 }
}

Не нахожу этого кода в индекс пшп. Кудой его вставить?

Ссылка на сообщение
Поделиться на другие сайты
Вот кусок кода. Вставляю сайт ложится

 

<script src="design/{$settings->theme}/js/top_menu_lvl2.js" type="text/javascript"></script>

                        {if $categories} 

         <ul class="top_menu_lvl2" style="overflow:hidden;">

      {foreach  name=cs item=c from=$categories}

      {* Показываем только видимые категории *}

      {if $c->visible}

      <li class="vis">

      

                                      <a class="first" href="catalog/{$c->url}"  title="{$c->name}">

      

                                                <span class="first">{$c->name}</span>

      </a>

      {if $c->subcategories}

      <!-- фильтр для воды купить со скидкой -->

      <div class="submenu submenu3column">

         <!-- фильтр на весь дом донецке -->

      <div class="sblock-title">

      

                                      <a  href="catalog/{$c->url}"  title="{$c->name}">{$c->name}</a>

      

                                                </div>

Ссылка на сообщение
Поделиться на другие сайты

 

<script src="design/{$settings->theme}/js/top_menu_lvl2.js" type="text/javascript"></script>
{if $categories} 
<ul class="top_menu_lvl2" style="overflow:hidden;">
{foreach  name=cs item=c from=$categories}
  {* Показываем только видимые категории *}
  {if $c->visible}
  <li class="vis">
     <a class="first" {if $category->id == $c->id}{else}href="catalog/{$c->url}"{/if}  title="{$c->name}">
       <span class="first">{$c->name}</span>
     </a>
     {if $c->subcategories}
     <!-- фильтр для воды купить со скидкой -->
     <div class="submenu submenu3column">
        <!-- фильтр на весь дом донецке -->
        <div class="sblock-title">
           <a  {if $category->id == $c->id}{else}href="catalog/{$c->url}"{/if}  title="{$c->name}">{$c->name}</a>
        </div>
 ...

 

Дописываем условие к ссылкам где есть href="catalog/{$c->url}" :

{if $category->id == $c->id}{else}href="catalog/{$c->url}"{/if}
Ссылка на сообщение
Поделиться на другие сайты

Спасибо Инфинити сделал как вы написали. Но как вы и говорили стили начинает перекашивать. Пока мучаюсь со стилями.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...