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

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


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

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

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

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


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

pavel31
Юзер

pavel31 - 21 февраля 2014 22:17 -

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

sergio.lamborghini
Юзер

sergio.lamborghini - 21 февраля 2014 23:24 -

табы на jQuery

D0Gmatist
Местный

D0Gmatist - 21 февраля 2014 23:36 -

Всё равно надо править 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 - 21 февраля 2014 23:35 -

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

pavel31
Юзер

pavel31 - 22 февраля 2014 12:39 -

Я когда-то делал табы со смайликами для чата 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 - 22 февраля 2014 19:43 -

pavel31 +

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

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

наверх