Перейти к контенту

in_fact

Пользователи
  • Число публикаций

    355
  • Регистрация

  • Последнее посещение

О in_fact

  • День рождения 01.01.2007

Личная информация

  • ICQ
    762676

Дополнительные

  • Пол
    Мужчина
  • Город
    Украина, Киев
  • Интересы
    админство)<br />варез)<br />ipb)<br />диплом - это в прошлом))<br />жизнь)<br />вам не надоело читать?

Недавние посетители профиля

4 391 просмотр профиля

Достижения in_fact

  1. доброго дня никто не подскажет что такого можно открутить в 3.4.6 чтобы можно было ссылки через редактор вставлять нормально, как раньше? сейчас можно только указать адрес, но нельзя указать название. было: [url=http://url]text[/url]теперь такое можно только руками сделать, а по быстрой кнопке из редактора такого нет. с картинками почти такая же лажа. вставляю ссылку на картинку - она так и остается ссылкой, не преобразуется в картинку. я так понимаю, это модные течения seo - оптимизаторов? где можно это спилить к чертям? ps обновился в кои-то веки с 2,3 до 3.4.6
  2. in_fact

    [2.3.x]Скрытый текст v3b (WildRAID)

    версия форума 236 что если у меня в теле поста вообще ничего нет? при правке - есть. а так ничего не показывает.
  3. вроде ниче и не делал, но игры стали работать.... то ли где-то успел конфиг поправить то ли фиг его знает... если кто столкнется с теми же граблями, могу показать конф nginx
  4. добрый день всем столкнулся с такой проблемой: поставил на сервер nginx. apache ушел в бекенд теперь получил такое: когда юзер хочет поиграть в аркаду, ему не открывается страница с игрой, а просто загружается некий код типа такого: хогчI6•!Џ-I·UG5tIK§пј'aЭqМҐtz©§4IOХЊFЄ)ҐлљQ•ґJCС›й-њM:ЃwSІ# еk‰ЪжVC[‚wл%AСвѓзє]r[ШЬЬLmжS†UOgXD‘dьl(ЋD°vRщґ©n”„љЎ;Љо$ќmSяUeЛIгЫЛ¤¶.Y¶в”6U]66нd67—HЎiЄю„XЉVмuГrjM‡Ё на забугорных ресурсах знать не знают про nginx и помочь не могут вот и спрашиваю тут - были ли у кого-то такие проблемы и как их порешать заранее благодарен
  5. in_fact

    [2.3.x]F.A.Q. теги

    типа того)) у себя реализовал внесением новых бб теперь в теме юзера могут поливать друг друга мыслями, пока не прийдет ответ в рамочке))
  6. есть необходимость закрыть регистрацию для всех кроме абонентов сети. диапазон адресов довольно большой и не является внутренним (все имеют внешние ip) поэтому хочется фильтрацию по маске вида: xxx.xxx.xxx.0/xx
  7. in_fact

    PRG Inferno

    да, особенно круто это выглядело в онлайне))) в чате говорю - у нас стабильный форум! а мне - и зачем ты его поломал?
  8. по rpg inferno есть нерабочая версия под линейку 23х год назад купили, поставил, поигрались, плюнули и забыли про нее. месяц назад у нее кончилась лицензия и она положила форум. если хотите, могу скинуть вместе с ключами лицензии. думаю я этим никакие правила не нарушу, ибо разраб потерялся в тумане.
  9. in_fact

    [2.3.x]VRPG 0.2.5 beta

    снести. поставить на чистом
  10. in_fact

    [2.3.x]VRPG 0.2.5 beta

    заново курим ман по установке. гдето накосячил
  11. in_fact

    PRG Inferno

    если кто себе покупал, (версия 3) бойтесь!)))) эта галиматья после того как кончается лицензия закрывает просмотр тем и требует ключ.
  12. Костыли для версии 2.3 (менеджер смайлов)
  13. in_fact

    [2.1.x]Менеджер Категорий Смайлов

    Костыли для версии 2.3.х. комментарий: категории смайлов выводятся в форме быстрого ответа. в форме полного ответа не выводятся. (связано с передачей идентификатора формы ответа.) я не стал ломать структуру форума и делать обе формы с одним именем. далее... из-за уе*анской системы папок смайлов, реализованной в версии 2.3.х будете иметь редкий геморой на свою задницу с добавлением этих самых категорий (точнее, с сортировкой по категориям). из всех авторских примочек остался только вывод категорий. размеры окна в админке не настраиваются. почему - хз, мне было влом разбираться Итак, если вас это все не пугает, поехали: 1. SQL Запросы Перейдите в Управление SQL - > Утилита (или phpMyAdmin->SQL) и запустите запросы: (Примечание: Если у вас префикс таблиц отличается от ibf_, замените его на соответствущий в запросах) 1.1. CREATE TABLE `ibf_emo_categories` ( `id` INT( 2 ) NOT NULL AUTO_INCREMENT , `name` VARCHAR( 30 ) NOT NULL , `dir` VARCHAR( 30 ) NOT NULL , `groups` TEXT NOT NULL , `active` TEXT NOT NULL , `inactive` TEXT NOT NULL , PRIMARY KEY ( `id` ) ); 1.2. CREATE TABLE ibf_emo_options ( id INT( 2 ) NOT NULL , name VARCHAR( 20 ) NOT NULL , value INT( 4 ) NOT NULL , PRIMARY KEY (id) ); 1.3. Запустите один за одним запросы: INSERT INTO `ibf_emo_options` VALUES (1, 'W_Width', '250'); INSERT INTO `ibf_emo_options` VALUES (2, 'W_Height', '500'); INSERT INTO `ibf_emo_options` VALUES (3, 'emo_in_row', '6'); INSERT INTO `ibf_emo_options` VALUES (4, 'show_codes', '0'); INSERT INTO `ibf_emo_options` VALUES (5, 'enabled', '1'); 2. Редактирование ШАБЛОНОВ Перейдите ВНЕШНИЙ ВИД -> Изменить HTML фрагменты -> skin_legends (Легенды форума) (он же Board Legends) 2.1 Отредактировать ШАБЛОН "emoticons_row" Отредактировать входящие переменные: ----------------------------------- ДОБАВИТЬ В КОНЦЕ СТРОКИ function show_emoticons() { $tid = intval( $this->ipsclass->input['t'] ); $this->page_title = $this->ipsclass->lang['emo_title']; $smilie_id = 0; $editor_id = $this->ipsclass->txt_alphanumerical_clean( $this->ipsclass->input['editor_id'] ); $cat_count = 0; $this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'topics', 'where' => "tid=".$tid, ) ); $this->ipsclass->DB->simple_exec(); $topic = $this->ipsclass->DB->fetch_row(); $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emoticon_javascript( $editor_id ); $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emo_categories_top($this->ipsclass->lang['cat_title']); $this->ipsclass->DB->simple_construct(array('select' => '*', 'from' => 'emo_categories')); $this->ipsclass->DB->simple_exec(); if ( $this->ipsclass->DB->get_num_rows() ) { while ( $r = $this->ipsclass->DB->fetch_row() ) { $checkA='true'; $checkInactive='true'; $checkGroups='true'; // ------------------------------------------------------------ // ---------- Checking INactive Topics and Folders ------------ if ($r[inactive]!="") { $inactives=explode(",",trim($r[inactive])); for ($k=0;$k<count($inactives);$k++) $inactives[$k]=trim($inactives[$k]); if (in_array($this->ipsclass->cache['forum_cache'][ $this->ipsclass->input['f'] ][ 'name' ],$inactives) OR in_array(trim($topic['title']),$inactives)) $checkInactive='false'; else $checkInactive='true'; } else $checkInactive='true'; // ------------------------------------------------------------ // ------------ Checking Active Topics and Folders ------------ if ($r[active]!="") { $actives=explode(",",trim($r[active])); for ($k=0;$k<count($actives);$k++) $actives[$k]=trim($actives[$k]); if (in_array($this->ipsclass->cache['forum_cache'][ $this->ipsclass->input['f'] ][ 'name' ],$actives) OR in_array(trim($topic['title']),$actives)) $checkA='true'; else $checkA='false'; } else $checkA='true'; // ------------------------------------------------------------ // ------------ Checking Groups Access ------------------------- if ($r[groups]!="") { $groupes=explode(",",trim($r[groups])); $mgroups = explode( ",", trim($this->ipsclass->member['mgroup_others']) ); $mgroups[]=trim($this->ipsclass->member['mgroup']); $CheckCount=0; for ($k=0;$k<count($groupes);$k++) for ($j=0;$j<count($mgroups);$j++) if (trim($groupes[$k])==$this->ipsclass->cache['group_cache'][ trim($mgroups[$j]) ]['g_title'] and trim($groupes[$k]!="")) $CheckCount++; if ($CheckCount>0) $checkGroups='true'; else $checkGroups='false'; } else $checkGroups='true'; if ($checkInactive=='true' AND $checkA=='true' AND $checkGroups=='true') { $cat_count++; if ($this->ipsclass->input['category']==NULL) $this->ipsclass->input['category']=$r[id]; if ($this->ipsclass->input['category']==$r[id]) { $r2='<b>'.$r[name].'</b>'; $cat_dir=$r[dir]; } else $r2=$r[name]; $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emo_categories_row($r[id],$r2,$this->ipsclass->input['f'],$tid); } } } if($cat_count==0) $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emo_categories_row(0,$this->ipsclass->lang['cat_no_active']); $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emo_categories_end(); $this->output .= $this->ipsclass->compiled_templates['skin_legends']->page_header( $this->ipsclass->lang['emo_title'], $this->ipsclass->lang['emo_type'], $this->ipsclass->lang['emo_img']); $emo_opts=array(); $this->ipsclass->DB->simple_select( '*', 'emo_options'); $this->ipsclass->DB->exec_query(); while( $row = $this->ipsclass->DB->fetch_row() ) { $emo_opts[$row['name']]=$row['value']; } $this->ipsclass->DB->simple_construct( array( 'select' => 'typed, image', 'from' => 'emoticons', 'where' => "emo_set='".$cat_dir."'" ) ); $this->ipsclass->DB->simple_exec(); if ( $this->ipsclass->DB->get_num_rows() ) { while ( $r = $this->ipsclass->DB->fetch_row() ) { $num_in_row=$emo_opts['emo_in_row']; if ( $smilie_id%$num_in_row == 0) $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emoticons_row_top(); $smilie_id++; if (strstr( $r['typed'], """ ) ) { $in_delim = "'"; $out_delim = '"'; } else { $in_delim = '"'; $out_delim = "'"; } if ($emo_opts['show_codes']) $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emoticons_row_code( stripslashes($r['typed']), $in_delim, $out_delim, $smilie_id ); $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emoticons_row( stripslashes($r['typed']), stripslashes($r['image']), $in_delim, $out_delim, $smilie_id,$cat_dir ); if ( $smilie_id%$num_in_row == 0) $this->output .= $this->ipsclass->compiled_templates['skin_legends']->emoticons_row_end(); } } $this->output .= $this->ipsclass->compiled_templates['skin_legends']->page_footer(); } 4.2 ОТКРЫТЬ sources/acp_loaders/acp_pages_lookandfeel.php ---------------------------------------------------------------------------------------------------------------------------------- НАЙТИ function emo_cat_manage() { $emodirs = array(); $emodirs2 = array( 0 => array("","")); $dh = opendir( CACHE_PATH.'style_emoticons' ); while ( $file = readdir( $dh ) ) if (($file != ".") && ($file != "..")) if ( is_dir(CACHE_PATH.'style_emoticons/'.$file) ) { $emodirs[] = array($file,$file); $emodirs2[] = array($file,$file); } closedir( $dh ); $this->ipsclass->admin->page_title = "Категории Смайлов"; $this->ipsclass->admin->page_detail = "Настройки Категорий"; $this->ipsclass->adskin->td_header[] = array( "" , "1%" ); $this->ipsclass->adskin->td_header[] = array( "Название Категории" , "15%" ); $this->ipsclass->adskin->td_header[] = array( "Связанная папка" , "15%" ); $this->ipsclass->adskin->td_header[] = array( "Доступно группам" , "15%" ); $this->ipsclass->adskin->td_header[] = array( "Активна в Форумах и/или темах" , "20%" ); $this->ipsclass->adskin->td_header[] = array( "НЕактивна в Форумах и/или темах" , "20%" ); $this->ipsclass->html .= $this->ipsclass->adskin->start_table( "Существующие категории"); if ($this->ipsclass->input['new_emo_cat_name'] != "" and $this->ipsclass->input['new_emo_cat_dir'] != "" and $this->ipsclass->input['operation']==1 ) { $this->ipsclass->DB->do_insert( 'emo_categories', array( 'name' => $this->ipsclass->input['new_emo_cat_name'], 'dir' => $this->ipsclass->input['new_emo_cat_dir'], 'active' => $this->ipsclass->input['new_emo_cat_active'], 'inactive' => $this->ipsclass->input['new_emo_cat_inactive'] ) ); } if ($this->ipsclass->input['delete_emo_cat_name'] != "" and $this->ipsclass->input['operation']==0 ) { $this->ipsclass->DB->simple_exec_query( array( 'delete' => 'emo_categories', 'where' => "name='".$this->ipsclass->input['delete_emo_cat_name']."'" ) ); } if ($this->ipsclass->input['modify_emo_cat_dir'] != "" and $this->ipsclass->input['operation']==2 ) { $this->ipsclass->DB->simple_exec_query( array( 'update' => 'emo_categories', 'set' => "`dir`='".$this->ipsclass->input['modify_emo_cat_dir']."'" , 'where' => "`name`='".$this->ipsclass->input['chosen_emo_cat_name']."'" ) ); } if ($this->ipsclass->input['operation']==2 ) { $this->ipsclass->DB->do_update( 'emo_categories', array( 'name' => $this->ipsclass->input['modify_emo_cat_name'],'groups' => $this->ipsclass->input['modify_emo_cat_groups'], 'active' => $this->ipsclass->input['modify_emo_cat_active'],'inactive' => $this->ipsclass->input['modify_emo_cat_inactive']), "name='".$this->ipsclass->input['chosen_emo_cat_name']."'" ); } $cat_info = array(); $cat_names = array(); $this->ipsclass->DB->simple_select( '*', 'emo_categories'); $this->ipsclass->DB->exec_query(); while( $row = $this->ipsclass->DB->fetch_row() ) { $cat_info['id'][] = $row['id']; $cat_info['name'][] = $row['name']; $cat_info['dir'][] = $row['dir']; $cat_info['active'][] = $row['active']; $cat_info['inactive'][] = $row['inactive']; $cat_info['groups'][] = $row['groups']; $cat_names[] = array($row[name],$row[name]); } if ($this->ipsclass->input['operation']==8 AND $this->ipsclass->input['values']>0) { $value=$this->ipsclass->input['values']; $cats = array(); foreach($cat_info as $key => $v) { $cats[$key]=$cat_info[$key][$value]; $cat_info[$key][$value]=$cat_info[$key][$value-1]; $cat_info[$key][$value-1]=$cats[$key]; } $this->ipsclass->DB->do_update( 'emo_categories',array( 'name' => $cats['name'],'dir' => $cats['dir'],'groups' => $cats['groups'], 'active' => $cats['active'],'inactive' => $cats['inactive']), "id='".$cat_info['id'][$value]."'" ); $this->ipsclass->DB->do_update( 'emo_categories', array( 'name' => $cat_info['name'][$value],'dir' => $cat_info['dir'][$value],'groups' => $cat_info['groups'][$value], 'active' => $cat_info['active'][$value],'inactive' => $cat_info['inactive'][$value]), "id='".$cat_info['id'][$value-1]."'" ); } if ($this->ipsclass->input['operation']==9 AND $this->ipsclass->input['values']<count($cat_info['name'])-1) { $value=$this->ipsclass->input['values']; $cats = array(); foreach($cat_info as $key => $v) { $cats[$key]=$cat_info[$key][$value]; $cat_info[$key][$value]=$cat_info[$key][$value+1]; $cat_info[$key][$value+1]=$cats[$key]; } $this->ipsclass->DB->do_update( 'emo_categories',array( 'name' => $cats['name'],'dir' => $cats['dir'],'groups' => $cats['groups'], 'active' => $cats['active'],'inactive' => $cats['inactive']), "id='".$cat_info['id'][$value]."'" ); $this->ipsclass->DB->do_update( 'emo_categories', array( 'name' => $cat_info['name'][$value],'dir' => $cat_info['dir'][$value],'groups' => $cat_info['groups'][$value], 'active' => $cat_info['active'][$value],'inactive' => $cat_info['inactive'][$value]), "id='".$cat_info['id'][$value+1]."'" ); } for ($i=0;$i<count($cat_info['inactive']);$i++) { $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<a href='{$this->ipsclass->base_url}&{$this->ipsclass->form_code}&code=emo_cat&operation=8&values=".$i."'><img src='{$this->ipsclass->skin_acp_url}/images/arrow_up.png' border='0' class='ipd' /></a><br> <a href='{$this->ipsclass->base_url}&{$this->ipsclass->form_code}&code=emo_cat&operation=9&values=".$i."'><img src='{$this->ipsclass->skin_acp_url}/images/arrow_down.png' border='0' class='ipd' /></a><br> ", $cat_info["name"][$i],$cat_info["dir"][$i],$cat_info["groups"][$i],$cat_info["active"][$i],$cat_info["inactive"][$i]));} $this->ipsclass->html .= $this->ipsclass->adskin->end_table(); $this->ipsclass->html .= $this->ipsclass->adskin->start_form( array( 1 => array( 'code' , 'emo_cat' ), 2 => array( 'act' , 'emoticons' ), 4 => array( 'section', $this->ipsclass->section_code ), 5 => array( 'operation', 1 ), ) ); $this->ipsclass->html .= $this->ipsclass->adskin->start_table( "Добавить категорию" ); $this->ipsclass->adskin->td_header[] = array( " " , "50%" ); $this->ipsclass->adskin->td_header[] = array( " " , "50%" ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Введите название категории</b><div style='color:gray'>Можно вводить на любом языке</div>", $this->ipsclass->adskin->form_input( 'new_emo_cat_name' ) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Связать с существующей папкой со смайлами</b><div style='color:gray'>Примечение: Разные категории не должны иметь одинаковые связанные папки</div>", $this->ipsclass->adskin->form_dropdown( 'new_emo_cat_dir', $emodirs ) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Введите группы, которым будет доступна эта категория</b><div style='color:gray'>Разделяйте несколько запятыми.<br> Оставить чистым для общего доступа</div>", $this->ipsclass->adskin->form_input( 'new_emo_cat_groups') ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Введите названия форумов и/или темах, где категория будет доступной</b><div style='color:gray'>Если введено, категория будет доступна только в указанных форумах и/или темах. Вы можете смешивать названия форумов и тем.<br> Разделяйте несколько запятыми.<br> Оставить чистым для полного доступа.</div>", $this->ipsclass->adskin->form_input( 'new_emo_cat_active') ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Введите названия форумов и/или темах, где категория будет неактивна</b><div style='color:gray'>Если введено, категория будет доступна везде, кроме указанных форумом и/или тем. Вы можете смешивать названия форумов и тем.<br> Разделяйте несколько запятыми.<br> Оставить чистым для полного доступа.</div>", $this->ipsclass->adskin->form_input( 'new_emo_cat_inactive' ) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->end_form("Добавить категорию"); $this->ipsclass->html .= $this->ipsclass->adskin->end_table(); $this->ipsclass->html .= $this->ipsclass->adskin->start_form( array( 1 => array( 'code' , 'emo_cat' ), 2 => array( 'act' , 'emoticons' ), 4 => array( 'section', $this->ipsclass->section_code ), 5 => array( 'operation', 2 ), ) ); $this->ipsclass->html .= $this->ipsclass->adskin->start_table( "Изменить категорию" ); $this->ipsclass->adskin->td_header[] = array( " " , "50%" ); $this->ipsclass->adskin->td_header[] = array( " " , "50%" ); $this->ipsclass->html .= "<script type='text/javascript'> function update(n,m,k,g) { var s1 = n.split('-?|-'); var s2 = m.split('-?|-'); var s3 = k.split('-?|-'); var s4 = g.split('-?|-'); document.forms[1].modify_emo_cat_active.value = s1[document.forms[1].chosen_emo_cat_name.selectedIndex]; document.forms[1].modify_emo_cat_inactive.value = s2[document.forms[1].chosen_emo_cat_name.selectedIndex]; document.forms[1].modify_emo_cat_name.value = s3[document.forms[1].chosen_emo_cat_name.selectedIndex]; document.forms[1].modify_emo_cat_groups.value = s4[document.forms[1].chosen_emo_cat_name.selectedIndex]; } </script> "; if ($cat_info['active']!="") $n = implode("-?|-", $cat_info['active']); if ($cat_info['inactive']!="") $m = implode("-?|-", $cat_info['inactive']); if ($cat_info['name']!="") $k = implode("-?|-", $cat_info['name']); if ($cat_info['groups']!="") $g = implode("-?|-", $cat_info['groups']); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Выберите название категории, которую вы хотите изменить</b>", $this->ipsclass->adskin->form_dropdown( 'chosen_emo_cat_name', $cat_names,1,'onchange="update('."'$n','$m','$k','$g'".')"') ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Имя категории</b>", $this->ipsclass->adskin->form_input( 'modify_emo_cat_name',$cat_info['name'][0] ) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Доступ группам</b><div style='color:gray'>Если вы оставите поле пустым, категория будет доступна всем</div>", $this->ipsclass->adskin->form_input( 'modify_emo_cat_groups',$cat_info['groups'][0]) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Активные Форумы и Темы</b><div style='color:gray'>Если вы оставите поле пустым, категория будет доступна везде.</div>", $this->ipsclass->adskin->form_input( 'modify_emo_cat_active',$cat_info['active'][0]) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>НЕактивные Форумы и Темы</b><div style='color:gray'>Если вы оставите поле пустым, категория будет доступна везде.</div>", $this->ipsclass->adskin->form_input( 'modify_emo_cat_inactive',$cat_info['inactive'][0] ) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Связать с другой папкой смайлов</b>", $this->ipsclass->adskin->form_dropdown( 'modify_emo_cat_dir', $emodirs2 ) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->end_form("Сохранить"); $this->ipsclass->html .= $this->ipsclass->adskin->end_table(); $this->ipsclass->html .= $this->ipsclass->adskin->start_form( array( 1 => array( 'code' , 'emo_cat' ), 2 => array( 'act' , 'emoticons' ), 4 => array( 'section', $this->ipsclass->section_code ), 5 => array( 'operation', 0 ), ) ); $this->ipsclass->html .= $this->ipsclass->adskin->start_table( "Удалить категорию" ); $this->ipsclass->adskin->td_header[] = array( " " , "50%" ); $this->ipsclass->adskin->td_header[] = array( " " , "50%" ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Выберите имя категории для удаления</b>", $this->ipsclass->adskin->form_dropdown( 'delete_emo_cat_name', $cat_names ) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->end_form("Удалить"); $this->ipsclass->html .= $this->ipsclass->adskin->end_table(); // This modification is free to use only if you leave next text without changings! $this->ipsclass->html .= "<div align=center>Emoticons Category Managment v1.01, Created by Kostik.</div>"; $this->ipsclass->admin->output(); } //---------------------------------------------------------------------------- // ----- Emoticons Categories Managment. Created by Kostik. -------------------- //---------------------------------------------------------------------------- function emo_options() { $this->ipsclass->admin->page_title = "Настройка окна смайлов"; $this->ipsclass->admin->page_detail = "Определение размеров и содержания окна"; if ($this->ipsclass->input['W_Width'] != "" and $this->ipsclass->input['operation']==3 ) { $this->ipsclass->DB->simple_exec_query( array( 'update' => 'emo_options', 'set' => "`value`='".$this->ipsclass->input['W_Width']."'" , 'where' => "`name`='W_Width'" ) ); } if ($this->ipsclass->input['W_Height'] != "" and $this->ipsclass->input['operation']==3 ) { $this->ipsclass->DB->simple_exec_query( array( 'update' => 'emo_options', 'set' => "`value`='".$this->ipsclass->input['W_Height']."'" , 'where' => "`name`='W_Height'" ) ); } if ($this->ipsclass->input['emo_in_row'] != "" and $this->ipsclass->input['operation']==3 ) { $this->ipsclass->DB->simple_exec_query( array( 'update' => 'emo_options', 'set' => "`value`='".$this->ipsclass->input['emo_in_row']."'" , 'where' => "`name`='emo_in_row'" ) ); } if ($this->ipsclass->input['show_codes'] != "" and $this->ipsclass->input['operation']==3 ) { $this->ipsclass->DB->simple_exec_query( array( 'update' => 'emo_options', 'set' => "`value`='".$this->ipsclass->input['show_codes']."'" , 'where' => "`name`='show_codes'" ) ); } $this->ipsclass->html .= $this->ipsclass->adskin->start_form( array( 1 => array( 'code' , 'emo_options' ), 2 => array( 'act' , 'emoticons' ), 4 => array( 'section', $this->ipsclass->section_code ), 5 => array( 'operation', 3 ), ) ); $emo_opts=array(); $this->ipsclass->DB->simple_select( '*', 'emo_options'); $this->ipsclass->DB->exec_query(); while( $row = $this->ipsclass->DB->fetch_row() ) { $emo_opts[$row['name']]=$row['value']; } $this->ipsclass->html .= $this->ipsclass->adskin->start_table( "Настройка окна смайлов" ); $this->ipsclass->adskin->td_header[] = array( " " , "30%" ); $this->ipsclass->adskin->td_header[] = array( " " , "70%" ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Размер окна</b>", $this->ipsclass->adskin->form_simple_input( 'W_Width',$emo_opts['W_Width'],5 )." x ".$this->ipsclass->adskin->form_simple_input( 'W_Height',$emo_opts['W_Height'],5 )." пикселей" ) ); $row_nums=array(); for ($i=1;$i<11;$i++) $row_nums[] = array($i,$i); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Количвество смайлов в строке</b>", $this->ipsclass->adskin->form_dropdown( 'emo_in_row', $row_nums, $emo_opts['emo_in_row']) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Отображать коды смайлов?</b><div style='color:gray'>Опция добавляет текстовый код смайла слева от смайла</div>", $this->ipsclass->adskin->form_yes_no( 'show_codes', $emo_opts['show_codes'] ) ) ); $this->ipsclass->html .= $this->ipsclass->adskin->end_form("Обновить"); $this->ipsclass->html .= $this->ipsclass->adskin->end_table(); // This modification is free to use only if you leave next text without changings! $this->ipsclass->html .= "<div align=center>Emoticons Category Managment v1.01, Created by Kostik.</div>"; $this->ipsclass->admin->output(); } Итак, самая легкая часть закончена. Теперь приступим к самой дебильной (дружно говорим спасибо IPS) Суть такова: у нас есть родительская папка default в папке style_emoticons создавая другую папку в админке, форум помещает ее в папку default и заливает в новую папку все смайлы из папки default. соответственно в базе прописываются все смайлы (только с другим идентификатором) в результате, зайдя в новую папку, мы не увидим там ровным счетом ничего. поэтому все смайлы благополучно вливаются в default и там валяются кашей. Итак, а теперь вагон мата вырезан цензурой начнем делать псевдокатегории для смайлов. описывать я буду на своем примере. 1. подготовлено три пака иконок. пак-1: имя каждого файла начинается на qip- (это важно! для каждого своего пака переименуйте все файлы по шаблону: имя+номер. тотал с этой задачей справляется аж бегом) пак-2 и пак-3 точно также. все три пака сделаны с помощью утилитки smilexmlizer или как-то так.. есть на форуме. это было сделано для будущей фильтрации по категориям 2. импортируем наши смайлы. (тут возможны варианты. теоретически, вам повезет, и каждый такой файл сделает себе запись в новую папку с новым именем в базе. эта мысль только что пришла в голову, но проверять на боевом сервере желания уже нет. работает, и пусть работает) 3. далее я делал такие запросы в БД: UPDATE `database`.`ibf_emoticons` SET `emo_set` = 'qipp' WHERE `image` LIKE '%qip-%' AND `emo_set`='qip'; таким запросом я менял значение emo_set с qip на qipp только для файлов которые начинаются на "qip-" это я делал по нескольким причинам: - у меня все залитые смайлы были в трех экземплярах. каждый смайл в базе имел три записи (с разными emo_set) - менял qip на qipp именно для категорий смайлов. после того как я сделал эти запросы, я сменил имена папок на фтп с qip на qipp ну и в АЦ - Добавить категорию указываем имя категории и папку для нее. указывать форумы и группы смыслу нет. я его не трогал, и не проверял. и не вносил изменения для его работы. да, это костыли. дикий ужас и все такое. зато оно работает. и мои 300+ смайликов теперь раскиданы по категориям, а не валятся одним скопом, который слабые машинки просто убивает. за сим вроде все
  14. потыкал где только мог... что-то никак(((
×
×
  • Создать...

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

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.