Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#51 2012-09-16 18:26:47

qwas
Участник
Откуда Kyyiv
Зарегистрирован: 2012-05-16
Сообщений: 229
Рейтинг :   
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

Все еще актуально...

Не в сети

#52 2012-09-16 21:37:24

easmik
VIP забанил этого пользователя.
Зарегистрирован: 2011-02-01
Сообщений: 1,031
Рейтинг :   37 

Re: Разворачивающееся меню категорий (грязный хак)

qwas, на сколько я понимаю функцию переписали под твиг

Не в сети

#53 2012-09-17 00:02:48

qwas
Участник
Откуда Kyyiv
Зарегистрирован: 2012-05-16
Сообщений: 229
Рейтинг :   
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

Вот пилять...)) у меня 21 категория и эти категории являются менюшкой, сильно длинная выходит... Есть добрые люди которые подправят код под 0.9.3?

Не в сети

#54 2012-09-19 08:43:12

Westergraf
Участник
Зарегистрирован: 2011-01-12
Сообщений: 108
Рейтинг :   

Re: Разворачивающееся меню категорий (грязный хак)

qwas пишет:

Вот пилять...)) Есть добрые люди которые подправят код под 0.9.3?

Тоже Очень интересует данный вопрос !!!


Бесконечно Благодарен: Wolverine, Local, Trashcka, easmik, StronG, mittus, Knopik, coreldraw, infinity237, vvovvo, irbees2008, pixar2301!

Держу сайт на данном Хостинге 119 рублей для России и 35 грн для Украины!

Не в сети

#55 2012-09-19 09:30:00

Nushaba
Участник
Зарегистрирован: 2009-11-09
Сообщений: 276
Рейтинг :   

Re: Разворачивающееся меню категорий (грязный хак)

По моему такую же тему можно сделать банально css+js если совсем красиво надо оформить.

Не в сети

#56 2012-09-19 12:22:24

qwas
Участник
Откуда Kyyiv
Зарегистрирован: 2012-05-16
Сообщений: 229
Рейтинг :   
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

Nushaba, вот как раз проблема в том, что совсем не программист и не верстальщик)) то что это просто я даже не сомневаюсь, сам понимаю, но без знаний особо не хочется лезть. Тем более JS может не работать ибо шаблон мне много переделали один и он со Слайдером большим... Была кнопка вверх, теперь не работает из-за конфликта скриптов, точно сказать ничего не могу.

Не в сети

#57 2012-09-19 13:26:58

Nushaba
Участник
Зарегистрирован: 2009-11-09
Сообщений: 276
Рейтинг :   

Re: Разворачивающееся меню категорий (грязный хак)

qwas, скинь пункты меню в таком формате:

Главная
Продукция
— Окна Veka
— — Окно с дверью для балкона
— — Окна для лоджии
— Пластиковые двери

и поясни какой пункт должен разворачиваться - попробую сделать, а лучше вообще пример в картинке или на сайте.

Не в сети

#58 2012-09-19 18:05:13

qwas
Участник
Откуда Kyyiv
Зарегистрирован: 2012-05-16
Сообщений: 229
Рейтинг :   
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

Nushaba, адрес сайта отправил в личку.

Не в сети

#59 2012-09-19 19:03:13

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

qwas пишет:

Nushaba, вот как раз проблема в том, что совсем не программист и не верстальщик)) то что это просто я даже не сомневаюсь, сам понимаю, но без знаний особо не хочется лезть. Тем более JS может не работать ибо шаблон мне много переделали один и он со Слайдером большим... Была кнопка вверх, теперь не работает из-за конфликта скриптов, точно сказать ничего не могу.

в нете много прог для создания меню,Sothink DHTML Menu 8 например,или посмотри здесь http://www.webmasters.by/articles/html- … -menu.html

Не в сети

#60 2012-09-20 01:45:10

qwas
Участник
Откуда Kyyiv
Зарегистрирован: 2012-05-16
Сообщений: 229
Рейтинг :   
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

irbees2008, у меня немножко не такое меню)) да и по цвету немного не то... хотя думаю может быть перекрутить его да заюзать, во всяком случае спасибо за совет.

Не в сети

#61 2012-09-20 09:42:35

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

qwas пишет:

irbees2008, у меня немножко не такое меню)) да и по цвету немного не то... хотя думаю может быть перекрутить его да заюзать, во всяком случае спасибо за совет.

там есть еще варианты

Не в сети

#62 2012-09-20 15:02:55

Nushaba
Участник
Зарегистрирован: 2009-11-09
Сообщений: 276
Рейтинг :   

Re: Разворачивающееся меню категорий (грязный хак)

Ну раз пошла такая пляска, вот меню, которое разворачивается чисто по клику: http://megaweb.su/demo/click_menu/megaweb.su.html Только стили свои настроить осталось.
qwas, я покопался с меню и понял что нормально меню не сделать хотя бы как в примере, дело в том, что движок не умеет делать новые группы <ul>. В принципе есть варианты с помощью того же самого {level} сделать скрипт, который будет менять код шаблона, но непонятно как на такое отреагируют поисковые системы и я не знаю настолько круто JS программирование. Проще всего будет сделать в ADS_PRO блок с меню и вставить туда html код меню с нужными функциями, на автомате выпадающее меню не запустить.

Не в сети

#63 2012-09-20 18:32:22

qwas
Участник
Откуда Kyyiv
Зарегистрирован: 2012-05-16
Сообщений: 229
Рейтинг :   
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

Nushaba, я понял, спасибо. Буду что-то думать...

Не в сети

#64 2012-12-23 20:21:22

Slevin777
Участник
Зарегистрирован: 2012-12-23
Сообщений: 7
Рейтинг :   

Re: Разворачивающееся меню категорий (грязный хак)

Подскажите пожалуйста , в место какого кода в functions.inc.php нужно вставить быдлокод а если можно то какую и по какую строку убрать стандартный код шоб вставить быдло...:)

function generateCategoryMenu()
начинается с 995 строки

Изменено Slevin777 (2012-12-23 20:24:13)


Жизнь хитра! Когда у меня на руках все карты - она внезапно решает играть в шахматы…

Не в сети

#65 2012-12-23 22:22:23

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

Slevin777 пишет:

Подскажите пожалуйста , в место какого кода в functions.inc.php нужно вставить быдлокод а если можно то какую и по какую строку убрать стандартный код шоб вставить быдло...:)

function generateCategoryMenu()
начинается с 995 строки

в первом посте все подробно расписано

Не в сети

#66 2012-12-24 03:06:28

Slevin777
Участник
Зарегистрирован: 2012-12-23
Сообщений: 7
Рейтинг :   

Re: Разворачивающееся меню категорий (грязный хак)

irbees2008 пишет:
Slevin777 пишет:

Подскажите пожалуйста , в место какого кода в functions.inc.php нужно вставить быдлокод а если можно то какую и по какую строку убрать стандартный код шоб вставить быдло...:)

function generateCategoryMenu()
начинается с 995 строки

в первом посте все подробно расписано

Ты не понял о чем речь, в первом посте то что написано я внятно раз 5ть прочел!!!


как вот это (0.9.3)

// New category menu generator
function generateCategoryMenu(){
	global $mysql, $catz, $tpl, $config, $CurrentHandler, $SYSTEM_FLAGS, $TemplateCache, $twig, $twigLoader;

	// Load template variables
	templateLoadVariables(true);
	$markers = $TemplateCache['site']['#variables']['category_tree'];

	if (!isset($markers['class.active']))
		$markers['class.active'] = 'active_cat';

	if (!isset($markers['class.inactive']))
		$markers['class.inactive'] = '';

	if (!isset($markers['mark.default']))
		$markers['mark.default'] = '—';


	$result = '';

совместить с этим (более старым)

function generateCategoryMenu()
{
    global $mysql, $catz, $tpl, $config, $CurrentHandler, $SYSTEM_FLAGS;

    $result = '';
    $tpl -> template('categories', tpl_site); 

//основной большой цикл    
foreach ($catz as $k=>$v)
{

if (!substr($v['flags'],0,1)) continue;
        
//проход дочерних категорий
    foreach ($catz as $k1=>$v1)
    {
        if($v1['parent'] == $v['id'])
        {
            //делаем текущую категорию активной(подсвеченной в меню)
            if (isset($SYSTEM_FLAGS['news']['currentCategory.id']) && ($v1['id'] == $SYSTEM_FLAGS['news']['currentCategory.id']))
                $span=" class=\"active_cat\"";
            else $span='';

        $temp_child_catz[]="<li><img src='{$config['admin_url']}/includes/js/cat_img/join.gif' alt='join' /><a href='{$config['home_url']}/{$v1['alt']}.html'><span$span>".htmlspecialchars($v1['name'], ENT_QUOTES, 'utf8')."</span></a></li>";        

        $lastchild_cat = "<li><img src='{$config['admin_url']}/includes/js/cat_img/joinbottom.gif' alt='joinbottom' /><a href='{$config['home_url']}/{$v1['alt']}.html'><span$span>".htmlspecialchars($v1['name'], ENT_QUOTES, 'utf8')."</span></a></li>";

        }
    }

if($temp_child_catz) $temp_child_catz[count($temp_child_catz)-1] = $lastchild_cat;//если есть массив дочерних - меняем последний элемент

Зарание спасибо!!!!


Жизнь хитра! Когда у меня на руках все карты - она внезапно решает играть в шахматы…

Не в сети

#67 2012-12-24 08:03:39

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

так у тебя релиз или ночная сборка?

Не в сети

#68 2012-12-24 16:02:46

Slevin777
Участник
Зарегистрирован: 2012-12-23
Сообщений: 7
Рейтинг :   

Re: Разворачивающееся меню категорий (грязный хак)

irbees2008

так у тебя релиз или ночная сборка?

релиз...


Жизнь хитра! Когда у меня на руках все карты - она внезапно решает играть в шахматы…

Не в сети

#69 2012-12-24 18:57:49

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

Re: Разворачивающееся меню категорий (грязный хак)

в файле  functions.inc.php строка 994

function generateCategoryMenu(){
	global $mysql, $catz, $tpl, $config, $CurrentHandler, $SYSTEM_FLAGS, $TemplateCache, $twig, $twigLoader;

	// Load template variables
	templateLoadVariables(true);
	$markers = $TemplateCache['site']['#variables']['category_tree'];

	if (!isset($markers['class.active']))
		$markers['class.active'] = 'active_cat';

	if (!isset($markers['class.inactive']))
		$markers['class.inactive'] = '';

	if (!isset($markers['mark.default']))
		$markers['mark.default'] = '—';


	$result = '';

	// Deremine working mode - old or new
	// If template 'news.categories' exists - use `new way`, else - old

	if (file_exists(tpl_site.'news.categories.tpl')) {

		$tVars = array();

		$tEntries = array();
		foreach($catz as $k => $v){
			if (!substr($v['flags'],0,1)) continue;

			$tEntry = array(
				'id'	=> $v['id'],
				'cat'	=> $v['name'],
				'link'		=>	($v['alt_url'] == '')?generateLink('news', 'by.category', array('category' => $v['alt'], 'catid' => $v['id'])):$v['alt_url'],
				'mark'		=>	isset($markers['mark.level.'.$v['poslevel']])?$markers['mark.level.'.$v['poslevel']]:str_repeat($markers['mark.default'], $v['poslevel']),
				'level'		=>	$v['poslevel'],
				'cat'		=>	$v['name'],
				'counter'	=>	$v['posts'],
				'icon'		=>	$v['icon'],

				'flags'		=> array(
					'active'	=>	(isset($SYSTEM_FLAGS['news']['currentCategory.id']) && ($v['id'] == $SYSTEM_FLAGS['news']['currentCategory.id']))?true:false,
					'counter'	=>	($config['category_counters'] && $v['posts'])?true:false,
				)
			);
			$tEntries []= $tEntry;
		}

		// Update `hasChildren` and `closeLevel_X` flags for items
		for ($i = 0; $i < count($tEntries); $i++) {
			$tEntries[$i]['flags']['hasChildren'] = true;
			if (($i == (count($tEntris)-1)) || ($tEntries[$i]['level'] >= $tEntries[$i+1]['level'])) {
				// Mark that this is last item in this level
				$tEntries[$i]['flags']['hasChildren'] = false;

				// Mark all levels that are closed after this item
				if ($i == (count($tEntries)-1)) {
				//if ($i == 26) {
					for ($x = 0; $x <= $tEntries[$i]['level']; $x++) {
						$tEntries[$i]['flags']['closeLevel_'.$x] = true;
					}
				} else {
					for ($x = $tEntries[$i+1]['level']; $x <= $tEntries[$i]['level']; $x++) {
						$tEntries[$i]['flags']['closeLevel_'.$x] = true;
					}
				}
				$tEntries[$i]['flags']['closeToLevel'] = intval($tEntries[$i+1]['level']);
			}

		}

		// Prepare conversion maps
		$conversionConfig = array(
			'[entries]'			=> '{% for entry in entries %}',
			'[/entries]'		=> '{% endfor %}',
			'[flags.active]'	=> '{% if (entry.flags.active) %}',
			'[/flags.active]'	=> '{% endif %}',
			'[!flags.active]'	=> '{% if (not entry.flags.active) %}',
			'[/!flags.active]'	=> '{% endif %}',
			'[flags.counter]'	=> '{% if (entry.flags.counter) %}',
			'[/flags.counter]'	=> '{% endif %}',
		);

		$tVars['entries'] = $tEntries;
		$twigLoader->setConversion('news.categories.tpl', $conversionConfig);
		$xt = $twig->loadTemplate('news.categories.tpl');
		return $xt->render($tVars);

	}




	$tpl -> template('categories', tpl_site);
	foreach($catz as $k => $v){
		if (!substr($v['flags'],0,1)) continue;

		$tvars['vars'] = array(
			'if_active'	=>	(isset($SYSTEM_FLAGS['news']['currentCategory.id']) && ($v['id'] == $SYSTEM_FLAGS['news']['currentCategory.id']))?$markers['class.active']:$markers['class.inactive'],
			'link'		=>	($v['alt_url'] == '')?generateLink('news', 'by.category', array('category' => $v['alt'], 'catid' => $v['id'])):$v['alt_url'],
			'mark'		=>	isset($markers['mark.level.'.$v['poslevel']])?$markers['mark.level.'.$v['poslevel']]:str_repeat($markers['mark.default'], $v['poslevel']),
			'level'		=>	$v['poslevel'],
			'cat'		=>	$v['name'],
			'counter'	=>	($config['category_counters'] && $v['posts'])?('['.$v['posts'].']'):'',
			'icon'		=>	$v['icon'],
		);
		$tvars['regx']['[\[icon\](.*)\[/icon\]]'] = trim($v['icon'])?'$1':'';
		switch (intval(substr($v['flags'],1,1))) {
			case 0:	$rmode = true; break;
			case 1: $rmode = ($v['posts'])?true:false; break;
			case 2: $rmode = false; break;
		}
		$tvars['regx']['#\[if_link\](.+?)\[/if_link\]#is'] = $rmode?'$1':'';

		$tpl -> vars('categories', $tvars);

		$result .= $tpl -> show('categories');
	}
	return $result;
}

меняешь на

function generateCategoryMenu()
{
    global $mysql, $catz, $tpl, $config, $CurrentHandler, $SYSTEM_FLAGS;

    $result = '';
    $tpl -> template('categories', tpl_site); 

//основной большой цикл    
foreach ($catz as $k=>$v)
{

if (!substr($v['flags'],0,1)) continue;
        
//проход дочерних категорий
    foreach ($catz as $k1=>$v1)
    {
        if($v1['parent'] == $v['id'])
        {
            //делаем текущую категорию активной(подсвеченной в меню)
            if (isset($SYSTEM_FLAGS['news']['currentCategory.id']) && ($v1['id'] == $SYSTEM_FLAGS['news']['currentCategory.id']))
                $span=" class=\"active_cat\"";
            else $span='';

        $temp_child_catz[]="<li><img src='{$config['admin_url']}/includes/js/cat_img/join.gif' alt='join' /><a href='{$config['home_url']}/{$v1['alt']}.html'><span$span>".htmlspecialchars($v1['name'], ENT_QUOTES, 'utf8')."</span></a></li>";        

        $lastchild_cat = "<li><img src='{$config['admin_url']}/includes/js/cat_img/joinbottom.gif' alt='joinbottom' /><a href='{$config['home_url']}/{$v1['alt']}.html'><span$span>".htmlspecialchars($v1['name'], ENT_QUOTES, 'utf8')."</span></a></li>";

        }
    }

if($temp_child_catz) $temp_child_catz[count($temp_child_catz)-1] = $lastchild_cat;//если есть массив дочерних - меняем последний элемент


    //если родительская категория
    if($v['parent']==0)
    { 
        if (isset($SYSTEM_FLAGS['news']['currentCategory.id']) && ($v['id'] == $SYSTEM_FLAGS['news']['currentCategory.id']))
                $span=" class=\"active_cat\"";
            else $span='';

        //если в родителе были дети - выводим начало группы (+)
        if (count ($temp_child_catz)>0)
        {
        $cat_menu[]="<li class='ogroup' style='list-style-type: none;' id='{$v['alt']}'><img src='{$config['admin_url']}/includes/js/cat_img/gpg-minus.gif' alt='minus' onclick='toggleMenuItems(this);' />            <a href='{$config['home_url']}/{$v['alt']}.html'><span$span>".htmlspecialchars($v['name'], ENT_QUOTES, 'utf8')."</span></a>\n<ul><li><span class='cat_line_img'></span>".implode("\n<li><span class='cat_line_img'></span>", $temp_child_catz)."</ul></li>";
    
    $last_cat="<li class='ogroup' style='list-style-type: none;' id='{$v['alt']}'><img src='{$config['admin_url']}/includes/js/cat_img/gpg-minus.gif' alt='minus'  onclick='toggleMenuItems(this);' />
            {$config['home_url']}/{$v['alt']}.html'><span$span>".htmlspecialchars($v['name'], ENT_QUOTES, 'utf8')."</span></a>\n
        <ul><li><span class='cat_blank'></span>".implode("\n<li><span class='cat_blank'></span>", $temp_child_catz)."</ul></li>";
        }
        
        //если в родителе не было детей, то без "+"
       else
        {
$cat_menu[]="<li><img src='{$config['admin_url']}/includes/js/cat_img/join.gif' alt='join' /><a href='{$config['home_url']}/{$v['alt']}.html'><span$span>".htmlspecialchars($v['name'], ENT_QUOTES, 'utf8')."</span></a></li>\n";
$last_cat ="<li><img src='{$config['admin_url']}/includes/js/cat_img/joinbottom.gif' alt='joinbottom' /><a href='{$config['home_url']}/{$v['alt']}.html'><span$span>".htmlspecialchars($v['name'], ENT_QUOTES, 'utf8')."</span></a></li>\n";

        }

    }

unset ($temp_child_catz);
    

//********* продолжение ng

         $tvars['regx']['[\[icon\](.*)\[/icon\]]'] = trim($v['icon'])?'$1':'';
        switch (intval(substr($v['flags'],1,1))) 
        {
            case 0: $rmode = true; break;
            case 1: $rmode = ($v['posts'])?true:false; break;
            case 2: $rmode = false; break;
        }
        //$tvars['regx']['#\[if_link\](.+?)\[/if_link\]#is'] = $rmode?'$1':'';

        
}
if($cat_menu)
$cat_menu[count($cat_menu)-1] = $last_cat;//если есть массив - меняем последний элемент

foreach ($cat_menu as $key=>$value)
{
$tvars['vars']['cat'].=$value;
}

    //выводим все сразу
    $tpl -> vars('categories', $tvars);
    $result .= $tpl -> show('categories');

    return $result;
//$tvars['vars']['cat']
}

работает даже в svn

Изменено irbees2008 (2012-12-24 19:55:01)

Не в сети

#70 2013-06-03 21:46:38

StronG
Участник
Откуда Russia
Зарегистрирован: 2009-02-08
Сообщений: 431
Рейтинг :   

Re: Разворачивающееся меню категорий (грязный хак)

Как сделать, чтобы разворачивалось не по +, а вместе с категорией родителем?

Не в сети

Подвал раздела

Работает на FluxBB