Ich bin dabei mir eine Art custom Page zu basteln, die funktioniert auch, aber wie bekomme ich da eine Sidebar rein ?
Irgendwelche Plugins wo man das nachschauen kann.
Ist der Aufwand gross ?
Ich bin dabei mir eine Art custom Page zu basteln, die funktioniert auch, aber wie bekomme ich da eine Sidebar rein ?
Irgendwelche Plugins wo man das nachschauen kann.
Ist der Aufwand gross ?
Was genau willst du für eine Sidebar haben?
Eine nur für diese Seite, oder soll diese über die Dashboard-Box im ACP wie die Forenauflistung verwaltbar sein?
Am liebsten eine über die Dashboard-Box im ACP wie die Forenauflistung verwaltbare Sidebar.
Wenn das zu kompliziert ist, dann eine einfache nur für diese Seite.
Also einmal brauchst du die objectType.xml
<type>
<name>name.deines.object.type</name>
<definitionname>com.woltlab.wcf.user.dashboardContainer</definitionname>
<allowcontent><![CDATA[0]]></allowcontent>
<allowsidebar><![CDATA[1]]></allowsidebar>
</type>
Und dann musst du natürlich noch die Sprachvariablen eintragen, solltest du aber hin bekommen
Und nicht vergessen das hier in der Seite
/**
* @see \wcf\page\IPage::assignVariables()
*/
public function assignVariables(){
parent::assignVariables();
DashboardHandler::getInstance()->loadBoxes('name.deines.object.type', $this);
WCF::getTPL()->assign(array('sidebarCollapsed' => UserCollapsibleContentHandler::getInstance()->isCollapsed('com.woltlab.wcf.collapsibleSidebar', 'name.deines.object.type'),
'sidebarName' => 'irgend.ein.name(z.b. name.deines.object.type)'));
}
und dies im Template
Ich bekomme den Fehler *grmpfl*
[b]Parse error[/b]: syntax error, unexpected 'public' (T_PUBLIC) in [b]D:\xampp\htdocs\forum\wcf\lib\page\DKMCustomPage.class.php[/b] on line [b]23[/b]
<?php
namespace wcf\page;
use wcf\system\dashboard\DashboardHandler;
/**
* DKM Custompage
*
* @author Dietmar Sobotzki
* @copyright 2016 dokreativmedia.com
* @license LGPL
* @package com.dokreativmedia.wcf.custompage
*/
class DKMCustomPage extends AbstractPage {
/**
* @see wcf\page\AbstractPage::$activeMenuItem
*/
public $activeMenuItem = 'wcf.page.dkmcustom';
}
/**
* @see \wcf\page\IPage::assignVariables()
*/
public function assignVariables(){
parent::assignVariables();
DashboardHandler::getInstance()->loadBoxes('com.dokreativmedia.page.custom', $this);
WCF::getTPL()->assign(array('sidebarCollapsed' => UserCollapsibleContentHandler::getInstance()->isCollapsed('com.woltlab.wcf.collapsibleSidebar', 'com.dokreativmedia.page.custom'),
'sidebarName' => 'com.dokreativmedia.page.custom'));
}
Alles anzeigen
Ich hatte wohl die Klammer an der falschen Stelle, leider ist noch was falsch
[b]Fatal error[/b]: Class 'wcf\page\WCF' not found in [b]D:\xampp\htdocs\forum\wcf\lib\page\DKMCustomPage.class.php[/b] on line [b]26[/b]
<?php
namespace wcf\page;
use wcf\system\dashboard\DashboardHandler;
/**
* DKM Custompage
*
* @author Dietmar Sobotzki
* @copyright 2016 dokreativmedia.com
* @license LGPL
* @package com.dokreativmedia.wcf.custompage
*/
class DKMCustomPage extends AbstractPage {
/**
* @see wcf\page\AbstractPage::$activeMenuItem
*/
public $activeMenuItem = 'wcf.page.dkmcustom';
/**
* @see \wcf\page\IPage::assignVariables()
*/
public function assignVariables(){
parent::assignVariables();
DashboardHandler::getInstance()->loadBoxes('com.dokreativmedia.page.customPage', $this);
WCF::getTPL()->assign(array('sidebarCollapsed' => UserCollapsibleContentHandler::getInstance()->isCollapsed('com.woltlab.wcf.collapsibleSidebar', 'com.dokreativmedia.page.customPage'),
'sidebarName' => 'com.dokreativmedia.page.customPage'));
}
}
Alles anzeigen
edit: habe es hinbekommen
Wenn ich die Boxen welche man im Dashboard auch im Content aufrufen möchte, was brauche ich da denn alles ?
Ich habe mal folgendes überlegt
Dashboardbox.xml
<dashboardbox name="com.dokreativmedia.wcf.dkm.dkmcustomDashboardBox">
<classname><![CDATA[wcf\system\dashboard\box\DKMcustomDashboardBox]]></classname>
<boxtype>content</boxtype>
</dashboardbox>
und im Template das hier noch
{if $__boxContent|isset}{@$__boxContent}{/if}
Genau
Das ist für den Inhalt
<boxtype>content</boxtype>
Und das hier ist für die Seitenleiste
<boxtype>sidebar</boxtype>
Muss ich ausserdem noch was machen, ein eigenes Template für den Content oder reicht es das einzutragen ?
{if $__boxContent|isset}{@$__boxContent}{/if}
Nein, das sollte reichen
Irgendwas muss noch fehlen, denn ich bekomme keine Anzeige um Boxen in den content zu ziehen.
hat sich eredigt, habe das hier vergessen einzuschalten.
<allowcontent><![CDATA[1]]></allowcontent>
Ja genau, danke das hatte ich vergessen!
erledigt
Ich muss das hier nochmal hochholen, auf einmal funktioniert die Erweiterung nicht mehr und es kommt folgender Fehler
Sun, 24 Jul 2016 11:42:37 +0000
Message: Unable to find template 'dKMCustomPage'
File: /www/htdocs/w012188d/backup/wcf/lib/system/template/TemplateEngine.class.php (352)
PHP version: 7.0.8-nmm1
WCF version: 2.1.11 (Typhoon)
Request URI: /wbb/index.php?dkm-custom-page/
Referrer: http://backup.dokreativmedia.com/wbb/acp/index.php?package-list/&
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0
Information: ""
Stacktrace:
#0 /www/htdocs/w012188d/backup/wcf/lib/system/template/TemplateEngine.class.php(305): wcf\system\template\TemplateEngine->getSourceFilename('dKMCustomPage', 'wcf')
#1 /www/htdocs/w012188d/backup/wcf/lib/page/AbstractPage.class.php(305): wcf\system\template\TemplateEngine->display('dKMCustomPage', 'wcf')
#2 /www/htdocs/w012188d/backup/wcf/lib/page/AbstractPage.class.php(100): wcf\page\AbstractPage->show()
#3 /www/htdocs/w012188d/backup/wcf/lib/system/request/Request.class.php(58): wcf\page\AbstractPage->__run()
#4 /www/htdocs/w012188d/backup/wcf/lib/system/request/RequestHandler.class.php(139): wcf\system\request\Request->execute()
#5 /www/htdocs/w012188d/backup/wbb/index.php(10): wcf\system\request\RequestHandler->handle('wbb')
#6 {main}
Alles anzeigen
Das Template ist aber da, auf meinem lokalen System funktioniert das Plugin immer noch.
Lokal Windows xampp und ich vermute im Web Linux.
Könnte das an php7 liegen oder irgendwie an der Gross-/Kleinschreibung?
Heißt das Template auch genau so dKMCustomPage als Dateinamen?
Ich habe es schon umbenannt und es funktioniert trotzdem nicht.
Ich weiss garnicht in welchem File der Name so drinsteht.
Ist die Datei auch im richtigen Verzeichnis?
auch das, wie setzt sich eigentlich der Templatename zusammen.
Die Datei heisst DKMCustomPagePage.class.php und das template dKMCustomPage.tpl
Wo wird denn der Name für das Template festgelegt, bei der Dashboardbox weiss ich das aber bei der für die Seite finde ich es nicht mehr.
Seit 2013 entwickeln wir Plugins für die WoltLab Suite. Eines der bekanntesten Plugins von uns ist das News-System.