some features for 1.0 added

Serbian localisation finished
This commit is contained in:
sebastian 2005-06-07 15:55:28 +00:00
parent 512f2e811d
commit 2e34430b32
23 changed files with 495 additions and 324 deletions

View file

@ -142,61 +142,6 @@ $ui_fmask = array(
),
'addUser' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'addUser'
),
array(
'element' => 'login',
'type' => 'text',
'label' => 'Username',
'required' => TRUE
),
array(
'element' =>'pass',
'type' =>'password',
'label' =>'User Password',
'required' =>TRUE
),
array(
'element' =>'pass2',
'type' =>'password',
'label' =>'Repeat Password',
'required' =>TRUE
),
array(
'rule' =>'compare',
'element' =>array('pass','pass2'),
'rulemsg' =>'The passwords do not match'
),
array(
'element' =>'Submit',
'type' =>'submit',
'label' =>'Submit'
)
),
'addGroup' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'addGroup'
),
array(
'element' => 'login',
'type' => 'text',
'label' => 'Group Name',
'required' => TRUE
),
array(
'element' =>'Submit',
'type' =>'submit',
'label' =>'Submit'
)
),
'login' => array(
array(
'element' => 'act',
@ -207,14 +152,16 @@ $ui_fmask = array(
'element' => 'login',
'type' => 'text',
'label' => 'Username',
'required' => TRUE
'required' => TRUE,
'attributes' => array('size' => 20)
),
array(
'element' => 'pass',
'type' => 'password',
'label' => 'Password',
'required' => TRUE,
'requiredmsg' => ""
'requiredmsg' => "",
'attributes' => array('size' => 20)
),
array(
'element' => 'cancel',
@ -335,8 +282,28 @@ $ui_fmask = array(
'rule' => 'regex',
'format' => UI_REGEX_URL,
'rulemsg' => 'URL seems invalid',
'attributes'=> array('maxlength' => 256)
'attributes'=> array('maxlength' => 256),
#'groupit' => TRUE
),
/*
array(
'element' => 'test',
'type' => 'button',
'label' => 'Test',
'groupit' => TRUE,
'attributes'=> array('onclick' => "popup('".UI_BROWSER."?popup[]=testStream&url=' + document.forms['addWebstream'].elements['grp[url]'].value, 'PingSTream', 400, 250)")
),
array(
'group' => array('url', 'test'),
'name' => 'grp',
'label' => 'Stream URL',
),
array(
'grouprule',
'name' => 'grprule',
),
*/
array(
'element' => 'length',
'type' => 'date',
@ -350,6 +317,13 @@ $ui_fmask = array(
'attributes'=> array('onClick' => "location.href='".UI_BROWSER."'"),
'groupit' => TRUE
),
array(
'element' => 'test',
'type' => 'button',
'label' => 'Test',
'groupit' => TRUE,
'attributes'=> array('onclick' => "if (validate_addWebstream(document.forms['addWebstream'])) popup('".UI_BROWSER."?popup[]=testStream&url=' + document.forms['addWebstream'].elements['url'].value, 'testStream', 400, 250)")
),
array(
'element' => 'Submit',
'type' => 'submit',
@ -357,7 +331,7 @@ $ui_fmask = array(
'groupit' => TRUE
),
array(
'group' => array('cancel', 'Submit')
'group' => array('cancel', 'test', 'Submit')
)
),

View file

@ -151,7 +151,7 @@ $mask = array(
'element' => 'ls:year',
'type' => 'select',
'label' => 'Year',
#'options' => _getNumArr(1900, date('Y')+5),
'options' => _getNumArr(1900, date('Y')+5),
'id3' => 'Year'
),
array(
@ -209,14 +209,14 @@ $mask = array(
'element' => 'ls:track_num',
'type' => 'select',
'label' => 'Track number',
#'options' => _getNumArr(0, 99),
'options' => _getNumArr(0, 99),
'id3' => 'Track'
),
array(
'element' => 'ls:disc_num',
'type' => 'select',
'label' => 'Disc number',
#'options' => _getNumArr(0, 20),
'options' => _getNumArr(0, 20),
'id3' => 'Disk'
),
array(

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

View file

@ -57,7 +57,8 @@ if (is_array($_REQUEST['popup'])){
break;
case "deleteItem":
$Smarty->assign('id', $_REQUEST['id']);
$Smarty->assign('id', $_REQUEST['id']);
$Smarty->assign('filename', $uiBrowser->_getMDataValue($_REQUEST['id'], UI_MDATA_KEY_TITLE));
$Smarty->display('popup/deleteItem.tpl');
break;
@ -92,6 +93,11 @@ if (is_array($_REQUEST['popup'])){
$Smarty->assign('lgoin', $_REQUEST['login']);
$Smarty->display('popup/SUBJECTS.confirmRemoveSubj.tpl');
break;
case "testStream":
$Smarty->assign('data', $uiBrowser->testStream($_REQUEST['url']));
$Smarty->display('popup/testStream.tpl');
break;
}
}
die();

View file

@ -1,6 +1,6 @@
<?php
require dirname(__FILE__).'/../ui_handler_init.php';
switch($_REQUEST['act']){
case "login":

View file

@ -6,9 +6,11 @@ function login(&$data)
include_once dirname(__FILE__).'/../../../storageServer/var/conf.php';
include_once dirname(__FILE__).'/../../../storageServer/var/GreenBox.php';
$dbc = DB::connect($config['dsn'], TRUE);
if (DB::isError($dbc)) {
die($dbc->getMessage());
}
$dbc->setFetchMode(DB_FETCHMODE_ASSOC);
$gb =& new GreenBox($dbc, $config);
@ -16,10 +18,13 @@ function login(&$data)
if (!$data['PHP_AUTH_USER'] || !$data['PHP_AUTH_PW']) {
return FALSE;
}
$sessid = $gb->login($data['PHP_AUTH_USER'], $data['PHP_AUTH_PW']);
if(!$sessid || PEAR::isError($sessid)){
if (!$sessid || PEAR::isError($sessid)){
return FALSE;
}
setcookie($config['authCookieName'], $sessid);
if ($gb->isMemberOf($gb->getSessUserId($sessid), $gb->getSubjId('Admins')) !== TRUE) {
@ -27,9 +32,11 @@ function login(&$data)
}
$id = $gb->getObjId($data['PHP_AUTH_USER'], $gb->storId);
if(PEAR::isError($id)) {
return FALSE;
}
return TRUE;
}

View file

@ -1,122 +1,161 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<Id>sr_CS</Id>
<status>checked</status>
<item>
<key>collect expressions</key>
</item>
<item>
<key>localizer</key>
</item>
<item>
<key>$1 file already exist in $2</key>
</item>
<item>
<key>edit &quot;$1&quot;</key>
</item>
<item>
<key>edit &apos;$1&apos;</key>
</item>
<item>
<key>create new language file $1</key>
</item>
<item>
<key>create new language file in</key>
</item>
<item>
<key>delete</key>
</item>
<item>
<key>edit</key>
</item>
<item>
<key>entrys:</key>
</item>
<item>
<key>$1 and $2 files already exist in $3</key>
</item>
<item>
<key>ok</key>
</item>
<item>
<key>add new fields:</key>
</item>
<item>
<key>name</key>
</item>
<item>
<key>native name</key>
</item>
<item>
<key>code</key>
</item>
<item>
<key>source:</key>
</item>
<item>
<key>target:</key>
</item>
<item>
<key>manage languages</key>
</item>
<item>
<key>choose language</key>
</item>
<item>
<key>key:</key>
</item>
<item>
<key>cannot open $1</key>
</item>
<item>
<key>key &quot;$1&quot; already exists in $2-file</key>
</item>
<item>
<key>show only untranslated</key>
</item>
<item>
<key>cannot read $1</key>
</item>
<item>
<key>translate from:</key>
</item>
<item>
<key>really delete this entry?</key>
</item>
<item>
<key>fully translated</key>
</item>
<item>
<key>after</key>
</item>
<item>
<key>go</key>
</item>
<item>
<key>back</key>
</item>
<item>
<key>and select file type</key>
</item>
<item>
<key>and enter a positive integer value</key>
</item>
<item>
<key>save to file</key>
</item>
<item>
<key>add new language</key>
</item>
<item>
<key>create language files</key>
</item>
<item>
<key>at begin</key>
</item>
<item>
<key>at end</key>
</item>
<item>
<key>key</key>
</item>
</language>
<Id>sr_CS</Id>
<status>checked</status>
<item>
<key>collect expressions</key>
<value>sakupi izraze</value>
</item>
<item>
<key>localizer</key>
<value>lokalizator</value>
</item>
<item>
<key>$1 file already exist in $2</key>
<value>$1 fajl već postoji u $2</value>
</item>
<item>
<key>edit &quot;$1&quot;</key>
<value>izmeni &quot;$1&quot;</value>
</item>
<item>
<key>edit &apos;$1&apos;</key>
<value>izmeni &apos;$1&apos;</value>
</item>
<item>
<key>create new language file $1</key>
<value>kreiraj novi jezični fajl $1</value>
</item>
<item>
<key>create new language file in</key>
<value>kreiraj novi jezični fajl u</value>
</item>
<item>
<key>delete</key>
<value>obriši</value>
</item>
<item>
<key>edit</key>
<value>izmeni</value>
</item>
<item>
<key>entrys:</key>
<value>unosi:</value>
</item>
<item>
<key>$1 and $2 files already exist in $3</key>
<value>$1 i $2 fajlovi već postoje u $3</value>
</item>
<item>
<key>ok</key>
<value>ok</value>
</item>
<item>
<key>add new fields:</key>
<value>dodaj nova polja:</value>
</item>
<item>
<key>name</key>
<value>ime</value>
</item>
<item>
<key>native name</key>
<value>izvorno ime</value>
</item>
<item>
<key>code</key>
<value>kod</value>
</item>
<item>
<key>source:</key>
<value>izvor:</value>
</item>
<item>
<key>target:</key>
<value>cilj:</value>
</item>
<item>
<key>manage languages</key>
<value>obezbedi jezike</value>
</item>
<item>
<key>choose language</key>
<value>izaberi jezik</value>
</item>
<item>
<key>key:</key>
<value>ključ:</value>
</item>
<item>
<key>cannot open $1</key>
<value>ne možete da otvorite $1</value>
</item>
<item>
<key>key &quot;$1&quot; already exists in $2-file</key>
<value>taster &quot;$1&quot; već postoji u fajlu $2</value>
</item>
<item>
<key>show only untranslated</key>
<value>prikaži samo ono što nije prevedeno</value>
</item>
<item>
<key>cannot read $1</key>
<value>ne možete da iščitate $1</value>
</item>
<item>
<key>translate from:</key>
<value>prevedi sa:</value>
</item>
<item>
<key>really delete this entry?</key>
<value>zaista brišete ovaj unos?</value>
</item>
<item>
<key>fully translated</key>
<value>kompletno obrađeno</value>
</item>
<item>
<key>after</key>
<value>posle</value>
</item>
<item>
<key>go</key>
<value>kreni</value>
</item>
<item>
<key>back</key>
<value>nazad</value>
</item>
<item>
<key>and select file type</key>
<value>dodaj odabrani tip fajla</value>
</item>
<item>
<key>and enter a positive integer value</key>
<value>i dodaj pozitivnu celobrojnu vrednost</value>
</item>
<item>
<key>save to file</key>
<value>sačuvaj u fajlu</value>
</item>
<item>
<key>add new language</key>
<value>dodaj novi jezik</value>
</item>
<item>
<key>create language files</key>
<value>napravi jezične fajlove</value>
</item>
<item>
<key>at begin</key>
<value>na početku</value>
</item>
<item>
<key>at end</key>
<value>na kraju</value>
</item>
<item>
<key>key</key>
<value>taster</value>
</item>
</language>

View file

@ -1,81 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<Id>es_CO</Id>
<status>checked</status>
<item>
<key>Mo</key>
<value />
<value>Lu</value>
</item>
<item>
<key>Tu</key>
<value />
<value>Ma</value>
</item>
<item>
<key>We</key>
<value />
<value>Mi</value>
</item>
<item>
<key>Th</key>
<value />
<value>Ju</value>
</item>
<item>
<key>Fr</key>
<value />
<value>Vi</value>
</item>
<item>
<key>Sa</key>
<value />
<value>Sa</value>
</item>
<item>
<key>Su</key>
<value />
<value>Do</value>
</item>
<item>
<key>January</key>
<value />
<value>Enero</value>
</item>
<item>
<key>February</key>
<value />
<value>Febrero</value>
</item>
<item>
<key>March</key>
<value />
<value>Marzo</value>
</item>
<item>
<key>April</key>
<value />
<value>Abril</value>
</item>
<item>
<key>May</key>
<value />
<value>Mayo</value>
</item>
<item>
<key>July</key>
<value />
<value>Julio</value>
</item>
<item>
<key>August</key>
<value />
<value>Agosto</value>
</item>
<item>
<key>September</key>
<value />
<value>Septiembre</value>
</item>
<item>
<key>October</key>
<value />
<value>Octubre</value>
</item>
<item>
<key>November</key>
<value />
<value>Noviembre</value>
</item>
<item>
<key>December</key>
<value />
<value>Diciembre</value>
</item>
<item>
<key>June</key>
<value />
<value>Junio</value>
</item>
<item>
<key>Monday</key>

View file

@ -108,7 +108,7 @@
</item>
<item>
<key>$1 must be $2</key>
<value>$1 mora biti $2</value>
<value>$1 mora biti $2.</value>
</item>
<item>
<key>+</key>
@ -132,7 +132,7 @@
</item>
<item>
<key>User or group &quot;$1&quot; already exists.</key>
<value>Korisnik ili grupa &quot;$1&quot; već postoji</value>
<value>Korisnik ili grupa &quot;$1&quot; već postoji.</value>
</item>
<item>
<key>created at $1</key>
@ -160,7 +160,7 @@
</item>
<item>
<key>Are you sure to discard all changes?</key>
<value>Da li ste sigurni da želite da isključite sve promene?</value>
<value>Da li ste sigurni da želite da odbacite sve promene?</value>
</item>
<item>
<key>Are you sure you want to change existing metadata?</key>
@ -216,7 +216,7 @@
</item>
<item>
<key>Nothing left</key>
<value>Nista nije ostalo</value>
<value>Ništa nije ostalo</value>
</item>
<item>
<key>Remove from group</key>
@ -232,7 +232,7 @@
</item>
<item>
<key>You need to have at least one non-open playlist on ScratchPad to schedule it.</key>
<value>Treba da imate najmanje jednu neotvorenu plej listu u Pripremi da biste je ubacili u raspored.</value>
<value>Treba da imate najmanje jednu neotvorenu plej listu u Pripremi da biste je stavili u raspored.</value>
</item>
<item>
<key>empty</key>
@ -276,7 +276,7 @@
</item>
<item>
<key>Unable to set &quot;$1&quot; to value &quot;$2&quot;.</key>
<value>Ne možete da podesite &quot;$1&quot; na vrednost &quot;$2&quot;.</value>
<value>Ne možete podesiti &quot;$1&quot; na vrednost &quot;$2&quot;.</value>
</item>
<item>
<key>$1 uses an unsupported file type.</key>
@ -284,7 +284,7 @@
</item>
<item>
<key>Uploaded file $1 is bigger than LiveSupports system setting.</key>
<value>Poslati fajl $1 je veći nego što LiveSupport sistem podržava.</value>
<value>Aploudovan fajl $1 je veći nego što LiveSupport sistem podržava.</value>
</item>
<item>
<key>ScratchPad</key>
@ -292,7 +292,7 @@
</item>
<item>
<key>Access denied.</key>
<value>Pristup zabranjen</value>
<value>Pristup zabranjen.</value>
</item>
<item>
<key>Already active Playlist</key>
@ -300,7 +300,7 @@
</item>
<item>
<key>Audioclip Data saved</key>
<value>Podaci o audio fajlu su sačuvani.</value>
<value>Podaci o audio klipu su sačuvani.</value>
</item>
<item>
<key>Cannot create Playlist</key>
@ -328,15 +328,15 @@
</item>
<item>
<key>Entry $1 was already on the ScratchPad. It has been moved to the top of the list.</key>
<value>Unos se već nalazi u Pripremi i pomeren je na vrh liste.</value>
<value>Unos $1 se već nalazi u Pripremi i pomeren je na vrh liste.</value>
</item>
<item>
<key>Entry added at $1 with ScheduleId: $2</key>
<value>Podatak je unet $1 sa rasporedom $2.</value>
<value>Podatak je unet u $1 sa programiranim ID $2.</value>
</item>
<item>
<key>Entry with ScheduleId $1 removed</key>
<value>Unos sa rasporeda ID $1 je uklonjen</value>
<value>Unos sa programiranim ID $1 je uklonjen.</value>
</item>
<item>
<key>Error on add item to Playlist</key>
@ -344,11 +344,11 @@
</item>
<item>
<key>Error saving Settings</key>
<value>Greška prilikom snimanja sistemskih vrednosti</value>
<value>Greška pri snimanju sistemskih podešavanja.</value>
</item>
<item>
<key>Error uploading Logo</key>
<value>Greška kod slanja Logoa.</value>
<value>Greška pri aploudu Logoa.</value>
</item>
<item>
<key>Error: $1</key>
@ -356,7 +356,7 @@
</item>
<item>
<key>File $1 was not uploaded.</key>
<value>Fajl $1 nije poslat.</value>
<value>Fajl $1 nije aploudovan.</value>
</item>
<item>
<key>Folder is not empty. You can override this protection by clicking DEL again</key>
@ -388,7 +388,7 @@
</item>
<item>
<key>No Playlist is locked by You.</key>
<value>Ni jedna plejlista nije aktivna.</value>
<value>Nema aktivne plej liste.</value>
</item>
<item>
<key>Note: Station Preferences not setup proberly.</key>
@ -428,7 +428,7 @@
</item>
<item>
<key>ScratchPad length is not set in System Preferences, so it cannot be used.</key>
<value>Dužina pripremne tabele nije podešena u sistemu, pa neće biti upotrebljena.</value>
<value>Dužina pripremne tabele nije podešena u sistemu, pa ne može biti upotrebljena.</value>
</item>
<item>
<key>Select a Value</key>
@ -452,7 +452,7 @@
</item>
<item>
<key>Target is not Folder</key>
<value>Traženo nije direktorijum.</value>
<value>Traženo nije folder.</value>
</item>
<item>
<key>There is no playlist available to unlock.</key>
@ -468,11 +468,11 @@
</item>
<item>
<key>Upload of file $1 was incomplete.</key>
<value>Poslati fajl $1 nije kompletan.</value>
<value>Aploud fajla $1 nije kompletan.</value>
</item>
<item>
<key>Uploaded file $1 is bigger than setting in php.ini.</key>
<value>Poslati fajl $1 je veći od vrednosti u php.ini.</value>
<value>Aploudovan fajl $1 je veći od podešenog u php.ini.</value>
</item>
<item>
<key>You have an Playlist already activated, first close it</key>
@ -528,7 +528,7 @@
</item>
<item>
<key>Audio source web page</key>
<value>Web strana sa informacijom o audio fajlu</value>
<value>Web strana audio izvora</value>
</item>
<item>
<key>BPM</key>
@ -540,7 +540,7 @@
</item>
<item>
<key>Browse</key>
<value>Pronadji</value>
<value>Pregledaj</value>
</item>
<item>
<key>Buy CD web page</key>
@ -648,7 +648,7 @@
</item>
<item>
<key>Display this Playlist</key>
<value>Prikaži plejlistu</value>
<value>Prikaži plej listu</value>
</item>
<item>
<key>Duration</key>
@ -704,7 +704,7 @@
</item>
<item>
<key>Folder Structure</key>
<value>Struktura direktorijuma</value>
<value>Struktura foldera</value>
</item>
<item>
<key>Format</key>
@ -720,7 +720,7 @@
</item>
<item>
<key>Go</key>
<value>Traži</value>
<value>Kreni</value>
</item>
<item>
<key>Group Name</key>
@ -736,7 +736,7 @@
</item>
<item>
<key>Insert Playlist here</key>
<value>&lt;ovde unesi plej listu&gt;</value>
<value>&lt;Ovde unesi plej listu&gt;</value>
</item>
<item>
<key>Insert Playlist after previous</key>
@ -760,7 +760,7 @@
</item>
<item>
<key>Length&lt;br&gt;&lt;small&gt;Enter zero for Live Stream&lt;/small&gt;</key>
<value>Upiši nulu za Live Stream</value>
<value>Upiši nulu za Live Strim</value>
</item>
<item>
<key>Library Search</key>
@ -768,7 +768,7 @@
</item>
<item>
<key>List Folder</key>
<value>Izlistaj direktorijum</value>
<value>Izlistaj folder</value>
</item>
<item>
<key>Listen to File</key>
@ -848,11 +848,11 @@
</item>
<item>
<key>New Playlist using this File</key>
<value>Nova plej lista koristi fajl</value>
<value>Nova plej lista koristi fajl</value>
</item>
<item>
<key>New Playlist using this file(s)</key>
<value>Nova plej lista koristi fajlove</value>
<value>Nova plej lista koristi fajlove</value>
</item>
<item>
<key>New empty Playlist</key>
@ -972,11 +972,11 @@
</item>
<item>
<key>Reset</key>
<value>Napiši organizaciju</value>
<value>Poništi</value>
</item>
<item>
<key>Reset Criteria</key>
<value>Poništi</value>
<value>Poništi kriterijum</value>
</item>
<item>
<key>Retype Password</key>
@ -984,174 +984,174 @@
</item>
<item>
<key>Revert to Saved</key>
<value>Ponovo upišite lozinku</value>
</item>
<item>
<key>Rows per Page</key>
<value>Vrati na snimljenu verziju</value>
</item>
<item>
<key>Sample rate</key>
<key>Rows per Page</key>
<value>Redova po strani</value>
</item>
<item>
<key>Save Playlist</key>
<key>Sample rate</key>
<value>Brzina uzorkovanja</value>
</item>
<item>
<key>Save and Close</key>
<key>Save Playlist</key>
<value>Snimi plej listu</value>
</item>
<item>
<key>Scheduler</key>
<key>Save and Close</key>
<value>Snimi i zatvori</value>
</item>
<item>
<key>Scheduler Navigation</key>
<key>Scheduler</key>
<value>Raspored</value>
</item>
<item>
<key>Search</key>
<key>Scheduler Navigation</key>
<value>Navigacija rasporeda</value>
</item>
<item>
<key>Search Library</key>
<key>Search</key>
<value>Pretraži</value>
</item>
<item>
<key>Signed in</key>
<key>Search Library</key>
<value>Pretraži audioteku</value>
</item>
<item>
<key>Station Logo</key>
<key>Signed in</key>
<value>Prijavljen</value>
</item>
<item>
<key>Station Logo</key>
<value>Logo stanice</value>
</item>
<item>
<key>Station Name</key>
<value>Ime stanice</value>
</item>
<item>
<key>Station Settings</key>
<value>Ime stanice</value>
</item>
<item>
<key>Station Time</key>
<value>Podešavanje stanice</value>
</item>
<item>
<key>Station URL</key>
<key>Station Time</key>
<value>Vreme u stanici</value>
</item>
<item>
<key>Stream</key>
<key>Station URL</key>
<value>URL Stanice</value>
</item>
<item>
<key>Stream URL</key>
<key>Stream</key>
<value>Strim</value>
</item>
<item>
<key>Subject</key>
<key>Stream URL</key>
<value>URL strima</value>
</item>
<item>
<key>Submit</key>
<key>Subject</key>
<value>Sadržaj</value>
</item>
<item>
<key>System Settings</key>
<key>Submit</key>
<value>Pridruži</value>
</item>
<item>
<key>Talk</key>
<key>System Settings</key>
<value>Sistemska podešavanja</value>
</item>
<item>
<key>Time</key>
<key>Talk</key>
<value>Govor</value>
</item>
<item>
<key>Title</key>
<key>Time</key>
<value>Vreme</value>
</item>
<item>
<key>Today</key>
<key>Title</key>
<value>Naslov</value>
</item>
<item>
<key>Track number</key>
<key>Today</key>
<value>Danas</value>
</item>
<item>
<key>Tree view</key>
<key>Track number</key>
<value>Redni broj snimka</value>
</item>
<item>
<key>Type</key>
<key>Tree view</key>
<value>Direktorijumsko stablo</value>
</item>
<item>
<key>User Password</key>
<key>Type</key>
<value>Tip</value>
</item>
<item>
<key>User/Groups</key>
<key>User Password</key>
<value>Korisnička lozinka</value>
</item>
<item>
<key>Username</key>
<key>User/Groups</key>
<value>Korisnik/Grupe</value>
</item>
<item>
<key>Week</key>
<key>Username</key>
<value>Korisničko ime</value>
</item>
<item>
<key>Weekly View</key>
<key>Week</key>
<value>Nedelja</value>
</item>
<item>
<key>Year</key>
<key>Weekly View</key>
<value>Nedeljni pregled</value>
</item>
<item>
<key>calendar week</key>
<key>Year</key>
<value>Godina</value>
</item>
<item>
<key>copy</key>
<key>calendar week</key>
<value>kalendarska nedelja</value>
</item>
<item>
<key>go up</key>
<key>copy</key>
<value>iskopiraj</value>
</item>
<item>
<key>move</key>
<key>go up</key>
<value>idi gore</value>
</item>
<item>
<key>move down</key>
<key>move</key>
<value>pomeri</value>
</item>
<item>
<key>move up</key>
<key>move down</key>
<value>pomeri dole</value>
</item>
<item>
<key>new&amp;nbsp;folder</key>
<key>move up</key>
<value>pomeri gore</value>
</item>
<item>
<key>next</key>
<value>novi direktorijum</value>
<key>new&amp;nbsp;folder</key>
<value>novi folder</value>
</item>
<item>
<key>permissions</key>
<key>next</key>
<value>sledeće</value>
</item>
<item>
<key>previous</key>
<key>permissions</key>
<value>dopuštene radnje</value>
</item>
<item>
<key>previous</key>
<value>prethodno</value>
</item>
</language>

View file

@ -28,7 +28,7 @@
</tr>
<!-- end repeat after 14 columns -->
<!-- start item -->
{foreach from=$PL->getFlat() key='pos' item='i'}
{foreach from=$PL->getFlat($PL->activeId) key='pos' item='i'}
<!-- {$n++} -->
<!-- fade information -->
<tr onClick="return contextmenu('{$i.attrs.id}', {if $n == 1}'PL.changeFadeIn'{else}'PL.changeTransition'{/if})" style="background-color: #bbb">

View file

@ -3,7 +3,7 @@
{if $PL_editMetaData}
{include file="playlist/metadata.tpl"}
{elseif is_array($PL->get())} {* already activated Playlist *}
{elseif is_array($PL->getActiveArr())} {* already activated Playlist *}
{include file="playlist/editor.tpl"}
{else} {* no active Playlist *}

View file

@ -0,0 +1,38 @@
{include file="popup/header.tpl"}
{if $data.connect}
<div>{tra str='Connection to $1 port $2 $3' 1=$data.host 2=$data.port 3='<font color="green">successfull.</font>'}</div>
<div>
{if $data.code == 200}
{tra str='URL is <font color="green">valid</font>.'}
{else}
{tra str='URL seems <font color="red">invalid</font>. Returned error-code: $1.' 1=$data.code}
{/if}
</div>
<div>
{if $data.type.valid === true}
{tra str='Stream is wanted type <font color="green">$1</font>.' 1=$data.type.type}
{else}
{tra str='Stream has wrong content type <font color="red">$1</font>.' 1=$data.type.type}
{/if}
</div>
<br><br>
<div>
{if $data.header}
Returned connection header:
<pre>{$data.header}</pre>
{/if}
</div>
{else}
<div>{tra str='Connection to $1 port $2 $3' 1=$data.host 2=$data.port 3='<font color="red">failed</font>'}</div>
{/if}
</body>
</html>

View file

@ -25,25 +25,25 @@
<td><input type="checkbox" class="checkbox" name="{$i.id}"/></td>
<td {include file="scratchpad/actionhandler.tpl"} style="cursor: pointer">
{if $i.type|lower == "playlist"}
{if $PL->isAvailable($i.id) == false}
<div style="text-decoration: line-through; cursor: pointer">
{else}
<div style="cursor: pointer">
{/if}
{if $_PL_activeId == $i.id}
<div style="font-weight: bold; cursor: pointer">
{else}
<div style="cursor: pointer">
{/if}
{$i.title|truncate:14:'...':true}
</div></div>
</div>
{else}
{$i.title|truncate:14:'...':true}
{/if} {* on some reason object call doesn´t like usage of array *}
</td> {assign var="_duration" value=$i.duration}
<td {include file="scratchpad/actionhandler.tpl"} style="text-align: right; cursor: pointer">{niceTime in=$_duration}</td>
<td {include file="scratchpad/actionhandler.tpl"} style="border: 0; text-align: center; cursor: pointer">
<img src="img/{$i.type}.gif" border="0" alt="{$i.type|capitalize}" {include file="sub/mouseover.tpl"} />
{if $PL->isAvailable($i.id) == false}
<div align="left"><img src="img/ico_lock.gif">
<img src="img/{$i.type}.gif" border="0" alt="{$i.type|capitalize}" {include file="sub/mouseover.tpl"} /></div>
{else}
<img src="img/{$i.type}.gif" border="0" alt="{$i.type|capitalize}" {include file="sub/mouseover.tpl"} /> {/if}
</td>
</tr>
<!-- end item -->

View file

@ -26,7 +26,9 @@
{if $element.required}<font color="red">*</font>{/if}
</label>
{/if}
{if $element.error}<font color="red">{$element.error}</font><br />{/if}
{if $element.type eq "group"}
{foreach key=gkey item=gitem from=$element.elements}
{$gitem.label}{$gitem.html}

View file

@ -1,6 +1,14 @@
{UIBROWSER->getMDataArr id=$i.id assign="_metaarr"}
{UIBROWSER->getMDataArr id=$i.id assign='_metaarr'}
onMouseover = "showalttext('<div style=&quot;font-size: 120%; font-weight: bold&quot;>##{$i.type|lower|capitalize}##: {$_metaarr.metadata.Title} {if $PL->isUSedBy($i.id) != false}##(used by {$PL->isUSedBy($i.id)})##{/if}</div>{foreach from=$_metaarr.metadata key=_key item=_item}{if $_key != 'Title'}{$_key}: {$_item}<br>{/if}{/foreach}')"
onMouseover = "showalttext('<div style=&quot;font-size: 120%; font-weight: bold&quot;>##{$i.type|lower|capitalize}##: {$_metaarr.metadata.Title}</div>' +
{if $i.type|lower == 'playlist'}
{if $PL->isUSedBy($i.id) != false}'<div>##(used by {$PL->isUSedBy($i.id)})##</div>' + {/if}
{foreach from=$PL->getFlat($i.id) item='_pli'}
'<div>{$_pli.title} &nbsp;{$_pli.duration|truncate:8:''}</div>' +
{/foreach}
{/if}
'{foreach from=$_metaarr.metadata key='_key' item='_item'}{if $_key != 'Title'}<div>{$_key}: {$_item}</div>{/if}{/foreach}')"
onMouseout = "hidealttext()"
{assign var="_metaarr" value=null}
{assign var='_metaarr' value=null}

View file

@ -156,6 +156,7 @@ class uiBase
}
}
/**
* _parseArr2Form
*
@ -343,7 +344,7 @@ class uiBase
function _getMDataValue($id, $key, $langid=FALSE)
{
if ($langid===FALSE) $langid = $_SESSION['langid'];
if (is_array($arr = $this->gb->getMDataValue($id, $key, $this->sessid, $langid))) {
$value = current($arr);
return $value['value'];

View file

@ -206,9 +206,26 @@ class uiBrowser extends uiBase {
'url' => $id ? $this->_getMDataValue($id, UI_MDATA_KEY_URL) : 'http://',
'length' => $id ? preg_replace("/\.[0-9]{1,6}/", "", $this->_getMDataValue($id, UI_MDATA_KEY_DURATION)) : NULL
);
$form->setConstants($const);
$this->_parseArr2Form($form, $mask);
/*
$form->addGroupRule('grp',
array(
'url' => array(
array(tra('Missing URL'), 'required'),
array(tra('URL structure is invalid'), 'regex', UI_REGEX_URL)
)
),
NULL,
NULL,
NULL,
'client'
);
$form->_rules['grp[url]'][0][validation] = 'client';
$form->_rules['grp[url]'][1][validation] = 'client';
*/
$renderer =& new HTML_QuickForm_Renderer_Array(true, true);
$form->accept($renderer);
return $renderer->toArray();
@ -350,7 +367,6 @@ class uiBrowser extends uiBase {
}
function changeStationPrefs(&$mask)
{
$form = new HTML_QuickForm('changeStationPrefs', UI_STANDARD_FORM_METHOD, UI_HANDLER);
@ -363,5 +379,66 @@ class uiBrowser extends uiBase {
$form->accept($renderer);
return $renderer->toArray();
}
/**
* testStream
*
* Test if URL seems to be valid
*
* @param url string, full URL to test
* @return array()
*/
function testStream($url)
{
$parse = parse_url($url);
$host = $parse["host"];
$port = $parse["port"] ? $parse["port"] : 80;
$uri = $parse["path"] ? $parse['path'] : '/'.($parse["query"] ? '?'.$parse["query"] : '');
if ($handle = @fsockopen($host, $port, $errno, $errstr, 10)) {
fputs($handle, "GET $uri HTTP/1.0\r\n\r\n");
$data = fread($handle, 1024);
list($header, $lost) = explode("\r\n\r\n", $data);
eregi("^[^\r^\n]*", $data, $piece);
$pieces = explode(' ', $piece[0]);
$protocol = $pieces[0];
$code = $pieces[1];
foreach (explode("\r\n", $header) as $val) {
if ($type = stristr($val, "content-type:")) {
$type = explode(':', $type);
foreach ($this->config['stream_types'] as $t) { echo $t;
if (preg_match('/'.str_replace('/', '\/', $t).'/i', $type[1])) {
$match = TRUE;
break;
}
}
$type = array(
'type' => trim($type[1]),
'valid' => $match === TRUE ? TRUE : FALSE
);
break;
}
}
return array('connect' => TRUE,
'host' => $host,
'port' => $port,
'uri' => $uri,
'code' => $code,
'header' => $header,
'type' => $type
);
}
return array('connect' => FALSE,
'host' => $host,
'port' => $port,
);
}
}
?>

View file

@ -14,10 +14,10 @@ define('UI_BROWSER', 'ui_browser.php');
## HTML Form stuff
define('UI_FORM_STANDARD_METHOD', 'POST');
define('UI_INPUT_STANDARD_SIZE', 20);
define('UI_INPUT_STANDARD_MAXLENGTH', 50);
define('UI_INPUT_STANDARD_SIZE', 50);
define('UI_INPUT_STANDARD_MAXLENGTH', 255);
define('UI_TEXTAREA_STANDART_ROWS', 5);
define('UI_TEXTAREA_STANDART_COLS', 17);
define('UI_TEXTAREA_STANDART_COLS', 32);
define('UI_BUTTON_STYLE', 'button');
define('UI_QFORM_REQUIRED', '../templates/sub/form_required.tpl');
define('UI_QFORM_REQUIREDNOTE', '../templates/sub/form_requirednote.tpl');
@ -110,8 +110,18 @@ PEAR::setErrorHandling(PEAR_ERROR_RETURN);
#PEAR::setErrorHandling(PEAR_ERROR_PRINT);
## extent config
$config['audiofiles'] = array('.mp3' => TRUE,
'.wav' => TRUE,
'.ogg' => TRUE
);
$config = array_merge($config,
array(
'file_types' => array(
'.mp3',
'.wav',
'.ogg'
),
'stream_types' => array(
'application/ogg',
'audio/mpeg'
)
)
);
?>

View file

@ -71,7 +71,7 @@ class uiHandler extends uiBase {
$this->sessid = $sessid;
$this->langid = $formdata['langid'];
$this->redirUrl = UI_BROWSER.'?popup[]=_2SCHEDULER&popup[]=_close';
return TRUE;
}
@ -193,8 +193,11 @@ class uiHandler extends uiBase {
function test4audioType($filename)
{
if (array_key_exists(strrchr($filename, "."), $this->config['audiofiles']))
return TRUE;
foreach ($this->config['file_types'] as $t) {
if (preg_match('/'.str_replace('/', '\/', $t).'$/i', $filename))
return TRUE;
}
return FALSE;
}

View file

@ -25,13 +25,18 @@ class uiPlaylist
$this->Base->redirUrl = $this->redirectUrl;
}
function get()
function getPLArray($id)
{
return $this->Base->gb->getPlaylistArray($id, $this->Base->sessid);
}
function getActiveArr()
{
if (!$this->activeId) {
return FALSE;
}
#echo '<pre><div align="left">'; print_r( $this->Base->gb->getPlaylistArray($this->activeId, $this->Base->sessid)); echo '</div></pre>';
return $this->Base->gb->getPlaylistArray($this->activeId, $this->Base->sessid);
return $this->getPLArray($this->activeId);
}
function getActiveId()
@ -219,20 +224,20 @@ class uiPlaylist
}
function getFlat()
function getFlat($id)
{
#print_r($this->get());
$this->plwalk($this->get());
#echo '<pre><div align="left">'; print_r($this->flat); echo '</div></pre>';
unset($this->flat);
$this->_plwalk($this->getPLArray($id));
return $this->flat;
}
function plwalk($arr, $parent=0, $attrs=0)
function _plwalk($arr, $parent=0, $attrs=0)
{
foreach ($arr['children'] as $node=>$sub) {
if ($sub['elementname']===UI_PL_ELEM_PLAYLIST) {
$this->plwalk($sub, $node, $sub['attrs']);
$this->_plwalk($sub, $node, $sub['attrs']);
}
if ($sub['elementname']===UI_FILETYPE_AUDIOCLIP || $sub['elementname']===UI_FILETYPE_PLAYLIST) {
#$this->flat["$parent.$node"] = $sub['attrs'];
@ -307,7 +312,7 @@ class uiPlaylist
function getCurrElement($id)
{
$arr = $this->getFlat();
$arr = $this->getFlat($id);
while ($val = current($arr)) {
if ($val['attrs']['id'] == $id) {
return current($arr);
@ -319,7 +324,7 @@ class uiPlaylist
function getPrevElement($id)
{
$arr = $this->getFlat();
$arr = $this->getFlat($id);
while ($val = current($arr)) {
if ($val['attrs']['id'] == $id) {
return prev($arr);
@ -331,7 +336,7 @@ class uiPlaylist
function getNextElement($id)
{
$arr = $this->getFlat();
$arr = $this->getFlat($id);
while ($val = current($arr)) {
if ($val['attrs']['id'] == $id) {
return next($arr);

View file

@ -58,7 +58,7 @@ class uiSearch
$sel = &$form->createElement('hierselect', "row_$n", NULL);
$sel->setOptions(array($col1, $col2));
$group[] = &$sel;
$group[] = &$form->createElement('text', "row_$n".'[2]', NULL);
$group[] = &$form->createElement('text', "row_$n".'[2]', NULL, array('size' => 25, 'maxlength' => UI_INPUT_STANDARD_MAXLENGTH));
if ($activerow) $group[] = &$form->createElement('hidden', "row_$n".'[active]', TRUE);
else $group[] = &$form->createElement('hidden', "row_$n".'[active]', FALSE);

View file

@ -26,7 +26,7 @@ class uiSubjects
*/
function getAddSubjForm($type)
{
include dirname(__FILE__). '/formmask/subjects.php';
include dirname(__FILE__). '/formmask/subjects.inc.php';
$form = new HTML_QuickForm('addSubject', UI_STANDARD_FORM_METHOD, UI_HANDLER);
$this->Base->_parseArr2Form($form, $mask[$type]);
@ -45,7 +45,7 @@ class uiSubjects
*/
function addSubj(&$request)
{
include dirname(__FILE__). '/formmask/subjects.php';
include dirname(__FILE__). '/formmask/subjects.inc.php';
$this->setRedir();
if ($this->Base->_validateForm($request, $mask[$request['passwd'] ? 'addUser' : 'addGroup']) !== TRUE) {
@ -103,7 +103,7 @@ class uiSubjects
*/
function getChgPasswdForm($login, $su=FALSE)
{
include dirname(__FILE__). '/formmask/subjects.php';
include dirname(__FILE__). '/formmask/subjects.inc.php';
$form = new HTML_QuickForm('chgPasswd', UI_STANDARD_FORM_METHOD, UI_HANDLER);
if ($su === TRUE) {
@ -222,7 +222,7 @@ class uiSubjects
$this->Base->_retMsg('Nothing selected.');
return FALSE;
}
## loop for multiple action
if (is_array($request['id'])) {
foreach ($request['id'] as $val) {