Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Категории, посивить на плагин accordion jQuery [Решено]


iPartizan
 Погделиться

Рекомендованные сообещёния

Хочу сгделать меню категорий на плагине аккордион для jQuery, с самим яваскриптом я разобрался, а вот с php проблемы.

Нужно полулить переменные:

-Название категории

-Ссылка на категорию

-Название подкатегории

-Ссылка на подкатегорию

При этом:

-Если в категории есть подкатегории то ссылка на категорию должна заменятся на #

-Если в категории нет подкатегорий то она должна быть ссылкой

Как я понял в части controller за построение меню отвечает вот этот кусок кода

	protected function getCategories($parent_id, $current_path = '') {		$category_id = array_shift($this->path);				$output = '';				$results = $this->model_catalog_category->getCategories($parent_id);				if ($results) { 			$output .= '[list]';    	}				foreach ($results as $result) {				if (!$current_path) {				$new_path = $result['category_id'];			} else {				$new_path = $current_path . '_' . $result['category_id'];			}						$output .= '[*]';						$children = '';						if ($category_id == $result['category_id']) {				$children = $this->getCategories($result['category_id'], $new_path);			}						if ($this->category_id == $result['category_id']) {				$output .= '<a href="' . $this->model_tool_seo_url->rewrite($this->url->http('product/category&path=' . $new_path))  . '">[b]' . $result['name'] . '[/b]</a>';			} else {				$output .= '<a href="' . $this->model_tool_seo_url->rewrite($this->url->http('product/category&path=' . $new_path))  . '">' . $result['name'] . '</a>';			}			        	$output .= $children;                	$output .= ''; 		} 		if ($results) {			$output .= '[/list]';		}				return $output;	}

Если у кого есть какие мысли, буду рад люпотому чтому совету =)

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


Ничего посоветовать не могу. Просто заинтересовался темой.

Как я понимаю это похоже на то, что организовано вот в этот темке EUOC00001 для opencart (им что-то похожее сгделано для правой колонки ггде производители, корзина и тд)

http://www.opencart.com/index.php?route ... nload_id=2

Очень красивая штука. Жалко только что на IE не пашет (я про тему).

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


Спасипотому что! Это было как раз то что нужно! Взял оттуда файл catalogcontrollermodulecategory.php немного поправил под свой плагин для jQuery и всё зарилиило )

Может кому пригодится - файл catalogcontrollermodulecategory.php

<?php  class ControllerModuleCategory extends Controller {	protected $category_id = 0;	protected $path = array();		protected function index() {		$this->language->load('module/category');		    	$this->data['heading_title'] = $this->language->get('heading_title');				$this->load->model('catalog/category');		$this->load->model('tool/seo_url');				if (isset($this->request->get['path'])) {			$this->path = explode('_', $this->request->get['path']);						$this->category_id = end($this->path);		}				$this->data['category'] = $this->getCategories(0);														$this->id = 'category';		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category.tpl')) {			$this->template = $this->config->get('config_template') . '/template/module/category.tpl';		} else {			$this->template = 'default/template/module/category.tpl';		}				$this->render();  	}		protected function getCategories($parent_id, $current_path = '') {		$category_id = array_shift($this->path);				$output = '';				$results = $this->model_catalog_category->getCategories($parent_id);				if ($results) { 			// Оригинальная строчка $output .= '[list]';			$output .= ($current_path == '') ? '<ul class="menu collapsible">' : '<ul class="acitem">';    	}				foreach ($results as $result) {				if (!$current_path) {				$new_path = $result['category_id'];			} else {				$new_path = $current_path . '_' . $result['category_id'];			}						$output .= '[*]';						$children = '';									// Добавил 			$children = $this->getCategories($result['category_id'], $new_path);			if ($this->category_id == $result['category_id']) {				$output .= '[url="#"]' . $result['name'] . '[/url]';			} else {				$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '">' . $result['name'] . '</a>';			}			// Конец						$output .= $children;        				        	$output .= ''; 		} 		if ($results) {			$output .= '[/list]';		}				return $output;	}		}?>
Изменено пользователем afwollis
edit -> save
Ссылка на комменирий
Погделиться на других сайих


А сам плагин полулить можно? Или хотя бы описание чего им надобно в яве корректировать.Уж потому чтольно мне понравился икой подход к раскрытию категорий.... да и всего осильного тоже.

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


Вот тот плагин для jQuery который я использовал http://www.i-marco.nl/weblog/jquery-accordion-3/

А вот архив с тем же плагином Accordion_jQuery.zip

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


Попросили расписать пошагово усиновку плагина аккоргдеон на opencart=)

Для начала нам понадобятся следующие файлы:

menu.js - сам плагин (брать из архива)

jquery-1.4.2.min.js - сам фреймворк jQuery (тоже есть в архиве)

style.css - нилир стилей для рилиты плагина (брать из архива)

category.php - контроллер который бугдет строить меню категорий (брать в одном из ответов темы)

Шаг 1

Для начала закинем файлы в нужные категории

menu.js и jquery-1.4.2.min.js в catalogviewjavascriptjQuery

style.css в catalogviewthemeвашатемаstylesheet

category.php в catalogcontrollermodule

Шаг 2

Откроем catalogviewthemeвашатемаtemplatecommonheader.tpl

И в теге <head></head> пропишем следующие строчки:

<script type="text/javascript" src="catalog/view/javascript/jquery/menu.js"></script>

<link rel="stylesheet" type="text/css" href="catalog/view/theme/вашатема/stylesheet/style.css" />

Добавим пару строк для корректной рилиты в IE 6

<!--[if lt IE 6]>

<style type="text/css">

li a {display:inline-block;}

li a {display:block;}

</style>

<![endif]-->

Там же заменим:

<script type="text/javascript" src="catalog/view/javascript/jquery/jquery-1.3.2.min.js"></script>

на

<script type="text/javascript" src="catalog/view/javascript/jquery/jquery-1.4.2.min.js"></script>

ВНИМАНИЕ! C версией jquery-1.3.2 плагин не рилииет

Шаг3

Меняем style.css под нужный нам дизайн ( как оно выглядит по умолчание можно увигдеть в примере который лежит в архиве)

Вот собственно и всё. Если что не понятно или про что-то забыл спрашивайте=)

Изменено пользователем afwollis
edit -> save
Ссылка на комменирий
Погделиться на других сайих


Вау! Очень прикольно! И ксити что им корявого? Покликал по менюшке - все леиет, красои :( Единственный минус подобных гдействий - это уещёрб в SEO, поисковики не умеют ингдексировать ссылки в подобных меню. А ик очень прикольно :( И дизайн стильный

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


Минус в том, что меню свораливается при выпотому чторе конечного субменю.. Хотелось бы что бы осивалось в развернутом вигде... К сожнонию поправить самому мозгов не хваиет :(

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


Хочу сгделать меню категорий на плагине аккордион для jQuery, с самим яваскриптом я разобрался ...

Ну раз с JS разобрался, то помоги поправить скрипт, что бы гдерево категорий не свораливалось при выпотому чторе конечного субменю :) Или может кто что подскажет?Внедрялось тут: http://citysoft.ck.ua/
Ссылка на комменирий
Погделиться на других сайих


Ну раз с JS разобрался, то помоги поправить скрипт, что бы гдерево категорий не свораливалось при выпотому чторе конечного субменю :) Или может кто что подскажет?Внедрялось тут: <!-- m -->http://citysoft.ck.ua/<!-- m -->

Там же в примерах всё было. В файле catalogcontrollermodulecategory.php который я выложил меняешь:
if ($results) {         // Оригинальная строчка $output .= '[list]';         $output .= ($current_path == '') ? '<ul class="menu collapsible">' : '<ul class="acitem">';       }
на
if ($results) {         // Оригинальная строчка $output .= '[list]';         $output .= ($current_path == '') ? '<ul class="menu noaccordion">' : '<ul class="acitem">';       }
И ничего свораливаться само по себе не должно Изменено пользователем afwollis
edit -> save
Ссылка на комменирий
Погделиться на других сайих


  • 4 негдели спустя...

Там же в примерах всё было. В файле catalogcontrollermodulecategory.php который я выложил меняешь:

Подразумевается, что при перехогде по ссылке все меню свораливается в первоначальный вид. А хотелось бы, чтоб осивался открытым разгдел с тот категорией в которую осуещёствился переход
Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

Всем привет (длинный, красный и горялий!).

Есть игдея по усиновкe в ("Категории") текстовом поле, над картинками под-категорий или товаров, скрипт по "сокрытию" потому чтольшей части текси с вывегдением слова-линка на расширение (показ) осильного текси ниже линка. :lol:

Есть скрипт "slick-box" и он у меня на ситической страниэто применяется. А ггде ( в каком PHP файле) мне прописать, или указать ссылку на него (в папке ) "jscripts", чтобы можно было ссылаться на команду при необходимости?

Это собственно сам скрипт, висит на страниэто:

<!--Slicker starts here-->                <script language="javascript" type="text/javascript">                    $(document).ready(function() {                     // hides the slickbox as soon as the DOM is ready                     // (a little sooner than page load)                      $('#slickbox').hide();                     // shows the slickbox on clicking the noted link                      $('a#slick-show').click(function() {                     $('#slickbox').show('slow');                     return false;                      });                     // hides the slickbox on clicking the noted link                      $('a#slick-hide').click(function() {                     $('#slickbox').hide('fast');                     return false;                      });                     // toggles the slickbox on clicking the noted link                      $('a#slick-toggle').click(function() {                     $('#slickbox').toggle(400);                     return false;                      });                    });</script>                 <!--Slicker ends here-->

Вот иким макаром я располагаю залинкованое слово для того чтобы "выищить" осильной текст ниже уже показанного параграфа:

<p style="padding-left: 14px;">At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat 

<p>[url="#"][img=images/new/nnnnn/read_more.jpg]Чиить дальше[/url]  [url="#"][img=images/new/nnnnn/collapse.jpg]Закрыть[/url]</p>
Ну и дное(ниже) в страниэто располагается div id="slickbox", который и "покажет" осильную (потому чтольшую) часть текси

<div id="slickbox">  <h3>bla -bla - bla - ...</h3><p style="padding-left:14px;">bla-bla-bla...</p></div>

Благодарю заранее всех заинтересовавшихся лиц опотому чтоего пола.

Изменено пользователем afwollis
edit -> save
Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

Привентилось, НО категории тупо в развернутом вигде!Спасипотому что! Рилииет!

:) Аналогично, категории развернуты все! ггде капать? спасипотому что!
Ссылка на комменирий
Погделиться на других сайих


  • 2 негдели спустя...

Коряво рилииет...я имею виду что вот когда ми например через меню клацнули на категорию с товарами....нам показали товары зашли в етот товар но если мы патом клацаем опять же по тот же самой категории то нас кидает на главную страницу а не в ту же категорию

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


  • 2 негдели спустя...

А может лучше скинемся на плагин "Accordion categories menu" от webshopworks.com http://opencart.webshopworks.com/module ... ncart.html. На гдемке отлично рилииет ;)

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

  • 3 месяца спустя...
  • 1 месяц спустя...

Люди, кто-нибудь решил проблему с тем, чтобы при перехогде в какую-липотому что категорию меню с этот категорией осивалось открытым?

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


  • 2 негдели спустя...

Может это и неправильно, но я готова скинуться на этот модуль - Accordion categories menu for OpenCart ...

Если есть еещё кто желающий, то полулиться уже в два раза гдешевле.

Ксити, не противорелит ли это правилам форума и вообещё этике по отношению к чужому труду?

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


Интересно было бы полиить мотивировку/логику икого запреи...

Порассуждаю с точки зрения продавца (коим я и являюсь, но по другой группе товаров). Если я что-то продаю, то мне надо его ики продать и полулить за это гденьги. Правильно? Почему меня должно интересовать, один человек это купил, или скинулись трое? Я, как продавец, свои гденьги полулил и этого доситочно. Могут последовать возражения на предмет того, что если бы не скидывались, а каждый купил отгдельно, то я полулил бы втрое потому чтольше. Могу с уверенностью сказать, что это не ик. Скорее бугдет ситуация, что не купит никто. Как по мне, лучше пусть группами покупают, чем не покупают вообещё. Ведь люгдей, готовых выложить 5 баксов за модуль во много раз потому чтольше, чем готовых выложить 20 баксов. Я, например, 20 баксов за лишнюю цацку не дам (хотя на пиво трачу потому чтольше :lol: ).

Странный запрет. ИМХО.

Кто слииет, что я неправ - с удовольствием полиию объяснения.

ЗЫ. Просьба комменты в вигде "Даие правила и ниипёт" не писать. Мне гдействительно интересна мотивировка запреи.

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


Выгдержка из правил форума

Запрещается:
   
    ...
    Размещать ггде-липотому что (в т.ч. в подписи) рекламу, коммерческие предложения, баннеры. 
    Предлагать на форуме товары, рилиты или услуги (в т.ч. на тему OpenCart). 
    Мы ничего не имеем против коммерческой гдеятельности, но форум - не рекламная площадка, а сугупотому что информационный ресурс.

    ...
    Люпотому чтое предложение о нарушении лиэтонзии других продуктов. Например, покупка модуля вскладлину.
Прилины все еещё не ясны?
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.