Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Ламерские вопросы Помогите найти Модуль Алфавит для DLE 10.1

Помогите найти Модуль Алфавит для DLE 10.1


     05.05.2014    Ламерские вопросы    1887

вопрос
Помогите найти Модуль Алфавит для DLE 10.1 рабочий

Ответил: vitnet


sr.green,
/catalog/A/

Комментарии пользователей (8)

psih
14 | 3

psih - 5 мая 2014 18:43 - Юзер

А стандартные функции скрипта не работают?

sr.green
1

119 | 6

sr.green - 5 мая 2014 18:47 - Гости

psih,
?

Aleksey-Nyaka
30

235 | 32

Aleksey-Nyaka - 5 мая 2014 19:09 - Юзер

Отписался в личку =)

sr.green
1

119 | 6

sr.green - 5 мая 2014 19:49 - Гости

Aleksey-Nyaka,
:), не платно мне не надо ведь есть где то в паблике, да и какой еще самопис :)) не смеши

rocksmart
64

307 | 115

rocksmart - 5 мая 2014 20:56 - Юзер


vitnet
218

2172 | 930

vitnet - 5 мая 2014 21:15 - Эксперт

***Комментарий удален***

Googledono
4

117 | 8

Googledono - 7 мая 2014 12:28 - Юзер

в index.php
после
require_once ROOT_DIR . '/engine/init.php';

ставим
    /*Меню алфавитное*/
    
$alfa_menu = dle_cache( "menu_for_main", $config['skin'], true );

if ($alfa_menu === FALSE) {
    $serials_alfa = Array();
    $cats = $db->query("SELECT id, name, alt_name FROM " . PREFIX . "_post  ORDER BY name ASC");
    while ($row = $db->get_row($cats)) {
    
        if (ord(substr($row['name'], 0, 1)) >= 48 AND ord(substr($row['name'], 0, 1)) <= 57)
            $symbol = "0-9";
        elseif ((ord(strtoupper(substr($row['name'], 0, 1))) >= 65) AND (ord(strtoupper(substr($row['name'], 0, 1))) <= 90))
            $symbol = "A-Z";
        else
            $symbol = ord(substr($row['name'], 0, 1));
            
        $serials_alfa[$symbol][$row['id']] = $row;
    }

    $tpl1 = new dle_template();
    $tpl1->dir = TEMPLATE_DIR;
    $tpl1->load_template( 'menu_block.tpl' );

    foreach ($serials_alfa as $id => $array) {
        
        if ($id == '0-9' OR $id == 'A-Z')
            $tpl1->set("{symbol}", $id);
        else
            $tpl1->set("{symbol}", "А-Я");
            
        $tpl1->set("{col}", count($array));
        
        $tpl12 = new dle_template();
        $tpl12->dir = TEMPLATE_DIR;
        $tpl12->load_template( 'menu_link.tpl' );
        
        foreach ($array as $key => $info) {

            $link = $config['http_home_url'] . $info['alt_name'] . "/";
            
            $tpl12->set( '[full-link]', "<a href=\"" . $link . "\">" );
            $tpl12->set( '[/full-link]', "</a>" );    
            $tpl12->set( '{name}', $info['name'] );
            $tpl12->set( '{alt_name}', $info['metatitle'] );
            $tpl12->set( '{id}', $info['id'] );
            $tpl12->compile( 'menu_links' );            
            
        }
        
        $tpl1->set("{menu_links}", $tpl12->result['menu_links']); unset($tpl12);
        $tpl1->compile( 'alfa_menu' );
    }
    
    $alfa_menu = $tpl1->result['alfa_menu']; unset($tpl1);
    create_cache( "menu_for_main", $alfa_menu, $config['skin'], true );
    
}    
    $tpl->set("{menu}", $alfa_menu);

в engine.php
после
case "comments" :
        include ENGINE_DIR . '/modules/comments.php';
        break;

это
case "menu" :
        include ENGINE_DIR . '/modules/alfa_menu.php';
        break;


в папке с шаблоном создаём menu_link.tpl
<div class="fast_info_box">
    [full-link]{name}[/full-link]
</div>

создаём menu_block.tpl

        <li>
            <a href="#"><div class="menu_anker"><div class="menu_float_l"><div class="menu_float_l2">{symbol}</div></div><div class="menu_float_r">(всего: {col})</div></div></a>
            <ul class="menu_2">
                {menu_links}
            </ul>
        </li>

в main.tpl в нужное место пишем {menu}
стили под себя подстраивай

Googledono
4

117 | 8

Googledono - 7 мая 2014 12:40 - Юзер

в индекс вставляй это
/*Меню алфавитное*/
    
$alfa_menu = dle_cache( "menu_for_main", $config['skin'], true );

if ($alfa_menu === FALSE) {
    $serials_alfa = Array();
    $cats = $db->query("SELECT id, name, alt_name, parentid FROM " . PREFIX . "_category WHERE parentid='0' AND id != 11 ORDER BY name ASC");
    while ($row = $db->get_row($cats)) {
    
        if (ord(substr($row['name'], 0, 1)) >= 48 AND ord(substr($row['name'], 0, 1)) <= 57)
            $symbol = "0-9";
        elseif ((ord(strtoupper(substr($row['name'], 0, 1))) >= 65) AND (ord(strtoupper(substr($row['name'], 0, 1))) <= 90))
            $symbol = "A-Z";
        else
            $symbol = ord(substr($row['name'], 0, 1));
            
        $serials_alfa[$symbol][$row['id']] = $row;
    }

    $tpl1 = new dle_template();
    $tpl1->dir = TEMPLATE_DIR;
    $tpl1->load_template( 'menu_block.tpl' );

    foreach ($serials_alfa as $id => $array) {
        
        if ($id == '0-9' OR $id == 'A-Z')
            $tpl1->set("{symbol}", $id);
        else
            $tpl1->set("{symbol}", chr($id));
            
        $tpl1->set("{col}", count($array));
        
        $tpl12 = new dle_template();
        $tpl12->dir = TEMPLATE_DIR;
        $tpl12->load_template( 'menu_link.tpl' );
        
        foreach ($array as $key => $info) {

            $link = $config['http_home_url'] . $info['alt_name'] . "/";
            
            $tpl12->set( '[full-link]', "<a href=\"" . $link . "\">" );
            $tpl12->set( '[/full-link]', "</a>" );    
            $tpl12->set( '{name}', $info['name'] );
            $tpl12->set( '{alt_name}', $info['metatitle'] );
            $tpl12->set( '{id}', $info['id'] );
            $tpl12->compile( 'menu_links' );            
            
        }
        
        $tpl1->set("{menu_links}", $tpl12->result['menu_links']); unset($tpl12);
        $tpl1->compile( 'alfa_menu' );
    }
    
    $alfa_menu = $tpl1->result['alfa_menu']; unset($tpl1);
    create_cache( "menu_for_main", $alfa_menu, $config['skin'], true );
    
}    
    $tpl->set("{menu}", $alfa_menu);

Но, одно но! вывод меню происходит из категорий. подстраивай запрос под себя.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы