BBCodes integrieren

  • BBCodes integrieren

    Ich versuche die BBCodes verfügbar zu machen, will aber nicht. :(

    Fehler kommt keiner, deshalb komme ich nicht dahinter

    PHP-Quellcode

    1. /**
    2. * @see \wcf\page\IPage::assignVariables()
    3. */
    4. public function assignVariables(){
    5. parent::assignVariables();
    6. DashboardHandler::getInstance()->loadBoxes('com.dokreativmedia.page.customPage', $this);
    7. WCF::getTPL()->assign(array('sidebarCollapsed' => UserCollapsibleContentHandler::getInstance()->isCollapsed('com.woltlab.wcf.collapsibleSidebar', 'com.dokreativmedia.page.customPage'),
    8. 'sidebarName' => 'com.dokreativmedia.page.customPage',
    9. 'dkm_custompage_message_top' => MessageParser::getInstance()->parse(DKM_CUSTOMPAGE_MESSAGE_TOP_ALLOW_BBCODES),
    10. 'dkm_custompage_message_bottom' => MessageParser::getInstance()->parse(DKM_CUSTOMPAGE_MESSAGE_BOTTOM_ALLOW_BBCODES),
    11. 'dkm_custompage_message_dashboardbox_top' => MessageParser::getInstance()->parse(DKM_CUSTOMPAGE_MESSAGE_DASHBOARDBOX_TOP_ALLOW_BBCODES),
    12. 'dkm_custompage_message_dashboardbox_bottom' => MessageParser::getInstance()->parse(DKM_CUSTOMPAGE_MESSAGE_DASHBOARDBOX_BOTTOM_ALLOW_BBCODES)));
    13. }
    14. }
    Alles anzeigen


    XML-Quellcode

    1. <option name="dkm_custompage_message_bottom_allow_bbcodes">
    2. <categoryname>custompage.general</categoryname>
    3. <optiontype>boolean</optiontype>
    4. <defaultvalue>0</defaultvalue>
    5. </option>




    Smarty-Template

    1. {if DKM_CUSTOMPAGE_MESSAGE_BOTTOM && $__wcf->session->getPermission('user.dkm_custompage_message_bottom.canSee')}
    2. <div class='dkmboxbottom'>
    3. {if DKM_CUSTOMPAGE_MESSAGE_BOTTOM_ALLOW_HTML}
    4. {@DKM_CUSTOMPAGE_MESSAGE_BOTTOM|language}
    5. {else}
    6. <p>{DKM_CUSTOMPAGE_MESSAGE_BOTTOM|language|newlineToBreak}</p>
    7. {event name='additionalContents'}
    8. {/if}
    9. </div>
    10. {/if}
    Alles anzeigen
    MfG bobo
  • Also du musst folgendes ausführen


    PHP-Quellcode

    1. MessageEmbeddedObjectManager::getInstance()->setActiveMessage('dein.object.type.für.com.woltlab.message', $this->objectID);
    2. MessageParser:: getInstance()->setOutputType('text/html');
    3. $message = MessageParser:: getInstance()->parse($this->text, $this->enableSmilies, $this->enableHtml, $this->enableBBCodes);
    So und dann kannst du die Variable $message an das Template übergeben und ausgeben :)
  • Jetzt funktioniert es im Content, aber in der Dashboardbox kommt dieser Fehler.
    Ich habe es gleich gemacht wie im Content und verstehe den Fehler nicht

    Quellcode

    1. Sat, 04 Jun 2016 15:54:41 +0000
    2. Message: PHP notice in file D:\xampp\htdocs\forum\wcf\templates\compiled\0_wcf_1_customdashboardBoxDKM.php (16): Undefined index: dkmcontent3
    3. File: D:\xampp\htdocs\forum\wcf\lib\system\WCF.class.php (309)
    4. PHP version: 5.6.12
    5. WCF version: 2.1.11 (Typhoon)
    6. Request URI: /forum/index.php?dkm-custom-page/
    7. Referrer: http://localhost/forum/acp/index.php?option/2909/&
    8. User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0
    9. Information: ""
    10. Stacktrace:
    11. #0 D:\xampp\htdocs\forum\wcf\templates\compiled\0_wcf_1_customdashboardBoxDKM.php(16): wcf\system\WCF::handleError(8, 'Undefined index...', 'D:\\xampp\\htdocs...', 16, Array)
    12. #1 D:\xampp\htdocs\forum\wcf\lib\system\template\TemplateEngine.class.php(323): include('D:\\xampp\\htdocs...')
    13. #2 D:\xampp\htdocs\forum\wcf\lib\system\template\TemplateEngine.class.php(545): wcf\system\template\TemplateEngine->display('customdashboard...', 'wcf', false)
    14. #3 D:\xampp\htdocs\forum\wcf\lib\system\dashboard\box\DKMcustomDashboardBox.class.php(29): wcf\system\template\TemplateEngine->fetch('customdashboard...')
    15. #4 D:\xampp\htdocs\forum\wcf\lib\system\dashboard\box\AbstractSidebarDashboardBox.class.php(31): wcf\system\dashboard\box\DKMcustomDashboardBox->render()
    16. #5 D:\xampp\htdocs\forum\wcf\lib\system\dashboard\DashboardHandler.class.php(77): wcf\system\dashboard\box\AbstractSidebarDashboardBox->getTemplate()
    17. #6 D:\xampp\htdocs\forum\wcf\lib\page\DKMCustomPagePage.class.php(35): wcf\system\dashboard\DashboardHandler->loadBoxes('com.dokreativme...', Object(wcf\page\DKMCustomPagePage))
    18. #7 D:\xampp\htdocs\forum\wcf\lib\page\AbstractPage.class.php(276): wcf\page\DKMCustomPagePage->assignVariables()
    19. #8 D:\xampp\htdocs\forum\wcf\lib\page\AbstractPage.class.php(100): wcf\page\AbstractPage->show()
    20. #9 D:\xampp\htdocs\forum\wcf\lib\system\request\Request.class.php(58): wcf\page\AbstractPage->__run()
    21. #10 D:\xampp\htdocs\forum\wcf\lib\system\request\RequestHandler.class.php(139): wcf\system\request\Request->execute()
    22. #11 D:\xampp\htdocs\forum\index.php(10): wcf\system\request\RequestHandler->handle('wbb')
    23. #12 {main}
    Alles anzeigen
    MfG bobo
  • Super das du deine Beiträge gelöscht und das Thema unbrauchbar gemacht hast, da fühlt sich der Entwickler bestimmt auch gar nicht verarscht und wird dir sicher auch künftig gerne weiter helfen 8)

    Ansonsten hat er dir doch den entscheidenden Hinweis gegeben, wenn du das nicht verstehst, dann arbeite doch erst mal an deinen PHP-Kenntnissen anstatt darauf zu warten das dir jemand einen fertigen C&P-Code vorsetzt.

    Es gibt im WCF so viele Dashboardboxen, was hindert dich daran von denen zu lernen?
    Nur wegen den Plugins hier <3
  • Ich habe es mit dem Hinweis aus dem Woltlabforum hinbekommen.
    Wer es brauchen kann

    PHP-Quellcode

    1. <?php
    2. namespace wcf\system\dashboard\box;
    3. use \wcf\system\dashboard\box\DKMcustomDashboardBox;
    4. use \wcf\data\dashboard\box\DashboardBox;
    5. use \wcf\page\IPage;
    6. use wcf\system\bbcode\MessageParser;
    7. use wcf\system\WCF;
    8. /**
    9. * DKM Custompage
    10. *
    11. * @author Dietmar Sobotzki
    12. * @copyright 2016 dokreativmedia.com
    13. * @license LGPL
    14. * @package com.dokreativmedia.wcf.custompage
    15. */
    16. class DKMcustomDashboardBox extends AbstractSidebarDashboardBox {
    17. /**
    18. * @see wcf\system\dashboard\box\AbstractContentDashboardBox::render()
    19. */
    20. protected function render() {
    21. WCF::getTPL()->assign(array(
    22. 'dkmcontent3' => MessageParser::getInstance()->parse(WCF::getLanguage()->getDynamicVariable(DKM_CUSTOMPAGE_CONTENT_3), DKM_CUSTOMPAGE_ENABLE_SMILEY, DKM_CUSTOMPAGE_ENABLE_HTML, DKM_CUSTOMPAGE_ENABLE_BBCODES),
    23. 'dkmcontent4' => MessageParser::getInstance()->parse(WCF::getLanguage()->getDynamicVariable(DKM_CUSTOMPAGE_CONTENT_4), DKM_CUSTOMPAGE_ENABLE_SMILEY, DKM_CUSTOMPAGE_ENABLE_HTML, DKM_CUSTOMPAGE_ENABLE_BBCODES)
    24. ));
    25. return WCF::getTPL()->fetch('customdashboardBoxDKM');
    26. }
    27. }
    Alles anzeigen

    @zackOmat Du hast natürlich Recht, war Quatsch
    MfG bobo
  • Ich habe wieder was neues gebastelt und möchte da auch die BBCodes zuschalten können, leider funktioniert das ganze nicht wie ich das will. Ich habe folgendes gemacht.

    DKMCustomFooterPage.class.php

    PHP-Quellcode

    1. <?php
    2. namespace wcf\page;
    3. use wcf\data\product\DKMCustomFooter;
    4. use wcf\page\AbstractPage;
    5. use wcf\system\bbcode\MessageParser;
    6. use wcf\system\WCF;
    7. class DKMCustomFooter extends AbstractPage {
    8. /**
    9. * @see wcf\page\IPage::assignVariables()
    10. */
    11. public function assignVariables() {
    12. parent::assignVariables();
    13. WCF::getTPL()->assign(array(
    14. 'dkmcustomfooteraboutcontent' => MessageParser::getInstance()->parse(WCF::getLanguage()->getDynamicVariable(DKM_CUSTOMFOOTER_ABOUTBOX_CONTENT), DKM_CUSTOMFOOTER_ENABLE_SMILEY, DKM_CUSTOMFOOTER_ENABLE_HTML, DKM_CUSTOMFOOTER_ENABLE_BBCODES),
    15. ));
    16. }
    17. }
    Alles anzeigen



    und die Stelle in dem Template für die Box wo man den BBCode verwenden kann, sieht so aus

    Smarty-Template

    1. {if (DKM_CUSTOMFOOTER_ABOUTBOX_CONTENT)}
    2. <div class="right_column">
    3. <div id="customFooterAboutBox" class="dkmcustomcolumn">
    4. <legend>{DKM_CUSTOMFOOTERABOUTBOX_TITLE|language}</legend>
    5. <div>{@$dkmcustomfooteraboutcontent}
    6. {event name='additionalContents'}
    7. </div>
    8. </div>
    9. {/if}



    Die Fehlermeldung welche kommt ist diese


    Quellcode

    1. Sat, 02 Jul 2016 08:22:35 +0000
    2. Message: PHP notice in file D:\xampp\htdocs\forum\wcf\templates\compiled\0_wcf_1_dashboard.php (3634): Undefined index: dkmcustomfooteraboutcontent
    3. File: D:\xampp\htdocs\forum\wcf\lib\system\WCF.class.php (309)
    4. PHP version: 5.6.12
    5. WCF version: 2.1.11 (Typhoon)
    6. Request URI: /forum/index.php?dashboard/
    7. Referrer: http://localhost/forum/acp/index.php?package-list/&
    8. User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0
    9. Information: ""
    10. Stacktrace:
    11. #0 D:\xampp\htdocs\forum\wcf\templates\compiled\0_wcf_1_dashboard.php(3634): wcf\system\WCF::handleError(8, 'Undefined index...', 'D:\\xampp\\htdocs...', 3634, Array)
    12. #1 D:\xampp\htdocs\forum\wcf\lib\system\template\TemplateEngine.class.php(323): include('D:\\xampp\\htdocs...')
    13. #2 D:\xampp\htdocs\forum\wcf\lib\page\AbstractPage.class.php(305): wcf\system\template\TemplateEngine->display('dashboard', 'wcf')
    14. #3 D:\xampp\htdocs\forum\wcf\lib\page\AbstractPage.class.php(100): wcf\page\AbstractPage->show()
    15. #4 D:\xampp\htdocs\forum\wcf\lib\system\request\Request.class.php(58): wcf\page\AbstractPage->__run()
    16. #5 D:\xampp\htdocs\forum\wcf\lib\system\request\RequestHandler.class.php(139): wcf\system\request\Request->execute()
    17. #6 D:\xampp\htdocs\forum\index.php(10): wcf\system\request\RequestHandler->handle('wbb')
    18. #7 {main}
    Alles anzeigen


    Hat vielleicht jemand eine Idee ;(
    MfG bobo