implement CRUD for Questgroups (issue #32)

This commit is contained in:
coderkun 2014-06-19 20:13:46 +02:00
commit da6c132216
12 changed files with 852 additions and 28 deletions

View file

@ -1,18 +1,77 @@
<?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>" />
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url']))?>" />
</div>
<?php endif ?>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><?=_('Questgroups')?></li>
</ul>
<h1><?=_('Create Questgroup')?></h1>
<form method="post">
<h1><?=_('Create Questgroup')?></h1>
<?php if($validation !== true) : ?>
<ul>
<?php foreach($validation as $field => &$settings) : ?>
<li>
<ul>
<?php foreach($settings as $setting => $value) : ?>
<li>
<?php switch($field) {
case 'moodpic':
switch($setting) {
case 'error': printf(_('Error during moodpic upload: %s'), $value);
break;
case 'mimetype': printf(_('Moodpic has wrong type “%s”'), $value);
break;
case 'size': echo _('Moodpic exceeds size maximum');
break;
default: echo _('Moodpic invalid');
}
break;
case 'title':
switch($setting) {
case 'minlength': printf(_('Title is too short (min. %d chars)'), $value);
break;
case 'maxlength': printf(_('Title is too long (max. %d chars)'), $value);
break;
case 'regex': echo _('Title contains illegal characters');
break;
case 'exist': echo _('Title already exists');
break;
default: echo _('Title invalid');
}
break;
} ?>
</li>
<?php endforeach ?>
</ul>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
<form method="post" class="logreg" enctype="multipart/form-data">
<fieldset>
<legend><?=_('Context')?></legend>
<?=_('Questgroupshierarchy')?>: <?=$questgroupshierarchy['title_singular']?><br />
<input type="hidden" name="questgroupshierarchy" value="<?=$questgroupshierarchy['url']?>" />
<?php if(!is_null($questgroup)) : ?>
<?=_('Questgroup')?>: <?=$questgroup['title']?>
<input type="hidden" name="questgroup" value="<?=$questgroup['url']?>" />
<?php endif ?>
</fieldset>
<fieldset>
<legend><?=_('Moodpic')?></legend>
<input type="file" name="moodpic" />
<p><?=_('Allowed file types')?>:</p>
<ul>
<?php foreach($mimetypes as &$mimetype) : ?>
<li><?=sprintf(_('%s-files'), strtoupper(explode('/',$mimetype['mimetype'])[1]))?> <?php if($mimetype['size'] > 0) : ?>(<?=_('max.')?> <?=round($mimetype['size']/(1024*1024),2)?>MiB)<?php endif ?></li>
<?php endforeach ?>
</ul>
</fieldset>
<fieldset>
<label for="title"><?=_('Title')?>:</label>
<input type="text" name="title" value="" placeholder="<?=_('Title')?>" /><br />
<input type="text" name="title" placeholder="<?=_('Title')?>" maxlength="<?=$validationSettings['title']['maxlength']?>" value="<?=$title?>" <?=(array_key_exists('title', $validation)) ? 'class="invalid"' : null?> /><br />
</fieldset>
<input type="submit" name="create" value="<?=_('create')?>" />
</form>

View file

@ -0,0 +1,19 @@
<?php if(!is_null($picture)) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminary',$seminary['url'],$picture['url']))?>" />
</div>
<?php endif ?>
<?=$questgroupshierarchypath?>
<?php if(!is_null($questgroup['hierarchy'])) : ?>
<h1><?=$questgroup['hierarchy']['title_singular']?> <?=$questgroup['hierarchy']['questgroup_pos']?>: <?=$questgroup['title']?></h1>
<?php else : ?>
<h1><?=$questgroup['title']?></h1>
<?php endif ?>
<h1><?=_('Delete Questgroup')?></h1>
<?=sprintf(_('Should the Questgroup “%s” really be deleted?'), $questgroup['title'])?>
<form method="post">
<input type="submit" name="delete" value="<?=_('delete')?>" />
<input type="submit" name="not-delete" value="<?=_('cancel')?>" />
</form>

View file

@ -0,0 +1,65 @@
<?php if(!is_null($picture)) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminary',$seminary['url'],$picture['url']))?>" />
</div>
<?php endif ?>
<?=$questgroupshierarchypath?>
<h1><?=_('Edit Questgroup')?></h1>
<?php if($validation !== true) : ?>
<ul>
<?php foreach($validation as $field => &$settings) : ?>
<li>
<ul>
<?php foreach($settings as $setting => $value) : ?>
<li>
<?php switch($field) {
case 'moodpic':
switch($setting) {
case 'error': printf(_('Error during moodpic upload: %s'), $value);
break;
case 'mimetype': printf(_('Moodpic has wrong type “%s”'), $value);
break;
case 'size': echo _('Moodpic exceeds size maximum');
break;
default: echo _('Moodpic invalid');
}
break;
case 'title':
switch($setting) {
case 'minlength': printf(_('Title is too short (min. %d chars)'), $value);
break;
case 'maxlength': printf(_('Title is too long (max. %d chars)'), $value);
break;
case 'regex': echo _('Title contains illegal characters');
break;
case 'exist': echo _('Title already exists');
break;
default: echo _('Title invalid');
}
break;
} ?>
</li>
<?php endforeach ?>
</ul>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
<form method="post" class="logreg" enctype="multipart/form-data">
<fieldset>
<legend><?=_('Moodpic')?></legend>
<input type="file" name="moodpic" />
<p><?=_('Allowed file types')?>:</p>
<ul>
<?php foreach($mimetypes as &$mimetype) : ?>
<li><?=sprintf(_('%s-files'), strtoupper(explode('/',$mimetype['mimetype'])[1]))?> <?php if($mimetype['size'] > 0) : ?>(<?=_('max.')?> <?=round($mimetype['size']/(1024*1024),2)?>MiB)<?php endif ?></li>
<?php endforeach ?>
</ul>
</fieldset>
<fieldset>
<label for="title"><?=_('Title')?>:</label>
<input type="text" name="title" placeholder="<?=_('Title')?>" maxlength="<?=$validationSettings['title']['maxlength']?>" value="<?=$title?>" <?=(array_key_exists('title', $validation)) ? 'class="invalid"' : null?> /><br />
</fieldset>
<input type="submit" name="edit" value="<?=_('edit')?>" />
</form>

View file

View file

View file

@ -10,6 +10,13 @@
<?php else : ?>
<h1><?=$questgroup['title']?></h1>
<?php endif ?>
<?php if(count(array_intersect(array('admin', 'moderator'), \hhu\z\controllers\SeminaryController::$character['characterroles'])) > 0) : ?>
<nav class="admin">
<li><a href="<?=$linker->link(array('edit',$seminary['url'],$questgroup['url']),1)?>"><?=_('Edit Questgroup')?></a></li>
<li><a href="<?=$linker->link(array('delete',$seminary['url'],$questgroup['url']),1)?>"><?=_('Delete Questgroup')?></a></li>
</nav>
<?php endif ?>
<?php if(count($texts) > 0): ?>
<div class="qtextbox">
<?php foreach($texts as &$text) : ?>
@ -31,22 +38,22 @@
</nav>
<?php endif ?>
<ul class="qg">
<?php foreach($hierarchy['questgroups'] as &$group) : ?>
<?php foreach($hierarchy['questgroups'] as $questgroupIndex => &$group) : ?>
<li class="cf">
<span class="qgicon">
<?php if($group['solved']) : ?>
<i class="fa fa-check-square-o"></i>
<?php else : ?>
<i class="fa fa-square-o"></i>
<?php endif ?>
<?php if($group['solved']) : ?>
<i class="fa fa-check-square-o"></i>
<?php else : ?>
<i class="fa fa-square-o"></i>
<?php endif ?>
</span>
<div class="qgtitle"><a href="<?=$linker->link(array('questgroups','questgroup',$seminary['url'],$group['url']))?>"><?=$group['title']?></a></div>
<div class="qgprogress cf">
<p class="xpinfo">Fortschritt:</p>
<div class="xpbar">
<span style="width:<?=round($group['character_xps']/$group['achievable_xps']*100)?>%"></span>
<span style="width:<?=($group['achievable_xps'] > 0) ? round($group['character_xps']/$group['achievable_xps']*100) : 0?>%"></span>
</div>
<p class="xpnumeric"><?=$group['character_xps']?> / <?=$group['achievable_xps']?> XP</p>
<p class="xpnumeric"><?=$group['character_xps']?> / <?=$group['achievable_xps']?> <?=_('XPs')?></p>
</div>
<?php foreach($group['relatedQuestgroups'] as &$relatedGroup) : ?>
<div class="qghidden">
@ -54,8 +61,29 @@
<p><a href="<?=$linker->link(array($seminary['url'],$relatedGroup['url']),2)?>"><i class="fa fa-star-o fa-fw"></i><?=$relatedGroup['title']?></a></p>
</div>
<?php endforeach ?>
<?php if(in_array('admin', \hhu\z\controllers\SeminaryController::$character['characterroles'])) : ?>
<div>
<?php if($questgroupIndex > 0) : ?><a href="<?=$linker->link(array('questgroups','moveup',$seminary['url'],$group['url']),0,true,array('referer'=>$questgroup['id']))?>">↑</a><?php endif ?>
<?php if($questgroupIndex < count($hierarchy['questgroups'])-1) : ?><a href="<?=$linker->link(array('questgroups','movedown',$seminary['url'],$group['url']),0,true,array('referer'=>$questgroup['id']))?>">↓</a><?php endif ?>
</div>
<?php endif ?>
</li>
<?php endforeach?>
<?php if(in_array('admin', \hhu\z\controllers\SeminaryController::$character['characterroles'])) : ?>
<li class="cf">
<span class="qgicon">
<i class="fa fa-square-o"></i>
</span>
<form method="post" action="<?=$linker->link(array('questgroups','create',$seminary['url']))?>" enctype="multipart/form-data">
<input type="hidden" name="questgroupshierarchy" value="<?=$hierarchy['url']?>" />
<input type="hidden" name="questgroup" value="<?=$questgroup['url']?>" />
<input type="file" name="moodpic" /><br />
<?=$hierarchy['title_singular']?> <?=count($hierarchy['questgroups'])+1?>:
<input type="text" name="title" value="" placeholder="<?=_('Title')?>" /><br />
<input type="submit" name="create" value="<?=_('Add new Questgroup')?>" />
</form>
</li>
<?php endif ?>
</ul>
<?php endif ?>
<?php endforeach ?>

View file

@ -28,11 +28,10 @@
<li><a href="<?=$linker->link(array('questgroupshierarchy','delete',$seminary['url'],$hierarchy['url']))?>"><?=_('Delete Questgrouphierarchy')?></a></li>
<?php if($hierarchyIndex > 0) : ?><li><a href="<?=$linker->link(array('questgroupshierarchy','moveup',$seminary['url'],$hierarchy['url']))?>">↑</a></li><?php endif ?>
<?php if($hierarchyIndex < count($questgroupshierarchy)-1) : ?><li><a href="<?=$linker->link(array('questgroupshierarchy','movedown',$seminary['url'],$hierarchy['url']))?>">↓</a></li><?php endif ?>
</div>
</nav>
<?php endif ?>
<ul class="questgroups cf">
<?php foreach($hierarchy['questgroups'] as &$group) : ?>
<?php foreach($hierarchy['questgroups'] as $questgroupIndex => &$group) : ?>
<li>
<?php if(!is_null($group['picture'])) : ?>
<img src="<?=$linker->link(array('media','seminary',$seminary['url'],$group['picture']['url']))?>">
@ -42,7 +41,7 @@
<a href="<?=$linker->link(array('questgroups','questgroup',$seminary['url'],$group['url']))?>"><?=$group['title']?></a></p>
<div class="cf">
<div class="xpbar">
<span style="width:<?=round($group['character_xps']*100/$group['achievable_xps'])?>%"></span>
<span style="width:<?=($group['achievable_xps'] > 0) ? round($group['character_xps']*100/$group['achievable_xps']) : 0?>%"></span>
</div>
<p class="xpnumeric"><?=$group['character_xps']?> / <?=$group['achievable_xps']?> XP</p>
</div>
@ -50,17 +49,36 @@
<p><?=$group['text']?></p>
<?php endif ?>
<a href="<?=$linker->link(array('questgroups','questgroup',$seminary['url'],$group['url']))?>" class="cta orange"><?=_('Lets go')?></a>
<?php if(in_array('admin', \hhu\z\controllers\SeminaryController::$character['characterroles'])) : ?>
<div>
<?php if($questgroupIndex > 0) : ?><a href="<?=$linker->link(array('questgroups','moveup',$seminary['url'],$group['url']))?>">↑</a><?php endif ?>
<?php if($questgroupIndex < count($hierarchy['questgroups'])-1) : ?><a href="<?=$linker->link(array('questgroups','movedown',$seminary['url'],$group['url']))?>">↓</a><?php endif ?>
</div>
<?php endif ?>
</section>
</li>
<?php endforeach?>
<?php if(in_array('admin', \hhu\z\controllers\SeminaryController::$character['characterroles'])) : ?>
<li>
<section>
<form method="post" action="<?=$linker->link(array('questgroups','create',$seminary['url']))?>" enctype="multipart/form-data">
<input type="hidden" name="questgroupshierarchy" value="<?=$hierarchy['url']?>" />
<input type="file" name="moodpic" />
<?=$hierarchy['title_singular']?> <?=count($hierarchy['questgroups'])+1?>:
<input type="text" name="title" value="" placeholder="<?=_('Title')?>" />
<input type="submit" name="create" value="<?=_('Add new Questgroup')?>" />
</form>
</section>
</li>
<?php endif ?>
</ul>
<?php endforeach ?>
<?php if(in_array('admin', \hhu\z\controllers\SeminaryController::$character['characterroles'])) : ?>
<form method="post" action="<?=$linker->link(array('questgroupshierarchy','create',$seminary['url']))?>">
<h2><?=_('New Questgroupshierarchy')?></h2>
<?=_('Title (singular)')?>: <input type="text" name="title_singular" placeholder="<?=_('Title (singular)')?>" /></h2>
<?=_('Title (plural)')?>: <input type="text" name="title_plural" placeholder="<?=_('Title (plural)')?>" /></h2>
<?=_('Title (singular)')?>: <input type="text" name="title_singular" placeholder="<?=_('Title (singular)')?>" />
<?=_('Title (plural)')?>: <input type="text" name="title_plural" placeholder="<?=_('Title (plural)')?>" />
<input type="submit" name="create" value="<?=_('Add new Questgroupshierarchy')?>" />
</form>
<?php endif ?>