I mostly replaced existing template variables with events and added some new events for consistency reasons.
<th class="columnURL columnRequestURI{if $sortField == 'requestURI'} active{/if}"><a href="{link controller='ACPSessionLog' id=$sessionLogID}pageNo={@$pageNo}&sortField=requestURI&sortOrder={if $sortField == 'requestURI' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.sessionLog.requestURI{/lang}{if $sortField == 'requestURI'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
<th class="columnText columnRequestMethod{if $sortField == 'requestMethod'} active{/if}"><a href="{link controller='ACPSessionLog' id=$sessionLogID}pageNo={@$pageNo}&sortField=requestMethod&sortOrder={if $sortField == 'requestMethod' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.sessionLog.requestMethod{/lang}{if $sortField == 'requestMethod'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
- {if $additionalColumnHeads|isset}{@$additionalColumnHeads}{/if}
+ {event name='headColumns'}
</tr>
</thead>
<td class="columnText columnClassName"><p>{$sessionAccessLog->className}</p></td>
<td class="columnURL columnRequestURI" title="{$sessionAccessLog->requestURI}"><p>{if !$sessionAccessLog->hasProtectedURI()}<a href="{$sessionAccessLog->requestURI}{@SID_ARG_2ND}">{$sessionAccessLog->requestURI|truncate:50}</a>{else}{$sessionAccessLog->requestURI|truncate:50}{/if}</p></td>
<td class="columnTextolumnRequestMethod"><p>{$sessionAccessLog->requestMethod}</p></td>
-
- {if $additionalColumns.$sessionAccessLog->sessionAccessLogID|isset}{@$additionalColumns.$sessionAccessLog->sessionAccessLogID}{/if}
+
+ {event name='columns'}
</tr>
{/foreach}
{/content}
<th class="columnDate columnLastActivityTime{if $sortField == 'lastActivityTime'} active{/if}"><a href="{link controller='ACPSessionLogList'}pageNo={@$pageNo}&sortField=lastActivityTime&sortOrder={if $sortField == 'lastActivityTime' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.sessionLog.lastActivityTime{/lang}{if $sortField == 'lastActivityTime'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
<th class="columnDigits columnAccesses{if $sortField == 'accesses'} active{/if}"><a href="{link controller='ACPSessionLogList'}pageNo={@$pageNo}&sortField=accesses&sortOrder={if $sortField == 'accesses' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.sessionLog.accesses{/lang}{if $sortField == 'accesses'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
- {if $additionalColumnHeads|isset}{@$additionalColumnHeads}{/if}
+ {event name='headColumns'}
</tr>
</thead>
<td class="columnDate columnLastActivityTime"><p>{@$sessionLog->lastActivityTime|time}</p></td>
<td class="columnDigits columnAccesses"><p>{#$sessionLog->accesses}</p></td>
- {if $additionalColumns.$sessionLog->sessionLogID|isset}{@$additionalColumns.$sessionLog->sessionLogID}{/if}
+ {event name='columns'}
</tr>
{/foreach}
{/content}
<dd>{#$cacheData.files}</dd>
</dl>{/if}
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='dataFields'}
</fieldset>
<div class="contentHeader">
<nav>
<ul class="largeButtons">
{if $cacheData.files}<li><a onclick="return confirm('{lang}wcf.acp.cache.clear.sure{/lang}')" href="{link controller='CacheClear'}{/link}"><img src="{@RELATIVE_WCF_DIR}icon/delete1.svg" alt="" /> <span>{lang}wcf.acp.cache.button.clear{/lang}</span></a></li>{/if}
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<nav class="largeButtons">
<ul>
{if $cacheData.files}<li><a onclick="return confirm('{lang}wcf.acp.cache.clear.sure{/lang}')" href="{link controller='CacheClear'}{/link}"><img src="{@RELATIVE_WCF_DIR}icon/delete1.svg" alt="" /> <span>{lang}wcf.acp.cache.button.clear{/lang}</span></a></li>{/if}
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<nav>
<ul class="largeButtons">
<li><a href="{link controller='CronjobList'}{/link}" title="{lang}wcf.acp.menu.link.cronjob.list{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/time1.svg" alt="" /> <span>{lang}wcf.acp.menu.link.cronjob.list{/lang}</span></a></li>
- {if $action == 'edit'}<li><a href="{link controller='CronjobExecute' id=$cronjobID}{/link}" title="{lang}wcf.acp.cronjob.execute{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/run1.svg" alt="" /> <span>{lang}wcf.acp.cronjob.execute{/lang}</span></a></li>{/if}
+ {if $action == 'edit'}
+ <li><a href="{link controller='CronjobExecute' id=$cronjobID}{/link}" title="{lang}wcf.acp.cronjob.execute{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/run1.svg" alt="" /> <span>{lang}wcf.acp.cronjob.execute{/lang}</span></a></li>
+ {/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<input type="text" id="description" name="description" value="{$description}" class="long" />
</dd>
</dl>
+
+ {event name='dataFields'}
</fieldset>
<fieldset>
<small>{lang}wcf.acp.cronjob.startDow.description{/lang}</small>
</dd>
</dl>
+
+ {event name='timingFields'}
</fieldset>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='fieldsets'}
</div>
<div class="formSubmit">
<div class="contentHeader">
{pages print=true assign=pagesLinks controller="CronjobList" link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}
- {if $__wcf->session->getPermission('admin.system.cronjob.canAddCronjob')}
+ {hascontent}
<nav>
<ul class="largeButtons">
- <li><a href="{link controller='CronjobAdd'}{/link}" title="{lang}wcf.acp.cronjob.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.cronjob.add{/lang}</span></a></li>
+ {content}
+ {if $__wcf->session->getPermission('admin.system.cronjob.canAddCronjob')}
+ <li><a href="{link controller='CronjobAdd'}{/link}" title="{lang}wcf.acp.cronjob.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.cronjob.add{/lang}</span></a></li>
+ {/if}
+
+ {event name='largeButtons'}
+ {/content}
</ul>
</nav>
- {/if}
+ {/hascontent}
</div>
{hascontent}
<th class="columnText columnDescription{if $sortField == 'description'} active{/if}"><a href="{link controller='CronjobList'}pageNo={@$pageNo}&sortField=description&sortOrder={if $sortField == 'description' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.description{/lang}{if $sortField == 'description'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
<th class="columnDate columnNextExec{if $sortField == 'nextExec'} active{/if}"><a href="{link controller='CronjobList'}pageNo={@$pageNo}&sortField=nextExec&sortOrder={if $sortField == 'nextExec' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.nextExec{/lang}{if $sortField == 'nextExec'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
- {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if}
+ {event name='headColumns'}
</tr>
</thead>
{else}
<img src="{@RELATIVE_WCF_DIR}icon/delete1D.svg" alt="" title="{lang}wcf.global.button.delete{/lang}" />
{/if}
- {if $additionalButtons[$cronjob->cronjobID]|isset}{@$additionalButtons[$cronjob->cronjobID]}{/if}
+
+ {event name='buttons'}
</td>
<td class="columnID"><p>{@$cronjob->cronjobID}</p></td>
<td class="columnDate columnStartMinute"><p>{$cronjob->startMinute|truncate:30:' ...'}</p></td>
{/if}
</td>
- {if $additionalColumns[$cronjob->cronjobID]|isset}{@$additionalColumns[$cronjob->cronjobID]}{/if}
+ {event name='columns'}
</tr>
{/foreach}
{/content}
<div class="contentFooter">
{@$pagesLinks}
+ {* todo: add large button event *}
{if $__wcf->session->getPermission('admin.system.cronjob.canAddCronjob')}
<nav>
<ul class="largeButtons">
<th class="columnText columnDescription{if $sortField == 'description'} active{/if}"><a href="{link controller='CronjobLogList'}pageNo={@$pageNo}&sortField=description&sortOrder={if $sortField == 'description' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.description{/lang}{if $sortField == 'description'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
<th class="columnDate columnExecTime{if $sortField == 'execTime'} active{/if}"><a href="{link controller='CronjobLogList'}pageNo={@$pageNo}&sortField=execTime&sortOrder={if $sortField == 'execTime' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.log.execTime{/lang}{if $sortField == 'execTime'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
- {if $additionalColumns|isset}{@$additionalColumns}{/if}
+ {event name='headColumns'}
</tr>
</thead>
<td class="columnDate columnExecTime"></td>
{/if}
- {if $cronjobLog->additionalColumns|isset}{@$cronjobLog->additionalColumns}{/if}
+ {event name='columns'}
</tr>
{/foreach}
{/content}
</dd>
</dl>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='dataFields'}
</fieldset>
+ {event name='fieldsets'}
+
<div class="formSubmit">
<input type="reset" value="{lang}wcf.global.button.reset{/lang}" accesskey="r" />
<input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
<small>{lang}wcf.acp.masterPassword.enter.description{/lang}</small>
</dd>
</dl>
+
+ {event name='enterFields'}
</fieldset>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='fieldsets'}
</div>
<div class="formSubmit">
<input type="hidden" id="exampleMasterPassword" name="exampleMasterPassword" value="{@$exampleMasterPassword}" />
</dd>
</dl>
+
+ {event name='initFields'}
</fieldset>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='fieldsets'}
</div>
<div class="formSubmit">
<small>{lang}wcf.acp.option.import.upload.description{/lang}</small>
</dd>
</dl>
+
+ {event name='importFields'}
</fieldset>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='importFieldsets'}
</div>
<div class="formSubmit">
<small>{lang}wcf.acp.option.export.download.description{/lang}</small>
</dd>
</dl>
+
+ {event name='exportFields'}
</fieldset>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='exportFieldsets'}
</div>
{include file='footer'}
{$availableUpdate.packageName}{if $availableUpdate.instanceNo > 1} (#{#$availableUpdate.instanceNo}){/if}
</label>
</h1>
- <hgroup>
+ </hgroup>
<div class="messageBody">
<dl>
<dd>{if $archive->getPackageInfo('authorURL')}<a href="{@RELATIVE_WCF_DIR}acp/dereferrer.php?url={$archive->getPackageInfo('authorURL')|rawurlencode}" class="externalURL">{$archive->getPackageInfo('author')}</a>{else}{$archive->getPackageInfo('author')}{/if}</dd>
</dl>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='propertyFields'}
</fieldset>
{if $updatableInstances|count > 0}
<div class="contentHeader">
{pages print=true assign=pagesLinks controller='PackageListDetailed' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}
- {if $__wcf->session->getPermission('admin.system.package.canInstallPackage') || $additionalLargeButtons|isset}
+ {hascontent}
<nav>
<ul class="largeButtons">
- {if $__wcf->session->getPermission('admin.system.package.canInstallPackage')}<li><a href="{link controller='PackageStartInstall'}action=install{/link}" title="{lang}wcf.acp.package.startInstall{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.package.startInstall{/lang}</span></a></li>{/if}
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+ {content}
+ {if $__wcf->session->getPermission('admin.system.package.canInstallPackage')}
+ <li><a href="{link controller='PackageStartInstall'}action=install{/link}" title="{lang}wcf.acp.package.startInstall{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.package.startInstall{/lang}</span></a></li>
+ {/if}
+
+ {event name='largeButtons'}
+ {/content}
</ul>
</nav>
- {/if}
+ {/hascontent}
</div>
{if $objects|count > 0}
<th class="columnText{if $sortField == 'packageVersion'}active{/if}"><a href="{link controller='PackageListDetailed'}pageNo={@$pageNo}&sortField=packageVersion&sortOrder={if $sortField == 'packageVersion' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.package.list.version{/lang}{if $sortField == 'packageVersion'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
<th class="columnDate{if $sortField == 'updateDate'} active{/if}"><a href="{link controller='PackageListDetailed'}pageNo={@$pageNo}&sortField=updateDate&sortOrder={if $sortField == 'updateDate' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.package.updateDate{/lang}{if $sortField == 'updateDate'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
- {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if}
+ {event name='headColumns'}
</tr>
</thead>
<img src="{@RELATIVE_WCF_DIR}icon/delete1D.svg" alt="" title="{lang}wcf.acp.package.view.button.uninstall{/lang}" />
{/if}
- {if $additionalButtons[$package->packageID]|isset}{@$additionalButtons[$package->packageID]}{/if}
+ {event name='buttons'}
</td>
<td class="columnID"><p>{@$package->packageID}</p></td>
<td class="columnIcon">
<td class="columnText"><p>{$package->packageVersion}</p></td>
<td class="columnDate"><p>{@$package->updateDate|time}</p></td>
- {if $additionalColumns[$package->packageID]|isset}{@$additionalColumns[$package->packageID]}{/if}
+ {event name='columns'}
</tr>
{/foreach}
</tbody>
<div class="contentFooter">
{@$pagesLinks}
- {if $__wcf->session->getPermission('admin.system.package.canInstallPackage') || $additionalLargeButtons|isset}
+ {hascontent}
<nav>
<ul class="largeButtons">
- {if $__wcf->session->getPermission('admin.system.package.canInstallPackage')}<li><a href="{link controller='PackageStartInstall'}action=install{/link}" title="{lang}wcf.acp.package.startInstall{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.package.startInstall{/lang}</span></a></li>{/if}
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+ {content}
+ {if $__wcf->session->getPermission('admin.system.package.canInstallPackage')}
+ <li><a href="{link controller='PackageStartInstall'}action=install{/link}" title="{lang}wcf.acp.package.startInstall{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.package.startInstall{/lang}</span></a></li>
+ {/if}
+
+ {event name='largeButtons'}
+ {/content}
</ul>
</nav>
- {/if}
+ {/hascontent}
</div>
{include file='footer'}
<nav>
<ul class="largeButtons">
<li><a href="{link controller='PackageList'}{/link}" title="{lang}wcf.acp.menu.link.package.list{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/packageStandalone1.svg" alt="" /> <span>{lang}wcf.acp.menu.link.package.list{/lang}</span></a></li>
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<small>{lang}wcf.acp.package.startInstall.source.download.description{/lang}</small>
</dd>
</dl>
+
+ {event name='sourceFields'}
</fieldset>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='fieldsets'}
</div>
<div class="formSubmit">
<dd>{if $packageObj->authorURL}<a href="{@RELATIVE_WCF_DIR}acp/dereferrer.php?url={$packageObj->authorURL|rawurlencode}" class="externalURL">{$packageObj->author}</a>{else}{$packageObj->author}{/if}</dd>
</dl>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='propertyFields'}
</fieldset>
{if $dependentPackages|count > 0}
<th class="columnText">{lang}wcf.acp.package.list.version{/lang}</th>
<th class="columnDate">{lang}wcf.acp.package.list.date{/lang}</th>
- {if $additionalColumns|isset}{@$additionalColumns}{/if}
+ {event name='headColumns'}
</tr>
</thead>
<img src="{@RELATIVE_WCF_DIR}icon/deleteD1.svg" alt="" title="{lang}wcf.acp.package.view.button.uninstall{/lang}" />
{/if}
- {if $package.additionalButtons|isset}{@$package.additionalButtons}{/if}
+ {event name='buttons'}
</td>
<td class="columnID"><p>{@$package.packageID}</p></td>
<td class="columnIcon">
<td class="columnText"><p>{$package.packageVersion}</p></td>
<td class="columnDate"><p>{@$package.packageDate|date}</p></td>
- {if $package.additionalColumns|isset}{@$package.additionalColumns}{/if}
+ {event name='columns'}
</tr>
{/foreach}
</tbody>
<dd>{if $package->authorURL}<a href="{@RELATIVE_WCF_DIR}acp/dereferrer.php?url={$package->authorURL|rawurlencode}" class="externalURL">{$package->author}</a>{else}{$package->author}{/if}</dd>
</dl>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='propertyFields'}
</fieldset>
{if $package->packageDescription}
<th class="columnText">{lang}wcf.acp.package.list.author{/lang}</th>
<th class="columnText">{lang}wcf.acp.package.list.version{/lang}</th>
<th class="columnDigits">{lang}wcf.acp.package.list.date{/lang}</th>
-
- {if $additionalColumns|isset}{@$additionalColumns}{/if}
+
+ {event name='requirementHeadColumns'}
</tr>
</thead>
<td class="columnText">{if $requiredPackage.authorURL}<p><a href="{@RELATIVE_WCF_DIR}acp/dereferrer.php?url={$requiredPackage.authorURL|rawurlencode}" class="externalURL">{$requiredPackage.author}</a>{else}{$requiredPackage.author}</p>{/if}</td>
<td class="columnText"><p>{$requiredPackage.packageVersion}</p></td>
<td class="columnDate"><p>{@$requiredPackage.packageDate|date}</p></td>
+
+ {event name='requirementColumns'}
</tr>
{/foreach}
{/content}
<th>{lang}wcf.acp.package.list.author{/lang}</th>
<th>{lang}wcf.acp.package.list.version{/lang}</th>
<th>{lang}wcf.acp.package.list.date{/lang}</th>
-
- {if $additionalColumns|isset}{@$additionalColumns}{/if}
+
+ {event name='dependencyHeadColumns'}
</tr>
</thead>
<td class="columnText">{if $dependentPackage.authorURL}<p><a href="{@RELATIVE_WCF_DIR}acp/dereferrer.php?url={$dependentPackage.authorURL|rawurlencode}" class="externalURL">{$dependentPackage.author}</a>{else}{$dependentPackage.author}</p>{/if}</td>
<td class="columnText"><p>{$dependentPackage.packageVersion}</p></td>
<td class="columnDate"><p>{@$dependentPackage.packageDate|date}</p></td>
+
+ {event name='dependencyColumns'}
</tr>
{/foreach}
{/content}
{/if}
{/foreach}
-<div class="contentFooter">
- <nav>
- <ul class="largeButtons">
- {if PACKAGE_ID != $package->packageID}
- {if $package->standalone && $package->package != 'com.woltlab.wcf'}<li><a href="{@RELATIVE_WCF_DIR}{$package->packageDir}acp/index.php{@SID_ARG_1ST}" title="{lang}wcf.acp.package.view.button.makeActive{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/packageACP1.svg" alt="" /> <span>{lang}wcf.acp.package.view.button.makeActive{/lang}</span></a></li>{/if}
- {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $noDependentIsActive}<li><a href="{link controller='Package'}action=startUninstall&packageID={@$package->packageID}{/link}" onclick="return confirm('{lang}wcf.acp.package.view.button.uninstall.sure{/lang}')" title="{lang}wcf.acp.package.view.button.uninstall{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/delete1.svg" alt="" /> <span>{lang}wcf.acp.package.view.button.uninstall{/lang}</span></a></li>{/if}
- {/if}
- {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')}<li><a href="{link controller='PackageStartInstall' id=$package->packageID}action=update{/link}" title="{lang}wcf.acp.package.view.button.update{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/update1.svg" alt="" /> <span>{lang}wcf.acp.package.view.button.update{/lang}</span></a></li>{/if}
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
- </ul>
- </nav>
-</div>
+{hascontent}
+ <div class="contentFooter">
+ <nav>
+ <ul class="largeButtons">
+ {content}
+ {if PACKAGE_ID != $package->packageID}
+ {if $package->standalone && $package->package != 'com.woltlab.wcf'}
+ <li><a href="{@RELATIVE_WCF_DIR}{$package->packageDir}acp/index.php{@SID_ARG_1ST}" title="{lang}wcf.acp.package.view.button.makeActive{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/packageACP1.svg" alt="" /> <span>{lang}wcf.acp.package.view.button.makeActive{/lang}</span></a></li>
+ {/if}
+ {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $noDependentIsActive}
+ <li><a href="{link controller='Package'}action=startUninstall&packageID={@$package->packageID}{/link}" onclick="return confirm('{lang}wcf.acp.package.view.button.uninstall.sure{/lang}')" title="{lang}wcf.acp.package.view.button.uninstall{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/delete1.svg" alt="" /> <span>{lang}wcf.acp.package.view.button.uninstall{/lang}</span></a></li>
+ {/if}
+ {/if}
+ {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')}
+ <li><a href="{link controller='PackageStartInstall' id=$package->packageID}action=update{/link}" title="{lang}wcf.acp.package.view.button.update{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/update1.svg" alt="" /> <span>{lang}wcf.acp.package.view.button.update{/lang}</span></a></li>
+ {/if}
+
+ {event name='largeButtons'}
+ {/content}
+ </ul>
+ </nav>
+ </div>
+{/hascontent}
{include file='footer'}
<nav>
<ul class="largeButtons">
<li><a href="{link controller='UpdateServerList'}{/link}" title="{lang}wcf.acp.menu.link.package.server.list{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/server1.svg" alt="" /> <span>{lang}wcf.acp.menu.link.package.server.list{/lang}</span></a></li>
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
</dd>
</dl>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='dataFields'}
</fieldset>
+ {event name='fieldsets'}
</div>
<div class="formSubmit">
<nav>
<ul class="largeButtons">
<li><a href="{link controller='UpdateServerAdd'}{/link}" title="{lang}wcf.acp.updateServer.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.updateServer.add{/lang}</span></a></li>
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<th class="columnText columnErrorText{if $sortField == 'errorMessage'} active{/if}"><a href="{link controller='UpdateServerList'}pageNo={@$pageNo}&sortField=errorMessage&sortOrder={if $sortField == 'errorMessage' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.updateServer.errorMessage{/lang}{if $sortField == 'errorMessage'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
<th class="columnDate columnTimestamp{if $sortField == 'lastUpdateTime'} active{/if}"><a href="{link controller='UpdateServerList'}pageNo={@$pageNo}&sortField=lastUpdateTime&sortOrder={if $sortField == 'lastUpdateTime' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.updateServer.lastUpdateTime{/lang}{if $sortField == 'lastUpdateTime'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
- {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if}
+ {event name='headColumns'}
</tr>
</thead>
<a href="{link controller='UpdateServerEdit' id=$updateServer->packageUpdateServerID}{/link}"><img src="{@RELATIVE_WCF_DIR}icon/edit1.svg" alt="" title="{lang}wcf.global.button.edit{/lang}" class="balloonTooltip" /></a>
<img src="{@RELATIVE_WCF_DIR}icon/delete1.svg" alt="" title="{lang}wcf.global.button.delete{/lang}" class="deleteButton balloonTooltip" data-object-id="{@$updateServer->packageUpdateServerID}" data-confirm-message="{lang}wcf.acp.updateServer.delete.sure{/lang}" />
- {if $additionalButtons[$updateServer->packageUpdateServerID]|isset}{@$additionalButtons[$updateServer->packageUpdateServerID]}{/if}
+ {event name='buttons'}
</td>
<td class="columnID"><p>{@$updateServer->packageUpdateServerID}</p></td>
<td class="columnText columnTitle"><p><a href="{link controller='UpdateServerEdit' id=$updateServer->packageUpdateServerID}{/link}" title="{lang}wcf.global.button.edit{/lang}">{$updateServer->serverURL}</a></p></td>
<td class="columnText"><p title="{@$updateServer->errorMessage}">{@$updateServer->errorMessage|truncate:"30"}</p></td>
<td class="columnDate"><p>{if $updateServer->lastUpdateTime}{@$updateServer->lastUpdateTime|time}{/if}</p></td>
- {if $additionalColumns[$updateServer->packageUpdateServerID]|isset}{@$additionalColumns[$updateServer->packageUpdateServerID]}{/if}
+ {event name='columns'}
</tr>
{/foreach}
{/content}
<nav>
<ul class="largeButtons">
<li><a href="{link controller='UpdateServerAdd'}{/link}" title="{lang}wcf.acp.updateServer.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.updateServer.add{/lang}</span></a></li>
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<ul class="largeButtons">
<li><a href="{link controller='UserList'}{/link}" title="{lang}wcf.acp.menu.link.user.list{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/users1.svg" alt="" /> <span>{lang}wcf.acp.menu.link.user.list{/lang}</span></a></li>
<li><a href="{link controller='UserSearch'}{/link}" title="{lang}wcf.acp.user.search{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/search1.svg" alt="" /> <span>{lang}wcf.acp.user.search{/lang}</span></a></li>
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
</fieldset>
{/if}
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='fieldsets'}
{if $optionTree|count || $additionalTabs|isset}
<div class="tabMenuContainer">
<nav>
<ul class="largeButtons">
<li><a href="{link controller='UserGroupList'}{/link}" title="{lang}wcf.acp.menu.link.group.list{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/users1.svg" alt="" /> <span>{lang}wcf.acp.menu.link.group.list{/lang}</span></a></li>
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
</dd>
</dl>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='dataFields'}
</fieldset>
- {if $additionalFieldSets|isset}{@$additionalFieldSets}{/if}
+ {event name='fieldsets'}
<div class="tabMenuContainer" data-active="{$activeSubTabMenuItem}" data-store="activeTabMenuItem">
<nav class="tabMenu">
<nav>
<ul class="largeButtons">
<li><a href="{link controller='UserGroupAdd'}{/link}" title="{lang}wcf.acp.group.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.group.add{/lang}</span></a></li>
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<th class="columnTitle columnGroupName{if $sortField == 'groupName'} active{/if}"><a href="{link controller='UserGroupList'}pageNo={@$pageNo}&sortField=groupName&sortOrder={if $sortField == 'groupName' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.group.groupName{/lang}{if $sortField == 'groupName'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
<th class="columnDigits columnMembers{if $sortField == 'members'} active{/if}"><a href="{link controller='UserGroupList'}pageNo={@$pageNo}&sortField=members&sortOrder={if $sortField == 'members' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.group.members{/lang}{if $sortField == 'members'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
- {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if}
+ {event name='headColumns'}
</tr>
</thead>
{else}
<img src="{@RELATIVE_WCF_DIR}icon/delete1D.svg" alt="" title="{lang}wcf.global.button.delete{/lang}" />
{/if}
-
- {if $additionalButtons[$group->groupID]|isset}{@$additionalButtons[$group->groupID]}{/if}
+
+ {event name='buttons'}
</td>
<td class="columnID columnGroupID"><p>{@$group->groupID}</p></td>
<td class="columnTitle columnGroupName">{if $group->isEditable()}<p><a title="{lang}wcf.acp.group.edit{/lang}" href="{link controller='UserGroupEdit' id=$group->groupID}{/link}">{lang}{$group->groupName}{/lang}</a>{else}{lang}{$group->groupName}{/lang}</p>{/if}</td>
<td class="columnDigits columnMembers"><p><a title="{lang}wcf.acp.group.showMembers{/lang}" href="{link controller='UserSearch'}groupID={@$group->groupID}{/link}">{#$group->members}</p></a></td>
- {if $additionalColumns[$group->groupID]|isset}{@$additionalColumns[$group->groupID]}{/if}
+ {event name='columns'}
</tr>
{/foreach}
{/content}
<nav>
<ul class="largeButtons">
<li><a href="{link controller='UserGroupAdd'}{/link}" title="{lang}wcf.acp.group.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.group.add{/lang}</span></a></li>
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<li><a href="{link controller='UserAdd'}{/link}" title="{lang}wcf.acp.user.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.user.add{/lang}</span></a></li>
{/if}
<li><a href="{link controller='UserSearch'}{/link}" title="{lang}wcf.acp.user.search{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/search1.svg" alt="" /> <span>{lang}wcf.acp.user.search{/lang}</span></a></li>
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<nav class="menu">
<ul>
<li{if $action == ''} class="active"{/if}><a href="{link controller='UserList'}{/link}"><span>{lang}wcf.acp.user.list.all{/lang}</span> <span class="badge" title="{lang}wcf.acp.user.list.count{/lang}">{#$items}</span></a></li>
- {if $additionalUserListOptions|isset}{@$additionalUserListOptions}{/if}
+
+ {event name='userListOptions'}
</ul>
</nav>
<th class="column{$column|ucfirst}{if $sortField == $column} active{/if}"><a href="{link controller='UserList'}searchID={@$searchID}&action={@$encodedAction}&pageNo={@$pageNo}&sortField={$column}&sortOrder={if $sortField == $column && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}{$columnLanguageVariable}{/lang}{if $sortField == $column} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}.svg" alt="" />{/if}</a></th>
{/foreach}
- {if $additionalColumnHeads|isset}{@$additionalColumnHeads}{/if}
+ {event name='headColumns'}
</tr>
</thead>
<img src="{@RELATIVE_WCF_DIR}icon/delete1D.svg" alt="" title="{lang}wcf.acp.user.delete{/lang}" />
{/if}
- {if $additionalButtons[$user->userID]|isset}{@$additionalButtons[$user->userID]}{/if}
+ {event name='buttons'}
</td>
<td class="columnID columnUserID"><p>{@$user->userID}</p></td>
<td class="columnTitle columnUsername"><p>{if $user->editable}<a title="{lang}wcf.acp.user.edit{/lang}" href="{link controller='UserEdit' id=$user->userID}{/link}">{$user->username}</a>{else}{$user->username}{/if}</p></td>
<td class="column{$column|ucfirst}"><p>{if $columnValues[$user->userID][$column]|isset}{@$columnValues[$user->userID][$column]}{/if}</p></td>
{/foreach}
- {if $additionalColumns[$user->userID]|isset}{@$additionalColumns[$user->userID]}{/if}
+ {event name='columns'}
</tr>
{/foreach}
{/content}
<li><a href="{link controller='UserAdd'}{/link}" title="{lang}wcf.acp.user.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.user.add{/lang}</span></a></li>
{/if}
<li><a href="{link controller='UserSearch'}{/link}" title="{lang}wcf.acp.user.search{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/search1.svg" alt="" /> <span>{lang}wcf.acp.user.search{/lang}</span></a></li>
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
<ul class="largeButtons">
<li><a href="{link controller='UserList'}{/link}" title="{lang}wcf.acp.menu.link.user.list{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/users1.svg" alt="" /> <span>{lang}wcf.acp.menu.link.user.list{/lang}</span></a></li>
<li><a href="{link controller='UserSearch'}{/link}" title="{lang}wcf.acp.user.search{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/search1.svg" alt="" /> <span>{lang}wcf.acp.user.search{/lang}</span></a></li>
- {if $additionalLargeButtons|isset}{@$additionalLargeButtons}{/if}
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
</dd>
</dl>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='mailFields'}
</fieldset>
+ {event name='fieldsets'}
</div>
<div class="formSubmit">
<li><a href="{link controller='UserAdd'}{/link}" title="{lang}wcf.acp.user.add{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/add1.svg" alt="" /> <span>{lang}wcf.acp.user.add{/lang}</span></a></li>
{/if}
<li><a href="{link controller='UserList'}{/link}" title="{lang}wcf.acp.menu.link.user.list{/lang}"><img src="{@RELATIVE_WCF_DIR}icon/users1.svg" alt="" /> <span>{lang}wcf.acp.menu.link.user.list{/lang}</span></a></li>
+
+ {event name='largeButtons'}
</ul>
</nav>
</div>
{/if}
</fieldset>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='fieldsets'}
<div class="tabMenuContainer">
<nav class="tabMenu">
<ul>
- {if $optionTree|count}<li><a href="#profile">{*<span>*}{lang}wcf.acp.user.search.conditions.profile{/lang}{*</span>*}</a></li>{/if}
- {if $additionalTabs|isset}{@$additionalTabs}{/if}
+ {if $optionTree|count}
+ <li><a href="#profile">{*<span>*}{lang}wcf.acp.user.search.conditions.profile{/lang}{*</span>*}</a></li>
+ {/if}
+
+ {event name='tabMenuTabs'}
+
<li><a href="#resultOptions">{*<span>*}{lang}wcf.acp.user.search.display{/lang}{*</span>*}</a></li>
</ul>
</nav>
</div>
{/if}
- {if $additionalTabContents|isset}{@$additionalTabContents}{/if}
+ {event name='tabMenuContent'}
<div id="resultOptions" class="border tabMenuContent hidden">
<hgroup class="subHeading">
{/if}
</fieldset>
- {if $additionalFields|isset}{@$additionalFields}{/if}
+ {event name='fieldsets'}
- <nav class="tabMenu"><!-- ToDo: Fix that TabMenu! -->
- <ul>
- {if $options|count}<li id="profile"><a onclick="tabMenu.showSubTabMenu('profile');"><span>{lang}wcf.acp.user.search.conditions.profile{/lang}</span></a></li>{/if}
- {if $additionalTabs|isset}{@$additionalTabs}{/if}
- </ul>
- </nav>
-
- <nav class="menu">
- <div class="containerHead"><div> </div></div>
- </nav>
-
- {if $options|count}
- <div id="profile-content" class="border tabMenuContent hidden">
- <hgroup class="subHeading">
- <h1>{lang}wcf.acp.user.search.conditions.profile{/lang}</h1>
- </hgroup>
-
- {include file='optionFieldList' langPrefix='wcf.user.option.'}
- </div>
- {/if}
-
- {if $additionalTabContents|isset}{@$additionalTabContents}{/if}
+ {hascontent}
+ <nav class="tabMenu"><!-- ToDo: Fix that TabMenu! -->
+ <ul>
+ {content}
+ {if $options|count}
+ <li id="profile"><a onclick="tabMenu.showSubTabMenu('profile');"><span>{lang}wcf.acp.user.search.conditions.profile{/lang}</span></a></li>
+ {/if}
+
+ {event name='tabMenuTabs'}
+ {/content}
+ </ul>
+ </nav>
+
+ <nav class="menu">
+ <div class="containerHead"><div> </div></div>
+ </nav>
+
+ {if $options|count}
+ <div id="profile-content" class="border tabMenuContent hidden">
+ <hgroup class="subHeading">
+ <h1>{lang}wcf.acp.user.search.conditions.profile{/lang}</h1>
+ </hgroup>
+
+ {include file='optionFieldList' langPrefix='wcf.user.option.'}
+ </div>
+ {/if}
+
+ {event name='tabMenuContent'}
+ {/hascontent}
</div>
<div class="border content">