<page><![CDATA[wcf\acp\page\UserListPage]]></page>
</pages>
</action>
-
+
<action name="exportMailAddress">
<actionclassname><![CDATA[wcf\system\clipboard\action\UserClipboardAction]]></actionclassname>
<showorder>6</showorder>
<definition>
<name>com.woltlab.wcf.modifiableContent</name>
</definition>
-
+
<definition>
<name>com.woltlab.wcf.versionableObject</name>
</definition>
<category name="user">
<showorder>3</showorder>
</category>
-
<category name="user.general">
<parent>user</parent>
</category>
{event name='footerContents'}
{if ENABLE_BENCHMARK}{include file='benchmark'}{/if}
-
+
{event name='copyright'}
</div>
</div>
<p class="info">{lang}wcf.user.recentActivity.noEntries{/lang}</p>
{/if}
-
-
{include file='footer'}
</body>
</category>
<!-- /settings -->
</categories>
-
+
<options>
<!-- profile -->
<option name="aboutMe">
<body>
<div>
<h1>Fatal error: <?php echo htmlspecialchars($this->getMessage()); ?></h1>
-
+
<div>
<p><?php echo $this->getDescription(); ?></p>
<?php if ($this->getCode()) { ?><p>You get more information about the problem in our knowledge base: <a href="http://www.woltlab.com/help/?code=<?php echo intval($this->getCode()); ?>">http://www.woltlab.com/help/?code=<?php echo intval($this->getCode()); ?></a></p><?php } ?>
}
}
-
/**
* Loads the required classes automatically.
*/
if (function_exists('session_save_path') && ($path = session_save_path()) && @is_writable($path)) {
return $path . '/';
}
-
+
$path = INSTALL_SCRIPT_DIR.'tmp/';
if (@file_exists($path) && @is_writable($path)) {
return $path;
if (strlen($binaryData) != 512) {
return false;
}
-
+
$header = array();
$checksum = 0;
// First part of the header
for ($i = 156; $i < 512; $i++) {
$checksum += ord(substr($binaryData, $i, 1));
}
-
+
// Extract the values
//$data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor", $binaryData);
if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
$statement->execute(array($timezone, 'timezone'));
}
}
-
-
{/hascontent}
</div>
-
{include file='footer'}
<div class="container containerPadding marginTop">
<fieldset>
<legend>{lang}wcf.global.filter{/lang}</legend>
-
+
<dl>
<dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
<dd>
{event name='selectExporterFields'}
</fieldset>
</div>
-
+
<div class="formSubmit">
<input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
{@SID_INPUT_TAG}
{event name='fieldsets'}
</div>
-
+
<div class="formSubmit">
<input type="hidden" name="exporterName" value="{$exporterName}" />
<input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
<div id="system" class="container containerPadding hidden tabMenuContent">
<fieldset>
<legend>{lang}wcf.acp.index.system.software{/lang}</legend>
-
+
{event name='softwareVersions'}
-
+
<dl>
<dt>{lang}wcf.acp.index.system.software.wcfVersion{/lang}</dt>
<dd>{@WCF_VERSION}</dd>
<fieldset>
<legend>{lang}wcf.acp.index.system.server{/lang}</legend>
-
+
<dl>
<dt>{lang}wcf.acp.index.system.os{/lang}</dt>
<dd>{$server[os]}</dd>
<div id="credits" class="container containerPadding hidden tabMenuContent">
<fieldset>
<legend>{lang}wcf.acp.index.credits{/lang}</legend>
-
+
<dl>
<dt>{lang}wcf.acp.index.credits.developedBy{/lang}</dt>
<dd><a href="{@$__wcf->getPath()}acp/dereferrer.php?url={"http://www.woltlab.com"|rawurlencode}" class="externalURL">WoltLab® GmbH</a></dd>
{if $item->languageItemOriginIsSystem}
<fieldset>
<legend><label for="overlayLanguageCustomItemValue">{lang}wcf.acp.language.item.customValue{/lang}</label></legend>
-
+
<dl class="wide">
<dd>
<textarea rows="5" cols="60" name="languageCustomItemValue" id="overlayLanguageCustomItemValue">{$item->languageCustomItemValue}</textarea>
<div class="container containerPadding marginTop">
<fieldset>
<legend>{lang}wcf.global.filter{/lang}</legend>
-
+
<dl>
<dt><label for="languageID">{lang}wcf.user.language{/lang}</label></dt>
<dd>
{event name='dataFields'}
</fieldset>
-
<fieldset>
<legend><label for="templateSource">{lang}wcf.acp.template.source{/lang}</label></legend>
-
+
<dl class="wide">
<dt><label for="templateSource">{lang}wcf.acp.template.source{/lang}</label></dt>
<dd>
</dd>
</dl>
</fieldset>
-
{event name='fieldsets'}
</div>
<p class="error">{lang}wcf.acp.template.error.noGroups{/lang}</p>
{/if}
-
{include file='footer'}
</div>
</form>
-
{include file='footer'}
<nav>
<ul>
<li><a href="{link controller='TemplateGroupAdd'}{/link}" class="button"><span class="icon icon16 icon-plus"></span> <span>{lang}wcf.acp.template.group.add{/lang}</span></a></li>
-
+
{event name='contentNavigationButtonsBottom'}
</ul>
</nav>
{event name='tabMenuTabs'}
</ul>
</nav>
-
+
<div id="conditions" class="container containerPadding tabMenuContent">
<fieldset>
<legend>{lang}wcf.acp.user.search.conditions{/lang}</legend>
<div id="profile" class="container containerPadding tabMenuContent">
<fieldset>
<legend>{lang}wcf.acp.user.search.conditions.profile{/lang}</legend>
-
+
{include file='optionFieldList' langPrefix='wcf.user.option.'}
</fieldset>
{event name='profileFieldsets'}
</div>
{/if}
-
+
<div id="action" class="container containerPadding tabMenuContent">
<fieldset{if $errorField == 'action'} class="formError"{/if}>
<legend>{lang}wcf.acp.user.bulkProcessing.action{/lang}</legend>
</div>
</form>
-
{include file='footer'}
<nav>
<ul>
<li><a href="{link controller='UserOptionCategoryAdd'}{/link}" class="button"><span class="icon icon16 icon-plus"></span> <span>{lang}wcf.acp.user.option.category.add{/lang}</span></a></li>
-
+
{event name='contentNavigationButtonsBottom'}
</ul>
</nav>
</div>
</form>
-
{include file='footer'}
$content += $(listItem).text().replace(/\n+$/, '');
});
-
if (this._dialog === null) {
this._dialog = $('<div><textarea cols="60" rows="12" readonly="readonly" /></div>').hide().appendTo(document.body);
this._dialog.children('textarea').val($content);
}
});
-
/**
* Namespace for registration functions.
*/
*/
_popoverContent: null,
-
/**
* popover horizontal offset
* @var integer
*/
public function execute() {
parent::execute();
-
+
// do logout
WCF::getSession()->delete();
I18nHandler::getInstance()->register('smileyTitle');
}
-
/**
* @see wcf\page\IForm::readFormParameters()
*/
*/
public function readData() {
parent::readData();
-
+
$templateGroupList = new TemplateGroupList();
$templateGroupList->sqlOrderBy = "templateGroupName";
$templateGroupList->readObjects();
if (empty($this->templateGroupName)) {
throw new UserInputException('templateGroupName');
}
-
+
$sql = "SELECT COUNT(*) AS count
FROM wcf".WCF_N."_template_group
WHERE templateGroupName = ?";
if (!preg_match('/^[a-z0-9_\- ]+\/$/i', $this->templateGroupFolderName)) {
throw new UserInputException('templateGroupFolderName', 'notValid');
}
-
+
$sql = "SELECT COUNT(*) AS count
FROM wcf".WCF_N."_template_group
WHERE templateGroupFolderName = ?";
*/
public function readData() {
parent::readData();
-
+
$templateGroupList = new TemplateGroupList();
$templateGroupList->sqlOrderBy = "templateGroupName";
$templateGroupList->readObjects();
*/
public function readData() {
AbstractForm::readData();
-
+
$templateGroupList = new TemplateGroupList();
$templateGroupList->getConditionBuilder()->add('templateGroupID <> ?', array($this->templateGroupID));
$templateGroupList->readObjects();
$this->availableTemplateGroups = $templateGroupList->getObjects();
-
+
// default values
if (!count($_POST)) {
$this->templateGroupName = $this->templateGroup->templateGroupName;
'avatarID' => null,
'enableGravatar' => 0
);
- break;
-
+ break;
+
case 'custom':
$avatarData = array(
'enableGravatar' => 0
);
- break;
-
+ break;
+
case 'gravatar':
$avatarData = array(
'avatarID' => null,
'enableGravatar' => 1
);
- break;
+ break;
}
$avatarData['disableAvatar'] = $this->disableAvatar;
$avatarData['disableAvatarReason'] = $this->disableAvatarReason;
*/
public function assignVariables() {
parent::assignVariables();
-
+
$usersAwaitingApproval = 0;
if (REGISTER_ACTIVATION_METHOD == 2) {
$sql = "SELECT COUNT(*) AS count
*/
public function assignVariables() {
parent::assignVariables();
-
+
// get phpinfo() output
ob_start();
phpinfo();
$info = ob_get_contents();
ob_end_clean();
-
+
// parse output
$info = preg_replace('%^.*<body>(.*)</body>.*$%s', '$1', $info);
*/
public function readData() {
parent::readData();
-
+
// get object types
$this->objectTypes = ObjectTypeCache::getInstance()->getObjectTypes('com.woltlab.wcf.rebuildData');
*/
protected function initObjectList() {
parent::initObjectList();
-
+
$this->objectList->getConditionBuilder()->add("option_table.categoryName IN (SELECT categoryName FROM wcf".WCF_N."_user_option_category WHERE parentCategoryName = ?)", array('profile'));
}
}
*/
public $inDebugMode = false;
-
/**
* results of the executed action
* @var mixed
if (!WCF::getSession()->getPermission('admin.language.canManageLanguage')) {
throw new PermissionDeniedException();
}
-
+
$this->readObjects();
if (!count($this->objects)) {
throw new UserInputException('objectIDs');
if (!WCF::getSession()->getPermission('admin.language.canManageLanguage')) {
throw new PermissionDeniedException();
}
-
+
$this->readObjects();
if (!count($this->objects)) {
throw new UserInputException('objectIDs');
$key++;
$value = $option;
}
-
+
$result[$key] = $value;
}
}
if ($this->groupOptions === null) {
// get all options and filter options with low priority
$this->groupOptions = $groupOptionIDs = array();
-
+
$sql = "SELECT optionName, optionID
FROM wcf".WCF_N."_user_group_option";
$statement = WCF::getDB()->prepareStatement($sql);
*/
protected $requireACP = array('create', 'delete', 'toggle', 'update');
-
/**
* @see wcf\data\IToggleAction::toggle()
*/
}
}
-
/**
* @see wcf\form\IForm::save()
*/
*/
public function readParameters() {
parent::readParameters();
-
+
// get max text length
$this->maxTextLength = WCF::getSession()->getPermission('user.signature.maxLength');
}
*/
public function readParameters() {
parent::readParameters();
-
+
// get object type
if (isset($_REQUEST['objectType'])) {
$this->objectType = ObjectTypeCache::getInstance()->getObjectTypeByName('com.woltlab.wcf.deletedContent', $_REQUEST['objectType']);
*/
public function readData() {
parent::readData();
-
+
$this->tagCloud = new TypedTagCloud($this->objectType->objectType);
}
WCF::getTPL()->display('stepConfigureDB');
}
-
/**
* Checks if in the chosen database are tables in conflict with the wcf tables
* which will be created in the next step.
// double quote identifiers (column & table names ...)
$query = preg_replace('~(?<=^|\s|\.|\(|,)([A-Za-z0-9_-]*[a-z]{1}[A-Za-z0-9_-]*)(?=$|\s|\.|\)|,|=)~', '"\\1"', $query);
-
+
// rename LIKE to ILIKE for case-insensitive comparisons
$query = preg_replace('/(?<=\s)LIKE(?=\s)/si', 'ILIKE', $query);
/**
* Saves an id mapping.
- *
+ *
* @param string $type
* @param integer $oldID
* @param integer $newID
$this->quoteData[$quoteID] = $message;
// save parent object id
-
+
if (!isset($this->quoteData['parents'])) {
$this->quoteData['parents'] = array();
}
continue;
}
$baseTableColumns = WCF::getDB()->getEditor()->getColumns(call_user_func(array($objectType->className, 'getDatabaseTableName')));
-
+
// remove primary key from base table columns
foreach ($baseTableColumns as $key => $column) {
if ($column['data']['key'] == 'PRIMARY') {
if (empty($versionTableColumns)) {
$columns = array_merge($versionTableBaseColumns, $baseTableColumns);
WCF::getDB()->getEditor()->createTable(call_user_func(array($objectType->className, 'getDatabaseVersionTableName')), $columns);
-
+
// add version table to plugin
$sql = "INSERT INTO wcf".WCF_N."_package_installation_sql_log
(packageID, sqlTable)
foreach ($versionTableBaseColumns as $column) {
$versionTableBaseColumnNames[] = $column['name'];
}
-
+
// check garbage columns in versioned table
foreach ($versionTableColumns as $columnData) {
if (!in_array($columnData['name'], $baseTableColumnNames) && !in_array($columnData['name'], $versionTableBaseColumnNames)) {
*/
protected $knownTables = array();
-
/**
* list of conflicted database tables
* @var array
*/
public function logFiles(array $files) {
$packageID = $this->packageInstallation->getPackageID();
-
+
// remove file extension
foreach ($files as &$file) {
$file = substr($file, 0, -4);
}
unset($file);
-
+
// get existing templates
$existingTemplates = $updateTemplateIDs = array();
$sql = "SELECT templateName, templateID
while ($row = $statement->fetchArray()) {
$existingTemplates[$row['templateName']] = $row['templateID'];
}
-
+
// save new templates
$sql = "INSERT INTO wcf".WCF_N."_template
(packageID, templateName, lastModificationTime, application)
foreach ($children as $child) {
$data[$child->tagName] = $child->nodeValue;
}
-
+
$this->saveCategory($data);
}
}
if (!$row) {
throw new SystemException("unknown object type '".$optionType."' given");
}
-
+
$this->optionTypeIDs[$optionType] = $row['objectTypeID'];
}
if (isset($_SERVER['SCRIPT_NAME']) && (self::$pathInfo == $_SERVER['SCRIPT_NAME'])) {
self::$pathInfo = '';
}
-
+
if (isset($_SERVER['PHP_SELF']) && (self::$pathInfo == $_SERVER['PHP_SELF'])) {
self::$pathInfo = '';
}
-
+
if (isset($_SERVER['SCRIPT_URL']) && (self::$pathInfo == $_SERVER['SCRIPT_URL'])) {
self::$pathInfo = '';
}
$length = mb_strlen($substring);
if ($length > $width) {
$j = ceil($length / $width);
-
+
for ($i = 0; $i < $j; $i++) {
if ($i) $result .= $break;
if ($width * ($i + 1) > $length) $result .= mb_substr($substring, $width * $i);
position: absolute;
top: 27px;
width: 16px;
-
+
&:after,
&:before {
content: "";
li {
padding: @wcfGapTiny @wcfGapSmall;
text-align: right;
-
+
&:hover {
background-color: @wcfButtonHoverBackgroundColor;
}
outline: none;
}
-
#lbCenter, #lbBottomContainer {
background-color: #fff;
overflow: hidden;
}
}
}
-
+
> .searchBar {
background-color: @wcfUserPanelHoverBackgroundColor;
position: absolute;
}
}
}
-
+
> .searchBar {
height: 41px;
min-width: 40px;
> div {
display: block;
-
+
> div {
display: block;
-
+
> .sidebar,
> .content {
display: block;
.containerList {
> li {
padding: @wcfGapMedium @wcfGapLarge;
-
+
.transition(background-color, .1s);
-
+
&:nth-child(even) {
background-color: @wcfContainerAccentBackgroundColor;
}
.tabularBoxTitle > header {
color: @wcfTabularBoxColor;
padding: 5px 7px;
-
+
> h2 {
font-size: @wcfTitleFontSize;
font-weight: bold;
.textShadow(@wcfTabularBoxBackgroundColor);
-
+
> a {
color: @wcfTabularBoxColor;