acpMenu.xml 100777 0 0 1733 12260125312 6305 0
wcf.acp.menu.link.content
module_user_terms_of_use
admin.content.termsOfUse.canManageTerm
wcf.acp.menu.link.content.termsOfUse
wcf.acp.menu.link.content.termsOfUse
acptemplates.tar 100777 0 0 42000 12263314123 7400 0 termsOfUseTermAdd.tpl 100777 0 0 16445 12261435754 10316 0 {include file='header'}
{include file='multipleLanguageInputJavascript' elementIdentifier='title' forceSelection=false}
{if $objectType->getProcessor()->hasDescription()}
{include file='multipleLanguageInputJavascript' elementIdentifier='description' forceSelection=false}
{/if}
{lang}wcf.acp.termsOfUse.{$action}{/lang}
{include file='formError'}
{if $success|isset}
{lang}wcf.global.success.{@$action}{/lang}
{/if}
{hascontent}
{/hascontent}
{include file='footer'} termsOfUseTermList.tpl 100777 0 0 14243 12260150341 10514 0 {include file='header'}
{if $categoryNodeList->hasChildren()}
{/if}
{lang}wcf.acp.termsOfUse.list{/lang}
{hascontent}
{/hascontent}
{hascontent}
{content}
{assign var=oldDepth value=0}
{foreach from=$categoryNodeList item='category'}
{section name=i loop=$oldDepth-$categoryNodeList->getDepth()}
{/section}
{if $objectType->getProcessor()->canEditCategory()}
{$category->getTitle()}
{else}
{$category->getTitle()}
{/if}
{if $objectType->getProcessor()->canEditCategory()}
{/if}
{if $objectType->getProcessor()->canDeleteCategory()}
{/if}
{if $objectType->getProcessor()->canEditCategory()}
{/if}
{event name='itemButtons'}
{if !$categoryNodeList->current()->hasChildren()}
{/if}
{assign var=oldDepth value=$categoryNodeList->getDepth()}
{/foreach}
{section name=i loop=$oldDepth}{/section}
{/content}
{hascontentelse}
{lang}wcf.acp.termsOfUse.noneAvailable{/lang}
{/hascontent}
{include file='footer'} __userSearchTermsOfUse.tpl 100777 0 0 707 12257154250 11264 0
-
-
eventListener.xml 100777 0 0 6055 12257157720 7564 0
user
readParameters
user
readParameters
1
user
readParameters
1
admin
readFormParameters
admin
buildConditions
admin
assignVariables
admin
readFormParameters
admin
buildConditions
admin
assignVariables
files.tar 100777 0 0 103000 12263314115 6037 0 lib/ 40777 0 0 0 12260152177 4646 5 lib/acp/ 40777 0 0 0 12260152177 5411 5 lib/acp/action/ 40777 0 0 0 12260152177 6666 5 lib/acp/action/TermsOfUseAcceptanceResetAction.class.php 100777 0 0 2262 12260325407 16747 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage acp.action
* @category Community Framework
*/
class TermsOfUseAcceptanceResetAction extends AbstractAction {
/**
* @see \wcf\page\AbstractPage::$neededModules
*/
public $neededModules = array('MODULE_USER_TERMS_OF_USE');
/**
* @see \wcf\action\AbstractAction::$neededPermissions
*/
public $neededPermissions = array('admin.content.termsOfUse.canManageTerm');
/**
* @see \wcf\action\IAction::execute()
*/
public function execute() {
parent::execute();
$sql = "UPDATE wcf".WCF_N."_user
SET disclaimerAccepted = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array(0));
HeaderUtil::redirect(LinkHandler::getInstance()->getLink('TermsOfUseTermList'));
exit;
}
}
lib/acp/form/ 40777 0 0 0 12260152177 6354 5 lib/acp/form/TermsOfUseTermAddForm.class.php 100777 0 0 3204 12263044354 14411 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage acp.form
* @category Community Framework
*/
class TermsOfUseTermAddForm extends AbstractCategoryAddForm {
/**
* @see \wcf\page\AbstractPage::$activeMenuItem
*/
public $activeMenuItem = 'wcf.acp.menu.link.content.termsOfUse.add';
/**
* @see \wcf\acp\form\AbstractCategoryAddForm::$objectTypeName
*/
public $objectTypeName = 'be.bastelstu.sascha.termsofuse.term';
/**
* @see \wcf\acp\form\AbstractCategoryAddForm::$pageTitle
*/
public $pageTitle = 'wcf.acp.termsOfUse.add';
/**
* @see \wcf\page\AbstractPage::$templateName
*/
public $templateName = 'termsOfUseTermAdd';
/**
* @see \wcf\form\AbstractForm::saved()
*/
public function saved() {
if (isset($this->additionalData['acceptanceReset']) && $this->additionalData['acceptanceReset']) {
$sql = "UPDATE wcf".WCF_N."_user
SET disclaimerAccepted = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array(0));
}
// update change date
$sql = "UPDATE wcf".WCF_N."_option
SET optionValue = ?
WHERE optionName = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array(
TIME_NOW,
'terms_of_use_change_date'
));
// update options.inc.php
OptionEditor::resetCache();
}
}
lib/acp/form/TermsOfUseTermEditForm.class.php 100777 0 0 3143 12263044436 14611 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage acp.form
* @category Community Framework
*/
class TermsOfUseTermEditForm extends AbstractCategoryEditForm {
/**
* @see \wcf\page\AbstractPage::$activeMenuItem
*/
public $activeMenuItem = 'wcf.acp.menu.link.content.termsOfUse';
/**
* @see \wcf\acp\form\AbstractCategoryAddForm::$objectTypeName
*/
public $objectTypeName = 'be.bastelstu.sascha.termsofuse.term';
/**
* @see \wcf\acp\form\AbstractCategoryAddForm::$pageTitle
*/
public $pageTitle = 'wcf.acp.termsOfUse.edit';
/**
* @see \wcf\page\AbstractPage::$templateName
*/
public $templateName = 'termsOfUseTermAdd';
/**
* @see \wcf\form\AbstractForm::saved()
*/
public function saved() {
if (isset($this->additionalData['acceptanceReset']) && $this->additionalData['acceptanceReset']) {
$sql = "UPDATE wcf".WCF_N."_user
SET disclaimerAccepted = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array(0));
}
// update change date
$sql = "UPDATE wcf".WCF_N."_option
SET optionValue = ?
WHERE optionName = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array(
TIME_NOW,
'terms_of_use_change_date'
));
// update options.inc.php
OptionEditor::resetCache();
}
}
lib/acp/page/ 40777 0 0 0 12260152177 6325 5 lib/acp/page/TermsOfUseTermListPage.class.php 100777 0 0 1706 12260325407 14561 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage acp.page
* @category Community Framework
*/
class TermsOfUseTermListPage extends AbstractCategoryListPage {
/**
* @see \wcf\page\AbstractPage::$activeMenuItem
*/
public $activeMenuItem = 'wcf.acp.menu.link.content.termsOfUse.list';
/**
* @see \wcf\acp\page\AbstractCategoryListPage::$activeMenuItem
*/
public $objectTypeName = 'be.bastelstu.sascha.termsofuse.term';
/**
* @see \wcf\acp\page\AbstractCategoryListPage::$pageTitle
*/
public $pageTitle = 'wcf.acp.termsOfUse.list';
/**
* @see \wcf\page\AbstractPage::$templateName
*/
public $templateName = 'termsOfUseTermList';
}
lib/action/ 40777 0 0 0 12260152177 6123 5 lib/action/TermsOfUseDeclineAction.class.php 100777 0 0 3436 12260364237 14526 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage action
* @category Community Framework
*/
class TermsOfUseDeclineAction extends AbstractAction {
/**
* @see \wcf\page\AbstractPage::$neededModules
*/
public $neededModules = array('MODULE_USER_TERMS_OF_USE');
/**
* @see \wcf\action\IAction::execute()
*/
public function execute() {
parent::execute();
if (!WCF::getUser()->userID || WCF::getUser()->disclaimerAccepted || TERMS_OF_USE_DECLINEACTION == 'nothing') {
throw new IllegalLinkException();
}
switch (TERMS_OF_USE_DECLINEACTION) {
case 'disable':
$langVar = 'wcf.termsOfUse.declined.action.disabled';
$objectAction = new UserAction(array(WCF::getUser()), 'disable');
break;
case 'ban':
$langVar = 'wcf.termsOfUse.declined.action.banned';
$objectAction = new UserAction(array(WCF::getUser()), 'ban', array('banReason' => WCF::getLanguage()->get('wcf.termsOfUse.button.decline.banReason')));
break;
case 'delete':
$langVar = 'wcf.termsOfUse.declined.action.deletion';
$objectAction = new UserAction(array(WCF::getUser()), 'update', array('data' => array('quitStarted' => TIME_NOW)));
break;
default:
break;
}
$objectAction->executeAction();
HeaderUtil::delayedRedirect(LinkHandler::getInstance()->getLink(), WCF::getLanguage()->get($langVar));
exit;
}
}
lib/form/ 40777 0 0 0 12260152177 5611 5 lib/form/TermsOfUseAgreeForm.class.php 100777 0 0 7141 12262136142 13351 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage form
* @category Community Framework
*/
class TermsOfUseAgreeForm extends AbstractForm {
/**
* @see \wcf\page\AbstractPage::$enableTracking
*/
public $enableTracking = true;
/**
* @see \wcf\page\AbstractPage::$neededModules
*/
public $neededModules = array('MODULE_USER_TERMS_OF_USE');
/**
* @see \wcf\page\AbstractPage::$templateName
*/
public $templateName = 'termsOfUseAgree';
/**
* true, if the user has accepted the terms of use
* @var boolean
*/
public $accept = false;
/**
* category object type object
* @var \wcf\data\object\type\ObjectType
*/
public $objectType = null;
/**
* category node tree
* @var \wcf\data\category\CategoryNodeTree
*/
public $categoryNodeTree = null;
/**
* @see \wcf\page\IPage::readParameters()
*/
public function readParameters() {
parent::readParameters();
if (!WCF::getUser()->userID) {
if (REGISTER_DISABLED) {
throw new NamedUserException(WCF::getLanguage()->get('wcf.user.register.error.disabled'));
}
} else if (WCF::getUser()->disclaimerAccepted || WCF::getSession()->getPermission('admin.general.canIgnoreTermsOfUse')) {
HeaderUtil::redirect(LinkHandler::getInstance()->getLink('TermsOfUse'));
exit;
}
}
/**
* @see \wcf\form\IForm::readFormParameters()
*/
public function readFormParameters() {
parent::readFormParameters();
if (isset($_POST['accept'])) $this->accept = true;
}
/**
* @see \wcf\form\IForm::validate()
*/
public function validate() {
parent::validate();
if (!$this->accept) throw new UserInputException('accept');
}
/**
* @see \wcf\page\IPage::readData()
*/
public function readData() {
parent::readData();
$this->objectType = CategoryHandler::getInstance()->getObjectTypeByName('be.bastelstu.sascha.termsofuse.term');
$this->buildCategoryNodeTree();
}
/**
* @see \wcf\form\IForm::save()
*/
public function save() {
parent::save();
WCF::getSession()->register('disclaimerAccepted', true);
$this->saved();
WCF::getSession()->update();
if (!WCF::getUser()->userID) {
HeaderUtil::redirect(LinkHandler::getInstance()->getLink('Register'));
} else {
$userEditor = new UserEditor(WCF::getUser());
$userEditor->update(array(
'disclaimerAccepted' => 1,
'quitStarted' => 0
));
HeaderUtil::redirect(LinkHandler::getInstance()->getLink());
}
exit;
}
/**
* @see \wcf\page\IPage::assignVariables()
*/
public function assignVariables() {
parent::assignVariables();
WCF::getTPL()->assign(array(
'terms' => $this->categoryNodeTree->getIterator(),
'sidebarCollapsed' => UserCollapsibleContentHandler::getInstance()->isCollapsed('com.woltlab.wcf.collapsibleSidebar', 'be.bastelstu.sascha.termsofuse.TermsOfUseAgreeForm'),
'sidebarName' => 'be.bastelstu.sascha.termsofuse.TermsOfUseAgreeForm',
));
}
/**
* Reads available terms.
*/
protected function buildCategoryNodeTree() {
$this->categoryNodeTree = new CategoryNodeTree($this->objectType->objectType, 0, false);
}
}
lib/page/ 40777 0 0 0 12260152177 5562 5 lib/page/TermsOfUsePage.class.php 100777 0 0 4172 12260343545 12335 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage page
* @category Community Framework
*/
class TermsOfUsePage extends AbstractPage {
/**
* @see \wcf\page\AbstractPage::$activeMenuItem
*/
public $activeMenuItem = 'wcf.footer.menu.termsOfUse';
/**
* @see \wcf\page\AbstractPage::$enableTracking
*/
public $enableTracking = true;
/**
* @see \wcf\page\AbstractPage::$neededModules
*/
public $neededModules = array('MODULE_USER_TERMS_OF_USE');
/**
* @see \wcf\page\AbstractPage::$templateName
*/
public $templateName = 'termsOfUseShow';
/**
* category object type object
* @var \wcf\data\object\type\ObjectType
*/
public $objectType = null;
/**
* category node tree
* @var \wcf\data\category\CategoryNodeTree
*/
public $categoryNodeTree = null;
/**
* @see \wcf\page\IPage::readData()
*/
public function readData() {
parent::readData();
$this->objectType = CategoryHandler::getInstance()->getObjectTypeByName('be.bastelstu.sascha.termsofuse.term');
$this->buildCategoryNodeTree();
}
/**
* @see \wcf\page\IPage::assignVariables()
*/
public function assignVariables() {
parent::assignVariables();
WCF::getTPL()->assign(array(
'terms' => $this->categoryNodeTree->getIterator(),
'sidebarCollapsed' => UserCollapsibleContentHandler::getInstance()->isCollapsed('com.woltlab.wcf.collapsibleSidebar', 'be.bastelstu.sascha.termsofuse.TermsOfUsePage'),
'sidebarName' => 'be.bastelstu.sascha.termsofuse.TermsOfUsePage',
'allowSpidersToIndexThisPage' => true
));
}
/**
* Reads available terms.
*/
protected function buildCategoryNodeTree() {
$this->categoryNodeTree = new CategoryNodeTree($this->objectType->objectType, 0, false);
}
}
lib/system/ 40777 0 0 0 12260152177 6172 5 lib/system/category/ 40777 0 0 0 12260152177 10007 5 lib/system/category/TermsOfUseCategoryType.class.php 100777 0 0 2751 12261262771 16330 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage system.category
* @category Community Framework
*/
class TermsOfUseCategoryType extends AbstractCategoryType {
/**
* @see \wcf\system\category\AbstractCategoryType::$langVarPrefix
*/
protected $langVarPrefix = 'termsofUse.term';
/**
* @see \wcf\system\category\AbstractCategoryType::$forceDescription
*/
protected $forceDescription = false;
/**
* @see \wcf\system\category\AbstractCategoryType::$maximumNestingLevel
*/
protected $maximumNestingLevel = 1;
/**
* @see \wcf\system\category\ICategoryType::getApplication()
*/
public function getApplication() {
return 'wcf';
}
/**
* @see \wcf\system\category\ICategoryType::canAddCategory()
*/
public function canAddCategory() {
return $this->canEditCategory();
}
/**
* @see \wcf\system\category\ICategoryType::canDeleteCategory()
*/
public function canDeleteCategory() {
return $this->canEditCategory();
}
/**
* @see \wcf\system\category\ICategoryType::canEditCategory()
*/
public function canEditCategory() {
return WCF::getSession()->getPermission('admin.content.termsOfUse.canManageTerm');
}
}
lib/system/event/ 40777 0 0 0 12260152177 7313 5 lib/system/event/listener/ 40777 0 0 0 12261556100 11133 5 lib/system/event/listener/TermsOfUseRegisterListener.class.php 100777 0 0 1702 12260325407 20322 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage system.event.listener
* @category Community Framework
*/
class TermsOfUseRegisterListener implements IEventListener {
/**
* @see \wcf\system\event\IEventListener::execute()
*/
public function execute($eventObj, $className, $eventName) {
if (MODULE_USER_TERMS_OF_USE && REGISTER_ENABLE_DISCLAIMER && !WCF::getSession()->getVar('disclaimerAccepted')) {
HeaderUtil::redirect(LinkHandler::getInstance()->getLink('TermsOfUseAgree'));
exit;
}
}
}
lib/system/event/listener/TermsOfUseUserListener.class.php 100777 0 0 2740 12260325407 17457 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage system.event.listener
* @category Community Framework
*/
class TermsOfUseUserListener implements IEventListener {
/**
* @see \wcf\system\event\IEventListener::execute()
*/
public function execute($eventObj, $className, $eventName) {
if (MODULE_USER_TERMS_OF_USE && WCF::getUser()->userID && !WCF::getSession()->getPermission('admin.general.canIgnoreTermsOfUse') && !WCF::getUser()->disclaimerAccepted) {
if (get_class($eventObj) !== 'wcf\form\TermsOfUseAgreeForm' && !RequestHandler::getInstance()->getActiveRequest()->isAvailableDuringOfflineMode()) {
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
throw new AJAXException(WCF::getLanguage()->get('wcf.ajax.error.permissionDenied'), AJAXException::INSUFFICIENT_PERMISSIONS);
}
else {
HeaderUtil::redirect(LinkHandler::getInstance()->getLink('TermsOfUseAgree'));
}
exit;
}
}
}
}
lib/system/event/listener/UserSearchFormTermsOfUseListener.class.php 100777 0 0 3526 12260363263 21436 0
* @copyright 2013 Sascha Greuel
* @license Creative Commons Attribution-NoDerivatives
* @package be.bastelstu.sascha.termsofuse
* @subpackage system.event.listener
* @category Community Framework
*/
class UserSearchFormTermsOfUseListener implements IEventListener {
/**
* form object
* @var \wcf\acp\form\AbstractForm
*/
protected $eventObj = null;
/**
* terms of use accepted
* @var boolean
*/
public $termsAccepted = false;
/**
* terms of use not accepted
* @var boolean
*/
public $termsNotAccepted = false;
/**
* @see \wcf\system\event\IEventListener::execute()
*/
public function execute($eventObj, $className, $eventName) {
if (!MODULE_USER_TERMS_OF_USE) {
return;
}
$this->eventObj = $eventObj;
$this->$eventName();
}
/**
* Handles the readFormParameters event.
*/
protected function readFormParameters() {
if (!empty($_POST['termsAccepted'])) $this->termsAccepted = true;
if (!empty($_POST['termsNotAccepted'])) $this->termsNotAccepted = true;
}
/**
* Handles the assignVariables event.
*/
protected function assignVariables() {
WCF::getTPL()->assign(array(
'termsAccepted' => $this->termsNotAccepted,
'termsNotAccepted' => $this->termsNotAccepted
));
}
/**
* Handles the buildConditions event.
*/
protected function buildConditions() {
if ($this->termsAccepted) {
$this->eventObj->conditions->add('user_table.disclaimerAccepted = ?', array(1));
}
if ($this->termsNotAccepted) {
$this->eventObj->conditions->add('user_table.disclaimerAccepted <> ?', array(1));
}
}
}
install.sql 100777 0 0 113 12257113656 6347 0 ALTER TABLE wcf1_user ADD disclaimerAccepted TINYINT(1) NOT NULL DEFAULT 1; language/ 40777 0 0 0 12260152177 5663 5 language/de.xml 100777 0 0 15713 12263065104 7120 0
- getPath('wcf')}acp/dereferrer.php?url={"https://developer.mozilla.org/de/docs/Web/CSS/list-style-type"|rawurlencode}" class="externalURL">hier.]]>
- Bitte beachten Sie, dass Sie rechtlich dazu verpflichtet sind, Ihre Benutzer über sämtliche Änderungen aufmerksam zu machen!]]>
language/en.xml 100777 0 0 15102 12263065126 7126 0
- getPath('wcf')}acp/dereferrer.php?url={"https://developer.mozilla.org/en/docs/Web/CSS/list-style-type"|rawurlencode}" class="externalURL">here.]]>
- Please note, that you are bound by law to inform your users about every change!]]>
language/fr.xml 100777 0 0 10510 12262136610 7125 0
- getPath('wcf')}acp/dereferrer.php?url={"https://developer.mozilla.org/fr/docs/CSS/list-style-type"|rawurlencode}" class="externalURL">ici.]]>
language/tr.xml 100777 0 0 10302 12262136602 7143 0
- getPath('wcf')}acp/dereferrer.php?url={"https://developer.mozilla.org/tr/docs/Web/CSS/list-style-type"|rawurlencode}" class="externalURL">buraya bulunabilir.]]>