Attach badge images to skills - refs BT#9082

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent a667212d82
commit 97fb308583
  1. 1
      main/admin/index.php
  2. 68
      main/admin/openbadges/create.php
  3. 25
      main/admin/openbadges/index.php
  4. 29
      main/admin/openbadges/issuer.php
  5. 2
      main/inc/lib/skill.lib.php
  6. 109
      main/template/default/openbadges/create.tpl
  7. 32
      main/template/default/openbadges/index.tpl
  8. 42
      main/template/default/openbadges/issuer.tpl
  9. BIN
      main/upload/data/badges/ac267bb97ace374bfb53cc3cb71daa07bf4f0988.png

@ -293,6 +293,7 @@ if (api_is_platform_admin()) {
//$items[] = array('url'=>'skills_profile.php', 'label' => get_lang('SkillsProfile'));
$items[] = array('url'=>api_get_path(WEB_CODE_PATH).'social/skills_ranking.php', 'label' => get_lang('SkillsRanking'));
$items[] = array('url'=>'skills_gradebook.php', 'label' => get_lang('SkillsAndGradebooks'));
$items[] = array('url'=> api_get_path(WEB_CODE_PATH) . 'admin/openbadges/index.php', 'label' => get_lang('OpenBadges'));
$blocks['skills']['items'] = $items;
$blocks['skills']['extra'] = null;
$blocks['skills']['search_form'] = null;

@ -0,0 +1,68 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Show information about Mozilla OpenBadges
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
* @package chamilo.admin.openbadges
*/
$cidReset = true;
require_once '../../inc/global.inc.php';
require_once '../../inc/lib/fileUpload.lib.php';
$this_section = SECTION_PLATFORM_ADMIN;
$skillId = intval($_GET['id']);
$objSkill = new Skill();
$skill = $objSkill->get($skillId);
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if ($_FILES['image']['error'] == 0) {
$dirPermissions = api_get_permissions_for_new_directories();
$sysCodePath = api_get_path(SYS_CODE_PATH);
$fileDir = "upload/data/badges/";
$fileName = sha1($_POST['name']) . ".png";
if (!file_exists($sysCodePath . $fileDir)) {
mkdir($sysCodePath . $fileDir, $dirPermissions, true);
}
if ($_FILES['image']['error'] == 0) {
unlink($sysCodePath . $skill['info']);
$imageExtraField = new Image($_FILES['image']['tmp_name']);
$imageExtraField->send_image($sysCodePath . $fileDir . $fileName, -1, 'png');
}
}
$params = array(
'name' => $_POST['name'],
'description' => $_POST['description'],
'icon' => $fileDir . $fileName,
'criteria' => $_POST['criteria'],
'id' => $skillId
);
$objSkill->update($params);
}
$interbreadcrumb = array(
array(
'url' => api_get_path(WEB_CODE_PATH) . 'admin/index.php',
'name' => get_lang('Administration')
),
array(
'url' => api_get_path(WEB_CODE_PATH) . 'admin/openbadges/index.php',
'name' => get_lang('OpenBadges')
)
);
$tpl = new Template('CreateOpenBadge');
$tpl->assign('platformAdminEmail', get_setting('emailAdministrator'));
$tpl->assign('skill', $skill);
$contentTemplate = $tpl->get_template('openbadges/create.tpl');
$tpl->display($contentTemplate);

@ -0,0 +1,25 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Show information about Mozilla OpenBadges
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
* @package chamilo.admin.openbadges
*/
$cidReset = true;
require_once '../../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
$interbreadcrumb = array(
array(
'url' => api_get_path(WEB_CODE_PATH) . 'admin/index.php',
'name' => get_lang('Administration')
)
);
$tpl = new Template('OpenBadges');
$contentTemplate = $tpl->get_template('openbadges/index.tpl');
$tpl->display($contentTemplate);

@ -0,0 +1,29 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Show information about Mozilla OpenBadges
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
* @package chamilo.admin.openbadges
*/
$cidReset = true;
require_once '../../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
$interbreadcrumb = array(
array(
'url' => api_get_path(WEB_CODE_PATH) . 'admin/index.php',
'name' => get_lang('Administration')
),
array(
'url' => api_get_path(WEB_CODE_PATH) . 'admin/openbadges/index.php',
'name' => get_lang('OpenBadges')
)
);
$tpl = new Template('OpenBadges');
$contentTemplate = $tpl->get_template('openbadges/issuer.tpl');
$tpl->display($contentTemplate);

@ -376,7 +376,7 @@ class SkillRelUser extends Model
class Skill extends Model
{
public $columns = array('id', 'name', 'description', 'access_url_id', 'short_code');
public $columns = array('id', 'name', 'description', 'access_url_id', 'short_code', 'icon', 'criteria');
public $required = array('name');
/** Array of colours by depth, for the coffee wheel. Each depth has 4 col */

@ -0,0 +1,109 @@
{% extends "default/layout/main.tpl" %}
{% block body %}
<script>
(function () {
var designer = null;
$(document).on('ready', function () {
$('#btn-open-designer').on('click', function (e) {
e.preventDefault();
var designerUrl = 'https://www.openbadges.me/designer.html?origin={{ _p.web }}';
designerUrl = designerUrl + '&email={{ platformAdminEmail }}';
designerUrl = designerUrl + '&close=true';
designerUrl = designerUrl + '&hidePublish=true';
var windowOptions = 'width=1200,height=680,location=0,menubar=0,status=0,toolbar=0';
designer = window.open(designerUrl, '', windowOptions);
});
$('#image').on('change', function () {
var self = this;
if (self.files.length > 0) {
var image = self.files[0];
if (!image.type.match(/image.*/)) {
return;
}
var fileReader = new FileReader();
fileReader.onload = function (e) {
$('#badge-preview').attr('src', e.target.result);
$('#badge-container').removeClass('hide');
};
fileReader.readAsDataURL(image);
}
});
});
})();
</script>
<div class="span12">
<h1 class="page-header">{{ 'Badges' | get_lang }}</h1>
<ul class="nav nav-tabs">
<li>
<a href="{{ _p.web_main }}admin/openbadges/index.php">{{ 'Home' | get_lang }}</a>
</li>
<li>
<a href="{{ _p.web_main }}admin/openbadges/issuer.php">{{ 'IssuerInfo' | get_lang }}</a>
</li>
<li>
<a href="{{ _p.web_main }}admin/openbadges/list.php">{{ 'Skills' | get_lang }}</a>
</li>
<li class="active">
<a href="{{ _p.web_main }}admin/openbadges/create.php">{{ 'Edit' | get_lang }}</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active">
<div class="row">
<div class="span3">
<p>Design a new badge. Download from the design tool. And Upload in your platform.</p>
<p>
<button id="btn-open-designer" class="btn btn-info btn-large btn-block" type="button">{{ 'DesignNewBadge' | get_lang }}</button>
</p>
<hr>
<div class="well well-small {{ skill.icon ? '' : 'hide' }}" id="badge-container">
<img id="badge-preview" alt="{{ 'BadgePreview' | get_lang }}" src="{{ skill.icon ? [_p.web_main, skill.icon] | join('') : '' }}">
</div>
</div>
<div class="span9">
<form action="{{ _p.web_self_query_vars }}" class="form-horizontal" method="post" enctype="multipart/form-data">
<fieldset>
<legend>{{ 'SkillInfo' | get_lang }}</legend>
<div class="control-group">
<label class="control-label" for="name">{{ 'Name' | get_lang }}</label>
<div class="controls">
<input type="text" name="name" id="name" class="input-xxlarge" value="{{ skill.name }}">
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{{ 'Description' | get_lang }}</label>
<div class="controls">
<textarea name="description" id="description" class="input-xxlarge" rows="4">{{ skill.description }}</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="image">{{ 'Image' | get_lang }}</label>
<div class="controls">
<input type="file" name="image" id="image" class="input-xxlarge" accept="image/*">
</div>
</div>
<div class="control-group">
<label class="control-label" for="criteria">{{ 'Criteria' | get_lang }}</label>
<div class="controls">
<textarea name="criteria" id="criteria" class="input-xxlarge" rows="10">{{ skill.criteria }}</textarea>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary">{{ 'Create'| get_lang }}</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

@ -0,0 +1,32 @@
{% extends "default/layout/main.tpl" %}
{% block body %}
<div class="span12">
<h1 class="page-header">{{ 'Badges' | get_lang }}</h1>
<ul class="nav nav-tabs">
<li class="active">
<a href="{{ _p.web_main }}admin/openbadges/index.php">{{ 'Home' | get_lang }}</a>
</li>
<li>
<a href="{{ _p.web_main }}admin/openbadges/issuer.php">{{ 'IssuerInfo' | get_lang }}</a>
</li>
<li>
<a href="{{ _p.web_main }}admin/openbadges/list.php">{{ 'Skills' | get_lang }}</a>
</li>
<li>
<a href="{{ _p.web_main }}admin/openbadges/create.php">{{ 'Edit' | get_lang }}</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active">
<div class="hero-unit">
<h1>Introducing Open Badges</h1>
<p class="lead">A new online standard to recognize and verify learning</p>
<p class="lead">
<a href="http://openbadges.org/">http://openbadges.org/</a>
</p>
</div>
</div>
</div>
</div>
{% endblock %}

@ -0,0 +1,42 @@
{% extends "default/layout/main.tpl" %}
{% block body %}
<div class="span12">
<h1 class="page-header">{{ 'Badges' | get_lang }}</h1>
<ul class="nav nav-tabs">
<li>
<a href="{{ _p.web_main }}admin/openbadges/index.php">{{ 'Home' | get_lang }}</a>
</li>
<li class="active">
<a href="{{ _p.web_main }}admin/openbadges/issuer.php">{{ 'IssuerInfo' | get_lang }}</a>
</li>
<li>
<a href="{{ _p.web_main }}admin/openbadges/list.php">{{ 'Skills' | get_lang }}</a>
</li>
<li>
<a href="{{ _p.web_main }}admin/openbadges/create.php">{{ 'Edit' | get_lang }}</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active">
<form action="{{ _p.web_self }}" class="form-horizontal">
<fieldset>
<legend>{{ 'IssuerInfo' | get_lang }}</legend>
<div class="control-group">
<label class="control-label">{{ 'Name' | get_lang }}</label>
<div class="controls">
<span class="uneditable-input input-xxlarge">{{ _s.institution }}</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'URL' | get_lang }}</label>
<div class="controls">
<span class="uneditable-input input-xxlarge">{{ _p.web }}</span>
</div>
</div>
</fieldset>
</form>
</div>
</div>
</div>
{% endblock %}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Loading…
Cancel
Save