Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как разделить смайлы по категориям чтобы не было кучи?

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


     Общие вопросы по PHP, Хаки    5048

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

Подобие этого чтобы сверху можно было выбрать какую категорию и и там уже смотреть?
Как разделить смайлы по категориям чтобы не было кучи?

Ответа пока нет


6 комментариев

pavel31
Юзер

pavel31 - -

Да, хотелось бы узнать как это сделать!

sergio.lamborghini
Юзер

sergio.lamborghini - -

табы на jQuery

D0Gmatist
Юзер

D0Gmatist - -

Всё равно надо править php
Так как в админке подключаются Смайлики:
разделяются запятыми (,)
wink,winked,smile,am,belay,feel,fellow,laughing,lol,love,no,
recourse,request,sad,tongue,wassat,crying,what,bully,angry

и что бы это стало работать по табам надо переписывать php
и делать что то в этом духе
wink,winked,smile,am,belay||feel,fellow,laughing,lol,love,no,
recourse,request||sad,tongue,wassat,crying,what,bully,angry


по умолчанию это одна переменная и разбивается на масив по запятой патом каждый элемент масива обрамляется формируя
<a href="#" onclick="dle_smiley(':wink:'); return false;"><img style="border: none;" alt="wink" src="http://kinomaxduble.by/engine/data/emoticons/wink.gif"></a>

а благодаря такой записи через ||
можно разбить сначала на масив по ||
посчитать сколько получилось элементов count
в данном примере 3 - три табс вкладки
и патом это всё раскладывать с помощью ООП

pavel31
Юзер

pavel31 - -

Табы это понятно, но как разделить смайлики по категориям? Как я понимаю это в конфиге dle должно быть 3 три пременные со списком смайликов? или я не прав??

pavel31
Юзер

pavel31 - -

Я когда-то делал табы со смайликами для чата iChat 6.0
делал так:

if($is_logged OR !$is_logged AND $chat_cfg['allow_guest'] == 'yes') {
    $ia = 0;
    $smiles_a = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tr>";
    $smilies_a = explode(",", $chat_cfg['smiless_a']); // большие смайлики
    $count_smilies_a = count($smilies_a);
    foreach($smilies_a as $smile_a) {
        $ia++;
        $smile_a = trim($smile_a);
        $smiles_a .= "<td style=\"padding:2px;\" class=\"smile\" align=\"center\"><a href=\"#\" onclick=\"iChat_smiley(':$smile_a:'); return false;\"><img style=\"border: none;\" alt=\"$smile_a\" src=\"".$config['http_home_url']."engine/data/emoticons/$smile_a.gif\" /></a></td>";
        if ($ia%4 == 0 AND $ia < $count_smilies_a) $smiles_a .= "</tr><tr>";
    }
    $smiles_a .= "</tr></table>";

    $ip = 0;
    $smiles_p = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tr>";
    $smilies_p = explode(",", $chat_cfg['smiless_p']); // маленькие смайлики
    $count_smilies_p = count($smilies_p);
    foreach($smilies_p as $smile_p) {
        $ip++;
        $smile_p = trim($smile_p);
        $smiles_p .= "<td style=\"padding:2px;\" class=\"smile\" align=\"center\"><a href=\"#\" onclick=\"iChat_smiley(':$smile_p:'); return false;\"><img style=\"border: none;\" alt=\"$smile_p\" src=\"".$config['http_home_url']."engine/data/emoticons/$smile_p.gif\" /></a></td>";
        if ($ip%4 == 0 AND $ip < $count_smilies_p) $smiles_p .= "</tr><tr>";
    }
    $smiles_p .= "</tr></table>";
    echo '<div id="iChat_emos" style="display: none;">
        <script type="text/javascript">
            $(function(){
                $("a.changetab").click(function(){
                    if($(this).hasClass("active")) {return false;}
                    var tabname = $(this).attr("rel");
                    $("a.changetab").removeClass("active");
                    $("a.changetab[rel="+tabname+"]").addClass("active");
                    $(".BlockTabs").stop(true, true);
                    $(".BlockTabs:visible").fadeOut("slow", function(){
                        $(".BlockTabs.blockTab_"+tabname+"").fadeIn("slow");
                    });
                    return false;
                });
            });
        </script>
        <div style="width:100%; height:100%; overflow: auto;">
            <ul class="toggle-links">
                <li><a href="#" class="active changetab" rel="animate">Большие</a></li>
                <li><a href="#" class="changetab" rel="default">Маленькие</a></li>
            </ul>
            <br><hr>
            <!-- большие смайлики -->
            <div class="BlockTabs blockTab_animate">    
                '.$smiles_a.'
            </div>
            <!-- маленькие смайлики -->
            <div class="BlockTabs blockTab_default" style="display:none;">
                '.$smiles_p.'
            </div>
        </div>
    </div>';
}

Config чата:

'smiles' => "s01,s02,s03,s04,s05,s06,s07,s08,s09,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30,s31,s32,s33,s34,s35,s36",
'smiless_a' => "s01,s02,s03,s04,s05,s06,s07,s08,s09,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30,s31,s32,s33,s34,s35,s36",
'smiless_p' => "smile-01,smile-02,smile-03,smile-04,smile-05,smile-06,smile-07,smile-08,smile-09,smile-10,smile-11,smile-12,smile-13,smile-14,smile-15,smile-16,smile-17,smile-18,smile-19,smile-20,smile-21,smile-22,smile-23,smile-24,smile-25,smile-26,smile-27,smile-28,smile-29,smile-30,smile-31,smile-32,smile-33,smile-34,smile-35,smile-36,smile-37,smile-38,smile-39,smile-40,smile-41,smile-42,smile-43,smile-44,smile-45,smile-46,smile-47,smile-48,smile-49,smile-50,smile-51,smile-52,smile-53,smile-54,smile-55,smile-56,smile-57,smile-58,smile-59,smile-60,smile-61,smile-62,smile-63",

uFlex
Юзер

uFlex - -

pavel31 +

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

наверх