-
Notifications
You must be signed in to change notification settings - Fork 0
/
SpecialVideoUpload.php
122 lines (105 loc) · 3.91 KB
/
SpecialVideoUpload.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
class SpecialVideoUpload extends SpecialPage {
function __construct() {
// Benutzer brauchen "edit"-Rechte in MediaWiki, um diese
// Spezialseite benutzen zu können.
parent::__construct('VideoUpload', 'edit');
}
function getGroupName() {
return 'media'; // Auflistung unter Spezial:Spezialseiten
}
function execute($par) {
$request = $this->getRequest();
$output = $this->getOutput();
if(!$this->userCanExecute( $this->getUser())) {
$this->displayRestrictionError();
return;
}
// Does not work??? $output->addModules('ext.RtvVideoUpload');
$output->addModuleStyles('ext.RtvVideoUpload');
$output->addModuleScripts('ext.RtvVideoUpload');
# diese Texte werden angezeigt, sobald der Benutzer eingeloggt
# die Spezialseite besucht:
# wir koennen hier auf alle moeglichen Objekte zugreifen.
$user = $this->getUser();
/* $username = $user->getName();
$userpage = $user->getUserPage();
$usermail = $user->getEmail(); */
$output->addHTML(<<<HTML
<div class="row">
<noscript>
<div class="alert alert-danger">
<h3>Diese Seite benötigt JavaScript – bitte aktivere es!</h3>
</div>
</noscript>
<div id="notSupported" class="alert alert-danger hide fade">
<h3>Browser wird nicht unterstützt</h3>
Dein Browser bietet nicht die notwendigen Funktionen, um diese Upload-Seite zu nutzen. Bitte probiere es mit Firefox oder Chrome.
</div>
<div class="alert alert-danger">Dies ist der Entwicklungsbranch der Uploadmaske, falls du nun ein Video hochladen möchtest, kontaktiere das IT-Team.</div>
<div class="col-sm-12">
<button type="button" class="btn btn-primary" aria-label="Add file" id="add-file-btn">
<span class="glyphicon glyphicon-file" aria-hidden="true"></span>
<span class="text">Datei auswählen</span>
</button>
<a href="https://riedberg.tv/wiki/Anleitung_Upload">
<button class="btn btn-info">
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
<span class="text">Anleitung</span>
</button>
</a>
<button type="button" class="btn btn-success pull-right" aria-label="Start upload" id="start-upload-btn">
<span class="glyphicon glyphicon-upload" aria-hidden="true"></span>
<span class="text">Upload starten</span>
</button>
<button type="button" class="btn btn-default pull-right hide" aria-label="Pause upload" id="pause-upload-btn" style="margin-right: 6px">
<span class="glyphicon glyphicon-pause" aria-hidden="true"></span>
<span class="text">Pausieren</span>
</button>
</div>
<div class="col-sm-12">
<div id="dropzone" class="dropzone text-center">
<h1 style="margin:0">Drag & Drop here</h1>
</div>
</div>
<div class="col-sm-12" style="min-height: 200px">
<div id="sharedAlertContainerFiles"></div>
<ul class="list-group" id="file-list"></ul>
</div>
</div>
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
HTML
);
# include upload.php
require_once('upload.php'); # defines Class RTVResumable
$resumable = new RTVResumable ($this);
$resumable->process();
$this->setHeaders();
}
/**
* Usage example:
* $this->createWikiPage("Bla", array(
* 'LENGTH' => 'serh sehr lagn',
* 'VIDEO_PATH' => 'usw',
* );
**/
function createWikiPage($newpage_title_str, $template_vars) {
$newpage_title = Title::newFromText($newpage_title_str);
$newpage = new WikiPage($newpage_title);
$user = $this->getUser();
$newtext = $this->getRawContent("RiedbergTV:Videoseitenvorlage");
foreach($template_vars as $key => $value) {
$newtext = str_replace("@$key@", $value, $newtext);
}
$ret = $newpage->doEdit($newtext, "Seite angelegt durch [[Spezial:VideoUpload]].", 0, false, $user);
return $newpage;
}
function getRawContent($title) {
$pageTitle = Title::newFromText($title);
$article = new Article($pageTitle);
return $article->fetchContent();
}
}