*** empty log message ***
This commit is contained in:
parent
d779f03e8b
commit
2cb50db5e7
|
@ -81,6 +81,6 @@ function S_tra($param)
|
|||
{
|
||||
global $uiBrowser;
|
||||
|
||||
echo $uiBrowser->tra($param[0], $param[1], $param[2], $param[3], $param[4], $param[5], $param[6], $param[7], $param[8], $param[9]);
|
||||
echo tra($param[0], $param[1], $param[2], $param[3], $param[4], $param[5], $param[6], $param[7], $param[8], $param[9]);
|
||||
}
|
||||
?>
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
|
||||
Author : $Author: sebastian $
|
||||
Version : $Revision: 1.9 $
|
||||
Version : $Revision: 1.10 $
|
||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/htmlUI/var/Attic/conf.php,v $
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
|
@ -124,5 +124,8 @@ define('UI_SEARCH_MAX_ROWS', 8);
|
|||
define('UI_SEARCH_MIN_ROWS', 2);
|
||||
define('UI_REGEX_URL', '/^(ht|f)tps?:\/\/[^ ]+$/');
|
||||
define('UI_SCRATCHPAD_KEY', 'djBagContents');
|
||||
define('UI_SCRATCHPAD_MAXLENGTH_KEY', 'djBagMaxlength');
|
||||
#define('UI_SCRATCHPAD_REGEX', '/^[0-9a-f]{16}:[0-9]{4}-[0-9]{2}-[0-9]{2}$/');
|
||||
define('UI_SCRATCHPAD_SESSNAME', 'SP');
|
||||
define('UI_STATIONINFO_SESSNAME', 'SInfo');
|
||||
?>
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
/*
|
||||
* Smarty plugin
|
||||
* -------------------------------------------------------------
|
||||
* File: postfilter.localizer.php
|
||||
* Type: postfilter
|
||||
* Name: localizer
|
||||
* Version: 1.0
|
||||
* Date: Feb, 2005
|
||||
* Purpose: Replace string to translate with translations
|
||||
* Install: Drop into the plugin directory, call
|
||||
* $smarty->load_filter('post','localizer');
|
||||
* from application.
|
||||
* Author: Media Development Loan Fund
|
||||
* -------------------------------------------------------------
|
||||
*/
|
||||
function smarty_outputfiler_localizer_tra($matches)
|
||||
{
|
||||
foreach ($matches as $match) {
|
||||
$key = substr($match, 2, strpos(substr($match, 2), '#'));
|
||||
}
|
||||
}
|
||||
|
||||
function smarty_outputfilter_localizer($compiled, &$smarty)
|
||||
{
|
||||
$pattern = '/##.*##/U';
|
||||
return preg_replace_callback($pattern, 'smarty_outputfiler_localizer_tra', $compiled);
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,72 @@
|
|||
{*Smarty template*}
|
||||
|
||||
<div id="scratchpad">
|
||||
<center><b>ScratchPad</b></center>
|
||||
|
||||
{if is_array($ScratchPad)}
|
||||
<form name="SP">
|
||||
<input type="hidden" name="act">
|
||||
<table>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SP.reOrder&by=title', 'order');">{tra 0=Title}</a></th>
|
||||
<th><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SP.reOrder&by=duration', 'order');">{tra 0=Duration}</a></th>
|
||||
<th><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SP.reOrder&by=type', 'order');">{tra 0=Type}</a></th>
|
||||
<th>Remove</th>
|
||||
</tr>
|
||||
|
||||
{foreach from=$ScratchPad item=i}
|
||||
<tr>
|
||||
<td><input type="checkbox" name="{$i.id}"></td>
|
||||
<td>{$i.title}</td>
|
||||
<td>{$i.duration}</td>
|
||||
<td>{$i.type} </td>
|
||||
<th><a href="#" onclick="hpopup('{$UI_HANDLER}?act=SP.removeItem&SPid={$i.id}', 'SP')">X</th>
|
||||
</tr>
|
||||
{/foreach}
|
||||
<tr>
|
||||
<td><input type="checkbox" name="all" onClick="SP_switchAll()"></td>
|
||||
<td colspan="2"><a href="#" onClick="SP_submit()">[Remove Selected]</a></td>
|
||||
<td colspan="2"><a href="#" onClick="SP_clearAll()">[Clear]</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
function SP_submit()
|
||||
{
|
||||
var href = '{/literal}{$UI_HANDLER}?act=SP.removeItem{literal}';
|
||||
var n;
|
||||
|
||||
for (n=0; n < (document.forms['SP'].elements.length-1); n++) {
|
||||
if (document.forms['SP'].elements[n].checked) {
|
||||
href = href + '&SPid[]=' + document.forms['SP'].elements[n].name;
|
||||
}
|
||||
}
|
||||
hpopup(href, 'SP');
|
||||
}
|
||||
|
||||
function SP_switchAll()
|
||||
{
|
||||
var n;
|
||||
|
||||
for (n=0; n < document.forms['SP'].elements.length; n++) {
|
||||
if (document.forms['SP'].elements[n].type == 'checkbox') {
|
||||
document.forms['SP'].elements[n].checked = document.forms['SP'].elements['all'].checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function SP_clearAll()
|
||||
{
|
||||
if (confirm("{/literal}{tra 0='Are you sure to clear ScratchPad?'}{literal}")) {
|
||||
document.forms['SP'].elements['all'].checked = true;
|
||||
SP_switchAll();
|
||||
SP_submit();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{/literal}
|
42
livesupport/modules/htmlUI/var/html/templates/metadataform.tpl → livesupport/modules/htmlUI/var/html/templates/editMetaData.tpl
Normal file → Executable file
42
livesupport/modules/htmlUI/var/html/templates/metadataform.tpl → livesupport/modules/htmlUI/var/html/templates/editMetaData.tpl
Normal file → Executable file
|
@ -7,11 +7,11 @@
|
|||
</style>
|
||||
{/literal}
|
||||
|
||||
<div id="mdataform">
|
||||
<div id="metadataform">
|
||||
<center>
|
||||
{$mDataForm.tabs}
|
||||
{$mDataForm.langswitch}
|
||||
{foreach from=$mDataForm.pages key=key item=dynform}
|
||||
{$editMetaData.tabs}
|
||||
{$editMetaData.langswitch}
|
||||
{foreach from=$editMetaData.pages key=key item=dynform}
|
||||
{include file="form_parts/dynForm_plain.tpl"}
|
||||
{/foreach}
|
||||
</center>
|
||||
|
@ -19,35 +19,29 @@
|
|||
|
||||
<script language="javascript">
|
||||
{literal}
|
||||
function collectAll()
|
||||
{
|
||||
alert('collecting data...');
|
||||
return true;
|
||||
}
|
||||
|
||||
function switchMDataLang()
|
||||
{
|
||||
if (validate_metadata(document.forms['metadata'])) {
|
||||
document.forms['metadata'].elements['langid'].value = document.forms['langswitch'].elements['langid'].value;
|
||||
document.forms['metadata'].submit();
|
||||
if (validate_editMetaData(document.forms['editMetaData'])) {
|
||||
document.forms['editMetaData'].elements['langid'].value = document.forms['langswitch'].elements['langid'].value;
|
||||
document.forms['editMetaData'].submit();
|
||||
}
|
||||
document.forms['langswitch'].elements['langid'].value = document.forms['metadata'].elements['langid'].value
|
||||
document.forms['langswitch'].elements['langid'].value = document.forms['editMetaData'].elements['langid'].value
|
||||
showMain();
|
||||
return false;
|
||||
}
|
||||
|
||||
function spread(element, name)
|
||||
{
|
||||
if (document.forms['metadata'].elements['Main__' + name]) document.forms['metadata'].elements['Main__' + name].value = element.value;
|
||||
if (document.forms['metadata'].elements['Music_Basic__' + name]) document.forms['metadata'].elements['Music_Basic__' + name].value = element.value;
|
||||
if (document.forms['metadata'].elements['Music_Advanced__' + name]) document.forms['metadata'].elements['Music_Advanced__' + name].value = element.value;
|
||||
if (document.forms['metadata'].elements['Talk_Basic__' + name]) document.forms['metadata'].elements['Talk_Basic__' + name].value = element.value;
|
||||
if (document.forms['metadata'].elements['Talk_Advanced__' + name]) document.forms['metadata'].elements['Talk_Advanced__' + name].value = element.value;
|
||||
if (document.forms['editMetaData'].elements['Main__' + name]) document.forms['editMetaData'].elements['Main__' + name].value = element.value;
|
||||
if (document.forms['editMetaData'].elements['Music_Basic__' + name]) document.forms['editMetaData'].elements['Music_Basic__' + name].value = element.value;
|
||||
if (document.forms['editMetaData'].elements['Music_Advanced__' + name]) document.forms['editMetaData'].elements['Music_Advanced__' + name].value = element.value;
|
||||
if (document.forms['editMetaData'].elements['Talk_Basic__' + name]) document.forms['editMetaData'].elements['Talk_Basic__' + name].value = element.value;
|
||||
if (document.forms['editMetaData'].elements['Talk_Advanced__' + name]) document.forms['editMetaData'].elements['Talk_Advanced__' + name].value = element.value;
|
||||
}
|
||||
|
||||
function showMain()
|
||||
{
|
||||
document.getElementById('mdataform').style.height=400;
|
||||
document.getElementById('metadataform').style.height=400;
|
||||
document.getElementById('masterpanel').style.height=600;
|
||||
document.getElementById('div_Main').style.visibility='';
|
||||
document.getElementById('div_Main').style.height='';
|
||||
|
@ -62,7 +56,7 @@ function showMain()
|
|||
}
|
||||
function showMusic_Basic()
|
||||
{
|
||||
document.getElementById('mdataform').style.height=600;
|
||||
document.getElementById('metadataform').style.height=600;
|
||||
document.getElementById('masterpanel').style.height=800;
|
||||
document.getElementById('div_Main').style.visibility='hidden';
|
||||
document.getElementById('div_Main').style.height='0';
|
||||
|
@ -77,7 +71,7 @@ function showMusic_Basic()
|
|||
}
|
||||
function showMusic_Advanced()
|
||||
{
|
||||
document.getElementById('mdataform').style.height=1300;
|
||||
document.getElementById('metadataform').style.height=1300;
|
||||
document.getElementById('masterpanel').style.height=1500;
|
||||
document.getElementById('div_Main').style.visibility='hidden';
|
||||
document.getElementById('div_Main').style.height='0';
|
||||
|
@ -92,7 +86,7 @@ function showMusic_Advanced()
|
|||
}
|
||||
function showTalk_Basic()
|
||||
{
|
||||
document.getElementById('mdataform').style.height=400;
|
||||
document.getElementById('metadataform').style.height=400;
|
||||
document.getElementById('masterpanel').style.height=600;
|
||||
document.getElementById('div_Main').style.visibility='hidden';
|
||||
document.getElementById('div_Main').style.height='0';
|
||||
|
@ -107,7 +101,7 @@ function showTalk_Basic()
|
|||
}
|
||||
function showTalk_Advanced()
|
||||
{
|
||||
document.getElementById('mdataform').style.height=400;
|
||||
document.getElementById('metadataform').style.height=400;
|
||||
document.getElementById('masterpanel').style.height=600;
|
||||
document.getElementById('div_Main').style.visibility='hidden';
|
||||
document.getElementById('div_Main').style.height='0';
|
|
@ -4,8 +4,8 @@
|
|||
{if $fMetaData}
|
||||
<textarea rows="25" cols="90" style="font-size:small">{htmlspecialchars str=$fMetaData}</textarea>
|
||||
{/if}
|
||||
{if $fInfo}
|
||||
{$fInfo}
|
||||
{if $_analyzeFile}
|
||||
{$_analyzeFile}
|
||||
{/if}
|
||||
</center>
|
||||
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
{include file="menu_top.tpl"}
|
||||
{/if}
|
||||
|
||||
{if $showSP}
|
||||
{include file="scratchpad.tpl"}
|
||||
{if $ScratchPad}
|
||||
{include file="ScratchPad.tpl"}
|
||||
{/if}
|
||||
|
||||
{if $showPath}
|
||||
|
@ -23,13 +23,10 @@
|
|||
{include file="objects.tpl"}
|
||||
{/if}
|
||||
|
||||
{if $showPermissions}
|
||||
{if $permissions}
|
||||
{include file="permissions.tpl"}
|
||||
{/if}
|
||||
|
||||
{if $showNewFileForm}
|
||||
{include file="newfileform.tpl"}
|
||||
{/if}
|
||||
|
||||
{if ($showSearchForm || $showSearchRes)}
|
||||
{include file="search.tpl"}
|
||||
|
@ -43,15 +40,15 @@
|
|||
{include file="filedata.tpl"}
|
||||
{/if}
|
||||
|
||||
{if $showMetaDataForm}
|
||||
{include file="metadataform.tpl"}
|
||||
{if $editMetaData}
|
||||
{include file="editMetaData.tpl"}
|
||||
{/if}
|
||||
|
||||
{if $showSystemPrefs}
|
||||
{if $systemPrefs}
|
||||
{include file="systemPrefs.tpl"}
|
||||
{/if}
|
||||
|
||||
{if $showUploadForm}
|
||||
{if $uploadform}
|
||||
{include file="uploadform.tpl"}
|
||||
{/if}
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
<div id="menu_top">
|
||||
<a href="{$UI_BROWSER}" class="button">[Home directory]</a>
|
||||
<a href="{$UI_BROWSER}?id={$GLOBALS.id}&act=newfile" class="button">[UploadM]</a>
|
||||
<a href="{$UI_BROWSER}?id={$GLOBALS.id}&act=uploadFileM" class="button">[UploadM]</a>
|
||||
<a href="{$UI_BROWSER}?id={$GLOBALS.id}&act=uploadFile" class="button">[Upload]</a>
|
||||
<a href="{$UI_BROWSER}?id={$GLOBALS.id}&act=addWebstream" class="button">[Stream]</a>
|
||||
<a href="javascript:newFolder()" class="button">[Create new folder]</a>
|
||||
<a href="{$UI_BROWSER}?id={$GLOBALS.id}&act=search" class="button">[Search]</a>
|
||||
<a href="{$UI_BROWSER}?id={$GLOBALS.id}&act=subjects" class="button">{tra 0='[Subjects]'}</a>
|
||||
<!-- <br>
|
||||
<a href="{$UI_BROWSER}?act=MetaDataValues&Main=1" class="button">[Metadata]</a> -->
|
||||
<a href="{$UI_BROWSER}?act=systemPrefs" class="button">[SystemPrefs]</a>
|
||||
<a href="{$UI_BROWSER}?act=editSystemPrefs" class="button">[SystemPrefs]</a>
|
||||
</div>
|
|
@ -1,7 +0,0 @@
|
|||
{*Smarty template*}
|
||||
|
||||
<div id="newfileform">
|
||||
<center>
|
||||
{$newfileform}
|
||||
</center>
|
||||
</div>
|
|
@ -41,10 +41,10 @@
|
|||
{if $o.type != 'Folder'}
|
||||
<a href="{$UI_BROWSER}?act=getFile&id={$o.id}">[Access]</a>
|
||||
<a href="{$UI_BROWSER}?act=getMData&id={$o.id}">[vMData]</a>
|
||||
<a href="{$UI_BROWSER}?act=getInfo&id={$o.id}">[Analyze]</a>
|
||||
<a href="{$UI_BROWSER}?act=_analyzeFile&id={$o.id}">[Analyze]</a>
|
||||
<a href="{$UI_BROWSER}?act=editFile&id={$o.id}">[Edit]</a>
|
||||
<a href="{$UI_BROWSER}?act=editMetaDataValues&id={$o.id}">[eMData]</a>
|
||||
<a href="#" onclick="hpopup('{$UI_HANDLER}?act=add2SP&id={$o.id}', '2SP')">[SP]</a>
|
||||
<a href="{$UI_BROWSER}?act=editMetaData&id={$o.id}">[eMData]</a>
|
||||
<a href="#" onclick="hpopup('{$UI_HANDLER}?act=SP.addItem&SPid={$o.id}', '2SP')">[SP]</a>
|
||||
{/if}
|
||||
|
||||
</td>
|
||||
|
|
|
@ -1,20 +1,18 @@
|
|||
{*Smarty template*}
|
||||
|
||||
{include file="header.tpl"}
|
||||
{$loginform.javascript}
|
||||
{$login.javascript}
|
||||
|
||||
<center>
|
||||
<div id="login">
|
||||
<form {$loginform.attributes}>
|
||||
{$loginform.hidden}
|
||||
<form {$login.attributes}>
|
||||
{$login.hidden}
|
||||
<table>
|
||||
<tr><td align="right">{$loginform.login.label}</td><td>{$loginform.login.html}</td></tr>
|
||||
<tr><td align="right">{$loginform.pass.label}</td><td>{$loginform.pass.html}</td></tr>
|
||||
<tr><td align="right">{$loginform.langid.label}</td><td>{$loginform.langid.html}</td></tr>
|
||||
<tr><td>{$loginform.requirednote}</td><td>{$loginform.Submit.html} {$loginform.cancel.html}</td></tr>
|
||||
<tr><td align="right">{$login.login.label}</td><td>{$login.login.html}</td></tr>
|
||||
<tr><td align="right">{$login.pass.label}</td><td>{$login.pass.html}</td></tr>
|
||||
<tr><td align="right">{$login.langid.label}</td><td>{$login.langid.html}</td></tr>
|
||||
<tr><td>{$login.requirednote}</td><td>{$login.Submit.html} {$login.cancel.html}</td></tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</center>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
|
||||
function hpopup(url, name) //hidden popup!
|
||||
{
|
||||
popupwin = window.open(url, name, 'width=1, height=1, scrollbars=no, menubar=no, depend=yes');
|
||||
window.parent.focus();
|
||||
popupwin = window.open(url, name);
|
||||
//window.parent.focus();
|
||||
}
|
||||
{/literal}
|
||||
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
</div>
|
||||
|
||||
<div class="statusbaritem">
|
||||
<img src="{$statusbar.stationLogoPath}" width="30" height="50">
|
||||
<img src="{$systemPrefs.stationLogoPath}" width="30" height="50">
|
||||
</div>
|
||||
|
||||
<div class="statusbaritem">
|
||||
{$statusbar.stationName}
|
||||
{$systemPrefs.stationName}
|
||||
<br>
|
||||
{$statusbar.frequency}
|
||||
{$systemPrefs.frequency}
|
||||
</div>
|
||||
|
||||
<div class="statusbaritem">
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#newfileform {
|
||||
#uploadform {
|
||||
width: 800px;
|
||||
border-style : dotted;
|
||||
padding : 5px;
|
||||
|
@ -102,7 +102,7 @@
|
|||
}
|
||||
|
||||
#searchres {
|
||||
width: 800px;
|
||||
width: 800px;
|
||||
border-style : dotted;
|
||||
padding : 5px;
|
||||
margin-top: 10px;
|
||||
|
@ -125,7 +125,7 @@
|
|||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#mdataform {;
|
||||
#metadataform {;
|
||||
width: 800px;
|
||||
border-style : dotted;
|
||||
padding : 5px;
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{* Smarty template *}
|
||||
<div id="subjects">
|
||||
|
||||
{if $changePassForm}
|
||||
{$changePassForm}
|
||||
{if $chgPasswd}
|
||||
{$chgPasswd}
|
||||
{/if}
|
||||
|
||||
{if $groups}
|
||||
{if $groupMembers}
|
||||
<table id="tree" border="0" cellpadding="5">
|
||||
<tr><th colspan="5">Subjects in group {$groups.gname}</th></tr>
|
||||
<tr><th colspan="5">Subjects in group {$groupMembers.gname}</th></tr>
|
||||
|
||||
{if (is_array($groups.rows) && count($groups.rows)>0)}
|
||||
{foreach from=$groups.rows item=row}
|
||||
{if (is_array($groupMembers.rows) && count($groupMembers.rows)>0)}
|
||||
{foreach from=$groupMembers.rows item=row}
|
||||
<tr bgcolor="{cycle values='#eeeeee, #dadada"'}">
|
||||
<td>{$row.id}</td>
|
||||
<td class="b">
|
||||
|
@ -22,7 +22,7 @@
|
|||
</td
|
||||
<td>{if ($row.type=='G')}(G){else}(U){/if}</td>
|
||||
<td>
|
||||
<a href="{$UI_HANDLER}?act=removeSubjFromGr&login={urlencode str=$row.login}&gname={urlencode str=$groups.gname}&reid={$groups.id}">
|
||||
<a href="{$UI_HANDLER}?act=removeGroupMember&login={urlencode str=$row.login}&gname={urlencode str=$groupMembers.gname}&reid={$groupMembers.id}">
|
||||
[remove from Group]
|
||||
</a>
|
||||
</td>
|
||||
|
@ -34,7 +34,7 @@
|
|||
|
||||
</table>
|
||||
<br>
|
||||
{$addSubj2GroupForm}
|
||||
{$addGroupMember}
|
||||
{/if}
|
||||
|
||||
{if $subjects}
|
||||
|
@ -48,7 +48,7 @@
|
|||
<td>{$c.id}</td>
|
||||
<td class="b">
|
||||
{if ($c.type eq 'G')}
|
||||
<a href="{$UI_BROWSER}?act=groups&id={$c.id}">{$c.login}</a>
|
||||
<a href="{$UI_BROWSER}?act=groupMembers&id={$c.id}">{$c.login}</a>
|
||||
{else}
|
||||
{$c.login}
|
||||
{/if}
|
||||
|
@ -63,7 +63,7 @@
|
|||
<td>
|
||||
<a class="lnkbutt" href="{$UI_HANDLER}?act=removeSubj&login={urlencode str=$c.login}">[remove]</a>
|
||||
{if ($c.type != 'G')}
|
||||
<a class="lnkbutt" href="{$UI_BROWSER}?act=passwd&uid={urlencode str=$c.id}">[change Password]</a>
|
||||
<a class="lnkbutt" href="{$UI_BROWSER}?act=chgPasswd&uid={urlencode str=$c.id}">[change Password]</a>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{*Smarty template*}
|
||||
|
||||
<div id="newfileform">
|
||||
<center>
|
||||
{$uploadform}
|
||||
</center>
|
||||
<div id="uploadform">
|
||||
<center>
|
||||
{$uploadform}
|
||||
</center>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ if (is_array($_REQUEST['popup'])){
|
|||
break;
|
||||
|
||||
case "login":
|
||||
$Smarty->assign('loginform', $uiBrowser->loginform($Smarty, $ui_fmask));
|
||||
$Smarty->assign('login', $uiBrowser->login($Smarty, $ui_fmask));
|
||||
$Smarty->display('popup/login.tpl');
|
||||
break;
|
||||
|
||||
|
@ -36,12 +36,12 @@ if (is_array($_REQUEST['popup'])){
|
|||
die();
|
||||
};
|
||||
|
||||
$Smarty->assign('statusbar', $uiBrowser->getStationInfo($ui_fmask['systemPrefs']));
|
||||
$uiBrowser->loadSystemPrefs($ui_fmask['systemPrefs']);
|
||||
$Smarty->assign('systemPrefs', $uiBrowser->systemPrefs); #print_r($uiBrowser->systemPrefs);
|
||||
|
||||
if ($uiBrowser->userid) {
|
||||
$Smarty->assign('showMenuTop', TRUE);
|
||||
$Smarty->assign('sp', $uiBrowser->getSP());
|
||||
$Smarty->assign('showSP', TRUE);
|
||||
$Smarty->assign('ScratchPad', $uiBrowser->SP->get());
|
||||
|
||||
switch ($_REQUEST['act']){
|
||||
default:
|
||||
|
@ -61,26 +61,32 @@ if ($uiBrowser->userid) {
|
|||
$Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id));
|
||||
$Smarty->assign('showPath', TRUE);
|
||||
|
||||
$Smarty->assign('perms', $uiBrowser->getPermissions($uiBrowser->id));
|
||||
$Smarty->assign('showPermissions', TRUE);
|
||||
$Smarty->assign('perms', $uiBrowser->permissions($uiBrowser->id));
|
||||
$Smarty->assign('permissions', TRUE);
|
||||
break;
|
||||
|
||||
|
||||
case "newfile":
|
||||
case "uploadFileM":
|
||||
$Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id));
|
||||
$Smarty->assign('showPath', TRUE);
|
||||
|
||||
$Smarty->assign('newfileform', $uiBrowser->getNewFileForm($uiBrowser->id, $ui_fmask['upload']));
|
||||
$Smarty->assign('showNewFileForm', TRUE);
|
||||
$Smarty->assign('uploadform', $uiBrowser->uploadFileM($uiBrowser->id, $ui_fmask['uploadFileM']));
|
||||
break;
|
||||
|
||||
|
||||
case "uploadFile":
|
||||
$Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id));
|
||||
$Smarty->assign('showPath', FALSE);
|
||||
$Smarty->assign('showPath', TRUE);
|
||||
|
||||
$Smarty->assign('uploadform', $uiBrowser->getUploadFileForm($uiBrowser->id, $ui_fmask['uploadFile']));
|
||||
$Smarty->assign('showUploadForm', TRUE);
|
||||
$Smarty->assign('uploadform', $uiBrowser->uploadFile($uiBrowser->id, $ui_fmask['uploadFile']));
|
||||
break;
|
||||
|
||||
|
||||
case "addWebstream":
|
||||
$Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id));
|
||||
$Smarty->assign('showPath', TRUE);
|
||||
|
||||
$Smarty->assign('uploadform', $uiBrowser->addWebstream($uiBrowser->id, $ui_fmask['addWebstream']));
|
||||
break;
|
||||
|
||||
|
||||
|
@ -88,8 +94,7 @@ if ($uiBrowser->userid) {
|
|||
$Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id));
|
||||
$Smarty->assign('showPath', FALSE);
|
||||
|
||||
$Smarty->assign('uploadform', $uiBrowser->getUploadFileForm($uiBrowser->id, $ui_fmask['upload_1']));
|
||||
$Smarty->assign('showUploadForm', TRUE);
|
||||
$Smarty->assign('uploadform', $uiBrowser->uploadFile($uiBrowser->id, $ui_fmask['uploadFile']));
|
||||
break;
|
||||
|
||||
|
||||
|
@ -116,14 +121,14 @@ if ($uiBrowser->userid) {
|
|||
$Smarty->assign('showSubjects', TRUE);
|
||||
break;
|
||||
|
||||
case "passwd":
|
||||
$Smarty->assign('changePassForm', $uiBrowser->getChangePasswdForm($_REQUEST['uid'], $ui_fmask['chgPasswd']));
|
||||
case "chgPasswd":
|
||||
$Smarty->assign('chgPasswd', $uiBrowser->chgPasswd($_REQUEST['uid'], $ui_fmask['chgPasswd']));
|
||||
$Smarty->assign('showSubjects', TRUE);
|
||||
break;
|
||||
|
||||
case "groups":
|
||||
$Smarty->assign('groups', $uiBrowser->getGroups($uiBrowser->id));
|
||||
$Smarty->assign('addSubj2GroupForm', $uiBrowser->getSubj2GroupForm($uiBrowser->id));
|
||||
case "groupMembers":
|
||||
$Smarty->assign('groupMembers', $uiBrowser->groupMembers($uiBrowser->id));
|
||||
$Smarty->assign('addGroupMember', $uiBrowser->addGroupMember($uiBrowser->id));
|
||||
$Smarty->assign('showSubjects', TRUE);
|
||||
break;
|
||||
|
||||
|
@ -137,19 +142,18 @@ if ($uiBrowser->userid) {
|
|||
$Smarty->assign('showFile', TRUE);
|
||||
break;
|
||||
|
||||
case "editMetaDataValues":
|
||||
$Smarty->assign('mDataForm', $uiBrowser->getMetaDataForm($uiBrowser->id, $ui_fmask['mData'], TRUE));
|
||||
$Smarty->assign('showMetaDataForm', TRUE);
|
||||
case "editMetaData":
|
||||
$Smarty->assign('editMetaData', $uiBrowser->editMetaData($uiBrowser->id, $ui_fmask['editMetaData'], TRUE));
|
||||
break;
|
||||
|
||||
case "getInfo":
|
||||
$Smarty->assign('fInfo', $uiBrowser->_getInfo($uiBrowser->id, 'text'));
|
||||
case "_analyzeFile":
|
||||
$Smarty->assign('_analyzeFile', $uiBrowser->_analyzeFile($uiBrowser->id, 'text'));
|
||||
$Smarty->assign('showFile', TRUE);
|
||||
break;
|
||||
|
||||
case "systemPrefs":
|
||||
$Smarty->assign('dynform', $uiBrowser->systemPrefs($ui_fmask['systemPrefs']));
|
||||
$Smarty->assign('showSystemPrefs', TRUE);
|
||||
case "editSystemPrefs":
|
||||
$Smarty->assign('dynform', $uiBrowser->systemPrefsForm($ui_fmask['systemPrefs']));
|
||||
$Smarty->assign('editSystemPrefs', TRUE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,23 +4,32 @@ require dirname(__FILE__).'/../ui_handler_init.php';
|
|||
switch($_REQUEST['act']){
|
||||
|
||||
case "login":
|
||||
$uiHandler->login($_REQUEST, $ui_fmask["loginform"]);
|
||||
$uiHandler->login($_REQUEST, $ui_fmask["login"]);
|
||||
break;
|
||||
|
||||
case "logout":
|
||||
$uiHandler->SP->save();
|
||||
$uiHandler->logout();
|
||||
break;
|
||||
|
||||
case "signover":
|
||||
$uiHandler->SP->save();
|
||||
$uiHandler->logout(TRUE);
|
||||
break;
|
||||
|
||||
case "upload": ## media- and metadata file together #####
|
||||
$uiHandler->upload(array_merge($_REQUEST, $_FILES), $uiHandler->id, $ui_fmask["upload"]);
|
||||
case "uploadFileM":
|
||||
if ($ui_tmpid = $uiHandler->uploadFileM(array_merge($_REQUEST, $_FILES), $uiHandler->id, $ui_fmask["uploadFileM"]))
|
||||
$uiHandler->SP->addItem($ui_tmpid);
|
||||
break;
|
||||
|
||||
case "uploadFile": ## just media file #######################
|
||||
$uiHandler->uploadFile(array_merge($_REQUEST, $_FILES), $uiHandler->id, $ui_fmask["uploadFile"]);
|
||||
case "uploadFile":
|
||||
if ($ui_tmpid = $uiHandler->uploadFile(array_merge($_REQUEST, $_FILES), $uiHandler->id, $ui_fmask["uploadFile"]))
|
||||
$uiHandler->SP->addItem($ui_tmpid);
|
||||
break;
|
||||
|
||||
case "addWebstream":
|
||||
if ($ui_tmpid = $uiHandler->addWebstream($_REQUEST, $uiHandler->id, $ui_fmask['addWebstream']))
|
||||
$uiHandler->SP->addItem($ui_tmpid);
|
||||
break;
|
||||
|
||||
case "newFolder":
|
||||
|
@ -55,8 +64,8 @@ switch($_REQUEST['act']){
|
|||
$uiHandler->removeSubj($_REQUEST["login"]);
|
||||
break;
|
||||
|
||||
case "changePasswd":
|
||||
$uiHandler->passwd($_REQUEST["uid"], $_REQUEST["oldpass"], $_REQUEST["pass"], $_REQUEST["pass2"]);
|
||||
case "chgPasswd":
|
||||
$uiHandler->chgPasswd($_REQUEST["uid"], $_REQUEST["oldpass"], $_REQUEST["pass"], $_REQUEST["pass2"]);
|
||||
break;
|
||||
|
||||
case "addPerm":
|
||||
|
@ -67,32 +76,39 @@ switch($_REQUEST['act']){
|
|||
$uiHandler->removePerm($_REQUEST["permid"], $_REQUEST["oid"]);
|
||||
break;
|
||||
|
||||
case "addSubj2Group":
|
||||
$uiHandler->addSubj2Group($_REQUEST["login"], $_REQUEST["gname"], $_REQUEST["reid"]);
|
||||
case "addGroupMember":
|
||||
$uiHandler->addSubj2Group($_REQUEST);
|
||||
break;
|
||||
|
||||
case "removeSubjFromGr":
|
||||
$uiHandler->removeSubjFromGr($_REQUEST["login"], $_REQUEST["gname"], $_REQUEST["reid"]);
|
||||
case "removeGroupMember":
|
||||
$uiHandler->removeGroupMember($_REQUEST);
|
||||
break;
|
||||
|
||||
case "systemPrefs":
|
||||
$uiHandler->storeSystemPrefs(array_merge($_REQUEST, $_FILES), $ui_fmask["systemPrefs"]);
|
||||
break;
|
||||
|
||||
case "editMetaDataValues":
|
||||
$uiHandler->storeMetaData($_REQUEST, $ui_fmask["mData"]);
|
||||
case "editMetaData":
|
||||
$uiHandler->editMetaData($uiHandler->id, $_REQUEST, $ui_fmask["editMetaData"]);
|
||||
break;
|
||||
|
||||
case "add2SP":
|
||||
$uiHandler->add2SP($uiHandler->id);
|
||||
case "SP.addItem":
|
||||
$uiHandler->SP->addItem($_REQUEST['SPid']);
|
||||
$uiHandler->SP->setReload();
|
||||
break;
|
||||
|
||||
case "remFromSP":
|
||||
$uiHandler->remFromSP($uiHandler->id);
|
||||
case "SP.removeItem":
|
||||
$uiHandler->SP->removeItems($_REQUEST['SPid']);
|
||||
$uiHandler->SP->setReload();
|
||||
break;
|
||||
|
||||
case "SP.reOrder":
|
||||
$uiHandler->SP->reOrder($_REQUEST['by']);
|
||||
$uiHandler->SP->setReload();
|
||||
break;
|
||||
|
||||
default:
|
||||
$_SESSION["alertMsg"] = $uiHandler->tra("Unknown method: ").$_REQUEST["act"];
|
||||
$_SESSION["alertMsg"] = tra("Unknown method: $1", $_REQUEST["act"]);
|
||||
header("Location: ".UI_BROWSER);
|
||||
die();
|
||||
}
|
||||
|
|
|
@ -1,407 +1,358 @@
|
|||
<?php
|
||||
function errCallBack($err)
|
||||
{
|
||||
echo "<pre>gm:\n".$err->getMessage()."\ndi:\n".$err->getDebugInfo()."\nui:\n".$err->getUserInfo()."\n";
|
||||
echo "<hr>BackTrace:\n";
|
||||
print_r($err->backtrace);
|
||||
echo "</pre>\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* uiBase class
|
||||
*
|
||||
* LiveSupport HTML User Interface module
|
||||
*
|
||||
*/
|
||||
class uiBase
|
||||
{
|
||||
// --- class constructor ---
|
||||
/**
|
||||
* uiBase
|
||||
*
|
||||
* Initialize a new Basis Class including:
|
||||
* - database initialation
|
||||
* - GreenBox initialation
|
||||
*
|
||||
* @param $config array, configurartion data
|
||||
*/
|
||||
function uiBase(&$config)
|
||||
{
|
||||
$this->dbc = DB::connect($config['dsn'], TRUE);
|
||||
if (DB::isError($this->dbc)) {
|
||||
die($this->dbc->getMessage());
|
||||
}
|
||||
$this->dbc->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||
$this->gb =& new GreenBox(&$this->dbc, $config);
|
||||
$this->config = $config;
|
||||
$this->sessid = $_REQUEST[$config['authCookieName']];
|
||||
$this->userid = $this->gb->getSessUserId($this->sessid);
|
||||
$this->login = $this->gb->getSessLogin($this->sessid);
|
||||
$this->id = $_REQUEST['id'] ? $_REQUEST['id'] : $this->gb->getObjId($this->login, $this->gb->storId);
|
||||
$this->InputTextStandardAttrib = array('size' =>UI_INPUT_STANDARD_SIZE,
|
||||
'maxlength'=>UI_INPUT_STANDARD_MAXLENGTH);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// --- basic funtionality ---
|
||||
/**
|
||||
* tra
|
||||
*
|
||||
* Translate the given string using localisation files.
|
||||
*
|
||||
* @param input string, string to translate
|
||||
* @return string, translated string
|
||||
*/
|
||||
function tra($input)
|
||||
{
|
||||
// just a dummy function yet
|
||||
$nr=func_num_args();
|
||||
if ($nr>1)
|
||||
for ($i=1; $i<$nr; $i++){
|
||||
$name = '$'.$i;
|
||||
$val = func_get_arg($i);
|
||||
$input = str_replace($name, $val, $input);
|
||||
}
|
||||
return $input;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* _parseArr2Form
|
||||
*
|
||||
* Add elements/rules/groups to an given HTML_QuickForm object
|
||||
*
|
||||
* @param form object, reference to HTML_QuickForm object
|
||||
* @param mask array, reference to array defining to form elements
|
||||
* @param side string, side where the validation should beeing
|
||||
*/
|
||||
function _parseArr2Form(&$form, &$mask, $side='client')
|
||||
{
|
||||
foreach($mask as $k=>$v) {
|
||||
## add elements ########################
|
||||
if ($v['type']=='radio') {
|
||||
foreach($v['options'] as $rk=>$rv) {
|
||||
$radio[] =& $form->createElement($v['type'], NULL, NULL, $rv, $rk, $v['attributes']);
|
||||
}
|
||||
$form->addGroup($radio, $v['element'], $this->tra($v['label']));
|
||||
unset($radio);
|
||||
|
||||
} elseif ($v['type']=='select') {
|
||||
$elem[$v['element']] =& $form->createElement($v['type'], $v['element'], $this->tra($v['label']), $v['options'], $v['attributes']);
|
||||
$elem[$v['element']]->setMultiple($v['multiple']);
|
||||
if (isset($v['selected'])) $elem[$v['element']]->setSelected($v['selected']);
|
||||
if (!$v['groupit']) $form->addElement($elem[$v['element']]);
|
||||
|
||||
} elseif ($v['type']=='date') {
|
||||
$elem[$v['element']] =& $form->createElement($v['type'], $v['element'], $this->tra($v['label']), $v['options'], $v['attributes']);
|
||||
if (!$v['groupit']) $form->addElement($elem[$v['element']]);
|
||||
|
||||
} elseif ($v['type']=='checkbox' || $v['type']=='static') {
|
||||
$elem[$v['element']] =& $form->createElement($v['type'], $v['element'], $this->tra($v['label']), $v['text'], $v['attributes']);
|
||||
if (!$v['groupit']) $form->addElement($elem[$v['element']]);
|
||||
|
||||
} elseif (isset($v['type'])) {
|
||||
$elem[$v['element']] =& $form->createElement($v['type'], $v['element'], $this->tra($v['label']),
|
||||
($v[type]=='text' || $v['type']=='file' || $v['type']=='password') ? array_merge($v['attributes'], array('size'=>UI_INPUT_STANDARD_SIZE, 'maxlength'=>UI_INPUT_STANDARD_MAXLENGTH)) :
|
||||
($v['type']=='textarea' ? array_merge($v['attributes'], array('rows'=>UI_TEXTAREA_STANDART_ROWS, 'cols'=>UI_TEXTAREA_STANDART_COLS)) : $v['attributes'])
|
||||
);
|
||||
if (!$v['groupit']) $form->addElement($elem[$v['element']]);
|
||||
}
|
||||
## add required rule ###################
|
||||
if ($v['required']) {
|
||||
$form->addRule($v['element'], isset($v['requiredmsg'])?$this->tra($v['requiredmsg']):$this->tra('Missing value for $1', $this->tra($v['label'])), 'required', NULL, $side);
|
||||
}
|
||||
## add constant value ##################
|
||||
if (isset($v['constant'])) {
|
||||
$form->setConstants(array($v['element']=>$v['constant']));
|
||||
}
|
||||
## add default value ###################
|
||||
if (isset($v['default'])) {
|
||||
$form->setDefaults(array($v['element']=>$v['default']));
|
||||
}
|
||||
## add other rules #####################
|
||||
if ($v['rule']) {
|
||||
$form->addRule($v['element'], isset($v['rulemsg']) ? $this->tra($v['rulemsg']) : $this->tra('$1 must be $2', $this->tra($v['element']), $this->tra($v['rule'])), $v['rule'] ,$v['format'], $side);
|
||||
}
|
||||
## add group ###########################
|
||||
if (is_array($v['group'])) {
|
||||
foreach($v['group'] as $val) {
|
||||
$groupthose[] =& $elem[$val];
|
||||
}
|
||||
$form->addGroup($groupthose, $v['name'], $this->tra($v['label']), $v['seperator'], $v['appendName']);
|
||||
if ($v['rule']) {
|
||||
$form->addRule($v['name'], isset($v['rulemsg']) ? $this->tra($v['rulemsg']) : $this->tra('$1 must be $2', $this->tra($v['name'])), $v['rule'], $v['format'], $side);
|
||||
}
|
||||
if ($v['grouprule']) {
|
||||
$form->addGroupRule($v['name'], $v['arg1'], $v['grouprule'], $v['format'], $v['howmany'], $side, $v['reset']);
|
||||
}
|
||||
unset($groupthose);
|
||||
}
|
||||
## check error on type file ##########
|
||||
if ($v['type']=='file') {
|
||||
if ($_POST[$v['element']]['error']) {
|
||||
$form->setElementError($v['element'], isset($v['requiredmsg']) ? $this->tra($v['requiredmsg']) : $this->tra('Missing value for $1', $this->tra($v['label'])));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
reset($mask);
|
||||
$form->validate();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* _dateArr2Str
|
||||
*
|
||||
* Converts date-array from form into string
|
||||
*
|
||||
* @param input array, reference to array of form-elements
|
||||
*/
|
||||
function _dateArr2Str(&$input)
|
||||
{
|
||||
foreach ($input as $k=>$v){
|
||||
if (is_array($v) && isset($v['d']) && (isset($v['M']) || isset($v['m'])) && (isset($v['Y']) || isset($v['y']))){
|
||||
$input[$k] = $v['Y'].$v['y'].'-'.(strlen($v['M'].$v['m'])==2 ? $v['M'].$v['m'] : '0'.$v['M'].$v['m']).'-'.(strlen($v['d'])==2 ? $v['d'] : '0'.$v['d']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* _getInfo
|
||||
*
|
||||
* Call getid3 library to analyze media file and show some results
|
||||
*
|
||||
* @param $id int local ID of file
|
||||
* @param $format string
|
||||
*/
|
||||
function _getInfo($id, $format)
|
||||
{
|
||||
$ia = $this->gb->analyzeFile($id, $this->sessid);
|
||||
|
||||
if ($format=='array') {
|
||||
return array(
|
||||
'Format.Extent' => $ia['playtime_string'],
|
||||
'Format.Medium.Bitrate' => $ia['audio']['bitrate'],
|
||||
'Format.Medium.Channels' => $ia['audio']['channelmode'],
|
||||
'Format.Medium.Samplerate' => $ia['audio']['sample_rate'],
|
||||
'Format.Medium.Encoder' => $ia['audio']['codec'] ? $ia['audio']['codec'] : $ia['audio']['encoder'],
|
||||
);
|
||||
} elseif ($format=='text') {
|
||||
return "fileformat: {$ia['fileformat']}<br>
|
||||
channels: {$ia['audio']['channels']}<br>
|
||||
sample_rate: {$ia['audio']['sample_rate']}<br>
|
||||
bits_per_sample: {$ia['audio']['bits_per_sample']}<br>
|
||||
channelmode: {$ia['audio']['channelmode']}<br>
|
||||
title: {$ia['id3v1']['title']}<br>
|
||||
artist: {$ia['id3v1']['artist']}<br>
|
||||
comment: {$ia['id3v1']['comment']}";
|
||||
} elseif ($format=='xml') {
|
||||
return
|
||||
'<?xml version="1.0" encoding="utf-8"?>
|
||||
<audioClip>
|
||||
<metadata
|
||||
xmlns="http://www.streamonthefly.org/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:dcterms="http://purl.org/dc/terms/"
|
||||
xmlns:xbmf="http://www.streamonthefly.org/xbmf"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
>
|
||||
<dc:title>'.$this->_getFileTitle($id).'</dc:title>
|
||||
<dcterms:extent>'.$ia['playtime_string'].'</dcterms:extent>
|
||||
</metadata>
|
||||
</audioClip>';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function _twoDigits($num)
|
||||
{
|
||||
if ($num < 10)
|
||||
return ("0$num");
|
||||
else
|
||||
return $num;
|
||||
}
|
||||
|
||||
|
||||
function _getDArr($format)
|
||||
{
|
||||
#$arr[''] = '00';
|
||||
switch($format) {
|
||||
case 'h':
|
||||
for($n=0; $n<=23; $n++) {
|
||||
$arr[$this->_twoDigits($n)] = $this->_twoDigits($n);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
case 's':
|
||||
for($n=0; $n<=59; $n++) {
|
||||
$arr[$this->_twoDigits($n)] = $this->_twoDigits($n);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return $arr;
|
||||
}
|
||||
|
||||
|
||||
function _toHex($gunid)
|
||||
{
|
||||
$res = $this->dbc->query("SELECT to_hex($gunid)");
|
||||
$row = $res->fetchRow();
|
||||
|
||||
return $row['to_hex'];
|
||||
}
|
||||
|
||||
|
||||
function _toInt8($gunid)
|
||||
{
|
||||
$res = $this->dbc->query("SELECT x'$gunid'::bigint");
|
||||
$row = $res->fetchRow();
|
||||
|
||||
return $row['int8'];
|
||||
}
|
||||
|
||||
|
||||
function getSP()
|
||||
{
|
||||
$spData = $this->gb->loadPref($this->sessid, UI_SCRATCHPAD_KEY);
|
||||
if (!PEAR::isError($spData) && trim($spData) != '') {
|
||||
$arr = explode(' ', $spData);
|
||||
/*
|
||||
## Akos old format #####################################
|
||||
foreach($arr as $val) {
|
||||
if (preg_match(UI_SCRATCHPAD_REGEX, $val)) {
|
||||
list ($gunid, $date) = explode(':', $val);
|
||||
if ($this->gb->_idFromGunid($gunid) != FALSE) {
|
||||
$res[] = array_merge($this->_getMetaInfo($this->gb->_idFromGunid($gunid)), array('added' => $date));
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
## new format ##########################################
|
||||
foreach($arr as $gunid) {
|
||||
if (preg_match('/[0-9]{1,20}/', $gunid)) {
|
||||
if ($this->gb->_idFromGunid($this->_toHex($gunid)) != FALSE) {
|
||||
$res[] = $this->_getMetaInfo($this->gb->_idFromGunid($this->_toHex($gunid)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return ($res);
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
function _saveSP($data)
|
||||
{
|
||||
if (is_array($data)) {
|
||||
foreach($data as $val) {
|
||||
#$str .= $val['gunid'].':'.$val['added'].' '; ## new format ###
|
||||
$str .= $this->_toInt8($val['gunid']).' '; ## Akos´ old format ###
|
||||
}
|
||||
}
|
||||
|
||||
$this->gb->savePref($this->sessid, UI_SCRATCHPAD_KEY, $str);
|
||||
}
|
||||
|
||||
function add2SP($id)
|
||||
{
|
||||
$info = $this->_getMetaInfo($id);
|
||||
$this->redirUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close';
|
||||
|
||||
if ($sp = $this->getSP()) {
|
||||
foreach ($sp as $key => $val) {
|
||||
if ($val['gunid'] == $info['gunid']) {
|
||||
unset($sp[$key]);
|
||||
$this->_retMsg('Entry $1 was already on $2.\nMoved to Top.', $info['title'], $val['added']);
|
||||
} else {
|
||||
#$this->incAccessCounter($id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$sp = array_merge(array(array('gunid' => $info['gunid'],
|
||||
'added' => date('Y-m-d')
|
||||
),
|
||||
),
|
||||
is_array($sp) ? $sp : NULL);
|
||||
|
||||
$this->_saveSP($sp);
|
||||
#$this->_retmsg('Entry $1 added', $info['title']);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
function remFromSP($id)
|
||||
{
|
||||
$info = $this->_getMetaInfo($id);
|
||||
$this->redirUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close';
|
||||
|
||||
if ($sp = $this->getSP()) {
|
||||
foreach ($sp as $val) {
|
||||
if ($val['gunid'] != $info['gunid']) {
|
||||
$new[] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
$this->_saveSP($new);
|
||||
$this->_retmsg('Entry $1 deleted', $info['title']);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function _retMsg($msg, $p1=NULL, $p2=NULL, $p3=NULL, $p4=NULL, $p5=NULL, $p6=NULL, $p7=NULL, $p8=NULL, $p9=NULL)
|
||||
{
|
||||
$_SESSION['alertMsg'] .= $this->tra($msg, $p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8, $p9).'\n';
|
||||
}
|
||||
|
||||
|
||||
function _getMetaInfo($id)
|
||||
{
|
||||
$data = array('id' => $id,
|
||||
'gunid' => $this->gb->_gunidFromId($id),
|
||||
'title' => $this->_getMDataValue($id, 'title'),
|
||||
'artist' => $this->_getMDataValue($id, 'artist'),
|
||||
'duration' => substr($this->_getMDataValue($id, 'format.extent'), 0 ,8),
|
||||
'type' => $this->_getType($id),
|
||||
);
|
||||
|
||||
return ($data);
|
||||
}
|
||||
|
||||
|
||||
function _getMDataValue($id, $key)
|
||||
{
|
||||
$value = array_pop($this->gb->getMDataValue($id, $key, $this->sessid));
|
||||
return $value['value'];
|
||||
}
|
||||
|
||||
|
||||
function _getFileTitle($id)
|
||||
{
|
||||
$file = array_pop($this->gb->getPath($id));
|
||||
return $file['name'];
|
||||
}
|
||||
|
||||
function _getType($id)
|
||||
{
|
||||
if ($this->gb->existsPlaylist($this->sessid, $this->gb->_gunidFromId($id))) return 'playlist';
|
||||
return 'file';
|
||||
#if ($this->gb->existsAudioClip($this->sessid, $this->gb->_gunidFromId($id))) return 'audioclip';
|
||||
#if ($this->gb->existsFile($this->sessid, $this->gb->_gunidFromId($id))) return 'File';
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
function errCallBack($err)
|
||||
{
|
||||
echo "<pre>gm:\n".$err->getMessage()."\ndi:\n".$err->getDebugInfo()."\nui:\n".$err->getUserInfo()."\n";
|
||||
echo "<hr>BackTrace:\n";
|
||||
print_r($err->backtrace);
|
||||
echo "</pre>\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// --- basic funtionality ---
|
||||
/**
|
||||
* tra
|
||||
*
|
||||
* Translate the given string using localisation files.
|
||||
*
|
||||
* @param input string, string to translate
|
||||
* @return string, translated string
|
||||
*/
|
||||
function tra($input)
|
||||
{
|
||||
// just a dummy function yet
|
||||
$nr=func_num_args();
|
||||
if ($nr>1)
|
||||
for ($i=1; $i<$nr; $i++){
|
||||
$name = '$'.$i;
|
||||
$val = func_get_arg($i);
|
||||
$input = str_replace($name, $val, $input);
|
||||
}
|
||||
return $input;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* uiBase class
|
||||
*
|
||||
* LiveSupport HTML User Interface module
|
||||
*
|
||||
*/
|
||||
class uiBase
|
||||
{
|
||||
// --- class constructor ---
|
||||
/**
|
||||
* uiBase
|
||||
*
|
||||
* Initialize a new Basis Class including:
|
||||
* - database initialation
|
||||
* - GreenBox initialation
|
||||
*
|
||||
* @param $config array, configurartion data
|
||||
*/
|
||||
var $redirUrl;
|
||||
var $alertMsg;
|
||||
|
||||
function uiBase(&$config)
|
||||
{
|
||||
$this->dbc = DB::connect($config['dsn'], TRUE);
|
||||
if (DB::isError($this->dbc)) {
|
||||
die($this->dbc->getMessage());
|
||||
}
|
||||
$this->dbc->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||
$this->gb =& new GreenBox(&$this->dbc, $config);
|
||||
$this->config = $config;
|
||||
$this->sessid = $_REQUEST[$config['authCookieName']];
|
||||
$this->userid = $this->gb->getSessUserId($this->sessid);
|
||||
$this->login = $this->gb->getSessLogin($this->sessid);
|
||||
$this->id = $_REQUEST['id'] ? $_REQUEST['id'] : $this->gb->getObjId($this->login, $this->gb->storId);
|
||||
$this->InputTextStandardAttrib = array('size' =>UI_INPUT_STANDARD_SIZE,
|
||||
'maxlength'=>UI_INPUT_STANDARD_MAXLENGTH);
|
||||
|
||||
$this->SP =& new uiScratchPad(&$this);
|
||||
$this->systemPrefs =& $_SESSION[UI_STATIONINFO_SESSNAME]; ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function loadSystemPrefs(&$mask)
|
||||
{
|
||||
if (!is_array($this->systemPrefs)) {
|
||||
foreach ($mask as $key=>$val) {
|
||||
if ($val['isPref'])
|
||||
$this->systemPrefs[$val['element']] = is_string($this->gb->loadGroupPref(NULL, 'StationPrefs', $val['element'])) ? $this->gb->loadGroupPref($this->sessid, 'StationPrefs', $val['element']) : NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* _parseArr2Form
|
||||
*
|
||||
* Add elements/rules/groups to an given HTML_QuickForm object
|
||||
*
|
||||
* @param form object, reference to HTML_QuickForm object
|
||||
* @param mask array, reference to array defining to form elements
|
||||
* @param side string, side where the validation should beeing
|
||||
*/
|
||||
function _parseArr2Form(&$form, &$mask, $side='client')
|
||||
{
|
||||
foreach($mask as $k=>$v) {
|
||||
## add elements ########################
|
||||
if ($v['type']=='radio') {
|
||||
foreach($v['options'] as $rk=>$rv) {
|
||||
$radio[] =& $form->createElement($v['type'], NULL, NULL, $rv, $rk, $v['attributes']);
|
||||
}
|
||||
$form->addGroup($radio, $v['element'], tra($v['label']));
|
||||
unset($radio);
|
||||
|
||||
} elseif ($v['type']=='select') {
|
||||
$elem[$v['element']] =& $form->createElement($v['type'], $v['element'], tra($v['label']), $v['options'], $v['attributes']);
|
||||
$elem[$v['element']]->setMultiple($v['multiple']);
|
||||
if (isset($v['selected'])) $elem[$v['element']]->setSelected($v['selected']);
|
||||
if (!$v['groupit']) $form->addElement($elem[$v['element']]);
|
||||
|
||||
} elseif ($v['type']=='date') {
|
||||
$elem[$v['element']] =& $form->createElement($v['type'], $v['element'], tra($v['label']), $v['options'], $v['attributes']);
|
||||
if (!$v['groupit']) $form->addElement($elem[$v['element']]);
|
||||
|
||||
} elseif ($v['type']=='checkbox' || $v['type']=='static') {
|
||||
$elem[$v['element']] =& $form->createElement($v['type'], $v['element'], tra($v['label']), $v['text'], $v['attributes']);
|
||||
if (!$v['groupit']) $form->addElement($elem[$v['element']]);
|
||||
|
||||
} elseif (isset($v['type'])) {
|
||||
$elem[$v['element']] =& $form->createElement($v['type'], $v['element'], tra($v['label']),
|
||||
($v[type]=='text' || $v['type']=='file' || $v['type']=='password') ? array_merge($v['attributes'], array('size'=>UI_INPUT_STANDARD_SIZE, 'maxlength'=>UI_INPUT_STANDARD_MAXLENGTH)) :
|
||||
($v['type']=='textarea' ? array_merge($v['attributes'], array('rows'=>UI_TEXTAREA_STANDART_ROWS, 'cols'=>UI_TEXTAREA_STANDART_COLS)) : $v['attributes'])
|
||||
);
|
||||
if (!$v['groupit']) $form->addElement($elem[$v['element']]);
|
||||
}
|
||||
## add required rule ###################
|
||||
if ($v['required']) {
|
||||
$form->addRule($v['element'], isset($v['requiredmsg'])?tra($v['requiredmsg']):tra('Missing value for $1', tra($v['label'])), 'required', NULL, $side);
|
||||
}
|
||||
## add constant value ##################
|
||||
if (isset($v['constant'])) {
|
||||
$form->setConstants(array($v['element']=>$v['constant']));
|
||||
}
|
||||
## add default value ###################
|
||||
if (isset($v['default'])) {
|
||||
$form->setDefaults(array($v['element']=>$v['default']));
|
||||
}
|
||||
## add other rules #####################
|
||||
if ($v['rule']) {
|
||||
$form->addRule($v['element'], isset($v['rulemsg']) ? tra($v['rulemsg']) : tra('$1 must be $2', tra($v['element']), tra($v['rule'])), $v['rule'] ,$v['format'], $side);
|
||||
}
|
||||
## add group ###########################
|
||||
if (is_array($v['group'])) {
|
||||
foreach($v['group'] as $val) {
|
||||
$groupthose[] =& $elem[$val];
|
||||
}
|
||||
$form->addGroup($groupthose, $v['name'], tra($v['label']), $v['seperator'], $v['appendName']);
|
||||
if ($v['rule']) {
|
||||
$form->addRule($v['name'], isset($v['rulemsg']) ? tra($v['rulemsg']) : tra('$1 must be $2', tra($v['name'])), $v['rule'], $v['format'], $side);
|
||||
}
|
||||
if ($v['grouprule']) {
|
||||
$form->addGroupRule($v['name'], $v['arg1'], $v['grouprule'], $v['format'], $v['howmany'], $side, $v['reset']);
|
||||
}
|
||||
unset($groupthose);
|
||||
}
|
||||
## check error on type file ##########
|
||||
if ($v['type']=='file') {
|
||||
if ($_POST[$v['element']]['error']) {
|
||||
$form->setElementError($v['element'], isset($v['requiredmsg']) ? tra($v['requiredmsg']) : tra('Missing value for $1', tra($v['label'])));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
reset($mask);
|
||||
$form->validate();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* _dateArr2Str
|
||||
*
|
||||
* Converts date-array from form into string
|
||||
*
|
||||
* @param input array, array of form-elements
|
||||
*/
|
||||
function _dateArr2Str(&$input)
|
||||
{
|
||||
foreach ($input as $k=>$v){
|
||||
if (is_array($v)) {
|
||||
if ( ( isset($v['d']) ) && ( isset($v['M']) || isset($v['m']) ) && ( isset($v['Y']) || isset($v['y']) ) ) {
|
||||
$input[$k] = $v['Y'].$v['y'].'-'.$this->_twoDigits($v['M'].$v['m']).'-'.$this->_twoDigits($v['d']);
|
||||
}
|
||||
if ( ( isset($v['H']) ) || isset($v['h'] ) && ( isset($v['i']) ) && ( isset($v['s']) ) ) {
|
||||
$input[$k] = $this->_twoDigits($v['H'].$v['h']).':'.$this->_twoDigits($v['i']).':'.$this->_twoDigits($v['s']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $input;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* _analyzeFile
|
||||
*
|
||||
* Call getid3 library to analyze media file and show some results
|
||||
*
|
||||
* @param $id int local ID of file
|
||||
* @param $format string
|
||||
*/
|
||||
function _analyzeFile($id, $format)
|
||||
{
|
||||
$ia = $this->gb->analyzeFile($id, $this->sessid);
|
||||
|
||||
if ($format=='array') {
|
||||
return array(
|
||||
'Format.Extent' => $ia['playtime_string'],
|
||||
'Format.Medium.Bitrate' => $ia['audio']['bitrate'],
|
||||
'Format.Medium.Channels' => $ia['audio']['channelmode'],
|
||||
'Format.Medium.Samplerate' => $ia['audio']['sample_rate'],
|
||||
'Format.Medium.Encoder' => $ia['audio']['codec'] ? $ia['audio']['codec'] : $ia['audio']['encoder'],
|
||||
);
|
||||
} elseif ($format=='text') {
|
||||
return "fileformat: {$ia['fileformat']}<br>
|
||||
channels: {$ia['audio']['channels']}<br>
|
||||
sample_rate: {$ia['audio']['sample_rate']}<br>
|
||||
bits_per_sample: {$ia['audio']['bits_per_sample']}<br>
|
||||
channelmode: {$ia['audio']['channelmode']}<br>
|
||||
title: {$ia['id3v1']['title']}<br>
|
||||
artist: {$ia['id3v1']['artist']}<br>
|
||||
comment: {$ia['id3v1']['comment']}";
|
||||
} elseif ($format=='xml') {
|
||||
return
|
||||
'<?xml version="1.0" encoding="utf-8"?>
|
||||
<audioClip>
|
||||
<metadata
|
||||
xmlns="http://www.streamonthefly.org/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:dcterms="http://purl.org/dc/terms/"
|
||||
xmlns:xbmf="http://www.streamonthefly.org/xbmf"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
>
|
||||
<dc:title>'.$this->_getFileTitle($id).'</dc:title>
|
||||
<dcterms:extent>'.$ia['playtime_string'].'</dcterms:extent>
|
||||
</metadata>
|
||||
</audioClip>';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function _twoDigits($num)
|
||||
{
|
||||
if (strlen($num)<2)
|
||||
return ("0$num");
|
||||
else
|
||||
return $num;
|
||||
}
|
||||
|
||||
|
||||
function _getDArr($format)
|
||||
{
|
||||
#$arr[''] = '00';
|
||||
switch($format) {
|
||||
case 'h':
|
||||
for($n=0; $n<=23; $n++) {
|
||||
$arr[$this->_twoDigits($n)] = $this->_twoDigits($n);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
case 's':
|
||||
for($n=0; $n<=59; $n++) {
|
||||
$arr[$this->_twoDigits($n)] = $this->_twoDigits($n);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return $arr;
|
||||
}
|
||||
|
||||
|
||||
function _toHex($gunid)
|
||||
{
|
||||
$res = $this->dbc->query("SELECT to_hex($gunid)");
|
||||
$row = $res->fetchRow();
|
||||
|
||||
return $row['to_hex'];
|
||||
}
|
||||
|
||||
|
||||
function _toInt8($gunid)
|
||||
{
|
||||
$res = $this->dbc->query("SELECT x'$gunid'::bigint");
|
||||
$row = $res->fetchRow();
|
||||
|
||||
return $row['int8'];
|
||||
}
|
||||
|
||||
|
||||
function _retMsg($msg, $p1=NULL, $p2=NULL, $p3=NULL, $p4=NULL, $p5=NULL, $p6=NULL, $p7=NULL, $p8=NULL, $p9=NULL)
|
||||
{
|
||||
$_SESSION['alertMsg'] .= tra($msg, $p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8, $p9).'\n';
|
||||
}
|
||||
|
||||
|
||||
function _getMetaInfo($id)
|
||||
{
|
||||
$data = array('id' => $id,
|
||||
'gunid' => $this->gb->_gunidFromId($id),
|
||||
'title' => $this->_getMDataValue($id, 'title'),
|
||||
'artist' => $this->_getMDataValue($id, 'artist'),
|
||||
'duration' => $this->_niceTime($this->_getMDataValue($id, 'dcterms:extent')),
|
||||
'type' => $this->gb->getFileType($id),
|
||||
);
|
||||
|
||||
return ($data);
|
||||
}
|
||||
|
||||
|
||||
function _niceTime($in)
|
||||
{
|
||||
if (preg_match('/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}$/', $in))
|
||||
list($h, $i, $s) = explode(':', $in);
|
||||
elseif (preg_match('/^[0-9]{1,2}:[0-9]{1,2}$/', $in))
|
||||
list($i, $s) = explode(':', $in);
|
||||
else
|
||||
$s = $in;
|
||||
|
||||
if ($h > 0) {
|
||||
$H = $this->_twoDigits($h).':';
|
||||
} else {
|
||||
$H = ' ';
|
||||
}
|
||||
|
||||
$I = $this->_twoDigits($i).':';
|
||||
$S = $this->_twoDigits($s);
|
||||
|
||||
return $H.$I.$S;
|
||||
}
|
||||
|
||||
|
||||
function _getMDataValue($id, $key)
|
||||
{
|
||||
$value = array_pop($this->gb->getMDataValue($id, $key, $this->sessid));
|
||||
return $value['value'];
|
||||
}
|
||||
|
||||
|
||||
function _getFileTitle($id)
|
||||
{
|
||||
$file = array_pop($this->gb->getPath($id));
|
||||
return $file['name'];
|
||||
}
|
||||
|
||||
|
||||
function _isFolder($id)
|
||||
{
|
||||
if (strtolower($this->gb->getFileType($id)) != 'folder') {
|
||||
$this->_retMsg('Parent is not Folder');
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -61,30 +61,20 @@ class uiBrowser extends uiBase {
|
|||
}
|
||||
|
||||
|
||||
function getStationInfo(&$mask)
|
||||
{
|
||||
foreach ($mask as $key=>$val) {
|
||||
if ($val['type']=='text')
|
||||
$a[$val['element']] = is_string($this->gb->loadGroupPref($this->sessid, 'StationPrefs', $val['element'])) ? $this->gb->loadGroupPref($this->sessid, 'StationPrefs', $val['element']) : NULL;
|
||||
}
|
||||
|
||||
return $a;
|
||||
}
|
||||
|
||||
// --- template feed ---
|
||||
/**
|
||||
* loginform
|
||||
* login
|
||||
*
|
||||
* create a login-form
|
||||
*
|
||||
* @param string $faillogin login name of failed login process
|
||||
* @return string (html)
|
||||
*/
|
||||
function loginform(&$Smarty, &$mask)
|
||||
function login(&$Smarty, &$mask)
|
||||
{
|
||||
$form = new HTML_QuickForm('loginbox', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form = new HTML_QuickForm('login', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form->setRequiredNote(file_get_contents(UI_QFORM_REQUIREDNOTE));
|
||||
$this->_parseArr2Form($form, $mask['loginform']);
|
||||
$this->_parseArr2Form($form, $mask['login']);
|
||||
$this->_parseArr2Form($form, $mask['languages']);
|
||||
|
||||
## using Static Smarty Renderer
|
||||
|
@ -125,15 +115,14 @@ class uiBrowser extends uiBase {
|
|||
*/
|
||||
function getStructure($id)
|
||||
{
|
||||
$data=array_merge($data, array(
|
||||
'pathdata' => $this->gb->getPath($id, $this->sessid),
|
||||
'listdata' => ($this->gb->getObjType($id)=='Folder'?
|
||||
$this->gb->listFolder($id, $this->sessid):array()
|
||||
),
|
||||
'tree' => ($_REQUEST['tree']=='Y'),
|
||||
'showPath' => true,
|
||||
'showTree' => true,
|
||||
));
|
||||
$data = array(
|
||||
'pathdata' => $this->gb->getPath($id, $this->sessid),
|
||||
'listdata' => ($this->gb->getObjType($id)=='Folder'?
|
||||
$this->gb->listFolder($id, $this->sessid) : array()),
|
||||
#'tree' => ($_REQUEST['tree']=='Y'),
|
||||
'showPath' => true,
|
||||
'showTree' => true,
|
||||
);
|
||||
if($_REQUEST['tree']=='Y'){
|
||||
$data['treedata'] = $this->gb->getSubTree($id, $this->sessid);
|
||||
}
|
||||
|
@ -155,7 +144,7 @@ class uiBrowser extends uiBase {
|
|||
|
||||
|
||||
/**
|
||||
* getNewFileForm
|
||||
* uploadFileM
|
||||
*
|
||||
* create a form for file-upload
|
||||
*
|
||||
|
@ -163,9 +152,9 @@ class uiBrowser extends uiBase {
|
|||
*
|
||||
* @eturn string (html)
|
||||
*/
|
||||
function getNewFileForm($id, $mask)
|
||||
function uploadFileM($id, $mask)
|
||||
{
|
||||
$form = new HTML_QuickForm('newfile', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form = new HTML_QuickForm('uploadFileM', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form->setMaxFileSize(!PEAR::isError($this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'maxfilesize')) ?
|
||||
$this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'maxfilesize')
|
||||
: ini_get('upload_max_filesize'));
|
||||
|
@ -178,17 +167,40 @@ class uiBrowser extends uiBase {
|
|||
|
||||
|
||||
/**
|
||||
* getUploadFileForm
|
||||
* uploadFile
|
||||
*
|
||||
* create a form for file-upload
|
||||
*
|
||||
* @param int local $id of directory to store file in
|
||||
* @param int local $id of directory to store file
|
||||
*
|
||||
* @eturn string (html)
|
||||
*/
|
||||
function getUploadFileForm($id, $mask)
|
||||
function uploadFile($id, $mask)
|
||||
{
|
||||
$form = new HTML_QuickForm('upload', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form = new HTML_QuickForm('uploadFile', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form->setMaxFileSize(!PEAR::isError($this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'maxfilesize')) ?
|
||||
$this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'maxfilesize')
|
||||
: ini_get('upload_max_filesize'));
|
||||
$form->setConstants(array('id' => $id));
|
||||
|
||||
$this->_parseArr2Form($form, $mask);
|
||||
|
||||
return $form->toHTML();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* addWebstream
|
||||
*
|
||||
* create a form to add Webstream
|
||||
*
|
||||
* @param int local $id of directory to store stream
|
||||
*
|
||||
* @eturn string (html)
|
||||
*/
|
||||
function addWebstream($id, $mask)
|
||||
{
|
||||
$form = new HTML_QuickForm('addWebstream', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form->setMaxFileSize(!PEAR::isError($this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'maxfilesize')) ?
|
||||
$this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'maxfilesize')
|
||||
: ini_get('upload_max_filesize'));
|
||||
|
@ -230,17 +242,16 @@ class uiBrowser extends uiBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* getChangePasswdForm
|
||||
* chgPasswd
|
||||
*
|
||||
* create a form to change user-passwords in GreenBox
|
||||
*
|
||||
* @return string (html)
|
||||
*/
|
||||
function getChangePasswdForm($uid, &$mask)
|
||||
function chgPasswd($uid, &$mask)
|
||||
{
|
||||
$form = new HTML_QuickForm('changePasswd', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form->setConstants(array('act'=>'changePasswd',
|
||||
'uid'=>$uid));
|
||||
$form = new HTML_QuickForm('chgPasswd', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form->setConstants(array('uid'=>$uid));
|
||||
$this->_parseArr2Form($form, $mask);
|
||||
return $form->toHTML();
|
||||
}
|
||||
|
@ -253,7 +264,7 @@ class uiBrowser extends uiBase {
|
|||
* @parm $id int local user ID
|
||||
* @return array
|
||||
*/
|
||||
function getGroups($id)
|
||||
function groupMembers($id)
|
||||
{
|
||||
return array(
|
||||
'rows' => $this->gb->listGroup($id),
|
||||
|
@ -274,15 +285,15 @@ class uiBrowser extends uiBase {
|
|||
*
|
||||
* @return string (html)
|
||||
*/
|
||||
function getSubj2GroupForm($id)
|
||||
function addGroupMember($id)
|
||||
{
|
||||
$g = $this->getGroups($id);
|
||||
$g = $this->groupMembers($id);
|
||||
foreach($g['subj'] as $s) {
|
||||
$this->logins[($s['login'])]=$s['login'];
|
||||
}
|
||||
|
||||
$form = new HTML_QuickForm('addSubj2Group', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form->setConstants(array('act'=>'addSubj2Group',
|
||||
$form = new HTML_QuickForm('addGroupMember', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form->setConstants(array('act'=>'addGroupMember',
|
||||
'reid'=>$g['id'],
|
||||
'gname'=>$g['gname']));
|
||||
$form->addElement('hidden', 'act');
|
||||
|
@ -291,7 +302,7 @@ class uiBrowser extends uiBase {
|
|||
$s =& $form->createElement('select', 'login', 'Add Group: ');
|
||||
$s->loadArray($this->logins, NULL);
|
||||
$form->addElement($s);
|
||||
$form->addElement('submit', NULL, $this->tra('Do'));
|
||||
$form->addElement('submit', NULL, tra('Do'));
|
||||
|
||||
return $form->toHTML();
|
||||
}
|
||||
|
@ -305,7 +316,7 @@ class uiBrowser extends uiBase {
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
function getPermissions($id)
|
||||
function permissions($id)
|
||||
{
|
||||
return array('pathdata' => $this->gb->getPath($id),
|
||||
'perms' => $this->gb->getObjPerms($id),
|
||||
|
@ -436,14 +447,14 @@ class uiBrowser extends uiBase {
|
|||
|
||||
|
||||
/**
|
||||
* getMetaDataForm
|
||||
* metaDataForm
|
||||
*
|
||||
* create a form to edit Metadata
|
||||
*
|
||||
* @param id int
|
||||
* @return string (html)
|
||||
*/
|
||||
function getMetadataForm($id, $mask, $get=FALSE, $data=NULL)
|
||||
function editMetaData($id, $mask, $get=FALSE, $data=NULL)
|
||||
{
|
||||
$form = new HTML_QuickForm('tabs', UI_STANDARD_FORM_METHOD, UI_BROWSER);
|
||||
$this->_parseArr2Form($form, $mask['tabs']);
|
||||
|
@ -452,7 +463,7 @@ class uiBrowser extends uiBase {
|
|||
$this->_parseArr2Form($form, $mask['langswitch']);
|
||||
$output['langswitch'] = $form->toHTML();
|
||||
|
||||
$form = new HTML_QuickForm('metadata', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$form = new HTML_QuickForm('editMetaData', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
$this->_parseArr2Form($form, $mask['basics']);
|
||||
$form->setConstants( array('id' => $id,
|
||||
#!!!!!'langid' => array_pop($this->gb->getMDataValue($id, 'langid', $this->sessid))
|
||||
|
@ -493,7 +504,7 @@ class uiBrowser extends uiBase {
|
|||
|
||||
|
||||
|
||||
function systemPrefs(&$mask)
|
||||
function systemPrefsForm(&$mask)
|
||||
{
|
||||
$form = new HTML_QuickForm('systemPrefs', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?php
|
||||
session_start();
|
||||
|
||||
|
||||
## LS classes/functions #############################################
|
||||
require_once dirname(__FILE__).'/conf.php';
|
||||
require_once dirname(__FILE__).'/ui_base.inc.php';
|
||||
require_once dirname(__FILE__).'/ui_browser.class.php';
|
||||
require_once dirname(__FILE__).'/ui_scratchPad.class.php';
|
||||
require_once dirname(__FILE__).'/../../storageServer/var/GreenBox.php';
|
||||
|
||||
|
||||
|
@ -23,15 +23,18 @@ PEAR::setErrorHandling(PEAR_ERROR_RETURN);
|
|||
|
||||
|
||||
## initialize objects ###############################################
|
||||
$Smarty = new Smarty;
|
||||
$uiBrowser = new uiBrowser($config);
|
||||
$uiBase = new uiBase($config);
|
||||
$Smarty =& new Smarty;
|
||||
$uiBrowser =& new uiBrowser($config);
|
||||
#$uiBase = new uiBase($config);
|
||||
$uiBase =& $uiBrowser;
|
||||
#$uiScratchPad = new uiScratchPad(&$uiBrowser);
|
||||
|
||||
|
||||
## load Smarty+filters ##############################################
|
||||
require_once dirname(__FILE__).'/SmartyExtensions.inc.php';
|
||||
$Smarty->load_filter('output', 'trimwhitespace');
|
||||
#$Smarty->load_filter('output', 'trimwhitespace');
|
||||
$Smarty->load_filter('post', 'template_marker');
|
||||
$Smarty->load_filter('output', 'localizer');
|
||||
|
||||
|
||||
## some basic things ################################################
|
||||
|
@ -46,7 +49,7 @@ $Smarty->assign('user', array('sessid' => &$uiBrowser->sessid,
|
|||
|
||||
|
||||
## retransfer incomplete formdata from SESSION to POST-data #########
|
||||
if(is_array($_SESSION['retransferFormData'])){
|
||||
if (is_array($_SESSION['retransferFormData'])){
|
||||
foreach($_SESSION['retransferFormData'] as $k=>$v){
|
||||
$_POST[$k] = $v;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ $ui_fmask = array(
|
|||
),
|
||||
array(
|
||||
'element' => 'maxfilesize',
|
||||
'isPref' => TRUE,
|
||||
'type' => 'text',
|
||||
'label' => 'Maximum File Size for Upload',
|
||||
'required' => TRUE,
|
||||
|
@ -25,23 +26,27 @@ $ui_fmask = array(
|
|||
),
|
||||
array(
|
||||
'element' => 'frequency',
|
||||
'isPref' => TRUE,
|
||||
'type' => 'text',
|
||||
'label' => 'Frequency',
|
||||
'required' => TRUE
|
||||
),
|
||||
array(
|
||||
'element' => 'stationName',
|
||||
'isPref' => TRUE,
|
||||
'type' => 'text',
|
||||
'label' => 'Staion Name',
|
||||
'required' => TRUE
|
||||
),
|
||||
array(
|
||||
'element' => 'stationLogoPath',
|
||||
'isPref' => TRUE,
|
||||
'type' => 'text',
|
||||
'label' => 'Station Logo path'
|
||||
),
|
||||
array(
|
||||
'element' => 'stationURL',
|
||||
'isPref' => TRUE,
|
||||
'type' => 'text',
|
||||
'label' => 'Station URL',
|
||||
'default' => 'http://'
|
||||
|
@ -52,6 +57,21 @@ $ui_fmask = array(
|
|||
'format' => UI_REGEX_URL,
|
||||
'rulemsg' => 'URL seems not to be valid'
|
||||
),
|
||||
array(
|
||||
'element' => UI_SCRATCHPAD_MAXLENGTH_KEY,
|
||||
'isPref' => TRUE,
|
||||
'type' => 'select',
|
||||
'label' => 'Maximun length of ScratchPad',
|
||||
'options' => array(
|
||||
'4' => '4',
|
||||
'5' => '5',
|
||||
'6' => '6',
|
||||
'7' => '7',
|
||||
'8' => '8',
|
||||
'9' => '9',
|
||||
'10'=>'10'
|
||||
)
|
||||
),
|
||||
array(
|
||||
'element' => 'upload',
|
||||
'type' => 'header',
|
||||
|
@ -71,12 +91,12 @@ $ui_fmask = array(
|
|||
),
|
||||
|
||||
/* =========================================================== Matadata-Mask */
|
||||
'mData' => array(
|
||||
'editMetaData' => array(
|
||||
'basics' => array(
|
||||
array(
|
||||
'element' => 'act',
|
||||
'type' => 'hidden',
|
||||
'constant'=> 'editMetaDataValues'
|
||||
'constant'=> 'editMetaData'
|
||||
),
|
||||
array(
|
||||
'element' => 'id',
|
||||
|
@ -515,6 +535,7 @@ $ui_fmask = array(
|
|||
array(
|
||||
'element' => 'act',
|
||||
'type' => 'hidden',
|
||||
'default' => 'chgPasswd'
|
||||
),
|
||||
array(
|
||||
'element' => 'uid',
|
||||
|
@ -606,7 +627,7 @@ $ui_fmask = array(
|
|||
)
|
||||
),
|
||||
|
||||
'loginform' => array(
|
||||
'login' => array(
|
||||
array(
|
||||
'element' => 'act',
|
||||
'type' => 'hidden',
|
||||
|
@ -637,11 +658,11 @@ $ui_fmask = array(
|
|||
)
|
||||
),
|
||||
|
||||
'upload' => array(
|
||||
'uploadFileM' => array(
|
||||
array(
|
||||
'element' => 'act',
|
||||
'type' => 'hidden',
|
||||
'constant' => 'upload'
|
||||
'constant' => 'uploadFileM'
|
||||
),
|
||||
array(
|
||||
'element' => 'id',
|
||||
|
@ -692,6 +713,50 @@ $ui_fmask = array(
|
|||
)
|
||||
),
|
||||
|
||||
'addWebstream' => array(
|
||||
array(
|
||||
'element' => 'act',
|
||||
'type' => 'hidden',
|
||||
'constant' => 'addWebstream'
|
||||
),
|
||||
array(
|
||||
'element' => 'id',
|
||||
'type' => 'hidden'
|
||||
),
|
||||
array(
|
||||
'element' => 'name',
|
||||
'type' => 'text',
|
||||
'label' => 'Name',
|
||||
'required' => TRUE,
|
||||
'rule' => 'alphanumeric',
|
||||
'rulemsg' => 'Name must be alphanumeric'
|
||||
),
|
||||
array(
|
||||
'element' => 'url',
|
||||
'type' => 'text',
|
||||
'default' => 'http://',
|
||||
'label' => 'Stream URL',
|
||||
'required' => TRUE,
|
||||
'requiredmsg'=> 'URL is missing',
|
||||
'rule' => 'regex',
|
||||
'format' => UI_REGEX_URL,
|
||||
'rulemsg' => 'URL seems invalid',
|
||||
),
|
||||
array(
|
||||
'element' => 'duration',
|
||||
'type' => 'date',
|
||||
'label' => 'Duration',
|
||||
'options' => array(
|
||||
'format' => 'His',
|
||||
)
|
||||
),
|
||||
array(
|
||||
'element' => 'Submit',
|
||||
'type' => 'submit',
|
||||
'label' => 'Submit'
|
||||
)
|
||||
),
|
||||
|
||||
'searchform' => array(
|
||||
array(
|
||||
'element' => 'act',
|
||||
|
|
|
@ -8,8 +8,8 @@ define('ACTION_BASE', '/actions' ) ;
|
|||
* LiveSupport HTML User Interface module
|
||||
*/
|
||||
class uiHandler extends uiBase {
|
||||
var $redirUrl;
|
||||
var $alertMsg;
|
||||
# var $redirUrl;
|
||||
# var $alertMsg;
|
||||
|
||||
// --- class constructor ---
|
||||
/**
|
||||
|
@ -26,8 +26,6 @@ class uiHandler extends uiBase {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// --- authentication ---
|
||||
/**
|
||||
* login
|
||||
|
@ -68,6 +66,7 @@ class uiHandler extends uiBase {
|
|||
{
|
||||
$this->gb->logout($this->sessid);
|
||||
setcookie($this->config['authCookieName'], '');
|
||||
session_destroy();
|
||||
|
||||
if ($trigger_login)
|
||||
$this->redirUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=login';
|
||||
|
@ -76,7 +75,7 @@ class uiHandler extends uiBase {
|
|||
|
||||
// --- files ---
|
||||
/**
|
||||
* upload
|
||||
* uploadFileM
|
||||
*
|
||||
* Provides file upload and store it to the storage
|
||||
*
|
||||
|
@ -85,42 +84,47 @@ class uiHandler extends uiBase {
|
|||
* @param mdatafile file uploded by HTTP, metadata XML file
|
||||
* @param id int, destination folder id
|
||||
*/
|
||||
function upload(&$formdata, $id, &$mask)
|
||||
function uploadFileM(&$formdata, $id, &$mask)
|
||||
{
|
||||
if ($this->_validateForm($formdata, $mask)) {
|
||||
$tmpgunid = md5(
|
||||
microtime().$_SERVER['SERVER_ADDR'].rand()."org.mdlf.livesupport"
|
||||
);
|
||||
$ntmp = $this->gb->bufferDir.'/'.$tmpgunid;
|
||||
# $ntmp = tempnam(""{$gb->bufferDir}", 'gbTmp_');
|
||||
$mdtmp = "";
|
||||
move_uploaded_file($formdata['mediafile']['tmp_name'], $ntmp);
|
||||
chmod($ntmp, 0664);
|
||||
if($formdata['mdatafile']['tmp_name']){
|
||||
$mdtmp = "$ntmp.xml";
|
||||
if(move_uploaded_file($formdata['mdatafile']['tmp_name'], $mdtmp)){
|
||||
chmod($mdtmp, 0664);
|
||||
if ($this->_isFolder($id)) {
|
||||
if ($this->_validateForm($formdata, $mask)) {
|
||||
$tmpgunid = md5(
|
||||
microtime().$_SERVER['SERVER_ADDR'].rand()."org.mdlf.livesupport"
|
||||
);
|
||||
$ntmp = $this->gb->bufferDir.'/'.$tmpgunid;
|
||||
$mdtmp = "";
|
||||
move_uploaded_file($formdata['mediafile']['tmp_name'], $ntmp);
|
||||
chmod($ntmp, 0664);
|
||||
if($formdata['mdatafile']['tmp_name']){
|
||||
$mdtmp = "$ntmp.xml";
|
||||
if(move_uploaded_file($formdata['mdatafile']['tmp_name'], $mdtmp)){
|
||||
chmod($mdtmp, 0664);
|
||||
}
|
||||
}
|
||||
}
|
||||
$r = $this->gb->putFile($id, $formdata['mediafile']['name'], $ntmp, $mdtmp, $this->sessid);
|
||||
if(PEAR::isError($r)) $this->_retMsg($r->getMessage());
|
||||
else{
|
||||
# $gb->updateMetadataDB($gb->_pathFromId($r), $mdata, $sessid);
|
||||
@unlink($ntmp);
|
||||
@unlink($mdtmp);
|
||||
}
|
||||
$this->add2SP($r);
|
||||
$this->redirUrl = UI_BROWSER."?id=".$id;
|
||||
return $r;
|
||||
} else {
|
||||
$this->redirUrl = UI_BROWSER."?act=newfile&id=".$id;
|
||||
$r = $this->gb->putFile($id, $formdata['mediafile']['name'], $ntmp, $mdtmp, $this->sessid);
|
||||
if(PEAR::isError($r)) {
|
||||
$this->_retMsg($r->getMessage());
|
||||
$this->redirUrl = UI_BROWSER."?act=uploadFileM&id=".$id;
|
||||
return FALSE;
|
||||
} else{
|
||||
@unlink($ntmp);
|
||||
@unlink($mdtmp);
|
||||
$this->redirUrl = UI_BROWSER."?id=".$id;
|
||||
return $r;
|
||||
}
|
||||
} else {
|
||||
$this->redirUrl = UI_BROWSER."?act=uploadFileM&id=".$id;
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
$this->redirUrl = UI_BROWSER.'?id='.$this->gb->getParent($id);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* uploadS1
|
||||
* uploadFile
|
||||
*
|
||||
* Provides file upload and store it to the storage
|
||||
*
|
||||
|
@ -129,35 +133,76 @@ class uiHandler extends uiBase {
|
|||
*/
|
||||
function uploadFile(&$formdata, $id, &$mask)
|
||||
{
|
||||
if ($this->_validateForm($formdata, $mask)) {
|
||||
$tmpgunid = md5(
|
||||
microtime().$_SERVER['SERVER_ADDR'].rand()."org.mdlf.livesupport"
|
||||
);
|
||||
$ntmp = $this->gb->bufferDir.'/'.$tmpgunid;
|
||||
# $ntmp = tempnam(""{$gb->bufferDir}", 'gbTmp_');
|
||||
$mdtmp = "";
|
||||
move_uploaded_file($formdata['mediafile']['tmp_name'], $ntmp);
|
||||
chmod($ntmp, 0664);
|
||||
if ($this->_isFolder($id)) {
|
||||
if ($this->_validateForm($formdata, $mask)) {
|
||||
$tmpgunid = md5(
|
||||
microtime().$_SERVER['SERVER_ADD3R'].rand()."org.mdlf.livesupport"
|
||||
);
|
||||
$ntmp = $this->gb->bufferDir.'/'.$tmpgunid;
|
||||
$mdtmp = "";
|
||||
move_uploaded_file($formdata['mediafile']['tmp_name'], $ntmp);
|
||||
chmod($ntmp, 0664);
|
||||
|
||||
$r = $this->gb->putFile($id, $formdata['mediafile']['name'], $ntmp, NULL, $this->sessid);
|
||||
if(PEAR::isError($r)) $this->_retMsg($r->getMessage());
|
||||
else{
|
||||
# $gb->updateMetadataDB($gb->_pathFromId($r), $mdata, $sessid);
|
||||
@unlink($ntmp);
|
||||
@unlink($mdtmp);
|
||||
$r = $this->gb->putFile($id, $formdata['mediafile']['name'], $ntmp, NULL, $this->sessid);
|
||||
if(PEAR::isError($r)) {
|
||||
$this->_retMsg($r->getMessage());
|
||||
$this->redirUrl = UI_BROWSER."?act=uploadFile&id=$id";
|
||||
return FALSE;
|
||||
} else{
|
||||
@unlink($ntmp);
|
||||
@unlink($mdtmp);
|
||||
$this->redirUrl = UI_BROWSER."?act=editMetaData&id=$r";
|
||||
$this->gb->replaceMetadata($r, $this->_analyzeFile($r, 'xml'), 'string', $this->sessid);
|
||||
return $r;
|
||||
}
|
||||
} else {
|
||||
$this->redirUrl = UI_BROWSER."?act=uploadFile&id=$id";
|
||||
return FALSE;
|
||||
}
|
||||
## extract some metadata with getID3
|
||||
$this->gb->replaceMetadata($r, $this->_getInfo($r, 'xml'), 'string', $this->sessid);
|
||||
|
||||
$this->add2SP($r);
|
||||
$this->redirUrl = UI_BROWSER."?act=editMetaDataValues&id=$r";
|
||||
return $r;
|
||||
} else {
|
||||
$this->redirUrl = UI_BROWSER."?act=uploadFile&id=$id";
|
||||
$this->redirUrl = UI_BROWSER.'?id='.$this->gb->getParent($id);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* addWebstream
|
||||
*
|
||||
* Provides file upload and store it to the storage
|
||||
*
|
||||
* @param formdata array, submitted text and file
|
||||
* @param id int, destination folder id
|
||||
*/
|
||||
function addWebstream(&$formdata, $id, &$mask)
|
||||
{
|
||||
if ($this->_isFolder($id)) {
|
||||
if ($this->_validateForm($formdata, $mask)) {
|
||||
|
||||
$r = $this->gb->storeWebstream($id, $formdata['name'], NULL, $this->sessid, NULL, $formdata['url']);
|
||||
if(PEAR::isError($r)) {
|
||||
$this->_retMsg($r->getMessage());
|
||||
$this->redirUrl = UI_BROWSER."?act=addWebstream&id=$id";
|
||||
return FALSE;
|
||||
}
|
||||
else{
|
||||
$data = $this->_dateArr2Str($formdata);
|
||||
$this->gb->setMDataValue($r, 'dc:title', $this->sessid, $data['name']);
|
||||
$this->gb->setMDataValue($r, 'dcterms:extent', $this->sessid, $data['duration']);
|
||||
$this->redirUrl = UI_BROWSER."?act=editMetaData&id=$r";
|
||||
return $r;
|
||||
}
|
||||
} else {
|
||||
$this->redirUrl = UI_BROWSER."?act=addWebstream&id=$id";
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
$this->redirUrl = UI_BROWSER.'?id='.$this->gb->getParent($id);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* newFolder
|
||||
*
|
||||
|
@ -168,9 +213,14 @@ class uiHandler extends uiBase {
|
|||
*/
|
||||
function newFolder($newname, $id)
|
||||
{
|
||||
$r = $this->gb->createFolder($id, $newname, $this->sessid);
|
||||
if(PEAR::isError($r)) $this->_retMsg($r->getMessage());
|
||||
$this->redirUrl = UI_BROWSER.'?id='.$id;
|
||||
if ($this->_isFolder($id)) {
|
||||
$r = $this->gb->createFolder($id, $newname, $this->sessid);
|
||||
if(PEAR::isError($r))
|
||||
$this->_retMsg($r->getMessage());
|
||||
$this->redirUrl = UI_BROWSER.'?id='.$id;
|
||||
} else {
|
||||
$this->redirUrl = UI_BROWSER.'?id='.$this->gb->getParent($id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -300,7 +350,7 @@ class uiHandler extends uiBase {
|
|||
*/
|
||||
function addSubj(&$formdata, &$mask)
|
||||
{
|
||||
$this->redirUrl = UI_BROWSER.'?act='.$_REQUEST['act'];
|
||||
$this->redirUrl = UI_BROWSER.'?act='.$formdata['act'];
|
||||
|
||||
## first validate the form data
|
||||
if ($this->_validateForm($formdata, $mask)) {
|
||||
|
@ -336,7 +386,7 @@ class uiHandler extends uiBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* passwd
|
||||
* chgPasswd
|
||||
*
|
||||
* Change password for specified user
|
||||
*
|
||||
|
@ -345,9 +395,9 @@ class uiHandler extends uiBase {
|
|||
* @param pass string, new password
|
||||
* @param pass2 string, retype of new password
|
||||
*/
|
||||
function passwd($uid, $oldpass, $pass, $pass2)
|
||||
function chgPasswd($uid, $oldpass, $pass, $pass2)
|
||||
{
|
||||
$this->redirUrl = UI_BROWSER.'?act=subjects';
|
||||
$this->redirUrl = UI_BROWSER.'?act=chgPasswd&uid='.$uid;
|
||||
$ulogin = $this->gb->getSubjName($uid);
|
||||
|
||||
if($this->userid != $uid &&
|
||||
|
@ -365,6 +415,8 @@ class uiHandler extends uiBase {
|
|||
$this->redirUrl = UI_BROWSER.'?act=subjects';
|
||||
return;
|
||||
}
|
||||
$this->_retMsg('Password changed');
|
||||
$this->redirUrl = UI_BROWSER.'?act=subjects';
|
||||
$this->gb->passwd($ulogin, $oldpass, $pass);
|
||||
}
|
||||
|
||||
|
@ -408,7 +460,7 @@ class uiHandler extends uiBase {
|
|||
|
||||
|
||||
/**
|
||||
* addSubj2Group
|
||||
* addSubj2Group
|
||||
*
|
||||
* Add {login} and direct/indirect members to {gname} and to groups,
|
||||
* where {gname} is [in]direct member
|
||||
|
@ -417,56 +469,56 @@ class uiHandler extends uiBase {
|
|||
* @param gname string
|
||||
* @param reid string, local id of managed group, just needed for redirect
|
||||
*/
|
||||
function addSubj2Group($login, $gname, $reid)
|
||||
function addSubj2Group(&$formdata)
|
||||
{
|
||||
if($this->gb->checkPerm($this->userid, 'subjects')){
|
||||
$res = $this->gb->addSubj2Gr($login, $gname);
|
||||
$res = $this->gb->addSubj2Gr($formdata['login'], $formdata['gname']);
|
||||
}else{
|
||||
$this->_retMsg('Access denied.');
|
||||
return;
|
||||
}
|
||||
if(PEAR::isError($res)) $this->_retMsg($res->getMessage());
|
||||
|
||||
$this->redirUrl = UI_BROWSER.'?act=groups&id='.$reid;
|
||||
$this->redirUrl = UI_BROWSER.'?act=groupMembers&id='.$formdata['reid'];
|
||||
}
|
||||
|
||||
/**
|
||||
* removeGroupMember
|
||||
*
|
||||
* Remove subject from group
|
||||
*
|
||||
* @param login string
|
||||
* @param gname string
|
||||
* @param reid string, local id of managed group, just needed for redirect
|
||||
*/
|
||||
function removeSubjFromGr($login, $gname, $reid)
|
||||
function removeGroupMember(&$formdata)
|
||||
{
|
||||
if($this->gb->checkPerm($this->userid, 'subjects')){
|
||||
$res = $this->gb->removeSubjFromGr($login, $gname);
|
||||
}else{
|
||||
if ($this->gb->checkPerm($this->userid, 'subjects')){
|
||||
$res = $this->gb->removeSubjFromGr($formdata['login'], $formdata['gname']);
|
||||
} else {
|
||||
$this->_retMsg('Access denied.');
|
||||
return;
|
||||
}
|
||||
if(PEAR::isError($res)) $this->_retMsg($res->getMessage());
|
||||
|
||||
$this->redirUrl = UI_BROWSER.'?act=groups&id='.$reid;
|
||||
$this->redirUrl = UI_BROWSER.'?act=groupMembers&id='.$formdata['reid'];
|
||||
}
|
||||
|
||||
|
||||
function storeMetaData(&$formdata, &$mask)
|
||||
function editMetaData($id, &$formdata, &$mask)
|
||||
{
|
||||
$this->redirUrl = UI_BROWSER.'?act=editMetaDataValues&id='.$formdata['id'];
|
||||
$this->redirUrl = UI_BROWSER.'?id='.$this->gb->getParent($id);
|
||||
## first remove old entrys
|
||||
$this->gb->replaceMetaData($id, $this->_analyzeFile($id, 'xml'), 'string', $this->sessid);
|
||||
|
||||
foreach ($mask['tabs']['group']['group'] as $key) {
|
||||
foreach ($mask['pages'][$key] as $k=>$v) {
|
||||
$formdata[$key.'__'.$v['element']] ? $mData[strtr($v['element'], '_', '.')] = $formdata[$key.'__'.$v['element']] : NULL;
|
||||
}
|
||||
}
|
||||
|
||||
$this->_dateArr2Str(&$mData);
|
||||
|
||||
foreach ($mData as $key=>$val) {
|
||||
#echo "id: {$formdata['id']}, key: $key, val: $val<br>";
|
||||
$this->gb->setMDataValue($formdata['id'], $key, $this->sessid, $val);
|
||||
$data = $this->_dateArr2Str($mData);
|
||||
foreach ($data as $key=>$val) {
|
||||
$this->gb->setMDataValue($id, $key, $this->sessid, $val);
|
||||
}
|
||||
|
||||
$this->_retMsg('Metadata saved');
|
||||
}
|
||||
|
||||
|
@ -514,15 +566,14 @@ class uiHandler extends uiBase {
|
|||
{
|
||||
$this->redirUrl = UI_BROWSER.'?act=systemPrefs';
|
||||
|
||||
## first validate the form data
|
||||
if ($this->_validateForm($formdata, $mask)) {
|
||||
|
||||
foreach($mask as $key=>$val) {
|
||||
if ($this->_isTextInput ($val['type'], $mask)) {
|
||||
if ($val['isPref']) {
|
||||
if (strlen($formdata[$val['element']]))
|
||||
$this->gb->saveGroupPref($this->sessid, 'StationPrefs', $val['element'], $formdata[$val['element']]);
|
||||
else
|
||||
$this->gb->delGroupPref($this->sessid, 'StationPrefs', $val['element']);
|
||||
$this->systemPrefs[$val['element']] = is_string($this->gb->loadGroupPref(NULL, 'StationPrefs', $val['element'])) ? $this->gb->loadGroupPref($this->sessid, 'StationPrefs', $val['element']) : NULL;
|
||||
}
|
||||
if ($val['type'] == 'file' && $formdata[$val['element']]['name']) {
|
||||
if (FALSE === @move_uploaded_file($formdata[$val['element']]['tmp_name'], $this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'stationLogoPath')))
|
||||
|
@ -539,7 +590,7 @@ class uiHandler extends uiBase {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
function _isTextInput($input)
|
||||
{
|
||||
$test = array('text' =>0, 'textarea' =>0, 'select'=>0, 'radio'=>0, 'checkbox'=>0);
|
||||
|
@ -548,6 +599,7 @@ class uiHandler extends uiBase {
|
|||
|
||||
return FALSE;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
?>
|
|
@ -6,6 +6,7 @@ session_start();
|
|||
require_once dirname(__FILE__).'/conf.php';
|
||||
require_once dirname(__FILE__).'/ui_base.inc.php';
|
||||
require_once dirname(__FILE__).'/ui_handler.class.php';
|
||||
require_once dirname(__FILE__).'/ui_scratchPad.class.php';
|
||||
require_once dirname(__FILE__).'/../../storageServer/var/GreenBox.php';
|
||||
|
||||
|
||||
|
@ -20,9 +21,10 @@ PEAR::setErrorHandling(PEAR_ERROR_RETURN);
|
|||
|
||||
|
||||
## initialize objects ###############################################
|
||||
$uiHandler = new uiHandler($config);
|
||||
$uiBase = new uiBase($config);
|
||||
|
||||
$uiHandler =& new uiHandler($config);
|
||||
#$uiBase = new uiBase($config);
|
||||
$uiBase =& $uiHandler;
|
||||
#$uiScratchPad =& new uiScratchPad(&$uiHandler);
|
||||
|
||||
## mask for forms, at the end because $uiBase is used ###############
|
||||
require_once dirname(__FILE__).'/ui_fmask.inc.php';
|
||||
|
|
|
@ -0,0 +1,123 @@
|
|||
<?php
|
||||
class uiScratchPad
|
||||
{
|
||||
function uiScratchPad(&$uiBase)
|
||||
{
|
||||
$this->Base = &$uiBase;
|
||||
$this->items = &$_SESSION[UI_SCRATCHPAD_SESSNAME]['content'];
|
||||
$this->order = &$_SESSION[UI_SCRATCHPAD_SESSNAME]['order'];
|
||||
$this->reloadUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close';
|
||||
}
|
||||
|
||||
function setReload()
|
||||
{
|
||||
$this->Base->redirUrl = $this->reloadUrl;
|
||||
}
|
||||
|
||||
function &get()
|
||||
{
|
||||
if (!is_array($this->items))
|
||||
$this->_load();
|
||||
return $this->items;
|
||||
}
|
||||
|
||||
function _load()
|
||||
{
|
||||
$this->items = array();
|
||||
$spData = $this->Base->gb->loadPref($this->Base->sessid, UI_SCRATCHPAD_KEY);
|
||||
if (!PEAR::isError($spData)) {
|
||||
## ScratchPad found in DB
|
||||
$arr = explode(' ', $spData);
|
||||
/*
|
||||
## Akos old format #####################################
|
||||
foreach($arr as $val) {
|
||||
if (preg_match(UI_SCRATCHPAD_REGEX, $val)) {
|
||||
list ($gunid, $date) = explode(':', $val);
|
||||
if ($this->Base->gb->_idFromGunid($gunid) != FALSE) {
|
||||
$res[] = array_merge($this->Base->_getMetaInfo($this->Base->gb->_idFromGunid($gunid)), array('added' => $date));
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
## new format ##########################################
|
||||
foreach($arr as $gunid) {
|
||||
if (preg_match('/[0-9]{1,20}/', $gunid)) {
|
||||
if ($this->Base->gb->_idFromGunid($this->Base->_toHex($gunid)) != FALSE) {
|
||||
$this->items[] = $this->Base->_getMetaInfo($this->Base->gb->_idFromGunid($this->Base->_toHex($gunid)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function save()
|
||||
{
|
||||
foreach($this->items as $val) {
|
||||
#$str .= $val['gunid'].':'.$val['added'].' '; ## new format ###
|
||||
$str .= $this->Base->_toInt8($val['gunid']).' '; ## Akos´ old format ###
|
||||
}
|
||||
$this->Base->gb->savePref($this->Base->sessid, UI_SCRATCHPAD_KEY, $str);
|
||||
}
|
||||
|
||||
|
||||
function addItem($id)
|
||||
{
|
||||
$item = $this->Base->_getMetaInfo($id);
|
||||
$sp = $this->get();
|
||||
foreach ($sp as $key=>$val) {
|
||||
if ($val['gunid'] == $item['gunid']) {
|
||||
unset($sp[$key]);
|
||||
$this->Base->_retMsg('Entry $1 was already on SP since $2.\nMoved to Top.', $item['title'], $val['added']);
|
||||
} else {
|
||||
#$this->Base->incAccessCounter($id);
|
||||
}
|
||||
}
|
||||
$sp = array_merge(array($item), is_array($sp) ? $sp : NULL);
|
||||
for ($n=0; $n<$this->Base->systemPrefs[UI_SCRATCHPAD_MAXLENGTH_KEY]; $n++) {
|
||||
if (is_array($sp[$n])) $this->items[$n] = $sp[$n];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function removeItems($ids)
|
||||
{
|
||||
if (!$ids)
|
||||
return; ## empty parameter
|
||||
if (!is_array($ids))
|
||||
$ids = array($ids); ## just single id given
|
||||
|
||||
foreach ($ids as $id) {
|
||||
$info = $this->Base->_getMetaInfo($id);
|
||||
$sp =& $this->get();
|
||||
foreach ($sp as $key=>$val) {
|
||||
if ($val['gunid'] == $info['gunid']) {
|
||||
unset ($sp[$key]);
|
||||
#$this->Base->decAccessCounter($id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function reOrder($by)
|
||||
{
|
||||
foreach ($this->items as $key=>$val) {
|
||||
$s[$key] = $val[$by];
|
||||
}
|
||||
|
||||
$curr = $this->order[$by];
|
||||
$this->order = array();
|
||||
(is_null($curr) || $curr=='arsort') ? $this->order[$by] = 'asort' : $this->order[$by] = 'arsort';
|
||||
|
||||
$this->order[$by]($s);
|
||||
|
||||
foreach ($s as $key=>$val) {
|
||||
$res[] = $this->items[$key];
|
||||
}
|
||||
|
||||
$this->items = $res;
|
||||
}
|
||||
}
|
||||
?>
|
Loading…
Reference in New Issue