diff --git a/assets/schwarzesbrett.less b/assets/schwarzesbrett.less index 2656ca5f05d50ea9d90adfd5b1e5117466fdaceb..c1f0cdd4c6c7f2c9b44e443528e4d51f1dad96b7 100644 --- a/assets/schwarzesbrett.less +++ b/assets/schwarzesbrett.less @@ -113,8 +113,8 @@ color: red; } -.studip_form { - input[type=text], textarea, select { +.studip_form, #bb-config { + input[type=text], input[type=number], textarea, select { .box-sizing(border-box); width: 100%; } diff --git a/controllers/admin/settings.php b/controllers/admin/settings.php index 2c49c32f904b7377acd7739430e924a2fae47599..4ca8f222d33f06f9e4e914db114758707b6f7865 100644 --- a/controllers/admin/settings.php +++ b/controllers/admin/settings.php @@ -98,6 +98,11 @@ class Admin_SettingsController extends SchwarzesBrettController 'key' => 'cacheMediaProxy', 'type' => 'checkbox', ); + + $options['BULLETIN_BOARD_RULES'] = array( + 'key' => 'rules', + 'type' => 'textarea', + ); foreach ($options as $key => $data) { $options[$key]['description'] = $this->getConfig($key, 'description'); diff --git a/migrations/14_add_rules.php b/migrations/14_add_rules.php new file mode 100644 index 0000000000000000000000000000000000000000..92958ce1e59f8348efec65a9211eb3c4f5c05a29 --- /dev/null +++ b/migrations/14_add_rules.php @@ -0,0 +1,40 @@ +<?php +class AddRules extends Migration +{ + public function description() + { + return 'Adds the config entry for the now editable rules of the bulletin board.'; + } + + public function up() + { + $query = "INSERT IGNORE INTO `config` (`config_id`, `parent_id`, `field`, `value`, `is_default`, `type`, + `range`, `section`, `position`, `mkdate`, `chdate`, `description`, `comment`, `message_template`) + VALUES (MD5(:id), '', :id, :value, '1', 'string', + 'global', 'SchwarzesBrettPlugin', '0', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), :description, '', '')"; + $statement = DBManager::get()->prepare($query); + + $statement->bindValue(':id', 'BULLETIN_BOARD_RULES'); + $statement->bindValue(':value', $this->getRules()); + $statement->bindValue('description', 'Die angezeigten Regeln des Schwarzen Bretts'); + $statement->execute(); + } + + public function down() + { + DBManager::get()->exec("DELETE FROM `config` WHERE `config_id` = MD5('BULLETIN_BOARD_RULES')"); + } + + private function getRules() + { + $rules = '!!!Allgemeine Hinweise:' . "\n"; + $rules .= '- Sie k�nnen nur in Themen eine Anzeige erstellen, in denen Sie die n�tigen Rechte haben.' . "\n"; + $rules .= '- Mit der Suche werden sowohl Titel als auch Beschreibung aller Anzeigen durchsucht.' . "\n"; + $rules .= '- Sie k�nnen Ihre eigenen Anzeigen jederzeit nachtr�glich %%bearbeiten%% oder %%l�schen%%.' . "\n"; + $rules .= '- Bitte stellen Sie Ihre Anzeigen in die richtige Kategorie ein. Damit das Schwarze Brett �bersichtlich bleibt, %%l�schen%% Sie bitte Ihre Anzeigen umgehend nach Abschluss/Verkauf.' . "\n"; + $rules .= '- **Bitte Artikel nur in %%eine%% Kategorie einstellen!**' . "\n"; + $rules .= '- **Kommerzielle Angebote sind __nicht__ erlaubt (dazu geh�ren auch solche Anzeigen die einen Link enthalten, der dem Einstellenden eine Provision verspricht). Sie werden gel�scht!**' . "\n"; + + return $rules; + } +} diff --git a/plugin.manifest b/plugin.manifest index 926155eab00035258a607542c403432611e0e83b..ecad72ccdb13ca1b2526378398108330464e91d6 100644 --- a/plugin.manifest +++ b/plugin.manifest @@ -2,6 +2,6 @@ pluginname=SchwarzesBrettPlugin pluginclassname=SchwarzesBrettPlugin pluginclassname=SchwarzesBrettWidget origin=IBIT -version=3.6.2 +version=3.6.3 studipMinVersion=3.1 description=Globales Schwarzes Brett f�r Kleinanzeigen mit Kategorien (Gesuche/Angebote) diff --git a/views/admin/settings/index.php b/views/admin/settings/index.php index 2c363d8e055eb20e9845b7b648c1ae410498bce0..74951e4afe45e28c93183c1fb10cf95b2f41e289 100644 --- a/views/admin/settings/index.php +++ b/views/admin/settings/index.php @@ -10,7 +10,7 @@ <?= CSRFProtection::tokenTag() ?> <input type="hidden" name="studip_ticket" value="<?= get_ticket() ?>"> - <table class="default"> + <table class="default" id="bb-config"> <thead> <tr> <th><?= _('Einstellung') ?></th> @@ -18,16 +18,28 @@ </tr> </thead> <tbody> - <? foreach ($options as $key => $option): ?> + <? foreach ($options as $key => $option): ?> + <? if ($option['type'] === 'textarea'): ?> + <tr> + <td colspan="2"> + <label for="option-<?= md5($key) ?>"> + <?= htmlReady($option['description']) ?> + </label><br> + + <textarea name="<?= htmlReady($option['key']) ?>" class="add_toolbar"><?= htmlReady($option['value']) ?></textarea> + </td> + </tr> + <? else: ?> <tr> <td> <label for="option-<?= md5($key) ?>"> - <?= htmlReady($option['description']) ?> + <?= htmlReady($option['description']) ?> + </label> </td> <td> <? if ($option['type'] === 'checkbox'): ?> - <input type="hidden" name="<?= $option['key'] ?>" value="0"> - <input type="checkbox" name="<?= $option['key'] ?>" + <input type="hidden" name="<?= htmlReady($option['key']) ?>" value="0"> + <input type="checkbox" name="<?= htmlReady($option['key']) ?>" id="option-<?= md5($key) ?>" value="1" <? if ((bool)$option['value']) echo 'checked'; ?> <? if ($option['activates']) printf('data-activates="#option-%s"', md5($option['activates'])); ?>> @@ -38,7 +50,8 @@ <? endif; ?> </td> </tr> - <? endforeach; ?> + <? endif; ?> + <? endforeach; ?> </tbody> <tfoot> <tr> diff --git a/views/category/list.php b/views/category/list.php index e5d159d53b064049c942fe73cda50eacf115063b..8ce7e784f0a6dee535886a1d6b2b418346b234cd 100644 --- a/views/category/list.php +++ b/views/category/list.php @@ -15,24 +15,4 @@ </ul> <? endif; ?> -<h3>Allgemeine Hinweise:</h3> -<ul> - <li> - Eine Anzeige hat zur Zeit eine Laufzeit von <b><?= $expire_days ?> Tagen</b>. - Nach Ablauf dieser Frist wird die Anzeige automatisch nicht mehr angezeigt. - </li> - <li>Sie k�nnen nur in Themen eine Anzeige erstellen, in denen Sie die n�tigen Rechte haben.</li> - <li>Mit der Suche werden sowohl Titel als auch Beschreibung aller Anzeigen durchsucht.</li> - <li> - Sie k�nnen Ihre eigenen Anzeigen jederzeit nachtr�glich <em>bearbeiten</em> - oder <em>l�schen</em>. Die Buttons befinden sich unter dem Text. - </li> - <li> - Bitte stellen Sie Ihre Anzeigen in die richtigen Kategorien ein. - Damit das Schwarze Brett �bersichtlich bleibt, <em>l�schen</em> Sie - bitte Ihre Anzeigen umgehend nach Abschluss/Verkauf. - </li> - <li><b>Bitte Artikel nur in <em>eine</em> Kategorie einstellen!</b></li> - <li><b>Bitte keine kommerziellen Angebote einstellen (dazu geh�ren auch solche Anzeigen die einen Link enthalten, der dem Einstellenden eine Provision verspricht). Sie werden gel�scht!</b></li> -</ul> -<br/> +<?= formatReady(Config::get()->BULLETIN_BOARD_RULES) ?>