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

WoltLab Burning Board 4.0 Alpha 1

Тема в разделе "OFF-топик", создана пользователем igrec, 15.04.2013.

Загрузка
  1. nmn

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

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Значит, что пихали туда всё подряд, не заботясь о понятности и удобстве.

    Код этого "фреймворка" посмотрел, по мне, так дерьмо собачье. Культ карго во весь рост, запихнули туда самые модные фичи языка и паттерны, но не решили ни одной задачи, для которых оные создавались: модульные тесты не напишешь, существующий код вообще никак не расширишь, даже с безопасностью будут проблемы - тут запросы не выделены в модели, а в их т.н. DatabaseObject-ах экранирование делается абы как, нужно следить, чтобы туда чего лишнего не попало. Если в Ксене код просто устарел лет на шесть, то тут он просо безграмотный, я считаю - вон из профессии.
     
  2. igrec

    igrec Пользователь

    Регистрация:
    13.03.13
    Сообщения:
    55
    Симпатии:
    10
    Забыл упомянуть, фрейморк , что можно скачать версии 1 -старый, 4-ка на новом будет, пока в паблике нету.
     
  3. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Это значит, что и основная версия использует шаблонизатор на tpl? Если да, то ну его нафиг. Работать точно будет не быстро и не гибко.
     
  4. igrec

    igrec Пользователь

    Регистрация:
    13.03.13
    Сообщения:
    55
    Симпатии:
    10
    2-ая и 3 - да работают на tpl. 4-ка пока неизвестно, как они там устроили.
     
  5. nmn

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

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Пример качиства кода:
    PHP:
        public function readFormParameters() {
            
    parent::readFormParameters();
            
            if (isset(
    $_POST['subject']))         $this->subject         StringUtil::trim($_POST['subject']);
            if (isset(
    $_POST['text']))         $this->text         MessageUtil::stripCrap(StringUtil::trim($_POST['text']));
            if (isset(
    $_POST['activeTab']))     $this->activeTab     $_POST['activeTab'];
            
            
    // wysiwyg
            
    if (isset($_POST['wysiwygEditorMode'])) $this->wysiwygEditorMode     intval($_POST['wysiwygEditorMode']);
            if (isset(
    $_POST['wysiwygEditorHeight'])) $this->wysiwygEditorHeight     intval($_POST['wysiwygEditorHeight']);
            
    // settings
            
    $this->enableSmilies $this->enableHtml $this->enableBBCodes $this->parseURL $this->showSignature 0;
            if (isset(
    $_POST['parseURL']))         $this->parseURL     intval($_POST['parseURL']);
            if (isset(
    $_POST['enableSmilies']))    $this->enableSmilies     intval($_POST['enableSmilies']);
            
    $this->enableSmilies intval($this->enableSmilies && WCF::getUser()->getPermission('user.'.$this->permissionType.'.canUseSmilies'));
            if (isset(
    $_POST['enableHtml']))     $this->enableHtml     intval($_POST['enableHtml']);
            
    $this->enableHtml intval($this->enableHtml && WCF::getUser()->getPermission('user.'.$this->permissionType.'.canUseHtml'));
            if (isset(
    $_POST['enableBBCodes']))     $this->enableBBCodes     intval($_POST['enableBBCodes']);
            
    $this->enableBBCodes intval($this->enableBBCodes && WCF::getUser()->getPermission('user.'.$this->permissionType.'.canUseBBCodes'));
            if (isset(
    $_POST['showSignature']))     $this->showSignature     intval($_POST['showSignature']);
            
            
    // stop shouting
            
    if (StringUtil::length($this->subject) >= MESSAGE_SUBJECT_STOP_SHOUTING && StringUtil::toUpperCase($this->subject) == $this->subject) {
                
    $this->subject StringUtil::wordsToUpperCase(StringUtil::toLowerCase($this->subject));
            }
        }
    http://facepalm.jpg.to/
     
    igrec нравится это.
  6. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Да, фреймворком тут не пахнет.
     
  7. igrec

    igrec Пользователь

    Регистрация:
    13.03.13
    Сообщения:
    55
    Симпатии:
    10
    Вот за, что я люблю русскоязычные сообщества. Никто не будет тебе улыбаться из вежливости. . Это в каком файле такое? Програмер из меня не очень. Просто хочу посмотреть в 3ке, как реализовали и реализовали ли. Нуль на харде валяется давно.

    Поиск в файлах Notepad++ По имени функции не нашёл. А ладно, ша
     
  8. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Та не. А как же
    PHP:
    WCF::getUser()->getPermission('user.'.$this->permissionType.'.canUseSmilies')
     
  9. igrec

    igrec Пользователь

    Регистрация:
    13.03.13
    Сообщения:
    55
    Симпатии:
    10
    класс MessageForm версия форума 3.1.6 :) . Все тоже-самое , филонят ребята

    Код:
    /**
    * MessageForm is an abstract form implementation for a message with optional captcha suppport.
    *
    * @author    Marcel Werk
    * @copyright    2001-2009 WoltLab GmbH
    * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
    * @package    com.woltlab.wcf.form.message
    * @subpackage    form
    * @category    Community Framework
    */
     
  10. nmn

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

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    \lib\form\MessageForm.class.php из com.woltlab.wcf.form.message

    Но это просто показательный пример, на деле там ужасно, по-моему, вообще всё.

    Они даже protected-методами не умеют пользоваться:
    PHP:
        public function show() {
            
    // flood control
            
    $this->doFloodControl();
            
            
    parent::show();
        }
    Такой "паттерн" встречается раз сто.

    Фреймворка в этом "фреймворке" не больше, чем в DLE.
     
  11. igrec

    igrec Пользователь

    Регистрация:
    13.03.13
    Сообщения:
    55
    Симпатии:
    10
    Мдяя, инкапсуляция? не, не слышал...


    Ну DLE зато любят, недавно видел советовали как лучший CMS для интеграции с IPB :thumbsdown:

    Ничего, выйдет в массы, поломают, может и научатся. :whistling:
     
  12. infis

    infis Местный

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

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

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    В каком-то случае это действительно так. DLE позволяет сразу начать зарабатывать даже совсем начинающим программистам, тому пример кое-чье недоумение по поводу озвученной мною цены интеграции с Ксеном - в их коммунке могут и за 150р что-нибудь написать.
    Проблема в том, что как раз их продукты будут вылизаны до блеска. Ударит это по тем, кому поручат что-то к их поделиям дописать - будут и взломы, и баги. А разработчики как бы и не при делах - у них "все работает". Всегда бешусь, когда приходится с такими поделиями работать (пример - Битрикс), но понимаю, что это бизнес, и так будет всегда.
     
  14. igrec

    igrec Пользователь

    Регистрация:
    13.03.13
    Сообщения:
    55
    Симпатии:
    10
    Ну не факт, конечно. Мне до сих пор страшно в IPB, страх начался с их весрии 2. На сегодня скрипт только форума весит 20 с чем-то мегабайт, вот только страх не прошёл.


    Кстати как с гибкостью у Ксена? По всей видимости мне придется переходить на него. Просто думаю подождать-посмотреть, как там у них пойдёт.
     
  15. nmn

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

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    У Ксена все очень неровно. Сильный перекос в сторону хаков, добавляющих новые страницы и новый контент.

    Если у форума есть какая-то общая для нескольких типов контента система, ее можете использовать и вы: алерты, поиск, модерация, шаблоны, bb-коды - все это очень удобно и надежно, правда кода перелопатить для понимания всего этого придется много, и использование любой из этих систем требует создания 3-5 классов на каждый случай.

    А вот с расширением уже имеющихся возможностей все очень плохо. Разработчики не стали делать полноценную систему событий, поэтому часто приходится оборачивать целые блоки кода. К примеру, сделать новую специфичную для форума настройку - целая проблема, придется обернуть метод сохранения узла форума в админке, получить из его возващаемого значения ссылку редиректа, из ссылки извлечь id, самому прочитать добавленную вами настройку из аргументов запроса и самому записать её в базу по id. И это только самый простой способ.
     
    igrec нравится это.
  16. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    А можно конкретный пример? Что подразумевается под настройкой форума?
     
  17. nmn

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

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Чекбокс в форме редактирования узла форума, например.
     
  18. Mefodian

    Mefodian Местный

    Регистрация:
    20.01.12
    Сообщения:
    493
    Симпатии:
    220
    Версия XF:
    1.1.3
    Мне одному не понравилось по виду?
    Слишком перепичкано всем чем можно.
     
  19. nmn

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

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Не одному. Они пошли по стопам vB, каждая новая версия будет тащить за собой весь хлам из предыдущей. Большая ошибка, ящитаю. vB 3.8 меня лично отпугивал своей сложностью, в его админке можно было наткнуться на пару трупов заблудившихся в ней предыдущих админов.
     
  20. igrec

    igrec Пользователь

    Регистрация:
    13.03.13
    Сообщения:
    55
    Симпатии:
    10
    Ыыыыы. В 4ке их на порядок больше, Особенно меня умиляет, то что там оставили редактирование скинов и цсс от версии 3. С надписью мол это оставлено только для референса. В 5-ую админку еще не лазил.
     

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