1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Готовая форма при создании тем

Тема в разделе "Основные вопросы по XenForo", создана пользователем STBiffen, 22.08.2011.

Загрузка
  1. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Сейчас всем костылям костыль будет)

    Ахтунг! Нижеследующий контент может нарушить религиозные взгляды некоторых товарищей. Все ООП/MVC воздыхатели идут лесом) В архиве процедурный говнокод.

    На самом деле с разработкой на Zend Framework познакомился совсем недавно (ровно как и с самим mvc. Так что пока смысла лезть во всё это не вижу. А поговнокодить вечерком можно и "в лоб").

    И так вернёмся к нашему костылю :)

    Сначала о хорошем:

    главная 2.png главная.png тема.png

    error.png

    Не стал заморачиваться с редакторами (хотя можете и руками бб-коды писать, если религия не запрещает), поэтому добавил обработку html. Там всего пару тегов, но мы ж не на продакшен всё это делаем, а так, говнокодим...​

    PHP:
    <?php

    function replace_html($sabject)
    {
        
    $sabject preg_replace('@<style type="text\/css">.*<\/style>@smi'''$sabject);
        
    $sabject str_replace(array('&#13;''<noindex>''</noindex>'), ''$sabject);
        
    $sabject preg_replace('@<img src="(.*?)"/>@smi''[CENTER][IMG]$1[/img][/CENTER]'$sabject);
        
    $sabject preg_replace('@<center>(.*?)</center>@smi''[CENTER]$1[/CENTER]'$sabject);
        
    $sabject preg_replace('@<i>(.*?)</i>@smi''[i]$1[/i]'$sabject);
        
    $sabject preg_replace('@<b>(.*?)</b>@smi''[b]$1[/b]'$sabject);
        
    $sabject preg_replace('@<s>(.*?)</s>@smi''[s]$1[/s]'$sabject);
        
    $sabject preg_replace('@<u>(.*?)</u>@smi''[u]$1[/u]'$sabject);
        
    $sabject preg_replace('|<a[^>]href="([^"]*)">(.*?)<\/a>|i'"[URL='\\1'] \\2[/URL]"$sabject);
        
    $sabject preg_replace('|<a[^>]*href="([^"]*)">\s<img[^\/]*src="([^"]*)"\/><\/a>|i''[CENTER][URL=\'$1\'][IMG]$2[/IMG][/URL][/CENTER]' PHP_EOL$sabject);
        
    $sabject strip_tags($sabject);

        return 
    $sabject;
    }

    ?>
    Собственно основные возможности видны на скринах.
    Заблокированным тоже не даст создать тему.
    Если форма отправлена и всё прошло без проблем - редирект к сообщению.
    Валидаций никаких не добавлял (например, в поле ссылки)

    Теперь о плохом

    Во-первых, если вылетает ошибка метода get_result(), курим сообщение:

    Во-вторых, я так и не разобрался, как передать сессию от форума к левому скрипту, а посему замутил жутчайший костыль:

    1. Запускаем поиск по данному форуму, ищем сообщение от TAIFUN про установку чекбокса "запомнить меня" всегда отмеченным. Выполняем все инструкции.
    2. Скрываем чекбокс от пользователей через display:none
    3. Теперь когда пользователь залогинится, он получит куку (да, без кукисов данный говнокод тоже не заработает), в которой будет содержаться его ID. А там уже всё по накатанной... главное-то мы получили)
    4. Требует для работы хак Kotomi (есть в архиве)

    Как поставить

    1. Залить файлы на фтп.
    2. Установить хак Kotomi
    3. Открыть файл form.php
    Найти

    PHP:
    $xenForoURL ''// Заменить на свой URL (без слеша на конце)
    $ignore_category '0'// Список категорий, в которые постить нельзя. 0 - разрешить все.
    И изменить на своё.

    В extra.css добавить:

    Код:
    .error {
    background-attachment: scroll;
    background-clip: border-box;
    background-color: rgb(243, 221, 221);
    background-image: url("/styles/default/xenforo/icons/bb/exclamation.png");
    background-origin: padding-box;
    background-position: 8px 10px;
    background-repeat: no-repeat;
    background-size: auto;
    border-bottom-color: rgb(222, 183, 183);
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    border-bottom-style: solid;
    border-bottom-width: 1px;
    border-left-color: rgb(222, 183, 183);
    border-left-style: solid;
    border-left-width: 1px;
    border-right-color: rgb(222, 183, 183);
    border-right-style: solid;
    border-right-width: 1px;
    border-top-color: rgb(222, 183, 183);
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    border-top-style: solid;
    border-top-width: 1px;
    color: rgb(40, 27, 27);
    line-height: 150%;
    padding-bottom: 10px;
    padding-left: 30px;
    padding-right: 10px;
    padding-top: 5px;
    }
    Честно? Не помню чей сие css. Он вобще для bb-кодов использовался изначально) Где-то на данном форуме выкладывали. Картинку сами найдёте. В 3 часа ночи лень уже лазить... Совсем.

    4.
    5. Профит. Заходим http://www.ваш_сайт/form.php

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

    Использован код создания тем от товарища FractalizeR

    Камнями не кидаться)
    По сути, если постараться, можно из этого говна сделать конфетку... но всё же это костыль. Неудобный костыль. Так что полноценный плагин был бы в цвет

    p.p.s. залейте сюда скрины из сабжа http://xenforo.com/community/threads/simple-forms-addon-beta.23037/
    Посмотрим, подумаем, попробуем)
     

    Вложения:

    jiuo, XuT, lazy72 и 2 другим нравится это.
  2. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Вот это я понимаю от слов к делу! :)
     
  3. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    :D вы просто код не смотрели)

    Сегодня к вечеру попробую подпрыгнуть выше головы чутка)
    Благо FractalizeR пищи для размышлений в рамках раздела для разрабов подкинул много)

    P.S. беспалевная реклама Велвета)
     
    hbq и CyberAP нравится это.
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Если честно, то волосы на голове зашевелились...
    Это даже не костыль, а мегакостыль. Особенно с сессиями :D
    По просьбе выкладываю сюда скрины Simple Forms (в полном варианте, в миниатюрах не стал, так как неудобно потом смотреть с ресайзом).

    Админка:
    lp_admincp_create-form.jpg

    lp_admincp_edit-form.jpg

    lp_admincp_edit-form-destinations.jpg

    lp_admincp_edit-form-fields.jpg

    lp_admincp_forms-list.jpg

    Фронтенд

    lp_forms_view.jpg

    lp_forms-page.jpg

    lp_forms-page-autocomplete.jpg
     
    Desperado нравится это.
  5. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Птица Говорун отличается умом и сообразительностью (с)

     
  6. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    В симплеформах шаблон сообщения предусмотрен, кстати.
     
  7. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    В пакете Зенд какой-то шипко кастрированный идёт... К нему хоть как-то привык, а тут нету инструмента для бездарей и лентяев - Zend_Form. Над лазать, искать, как ксен формы генерит.
     
  8. nikita90

    nikita90 Местный

    Регистрация:
    22.05.11
    Сообщения:
    47
    Симпатии:
    25
    Версия XF:
    1.1.0 RC
    Давай этот simpleform допилим чтобы можно было шаблоны тем делать!
    Например как писал Romchik (автор плагина, дата и т.д.)
    У тебя есть код?
     
  9. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Он есть пока только у разработчиков плагина :)
    Они пока готовы дать его бетатестерам. Причем, давать будут полнофункциональную версию. А вот релиз обещают раздавать вроде как бесплатно, но не Pro. Стоимость версии Pro еще не оговаривалась.

    Так что допиливать можно пока что только скриншоты :)
     
  10. hbq

    hbq Активный пользователь

    Регистрация:
    27.07.11
    Сообщения:
    58
    Симпатии:
    23
    Версия XF:
    1.1.2
    Очень хорошая и нужная штука.:rolleyes:
    Жаль только я помочь не как не могу...:thumbsdown:
     
  11. STBiffen

    STBiffen Местный

    Регистрация:
    04.08.11
    Сообщения:
    11
    Симпатии:
    0
    Хотелось бы посмотреть в реализации, что называется на деле пощупать, то что линканул гражданин Desperado :)
     
  12. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    То, что линканул Desperado, есть в архиве чутка выше.
    Только это не готовый плагин, а доказательство того, что нет смысла ждать маны небесной, если сильно нужно. Даже не имея крепких знаний в области программирования можно выкрутиться из любой ситуации и временно дополнить функционал своего форума.
     
  13. STBiffen

    STBiffen Местный

    Регистрация:
    04.08.11
    Сообщения:
    11
    Симпатии:
    0
    Это все понятно, как говорят было бы желание. Только вот желание есть, но времени нет :(
     
  14. geodezer

    geodezer Местный

    Регистрация:
    15.04.11
    Сообщения:
    61
    Симпатии:
    8
    Версия XF:
    1.3.1
    Плагин для создания шаблона тем есть какой-нибудь?
     

Поделиться этой страницей