diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/SmartyDynamic__example_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyDynamic__example_8php-source.html new file mode 100644 index 000000000..2c8ef2e40 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyDynamic__example_8php-source.html @@ -0,0 +1,113 @@ + + +LiveSupport - htmlUI module: SmartyDynamic_example.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

SmartyDynamic_example.php

Go to the documentation of this file.
00001 <?php
+00011 require_once 'HTML/QuickForm.php';
+00012 require_once 'HTML/QuickForm/Renderer/Array.php';
+00013 // fix this if your Smarty is somewhere else
+00014 require_once 'Smarty/libs/Smarty.class.php';
+00015 
+00016 $form = new HTML_QuickForm('frmTest', 'post');
+00017 
+00018 $form->setDefaults(array(
+00019     'itxtTest'  => 'Test Text Box',
+00020     'itxaTest'  => 'Hello World',
+00021     'iselTest'  => array('B', 'C'),
+00022     'name'      => array('first' => 'Thomas', 'last' => 'Schulz'),
+00023     'iradYesNo' => 'Y',
+00024     'ichkABCD'  => array('A'=>true,'D'=>true)
+00025 ));
+00026 
+00027 $form->addElement('header', '', 'Normal Elements');
+00028 
+00029 $form->addElement('hidden', 'ihidTest', 'hiddenField');
+00030 
+00031 $form->addElement('text', 'itxtTest', array('Test Text', 'note' => 'Note for Testtext element.'));
+00032 
+00033 $form->addElement('textarea', 'itxaTest', 'Test TextArea', 'cols="40" rows="2"');
+00034 
+00035 // will be later assigned to style green
+00036 $form->addElement('password', 'ipwdTest', 'Test Password');
+00037 $select =& $form->addElement(
+00038     'select',
+00039     'iselTest',
+00040     array('Test Select', 'note' => 'We recommend to check at least two categories!'),
+00041     array('A'=>'A * * * * (luxory)', 'B'=>'B * * *','C'=>'C * *','D'=>'D * (simple)')
+00042  );
+00043 $select->setSize(4);
+00044 $select->setMultiple(true);
+00045 
+00046 $form->addElement('submit', 'isubTest', 'Test Submit');
+00047 
+00048 $form->addElement('header', '', 'Grouped Elements');
+00049 
+00050 $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A');
+00051 $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'B', null, 'B');
+00052 $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'C', null, 'C');
+00053 $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'D', null, 'D');
+00054 $form->addGroup($checkbox, 'ichkABCD', 'ABCD', array('&nbsp;', '<br />'));
+00055 
+00056 // will be later assigned to style fancygroup
+00057 $radio[] = &HTML_QuickForm::createElement('radio', null, null, 'Yes', 'Y');
+00058 $radio[] = &HTML_QuickForm::createElement('radio', null, null, 'No', 'N');
+00059 $form->addGroup($radio, 'iradYesNo', 'Yes/No');
+00060 
+00061 // will be later assigned to style fancygroup
+00062 $name['first'] = &HTML_QuickForm::createElement('text', 'first', 'First:');
+00063 $name['first']->setSize(20);
+00064 $name['last'] = &HTML_QuickForm::createElement('text', 'last', 'Last:');
+00065 $name['last']->setSize(30);
+00066 $form->addGroup($name, 'name', 'Name');
+00067 
+00068 // add some 'required' rules to show "stars" and (possible) errors...
+00069 $form->addRule('itxtTest', 'Test Text is a required field', 'required');
+00070 $form->addRule('itxaTest', 'Test TextArea is a required field', 'required');
+00071 $form->addGroupRule('iradYesNo', 'Check Yes or No', 'required');
+00072 $form->addGroupRule('name', array('last' => array(array('Last name is required', 'required'))));
+00073 
+00074 // try to validate the form
+00075 if ($form->validate()) {
+00076     $form->freeze();
+00077 }
+00078 
+00079 $renderer =& new HTML_QuickForm_Renderer_Array(true, true);
+00080 
+00081 // give some elements aditional style informations
+00082 $renderer->setElementStyle(array(
+00083     'ipwdTest'  => 'green',
+00084     'iradYesNo' => 'fancygroup',
+00085     'name'      => 'fancygroup'
+00086 ));
+00087 
+00088 $form->accept($renderer);
+00089 
+00090 // setup a template object
+00091 $tpl =& new Smarty;
+00092 $tpl->template_dir = './templates';
+00093 $tpl->compile_dir  = './templates_c';
+00094 
+00095 // assign array with form data
+00096 $tpl->assign('form', $renderer->toArray());
+00097 
+00098 // capture the array stucture
+00099 // (only for showing in sample template)
+00100 ob_start();
+00101 print_r($renderer->toArray());
+00102 $tpl->assign('dynamic_array', ob_get_contents());
+00103 ob_end_clean();
+00104 
+00105 // render and display the template
+00106 $tpl->display('smarty-dynamic.tpl');
+00107 
+00108 ?>
+

Generated on Wed Jan 12 13:58:47 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/SmartyDynamic__example_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyDynamic__example_8php.html new file mode 100644 index 000000000..66eea7df4 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyDynamic__example_8php.html @@ -0,0 +1,276 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: SmartyDynamic_example.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

SmartyDynamic_example.php File Reference

+

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + +

Variables

 $form = new HTML_QuickForm('frmTest', 'post')
 $select
 $checkbox [] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A')
 $radio [] = &HTML_QuickForm::createElement('radio', null, null, 'Yes', 'Y')
 $name ['first'] = &HTML_QuickForm::createElement('text', 'first', 'First:')
 $renderer = & new HTML_QuickForm_Renderer_Array(true, true)
 $tpl = & new Smarty
$tpl template_dir = './templates'
$tpl compile_dir = './templates_c'
+


Variable Documentation

+

+ + + + +
+ + + + +
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A')
+
+ + + + + +
+   + + +

+ +

+Definition at line 53 of file SmartyDynamic_example.php.

+

+ + + + +
+ + + + +
$form = new HTML_QuickForm('frmTest', 'post')
+
+ + + + + +
+   + + +

+ +

+Definition at line 16 of file SmartyDynamic_example.php. +

+Referenced by uiBase::_parseArr2Form(), uiHandler::_validateForm(), uiBrowser::getAddSubjectForm(), uiBrowser::getChangePasswdForm(), uiBrowser::getMetadataForm(), uiBrowser::getNewFileForm(), uiBrowser::getSearchForm(), uiBrowser::getSubj2GroupForm(), uiBrowser::loginform(), and uiBrowser::systemPrefs().

+

+ + + + +
+ + + + +
$name['last'] = &HTML_QuickForm::createElement('text', 'first', 'First:')
+
+ + + + + +
+   + + +

+ +

+Definition at line 64 of file SmartyDynamic_example.php.

+

+ + + + +
+ + + + +
$radio[] = &HTML_QuickForm::createElement('radio', null, null, 'Yes', 'Y')
+
+ + + + + +
+   + + +

+ +

+Definition at line 58 of file SmartyDynamic_example.php. +

+Referenced by uiBase::_parseArr2Form().

+

+ + + + +
+ + + + +
$renderer = & new HTML_QuickForm_Renderer_Array(true, true)
+
+ + + + + +
+   + + +

+ +

+Definition at line 79 of file SmartyDynamic_example.php. +

+Referenced by uiBrowser::loginform(), and uiBrowser::systemPrefs().

+

+ + + + +
+ + + + +
$select
+
+ + + + + +
+   + + +

+Initial value:

& $form->addElement(
+    'select',
+    'iselTest',
+    array('Test Select', 'note' => 'We recommend to check at least two categories!'),
+    array('A'=>'A * * * * (luxory)', 'B'=>'B * * *','C'=>'C * *','D'=>'D * (simple)')
+ )
+
+

+Definition at line 37 of file SmartyDynamic_example.php.

+

+ + + + +
+ + + + +
$tpl = & new Smarty
+
+ + + + + +
+   + + +

+ +

+Definition at line 91 of file SmartyDynamic_example.php.

+

+ + + + +
+ + + + +
$tpl compile_dir = './templates_c'
+
+ + + + + +
+   + + +

+ +

+Definition at line 93 of file SmartyDynamic_example.php.

+

+ + + + +
+ + + + +
$tpl template_dir = './templates'
+
+ + + + + +
+   + + +

+ +

+Definition at line 92 of file SmartyDynamic_example.php.

+


Generated on Wed Jan 12 13:58:48 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/SmartyExtensions_8inc_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyExtensions_8inc_8php-source.html new file mode 100644 index 000000000..31e3411bb --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyExtensions_8inc_8php-source.html @@ -0,0 +1,59 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: SmartyExtensions.inc.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

SmartyExtensions.inc.php

Go to the documentation of this file.
00001 <?php
+00002 ## some constants ########################
+00003 $Smarty->assign('UI_BROWSER', UI_BROWSER);
+00004 $Smarty->assign('UI_HANDLER', UI_HANDLER);
+00005 
+00006 // --- Smarty Extensions ---
+00016 function S_str_repeat($param)
+00017 {
+00018     extract($param);
+00019     return str_repeat($str, intval($count));
+00020 
+00021 }
+00022 $Smarty->register_function('str_repeat', 'S_str_repeat');
+00023 
+00032 function S_urlencode($param)
+00033 {
+00034     extract($param);
+00035     return urlencode($str);
+00036 }
+00037 $Smarty->register_function('urlencode',  'S_urlencode');
+00038 
+00047 function S_htmlspecialchars($param)
+00048 {
+00049     extract($param);
+00050     return htmlspecialchars($str);
+00051 }
+00052 $Smarty->register_function('htmlspecialchars', 'S_htmlspecialchars');
+00053 
+00061 function S_system($param)
+00062 {
+00063     extract($param);
+00064     eval($code);
+00065 }
+00066 $Smarty->register_function('system', 'S_system');
+00067 
+00075 function S_tra($param)
+00076 {
+00077     global $uiBrowser;
+00078 
+00079     foreach($param as $v) {
+00080         echo $uiBrowser->tra($v);
+00081     }
+00082 }
+00083 $Smarty->register_function('tra', 'S_tra');
+00084 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/SmartyExtensions_8inc_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyExtensions_8inc_8php.html new file mode 100644 index 000000000..d35dd75b9 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyExtensions_8inc_8php.html @@ -0,0 +1,232 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: SmartyExtensions.inc.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

SmartyExtensions.inc.php File Reference

+

+Go to the source code of this file. + + + + + + + + + + + + + + + + + +

Functions

 S_str_repeat ($param)
 str_repeat
 S_urlencode ($param)
 urlencode
 S_htmlspecialchars ($param)
 htmlspecialchars
 S_system ($param)
 system
 S_tra ($param)
 tra
+


Function Documentation

+

+ + + + +
+ + + + + + + + + +
S_htmlspecialchars param  ) 
+
+ + + + + +
+   + + +

+htmlspecialchars +

+convert special chars in given string to html-entitys.

+

Parameters:
+ + +
str string, string to convert
+
+
Returns:
string, converted string
+ +

+Definition at line 47 of file SmartyExtensions.inc.php.

+

+ + + + +
+ + + + + + + + + +
S_str_repeat param  ) 
+
+ + + + + +
+   + + +

+str_repeat +

+Repeate given string.

+

Parameters:
+ + + +
str string, string to repeate
count numeric, how often to repeate (converted to type integer)
+
+
Returns:
string, repeated string
+ +

+Definition at line 16 of file SmartyExtensions.inc.php.

+

+ + + + +
+ + + + + + + + + +
S_system param  ) 
+
+ + + + + +
+   + + +

+system +

+Execute some PHP-code.

+

Parameters:
+ + +
code string, code to execute
+
+ +

+Definition at line 61 of file SmartyExtensions.inc.php.

+

+ + + + +
+ + + + + + + + + +
S_tra param  ) 
+
+ + + + + +
+   + + +

+tra +

+Translate given string.

+

Parameters:
+ + +
void array, array of strings to be outputted translated
+
+ +

+Definition at line 75 of file SmartyExtensions.inc.php. +

+References $uiBrowser.

+

+ + + + +
+ + + + + + + + + +
S_urlencode param  ) 
+
+ + + + + +
+   + + +

+urlencode +

+Encode given string to use in URL.

+

Parameters:
+ + +
str string, string to encode
+
+
Returns:
string, encoded string
+ +

+Definition at line 32 of file SmartyExtensions.inc.php.

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/SmartyStatic__example_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyStatic__example_8php-source.html new file mode 100644 index 000000000..fe49e8016 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyStatic__example_8php-source.html @@ -0,0 +1,142 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: SmartyStatic_example.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

SmartyStatic_example.php

Go to the documentation of this file.
00001 <?php
+00011 require_once 'HTML/QuickForm.php';
+00012 require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
+00013 // fix this if your Smarty is somewhere else
+00014 require_once 'Smarty/libs/Smarty.class.php';
+00015 
+00016 // Form name will be used to find the placeholders.
+00017 
+00018 $form = new HTML_QuickForm('form', 'POST');
+00019 
+00020 // Fills with some defaults values
+00021 
+00022 $defaultValues['company']  = 'Mamasam';
+00023 $defaultValues['country']  = array();
+00024 $defaultValues['name']     = array('first'=>'Bertrand', 'last'=>'Mansion');
+00025 $defaultValues['phone']    = array('513', '123', '4567');
+00026 $form->setDefaults($defaultValues);
+00027 
+00028 // Hidden
+00029 
+00030 $form->addElement('hidden', 'session', '1234567890');
+00031 
+00032 // Personal information
+00033 
+00034 $form->addElement('header', 'personal', 'Personal Information');
+00035 
+00036 $form->addElement('hidden', 'ihidTest', 'hiddenField');
+00037 $form->addElement('text', 'email', 'Your email:');
+00038 $form->addElement('password', 'pass', array('Your password:', 'note'=>'Please, choose a 8-10 characters password.'), 'size=10');
+00039 $name['last'] = &HTML_QuickForm::createElement('text', 'first', 'First', 'size=10');
+00040 $name['first'] = &HTML_QuickForm::createElement('text', 'last', 'Last', 'size=10');
+00041 $form->addGroup($name, 'name', 'Name:', ',&nbsp;');
+00042 $areaCode = &HTML_QuickForm::createElement('text', '', null,'size=4 maxlength=3');
+00043 $phoneNo1 = &HTML_QuickForm::createElement('text', '', null, 'size=4 maxlength=3');
+00044 $phoneNo2 = &HTML_QuickForm::createElement('text', '', null, 'size=5 maxlength=4');
+00045 $form->addGroup(array($areaCode, $phoneNo1, $phoneNo2), 'phone', 'Telephone:', '-');
+00046 
+00047 // Company information
+00048 
+00049 $form->addElement('header', 'company_info', 'Company Information');
+00050 
+00051 $form->addElement('text', 'company', 'Company:', 'size=20');
+00052 
+00053 $str[] = &HTML_QuickForm::createElement('text', '', null, 'size=20');
+00054 $str[] = &HTML_QuickForm::createElement('text', '', null, 'size=20');
+00055 $form->addGroup($str, 'street', 'Street:', '<br />');
+00056 
+00057 $addr['zip'] = &HTML_QuickForm::createElement('text', 'zip', 'Zip', 'size=6 maxlength=10');
+00058 $addr['city'] = &HTML_QuickForm::createElement('text', 'city', 'City', 'size=15');
+00059 $form->addGroup($addr, 'address', 'Zip, city:');
+00060 
+00061 $select = array('' => 'Please select...', 'AU' => 'Australia', 'FR' => 'France', 'DE' => 'Germany', 'IT' => 'Italy');
+00062 $form->addElement('select', 'country', 'Country:', $select);
+00063 
+00064 $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A');
+00065 $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'B', null, 'B');
+00066 $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'C', null, 'C');
+00067 $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'D', null, 'D');
+00068 $form->addGroup($checkbox, 'destination', 'Destination:', array('&nbsp;', '<br />'));
+00069 
+00070 // Other elements
+00071 
+00072 $form->addElement('checkbox', 'news', '', " Check this box if you don't want to receive our newsletter.");
+00073 
+00074 $form->addElement('reset', 'reset', 'Reset');
+00075 $form->addElement('submit', 'submit', 'Register');
+00076 
+00077 // Adds some validation rules
+00078 
+00079 $form->addRule('email', 'Email address is required', 'required');
+00080 $form->addGroupRule('name', 'Name is required', 'required');
+00081 $form->addRule('pass', 'Password must be between 8 to 10 characters', 'rangelength', array(8, 10));
+00082 $form->addRule('country', 'Country is a required field', 'required');
+00083 $form->addGroupRule('destination', 'Please check at least two boxes', 'required', null, 2);
+00084 $form->addGroupRule('phone', 'Please fill all phone fields', 'required');
+00085 $form->addGroupRule('phone', 'Values must be numeric', 'numeric');
+00086 
+00087 $AddrRules['zip'][0] = array('Zip code is required', 'required');
+00088 $AddrRules['zip'][1] = array('Zip code is numeric only', 'numeric');
+00089 $AddrRules['city'][0] = array('City is required', 'required');
+00090 $AddrRules['city'][1] = array('City is letters only', 'lettersonly');
+00091 $form->addGroupRule('address', $AddrRules);
+00092 
+00093 // Tries to validate the form
+00094 if ($form->validate()) {
+00095     // Form is validated, then freezes the data
+00096     $form->freeze();
+00097 }
+00098 
+00099 // setup a template object
+00100 $tpl =& new Smarty;
+00101 $tpl->template_dir = './templates';
+00102 $tpl->compile_dir  = './templates_c';
+00103 
+00104 $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($tpl, true);
+00105 
+00106 $renderer->setRequiredTemplate(
+00107    '{if $error}
+00108         <font color="red">{$label|upper}</font>
+00109     {else}
+00110         {$label}
+00111         {if $required}
+00112             <font color="red" size="1">*</font>
+00113         {/if}
+00114     {/if}'
+00115     );
+00116 
+00117 $renderer->setErrorTemplate(
+00118    '{if $error}
+00119         <font color="orange" size="1">{$error}</font><br />
+00120     {/if}{$html}'
+00121     );
+00122 
+00123 $form->accept($renderer);
+00124 
+00125 // assign array with form data
+00126 $tpl->assign('form', $renderer->toArray());
+00127 
+00128 // capture the array stucture
+00129 ob_start();
+00130 print_r($renderer->toArray());
+00131 $tpl->assign('static_array', ob_get_contents());
+00132 ob_end_clean();
+00133 
+00134 // render and display the template
+00135 $tpl->display('smarty-static.tpl');
+00136 
+00137 ?>
+

Generated on Wed Jan 12 13:58:47 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/SmartyStatic__example_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyStatic__example_8php.html new file mode 100644 index 000000000..322c5b905 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/SmartyStatic__example_8php.html @@ -0,0 +1,426 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: SmartyStatic_example.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

SmartyStatic_example.php File Reference

+

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Variables

 $form = new HTML_QuickForm('form', 'POST')
 $defaultValues ['company'] = 'Mamasam'
 $name ['last'] = &HTML_QuickForm::createElement('text', 'first', 'First', 'size=10')
 $areaCode = &HTML_QuickForm::createElement('text', '', null,'size=4 maxlength=3')
 $phoneNo1 = &HTML_QuickForm::createElement('text', '', null, 'size=4 maxlength=3')
 $phoneNo2 = &HTML_QuickForm::createElement('text', '', null, 'size=5 maxlength=4')
 $str [] = &HTML_QuickForm::createElement('text', '', null, 'size=20')
 $addr ['zip'] = &HTML_QuickForm::createElement('text', 'zip', 'Zip', 'size=6 maxlength=10')
 $select = array('' => 'Please select...', 'AU' => 'Australia', 'FR' => 'France', 'DE' => 'Germany', 'IT' => 'Italy')
 $checkbox [] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A')
 $AddrRules ['zip'][0] = array('Zip code is required', 'required')
 $tpl = & new Smarty
$tpl template_dir = './templates'
$tpl compile_dir = './templates_c'
 $renderer = & new HTML_QuickForm_Renderer_ArraySmarty($tpl, true)
+


Variable Documentation

+

+ + + + +
+ + + + +
$addr['city'] = &HTML_QuickForm::createElement('text', 'zip', 'Zip', 'size=6 maxlength=10')
+
+ + + + + +
+   + + +

+ +

+Definition at line 58 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$AddrRules['city'][1] = array('Zip code is required', 'required')
+
+ + + + + +
+   + + +

+ +

+Definition at line 90 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$areaCode = &HTML_QuickForm::createElement('text', '', null,'size=4 maxlength=3')
+
+ + + + + +
+   + + +

+ +

+Definition at line 42 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A')
+
+ + + + + +
+   + + +

+ +

+Definition at line 67 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$defaultValues['phone'] = 'Mamasam'
+
+ + + + + +
+   + + +

+ +

+Definition at line 25 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$form = new HTML_QuickForm('form', 'POST')
+
+ + + + + +
+   + + +

+ +

+Definition at line 18 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$name['first'] = &HTML_QuickForm::createElement('text', 'first', 'First', 'size=10')
+
+ + + + + +
+   + + +

+ +

+Definition at line 40 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$phoneNo1 = &HTML_QuickForm::createElement('text', '', null, 'size=4 maxlength=3')
+
+ + + + + +
+   + + +

+ +

+Definition at line 43 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$phoneNo2 = &HTML_QuickForm::createElement('text', '', null, 'size=5 maxlength=4')
+
+ + + + + +
+   + + +

+ +

+Definition at line 44 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$renderer = & new HTML_QuickForm_Renderer_ArraySmarty($tpl, true)
+
+ + + + + +
+   + + +

+ +

+Definition at line 104 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$select = array('' => 'Please select...', 'AU' => 'Australia', 'FR' => 'France', 'DE' => 'Germany', 'IT' => 'Italy')
+
+ + + + + +
+   + + +

+ +

+Definition at line 61 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$str[] = &HTML_QuickForm::createElement('text', '', null, 'size=20')
+
+ + + + + +
+   + + +

+ +

+Definition at line 54 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$tpl = & new Smarty
+
+ + + + + +
+   + + +

+ +

+Definition at line 100 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$tpl compile_dir = './templates_c'
+
+ + + + + +
+   + + +

+ +

+Definition at line 102 of file SmartyStatic_example.php.

+

+ + + + +
+ + + + +
$tpl template_dir = './templates'
+
+ + + + + +
+   + + +

+ +

+Definition at line 101 of file SmartyStatic_example.php.

+


Generated on Wed Jan 12 13:58:48 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/annotated.html b/livesupport/modules/htmlUI/doc/doxygen/html/annotated.html new file mode 100644 index 000000000..bc75cfa93 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/annotated.html @@ -0,0 +1,17 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Class List + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

LiveSupport - htmlUI module Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + +
uiBaseUiBase class
uiBrowser
uiHandlerUiHandler class
+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classes.html b/livesupport/modules/htmlUI/doc/doxygen/html/classes.html new file mode 100644 index 000000000..b39f70bed --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/classes.html @@ -0,0 +1,16 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Alphabetical List + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

LiveSupport - htmlUI module Class Index

U

+ +
  U  
+
uiBase   uiBrowser   uiHandler   

U

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase-members.html b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase-members.html new file mode 100644 index 000000000..5fe113a44 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase-members.html @@ -0,0 +1,15 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Member List + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

uiBase Member List

This is the complete list of members for uiBase, including all inherited members.

+ + +
_parseArr2Form(&$form, &$mask, $side='client')uiBase
tra($input)uiBase


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase.html b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase.html new file mode 100644 index 000000000..805c41ec7 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase.html @@ -0,0 +1,141 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: uiBase Class Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

uiBase Class Reference

uiBase class +More... +

+

Inheritance diagram for uiBase: +

+ +uiBrowser +uiHandler + +List of all members. + + + + + + + + +

Public Member Functions

 tra ($input)
 tra
 _parseArr2Form (&$form, &$mask, $side='client')
 _parseArr2Form
+

Detailed Description

+uiBase class +

+LiveSupport HTML User Interface module +

+ +

+Definition at line 17 of file ui_base.inc.php.


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
uiBase::_parseArr2Form &$  form,
&$  mask,
side = 'client'
+
+ + + + + +
+   + + +

+_parseArr2Form +

+Add elements/rules/groups to an given HTML_QuickForm object

+

Parameters:
+ + + + +
form object, reference to HTML_QuickForm object
mask array, reference to array defining to form elements
side string, side where the validation should beeing
+
+ +

+Definition at line 45 of file ui_base.inc.php. +

+References tra(). +

+Referenced by uiHandler::_validateForm(), uiBrowser::getAddSubjectForm(), uiBrowser::getMetadataForm(), uiBrowser::getNewFileForm(), uiBrowser::getSearchForm(), uiBrowser::loginform(), and uiBrowser::systemPrefs().

+

+ + + + +
+ + + + + + + + + +
uiBase::tra input  ) 
+
+ + + + + +
+   + + +

+tra +

+Translate the given string using localisation files.

+

Parameters:
+ + +
input string, string to translate
+
+
Returns:
string, translated string
+ +

+Definition at line 28 of file ui_base.inc.php. +

+Referenced by _parseArr2Form(), uiHandler::addSubj(), uiHandler::delete(), and uiHandler::storeSystemPrefs().

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase.png b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase.png new file mode 100644 index 000000000..0e8225480 Binary files /dev/null and b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBase.png differ diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser-members.html b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser-members.html new file mode 100644 index 000000000..73b9bf058 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser-members.html @@ -0,0 +1,36 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Member List + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

uiBrowser Member List

This is the complete list of members for uiBrowser, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
$alertMsguiBrowser
_parseArr2Form(&$form, &$mask, $side='client')uiBase
alertMsg()uiBrowser
getAddSubjectForm($mask)uiBrowser
getChangePasswdForm($uid)uiBrowser
getFile($id)uiBrowser
getGroups($id)uiBrowser
getInfo($id)uiBrowser
getMdata($id)uiBrowser
getMetadataForm($id, &$mask)uiBrowser
getNewFileData($id)uiBrowser
getNewFileForm($id, $mask)uiBrowser
getPermissions($id)uiBrowser
getSearchForm($id, &$mask)uiBrowser
getSearchRes($id, $search)uiBrowser
getStructure($id, $homedir=FALSE)uiBrowser
getSubj2GroupForm($id)uiBrowser
getSubjects()uiBrowser
getUserInfo()uiBrowser
loginform(&$Smarty, &$mask)uiBrowser
systemPrefs(&$mask)uiBrowser
tra($input)uiBase
uiBrowser($config)uiBrowser


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser.html b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser.html new file mode 100644 index 000000000..63237a03d --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser.html @@ -0,0 +1,938 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: uiBrowser Class Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

uiBrowser Class Reference

Inheritance diagram for uiBrowser: +

+ +uiBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 uiBrowser ($config)
 uiBrowser
 alertMsg ()
 alertMsg
 loginform (&$Smarty, &$mask)
 loginform
 getUserInfo ()
 getUserInfo
 getStructure ($id, $homedir=FALSE)
 getStructure
 getNewFileForm ($id, $mask)
 getNewFileForm
 getSearchForm ($id, &$mask)
 getSearchForm
 getSubjects ()
 getSubjects
 getAddSubjectForm ($mask)
 addSubjectForm
 getChangePasswdForm ($uid)
 getChangePasswdForm
 getGroups ($id)
 getGroups
 getSubj2GroupForm ($id)
 getSubj2GroupForm
 getPermissions ($id)
 getPermissions
 getNewFileData ($id)
 getNewFileData
 getSearchRes ($id, $search)
 getSearchRes
 getFile ($id)
 getFile
 getMdata ($id)
 getMdata
 getInfo ($id)
 getInfo
 getMetadataForm ($id, &$mask)
 getMetaDataForm
 systemPrefs (&$mask)

Public Attributes

 $alertMsg
+

Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
uiBrowser::uiBrowser config  ) 
+
+ + + + + +
+   + + +

+uiBrowser +

+Initialize a new Browser Class including:

    +
  • database initialation
  • GreenBox initialation
+

+

Parameters:
+ + +
$config array, configurartion data
+
+ +

+Definition at line 15 of file ui_browser.class.php. +

+References $_REQUEST, and $config.

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + +
uiBrowser::alertMsg  ) 
+
+ + + + + +
+   + + +

+alertMsg +

+takes error message from session var

+

Returns:
string
+ +

+Definition at line 38 of file ui_browser.class.php. +

+References alertMsg(). +

+Referenced by alertMsg(), and getFile().

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getAddSubjectForm mask  ) 
+
+ + + + + +
+   + + +

+addSubjectForm +

+create a form to add GreenBox subjects (users/groups)

+

Returns:
string (html)
+ +

+Definition at line 193 of file ui_browser.class.php. +

+References uiBase::_parseArr2Form().

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getChangePasswdForm uid  ) 
+
+ + + + + +
+   + + +

+getChangePasswdForm +

+create a form to change user-passwords in GreenBox

+

Returns:
string (html)
+ +

+Definition at line 214 of file ui_browser.class.php. +

+References changePasswd.

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getFile id  ) 
+
+ + + + + +
+   + + +

+getFile +

+Call access method and show access path. Example only - not really useable. TODO: resource should be released by release method call

+

Parameters:
+ + +
id int, local id of accessed file
+
+ +

+Definition at line 353 of file ui_browser.class.php. +

+References alertMsg().

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getGroups id  ) 
+
+ + + + + +
+   + + +

+getGroups +

+get a list of groups where user is member of

+$id int local user ID

Returns:
array
+ +

+Definition at line 241 of file ui_browser.class.php. +

+Referenced by getSubj2GroupForm().

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getInfo id  ) 
+
+ + + + + +
+   + + +

+getInfo +

+Call getid3 library to analyze media file and show some results

+

Parameters:
+ + +
$id int local ID of file
+
+ +

+Definition at line 380 of file ui_browser.class.php.

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getMdata id  ) 
+
+ + + + + +
+   + + +

+getMdata +

+Show file's metadata as XML

+

Parameters:
+ + +
id int, local id of stored file
+
+
Returns:
array
+ +

+Definition at line 368 of file ui_browser.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiBrowser::getMetadataForm id,
&$  mask
+
+ + + + + +
+   + + +

+getMetaDataForm +

+create a form to edit Metadata

+

Parameters:
+ + +
id int
+
+
Returns:
string (html)
+ +

+Definition at line 402 of file ui_browser.class.php. +

+References uiBase::_parseArr2Form(), and editMetaData.

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getNewFileData id  ) 
+
+ + + + + +
+   + + +

+getNewFileData +

+get basic data about Folder to store file in

+

Parameters:
+ + +
$id int local ID of folder
+
+
Returns:
array
+ +

+Definition at line 313 of file ui_browser.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiBrowser::getNewFileForm id,
mask
+
+ + + + + +
+   + + +

+getNewFileForm +

+create a form for file-upload

+

Parameters:
+ + +
int local $id of directory to store file in
+
+string (html) +

+Definition at line 139 of file ui_browser.class.php. +

+References uiBase::_parseArr2Form(), and newfile.

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getPermissions id  ) 
+
+ + + + + +
+   + + +

+getPermissions +

+get permissions for local object ID

+

Parameters:
+ + +
$id int local ID (file/folder)
+
+
Returns:
array
+ +

+Definition at line 293 of file ui_browser.class.php. +

+References subjects.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiBrowser::getSearchForm id,
&$  mask
+
+ + + + + +
+   + + +

+getSearchForm +

+create a form for searching in StorageServer

+

Parameters:
+ + +
int local ID of start-directory
+
+
Returns:
string (html)
+ +

+Definition at line 160 of file ui_browser.class.php. +

+References uiBase::_parseArr2Form(), and search.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiBrowser::getSearchRes id,
search
+
+ + + + + +
+   + + +

+getSearchRes +

+get Search Result

+

Parameters:
+ + + +
$id int local ID (file/folder) to search in
$serach string
+
+
Returns:
array
+ +

+Definition at line 330 of file ui_browser.class.php. +

+References search.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiBrowser::getStructure id,
homedir = FALSE
+
+ + + + + +
+   + + +

+getStructure +

+get directory-structure

+

Parameters:
+ + + +
int local ID of start-directory
boolean $homedir TRUE: get homedir of current user
+
+array tree of directory with subs +

+Definition at line 99 of file ui_browser.class.php. +

+References $_REQUEST.

+

+ + + + +
+ + + + + + + + + +
uiBrowser::getSubj2GroupForm id  ) 
+
+ + + + + +
+   + + +

+getSubj2GroupForm +

+creates a form to assign groups to a user

+

Parameters:
+ + +
$id int local user ID
+
+
Returns:
string (html)
+ +

+Definition at line 262 of file ui_browser.class.php. +

+References addSubj2Group, and getGroups().

+

+ + + + +
+ + + + + + + + +
uiBrowser::getSubjects  ) 
+
+ + + + + +
+   + + +

+getSubjects +

+get all GreenBox subjects (users/groups)

+

Returns:
array subj=>unique id of subject, loggedAs=>corresponding login name
+ +

+Definition at line 178 of file ui_browser.class.php.

+

+ + + + +
+ + + + + + + + +
uiBrowser::getUserInfo  ) 
+
+ + + + + +
+   + + +

+getUserInfo +

+get info about logged in user

+

Returns:
array uname=>user Name, uid=>user ID
+ +

+Definition at line 83 of file ui_browser.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiBrowser::loginform &$  Smarty,
&$  mask
+
+ + + + + +
+   + + +

+loginform +

+create a login-form

+

Parameters:
+ + +
string $faillogin login name of failed login process
+
+
Returns:
string (html)
+ +

+Definition at line 57 of file ui_browser.class.php. +

+References uiBase::_parseArr2Form().

+

+ + + + +
+ + + + + + + + + +
uiBrowser::systemPrefs &$  mask  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 416 of file ui_browser.class.php. +

+References uiBase::_parseArr2Form(), and systemPrefs(). +

+Referenced by systemPrefs().

+


Member Data Documentation

+

+ + + + +
+ + + + +
uiBrowser::$alertMsg
+
+ + + + + +
+   + + +

+ +

+Definition at line 3 of file ui_browser.class.php.

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser.png b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser.png new file mode 100644 index 000000000..03a41ffeb Binary files /dev/null and b/livesupport/modules/htmlUI/doc/doxygen/html/classuiBrowser.png differ diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler-members.html b/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler-members.html new file mode 100644 index 000000000..e8d63c797 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler-members.html @@ -0,0 +1,38 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Member List + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

uiHandler Member List

This is the complete list of members for uiHandler, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
$alertMsguiHandler
$redirUrluiHandler
_parseArr2Form(&$form, &$mask, $side='client')uiBase
_validateForm(&$formdata, &$mask)uiHandler
addPerm($subj, $permAction, $id, $allowDeny)uiHandler
addSubj(&$formdata, &$mask)uiHandler
addSubj2Group($login, $gname, $reid)uiHandler
copy($newPath, $id)uiHandler
delete($id, $delOverride=FALSE)uiHandler
getFile($id)uiHandler
getInfo($id)uiHandler
getMdata($id)uiHandler
login(&$formdata, &$mask)uiHandler
logout()uiHandler
move($newPath, $id)uiHandler
newFolder($newname, $id)uiHandler
passwd($uid, $oldpass, $pass, $pass2)uiHandler
removePerm($permid, $oid)uiHandler
removeSubj($login)uiHandler
removeSubjFromGr($login, $gname, $reid)uiHandler
rename($newname, $id)uiHandler
storeSystemPrefs(&$formdata, &$mask)uiHandler
tra($input)uiBase
uiHandler($config)uiHandler
upload(&$formdata, $id, &$mask)uiHandler


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler.html b/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler.html new file mode 100644 index 000000000..1cfa10354 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler.html @@ -0,0 +1,1139 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: uiHandler Class Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

uiHandler Class Reference

uiHandler class +More... +

+

Inheritance diagram for uiHandler: +

+ +uiBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 uiHandler ($config)
 login (&$formdata, &$mask)
 login
 logout ()
 logout
 upload (&$formdata, $id, &$mask)
 upload
 newFolder ($newname, $id)
 newFolder
 rename ($newname, $id)
 rename
 move ($newPath, $id)
 move
 copy ($newPath, $id)
 copy
 delete ($id, $delOverride=FALSE)
 delete
 getFile ($id)
 getFile
 getMdata ($id)
 getMdata
 getInfo ($id)
 getInfo
 addSubj (&$formdata, &$mask)
 addSubj
 removeSubj ($login)
 removeSubj
 passwd ($uid, $oldpass, $pass, $pass2)
 passwd
 addPerm ($subj, $permAction, $id, $allowDeny)
 addPerm
 removePerm ($permid, $oid)
 removePerm
 addSubj2Group ($login, $gname, $reid)
 addSubj2Group
 removeSubjFromGr ($login, $gname, $reid)
 Remove subject from group.
 storeSystemPrefs (&$formdata, &$mask)
 _validateForm (&$formdata, &$mask)

Public Attributes

 $redirUrl
 $alertMsg
+

Detailed Description

+uiHandler class +

+LiveSupport HTML User Interface module +

+ +

+Definition at line 7 of file ui_handler.class.php.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
uiHandler::uiHandler config  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 11 of file ui_handler.class.php. +

+References $_REQUEST, $config, and login().

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::_validateForm &$  formdata,
&$  mask
+
+ + + + + +
+   + + +

+ +

+Definition at line 429 of file ui_handler.class.php. +

+References uiBase::_parseArr2Form().

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
uiHandler::addPerm subj,
permAction,
id,
allowDeny
+
+ + + + + +
+   + + +

+addPerm +

+Add new permission record

+

Parameters:
+ + + + + +
subj int, local user/group id
permAction string, type of action from set predefined in conf.php
id int, local id of file/object
allowDeny char, A or D
+
+ +

+Definition at line 347 of file ui_handler.class.php. +

+References permissions.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::addSubj &$  formdata,
&$  mask
+
+ + + + + +
+   + + +

+addSubj +

+Create new user or group (empty pass => create group)

+

Parameters:
+ + +
formdata array('login', 'pass')
+
+ +

+Definition at line 266 of file ui_handler.class.php. +

+References login(), subjects, and uiBase::tra().

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
uiHandler::addSubj2Group login,
gname,
reid
+
+ + + + + +
+   + + +

+addSubj2Group +

+Add {login} and direct/indirect members to {gname} and to groups, where {gname} is [in]direct member

+

Parameters:
+ + + + +
login string
gname string
reid string, local id of managed group, just needed for redirect
+
+ +

+Definition at line 384 of file ui_handler.class.php. +

+References groups, login(), and subjects.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::copy newPath,
id
+
+ + + + + +
+   + + +

+copy +

+Copy file to another folder TODO: format of destinantion path should be properly defined

+

Parameters:
+ + + +
newPath string, destination relative path
id int, destination folder id
+
+ +

+Definition at line 166 of file ui_handler.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::delete id,
delOverride = FALSE
+
+ + + + + +
+   + + +

+delete +

+Delete of stored file

+

Parameters:
+ + + +
id int, local id of deleted file or folder
delOverride int, local id od folder which can deleted if not empty
+
+ +

+Definition at line 187 of file ui_handler.class.php. +

+References uiBase::tra().

+

+ + + + +
+ + + + + + + + + +
uiHandler::getFile id  ) 
+
+ + + + + +
+   + + +

+getFile +

+Call access method and show access path. Example only - not really useable. TODO: resource should be released by release method call

+

Parameters:
+ + +
id int, local id of accessed file
+
+ +

+Definition at line 215 of file ui_handler.class.php.

+

+ + + + +
+ + + + + + + + + +
uiHandler::getInfo id  ) 
+
+ + + + + +
+   + + +

+getInfo +

+Call getid3 library to analyze media file and show some results

+

Parameters:
+ + +
@param 
+
+ +

+Definition at line 244 of file ui_handler.class.php.

+

+ + + + +
+ + + + + + + + + +
uiHandler::getMdata id  ) 
+
+ + + + + +
+   + + +

+getMdata +

+Show file's metadata as XML

+

Parameters:
+ + +
id int, local id of stored file
+
+ +

+Definition at line 229 of file ui_handler.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::login &$  formdata,
&$  mask
+
+ + + + + +
+   + + +

+login +

+Login to the storageServer. It set sessid to the cookie with name defined in ../conf.php

+

Parameters:
+ + + +
login string, username
pass string, password
+
+ +

+Definition at line 33 of file ui_handler.class.php. +

+References login(). +

+Referenced by addSubj(), addSubj2Group(), login(), removeSubj(), removeSubjFromGr(), and uiHandler().

+

+ + + + +
+ + + + + + + + +
uiHandler::logout  ) 
+
+ + + + + +
+   + + +

+logout +

+Logut from storageServer, takes sessid from cookie +

+Definition at line 56 of file ui_handler.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::move newPath,
id
+
+ + + + + +
+   + + +

+move +

+Move file to another folder TODO: format of destinantion path should be properly defined

+

Parameters:
+ + + +
newPath string, destination relative path
id int, destination folder id
+
+ +

+Definition at line 144 of file ui_handler.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::newFolder newname,
id
+
+ + + + + +
+   + + +

+newFolder +

+Create new folder in the storage

+

Parameters:
+ + + +
newname string, name for the new folder
id int, destination folder id
+
+ +

+Definition at line 112 of file ui_handler.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
uiHandler::passwd uid,
oldpass,
pass,
pass2
+
+ + + + + +
+   + + +

+passwd +

+Change password for specified user

+

Parameters:
+ + + + + +
uid int, local user id
oldpass string, old user password
pass string, new password
pass2 string, retype of new password
+
+ +

+Definition at line 313 of file ui_handler.class.php. +

+References subjects.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::removePerm permid,
oid
+
+ + + + + +
+   + + +

+removePerm +

+Remove permission record

+

Parameters:
+ + +
permid int, local id of permission record
+
+ +

+Definition at line 365 of file ui_handler.class.php. +

+References permissions.

+

+ + + + +
+ + + + + + + + + +
uiHandler::removeSubj login  ) 
+
+ + + + + +
+   + + +

+removeSubj +

+Remove existing user or group

+

Parameters:
+ + +
login string, login name of removed user
+
+ +

+Definition at line 290 of file ui_handler.class.php. +

+References login(), and subjects.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
uiHandler::removeSubjFromGr login,
gname,
reid
+
+ + + + + +
+   + + +

+Remove subject from group. +

+

Parameters:
+ + + + +
login string
gname string
reid string, local id of managed group, just needed for redirect
+
+ +

+Definition at line 404 of file ui_handler.class.php. +

+References groups, login(), and subjects.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::rename newname,
id
+
+ + + + + +
+   + + +

+rename +

+Change the name of file or folder

+

Parameters:
+ + + +
newname string, new name for the file or folder
id int, destination folder id
+
+ +

+Definition at line 127 of file ui_handler.class.php.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
uiHandler::storeSystemPrefs &$  formdata,
&$  mask
+
+ + + + + +
+   + + +

+ +

+Definition at line 418 of file ui_handler.class.php. +

+References systemPrefs, and uiBase::tra().

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
uiHandler::upload &$  formdata,
id,
&$  mask
+
+ + + + + +
+   + + +

+upload +

+Provides file upload and store it to the storage

+

Parameters:
+ + + + + +
filename string, name for the uploaded file
mediafile file uploded by HTTP, raw binary media file
mdatafile file uploded by HTTP, metadata XML file
id int, destination folder id
+
+ +

+Definition at line 74 of file ui_handler.class.php.

+


Member Data Documentation

+

+ + + + +
+ + + + +
uiHandler::$alertMsg
+
+ + + + + +
+   + + +

+ +

+Definition at line 9 of file ui_handler.class.php.

+

+ + + + +
+ + + + +
uiHandler::$redirUrl
+
+ + + + + +
+   + + +

+ +

+Definition at line 8 of file ui_handler.class.php.

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler.png b/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler.png new file mode 100644 index 000000000..b324c6f69 Binary files /dev/null and b/livesupport/modules/htmlUI/doc/doxygen/html/classuiHandler.png differ diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/conf_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/conf_8php-source.html new file mode 100644 index 000000000..05b13a68b --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/conf_8php-source.html @@ -0,0 +1,115 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: conf.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

conf.php

Go to the documentation of this file.
00001 <?php
+00002 /*------------------------------------------------------------------------------
+00003 
+00004     Copyright (c) 2004 Media Development Loan Fund
+00005 
+00006     This file is part of the LiveSupport project.
+00007     http://livesupport.campware.org/
+00008     To report bugs, send an e-mail to bugs@campware.org
+00009 
+00010     LiveSupport is free software; you can redistribute it and/or modify
+00011     it under the terms of the GNU General Public License as published by
+00012     the Free Software Foundation; either version 2 of the License, or
+00013     (at your option) any later version.
+00014 
+00015     LiveSupport is distributed in the hope that it will be useful,
+00016     but WITHOUT ANY WARRANTY; without even the implied warranty of
+00017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+00018     GNU General Public License for more details.
+00019 
+00020     You should have received a copy of the GNU General Public License
+00021     along with LiveSupport; if not, write to the Free Software
+00022     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+00023 
+00024 
+00025     Author   : $Author: sebastian $
+00026     Version  : $Revision: 1.1 $
+00027     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/htmlUI/doc/doxygen/html/Attic/conf_8php-source.html,v $
+00028 
+00029 ------------------------------------------------------------------------------*/
+00030 
+00049 $config = array(
+00050     /* ================================================== basic configuration */
+00051     'dsn'           => array(
+00052         'username'      => 'test',
+00053         'password'      => 'test',
+00054         'hostspec'      => 'localhost',
+00055         'phptype'       => 'pgsql',
+00056         'database'      => 'LiveSupport-test',
+00057     ),
+00058     'tblNamePrefix' => 'ls_',
+00059     'authCookieName'=> 'lssid',
+00060     #'storageDir'    =>  dirname(getcwd()).'/stor',
+00061     #'bufferDir'     =>  dirname(getcwd()).'/stor/buffer',
+00062     #'transDir'      =>  dirname(getcwd()).'/trans',
+00063     #'accessDir'     =>  dirname(getcwd()).'/access',
+00064     'storageDir'    =>  dirname(__FILE__).'/../../storageServer/var/stor',
+00065     'bufferDir'     =>  dirname(__FILE__).'/../../storageServer/var/stor/buffer',
+00066     'transDir'      =>  dirname(__FILE__).'/../../storageServer/var/trans',
+00067     'accessDir'     =>  dirname(__FILE__).'/../../storageServer/var/access',
+00068 
+00069     /* ==================================================== URL configuration */
+00070     'storageUrlPath'        => '/livesupportStorageServer',
+00071     'storageXMLRPC'         => 'xmlrpc/xrLocStor.php',
+00072     'storageUrlHost'        => 'localhost',
+00073     'storageUrlPort'        => 80,
+00074 
+00075     /* ================================================ archive configuration */
+00076     'archiveUrlPath'        => '/livesupportArchiveServer',
+00077     'archiveXMLRPC'         => 'xmlrpc/xrArchive.php',
+00078     'archiveUrlHost'        => 'localhost',
+00079     'archiveUrlPort'        => 80,
+00080     'archiveAccountLogin'   => 'root',
+00081     'archiveAccountPass'    => 'q',
+00082 
+00083     /* ==================================== aplication-specific configuration */
+00084     'objtypes'      => array(
+00085         'RootNode'      => array('Folder'),
+00086         'Storage'       => array('Folder', 'File', 'Replica'),
+00087         'Folder'        => array('Folder', 'File', 'Replica'),
+00088         'File'          => array(),
+00089         'Replica'       => array(),
+00090     ),
+00091     'allowedActions'=> array(
+00092         'RootNode'      => array('classes', 'subjects'),
+00093         'Folder'        => array('editPrivs', 'write', 'read'),
+00094         'File'          => array('editPrivs', 'write', 'read'),
+00095         'Replica'       => array('editPrivs', 'write', 'read'),
+00096         '_class'        => array('editPrivs', 'write', 'read'),
+00097     ),
+00098     'allActions'    =>  array(
+00099         'editPrivs', 'write', 'read', 'classes', 'subjects'
+00100     ),
+00101 
+00102     /* ============================================== auxiliary configuration */
+00103     'RootNode'        => 'RootNode',
+00104     'tmpRootPass'   => 'q',
+00105 );
+00106 
+00107 
+00108 
+00109 
+00110 define('UI_HANDLER', 'ui_handler.php');
+00111 define('UI_BROWSER', 'ui_browser.php');
+00112 define('UI_FORM_STANDARD_METHOD', 'POST');
+00113 define('UI_INPUT_STANDARD_SIZE', 20);
+00114 define('UI_INPUT_STANDARD_MAXLENGTH', 50);
+00115 define('UI_INPUT_GBOBJECT_MAXFILESIZE', 10000);
+00116 define('UI_QFORM_REQUIRED',     'templates/form_parts/required.tpl');
+00117 define('UI_QFORM_REQUIREDNOTE', 'templates/form_parts/requirednote.tpl');
+00118 define('UI_QFORM_ERROR',        'templates/form_parts/required.tpl');
+00119 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/conf_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/conf_8php.html new file mode 100644 index 000000000..c2d076139 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/conf_8php.html @@ -0,0 +1,326 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: conf.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

conf.php File Reference

+

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + +

Enumerations

enum  UI_HANDLER
enum  UI_BROWSER
enum  UI_FORM_STANDARD_METHOD
enum  UI_INPUT_STANDARD_SIZE
enum  UI_INPUT_STANDARD_MAXLENGTH
enum  UI_INPUT_GBOBJECT_MAXFILESIZE
enum  UI_QFORM_REQUIRED
enum  UI_QFORM_REQUIREDNOTE
enum  UI_QFORM_ERROR

Variables

 $config
 configuration structure:
+


Enumeration Type Documentation

+

+ + + + +
+ + + + +
enum UI_BROWSER
+
+ + + + + +
+   + + +

+ +

+Definition at line 111 of file conf.php.

+

+ + + + +
+ + + + +
enum UI_FORM_STANDARD_METHOD
+
+ + + + + +
+   + + +

+ +

+Definition at line 112 of file conf.php.

+

+ + + + +
+ + + + +
enum UI_HANDLER
+
+ + + + + +
+   + + +

+ +

+Definition at line 110 of file conf.php.

+

+ + + + +
+ + + + +
enum UI_INPUT_GBOBJECT_MAXFILESIZE
+
+ + + + + +
+   + + +

+ +

+Definition at line 115 of file conf.php.

+

+ + + + +
+ + + + +
enum UI_INPUT_STANDARD_MAXLENGTH
+
+ + + + + +
+   + + +

+ +

+Definition at line 114 of file conf.php.

+

+ + + + +
+ + + + +
enum UI_INPUT_STANDARD_SIZE
+
+ + + + + +
+   + + +

+ +

+Definition at line 113 of file conf.php.

+

+ + + + +
+ + + + +
enum UI_QFORM_ERROR
+
+ + + + + +
+   + + +

+ +

+Definition at line 118 of file conf.php.

+

+ + + + +
+ + + + +
enum UI_QFORM_REQUIRED
+
+ + + + + +
+   + + +

+ +

+Definition at line 116 of file conf.php.

+

+ + + + +
+ + + + +
enum UI_QFORM_REQUIREDNOTE
+
+ + + + + +
+   + + +

+ +

+Definition at line 117 of file conf.php.

+


Variable Documentation

+

+ + + + +
+ + + + +
$config
+
+ + + + + +
+   + + +

+configuration structure: +

+

+
dsn
+
datasource setting
+
tblNamePrefix
+
prefix for table names in the database
+
authCookieName
+
secret token cookie name
+
storageDir
+
main directory for storing binary media files
+
bufferDir
+
directory for temporary files
+
transDir
+
directory for incomplete transferred files
+
accessDir
+
directory for symlinks to accessed files
+
storageUrlPath
+
path-URL-part of storageServer base dir
+
storageXMLRPC
+
XMLRPC server script address relative to storageUrlPath
+
storageUrlHost, storageUrlPort
+
host and port of storageServer
+
archiveUrlPath
+
path-URL-part of archiveServer base dir
+
archiveXMLRPC
+
XMLRPC server script address relative to archiveUrlPath
+
archiveUrlHost, archiveUrlPort
+
host and port of archiveServer
+
+ +

+Definition at line 49 of file conf.php. +

+Referenced by uiBrowser::uiBrowser(), and uiHandler::uiHandler().

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/dir_000000.html b/livesupport/modules/htmlUI/doc/doxygen/html/dir_000000.html new file mode 100644 index 000000000..a5f4e9c74 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/dir_000000.html @@ -0,0 +1,39 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: var/ Directory Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

var Directory Reference

+ + + + + + + + + + + + + + + + + + + + + + + +

Directories

directory  html

Files

file  conf.php [code]
file  index.php [code]
file  SmartyExtensions.inc.php [code]
file  ui_base.inc.php [code]
file  ui_browser.class.php [code]
file  ui_browser_init.php [code]
file  ui_fmask.inc.php [code]
file  ui_handler.class.php [code]
file  ui_handler_init.php [code]
+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/dir_000001.html b/livesupport/modules/htmlUI/doc/doxygen/html/dir_000001.html new file mode 100644 index 000000000..b8952f801 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/dir_000001.html @@ -0,0 +1,24 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: var/html/ Directory Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

html Directory Reference

+ + + + + + + + +

Files

file  html/index.php [code]
file  ui_browser.php [code]
file  ui_handler.php [code]
+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/dirs.html b/livesupport/modules/htmlUI/doc/doxygen/html/dirs.html new file mode 100644 index 000000000..46cb033e7 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/dirs.html @@ -0,0 +1,18 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Directory Hierarchy + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

LiveSupport - htmlUI module Directories

This directory hierarchy is sorted roughly, but not completely, alphabetically: +
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/doxygen.css b/livesupport/modules/htmlUI/doc/doxygen/html/doxygen.css new file mode 100644 index 000000000..e5272cd12 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/doxygen.css @@ -0,0 +1,297 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 110%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } +TD.md { background-color: #F4F4FB; font-weight: bold; } +TD.mdPrefix { + background-color: #F4F4FB; + color: #606060; + font-size: 80%; +} +TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } +TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #eeeeff; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #eeeeff; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdTable { + border: 1px solid #868686; + background-color: #F4F4FB; +} +.mdRow { + padding: 8px 10px; +} +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #eeeeff; +} +TD.tiny { font-size: 75%; +} +a { + color: #252E78; +} +a:visited { + color: #3D2185; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #b0b0b0; +} +TH.dirtab { background: #eeeeff; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/doxygen.png b/livesupport/modules/htmlUI/doc/doxygen/html/doxygen.png new file mode 100644 index 000000000..f0a274bba Binary files /dev/null and b/livesupport/modules/htmlUI/doc/doxygen/html/doxygen.png differ diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/files.html b/livesupport/modules/htmlUI/doc/doxygen/html/files.html new file mode 100644 index 000000000..c4bfdf393 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/files.html @@ -0,0 +1,26 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: File Index + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

LiveSupport - htmlUI module File List

Here is a list of all files with brief descriptions: + + + + + + + + + + + + +
conf.php [code]
index.php [code]
html/index.php [code]
SmartyExtensions.inc.php [code]
ui_base.inc.php [code]
ui_browser.class.php [code]
ui_browser.php [code]
ui_browser_init.php [code]
ui_fmask.inc.php [code]
ui_handler.class.php [code]
ui_handler.php [code]
ui_handler_init.php [code]
+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/functions.html b/livesupport/modules/htmlUI/doc/doxygen/html/functions.html new file mode 100644 index 000000000..1006d4015 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/functions.html @@ -0,0 +1,88 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Class Members + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+
All | Functions | Variables
+
$ | _ | a | c | d | g | l | m | n | p | r | s | t | u
+ +

+ +

+Here is a list of all class members with links to the classes they belong to:

- $ -

+

- _ -

+

- a -

+

- c -

+

- d -

+

- g -

+

- l -

+

- m -

+

- n -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/functions_func.html b/livesupport/modules/htmlUI/doc/doxygen/html/functions_func.html new file mode 100644 index 000000000..6d666e3d9 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/functions_func.html @@ -0,0 +1,84 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Class Members - Functions + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+
All | Functions | Variables
+
_ | a | c | d | g | l | m | n | p | r | s | t | u
+ +

+ +

+

- _ -

+

- a -

+

- c -

+

- d -

+

- g -

+

- l -

+

- m -

+

- n -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/functions_vars.html b/livesupport/modules/htmlUI/doc/doxygen/html/functions_vars.html new file mode 100644 index 000000000..f9903d818 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/functions_vars.html @@ -0,0 +1,19 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Class Members - Variables + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+
All | Functions | Variables
+ +

+

+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/globals.html b/livesupport/modules/htmlUI/doc/doxygen/html/globals.html new file mode 100644 index 000000000..dd3c8f3de --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/globals.html @@ -0,0 +1,103 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: File Members + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+
All | Functions | Variables | Enumerations
+
$ | _ | a | b | c | d | e | g | i | l | m | n | p | r | s | u
+ +

+ +

+Here is a list of all file members with links to the files they belong to:

- $ -

+

- _ -

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- g -

+

- i -

+

- l -

+

- m -

+

- n -

+

- p -

+

- r -

+

- s -

+

- u -

+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/globals_enum.html b/livesupport/modules/htmlUI/doc/doxygen/html/globals_enum.html new file mode 100644 index 000000000..6234836f3 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/globals_enum.html @@ -0,0 +1,26 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: File Members - Enumerations + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+
All | Functions | Variables | Enumerations
+ +

+

+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/globals_func.html b/livesupport/modules/htmlUI/doc/doxygen/html/globals_func.html new file mode 100644 index 000000000..828412468 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/globals_func.html @@ -0,0 +1,23 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: File Members - Functions + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+
All | Functions | Variables | Enumerations
+ +

+

+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/globals_vars.html b/livesupport/modules/htmlUI/doc/doxygen/html/globals_vars.html new file mode 100644 index 000000000..24f84ae29 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/globals_vars.html @@ -0,0 +1,88 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: File Members - Variables + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+
All | Functions | Variables | Enumerations
+
$ | _ | a | b | c | d | e | g | i | l | m | n | p | r | s | u
+ +

+ +

+

- $ -

+

- _ -

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- g -

+

- i -

+

- l -

+

- m -

+

- n -

+

- p -

+

- r -

+

- s -

+

- u -

+
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/hierarchy.html b/livesupport/modules/htmlUI/doc/doxygen/html/hierarchy.html new file mode 100644 index 000000000..7d45d2798 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/hierarchy.html @@ -0,0 +1,19 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Hierarchical Index + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

LiveSupport - htmlUI module Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/html_2index_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/html_2index_8php-source.html new file mode 100644 index 000000000..64a212725 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/html_2index_8php-source.html @@ -0,0 +1,18 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: index.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

html/index.php

Go to the documentation of this file.
00001 <?php
+00002 require_once dirname(__FILE__).'/../conf.php';
+00003 header('LOCATION: '.HTMLUI_BROWSER);
+00004 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/html_2index_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/html_2index_8php.html new file mode 100644 index 000000000..48c6514b6 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/html_2index_8php.html @@ -0,0 +1,19 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: index.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

html/index.php File Reference

+

+Go to the source code of this file. + +
+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/index.html b/livesupport/modules/htmlUI/doc/doxygen/html/index.html new file mode 100644 index 000000000..745161c7a --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/index.html @@ -0,0 +1,14 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: Main Page + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+

LiveSupport - htmlUI module Documentation

+

+

1.0


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/index_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/index_8php-source.html new file mode 100644 index 000000000..20b3eace6 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/index_8php-source.html @@ -0,0 +1,18 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: index.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

index.php

Go to the documentation of this file.
00001 <?php
+00002 require_once dirname(__FILE__).'/conf.php';
+00003 header('LOCATION: '.UI_BROWSER);
+00004 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/index_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/index_8php.html new file mode 100644 index 000000000..89f0743d6 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/index_8php.html @@ -0,0 +1,19 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: index.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

index.php File Reference

+

+Go to the source code of this file. + +
+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__base_8inc_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__base_8inc_8php-source.html new file mode 100644 index 000000000..2064b470b --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__base_8inc_8php-source.html @@ -0,0 +1,92 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_base.inc.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_base.inc.php

Go to the documentation of this file.
00001 <?php
+00002 function errCallBack($err)
+00003 {
+00004     echo "<pre>gm:\n".$err->getMessage()."\ndi:\n".$err->getDebugInfo()."\nui:\n".$err->getUserInfo()."\n";
+00005     echo "<hr>BackTrace:\n";
+00006     print_r($err->backtrace);
+00007     echo "</pre>\n";
+00008     exit;
+00009 }
+00010 
+00017 class uiBase
+00018 {
+00019     // --- basic funtionality ---
+00028     function tra($input)
+00029     {
+00030         // just a dummy function yet
+00031 
+00032         return $input;
+00033     }
+00034 
+00035 
+00045     function _parseArr2Form(&$form, &$mask, $side='client')
+00046     {
+00047         foreach($mask as $k=>$v) {
+00048             ## add elements ########################
+00049             if ($v['type']=='radio') {
+00050                 foreach($v['options'] as $rk=>$rv) {
+00051                     $radio[] =& $form->createElement($v['type'], NULL, NULL, $rv, $rk);
+00052                 }
+00053                 $form->addGroup($radio, $v['element'], $this->tra($v['label']));
+00054                 unset($radio);
+00055 
+00056             } elseif (isset($v['type'])) {
+00057                 $elem[$v['element']] =& $form->createElement($v['type'], $v['element'], $this->tra($v['label']), ($v['attributes']?$v['attributes']:(($v[type]=='text'||$v['type']=='file')?array('size'=>UI_INPUT_STANDARD_SIZE, 'maxlength'=>UI_INPUT_STANDARD_MAXLENGTH):NULL)));
+00058                 if($v['type']=='select') {
+00059                     $elem[$v['element']]->loadArray($v['options']);
+00060                     $elem[$v['element']]->setMultiple($v['multiple']);
+00061                 };
+00062                 if (!$v['groupit']) $form->addElement($elem[$v['element']]);
+00063             }
+00064             ## add required rule ###################
+00065             if ($v['required']) {
+00066                 $form->addRule($v['element'], ($v['errormsg']?$this->tra($v['errormsg']):$this->tra('please enter value for').' '.$this->tra($v['label'])), 'required', NULL, $side);
+00067             }
+00068             ## add constant value ##################
+00069             if (isset($v['constant'])) {
+00070                 $form->setConstants(array($v['element']=>$v['constant']));
+00071             }
+00072             ## add default value ###################
+00073             if (isset($v['default'])) {
+00074                 $form->setDefaults(array($v['element']=>$v['default']));
+00075             }
+00076             ## add other rules #####################
+00077             if ($v['rule']) {
+00078                 $form->addRule($v['element'], $this->tra($v['errormsg']), $v['rule'] , NULL, $side);
+00079             }
+00080             ## add group ###########################
+00081             if (is_array($v['group'])) {
+00082                 foreach($v['group'] as $val) {
+00083                     $groupthose[] =& $elem[$val];
+00084                 }
+00085                 $form->addGroup($groupthose, $v['name'], $this->tra($v['label']), $v['seperator'], $v['appendName']);
+00086                 unset($groupthose);
+00087             }
+00088             ## check error on type file ##########
+00089             if ($v['type']=='file') {
+00090                 if ($_POST[$v['element']]['error']) {
+00091                     $form->setElementError($v['element'], ($v['errormsg']?$this->tra($v['errormsg']):$this->tra('please enter value for').' '.$this->tra($v['label'])));
+00092                 }
+00093             }
+00094         }
+00095 
+00096         reset($mask);
+00097 
+00098         $form->validate();
+00099     }
+00100 }
+00101 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__base_8inc_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__base_8inc_8php.html new file mode 100644 index 000000000..2e0bedd19 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__base_8inc_8php.html @@ -0,0 +1,53 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_base.inc.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_base.inc.php File Reference

+

+Go to the source code of this file. + + + + +

Functions

 errCallBack ($err)
+


Function Documentation

+

+ + + + +
+ + + + + + + + + +
errCallBack err  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 2 of file ui_base.inc.php.

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8class_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8class_8php-source.html new file mode 100644 index 000000000..2cfec689a --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8class_8php-source.html @@ -0,0 +1,288 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_browser.class.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_browser.class.php

Go to the documentation of this file.
00001 <?php
+00002 class uiBrowser extends uiBase {
+00003     var $alertMsg;
+00004 
+00005     // --- class constructor ---
+00015     function uiBrowser($config)
+00016     {
+00017         $dbc = DB::connect($config['dsn'], TRUE);
+00018         $dbc->setFetchMode(DB_FETCHMODE_ASSOC);
+00019         $this->gb = &new GreenBox(&$dbc, $config);
+00020         $this->id = (!$_REQUEST['id'] ? $this->gb->storId : $_REQUEST['id']);
+00021         $this->sessid = $_REQUEST[$config['authCookieName']];
+00022         $this->userid = $this->gb->getSessUserId($this->sessid);
+00023         $this->login  = $this->gb->getSessLogin($this->sessid);
+00024         $this->InputTextStandardAttrib = array('size'     =>UI_INPUT_STANDARD_SIZE,
+00025                                                'maxlength'=>UI_INPUT_STANDARD_MAXLENGTH);
+00026 
+00027     }
+00028 
+00029     // --- error handling ---
+00038     function alertMsg()
+00039     {
+00040         if ($_SESSION['alertMsg']) {
+00041             $this->alertMsg = $_SESSION['alertMsg'];
+00042             unset($_SESSION['alertMsg']);
+00043             return $this->alertMsg;
+00044         }
+00045         return false;
+00046     }
+00047 
+00048     // --- template feed ---
+00057     function loginform(&$Smarty, &$mask)
+00058     {
+00059         $form = new HTML_QuickForm('loginbox', UI_STANDARD_FORM_METHOD, UI_HANDLER);
+00060         $form->setRequiredNote(file_get_contents(UI_QFORM_REQUIREDNOTE));
+00061         $this->_parseArr2Form($form, $mask);
+00062 
+00063         ## using Static Smarty Renderer
+00064         $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($Smarty, true);
+00065         $renderer->setRequiredTemplate(file_get_contents(UI_QFORM_REQUIRED));
+00066         $renderer->setErrorTemplate(file_get_contents(UI_QFORM_ERROR));
+00067 
+00068         $form->accept($renderer);
+00069 
+00070         return $renderer->toArray();
+00071     }
+00072 
+00073 
+00074 
+00075 
+00083     function getUserInfo()
+00084     {
+00085         return array('uname'=>$this->gb->getSessLogin($this->sessid),
+00086                      'uid'  =>$this->gb->getSessUserId($this->sessid));
+00087     }
+00088 
+00099     function getStructure($id, $homedir=FALSE)
+00100     {
+00101         if ($homedir) {
+00102             $id = $this->gb->getObjId($this->login, $this->gb->storId);
+00103             $data['id'] = $id;
+00104         } else {
+00105             $data['id'] = $id;
+00106         }
+00107 
+00108         $data=array_merge($data, array(
+00109                 'pathdata'  => $this->gb->getPath($id, $this->sessid),
+00110                 'listdata'  => ($this->gb->getObjType($id)=='Folder'?
+00111                     $this->gb->listFolder($id, $this->sessid):array()
+00112                 ),
+00113                 'tree'  => ($_REQUEST['tree']=='Y'),
+00114                 'showPath'  => true,
+00115                 'showTree'  => true,
+00116             ));
+00117             if($_REQUEST['tree']=='Y'){
+00118                 $data['treedata'] = $this->gb->getSubTree($id, $this->sessid);
+00119             }
+00120 
+00121         if(PEAR::isError($data['listdata'])){
+00122             $data['msg'] = $data['listdata']->getMessage();
+00123             $data['listdata'] = array();
+00124         }
+00125 
+00126         return $data;
+00127     }
+00128 
+00129 
+00139     function getNewFileForm($id, $mask)
+00140     {
+00141         $form = new HTML_QuickForm('newfile', UI_STANDARD_FORM_METHOD, UI_HANDLER);
+00142         $form->setConstants(array('id'=>$id));
+00143         $form->addElement('hidden', 'id');
+00144 
+00145         $this->_parseArr2Form($form, $mask);
+00146 
+00147         return $form->toHTML();
+00148     }
+00149 
+00150 
+00160     function getSearchForm($id, &$mask)
+00161     {
+00162         $form = new HTML_QuickForm('search', UI_STANDARD_FORM_METHOD, UI_BROWSER);
+00163         $form->setConstants(array('id'=>$id));
+00164         $form->addElement('hidden', 'id');
+00165 
+00166         $this->_parseArr2Form($form, $mask);
+00167 
+00168         return $form->toHTML();
+00169     }
+00170 
+00178     function getSubjects()
+00179     {
+00180         return array('subj'       => $this->gb->getSubjectsWCnt(),
+00181                      'loggedAs'   => $this->login
+00182                     );
+00183     }
+00184 
+00185 
+00193     function getAddSubjectForm($mask)
+00194     {
+00195         $form = new HTML_QuickForm('addSubject', UI_STANDARD_FORM_METHOD, UI_HANDLER);
+00196         #$form->setConstants(array('act'=>'addSubj'));
+00197         #$form->addElement('hidden', 'act');
+00198         #$form->addElement('text', 'login', $this->tra('Add Subject with Name'), $this->InputTextStandardAttrib);
+00199         #$form->addElement('password', 'pass', $this->tra('and Password'), $this->InputTextStandardAttrib);
+00200         #$form->addElement('submit', NULL, $this->tra('Add'));
+00201         #$form->addRule('login', $this->tra('enter a Subject Name'), 'required', null, 'client');
+00202         #$form->addRule('pass', $this->tra('enter a Password'), 'required', null, 'client');
+00203         $this->_parseArr2Form($form, $mask);
+00204         return $form->toHTML();
+00205     }
+00206 
+00214     function getChangePasswdForm($uid)
+00215     {
+00216         $form = new HTML_QuickForm('changePasswd', UI_STANDARD_FORM_METHOD, UI_HANDLER);
+00217         $form->setConstants(array('act'=>'changePasswd',
+00218                                   'uid'=>$uid));
+00219         $form->addElement('hidden', 'act');
+00220         $form->addElement('hidden', 'uid');
+00221         $form->addElement('text', 'oldpass', $this->tra('Old Password'), $this->InputTextStandardAttrib);
+00222         $form->addElement('text', 'pass', $this->tra('new Password'), $this->InputTextStandardAttrib);
+00223         $form->addElement('text', 'pass2', $this->tra('retype new Password'), $this->InputTextStandardAttrib);
+00224         $form->addElement('submit', NULL, $this->tra('Change'));
+00225         $form->addRule('oldpass', $this->tra('enter Old Password'), 'required', null, 'client');
+00226         $form->addRule('pass', $this->tra('enter new Password'), 'required', null, 'client');
+00227         $form->addRule('pass2', $this->tra('retype new Password'), 'required', null, 'client');
+00228         $form->addRule(array('pass', 'pass2'), 'The passwords do not match', 'compare', null, 'client');
+00229 
+00230         return $form->toHTML();
+00231     }
+00232 
+00241     function getGroups($id)
+00242     {
+00243         return array(
+00244             'rows'      => $this->gb->listGroup($id),
+00245             'id'        => $id,
+00246             'loggedAs'  => $this->login,
+00247             'gname'     => $this->gb->getSubjName($id),
+00248             'subj'      => $this->gb->getSubjects()
+00249         );
+00250     }
+00251 
+00252 
+00262     function getSubj2GroupForm($id)
+00263     {
+00264         $g = $this->getGroups($id);
+00265         foreach($g['subj'] as $s) {
+00266             $this->logins[($s['login'])]=$s['login'];
+00267         }
+00268 
+00269         $form = new HTML_QuickForm('addSubj2Group', UI_STANDARD_FORM_METHOD, UI_HANDLER);
+00270         $form->setConstants(array('act'=>'addSubj2Group',
+00271                                   'reid'=>$g['id'],
+00272                                   'gname'=>$g['gname']));
+00273         $form->addElement('hidden', 'act');
+00274         $form->addElement('hidden', 'reid');
+00275         $form->addElement('hidden', 'gname');
+00276         $s =& $form->createElement('select', 'login', 'Add Group: ');
+00277         $s->loadArray($this->logins, NULL);
+00278         $form->addElement($s);
+00279         $form->addElement('submit', NULL, $this->tra('Do'));
+00280 
+00281         return $form->toHTML();
+00282     }
+00283 
+00293     function getPermissions($id)
+00294     {
+00295         return array('pathdata'  => $this->gb->getPath($id),
+00296                      'perms'     => $this->gb->getObjPerms($id),
+00297                      'actions'   => $this->gb->getAllowedActions($this->gb->getObjType($id)),
+00298                      'subjects'  => $this->gb->getSubjects(),
+00299                      'id'        => $id,
+00300                      'loggedAs'  => $this->login
+00301                      );
+00302     }
+00303 
+00313     function getNewFileData($id)
+00314     {
+00315         return array('pathdata'  => $this->gb->getPath($id, $this->sessid),
+00316                      'showEdit'  => true,
+00317                      'id'    => $id,
+00318                       );
+00319     }
+00320 
+00330     function getSearchRes($id, $search)
+00331     {
+00332         foreach ($this->gb->localSearch($search, $this->sessid) as $rec) {
+00333                 $res = array('items' => array('gunid'  => $rec,
+00334                                               'par_id' => $this->gb->_idFromGunid($rec)));
+00335             }
+00336 
+00337         return array('search'   => $res,
+00338                      'showSRes' => true,
+00339                      'id'       => $id
+00340                      );
+00341 
+00342     }
+00343 
+00353     function getFile($id)
+00354     {
+00355         $r = $this->gb->access($id, $this->sessid);
+00356         if(PEAR::isError($r)) $_SESSION['alertMsg'] = $r->getMessage();
+00357         else print_r($r);
+00358     }
+00359 
+00368     function getMdata($id)
+00369     {
+00370         return($this->gb->getMdata($id, $this->sessid));
+00371     }
+00372 
+00380     function getInfo($id)
+00381     {
+00382         $ia = $this->gb->analyzeFile($id, $this->sessid);
+00383 
+00384         return "fileformat: {$ia['fileformat']}<br>
+00385                 channels: {$ia['audio']['channels']}<br>
+00386                 sample_rate: {$ia['audio']['sample_rate']}<br>
+00387                 bits_per_sample: {$ia['audio']['bits_per_sample']}<br>
+00388                 channelmode: {$ia['audio']['channelmode']}<br>
+00389                 title: {$ia['id3v1']['title']}<br>
+00390                 artist: {$ia['id3v1']['artist']}<br>
+00391                 comment: {$ia['id3v1']['comment']}";
+00392     }
+00393 
+00402     function getMetadataForm($id, &$mask)
+00403     {
+00404         $form = new HTML_QuickForm('editMetaData', UI_STANDARD_FORM_METHOD, UI_HANDLER);
+00405         $form->setConstants(array('act'=>'editMetaData',
+00406                                   'id'=>$id));
+00407         $form->addElement('hidden', 'act');
+00408         $form->addElement('hidden', 'id');
+00409 
+00410         $this->_parseArr2Form($form, $mask);
+00411 
+00412         return $form->toHTML();
+00413     }
+00414 
+00415 
+00416     function systemPrefs(&$mask)
+00417     {
+00418         $form = new HTML_QuickForm('systemPrefs', UI_STANDARD_FORM_METHOD, UI_HANDLER);
+00419         $form->setConstants(array('act'=>'systemPrefs'));
+00420         $form->addElement('hidden', 'act');
+00421 
+00422         $this->_parseArr2Form($form, $mask);
+00423 
+00424         ## using Static Smarty Renderer
+00425         $renderer =& new HTML_QuickForm_Renderer_Array(true, true);
+00426         $form->accept($renderer);
+00427 
+00428         return $renderer->toArray();
+00429     }
+00430 }
+00431 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8class_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8class_8php.html new file mode 100644 index 000000000..a0fa826b9 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8class_8php.html @@ -0,0 +1,19 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_browser.class.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_browser.class.php File Reference

+

+Go to the source code of this file. + +
+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8php-source.html new file mode 100644 index 000000000..45472bf87 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8php-source.html @@ -0,0 +1,125 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_browser.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_browser.php

Go to the documentation of this file.
00001 <?php
+00002 require_once dirname(__FILE__).'/../ui_browser_init.php';
+00003 
+00004 if (!$uiBrowser->sessid) {
+00005     $Smarty->assign('loginform', $uiBrowser->loginform($Smarty, $ui_fmask['login']));
+00006     $Smarty->display('login.tpl');
+00007     die();
+00008 }
+00009 
+00010 
+00011 
+00012 switch($_REQUEST['act']){
+00013     case "getHomeDir":
+00014     default:
+00015         $Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id, $_REQUEST['act']=='getHomeDir' ? TRUE : FALSE));
+00016         $Smarty->assign('showPath', TRUE);
+00017 
+00018         if ($_REQUEST['tree']=='Y') {
+00019             $Smarty->assign('showTree', TRUE);
+00020         } else {
+00021             $Smarty->assign('showObjects', TRUE);
+00022         }
+00023         $Smarty->assign('delOverride', $_REQUEST['delOverride']);
+00024         $Smarty->assign('obj_types', array('Folder'=>'D', 'File'=>'F', 'Replica'=>'R'));
+00025         break;
+00026 
+00027     case "permissions":
+00028         $Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id, $_REQUEST['act']=='getHomeDir' ? TRUE : FALSE));
+00029         $Smarty->assign('showPath', TRUE);
+00030 
+00031         $Smarty->assign('perms', $uiBrowser->getPermissions($uiBrowser->id));
+00032         $Smarty->assign('showPermissions', TRUE);
+00033     break;
+00034 
+00035     case "newfile":
+00036         $Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id, $_REQUEST['act']=='getHomeDir' ? TRUE : FALSE));
+00037         $Smarty->assign('showPath', TRUE);
+00038 
+00039         $Smarty->assign('newfiledata', $uiBrowser->getNewFileData($uiBrowser->id));
+00040         $Smarty->assign('newfileform', $uiBrowser->getNewFileForm($uiBrowser->id, $ui_fmask['upload']));
+00041         $Smarty->assign('showNewFileForm', TRUE);
+00042         break;
+00043 
+00044     case "sform":
+00045         $Smarty->assign('searchform', $uiBrowser->getSearchForm($uiBrowser->id, $ui_fmask['search']));
+00046         $Smarty->assign('showSearchForm', TRUE);
+00047 
+00048         break;
+00049 
+00050     case "search":
+00051         $Smarty->assign('searchres', $uiBrowser->getSearchRes($uiBrwoser->id, $_REQUEST['search']));
+00052         $Smarty->assign('showSearchRes', TRUE);
+00053         $Smarty->assign('searchform', $uiBrowser->getSearchForm($uiBrwoser->id, $ui_fmask['search']));
+00054         $Smarty->assign('showSearchForm', TRUE);
+00055 
+00056         break;
+00057 
+00058     case "subjects":
+00059     case "addUser":
+00060     case "addGroup":
+00061         $Smarty->assign('subjects', $uiBrowser->getSubjects());
+00062         switch($_REQUEST['act']) {
+00063             case "addUser":  $Smarty->assign('addSubjectForm', $uiBrowser->getAddSubjectForm($ui_fmask['addUser']));  break;
+00064             case "addGroup": $Smarty->assign('addSubjectForm', $uiBrowser->getAddSubjectForm($ui_fmask['addGroup'])); break;
+00065         }
+00066         $Smarty->assign('showSubjects', TRUE);
+00067     break;
+00068 
+00069     case "passwd":
+00070         $Smarty->assign('changePassForm', $uiBrowser->getChangePasswdForm($_REQUEST['uid']));
+00071         $Smarty->assign('showSubjects', TRUE);
+00072     break;
+00073 
+00074     case "groups":
+00075         $Smarty->assign('groups', $uiBrowser->getGroups($uiBrowser->id));
+00076         $Smarty->assign('addSubj2GroupForm', $uiBrowser->getSubj2GroupForm($uiBrowser->id));
+00077         $Smarty->assign('showSubjects', TRUE);
+00078     break;
+00079 
+00080     case "getFile":
+00081         $Smarty->assign('fData', $uiBrowser->getFile($uiBrowser->id));
+00082         $Smarty->assign('showFile', TRUE);
+00083     break;
+00084 
+00085     case "getMdata":
+00086         $Smarty->assign('fMetaData', $uiBrowser->getMdata($uiBrowser->id));
+00087         $Smarty->assign('showFile', TRUE);
+00088     break;
+00089 
+00090     case "getInfo":
+00091         $Smarty->assign('fInfo', $uiBrowser->getInfo($uiBrowser->id));
+00092         $Smarty->assign('showFile', TRUE);
+00093     break;
+00094 
+00095     case "editMetaData":
+00096         $Smarty->assign('mDataForm', $uiBrowser->getMetaDataForm($uiBrowser->id, $ui_fmask['mData']));
+00097         $Smarty->assign('showMetaDataForm', TRUE);
+00098     break;
+00099 
+00100     case "systemPrefs":
+00101         $Smarty->assign('dynform', $uiBrowser->systemPrefs($ui_fmask['systemPrefs']));
+00102         $Smarty->assign('showSystemPrefs', TRUE);
+00103     break;
+00104 }
+00105 ## end gbHtmlBrowse.php
+00106 
+00107 $Smarty->assign('userinfo', $uiBrowser->getUserInfo());
+00108 $Smarty->assign('logouthref', UI_HANDLER.'?act=logout');
+00109 
+00110 $Smarty->display('main.tpl');
+00111 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8php.html new file mode 100644 index 000000000..2935f3326 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser_8php.html @@ -0,0 +1,413 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_browser.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_browser.php File Reference

+

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Variables

 break
case permissions
case newfile
case sform
case search
case subjects
case addGroup
case passwd
case groups
case getFile
case getMdata
case getInfo
case editMetaData
case systemPrefs
+


Variable Documentation

+

+ + + + +
+ + + + +
case addGroup
+
+ + + + + +
+   + + +

+ +

+Definition at line 64 of file ui_browser.php.

+

+ + + + +
+ + + + +
break
+
+ + + + + +
+   + + +

+ +

+Definition at line 103 of file ui_browser.php.

+

+ + + + +
+ + + + +
case editMetaData
+
+ + + + + +
+   + + +

+ +

+Definition at line 96 of file ui_browser.php. +

+Referenced by uiBrowser::getMetadataForm().

+

+ + + + +
+ + + + +
case getFile
+
+ + + + + +
+   + + +

+ +

+Definition at line 81 of file ui_browser.php.

+

+ + + + +
+ + + + +
case getInfo
+
+ + + + + +
+   + + +

+ +

+Definition at line 91 of file ui_browser.php.

+

+ + + + +
+ + + + +
case getMdata
+
+ + + + + +
+   + + +

+ +

+Definition at line 86 of file ui_browser.php.

+

+ + + + +
+ + + + +
case groups
+
+ + + + + +
+   + + +

+ +

+Definition at line 75 of file ui_browser.php. +

+Referenced by uiHandler::addSubj2Group(), and uiHandler::removeSubjFromGr().

+

+ + + + +
+ + + + +
case newfile
+
+ + + + + +
+   + + +

+ +

+Definition at line 36 of file ui_browser.php. +

+Referenced by uiBrowser::getNewFileForm().

+

+ + + + +
+ + + + +
case passwd
+
+ + + + + +
+   + + +

+ +

+Definition at line 70 of file ui_browser.php.

+

+ + + + +
+ + + + +
case permissions
+
+ + + + + +
+   + + +

+ +

+Definition at line 28 of file ui_browser.php. +

+Referenced by uiHandler::addPerm(), and uiHandler::removePerm().

+

+ + + + +
+ + + + +
case search
+
+ + + + + +
+   + + +

+ +

+Definition at line 51 of file ui_browser.php. +

+Referenced by uiBrowser::getSearchForm(), and uiBrowser::getSearchRes().

+

+ + + + +
+ + + + +
case sform
+
+ + + + + +
+   + + +

+ +

+Definition at line 45 of file ui_browser.php.

+

+ + + + +
+ + + + +
case subjects
+
+ + + + + +
+   + + +

+ +

+Definition at line 61 of file ui_browser.php. +

+Referenced by uiHandler::addSubj(), uiHandler::addSubj2Group(), uiBrowser::getPermissions(), uiHandler::passwd(), uiHandler::removeSubj(), and uiHandler::removeSubjFromGr().

+

+ + + + +
+ + + + +
case systemPrefs
+
+ + + + + +
+   + + +

+ +

+Definition at line 101 of file ui_browser.php. +

+Referenced by uiHandler::storeSystemPrefs().

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser__init_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser__init_8php-source.html new file mode 100644 index 000000000..13fbc288a --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser__init_8php-source.html @@ -0,0 +1,54 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_browser_init.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_browser_init.php

Go to the documentation of this file.
00001 <?php
+00002 session_start();
+00003 require_once dirname(__FILE__).'/conf.php';
+00004 require_once dirname(__FILE__).'/ui_fmask.inc.php';
+00005 
+00006 // LS classes/functions
+00007 require_once dirname(__FILE__).'/ui_base.inc.php';
+00008 require_once dirname(__FILE__).'/ui_browser.class.php';
+00009 require_once dirname(__FILE__).'/../../storageServer/var/GreenBox.php';
+00010 
+00011 // well known classes
+00012 require_once dirname(__FILE__).'/html/Smarty/libs/Smarty.class.php';
+00013 
+00014 require_once 'DB.php';
+00015 require_once 'HTML/QuickForm.php';
+00016 require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
+00017 
+00018 #PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_WARNING);
+00019 #PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errCallBack');
+00020 PEAR::setErrorHandling(PEAR_ERROR_RETURN);
+00021 #PEAR::setErrorHandling(PEAR_ERROR_PRINT);
+00022 
+00023 // some global vars/objects
+00024 $Smarty = new Smarty;
+00025 require_once  dirname(__FILE__).'/SmartyExtensions.inc.php';
+00026 $uiBrowser = new uiBrowser($config);
+00027 $uiBase    = new uiBase();
+00028 
+00029 ## some basic things
+00030 $Smarty->assign('alertMsg', $uiBrowser->alertMsg());
+00031 $Smarty->assign('GLOBALS', $GLOBALS);  ## ??? should i do this ####
+00032 
+00033 ## retransfer incomplete formdata from SESSION to POST-data
+00034 if(is_array($_SESSION['retransferFormData'])){
+00035     foreach($_SESSION['retransferFormData'] as $k=>$v){
+00036         $_POST[$k] = $v;
+00037     }
+00038     unset($_SESSION['retransferFormData']);
+00039 }
+00040 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser__init_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser__init_8php.html new file mode 100644 index 000000000..c1bcabc3d --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__browser__init_8php.html @@ -0,0 +1,104 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_browser_init.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_browser_init.php File Reference

+

+Go to the source code of this file. + + + + + + + + +

Variables

 $Smarty = new Smarty
 $uiBrowser = new uiBrowser($config)
 $uiBase = new uiBase()
+


Variable Documentation

+

+ + + + +
+ + + + +
$Smarty = new Smarty
+
+ + + + + +
+   + + +

+ +

+Definition at line 24 of file ui_browser_init.php.

+

+ + + + +
+ + + + +
$uiBase = new uiBase()
+
+ + + + + +
+   + + +

+ +

+Definition at line 27 of file ui_browser_init.php.

+

+ + + + +
+ + + + +
$uiBrowser = new uiBrowser($config)
+
+ + + + + +
+   + + +

+ +

+Definition at line 26 of file ui_browser_init.php. +

+Referenced by S_tra().

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__fmask_8inc_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__fmask_8inc_8php-source.html new file mode 100644 index 000000000..93db35e52 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__fmask_8inc_8php-source.html @@ -0,0 +1,302 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_fmask.inc.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_fmask.inc.php

Go to the documentation of this file.
00001 <?php
+00002 $ui_fmask = array(
+00003     /* ===================== list of system preferences which can be adjusted */
+00004     'systemPrefs'   => array(
+00005         array(
+00006             'element'   => 'basics',
+00007             'type'  => 'header',
+00008             'label' => 'Basic Settings',
+00009         ),
+00010         array(
+00011             'element'   => 'maxfilesize',
+00012             'type'  => 'text',
+00013             'label' => 'Maximum File Size for Upload',
+00014             'required'  =>TRUE,
+00015         ),
+00016         array(
+00017             'rule'     => 'numeric',
+00018             'element'  => 'maxfilesize',
+00019             'errormsg' => 'Value for Maximum File Size must be numeric'
+00020         ),
+00021         array(
+00022             'element' => 'stationname',
+00023             'type'    => 'text',
+00024             'label'   => 'Staion Name',
+00025             'required'=>TRUE
+00026         ),
+00027         array(
+00028             'element'   => 'stationurl',
+00029             'type'  => 'text',
+00030             'label' => 'Station URL',
+00031             'required'  =>TRUE
+00032         ),
+00033         array(
+00034             'element'   => 'stationurl2',
+00035             'type'  => 'text',
+00036             'label' => 'Station URL2',
+00037             'required'  =>TRUE
+00038         ),
+00039         array(
+00040             'element' => 'upload',
+00041             'type'  => 'header',
+00042             'label' => 'Upload'
+00043         ),
+00044         array(
+00045             'element'   => 'stationlogo',
+00046             'type'  => 'file',
+00047             'label' => 'Station Logo',
+00048             'required'  =>FALSE
+00049         ),
+00050         array(
+00051             'element'   =>'submit',
+00052             'type'      =>'submit',
+00053             'label'     =>'Submit'
+00054         )
+00055     ),
+00056 
+00057     /* =========================================================== Matadata-Mask */
+00058     'mData' =>  array(
+00059         array(
+00060             'element' => 'title',
+00061             'type'    => 'text',
+00062             'label'   => 'Title',
+00063             'required'=> TRUE,
+00064             'groupit' => TRUE
+00065         ),
+00066         array(
+00067             'element' =>'alternative',
+00068             'type'    =>'text',
+00069             'label'   =>'Alternative Title',
+00070             'required'=>FALSE
+00071         ),
+00072         array(
+00073             'element' =>'description',
+00074             'type'    =>'textarea',
+00075             'label'   =>'Description',
+00076             'required'=>TRUE
+00077         ),
+00078         array(
+00079             'element' =>'genre',
+00080             'type'    =>'select',
+00081             'label'   =>'Genre(s)',
+00082             'required'=>TRUE,
+00083             'multiple'=>TRUE,
+00084             'options' =>array(
+00085                 'rock'      =>'Rock',
+00086                 'blues'     =>'Blues',
+00087                 'jazz'      =>'Jazz',
+00088                 'pop'       =>'Pop',
+00089                 'house'     =>'House',
+00090                 'industrial'=>'Industrial',
+00091                 )
+00092         ),
+00093         array(
+00094             'element' =>'decade',
+00095             'type'    =>'select',
+00096             'label'   =>'Decade',
+00097             'required'=>FALSE,
+00098             'multiple'=>FALSE,
+00099             'options' =>array(
+00100                 '1960'  =>'60\'s',
+00101                 '1970'  =>'70\'s',
+00102                 '1980'  =>'80\'s',
+00103                 '1990'  =>'90\'s'
+00104             )
+00105         ),
+00106         array(
+00107             'element'   =>'licence',
+00108             'type'      =>'radio',
+00109             'label'     =>'Licence exists',
+00110             'required'  =>TRUE,
+00111             'options'   =>array(
+00112                 'yes'    =>'Yes',
+00113                 'no'     =>'No'
+00114             )
+00115         ),
+00116         array(
+00117             'group'     =>'licencegrp',
+00118             'elements'  =>array('licence'),
+00119             'label'     =>'grplkabel'
+00120         ),
+00121         array(
+00122             'element'   =>'full_processed',
+00123             'type'      =>'checkbox',
+00124             'label'     =>'Full processed',
+00125             'required'  =>FALSE
+00126         ),
+00127         array(
+00128             'element'   =>'reset',
+00129             'type'      =>'reset',
+00130             'label'     =>'Reset',
+00131             'groupit'   =>TRUE
+00132         ),
+00133         array(
+00134             'element'   =>'submit',
+00135             'type'      =>'submit',
+00136             'label'     =>'Submit',
+00137             'groupit'   =>TRUE
+00138         ),
+00139         array(
+00140             'group'     => array('reset', 'submit'),
+00141             'name'      => NULL,
+00142             'label'     => NULL,
+00143             'seperator' => '&nbsp;&nbsp;',
+00144             'appendName'=> NULL
+00145         )
+00146     ),
+00147     'addUser' => array(
+00148         array(
+00149             'element'   => 'act',
+00150             'type'      => 'hidden',
+00151             'constant'  => 'addUser'
+00152         ),
+00153         array(
+00154             'element'   => 'login',
+00155             'type'      => 'text',
+00156             'label'     => 'Username',
+00157             'required'  => TRUE
+00158         ),
+00159         array(
+00160             'element'   =>'pass',
+00161             'type'      =>'password',
+00162             'label'     =>'Users Password',
+00163             'required'  =>TRUE
+00164         ),
+00165         array(
+00166             'element'   =>'pass2',
+00167             'type'      =>'password',
+00168             'label'     =>'Repeat Password',
+00169             'required'  =>TRUE
+00170         ),
+00171         array(
+00172             'rule'      =>'compare',
+00173             'element'   =>array('pass','pass2'),
+00174             'errormsg'  =>'Passwords didn´t match'
+00175         ),
+00176         array(
+00177             'element'   =>'submit',
+00178             'type'      =>'submit',
+00179             'label'     =>'Submit'
+00180         )
+00181     ),
+00182     'addGroup' => array(
+00183         array(
+00184             'element'   => 'act',
+00185             'type'      => 'hidden',
+00186             'constant'  => 'addGroup'
+00187         ),
+00188         array(
+00189             'element'   => 'login',
+00190             'type'      => 'text',
+00191             'label'     => 'Group Name',
+00192             'required'  => TRUE
+00193         ),
+00194         array(
+00195             'element'   =>'submit',
+00196             'type'      =>'submit',
+00197             'label'     =>'Submit'
+00198         )
+00199     ),
+00200     'login' => array(
+00201         array(
+00202             'element'   => 'act',
+00203             'type'      => 'hidden',
+00204             'constant'  => 'login'
+00205         ),
+00206         array(
+00207             'element'   => 'login',
+00208             'type'      => 'text',
+00209             'label'     => 'Username',
+00210             'required'  => TRUE
+00211         ),
+00212         array(
+00213             'element'   => 'pass',
+00214             'type'      => 'password',
+00215             'label'     => 'Password',
+00216             'required'  => TRUE
+00217         ),
+00218         array(
+00219             'element'   => 'submit',
+00220             'type'      => 'submit',
+00221             'label'     => 'Submit'
+00222         )
+00223     ),
+00224 
+00225 
+00226         #$form->setConstants(array('id'=>$id));
+00227         #$form->addElement('hidden', 'id');
+00228 
+00229         #$form->addRule('filename', $this->tra('enter a Filename'), 'required', null, 'client');
+00230         #$form->addRule('mediafile', $this->tra('select a Media-file'), 'required', null, 'client');
+00231         #$form->addRule('mdatafile', $this->tra('select a Metadata-file'), 'required', null, 'client');
+00232 
+00233     'upload'    => array(
+00234         array(
+00235             'element'   => 'act',
+00236             'type'      => 'hidden',
+00237             'constant'  => 'upload'
+00238         ),
+00239         array(
+00240             'element'   => 'MAX_FILE_SIZE',
+00241             'type'      => 'hidden',
+00242             'constant'  => UI_INPUT_GBOBJECT_MAXFILESIZE
+00243         ),
+00244         array(
+00245             'element'   => 'filename',
+00246             'type'      => 'text',
+00247             'label'     => 'Filename',
+00248             'required'  => TRUE
+00249         ),
+00250         array(
+00251             'element'   => 'mediafile',
+00252             'type'      => 'file',
+00253             'label'     => 'Mediafile',
+00254             'required'  => TRUE,
+00255             'errormsg'  => 'please select Media file'
+00256         ),
+00257         array(
+00258             'element'   => 'mdatafile',
+00259             'type'      => 'file',
+00260             'label'     => 'Metadata',
+00261             'required'  => TRUE,
+00262             'errormsg'  => 'please select Metadata file'
+00263         ),
+00264         array(
+00265             'element'   => 'submit',
+00266             'type'      => 'submit',
+00267             'label'     => 'Submit'
+00268         )
+00269     ),
+00270     'search'    => array(
+00271     array(
+00272             'element'   => 'act',
+00273             'type'      => 'hidden',
+00274             'constant'  => 'search'
+00275         ),
+00276         array(
+00277             'element'   => 'search',
+00278             'type'      => 'text',
+00279             'label'     => 'Searchstring',
+00280             'required'  => TRUE
+00281         ),
+00282         array(
+00283             'element'   => 'submit',
+00284             'type'      => 'submit',
+00285             'label'     => 'Submit'
+00286         )
+00287     )
+00288 );
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__fmask_8inc_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__fmask_8inc_8php.html new file mode 100644 index 000000000..8cd052a01 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__fmask_8inc_8php.html @@ -0,0 +1,48 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_fmask.inc.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_fmask.inc.php File Reference

+

+Go to the source code of this file. + + + + +

Variables

 $ui_fmask
+


Variable Documentation

+

+ + + + +
+ + + + +
$ui_fmask
+
+ + + + + +
+   + + +

+ +

+Definition at line 2 of file ui_fmask.inc.php.

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8class_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8class_8php-source.html new file mode 100644 index 000000000..11ef76c8d --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8class_8php-source.html @@ -0,0 +1,312 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_handler.class.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_handler.class.php

Go to the documentation of this file.
00001 <?php
+00007 class uiHandler extends uiBase {
+00008     var $redirUrl;
+00009     var $alertMsg;
+00010 
+00011     function uiHandler($config)
+00012     {
+00013         $dbc = DB::connect($config['dsn'], TRUE);
+00014         $dbc->setFetchMode(DB_FETCHMODE_ASSOC);
+00015         $this->gb = &new GreenBox(&$dbc, $config);
+00016         $this->id = (!$_REQUEST['id'] ? $this->gb->storId : $_REQUEST['id']);
+00017         $this->sessid = $_REQUEST[$config['authCookieName']];
+00018         $this->userid = $this->gb->getSessUserId($this->sessid);
+00019         $this->login  = $this->gb->getSessLogin ($this->sessid);
+00020         $this->config = $config;
+00021     }
+00022 
+00023     // --- authentication ---
+00033     function login(&$formdata, &$mask)
+00034     {    $formdata['xxx'] = 'yyy';
+00035         $this->redirUrl = UI_BROWSER;
+00036         if ($this->_validateForm($formdata, $mask)) {
+00037             $sessid = $this->gb->login($formdata['login'], $formdata['pass']);
+00038             if($sessid && !PEAR::isError($sessid)){
+00039                 setcookie($this->config['authCookieName'], $sessid);
+00040 
+00041                 $fid = $this->gb->getObjId($formdata['login'], $this->gb->storId);
+00042                 if(!PEAR::isError($fid)) $this->redirUrl.="?id=$fid";
+00043             }else{
+00044                 $this->alertMsg = 'Login failed.';
+00045             }
+00046         }
+00047 
+00048     }
+00049 
+00056     function logout()
+00057     {
+00058         $this->gb->logout($this->sessid);
+00059         setcookie($this->config['authCookieName'], '');
+00060         $this->redirUrl = UI_BROWSER;
+00061     }
+00062 
+00063     // --- files ---
+00074     function upload(&$formdata, $id, &$mask)
+00075     {
+00076         if ($this->_validateForm($formdata, $mask)) {
+00077             $tmpgunid = md5(
+00078                 microtime().$_SERVER['SERVER_ADDR'].rand()."org.mdlf.livesupport"
+00079             );
+00080             $ntmp = $this->gb->bufferDir.'/'.$tmpgunid;
+00081             #        $ntmp = tempnam(""{$gb->bufferDir}", 'gbTmp_');
+00082             $mdtmp = "";
+00083             move_uploaded_file($formdata['mediafile']['tmp_name'], $ntmp);
+00084             chmod($ntmp, 0664);
+00085             if($formdata['mdatafile']['tmp_name']){
+00086                 $mdtmp = "$ntmp.xml";
+00087                 if(move_uploaded_file($formdata['mdatafile']['tmp_name'], $mdtmp)){
+00088                     chmod($mdtmp, 0664);
+00089                 }
+00090             }
+00091             $r = $this->gb->putFile($id, $formdata['filename'], $ntmp, $mdtmp, $this->sessid);
+00092             if(PEAR::isError($r)) $this->alertMsg = $r->getMessage();
+00093             else{
+00094             #            $gb->updateMetadataDB($gb->_pathFromId($r), $mdata, $sessid);
+00095                 @unlink($ntmp);
+00096                 @unlink($mdtmp);
+00097             }
+00098             $this->redirUrl = UI_BROWSER."?id=".$id;
+00099          } else {
+00100             $this->redirUrl = UI_BROWSER."?act=newfile&id=".$id;
+00101          }
+00102     }
+00103 
+00112     function newFolder($newname, $id)
+00113     {
+00114         $r = $this->gb->createFolder($id, $newname, $this->sessid);
+00115         if(PEAR::isError($r)) $this->alertMsg = $r->getMessage();
+00116         $this->redirUrl = UI_BROWSER.'?id='.$id;
+00117     }
+00118 
+00127     function rename($newname, $id)
+00128     {
+00129         $parid = $this->gb->getparent($this->id);
+00130         $r = $this->gb->renameFile($id, $newname, $this->sessid);
+00131         if(PEAR::isError($r)) $this->alertMsg = $r->getMessage();
+00132         $this->redirUrl = UI_BROWSER."?id=$parid";
+00133     }
+00134 
+00144     function move($newPath, $id)
+00145     {
+00146         $newPath = urlencode($newPath);
+00147         $did = $this->gb->getObjIdFromRelPath($id, $newPath);
+00148         $parid = $this->gb->getparent($id);
+00149         $r = $this->gb->moveFile($id, $did, $this->sessid);
+00150         if(PEAR::isError($r)){
+00151             $this->alertMsg = $r->getMessage();
+00152             $this->redirUrl  = UI_BROWSER."?id=$parid";
+00153         }
+00154         else $this->redirUrl = UI_BROWSER."?id=$did";
+00155     }
+00156 
+00166     function copy($newPath, $id)
+00167     {
+00168         $newPath = urldecode($newPath);
+00169         $did = $this->gb->getObjIdFromRelPath($id, $newPath);
+00170         $parid = $this->gb->getparent($id);
+00171         $r = $this->gb->copyFile($id, $did, $this->sessid);
+00172         if(PEAR::isError($r)){
+00173             $this->alertMsg = $r->getMessage();
+00174             $this->redirUrl  = UI_BROWSER."?id=$parid";
+00175         }
+00176         else $this->redirUrl = UI_BROWSER."?id=$did";
+00177     }
+00178 
+00187     function delete($id, $delOverride=FALSE)
+00188     {
+00189         $parid = $this->gb->getparent($id);
+00190 
+00191         ## add emtyness-test here ###
+00192         if (!($delOverride==$id) && (count($this->gb->getObjType($id)=='Folder'?
+00193                       $this->gb->listFolder($id, $this->sessid):NULL))) {
+00194             $this->alertMsg = $this->tra("Folder is not empty. You can override this protection by clicking DEL again");
+00195             $this->redirUrl = UI_BROWSER."?id=$parid&delOverride=$id";
+00196             return;
+00197         }
+00198         #############################
+00199 
+00200         $r = $this->gb->deleteFile($id, $this->sessid);
+00201         if(PEAR::isError($r)) $this->alertMsg = $r->getMessage();
+00202         $this->redirUrl = UI_BROWSER."?id=$parid";
+00203     }
+00204 
+00205 
+00215     function getFile($id)
+00216     {
+00217         $r = $this->gb->access($id, $this->sessid);
+00218         if(PEAR::isError($r)) $this->alertMsg = $r->getMessage();
+00219         else echo $r;
+00220     }
+00221 
+00229     function getMdata($id)
+00230     {
+00231         header("Content-type: text/xml");
+00232         $r = $this->gb->getMdata($id, $this->sessid);
+00233         print_r($r);
+00234     }
+00235 
+00244     function getInfo($id)
+00245     {
+00246         header("Content-type: text/plain");
+00247         $ia = $this->gb->analyzeFile($id, $this->sessid);
+00248         echo"fileformat: {$ia['fileformat']}\n";
+00249         echo"channels: {$ia['audio']['channels']}\n";
+00250         echo"sample_rate: {$ia['audio']['sample_rate']}\n";
+00251         echo"bits_per_sample: {$ia['audio']['bits_per_sample']}\n";
+00252         echo"channelmode: {$ia['audio']['channelmode']}\n";
+00253         echo"title: {$ia['id3v1']['title']}\n";
+00254         echo"artist: {$ia['id3v1']['artist']}\n";
+00255         echo"comment: {$ia['id3v1']['comment']}\n";
+00256     }
+00257 
+00258    // --- subjs ----
+00266     function addSubj(&$formdata, &$mask)
+00267     {
+00268         $this->redirUrl = UI_BROWSER.'?act='.$_REQUEST['act'];
+00269 
+00270         ## first validate the form data
+00271         if ($this->_validateForm($formdata, $mask)) {
+00272             if($this->gb->checkPerm($this->userid, 'subjects')){
+00273                 $res = $this->gb->addSubj($formdata['login'], ($formdata['pass']=='' ? NULL:$formdata['pass'] ));
+00274                 $this->alertMsg = $this->tra('Subject "'.$formdata['login'].'" added.');
+00275             } else {
+00276                 $this->alertMsg = $this->tra('Access denied.');
+00277                 return;
+00278             }
+00279         }
+00280         if(PEAR::isError($res)) $this->alertMsg = $res->getMessage();
+00281     }
+00282 
+00290     function removeSubj($login)
+00291     {
+00292         $this->redirUrl = UI_BROWSER.'?act=subjects';
+00293 
+00294         if($this->gb->checkPerm($this->userid, 'subjects')){
+00295             $res = $this->gb->removeSubj($login);
+00296         }else{
+00297             $this->alertMsg='Access denied.';
+00298             return;
+00299         }
+00300         if(PEAR::isError($res)) $this->alertMsg = $res->getMessage();
+00301     }
+00302 
+00313     function passwd($uid, $oldpass, $pass, $pass2)
+00314     {
+00315         $this->redirUrl = UI_BROWSER.'?act=subjects';
+00316         $ulogin = $this->gb->getSubjName($uid);
+00317 
+00318         if($this->userid != $uid &&
+00319             ! $this->gb->checkPerm($this->userid, 'subjects')){
+00320             $this->alertMsg='Access denied..';
+00321             return;
+00322         }
+00323         if(FALSE === $this->gb->authenticate($ulogin, $oldpass)){
+00324             $this->alertMsg='Wrong old pasword.';
+00325             return;
+00326         }
+00327         if($pass !== $pass2){
+00328             $this->alertMsg = "Passwords do not match. ".
+00329                 "($pass/$pass2)";
+00330             $this->redirUrl = UI_BROWSER.'?act=subjects';
+00331             return;
+00332         }
+00333         $this->gb->passwd($ulogin, $oldpass, $pass);
+00334     }
+00335 
+00336     // --- perms ---
+00347     function addPerm($subj, $permAction, $id, $allowDeny)
+00348     {
+00349         if($this->gb->checkPerm($this->userid, 'editPerms', $id)){
+00350             $this->gb->addPerm($subj, $permAction,
+00351                 $id, $allowDeny);
+00352         }else{
+00353             $this->alertMsg='Access denied.';
+00354         }
+00355         $this->redirUrl = UI_BROWSER.'?id='.$id.'&act=permissions';
+00356     }
+00357 
+00365     function removePerm($permid, $oid)
+00366     {
+00367         if($this->gb->checkPerm($this->userid, 'editPerms', $oid))
+00368             $this->gb->removePerm($permid);
+00369         else $this->alertMsg='Access denied.';
+00370         $this->redirUrl = UI_BROWSER.'?act=permissions&id='.$id;
+00371     }
+00372 
+00373 
+00384     function addSubj2Group($login, $gname, $reid)
+00385     {
+00386         if($this->gb->checkPerm($this->userid, 'subjects')){
+00387             $res = $this->gb->addSubj2Gr($login, $gname);
+00388         }else{
+00389             $this->alertMsg='Access denied.';
+00390             return;
+00391         }
+00392         if(PEAR::isError($res)) $this->alertMsg = $res->getMessage();
+00393 
+00394         $this->redirUrl = UI_BROWSER.'?act=groups&id='.$reid;
+00395     }
+00396 
+00404     function removeSubjFromGr($login, $gname, $reid)
+00405     {
+00406         if($this->gb->checkPerm($this->userid, 'subjects')){
+00407             $res = $this->gb->removeSubjFromGr($login, $gname);
+00408         }else{
+00409             $this->alertMsg='Access denied.';
+00410             return;
+00411         }
+00412         if(PEAR::isError($res)) $this->alertMsg = $res->getMessage();
+00413 
+00414         $this->redirUrl = UI_BROWSER.'?act=groups&id='.$reid;
+00415     }
+00416 
+00417 
+00418     function storeSystemPrefs(&$formdata, &$mask)
+00419     {
+00420         ## first validate the form data
+00421         if ($this->_validateForm($formdata, $mask)) {
+00422             $this->alertMsg = $this->tra('Settings saved');
+00423             $this->redirUrl = UI_BROWSER;
+00424             return;
+00425         }
+00426         $this->redirUrl = UI_BROWSER.'?act=systemPrefs';
+00427     }
+00428 
+00429     function _validateForm(&$formdata, &$mask)
+00430     {
+00431         $form = new HTML_QuickForm('validation', UI_STANDARD_FORM_METHOD, UI_HANDLER);
+00432         $this->_parseArr2Form($form, $mask, 'server');
+00433         if (!$form->validate()) {
+00434             $_SESSION['retransferFormData'] = $formdata;
+00435             return FALSE;
+00436         }
+00437         ## test for uploadet files ####
+00438         foreach($mask as $k) {
+00439             if ($k['type']=='file') {
+00440                 if ($formdata[$k['element']]['error']) {
+00441                     $_SESSION['retransferFormData'] = $formdata;
+00442                     return FALSE;
+00443                 }
+00444             }
+00445         }
+00446         reset($mask);
+00447         return TRUE;
+00448     }
+00449 
+00450 }
+00451 
+00452 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8class_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8class_8php.html new file mode 100644 index 000000000..35e811cf9 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8class_8php.html @@ -0,0 +1,19 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_handler.class.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_handler.class.php File Reference

+

+Go to the source code of this file. + +
+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8php-source.html new file mode 100644 index 000000000..375714e9b --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8php-source.html @@ -0,0 +1,95 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_handler.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_handler.php

Go to the documentation of this file.
00001 <?php
+00002 require dirname(__FILE__).'/../ui_handler_init.php';
+00003 
+00004 switch($_REQUEST['act']){
+00005 
+00006     case "login";
+00007         $uiHandler->login($_REQUEST, $ui_fmask["login"]);
+00008     break;
+00009 
+00010     case "logout";
+00011         $uiHandler->logout();
+00012     break;
+00013 
+00014     case "upload":
+00015         $uiHandler->upload(array_merge($_REQUEST, $_FILES), $uiHandler->id, $ui_fmask["upload"]);
+00016     break;
+00017 
+00018     case "newFolder":
+00019         $uiHandler->newFolder($_REQUEST["newname"], $uiHandler->id);
+00020     break;
+00021 
+00022     case "rename":
+00023         $uiHandler->rename($_REQUEST["newname"], $uiHandler->id);
+00024     break;
+00025 
+00026     case "move":
+00027         $uiHandler->move($_REQUEST["newPath"], $uiHandler->id);
+00028     break;
+00029 
+00030     case "copy":
+00031         $uiHandler->copy($_REQUEST["newPath"], $uiHandler->id);
+00032     break;
+00033 
+00034     case "delete":
+00035         $uiHandler->delete($uiHandler->id, $_REQUEST["delOverride"]);
+00036     break;
+00037 
+00038     case "addUser":
+00039         $uiHandler->addSubj($_REQUEST, $ui_fmask["addUser"]);
+00040     break;
+00041 
+00042     case "addGroup":
+00043         $uiHandler->addSubj($_REQUEST, $ui_fmask["addGroup"]);
+00044     break;
+00045 
+00046     case "removeSubj":
+00047         $uiHandler->removeSubj($_REQUEST["login"]);
+00048     break;
+00049 
+00050     case "changePasswd":
+00051         $uiHandler->passwd($_REQUEST["uid"], $_REQUEST["oldpass"], $_REQUEST["pass"], $_REQUEST["pass2"]);
+00052     break;
+00053 
+00054     case "addPerm":
+00055         $uiHandler->addPerm($_REQUEST["subj"], $_REQUEST["permAction"], $uiHandler->id, $_REQUEST["allowDeny"]);
+00056     break;
+00057 
+00058     case "removePerm":
+00059         $uiHandler->removePerm($_REQUEST["permid"], $_REQUEST["oid"]);
+00060     break;
+00061 
+00062     case "addSubj2Group":
+00063         $uiHandler->addSubj2Group($_REQUEST["login"], $_REQUEST["gname"], $_REQUEST["reid"]);
+00064     break;
+00065 
+00066     case "removeSubjFromGr":
+00067         $uiHandler->removeSubjFromGr($_REQUEST["login"], $_REQUEST["gname"], $_REQUEST["reid"]);
+00068     break;
+00069 
+00070     case "systemPrefs":
+00071         $uiHandler->storeSystemPrefs($_REQUEST, $ui_fmask["systemPrefs"]);
+00072     break;
+00073 
+00074     default:
+00075         $_SESSION["alertMsg"] = $uiHandler->tra("Unknown method: ").$_REQUEST["act"];
+00076         header("Location: ".UI_BROWSER);
+00077         die();
+00078 }
+00079 if ($uiHandler->alertMsg) $_SESSION['alertMsg'] = $uiHandler->alertMsg;
+00080 header('Location: '.$uiHandler->redirUrl);
+00081 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8php.html new file mode 100644 index 000000000..d577c5dfa --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler_8php.html @@ -0,0 +1,621 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_handler.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_handler.php File Reference

+

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Variables

 break
case logout
case upload
case $_FILES
case $uiHandler id
case $uiHandler $ui_fmask ["upload"]
case newFolder
case rename
case move
case copy
case delete
case $_REQUEST ["delOverride"]
case addUser
case addGroup
case removeSubj
case changePasswd
case addPerm
case removePerm
case addSubj2Group
case removeSubjFromGr
case systemPrefs
default __pad0__
+


Variable Documentation

+

+ + + + +
+ + + + +
case $_FILES
+
+ + + + + +
+   + + +

+ +

+Definition at line 15 of file ui_handler.php.

+

+ + + + +
+ + + + +
case $_REQUEST["reid"]
+
+ + + + + +
+   + + +

+ +

+Definition at line 67 of file ui_handler.php. +

+Referenced by uiBrowser::getStructure(), uiBrowser::uiBrowser(), and uiHandler::uiHandler().

+

+ + + + +
+ + + + +
case $ui_fmask["systemPrefs"]
+
+ + + + + +
+   + + +

+ +

+Definition at line 71 of file ui_handler.php.

+

+ + + + +
+ + + + +
default __pad0__
+
+ + + + + +
+   + + +

+ +

+Definition at line 75 of file ui_handler.php.

+

+ + + + +
+ + + + +
case addGroup
+
+ + + + + +
+   + + +

+ +

+Definition at line 43 of file ui_handler.php.

+

+ + + + +
+ + + + +
case addPerm
+
+ + + + + +
+   + + +

+ +

+Definition at line 55 of file ui_handler.php.

+

+ + + + +
+ + + + +
case addSubj2Group
+
+ + + + + +
+   + + +

+ +

+Definition at line 63 of file ui_handler.php. +

+Referenced by uiBrowser::getSubj2GroupForm().

+

+ + + + +
+ + + + +
case addUser
+
+ + + + + +
+   + + +

+ +

+Definition at line 39 of file ui_handler.php.

+

+ + + + +
+ + + + +
break
+
+ + + + + +
+   + + +

+ +

+Definition at line 72 of file ui_handler.php.

+

+ + + + +
+ + + + +
case changePasswd
+
+ + + + + +
+   + + +

+ +

+Definition at line 51 of file ui_handler.php. +

+Referenced by uiBrowser::getChangePasswdForm().

+

+ + + + +
+ + + + +
case copy
+
+ + + + + +
+   + + +

+ +

+Definition at line 31 of file ui_handler.php.

+

+ + + + +
+ + + + +
case delete
+
+ + + + + +
+   + + +

+ +

+Definition at line 35 of file ui_handler.php.

+

+ + + + +
+ + + + +
case uiHandler id
+
+ + + + + +
+   + + +

+ +

+Definition at line 55 of file ui_handler.php.

+

+ + + + +
+ + + + +
case logout
+
+ + + + + +
+   + + +

+ +

+Definition at line 10 of file ui_handler.php.

+

+ + + + +
+ + + + +
case move
+
+ + + + + +
+   + + +

+ +

+Definition at line 27 of file ui_handler.php.

+

+ + + + +
+ + + + +
case newFolder
+
+ + + + + +
+   + + +

+ +

+Definition at line 19 of file ui_handler.php.

+

+ + + + +
+ + + + +
case removePerm
+
+ + + + + +
+   + + +

+ +

+Definition at line 59 of file ui_handler.php.

+

+ + + + +
+ + + + +
case removeSubj
+
+ + + + + +
+   + + +

+ +

+Definition at line 47 of file ui_handler.php.

+

+ + + + +
+ + + + +
case removeSubjFromGr
+
+ + + + + +
+   + + +

+ +

+Definition at line 67 of file ui_handler.php.

+

+ + + + +
+ + + + +
case rename
+
+ + + + + +
+   + + +

+ +

+Definition at line 23 of file ui_handler.php.

+

+ + + + +
+ + + + +
case systemPrefs
+
+ + + + + +
+   + + +

+ +

+Definition at line 71 of file ui_handler.php.

+

+ + + + +
+ + + + +
case upload
+
+ + + + + +
+   + + +

+ +

+Definition at line 15 of file ui_handler.php.

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler__init_8php-source.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler__init_8php-source.html new file mode 100644 index 000000000..9f4de0b30 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler__init_8php-source.html @@ -0,0 +1,35 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_handler_init.php Source File + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_handler_init.php

Go to the documentation of this file.
00001 <?php
+00002 session_start();
+00003 require_once dirname(__FILE__).'/conf.php';
+00004 require_once dirname(__FILE__).'/ui_fmask.inc.php';
+00005 
+00006 // LS classes/functions
+00007 require_once dirname(__FILE__).'/../../storageServer/var/GreenBox.php';
+00008 require_once dirname(__FILE__).'/ui_base.inc.php';
+00009 require_once dirname(__FILE__).'/ui_handler.class.php';
+00010 
+00011 // well known classes
+00012 require_once 'DB.php';
+00013 require_once 'HTML/QuickForm.php';
+00014 
+00015 #PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_WARNING);
+00016 #PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errCallBack');
+00017 PEAR::setErrorHandling(PEAR_ERROR_RETURN);
+00018 #PEAR::setErrorHandling(PEAR_ERROR_PRINT);
+00019 
+00020 $uiHandler = new uiHandler($config);
+00021 ?>
+

Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler__init_8php.html b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler__init_8php.html new file mode 100644 index 000000000..ae3d17e97 --- /dev/null +++ b/livesupport/modules/htmlUI/doc/doxygen/html/ui__handler__init_8php.html @@ -0,0 +1,48 @@ + + +LiveSupport&nbsp;-&nbsp;htmlUI&nbsp;module: ui_handler_init.php File Reference + + + +
Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
+ +

ui_handler_init.php File Reference

+

+Go to the source code of this file. + + + + +

Variables

 $uiHandler = new uiHandler($config)
+


Variable Documentation

+

+ + + + +
+ + + + +
$uiHandler = new uiHandler($config)
+
+ + + + + +
+   + + +

+ +

+Definition at line 20 of file ui_handler_init.php.

+


Generated on Wed Jan 12 16:22:49 2005 for LiveSupport - htmlUI module by  + +doxygen 1.4.0
+ + diff --git a/livesupport/modules/htmlUI/etc/doxygen.config b/livesupport/modules/htmlUI/etc/doxygen.config new file mode 100644 index 000000000..c0ea361ff --- /dev/null +++ b/livesupport/modules/htmlUI/etc/doxygen.config @@ -0,0 +1,1214 @@ +# Doxyfile 1.4.0 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = LiveSupport - htmlUI module + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1.0 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc/doxygen + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. + +SHOW_DIRECTORIES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the progam writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = var \ + var/html + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = *.php + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = var/html/SmartyStatic_example.php \ + var/html/SmartyDynamic_example.php + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = NO + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/livesupport/modules/htmlUI/index.php b/livesupport/modules/htmlUI/index.php new file mode 100644 index 000000000..92007e2f7 --- /dev/null +++ b/livesupport/modules/htmlUI/index.php @@ -0,0 +1,4 @@ + diff --git a/livesupport/modules/htmlUI/var/Smarty-2.6.6.tar.gz b/livesupport/modules/htmlUI/var/Smarty-2.6.6.tar.gz new file mode 100644 index 000000000..e59e81e7f Binary files /dev/null and b/livesupport/modules/htmlUI/var/Smarty-2.6.6.tar.gz differ diff --git a/livesupport/modules/htmlUI/var/SmartyExtensions.inc.php b/livesupport/modules/htmlUI/var/SmartyExtensions.inc.php new file mode 100644 index 000000000..3abd46f51 --- /dev/null +++ b/livesupport/modules/htmlUI/var/SmartyExtensions.inc.php @@ -0,0 +1,82 @@ +assign('UI_BROWSER', UI_BROWSER); +$Smarty->assign('UI_HANDLER', UI_HANDLER); + +// --- Smarty Extensions --- +/** + * str_repeat + * + * Repeate given string. + * + * @param str string, string to repeate + * @param count numeric, how often to repeate (converted to type integer) + * @return string, repeated string + */ +function S_str_repeat($param) +{ + extract($param); + return str_repeat($str, intval($count)); + +} +$Smarty->register_function('str_repeat', 'S_str_repeat'); + + /** + * urlencode + * + * Encode given string to use in URL. + * + * @param str string, string to encode + * @return string, encoded string + */ +function S_urlencode($param) +{ + extract($param); + return urlencode($str); +} +$Smarty->register_function('urlencode', 'S_urlencode'); + +/** + * htmlspecialchars + * + * convert special chars in given string to html-entitys. + * + * @param str string, string to convert + * @return string, converted string + */ +function S_htmlspecialchars($param) +{ + extract($param); + return htmlspecialchars($str); +} +$Smarty->register_function('htmlspecialchars', 'S_htmlspecialchars'); + +/** + * system + * + * Execute some PHP-code. + * + * @param code string, code to execute + */ +function S_system($param) +{ + extract($param); + eval($code); +} +$Smarty->register_function('system', 'S_system'); + +/** + * tra + * + * Translate given string. + * + * @param void array, array of strings to be outputted translated + */ +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]); +} +$Smarty->register_function('tra', 'S_tra'); +?> \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/conf.php b/livesupport/modules/htmlUI/var/conf.php new file mode 100644 index 000000000..44dfab8bc --- /dev/null +++ b/livesupport/modules/htmlUI/var/conf.php @@ -0,0 +1,125 @@ + + *
dsn
datasource setting + *
tblNamePrefix
prefix for table names in the database + *
authCookieName
secret token cookie name + *
storageDir
main directory for storing binary media files + *
bufferDir
directory for temporary files + *
transDir
directory for incomplete transferred files + *
accessDir
directory for symlinks to accessed files + *
storageUrlPath
path-URL-part of storageServer base dir + *
storageXMLRPC
XMLRPC server script address relative to storageUrlPath + *
storageUrlHost, storageUrlPort
host and port of storageServer + *
archiveUrlPath
path-URL-part of archiveServer base dir + *
archiveXMLRPC
XMLRPC server script address relative to archiveUrlPath + *
archiveUrlHost, archiveUrlPort
host and port of archiveServer + * + */ +$config = array( + /* ================================================== basic configuration */ + 'dsn' => array( + 'username' => 'test', + 'password' => 'test', + 'hostspec' => 'localhost', + 'phptype' => 'pgsql', + 'database' => 'LiveSupport-test', + ), + 'tblNamePrefix' => 'ls_', + 'authCookieName'=> 'lssid', + #'storageDir' => dirname(getcwd()).'/stor', + #'bufferDir' => dirname(getcwd()).'/stor/buffer', + #'transDir' => dirname(getcwd()).'/trans', + #'accessDir' => dirname(getcwd()).'/access', + 'storageDir' => dirname(__FILE__).'/../../storageServer/var/stor', + 'bufferDir' => dirname(__FILE__).'/../../storageServer/var/stor/buffer', + 'transDir' => dirname(__FILE__).'/../../storageServer/var/trans', + 'accessDir' => dirname(__FILE__).'/../../storageServer/var/access', + + /* ==================================================== URL configuration */ + 'storageUrlPath' => '/livesupportStorageServer', + 'storageXMLRPC' => 'xmlrpc/xrLocStor.php', + 'storageUrlHost' => 'localhost', + 'storageUrlPort' => 80, + + /* ================================================ archive configuration */ + 'archiveUrlPath' => '/livesupportArchiveServer', + 'archiveXMLRPC' => 'xmlrpc/xrArchive.php', + 'archiveUrlHost' => 'localhost', + 'archiveUrlPort' => 80, + 'archiveAccountLogin' => 'root', + 'archiveAccountPass' => 'q', + + 'objtypes' => array( + 'RootNode' => array('Folder'), + 'Storage' => array('Folder', 'File', 'Replica'), + 'Folder' => array('Folder', 'File', 'Replica'), + 'File' => array(), + 'audioclip' => array(), + 'playlist' => array(), + 'Replica' => array(), + ), + 'allowedActions'=> array( + 'RootNode' => array('classes', 'subjects'), + 'Folder' => array('editPrivs', 'write', 'read'), + 'File' => array('editPrivs', 'write', 'read'), + 'audioclip' => array('editPrivs', 'write', 'read'), + 'playlist' => array('editPrivs', 'write', 'read'), + 'Replica' => array('editPrivs', 'write', 'read'), + '_class' => array('editPrivs', 'write', 'read'), + ), + 'allActions' => array( + 'editPrivs', 'write', 'read', 'classes', 'subjects' + ), + + /* ============================================== auxiliary configuration */ + 'RootNode' => 'RootNode', + 'tmpRootPass' => 'q', +); + + + + +define('UI_HANDLER', 'ui_handler.php'); +define('UI_BROWSER', 'ui_browser.php'); +define('UI_FORM_STANDARD_METHOD', 'POST'); +define('UI_INPUT_STANDARD_SIZE', 20); +define('UI_INPUT_STANDARD_MAXLENGTH', 50); +define('UI_TEXTAREA_STANDART_ROWS', 5); +define('UI_TEXTAREA_STANDART_COLS', 17); +define('UI_QFORM_REQUIRED', 'templates/form_parts/required.tpl'); +define('UI_QFORM_REQUIREDNOTE', 'templates/form_parts/requirednote.tpl'); +define('UI_QFORM_ERROR', 'templates/form_parts/error.tpl'); +define('UI_SEARCH_MAX_ROWS', 8); +define('UI_SEARCH_MIN_ROWS', 2); +?> \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/elements.txt b/livesupport/modules/htmlUI/var/elements.txt new file mode 100644 index 000000000..9c2af78ec --- /dev/null +++ b/livesupport/modules/htmlUI/var/elements.txt @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/Smarty/BUGS b/livesupport/modules/htmlUI/var/html/Smarty/BUGS new file mode 100644 index 000000000..9f1a80f31 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/BUGS @@ -0,0 +1,7 @@ +Smarty is supported only in PHP 4.0.6 or later. + +Smarty versions previous to 2.0 require the PEAR libraries. Be sure to include +the path to the PEAR libraries in your php include_path. Config_file.class.php +uses the PEAR library for its error handling routines. PEAR comes with the PHP +distribution. Unix users check /usr/local/lib/php, windows users check +C:/php/pear. diff --git a/livesupport/modules/htmlUI/var/html/Smarty/COPYING.lib b/livesupport/modules/htmlUI/var/html/Smarty/COPYING.lib new file mode 100644 index 000000000..3b204400c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/COPYING.lib @@ -0,0 +1,458 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/livesupport/modules/htmlUI/var/html/Smarty/ChangeLog b/livesupport/modules/htmlUI/var/html/Smarty/ChangeLog new file mode 100644 index 000000000..bfa06cefe --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/ChangeLog @@ -0,0 +1,6908 @@ +2004-10-02 Messju Mohr + + * NEWS: + fixed nocache-handling with nested includes. there was a logical error + in the replacement of internal nocache-tags to dynamic content that + lead to false results with deeply nested includes or with + nocache-blocks inside nocache-blocks. + + many thanks to Lars Jankowfsky for providing big help on reproducing + and tracking down this bug! + +2004-10-01 Messju Mohr + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + - better header for compiled includes (more in line with compiled + templates) + + - reuse cache_serials if a file is compiled more than once in one + process (force_compile) + + - don't print nocache-delimiters wenn already inside + process_cached_inserts() + +2004-09-29 Messju Mohr + + * libs/Smarty.class.php: + switched from @count() to !empty() . this was pointed out a few times + by a few people with buggy error-handlers + + * libs/Smarty_Compiler.class.php: + added some property declarations + +2004-09-28 Messju Mohr + + * libs/Smarty.class.php: + bumped up version number to reflect incompatibility in tempfiles of + 'core' vs. 'internals' + +2004-09-24 Messju Mohr + + * libs/plugins/function.html_select_date.php: + fixed $start_year when no value for the year in $time is given. + +2004-09-21 Messju Mohr + + * libs/plugins/function.html_table.php: + fixed handling of "inner"-attribute + + * libs/Smarty_Compiler.class.php: + fixed handling of object derefence inside backticks + +2004-09-20 Monte Ohrt + + * libs/debug.tpl: + add tags + +2004-09-18 boots + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/plugins/function.config_load.php + libs/plugins/function.debug.php + libs/plugins/function.fetch.php + libs/plugins/function.html_image.php: + Fixed \\r\\n line endings mistakenly introduced in last commit. d'oh. + +2004-09-16 boots + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.assemble_plugin_filepath.php + libs/core/core.assign_smarty_interface.php + libs/core/core.create_dir_structure.php + libs/core/core.display_debug_console.php + libs/core/core.get_include_path.php + libs/core/core.get_microtime.php + libs/core/core.get_php_resource.php + libs/core/core.is_secure.php + libs/core/core.is_trusted.php + libs/core/core.load_plugins.php + libs/core/core.load_resource_plugin.php + libs/core/core.process_cached_inserts.php + libs/core/core.process_compiled_include.php + libs/core/core.read_cache_file.php + libs/core/core.rm_auto.php + libs/core/core.rmdir.php + libs/core/core.run_insert_handler.php + libs/core/core.smarty_include_php.php + libs/core/core.write_cache_file.php + libs/core/core.write_compiled_include.php + libs/core/core.write_compiled_resource.php + libs/core/core.write_file.php + libs/plugins/function.config_load.php + libs/plugins/function.debug.php + libs/plugins/function.fetch.php + libs/plugins/function.html_image.php: + Moved /libs/core to /libs/internals and created new constant, + SMARTY_CORE_DIR which defaults to SMARTY_DIR/internals. This should help + CVS and rsynch users butupgrades will require changes and this may affect + 3rd party plugins that use the /core dir. + +2004-09-15 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + moved $this->_num_const_regexp out of $this->_var_regexp and added it + to the places that affect $this->_var_regexp + + this should fix some problems parsing plugin-names endings with digits + +2004-09-14 Messju Mohr + + * libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + update files to 2.6.6-dev + +2004-09-13 Messju Mohr + + * NEWS: + fixed typo + +2004-09-13 Monte Ohrt + + * (Smarty_2_6_5) + NEWS: + update NEWS file with parsing correction note + +2004-09-11 Messju Mohr + + * libs/plugins/function.debug.php: + removed notice from {debug} + thanks to Peter Billen for pointing this one out! + +2004-09-11 Monte Ohrt + + * libs/Smarty_Compiler.class.php: + fix more object calling syntax issues + +2004-09-10 Messju Mohr + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + added $smarty->security_settings['ALLOW_CONSTANTS'] + including test-cases for them + +2004-09-09 Monte Ohrt + + * libs/Smarty_Compiler.class.php: + break down regex to digestable chunks, fix multiple param problem with + method calls, + add object method testing to unit_test cases + + * libs/Smarty_Compiler.class.php: + update code comment with more examples + + * libs/Smarty_Compiler.class.php: + allow objects in arbitrary param positions + + * libs/Smarty_Compiler.class.php: + fix object parameter regex, allow one level of object indirection + + * libs/Smarty_Compiler.class.php: + fix compile problem with numeric constants and math operator matching + +2004-09-07 Monte Ohrt + + * libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + update files to 2.6.5-dev + + * (Smarty_2_6_4) + NEWS: + update NEWS file with 2.6.4 header + +2004-08-31 Monte Ohrt + + * libs/Smarty_Compiler.class.php: + fix preg_quote + + * libs/Smarty_Compiler.class.php: + fix math in object params, clean up some regex on the way, change + preg_ delimiters to ~ to avoid character clashes with ! and % + +2004-08-30 Monte Ohrt + + * NEWS + libs/Smarty_Compiler.class.php: + add $smarty.ldelim and $smarty.rdelim to smarty special var + +2004-08-29 Messju Mohr + + * NEWS + libs/core/core.write_file.php: + tempnam() seems to be borken on many installation. + + now we try tempnam first and if that fails we generate our own + temp-filename with uniqid() + +2004-08-23 Monte Ohrt + + * libs/plugins/modifier.capitalize.php: + dont use constant, use static var instead + + * libs/plugins/modifier.capitalize.php: + implement optional param to capitalize for digit behavior + + * libs/plugins/modifier.capitalize.php: + another commit to capitalize, taking special chars into account + +2004-08-23 Messju Mohr + + * libs/Smarty_Compiler.class.php: + cleaned up attribute-handling in Smarty_Compiler::_compile_foreach_start() + +2004-08-23 Monte Ohrt + + * NEWS + libs/plugins/function.html_select_date.php + libs/plugins/modifier.capitalize.php: + fix capitalize modifier to not rely on buggy ucwords() func + +2004-08-20 Monte Ohrt + + * libs/plugins/function.html_select_date.php: + update version + + * NEWS + libs/plugins/function.html_select_date.php: + make time param work with negative timestamps, force year range to include + given date unless explicitly set + +2004-08-19 Monte Ohrt + + * NEWS + libs/plugins/function.fetch.php: + fix bug with fetch, passing user/pass in url did not work + +2004-08-13 Messju Mohr + + * libs/Smarty_Compiler.class.php: + fixed handling of {foreachelse} and {sectionelse} that got borked with + the latest commit (v 1.330) + +2004-08-12 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + fixed occasional wrong error messages on mismatched tags when + {else}, {elseif}, {foreachelse} or {sectionelse} is involved + + thanks to Ooypunk for pointing me on this + +2004-08-12 Nuno Lopes + + * docs/.cvsignore + docs/Makefile.in + docs/configure.in: + enable russian PDF builds + +2004-07-30 Nuno Lopes + + * docs/configure.in: + typo + + * docs/Makefile.in + docs/README + docs/configure.in: + add make test_xml + this is usefull to detect XML problems + +2004-07-29 Nuno Lopes + + * docs/configure.in: + avoid warnings in head + + * docs/.cvsignore + docs/Makefile.in + docs/README + docs/configure.in: + build pdf files + just type make pdf + +2004-07-27 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + fixed handling of methods arguments. + + thanks to Manfred Wischin for finding this one and providing the + conceptual fix. + +2004-07-23 Messju Mohr + + * libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_radios.php: + there was little flaw in smarty_function_html_radios() and + smarty_function_html_checkboxes(): + + the newly introduced assign-attribute was still added to the + tag-output as an extra-attribute. + + fixed. + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.load_plugins.php + libs/core/core.load_resource_plugin.php + libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_image.php + libs/plugins/function.html_options.php + libs/plugins/function.html_radios.php + libs/plugins/function.html_select_date.php + libs/plugins/function.html_select_time.php + libs/plugins/modifier.date_format.php: + backed out renaming of _get_plugin_filepath() to get_plugin_filepath() + + we'll stick to _get_plugin_filepath() and look for a more viable + solution to be exposed to plugin-writers. + +2004-07-20 Messju Mohr + + * libs/Smarty_Compiler.class.php + libs/core/core.is_trusted.php + libs/plugins/compiler.assign.php: + Some fixes on PhpDocumentor comments. Thanks go to Ruben Vermeersch. + +2004-07-16 andreas halter + + * docs/de/bookinfo.xml + docs/de/getting-started.xml + docs/de/language-defs.ent + docs/de/language-snippets.ent + docs/de/preface.xml: + - updated for 2.6.3 + - updates for new build system + - added missing files + - corrections from users + - revcheck comments for all files + - big up to didou and nuno, brilliant work + - make test: ok + - make: ok + +2004-07-16 Nuno Lopes + + * docs/de/getting-started.xml: + fix the revision tracking tag + the revision number might not be right. just check it, please + +2004-07-16 andreas halter + + * docs/de/getting-started.xml: + - updated version (incl revcheck comment) for revcheck testing + +2004-07-14 Monte Ohrt + + * libs/Smarty.class.php: + replace " with ' where literal strings are quoted (ever so slight speedup) + +2004-07-12 Messju Mohr + + * libs/plugins/modifier.date_format.php: + changed call from $smarty->_get_plugin_filepath() to + $smarty->get_plugin_filepath() + + * libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_image.php + libs/plugins/function.html_options.php + libs/plugins/function.html_radios.php + libs/plugins/function.html_select_date.php + libs/plugins/function.html_select_time.php: + renamed calls to $smarty->_get_plugin_filepath() to + $smarty->get_plugin_filepath() + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.load_plugins.php + libs/core/core.load_resource_plugin.php: + renamed Smarty::_get_plugin_filepath() to Smarty::get_plugin_filepath() + + * NEWS + libs/Smarty.class.php + libs/core/core.write_compiled_include.php + libs/core/core.write_compiled_resource.php + libs/core/core.write_file.php: + removed touch() call. changing the timestamp of the compiled-template + to the source template's may be irritating for certain + source-code-caches. now a newly compiled template gets the current + time as timestamp. + +2004-07-02 gerald croes + + * docs/fr/getting-started.xml + docs/fr/preface.xml: + Fixed missing tags to be able to make doc again + + * docs/fr/preface.xml: + added the "is a good thing [TM]" as in en docs + + * docs/fr/getting-started.xml: + added ctags, updated screen => programm listing. + added the technical note founded on the en doc + +2004-07-02 Monte Ohrt + + * NEWS + libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_radios.php + libs/plugins/function.mailto.php: + add assign attribute to html_checkboxes and html_radios + +2004-07-01 Messju Mohr + + * NEWS + libs/Smarty.class.php: + removed use of get_include_filepath() inside + get_auto_filename(). thanks go to c960657 + + * NEWS + libs/Smarty_Compiler.class.php: + enhanced error-reporting for {foreach} + + * NEWS + libs/Smarty_Compiler.class.php: + fixed handling of digits inside tagnames. this problem slipped into + the regexps by adding support for numeric contants next to string + constants as variables. + +2004-06-27 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + fixed escaping of backslashes in Smarty_Compiler::_quote_replace() + +2004-06-23 Monte Ohrt + + * libs/plugins/modifier.date_format.php: + display date_format %e, %T and %D as expected for windows + +2004-06-17 Messju Mohr + + * libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + changed version-number to 2.6.4-dev + +2004-06-16 Monte Ohrt + + * (Smarty_2_6_3) + NEWS: + update NEWS file with version number + +2004-06-09 Monte Ohrt + + * NEWS + libs/plugins/modifier.escape.php: + added escapement of ' + + * docs/fr/translation.xml: + Add other translators. + +2004-06-08 Messju Mohr + + * libs/Smarty.class.php: + made the correct value of "use_sub_dirs" available to the compiler. + (not worth a NEWS-entry, i think) + +2004-06-01 Messju Mohr + + * libs/plugins/function.fetch.php: + fix: proper initialistaion of $content. + thanks to Dmitry Koteroff for pointing this out. + +2004-05-29 Mehdi Achour + + * docs/fr/translation.xml: + oups :) + + * docs/fr/translation.xml: + added translation file + +2004-05-28 Nuno Lopes + + * docs/Makefile.in: + clean also file-entities.php + +2004-05-28 Messju Mohr + + * NEWS + libs/plugins/function.mailto.php: + added obfuscation of protocol-string in {mailto} when using + hex-encoding (thanks to bharat) + +2004-05-26 Messju Mohr + + * NEWS + libs/Smarty.class.php: + enhanced auto-generated filenames for templates_c and cache + + incremented Smarty::_version because the tempfiles' structure changed + a little + +2004-05-23 Mehdi Achour + + * docs/fr/bookinfo.xml + docs/fr/getting-started.xml + docs/fr/preface.xml: + WS and added revcheck + +2004-05-21 Messju Mohr + + * libs/Smarty_Compiler.class.php: + fixed typo in error-messages + + * docs/de/language-snippets.ent + docs/fr/language-snippets.ent: + added empty language-snippets.ent to fix "make web" + +2004-05-12 Monte Ohrt + + * NEWS + libs/plugins/modifier.escape.php: + add 'nonstd' escape modifier + +2004-05-07 Monte Ohrt + + * NEWS + libs/plugins/block.textformat.php: + update textformat to not output wrap chars after last para + +2004-05-06 Messju Mohr + + * NEWS + libs/core/core.write_file.php: + use tempnam() instead of unqid() to create better temporary files in + smarty_core_write_file(). + + (thanks to xces for finding this race-condition and his work on + fixing it) + +2004-05-04 Messju Mohr + + * libs/Smarty.class.php: + added check if for file_exists() to Smarty::_read_file() + +2004-04-30 Monte Ohrt + + * NEWS + libs/plugins/modifier.escape.php: + add 'mail' attribute to escape modifier + +2004-04-20 Mehdi Achour + + * docs/manual.xml.in: + added the language-snippets.ent file and started using entities for notes + under en/programmers/api-functions + +2004-04-18 Mehdi Achour + + * docs/de/getting-started.xml + docs/fr/getting-started.xml: + new global entity for zend and php-accelerator + + * docs/fr/bookinfo.xml + docs/fr/getting-started.xml + docs/fr/preface.xml: + added myself as translator and added vim comments and xml tags + +2004-04-16 Messju Mohr + + * NEWS: + added entry for numeric constants + + * libs/Smarty_Compiler.class.php: + removed unused 2nd param in call to _parse_var() + + * libs/Smarty_Compiler.class.php: + added explanation for $this->_num_const_regexp + + * NEWS + libs/plugins/modifier.escape.php: + added escape type "decentity" to smarty_modifier_escape() + + * libs/Smarty_Compiler.class.php: + enabled numerical constants be parsed as statements. + (like {10} or {10|@range:12} ) + + * libs/Smarty_Compiler.class.php: + removed unused $smarty_compiler->_dvar_num_var_regexp + + * libs/Smarty.class.php: + reverted Stuff + + * libs/debug.tpl + libs/core/core.assemble_plugin_filepath.php + libs/core/core.read_cache_file.php + libs/core/core.write_file.php + libs/plugins/function.eval.php + libs/plugins/function.popup.php + libs/plugins/modifier.escape.php + libs/plugins/shared.make_timestamp.php: + reverted stuff + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/debug.tpl + libs/core/core.assemble_plugin_filepath.php + libs/core/core.read_cache_file.php + libs/core/core.write_file.php + libs/plugins/function.eval.php + libs/plugins/function.popup.php + libs/plugins/modifier.escape.php + libs/plugins/shared.make_timestamp.php: + Smarty_Compiler.class.php + +2004-04-15 Messju Mohr + + * NEWS + libs/core/core.write_compiled_include.php: + made smarty_core_write_compiled_include() php5-aware + + if someone knows a better way than patching the source with the + tokenizer, please stand up! + +2004-04-14 Nuno Lopes + + * docs/Makefile.in: + remove file-entities.ent also + + * docs/.cvsignore + docs/Makefile.in + docs/README: + allow make revcheck + +2004-04-13 Nuno Lopes + + * docs/configure.in: + do not need inipath + +2004-04-13 Mehdi Achour + + * docs/TODO: + done + + * docs/configure.in + docs/manual.xml.in: + now the files entites are generated dynamically + +2004-04-12 Messju Mohr + + * NEWS + libs/Config_File.class.php + libs/Smarty.class.php: + removed unused functionality to load a subset of lines from a file in + Smarty::_read_file() + + additionally removed a warning that is emitted since php-4.3.5 when + fread() is called on an empty file (with filesize()==0). thanks to + Andreas Streichardt who pointed this out. + + * NEWS + libs/core/core.is_secure.php: + smarty_core_is_secure() only checks the file for readability now, not + the directory where is in. + + * libs/Smarty.class.php: + removed unused security_setting 'ALLOW_CONSTANTS' + +2004-04-07 Messju Mohr + + * libs/plugins/function.assign_debug_info.php + libs/plugins/function.cycle.php + libs/plugins/function.mailto.php: + removed trailing spaces + + * libs/Smarty.class.php: + removed unused $smarty->_error_msg + +2004-04-04 Nuno Lopes + + * docs/configure.in: + fixing my crap + put build_date back on-line + +2004-04-03 Nuno Lopes + + * docs/Makefile.in + docs/configure.in + docs/manual.xml.in: + trying to fix ru problems + +2004-03-30 Monte Ohrt + + * libs/core/core.display_debug_console.php: + fix problem with debug_tpl path and security + + * NEWS + libs/core/core.display_debug_console.php: + fix problem displaying debug console when $default_resource_type is not + "file:" + +2004-03-29 Mehdi Achour + + * docs/TODO: + and finally, add a TODO here + + * docs/de/bookinfo.xml + docs/de/manual.sgml + docs/fr/bookinfo.xml + docs/fr/manual.xml: + translate bookinfo.xml and put back the translators + +2004-03-28 Mehdi Achour + + * docs/manual.xml.in: + add global.ent and define some general entities + + * docs/de/bookinfo.xml + docs/de/getting-started.xml + docs/de/language-defs.ent + docs/de/preface.xml: + add new de files + + * docs/de/appendixes.sgml + docs/de/designers.sgml + docs/de/getting-started.sgml + docs/de/html-common.dsl + docs/de/preface.sgml + docs/de/programmers.sgml: + drop old de files + + * docs/fr/bookinfo.xml + docs/fr/getting-started.xml + docs/fr/manual.xml + docs/fr/preface.xml: + add ommited files + + * docs/fr/language-defs.ent: + split the french dir + + * docs/fr/appendixes.sgml + docs/fr/designers.sgml + docs/fr/getting-started.sgml + docs/fr/html-common.dsl + docs/fr/manual.sgml + docs/fr/preface.sgml + docs/fr/programmers.sgml: + drop old french files + + * docs/manual.xml.in: + let's put the new build system + +2004-03-26 Mehdi Achour + + * docs/de/common.dsl + docs/de/html.dsl + docs/fr/common.dsl + docs/fr/html.dsl + docs/fr/php.dsl: + not needed anymore + +2004-03-24 Nuno Lopes + + * docs/Makefile.in: + updated stylesheets + highlight PHP automatically + + * docs/Makefile.in + docs/html.dsl: + remove unneeded file + +2004-03-23 Nuno Lopes + + * docs/version.ent.in: + remove this also + + * docs/getting-started.sgml: + remove this one too + + * docs/appendixes.sgml + docs/common.dsl + docs/designers.sgml + docs/html-common.dsl + docs/manual.sgml + docs/php.dsl + docs/preface.sgml + docs/programmers.sgml: + removing uneeded files + + * docs/.cvsignore: + commiting missing files for docbook + + * docs/.cvsignore + docs/Makefile.in + docs/configure.in + docs/manual.xml.in: + bundling docbook 4 + now make and make web works + +2004-03-23 Messju Mohr + + * NEWS + libs/plugins/function.config_load.php: + unrolled call to the is_compiled()-check to be able to supply the + correct resource_base_path for config_load. this avoids errors when + config-files are accessed where security is enabled. + + thanks to shuther for pointing out this bug. + +2004-03-20 Nuno Lopes + + * docs/manual.xml.in: + fix build date + +2004-03-18 Messju Mohr + + * libs/core/core.is_secure.php: + removed merging of $smarty->template_dir into $smarty->secure_dir + + the resource_base_path is considerd secure instead. this change should + have absolutely no impact on smarty's security's behaviour + +2004-03-18 Nuno Lopes + + * docs/configure.in: + correcting non-existent var + + * docs/.cvsignore + docs/Makefile.in + docs/configure.in + docs/manual.xml.in + docs/version.ent.in: + generate build date + + * docs/.cvsignore + docs/Makefile.in + docs/README + docs/configure.in + docs/manual.xml.in: + new build/test system + +2004-03-18 Messju Mohr + + * libs/Smarty.class.php: + moved setting of a default resource_base_path from + Smarty::_parse_resource_name() to Smarty::_fetch_resource_info() + + this shouldn't affect anything, since all calls to + _parse_resource_name() that are not done from within + _fetch_resource_info() all pass their own resource_base_path + +2004-03-17 Messju Mohr + + * NEWS + libs/Smarty.class.php: + removed '.' from the list of default resource_base_paths in + _parse_resource_name() + + this should only affect _parse_resource_name() for templates, not for + php-resources and not for config_files. the latter pass two their own + resource_base_path. + +2004-03-16 Mehdi Achour + + * docs/appendixes.sgml + docs/getting-started.sgml + docs/preface.sgml: + adding editor comments + + * docs/appendixes.sgml + docs/getting-started.sgml: + cleaning words spacing, killing tabulations, using roles for + programlisting.. + +2004-03-15 Messju Mohr + + * libs/Smarty.class.php: + simplified Smarty::clear_all_cache(); + +2004-03-12 boots + + * docs/programmers.sgml: + Updated is_cached prototype to indicate proper return type. (thanks to + Geoffrey Hoffman) + +2004-03-11 Messju Mohr + + * libs/core/core.assemble_plugin_filepath.php: + fixed little bug that prevented plugins filepaths that are found in + php's include_path (and not in one of the plugins_dirs) from being + cached in the internal plugins-filepath-cache + +2004-03-01 Monte Ohrt + + * docs/designers.sgml: + update include_php docs:wq + :q + + * docs/appendixes.sgml: + update componentized template example to something useful + +2004-02-24 Messju Mohr + + * NEWS + libs/Smarty.class.php: + _parse_resource_name() returned true on non-existant absolute + paths. This caused a warning on _fetch_resource_info() when used in + conjunction with template_exists(). It should be fixed now without + negative effects. + +2004-02-24 Monte Ohrt + + * docs/designers.sgml: + one more typo + + * docs/designers.sgml: + fix typo + +2004-02-24 Messju Mohr + + * NEWS + libs/core/core.is_secure.php: + smarty_resource_*_secure got &$smarty passed errornously as 3rd + parameter and not as 2nd. this is fixed. + +2004-02-23 Messju Mohr + + * NEWS: + fix handling of integer values like width and delay im + smarty_function_popup() + + * libs/plugins/function.popup.php: + fixed handling of integer-attributes + + * libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + updated version to 2.6.3-dev + +2004-02-22 Messju Mohr + + * libs/plugins/function.html_select_date.php: + removed notice on html_select_date with the month_empty-attribute + + * libs/plugins/function.mailto.php: + removed 2 notices of undefined vars (thanks Cit) + +2004-02-17 Monte Ohrt + + * NEWS: + add header + + * (Smarty_2_6_2) + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + change some info in headers, remove fluff + +2004-02-13 Messju Mohr + + * NEWS + libs/plugins/function.html_select_date.php: + correctly handle partially empty dates (like "2004--" or "-12-"). + + * docs/programmers.sgml: + learned something about and sgml and applied this to the + use.sub.dirs-section :) + + * docs/designers.sgml: + changed attribute-name "checked" to "selected" in the docs for + html_radios and html_checkboxes. "checked" is deprecated for ages + AFAIK and selected is recommended for consistency with {html_options} + + * docs/programmers.sgml: + added note about use_sub_dirs and Smarty-2.6.2 . + fixed markup for section about clear_compiled_tpl() . + +2004-02-12 Messju Mohr + + * NEWS + libs/Config_File.class.php: + YES and NO should not be booleanized inside triple-quotes in a + config-file. this behaviour changed by accident in 2.6.1 and is now + reverted to pre-2.6.1 behaviour + +2004-02-10 Messju Mohr + + * NEWS + libs/Config_File.class.php: + fixed slurping of a the next line following a triple-quoted value in a + config-file + +2004-02-07 Messju Mohr + + * libs/Config_File.class.php: + avoid @-operator for handling empty lines in Config_File.class.php + + * libs/Smarty_Compiler.class.php: + removed two notices from Smarty_Compiler::_parse_is_expr() + (thanks shuther!) + + * NEWS + libs/Smarty.class.php: + changed default for use_sub_dirs to false + + * libs/plugins/function.mailto.php: + removed notice of undefined variable. (thanks shuther!) + +2004-01-29 Messju Mohr + + * libs/Smarty_Compiler.class.php: + added file and line-number-information to error-messages regarding + assigned objects an an error messages regarding modifiers with + security. + +2004-01-27 Messju Mohr + + * libs/Smarty_Compiler.class.php: + removed use of temporary var $_params in compiled code of block-plugins + + * NEWS + libs/plugins/function.popup.php: + fixed quoting of values in smarty_function_popup() + +2004-01-25 Messju Mohr + + * docs/programmers.sgml: + documented parameters of Smarty::clear_compiled_tpl() + + * libs/Smarty_Compiler.class.php: + Smarty_Compiler::_syntax_error() uses Smarty::_trigger_fatal_error() now + instead of the trigger_error()-function + + * libs/Smarty.class.php: + Smarty::_trigger_fatal_error() uses Smarty::trigger_error() now, + instead of the native trigger_error()-function + + * libs/Smarty_Compiler.class.php: + unrecognized custom-functions trigger an error at compile now, not at + display-time. + +2004-01-23 Monte Ohrt + + * docs/getting-started.sgml: + reword a paragraph + +2004-01-22 Messju Mohr + + * libs/plugins/function.config_load.php: + removed emission of unnecessary notices for unavailable config-files + in config_load() + + * NEWS + libs/Config_File.class.php: + fixed handling of hidden sections in Config_File + +2004-01-21 Messju Mohr + + * NEWS + libs/plugins/function.config_load.php: + added handling of resources for {config_load} + +2004-01-19 Messju Mohr + + * NEWS + libs/plugins/function.html_table.php: + fixed bug when using arrays with tr_attr and td_attr in {html_table} + +2004-01-16 Monte Ohrt + + * NEWS: + add unit testing + + * NEWS + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + update version numbers, add initial unit test directory + + * (Smarty_2_6_1) + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + update version numbers for 2.6.1 release + +2004-01-16 Messju Mohr + + * (Smarty_2_6_1) + NEWS + docs/programmers.sgml + libs/Smarty.class.php: + renamed $smarty->tpl_rror_reporting to $smarty->error_reporting + "tpl_" is a bit redundant here (it's a TemPLate-engine overall :) + +2004-01-15 Messju Mohr + + * libs/plugins/function.html_image.php: + forgot to remove duplicate is_secure()-check + + * NEWS + libs/plugins/function.html_image.php: + fix: $smarty->security is now correctly handled + + minor optimizations: + core/core.is_secure.php is only included when needed + $dpi_default is only determined when needed + +2004-01-14 Messju Mohr + + * docs/appendixes.sgml + docs/programmers.sgml: + removed suggestions to use extract() from the manual + + * docs/designers.sgml: + fixed typo + +2004-01-12 Messju Mohr + + * docs/designers.sgml: + mention SCRIPT_NAME below {$smarty} reserved variable because it got + lost in the docs for $smarty->global_assign + + * docs/designers.sgml: + added docs for {$smarty.version} special variable + + * docs/programmers.sgml: + removed docs for $global_assign + + * docs/programmers.sgml: + added docs for tpl_error_reporting + + * docs/designers.sgml: + added docs for year_empty-, month_empty- and day_emtpy-attributes of + html_select_date. maybe an example is needed to better explain empty + values in YYY-MM-DD. + +2004-01-10 Messju Mohr + + * libs/Smarty_Compiler.class.php: + fixed handling of {php}-tags + +2004-01-10 Monte Ohrt + + * docs/designers.sgml: + fix html_checkboxes examples + +2004-01-08 Messju Mohr + + * NEWS + libs/core/core.assemble_plugin_filepath.php: + added caching of requested paths to smarty_core_assemble_plugin_filepath() + + * NEWS: + fix handling of comments inside {php}- and {literal}-blocks + + * libs/Smarty_Compiler.class.php: + fixed handling of comments inside {php} and {literal} + +2004-01-06 Messju Mohr + + * NEWS + libs/Config_File.class.php: + fixed bug handling triple-quotes in config-files + + * libs/Config_File.class.php: + fixed bugs with triple-quotes in config-files + thanks BRDude for finding them testing! + +2004-01-02 Messju Mohr + + * libs/Smarty.class.php: + removed unnecessary param in call to _fetch_resource_info() + +2003-12-30 Messju Mohr + + * libs/Smarty.class.php: + oops! removed tabs. + +2003-12-27 Messju Mohr + + * NEWS + libs/Smarty.class.php: + made $SCRIPT_NAME available again + changes default for request_use_auto_global to prefer autoglobals + + * libs/Smarty.class.php: + removed tabs and trailing spaces + + * NEWS + libs/Smarty_Compiler.class.php: + readded default_modifiers. who removed that? + +2003-12-23 Monte Ohrt + + * NEWS: + add portuguese docs + +2003-12-22 Monte Ohrt + + * docs/designers.sgml: + fix counter example + +2003-12-19 Monte Ohrt + + * libs/Smarty.class.php: + add debug console persistance feature + +2003-12-19 Messju Mohr + + * libs/plugins/block.textformat.php + libs/plugins/function.html_table.php + libs/plugins/function.popup.php: + removed extract(). enhanced parameter parsing. + + * libs/plugins/function.counter.php + libs/plugins/function.fetch.php + libs/plugins/function.popup_init.php + libs/plugins/modifier.capitalize.php + libs/plugins/modifier.cat.php + libs/plugins/modifier.date_format.php + libs/plugins/modifier.debug_print_var.php + libs/plugins/modifier.escape.php + libs/plugins/modifier.indent.php + libs/plugins/modifier.lower.php + libs/plugins/modifier.nl2br.php + libs/plugins/modifier.strip.php + libs/plugins/modifier.upper.php + libs/plugins/modifier.wordwrap.php + libs/plugins/outputfilter.trimwhitespace.php + libs/plugins/shared.escape_special_chars.php: + removed tabs. fixed indentiation. + + * libs/plugins/modifier.truncate.php: + removed tabs + + * libs/plugins/function.counter.php + libs/plugins/function.cycle.php: + removed extract() from parameter-parsing + +2003-12-17 Messju Mohr + + * libs/plugins/function.html_select_date.php: + fix plugin-name in error message + + * libs/plugins/function.html_select_time.php: + remove extract-call from {html_select_time} + + * NEWS + libs/plugins/function.html_select_date.php: + allow single-digit days and months without smarty_make_timestamp() + this makes dates like "1968-11-6" work correctly since no strtotime() + is involved + + add warning when unknown parameter is passed + +2003-12-16 Messju Mohr + + * NEWS + libs/Smarty.class.php: + fix headers sent erroneously with cache_modified_check and fetch() + +2003-12-12 Monte Ohrt + + * libs/plugins/function.config_load.php: + move set_path() call below the conditional bracket + + * NEWS + libs/plugins/function.config_load.php: + fix config_load filepath bug + +2003-12-12 boots + + * docs/designers.sgml: + Updated language.function.if with additional annotation and to fix error + that broke docs build process + +2003-12-11 Messju Mohr + + * libs/Smarty_Compiler.class.php: + little optimization for "is odd" and "is even" + +2003-12-11 Monte Ohrt + + * NEWS + libs/Smarty_Compiler.class.php: + fix 'is even by' and 'is odd by' logic + +2003-12-11 Messju Mohr + + * docs/designers.sgml: + update example-output of {mailto} + + * libs/plugins/function.mailto.php: + removed extract-call -> cleaner parameter-handling + + * libs/plugins/function.mailto.php: + fixed indentiation + + * TODO: + removed two done topics + +2003-12-11 boots + + * docs/designers.sgml: + Updated language.function.if to describe qualifiers (thanks andre) + +2003-12-10 Messju Mohr + + * NEWS + libs/plugins/function.html_select_date.php: + added day_empty, month_empty, year_empty and all_empty attributes + to pass an undefined date use {html_select_date time="--" ...} + + * libs/plugins/function.html_select_date.php: + removed extract()-call + + * libs/plugins/function.html_select_date.php: + fixed indetiation + +2003-12-10 boots + + * NEWS + docs/designers.sgml: + Added table to language.function.if to describe qualifiers + +2003-12-09 Messju Mohr + + * libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_options.php: + strict comparason didn't work in all cases. use type-casting now. + + * NEWS + libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_options.php: + fix bug when comparing array-keys to "selected" in html_options and + html_checkboxes + + in_array() uses "strict" comparason now. + + * libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_options.php + libs/plugins/function.html_radios.php: + removed tabs, fixed indentiation + +2003-12-08 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + add better checks for correctly nested tags when compiling + +2003-12-04 Messju Mohr + + * libs/Smarty.class.php + libs/plugins/function.html_image.php: + fix: check $smarty->request_use_auto_globals at the last occurences of + HTTP_*_VARS + +2003-12-03 Messju Mohr + + * NEWS + libs/Smarty.class.php: + remove $global_assign property from Smarty and $global_assign-handling + from the constructor. the only visible change is, that $SCRIPT_NAME is + not available in the tempates anymore. $smarty.server.SCRIPT_NAME has + to be used from now. + +2003-12-03 boots + + * docs/designers.sgml: + Fixed example for count_characters + +2003-12-01 boots + + * docs/designers.sgml: + Added section "Escaping Smarty Parsing" under Basic Syntax. + +2003-12-01 Messju Mohr + + * libs/core/core.create_dir_structure.php: + thought again about my latest commit and backed it out. + + * libs/core/core.create_dir_structure.php: + fix root-dir-handling on windows filepath + +2003-11-29 boots + + * libs/plugins/function.config_load.php: + really make the fixes the last patch was supposed to do + + * libs/plugins/function.config_load.php: + removed tabs and killed trailing white-space + + * libs/plugins/function.config_load.php: + changed $smarty->_syntax_error to $smarty->trigger_error + +2003-11-27 Messju Mohr + + * NEWS + libs/plugins/modifier.debug_print_var.php: + remove warning in debug_print_var on php-resources + + * README: + fix version number + +2003-11-26 Messju Mohr + + * libs/Smarty_Compiler.class.php: + raise max_level for $smarty.config... to 3 to allow arrays of config-vars + +2003-11-25 Messju Mohr + + * libs/Smarty.class.php: + changed version-tag to indicate incompatibility to older compiled + templates + +2003-11-24 Messju Mohr + + * NEWS + libs/plugins/compiler.assign.php + libs/plugins/function.assign.php: + move function.assign.php to compiler.assign.php + + * libs/core/core.get_include_path.php: + silence occasional warnings of open_basedir- and + safe_mode-restrictions in core.get_include_path.php + +2003-11-23 Messju Mohr + + * libs/core/core.write_compiled_resource.php + libs/core/core.write_file.php: + avoid touch()-ing of recently unlinked files by touch()-ing the + tempfile before rename instead of touch()-ing the resulting file after + rename. + + * NEWS + libs/Smarty.class.php: + add property $tpl_error_reporting + +2003-11-22 Messju Mohr + + * libs/plugins/function.assign.php: + remove use of extract() in smarty_function_assign() + + * NEWS + libs/Smarty.class.php: + remove property $undefined. "null" is used literally instead + +2003-11-21 Messju Mohr + + * libs/Smarty_Compiler.class.php: + remove two E_NOTICES + +2003-11-20 Messju Mohr + + * libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + change version to 2.6.1-dev + +2003-11-19 Monte Ohrt + + * (Smarty_2_6_0) + NEWS: + update NEWS file + + * (Smarty_2_6_0) + docs/designers.sgml + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + change version numbers to 2.6.0 + +2003-11-19 Messju Mohr + + * docs/designers.sgml + docs/de/designers.sgml + docs/fr/designers.sgml: + fix examples of escape-modifier (in docs, docs/de and docs/fr !) + +2003-11-18 Messju Mohr + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + move Smarty::quote_replace() to Smarty_Compiler::_quote_replace() + + * libs/Smarty.class.php: + removed extract-calls from _include()- and _eval()-wrappers + variables passed with {include_php} have to accessed as members of $params + now + +2003-11-17 Messju Mohr + + * docs/designers.sgml: + fixed typo + +2003-11-13 Messju Mohr + + * libs/Config_File.class.php: + fix occasional notice + +2003-11-13 andreas halter + + * docs/de/designers.sgml: + - added cat modifier, thanks messju :-) + +2003-11-13 Monte Ohrt + + * (Smarty_2_6_0-RC3) + NEWS + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + commit RC3 tags + +2003-11-13 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + fix handling of $var.key inside [] + + * libs/Smarty.class.php: + fix unnecessary loading of core.load_resource_plugin.php + + * (Smarty_2_6_0-RC3) + docs/fr/designers.sgml: + fixed example of html_table + +2003-11-11 Messju Mohr + + * NEWS + libs/core/core.process_cached_inserts.php: + fix handling of assign inside {insert}-tags + +2003-11-06 Messju Mohr + + * libs/core/core.read_cache_file.php: + added $exp_time-parameter + + * docs/programmers.sgml: + added $exp_time to cache_handler_func-example + + * libs/Smarty.class.php + libs/core/core.write_cache_file.php: + added $exp_time-parameter of clear_cache() and clear_all_cache() to + cache_handler_func. + +2003-11-05 Messju Mohr + + * NEWS + libs/Config_File.class.php: + fix handling if [...] inside triple-quotes in config-files + +2003-11-04 Messju Mohr + + * libs/Smarty.class.php: + fixed little bug in _parse_resource_name() (jlgunter, messju) + +2003-11-03 andreas halter + + * docs/designers.sgml + docs/de/designers.sgml + docs/fr/designers.sgml: + - changed Smarty.php.class occurences to Smarty.class.php + +2003-10-29 boots + + * docs/appendixes.sgml + docs/designers.sgml + docs/manual.sgml + docs/programmers.sgml + docs/de/appendixes.sgml + docs/de/designers.sgml + docs/de/programmers.sgml + docs/fr/appendixes.sgml + docs/fr/designers.sgml + docs/fr/getting-started.sgml + docs/fr/manual.sgml + docs/fr/preface.sgml + docs/fr/programmers.sgml: + Fixes to documentation syntax so that all content can be processed used + xsltproc docbook-xsl tools. In particular, fixes unescaped entities, + broken tags, unquoted attributes. + +2003-10-27 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + fix handling of simple-math-operators inside modifiers + +2003-10-25 Messju Mohr + + * libs/Smarty_Compiler.class.php: + removed unused property _output_type + removed unused param $tag_attrs of _parse_var_props() + cleaned up alignment of class-properties + +2003-10-23 Messju Mohr + + * libs/Smarty_Compiler.class.php: + removed notice in php-tag handling in Smarty_Compiler::_compile_file() + + * libs/Smarty_Compiler.class.php: + removed two occasional E_NOTICES from + Smarty_Compiler::_compile_include_php_tag() + + * NEWS + libs/core/core.create_dir_structure.php: + fix handling of trailing-slashes in open_basedir in + smarty_core_create_dir_structure() + +2003-10-20 Messju Mohr + + * libs/Smarty_Compiler.class.php: + elements inside `` are bracketed now inside the compiled-tpl. this + fixes some issues with simple-math inside backticks. + +2003-10-16 Monte Ohrt + + * docs/designers.sgml: + update overlib docs, no working examples + +2003-10-12 Messju Mohr + + * libs/Smarty.class.php + libs/core/core.is_secure.php: + move check for template_dir in secure_dir-array into core.is_secure.php + + this makes template_exists() work correctly with security=true even if + template_dir is not inside the secure_dir-array + +2003-10-11 Messju Mohr + + * libs/plugins/shared.make_timestamp.php: + tightened check for YYYYMMDDHHMMSS-format. thanks konstantin for + pointing this out. + + removed a few tabs. + + * libs/Smarty_Compiler.class.php: + fix precedence of simple-math-operators before modifiers. + thanks dominik! + + * libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.assemble_plugin_filepath.php + libs/core/core.assign_smarty_interface.php + libs/core/core.create_dir_structure.php + libs/core/core.display_debug_console.php + libs/core/core.get_include_path.php + libs/core/core.get_microtime.php + libs/core/core.get_php_resource.php + libs/core/core.is_secure.php + libs/core/core.is_trusted.php + libs/core/core.load_plugins.php + libs/core/core.load_resource_plugin.php + libs/core/core.process_cached_inserts.php + libs/core/core.process_compiled_include.php + libs/core/core.read_cache_file.php + libs/core/core.rm_auto.php + libs/core/core.rmdir.php + libs/core/core.run_insert_handler.php + libs/core/core.smarty_include_php.php + libs/core/core.write_compiled_include.php + libs/core/core.write_compiled_resource.php + libs/core/core.write_file.php: + removed tabs from the main and the core/*.php files + +2003-10-08 Monte Ohrt + + * (Smarty_2_6_0-RC2) + NEWS + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + update version numbers to RC2 + +2003-09-18 Messju Mohr + + * docs/designers.sgml + docs/de/designers.sgml: + fixed description of cycle's advance-attribute + +2003-09-16 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + apply modifiers only once to section-loop and foreach-from attributes + +2003-09-15 Messju Mohr + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.write_cache_paths_file.php: + backed out _smarty_cached_paths-file-handling + + * libs/Smarty.class.php + libs/core/core.rm_auto.php: + fixed clear_compiled_tpl with explicit $tpl_file given + fixed return value of smarty_core_rm_auto() + Smarty::_unlink() + + * libs/Smarty.class.php: + little fix in _get_auto_filename() + +2003-09-14 Messju Mohr + + * libs/Smarty.class.php + libs/core/core.assemble_auto_filename.php: + removed auto-filenames from path-cache. merged assemble_auto_filename + back into Smarty::_get_auto_filename() + +2003-09-12 Messju Mohr + + * libs/Smarty_Compiler.class.php: + fixed quoting of modifier parameters + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.get_php_resource.php + libs/core/core.load_plugins.php + libs/core/core.load_resource_plugin.php: + remove Smarty::_plugin_implementation_exists() - use php's native + is_callable() + +2003-09-11 Messju Mohr + + * libs/Smarty.class.php: + silenced two notices acces HTTP_SERVER_VARS + +2003-09-10 andreas halter + + * docs/de/designers.sgml + docs/de/getting-started.sgml + docs/de/programmers.sgml: + - minor fixes (2 rep), slight wording changes + - jade transform problem fixed + +2003-09-08 andreas halter + + * docs/de/designers.sgml + docs/de/getting-started.sgml + docs/de/manual.sgml + docs/de/preface.sgml + docs/de/programmers.sgml: + all updated for 2.6.0 release, translated everything from 2_5_0 branch to + 20030908 + +2003-09-04 Messju Mohr + + * libs/Smarty.class.php: + proper checking for files in _fetch_resource_info() + +2003-09-02 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + ignore {strip}/{/strip) inside {strip}-blocks + + * libs/plugins/function.mailto.php: + fixed 2 notices in smarty_function_mailto() + +2003-09-01 Messju Mohr + + * libs/Smarty.class.php: + re-include cache_paths on multiple calls to fetch() to avoid + inconsistencies + at multiple calls to fetch() in one script + + * libs/Smarty_Compiler.class.php: + fixed handling of \r in {strip} + renamed $_trailing_lf to $_additional_newline + + * libs/Smarty_Compiler.class.php: + the weekly fix for {strip} :) + + * docs/designers.sgml: + fixed example for simple math. + +2003-08-29 Messju Mohr + + * libs/core/core.assign_smarty_interface.php + libs/core/core.display_debug_console.php + libs/plugins/function.assign.php + libs/plugins/function.html_options.php + libs/plugins/function.html_table.php: + fixed PHPDocumentor-comments (thanks Konstantin) + + * libs/core/core.rmdir.php: + made rmdir a bit more optimistic. especially it now removes + directories correctly that where created accidently by "safe_mode=On + && $use_sub_dirs=true" + +2003-08-27 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + fixed removal of leading/trailing newlines in {strip}-blocks + +2003-08-25 Messju Mohr + + * INSTALL: + added note emphasizing the introduction of "libs/" with 2.5.0 + + * NEWS + libs/plugins/modifier.escape.php: + fixed proper escaping of " and ' with escape:javascript + +2003-08-22 Messju Mohr + + * NEWS + libs/core/core.assemble_plugin_filepath.php: + fixed bug in traversal of $smarty->plugins_dir-array in + smarty_core_assemble_plugin_filepath(). the first matching plugin in + the path should be used, not the last one. + + * libs/core/core.read_cache_file.php: + discard $_cache_info when the cache should be regenerated + +2003-08-20 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php + libs/plugins/block.strip.php: + reverted {strip} from a block-plugin back into the compiler + + * docs/programmers.sgml: + fixed examples for register_function() and register_block() + + * libs/Smarty.class.php: + made template_exists() quiet when the template does not exist (thanks + to konstatin for pointing this out) + +2003-08-18 Monte Ohrt + + * docs/getting-started.sgml: + fix example title + + * docs/README + docs/getting-started.sgml: + change installation wording confusion + +2003-08-18 Messju Mohr + + * libs/Smarty.class.php + libs/core/core.read_cache_file.php: + fixed unnecessary load of source in template_exists() and the + compile-check of smarty_core_read_cache_file() + + * libs/Smarty_Compiler.class.php: + allow section-, array- and object-dereference in $smarty-references + +2003-08-15 Messju Mohr + + * docs/designers.sgml: + added parameter-descriptions for count_characters (thanks Konstantin + A. Pelepelin) + + fixed docs for {html_checkboxes} + +2003-08-14 Messju Mohr + + * libs/Smarty.class.php + libs/core/core.read_cache_file.php: + fixed timestamp-check of config-files in smarty_core_read_cache_file() + + * libs/Smarty.class.php: + fixed typecasting for arrays in _parse_resource_name() + + * NEWS + libs/plugins/function.config_load.php: + fixes in config_load: + - handling of section-attribute + - reusing the same config-file multiple times + - serialization of config-data for php<4.2.0 (no var_export) + + many thanks to atu for pointing this out and for testing + +2003-08-13 Messju Mohr + + * libs/Smarty.class.php + libs/core/core.smarty_include_php.php: + fixed problem with vars as attributes in {include_php} + +2003-08-13 Monte Ohrt + + * docs/README: + commit README file for documentation compiling + +2003-08-13 Messju Mohr + + * libs/debug.tpl + libs/plugins/modifier.debug_print_var.php: + removed '\r' from debug_print_vars' output + properly escape vars in javascript-version of debug.tpl + +2003-08-11 Monte Ohrt + + * (Smarty_2_6_0_RC1) + NEWS + docs/designers.sgml + docs/html.dsl + docs/php.dsl + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + get ready for 2.6.0-RC1 release + +2003-08-10 Messju Mohr + + * NEWS + libs/Smarty.class.php: + fixed status-header for cache_modified_check under cgi-sapi + +2003-08-09 Messju Mohr + + * libs/core/core.is_secure.php + libs/core/core.is_trusted.php: + synced secure_dir-checking with trusted_dir-checking + + * libs/core/core.is_secure.php: + tightenend path checking in smarty_core_is_secure() + +2003-08-08 Messju Mohr + + * libs/Smarty.class.php: + fix: proper nesting of $smarty->_cache_including flag in cascaded + cached/not-cached/fetched/inserted/foo-templates + + * libs/debug.tpl: + better escaping for $_debug_tpls[templates].filenames + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + removed redundant $smarty from Smarty::_smarty_include() + + * libs/debug.tpl: + proper escaping of filenames in debug-console (thanks to prossel). + +2003-08-07 Messju Mohr + + * docs/programmers.sgml: + added docs for block-methods of registered objects + + * docs/programmers.sgml: + fixed typo in example for registered objects + + * docs/designers.sgml: + fixed exampls of html_image and html_checkboxes + + * libs/plugins/function.debug.php: + fixed {debug} and removed tabs in function.debug.php + + * docs/programmers.sgml: + fixed example for register_object + + * docs/designers.sgml + docs/programmers.sgml: + updated docs for capture, html_table, html_image and register_object + +2003-08-07 Monte Ohrt + + * docs/designers.sgml + docs/programmers.sgml: + add math and default_resource_type to docs + + * docs/getting-started.sgml: + add core to example, add tech note + +2003-08-07 Messju Mohr + + * docs/manual.sgml + docs/fr/manual.sgml: + upd copyright in the docs + +2003-08-07 Monte Ohrt + + * docs/getting-started.sgml: + added core directory to install instructions + +2003-08-07 Messju Mohr + + * docs/designers.sgml + docs/programmers.sgml: + added docs for php-functions as modifiers + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + better caching of attributes for $cacheable=false-plugins + + * docs/programmers.sgml: + added section "caching.cacheable" to the docs, explaining the usage of + the $cacheable-flag of the register_(block|compiler|function)-functions + + * libs/Smarty_Compiler.class.php: + fixed output of custom-functions with cached attributes + + * docs/programmers.sgml: + docs update on callbacks to the register_*-functions + +2003-08-06 Messju Mohr + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.process_compiled_include.php: + added optional parameter $cache_attrs to register_function() and + register_block(). $cache_attrs is an array containing attribute- names + that should be cached on calls to functions that have $cacheable set + to false. + + * libs/Smarty.class.php: + fixed bug in _run_mod_handler + + * libs/Smarty_Compiler.class.php: + fixed bug with autoload-handling of modifiers. thanks ándre. + +2003-08-05 Messju Mohr + + * libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + updated copyright notice + + * libs/Smarty.class.php + libs/core/core.load_plugins.php: + fixed bug that occurred when using the same not-cacheable plugin in + multiple includes + + * docs/programmers.sgml: + docs-update for plugins.writing + +2003-08-04 Messju Mohr + + * docs/designers.sgml + docs/programmers.sgml: + updated docs for register_block_function(), block-functions, + $request_use_auto_globals and html_checkboxes + +2003-07-31 Messju Mohr + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + enabled registration of class-methods as callbacks for the + register_*-functions + + use: array('classname', 'method_name')) as callback + +2003-07-29 Messju Mohr + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + modifiers are resolved at compile-time now. _run_mod_handler() is + still used for modifiers with map_array=true (== no preceeding '@') + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.smarty_include.php: + moved _smarty_include() back into Smarty.class.php + + * libs/Smarty.class.php + libs/core/core.load_plugins.php: + prevent unnecessary calls to _read_file() in _is_compiled() + converted method-call to internal function-call in + smarty_core_load_plugins() + +2003-07-28 Messju Mohr + + * libs/Smarty_Compiler.class.php: + quote smarty-header properly to prevent resource-names from escaping from + the comment + +2003-07-25 Messju Mohr + + * libs/core/core.create_dir_structure.php: + weakend race-condition and removed bogus error-message caused by that + in smarty_core_create_dir_structure(). + +2003-07-23 Messju Mohr + + * libs/Smarty.class.php + libs/core/core.display_debug_console.php + libs/core/core.fetch_resource_info.php + libs/core/core.get_php_resource.php + libs/core/core.parse_resource_name.php + libs/core/core.process_cached_inserts.php + libs/core/core.read_cache_file.php + libs/core/core.run_insert_handler.php + libs/core/core.smarty_include.php + libs/core/core.smarty_include_php.php + libs/plugins/function.eval.php: + moved _fetch_resource_info and _parse_resource_name back into + Smarty.class.php + renamed smarty_include and smarty_eval wrappers to _include and _eval + +2003-07-17 Messju Mohr + + * libs/core/core.process_compiled_include.php + libs/core/core.read_cache_file.php: + improved checking of compiled_include against cached-template with + non-cached-chunks + + * libs/core/core.write_compiled_include.php: + fixed too short open-tag + + * libs/plugins/function.eval.php: + fixed assign parameter for eval (must have gotton lost on its way to 2.5.0) + cleaned up indentiation + +2003-07-03 Messju Mohr + + * libs/Smarty_Compiler.class.php: + resurrected $foo->$bar syntax + + * libs/Smarty_Compiler.class.php: + i'm so stupid. kick me. + + * libs/Smarty_Compiler.class.php: + fixed initialisation of $this->_plugins in compile_block_tag() + +2003-07-03 Monte Ohrt + + * libs/Config_File.class.php: + add preg_quote delimiter + +2003-07-03 Messju Mohr + + * libs/Smarty_Compiler.class.php: + applied fix for {$var1->p1|modifier:$var2->p2}-syntax - thanks Dominik + +2003-07-02 Messju Mohr + + * libs/Smarty_Compiler.class.php: + fixed duplicate generation of arg-list in _compile_block_tag() + + * libs/Smarty_Compiler.class.php: + fixed off-by-one-error in nocache-tag-handling + +2003-06-30 Messju Mohr + + * libs/Smarty_Compiler.class.php: + backed out errornously committed support for $foo->$bar + + * libs/core/core.write_file.php: + fixed indentiation, silenced occasional warning + + * libs/plugins/function.html_image.php: + match first character of file-attribute against "/" instead of + DIRECTORY_SEPARATOR since it is a url-path and not a file-path. + + * libs/Smarty_Compiler.class.php + libs/core/core.write_file.php + libs/plugins/function.html_image.php: + libs/plugins/function.html_image.php + + * libs/Smarty_Compiler.class.php: + re-fixed cacheable_state-handling + + * libs/core/core.display_debug_console.php + libs/core/core.process_cached_inserts.php + libs/core/core.process_compiled_include.php + libs/core/core.run_insert_handler.php: + extincting $this out of smarty_core_*-functions + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + fixed handling of nocache-state + +2003-06-29 Messju Mohr + + * libs/Smarty.class.php + libs/core/core.smarty_include.php + libs/core/core.smarty_include_php.php + libs/plugins/function.eval.php: + removed $this from smarty_include and smarty_include_php + added cleaner handling of $this to {eval} + + * libs/core/core.load_resource_plugin.php: + fixed inlude_once-call + + * docs/de/designers.sgml + docs/fr/designers.sgml: + fixed examples of html_radios and html_checkboxes in german and french docs + +2003-06-25 Monte Ohrt + + * libs/core/core.assemble_auto_filename.php + libs/core/core.write_cache_paths_file.php: + fix typo, fix write_cache_paths logic + + * libs/Smarty.class.php + libs/core/core.assemble_auto_filename.php: + fix SMARTY_COMPILE_DIR_SEP problem, make local var + +2003-06-24 Monte Ohrt + + * libs/Smarty.class.php + libs/core/core.assemble_auto_filename.php + libs/core/core.write_cache_paths_file.php: + fixed cache_paths bug, simplified filename assembly logic + +2003-06-24 Messju Mohr + + * libs/plugins/function.html_image.php: + added parsing of forgotton param "basedir" + + * libs/Smarty_Compiler.class.php: + fixed $smarty.get-reference + + * libs/plugins/block.textformat.php: + removed warning + + * libs/Smarty_Compiler.class.php: + fixed value of _cacheable_state on compiler-startup + +2003-06-23 Monte Ohrt + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.write_cache_paths_file.php: + make cache_path per resource, fix a couple directory path issues + +2003-06-23 Messju Mohr + + * libs/Smarty_Compiler.class.php: + removed warning when compiling empty template + + * libs/core/core.write_compiled_include.php: + fixed bug in write_compiled_include + + * libs/core/core.assemble_plugin_filepath.php: + fixed warning + +2003-06-22 Messju Mohr + + * libs/plugins/function.eval.php: + fixed propagation of $this into evald code in smarty_function_eval() + + * libs/core/core.write_cache_paths_file.php + libs/core/core.write_compiled_include.php: + fix in compiled-include-handling + + * libs/core/core.assemble_auto_filename.php + libs/core/core.assemble_plugin_filepath.php + libs/core/core.assign_smarty_interface.php + libs/core/core.create_dir_structure.php + libs/core/core.fetch_resource_info.php + libs/core/core.get_include_path.php + libs/core/core.get_microtime.php + libs/core/core.get_php_resource.php + libs/core/core.is_secure.php + libs/core/core.is_trusted.php + libs/core/core.load_plugins.php + libs/core/core.load_resource_plugin.php + libs/core/core.parse_resource_name.php + libs/core/core.read_cache_file.php + libs/core/core.rm_auto.php + libs/core/core.rmdir.php + libs/core/core.write_cache_file.php + libs/core/core.write_cache_paths_file.php + libs/core/core.write_compiled_include.php + libs/core/core.write_compiled_resource.php + libs/core/core.write_file.php + libs/plugins/modifier.date_format.php: + started moving from $this to $smarty in core.*.php + +2003-06-21 Monte Ohrt + + * libs/core/core.create_dir_structure.php + libs/core/core.write_file.php + libs/plugins/function.config_load.php: + fix more dir paths + + * NEWS + libs/Smarty.class.php + libs/core/core.assemble_auto_filename.php + libs/core/core.assemble_plugin_filepath.php + libs/core/core.fetch_resource_info.php + libs/core/core.get_php_resource.php + libs/core/core.parse_resource_name.php + libs/core/core.process_cached_inserts.php + libs/core/core.read_cache_file.php + libs/core/core.rm_auto.php + libs/core/core.rmdir.php + libs/core/core.run_insert_handler.php + libs/core/core.smarty_include.php + libs/core/core.smarty_include_php.php + libs/core/core.write_cache_file.php + libs/core/core.write_cache_paths_file.php + libs/core/core.write_compiled_include.php + libs/core/core.write_compiled_resource.php + libs/core/core.write_file.php + libs/plugins/function.config_load.php + libs/plugins/function.fetch.php + libs/plugins/function.html_image.php: + fix filepaths to core files to use DIRECTORY_SEPARATOR + +2003-06-21 Messju Mohr + + * libs/Smarty_Compiler.class.php: + fixed {plugin|modifier} syntax + + * libs/Smarty.class.php + libs/core/core.write_compiled_include.php: + fixed compiled include handling + +2003-06-21 Monte Ohrt + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.assemble_auto_filename.php + libs/core/core.assemble_plugin_filepath.php + libs/core/core.write_cache_paths_file.php: + added filepath caching + +2003-06-20 Monte Ohrt + + * libs/Smarty_Compiler.class.php: + update more varnames + + * libs/Smarty.class.php + libs/core/core.display_debug_console.php + libs/core/core.fetch_file_info.php + libs/core/core.fetch_resource_info.php + libs/core/core.get_php_resource.php + libs/core/core.parse_file_path.php + libs/core/core.parse_resource_name.php + libs/core/core.process_cached_inserts.php + libs/core/core.read_cache_file.php + libs/core/core.run_insert_handler.php + libs/core/core.smarty_include.php + libs/core/core.smarty_include_php.php + libs/core/core.write_compiled_resource.php + libs/core/core.write_compiled_template.php + libs/plugins/function.config_load.php: + refactored var naming to better reflect "resource" instead of "file" where + appropriate + +2003-06-19 Messju Mohr + + * libs/Smarty.class.php: + updated version-number to 2.5.0-cvs + + * libs/core/core.write_cache_file.php: + omit is-cache_dir-writable-check if a cache_handler_function is in use + + * libs/core/core.smarty_include_php.php: + fixed comments in smarty_include_php + +2003-06-19 Monte Ohrt + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.display_debug_console.php + libs/core/core.smarty_include.php + libs/plugins/function.eval.php: + split up _compile_template to _compile_file and _compile_source, fix eval + function + VS: ---------------------------------------------------------------------- + + * libs/plugins/function.config_load.php: + fix logic for _is_compiled() + +2003-06-19 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + added optional assign-attribute to {capture}-tag + + * NEWS + libs/Smarty.class.php: + added $cacheable-parameter to register_compiler_function() + +2003-06-18 Messju Mohr + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.load_plugins.php + libs/core/core.process_compiled_include.php + libs/core/core.read_cache_file.php + libs/core/core.write_cache_file.php + libs/core/core.write_compiled_include.php: + added $cacheable-parameter to register_function() and register_block() + + * libs/Smarty.class.php: + append '.php' to all compiled templates regardless of the settings of + $use_sub_dirs + + * libs/Smarty.class.php + libs/core/core.read_cache_file.php: + fixed $file_path-parameters passed to smarty_core_fetch_file_info() + +2003-06-17 Monte Ohrt + + * NEWS: + fix name + + * libs/Smarty_Compiler.class.php: + change varnames to follow coding methods + + * NEWS + libs/Smarty_Compiler.class.php: + add math patch to core + +2003-06-17 Messju Mohr + + * libs/core/core.smarty_include.php: + switched _process_template() to _is_compiled()-logic + +2003-06-17 Monte Ohrt + + * libs/Smarty.class.php: + fix _is_compiled logic + + * NEWS: + update news file + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + fix _run_mod_handler routine + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.display_debug_console.php + libs/core/core.fetch_file_info.php + libs/core/core.parse_file_path.php + libs/core/core.write_compiled_template.php + libs/plugins/function.config_load.php: + fix path problems, rename some varibles from "template" to "file" + +2003-06-16 Monte Ohrt + + * libs/core/core.fetch_file_info.php + libs/core/core.fetch_template_info.php: + rename file, commit + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.parse_file_path.php + libs/core/core.read_cache_file.php + libs/plugins/block.strip.php + libs/plugins/block.textformat.php + libs/plugins/compiler.config_load.php + libs/plugins/function.config_load.php + libs/plugins/function.eval.php + libs/plugins/function.fetch.php + libs/plugins/function.html_image.php: + fix config_load, compile fetched arrays to compile_dir, switch display + back to runtime. clean up var names and function names, split up compile + testing and compiling to separate funcs, rename some template_* functions + to + file_* functions and update logic so they can be used for file resources + other than templates. + +2003-06-16 Messju Mohr + + * libs/Smarty_Compiler.class.php: + fixed little bug in _compile_custom_tag() + +2003-06-16 Monte Ohrt + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/core/core.assign_smarty_interface.php + libs/core/core.create_dir_structure.php + libs/core/core.display_debug_console.php + libs/core/core.fetch_template_info.php + libs/core/core.get_include_path.php + libs/core/core.get_microtime.php + libs/core/core.get_php_resource.php + libs/core/core.is_secure.php + libs/core/core.is_trusted.php + libs/core/core.load_plugins.php + libs/core/core.load_resource_plugin.php + libs/core/core.parse_file_path.php + libs/core/core.process_cached_inserts.php + libs/core/core.read_cache_file.php + libs/core/core.rm_auto.php + libs/core/core.rmdir.php + libs/core/core.run_insert_handler.php + libs/core/core.smarty_include.php + libs/core/core.smarty_include_php.php + libs/core/core.write_cache_file.php + libs/core/core.write_compiled_template.php + libs/core/core.write_file.php + libs/plugins/core.assign_smarty_interface.php + libs/plugins/core.create_dir_structure.php + libs/plugins/core.display_debug_console.php + libs/plugins/core.fetch_template_info.php + libs/plugins/core.get_include_path.php + libs/plugins/core.get_microtime.php + libs/plugins/core.get_php_resource.php + libs/plugins/core.is_secure.php + libs/plugins/core.is_trusted.php + libs/plugins/core.load_plugins.php + libs/plugins/core.load_resource_plugin.php + libs/plugins/core.parse_file_path.php + libs/plugins/core.process_cached_inserts.php + libs/plugins/core.read_cache_file.php + libs/plugins/core.rm_auto.php + libs/plugins/core.rmdir.php + libs/plugins/core.run_insert_handler.php + libs/plugins/core.smarty_include.php + libs/plugins/core.smarty_include_php.php + libs/plugins/core.write_cache_file.php + libs/plugins/core.write_compiled_template.php + libs/plugins/core.write_file.php: + move core files into their own directory under SMARTY_DIR, + remove abstraction function _execute_core_function + + * libs/Smarty_Compiler.class.php: + fix newline handling for template for all template tags + +2003-06-11 Monte Ohrt + + * libs/plugins/compiler.config_load.php: + add compiler function to cvs repository + +2003-06-11 Messju Mohr + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + added config-option "request_use_auto_globals" to make auto-globals be + used as request vars instead of HTTP_*_VARS + +2003-06-11 Monte Ohrt + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/plugins/function.config_load.php: + make config vars compile statically + +2003-06-11 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + backed out newlines patch + + * NEWS + libs/Smarty_Compiler.class.php: + removed newlines in compiled templates after closing tags + +2003-06-10 Messju Mohr + + * docs/de/designers.sgml: + fixed german note on html_image and disk-access + +2003-06-10 Monte Ohrt + + * libs/plugins/core.parse_file_path.php: + fix bug with resource_type resolving + +2003-06-09 Monte Ohrt + + * docs/designers.sgml: + replace example with more practical one + +2003-06-08 Messju Mohr + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + added block-methods for registered objects + +2003-06-07 Messju Mohr + + * docs/programmers.sgml: + fixed bug in documentation for $smarty->default_modifiers + +2003-06-06 Monte Ohrt + + * libs/plugins/core.parse_file_path.php: + fix problem with new default_resource_type changes + + * NEWS: + update NEWS file info + + * NEWS + libs/Smarty.class.php + libs/plugins/core.parse_file_path.php: + add default_resource_type, ignore 1 char resource names + + * NEWS + libs/Config_File.class.php: + fix bug where config file starts with hidden section + +2003-06-04 Monte Ohrt + + * NEWS + libs/Smarty.class.php: + -** empty log message *** + +2003-06-03 Monte Ohrt + + * libs/plugins/function.html_image.php: + fix example in code comments + +2003-06-03 Messju Mohr + + * NEWS + libs/plugins/function.counter.php: + fixed behaviour of start=... for {counter} + +2003-06-02 Messju Mohr + + * NEWS + libs/plugins/function.counter.php: + fixed assign for {counter} + +2003-05-30 Monte Ohrt + + * libs/plugins/core.write_cache_file.php + libs/plugins/core.write_compiled_template.php: + add discrete error checking pertaining to $cache_dir + and $compile_dir, their existance and writability + +2003-05-28 Messju Mohr + + * NEWS + libs/plugins/function.html_table.php: + added params vdir, hdir and inner to html_table to allow looping over + the data in various directions + +2003-05-28 Monte Ohrt + + * libs/plugins/core.compile_template.php + libs/plugins/core.display_debug_console.php: + fix problem with security and debug.tpl file + +2003-05-23 Monte Ohrt + + * NEWS: + upd NEWS file + + * libs/Smarty_Compiler.class.php: + allow spaces in literal tags + +2003-05-22 Monte Ohrt + + * docs/fr/programmers.sgml: + fix special chars + +2003-05-19 Monte Ohrt + + * NEWS + libs/Smarty_Compiler.class.php: + speed up compiled templates, hardcode plugin filepaths instead of + recalculate at runtime + +2003-05-19 Messju Mohr + + * docs/designers.sgml: + fixed example of {html_image} + + * docs/designers.sgml: + fixed typo + +2003-05-12 Messju Mohr + + * libs/Smarty.class.php + libs/plugins/core.read_cache_file.php + libs/plugins/core.smarty_include.php + libs/plugins/function.config_load.php: + fixed multiple redundant occurrences for 'config' and 'template' in + $smarty->_cache_info + +2003-05-10 Messju Mohr + + * libs/plugins/core.create_dir_structure.php: + refurbished create_dir_structure to use '/' internally + + * libs/plugins/core.create_dir_structure.php: + fixed windows absolute-paths in smarty_core_create_dir_structure() + + * libs/plugins/core.create_dir_structure.php: + fixed error-message + +2003-05-09 Messju Mohr + + * libs/Smarty_Compiler.class.php: + fixed warning due to missing param to _execute_core_function() + + * libs/Smarty_Compiler.class.php: + fixed quoting in _compile_include_php + + * libs/Smarty_Compiler.class.php: + fixed quoting of "file"-parameter in _compile_include_tag() + +2003-05-08 Monte Ohrt + + * docs/programmers.sgml: + fix typo + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/plugins/core.compile_template.php + libs/plugins/core.create_dir_structure.php + libs/plugins/core.fetch_template_info.php + libs/plugins/core.get_include_path.php + libs/plugins/core.get_microtime.php + libs/plugins/core.get_php_resource.php + libs/plugins/core.is_secure.php + libs/plugins/core.is_trusted.php + libs/plugins/core.load_plugins.php + libs/plugins/core.load_resource_plugin.php + libs/plugins/core.parse_file_path.php + libs/plugins/core.process_cached_inserts.php + libs/plugins/core.read_cache_file.php + libs/plugins/core.rm_auto.php + libs/plugins/core.rmdir.php + libs/plugins/core.run_insert_handler.php + libs/plugins/core.smarty_include.php + libs/plugins/core.smarty_include_php.php + libs/plugins/core.write_cache_file.php + libs/plugins/core.write_compiled_template.php + libs/plugins/core.write_file.php + libs/plugins/function.config_load.php + libs/plugins/function.fetch.php + libs/plugins/function.html_image.php: + abstract more private functions to plugin directory + + * libs/Config_File.class.php: + only add DIRECTORY_SEPARATOR if it isn't already present + + * libs/Config_File.class.php: + fix directory separator code, use DIRECTORY_SEPARATOR + +2003-05-08 Messju Mohr + + * docs/designers.sgml: + fixed example of html_checkboxes + + * NEWS + libs/Smarty.class.php: + fixed bug in _create_dir_structure() when used with + open_basedir-restriction and relative paths + + * docs/designers.sgml: + fixed example for html_radios + +2003-05-07 Monte Ohrt + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php + libs/plugins/core.assign_smarty_interface.php + libs/plugins/core.display_debug_console.php + libs/plugins/function.display_debug_console.php: + abstracted display_debug_console and assign_smarty_interface to plugin dir + as a test + + * libs/Smarty.class.php + libs/plugins/function.display_debug_console.php: + correct misc varnames, abstract debug console display to plugin function + + * libs/plugins/modifier.escape.php: + fix typo + +2003-05-05 Monte Ohrt + + * libs/Smarty_Compiler.class.php: + add % to math + + * libs/Smarty.class.php: + clean up comments, formatting + + * NEWS + libs/Smarty.class.php: + keep DIR_SEP for 3rd party compatability + + * NEWS + libs/Smarty.class.php: + remove DIR_SEP, use DIRECTORY_SEPARATOR exclusively + + * libs/Smarty_Compiler.class.php: + remove ++ and -- math operators on template vars + +2003-05-04 Messju Mohr + + * libs/Smarty_Compiler.class.php: + removed unused parameter $quote from Smarty_Compiler::_parse_attrs() + + * libs/plugins/function.html_image.php: + fixed DIR_SEP in html_image-plugin + +2003-05-04 Monte Ohrt + + * NEWS + libs/Smarty.class.php: + rename DIR_SEP to SMARTY_DIR_SEP to avoid varname collisions + +2003-05-04 Messju Mohr + + * NEWS + libs/plugins/function.html_image.php: + changed "link" to "href" in html_image. "link" is still working but + deprecated + html_image always renders an alt-tag now (default alt="") + cleaned up indentiation of function.html_image.php + +2003-05-03 Monte Ohrt + + * libs/debug.tpl: + fix typo + +2003-05-02 Messju Mohr + + * NEWS + libs/plugins/function.counter.php: + fixed assign attribute for multiple counters + +2003-05-02 Monte Ohrt + + * libs/Smarty_Compiler.class.php: + allow math on negative number + + * NEWS + libs/Smarty_Compiler.class.php: + added simple math operators to variables + +2003-05-02 Messju Mohr + + * docs/designers.sgml: + fixed typos + +2003-04-30 Monte Ohrt + + * docs/fr/appendixes.sgml + docs/fr/common.dsl + docs/fr/designers.sgml + docs/fr/getting-started.sgml + docs/fr/html-common.dsl + docs/fr/html.dsl + docs/fr/manual.sgml + docs/fr/php.dsl + docs/fr/preface.sgml + docs/fr/programmers.sgml: + add frech docs to cvs repository + +2003-04-29 Messju Mohr + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + reverted patch for case-insensitive tag-names + +2003-04-28 Messju Mohr + + * docs/programmers.sgml: + reverted back to humerous redundancy in the docs :). although we all + know we are here to generate template-based output, and not to have + fun ;-) + + * docs/getting-started.sgml: + fixed default user and group for max os x installation + + * libs/Smarty.class.php: + made $function[2] and $function[3] options for register_resource + + * libs/Smarty.class.php: + fixed issue with object-callback when fetching a php-resource + + * NEWS + libs/Smarty.class.php: + enabled array(&$obj. 'source', 'timestamp', 'secure', 'trusted') as + callback for register_resource() + + enabled array(&$obj, 'method') as callback for + $default_template_handler_func + +2003-04-27 Messju Mohr + + * docs/designers.sgml + docs/programmers.sgml: + fixed some typos, thank to mehdi + + * libs/plugins/function.counter.php: + prevent assign from overruling print-attribute in function.counter.php + + * libs/plugins/function.counter.php: + fixed problem with counter and assign + + * libs/Smarty.class.php: + fixed notice in _load_plugins() + + * NEWS + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + made plugin-names case-insensitive. this affects + compiler/block/custom-functions and modifers. + +2003-04-26 Monte Ohrt + + * NEWS + libs/Smarty_Compiler.class.php: + remove unnecessary close/open tags from compiled templates + +2003-04-26 Messju Mohr + + * docs/designers.sgml: + added documentation for foreach.property.* + +2003-04-24 Messju Mohr + + * docs/designers.sgml: + fixed example table_attr and tr_attr in html_table-example + +2003-04-21 Greg Beaver + + * libs/Smarty.class.php: + fixed small bug in doc comments + +2003-04-21 Messju Mohr + + * NEWS + libs/plugins/function.html_image.php: + fixed errornous creation of '//' in image_path in html_image + +2003-04-21 Monte Ohrt + + * libs/plugins/modifier.debug_print_var.php: + fix htmlspecialchars() conflict + + * NEWS + libs/plugins/modifier.debug_print_var.php: + fix escapement of special chars in key values of debug console + + * NEWS + libs/plugins/function.config_load.php: + fixed debug timing logic for config_load + + * docs/designers.sgml: + fix example text + + +2003-04-20 Greg Beaver + * plugins/* + Smarty.class.php + Smarty_Compiler.class.php + Config_File.class.php: + updated all doc comments to phpDocumentor format (whew!) + +2003-04-06 Messju Mohr + + * libs/plugins/function.math.php: + allowed "_" in the name of variable-parameters to {math}-function + +2003-04-04 Monte Ohrt + + * NEWS + docs/designers.sgml + libs/Smarty_Compiler.class.php: + change backtic syntax from $`foo` to `$foo` + + * NEWS + libs/Smarty_Compiler.class.php: + recognize $foo[][] syntax in embedded quotes without backticks + +2003-04-03 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + name=123 is passed as an integer (not a string) to plugins now + +2003-04-01 Messju Mohr + + * libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + added CVS $Id: ChangeLog,v 1.1 2005/02/03 16:55:35 sebastian Exp $ + +2003-03-31 Messju Mohr + + * libs/Smarty.class.php: + added missing compile_id inside Smarty_Compiler + + * libs/Smarty_Compiler.class.php: + fixed flaw when generating an error for missing postfilter + +2003-03-31 Monte Ohrt + + * docs/getting-started.sgml + docs/programmers.sgml: + fix typos + +2003-03-27 Messju Mohr + + * NEWS + libs/plugins/modifier.debug_print_var.php: + $length is now propagated to sub-values in debug_print_var + +2003-03-26 Monte Ohrt + + * NEWS: + update header + + * RELEASE_NOTES: + commit changes to release notes + + * (Smarty_2_5_0_RC2) + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + committing RC2 + +2003-03-24 Messju Mohr + + * NEWS + libs/Smarty.class.php: + made clear_cache() ignore compile_id when clearing cache_groups + + * libs/plugins/function.popup.php: + made onmouseout XHTML-compatible in function.popup.php + +2003-03-21 Messju Mohr + + * NEWS + libs/Smarty.class.php: + applied new var-names to fetch() + + * NEWS + libs/Smarty.class.php: + renamed $localvars to $_localvars in cache-file-handling-functions, + added _get_auto_id()-function + +2003-03-21 Monte Ohrt + + * libs/plugins/function.mailto.php + libs/plugins/function.popup.php: + update functions for XHTML compatability + +2003-03-21 Messju Mohr + + * libs/Smarty.class.php: + fixed wrong $auto_id in _read_cache_file() + + * NEWS + libs/Smarty.class.php: + swapped compile_id and cache_id in read_cache_file and write_cache_file + + * libs/Smarty.class.php: + reverted patch for ignoring compile-id back to -r1.364, due to problems + + * NEWS + libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_radios.php: + html_radios and html_checkboxes accept "selected" instead of "checked" + optionally now + + * NEWS + libs/Smarty.class.php: + swapped compile_id and cache_id for cache-file-handling again + +2003-03-20 Monte Ohrt + + * libs/Smarty_Compiler.class.php: + fix notice when no parameter is passed to default + +2003-03-20 Messju Mohr + + * NEWS + libs/Smarty.class.php: + removed notice of undefined var in _rm_auto() + +2003-03-19 Monte Ohrt + + * libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_radios.php + libs/plugins/function.html_table.php: + fix a few error messages, follow consistancy format plugin_name: errormsg + + * libs/plugins/function.html_radios.php: + update error messages + + * NEWS + libs/plugins/function.html_radios.php: + add a warning when an array is passed as the 'checked' value of html_radios + +2003-03-19 Messju Mohr + + * NEWS + libs/Smarty_Compiler.class.php: + fixed errormessage in _compile_smarty_ref() + + * NEWS + docs/designers.sgml: + updated docs for html_image + +2003-03-18 Messju Mohr + + * NEWS + libs/Smarty.class.php: + cleaned up calls to readdir() + + * libs/plugins/function.html_options.php: + fixed label for optgroup in html_options + +2003-03-18 Monte Ohrt + + * NEWS + libs/Smarty_Compiler.class.php: + fix (newly introduced) bug with passing multiple modifiers to a parameter + +2003-03-18 Messju Mohr + + * NEWS + docs/designers.sgml: + updated docs for html_checkboxes, html_options and html_radios + + * libs/plugins/function.html_options.php: + fixed wrong default-"name" in function.html_options.php + + * NEWS + libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_radios.php: + renamed "checkbox" and "radios" to "options" in {html_checkboxes} and + {html_radios} + + * libs/plugins/outputfilter.trimwhitespace.php: + tried to optimize re-replacement in outputfilter.trimwhitespace.php a + little + + * libs/plugins/outputfilter.trimwhitespace.php: + fixed greedy str_replace in outputfilter.trimwhitespace.php + + * NEWS + libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_options.php + libs/plugins/function.html_radios.php: + html_options, html_checkboxes and html_radios now pass-thru all unknown + paramters + +2003-03-17 Messju Mohr + + * NEWS + libs/plugins/function.html_options.php: + html_options passthru all unknown paramters now + +2003-03-17 Monte Ohrt + + * NEWS + libs/plugins/function.html_image.php: + Fix link bug in html_image function, also make output XHTML compatible + + * libs/Smarty_Compiler.class.php: + fix issue of embedded var and escaped double quotes + +2003-03-15 Monte Ohrt + + * NEWS + libs/Smarty_Compiler.class.php: + back out "@" logic, apply only to default modifier special case + + * libs/Smarty_Compiler.class.php: + fix @ logic, only use upon an echo + + * NEWS + libs/Smarty_Compiler.class.php: + append "@" to template var echoes to supress possible notices + + * NEWS + libs/Smarty_Compiler.class.php: + append "@" to _run_mod_handler to supress warnings + +2003-03-14 Monte Ohrt + + * NEWS + libs/Smarty_Compiler.class.php: + fix problem with escaped double quotes + + * NEWS + libs/plugins/function.html_radios.php: + fixed html_options to not return an array + +2003-03-12 Messju Mohr + + * NEWS + libs/plugins/modifier.truncate.php: + fixed length in modifier.truncate.php + + * NEWS + libs/plugins/outputfilter.trimwhitespace.php: + fixed handling of '$'-signs in trimwhitespace outputfilter (messju) + +2003-03-12 Monte Ohrt + + * docs/programmers.sgml: + update technical explanation of assign_by_ref and append_by_ref + +2003-03-11 Monte Ohrt + + * NEWS + libs/Smarty.class.php: + fix config file recompiling code + +2003-03-07 Monte Ohrt + + * libs/plugins/function.html_image.php: + change E_USER_ERROR to E_USER_NOTICE + + * libs/plugins/function.html_image.php: + suppress warning in html_image + + * NEWS + libs/plugins/function.html_image.php: + update changes to html_image + +2003-03-06 Monte Ohrt + + * docs/designers.sgml + docs/de/appendixes.sgml + docs/de/common.dsl + docs/de/designers.sgml + docs/de/getting-started.sgml + docs/de/html-common.dsl + docs/de/html.dsl + docs/de/manual.sgml + docs/de/preface.sgml + docs/de/programmers.sgml: + add german docs to dist + + * NEWS: + update news file + + * libs/plugins/function.html_image.php: + fix width/height parameter index + + * NEWS + libs/Smarty.class.php: + get rid of unsetting name and script attributes to insert tags + +2003-03-05 Monte Ohrt + + * NEWS + RELEASE_NOTES: + update NEWS file + + * libs/plugins/modifier.string_format.php: + fix argument order, erroneously swapped a while back + + * (Smarty_2_5_0_RC1) + NEWS + README + RELEASE_NOTES + libs/Config_File.class.php + libs/Smarty.class.php + libs/Smarty_Compiler.class.php: + commit final changes for 2.5.0-RC1 + +2003-03-04 Monte Ohrt + + * docs/programmers.sgml: + remove $show_info_header and $show_info_include property vars from docs + +2003-03-03 Monte Ohrt + + * NEWS + libs/plugins/function.popup.php: + fixed PHP notice + +2003-02-28 Monte Ohrt + + * libs/Smarty_Compiler.class.php: + simplify smarty.const.foo and smarty.const.$foo logic + + * libs/Smarty_Compiler.class.php: + only allow $foo syntax in embedded quotes, unless escaped with backticks + then allow any dollar var + + * NEWS + libs/Smarty_Compiler.class.php: + fix "once" var compiling to work with new attr compiling methods for + include_php + + * FAQ + NEWS + README + docs/designers.sgml + docs/getting-started.sgml + libs/Smarty_Compiler.class.php + libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_image.php + libs/plugins/function.html_options.php + libs/plugins/function.html_radios.php + libs/plugins/function.html_select_date.php + libs/plugins/function.html_select_time.php + libs/plugins/function.html_table.php: + fix $smarty.const.foo compiling, clean up double quoted strings, + allow full dollar var syntax in quotes again + +2003-02-27 Monte Ohrt + + * docs/designers.sgml + docs/programmers.sgml + libs/Smarty_Compiler.class.php: + update docs, fix smarty var compiling, allow any $smarty.*.$foo syntax, + add $`foobar` for embedded variables + + * libs/plugins/function.html_image.php: + update functionality + +2003-02-26 Monte Ohrt + + * NEWS + libs/plugins/modifier.nl2br.php: + add nl2br modifier + + * libs/plugins/function.html_image.php: + add link parameter + +2003-02-24 Monte Ohrt + + * libs/Smarty.class.php + libs/plugins/function.html_image.php: + fix rename problem in windows, unlink first + + * libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_image.php + libs/plugins/function.html_options.php + libs/plugins/function.html_radios.php + libs/plugins/shared.escape_special_chars.php: + update functions with separate escape_special_chars routine + + * NEWS + libs/plugins/function.html_checkboxes.php + libs/plugins/function.html_radios.php: + commit checkboxes, update radios + + * NEWS + libs/Smarty.class.php + libs/plugins/function.html_image.php: + fix bug with get_registered_object + + * NEWS + libs/plugins/modifier.cat.php: + added cat modifier to distribution + + * NEWS + libs/Smarty_Compiler.class.php: + added << >> <> support to IF statements + + * libs/plugins/function.html_radios.php: + apply patch to initial html_radios function + + * NEWS + libs/Smarty.class.php: + fix _assign_smarty_interface to not overwrite keys other than 'request' + + * NEWS + libs/plugins/function.html_radios.php: + added html_radios to distribution + + * NEWS + libs/plugins/modifier.string_format.php: + fixed arg order of string_format + + * NEWS + libs/Smarty.class.php: + use tmp file for file writes, avoid race condition + + * NEWS + libs/Smarty_Compiler.class.php: + add $smarty.config.foo var, handle embedded smarty var correctly + + * NEWS + libs/plugins/function.fetch.php: + silence warnings in fetch plugin + +2003-02-21 Monte Ohrt + + * INSTALL: + update wording + + * INSTALL: + update install instructions + + * AUTHORS + BUGS + CREDITS + QUICKSTART + README + RESOURCES + TESTIMONIALS: + remove some files already in docs or elsewhere + + * demo/index.php: + add templates_c to repository + + * index.php: + move demo files to demo directory + + * Config_File.class.php + Smarty.class.php + Smarty_Compiler.class.php + debug.tpl: + moved lib files under libs directory + +2003-02-20 Monte Ohrt + + * NEWS + Smarty.class.php: + add get_config_vars() method, update get_template_vars() functionality + + * NEWS + Smarty.class.php: + fix minor logic in _fetch_template_info() + + * NEWS + Smarty.class.php: + support merging appended vars + + * NEWS + Smarty.class.php: + fix cache groups behavior with compile_id set + +2003-02-19 Monte Ohrt + + * Smarty.class.php: + back out third parameter, extend functionality of append + + * NEWS + Smarty_Compiler.class.php: + update imbedded vars, allow special $smarty vars + + * plugins/function.html_table.php: + add plugin html_table + + * NEWS + Smarty.class.php: + support appending key=>val pairs + + * NEWS + Smarty_Compiler.class.php: + change embedded variable logic to only recognize $foo and $foo[0][bar] + syntax + + * NEWS + Smarty_Compiler.class.php: + allow null as function attribute value + +2003-02-18 Monte Ohrt + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + support foo->bar[index] syntax + + * Smarty_Compiler.class.php: + allow $foo->bar[0] syntax + +2003-02-17 Monte Ohrt + + * plugins/modifier.escape.php: + fix syntax error from previous commit + + * NEWS + Smarty.class.php: + add error msgs to get_registered_object + + * Smarty.class.php: + add function for getting reference to registered object + + * Smarty_Compiler.class.php: + back out patches for object and objref calls on $smarty var + + * NEWS + Smarty_Compiler.class.php: + treat unrecognized param attribute syntax as a string + + * NEWS + Smarty_Compiler.class.php: + support $smarty.const.$foo syntax + + * NEWS + debug.tpl + plugins/modifier.count_words.php + plugins/modifier.escape.php: + fix E_NOTICE messages + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + add @ and === to if tokens, few param cleanups + +2003-02-16 Greg Beaver + + * ChangeLog + Smarty.class.php + Smarty_Compiler.class.php: + many more phpdoc comment upgrades + +2003-02-15 Greg Beaver + * Smarty.class.php + Smarty_Compiler.class.php + continue cleaning of phpdoc comments. All that is needed is the + addition of @return tags and perhaps a bit more verbose comments + and they are finished. + +2003-02-14 Monte Ohrt + + * NEWS + Smarty.class.php: + enable config_load error messages + + * NEWS + plugins/function.html_options.php: + fix html_options to not escape already escaped entities + + * NEWS + Smarty.class.php: + send Last-Modified header on cache creation, misc tab/spacing cleanup + +2003-02-13 Monte Ohrt + + * Smarty_Compiler.class.php + docs/designers.sgml: + allow dash in plain text + + * NEWS + Smarty_Compiler.class.php: + check strict syntax of function attributes + +2003-02-12 Monte Ohrt + + * NEWS + Smarty_Compiler.class.php: + dropped support for modifiers on object parameters, + added support for objects as modifier parameters + + * NEWS + Smarty_Compiler.class.php + docs/designers.sgml: + fix bug with decimal numbers in if statements, misc doc updates + +2003-02-11 Monte Ohrt + + * (Smarty_2_4_2) + Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php: + update version numbers + +2003-02-10 Monte Ohrt + + * NEWS + Smarty_Compiler.class.php: + add support for $foo->$bar syntax + + * NEWS: + update NEWS file + + * NEWS + Smarty_Compiler.class.php: + support full var syntax in quoted text, fix problem with const var access, + clean up some more regex code, fix object problem with no properties + +2003-02-06 Monte Ohrt + + * (Smarty_2_4_1) + Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php: + committed 2.4.1 changes + + * NEWS + Smarty_Compiler.class.php: + ignore case in IF statements + +2003-02-05 Monte Ohrt + + * NEWS + Smarty_Compiler.class.php: + treat undefined constants as null + + * NEWS + Smarty.class.php: + fix problem with inserts and nested fetches + + * Smarty_Compiler.class.php: + fix "if" regex for math tokens + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php + docs/getting-started.sgml: + added support for extracting params to include_php + +2003-02-04 Monte Ohrt + + * RELEASE_NOTES: + reformat text + +2003-02-03 Monte Ohrt + + * NEWS: + update news file + +2003-02-03 Greg Beaver + + * ChangeLog + Smarty.class.php: + begin fixing phpdoc comments in Smarty.class.php + + * ChangeLog + Config_File.class.php: + fixed phpdoc comments + +2003-02-03 Monte Ohrt + + * Smarty_Compiler.class.php: + allow $foo->bar[$x].foo syntax + + * Smarty_Compiler.class.php + index.php + configs/test.conf + templates/index.tpl: + fix accidental commit + + * index.php + configs/test.conf + templates/index.tpl: + allow $foo->bar[$j].blah type of syntax + +2003-02-02 Greg Beaver + + * Smarty.class.php + begin fixing of phpdoc comments + + * Config_File.class.php + fix phpdoc comments, add phpDocumentor docblock templates + +2003-02-02 Monte Ohrt + + * Smarty.class.php + docs/html.dsl + docs/php.dsl: + fix version number + + * (Smarty_2_4_0) + Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php + docs/appendixes.sgml + docs/designers.sgml + docs/programmers.sgml: + update Smarty version numbers + +2003-01-30 Monte Ohrt + + * NEWS + Smarty_Compiler.class.php + TODO: + fix order of php tag comparisons + + * NEWS + Smarty_Compiler.class.php: + fix known php tag handling problems + +2003-01-29 Monte Ohrt + + * Smarty.class.php + Smarty_Compiler.class.php: + change comments to phpdoc style + +2003-01-28 Monte Ohrt + + * Smarty.class.php + docs/programmers.sgml: + make separate var for compiler file + + * plugins/function.fetch.php: + fix error call + +2003-01-25 Monte Ohrt + + * Smarty.class.php + Smarty_Compiler.class.php: + add support for restriction to registered methods + + * plugins/outputfilter.trimwhitespace.php: + update with textarea support + +2003-01-24 Monte Ohrt + + * Smarty_Compiler.class.php: + fix compiling problem with {foreach} tags + + * Smarty.class.php + Smarty_Compiler.class.php: + put objects in own array, add object param format support, change + object syntax from foo.bar to foo->bar + +2003-01-23 Monte Ohrt + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + add support for object registration + +2003-01-22 Monte Ohrt + + * Smarty.class.php: + add file & line number of calling error to error message + +2003-01-21 Monte Ohrt + + * Smarty_Compiler.class.php: + put php style object syntax back in + +2003-01-20 Monte Ohrt + + * Smarty.class.php: + move security settings to fetch function for template_dir + + * NEWS + Smarty.class.php: + fix debug template and security, add template_dir to secure_dir at runtime + +2003-01-17 Monte Ohrt + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + added new object support without new template syntax + +2003-01-15 Monte Ohrt + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + fix if statement syntax for negative integers, fix issue with directories + named '0' + +2003-01-08 Monte Ohrt + + * Smarty.class.php + plugins/function.counter.php + plugins/function.cycle.php + plugins/function.debug.php + plugins/function.eval.php + plugins/function.fetch.php + plugins/function.html_options.php + plugins/function.html_select_date.php + plugins/function.html_select_time.php + plugins/function.mailto.php + plugins/function.math.php + plugins/function.popup.php + plugins/function.popup_init.php: + update plugins to return values instead of echo, fix config file cache + to include global config variables in cache file + + * Smarty_Compiler.class.php: + fix bug with >= tests in if statements, comment out full object support + +2003-01-06 Monte Ohrt + + * NEWS + docs/html.dsl + plugins/modifier.escape.php: + add javascript escape parameter to escape modifier + +2003-01-02 Monte Ohrt + + * templates/header.tpl: + move the title into head where it should be + +2002-12-24 Monte Ohrt + + * Smarty_Compiler.class.php: + added correct line numbers to smarty syntax error messages + + * docs/programmers.sgml: + update append documentation, make more clear on its function + + * Smarty_Compiler.class.php: + fix modifier matching regexp + +2002-12-23 Monte Ohrt + + * Smarty_Compiler.class.php: + support nested function calls in IF statements + +2002-12-20 Monte Ohrt + + * Smarty_Compiler.class.php: + few more fixes, spaces around function parameters + + * Smarty_Compiler.class.php: + fix misc syntax issues with {if} tags + +2002-12-20 Monte Ohrt + + * Smarty_Compiler.class.php: + fix misc syntax issues with {if} tags + +2002-12-19 Monte Ohrt + + * Smarty_Compiler.class.php: + commit updates, passes all smoke tests + + * NEWS: + update NEWS file + + * Smarty_Compiler.class.php: + fixed literal string not in quotes as parameters + + * NEWS + Smarty_Compiler.class.php: + fix misc syntax issues, add ability to pass modifiers to functions + +2002-12-18 Monte Ohrt + + * NEWS: + update NEWS + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + update compiler code, clean up regex, add new syntax features + +2002-12-16 Monte Ohrt + + * NEWS: + update NEWS file + + * Smarty_Compiler.class.php: + commit updates for objects + +2002-12-14 Monte Ohrt + + * Smarty.class.php + Smarty_Compiler.class.php: + fix bug with compiling config files with caching on + +2002-12-13 Monte Ohrt + + * Smarty_Compiler.class.php: + fix problem with matching single quoted strings + + * Smarty_Compiler.class.php: + update embedded variable logic, get rid of ."" at end of output + + * NEWS + docs/designers.sgml + plugins/function.html_select_date.php: + add day_value_format to html_select_date + +2002-12-12 Monte Ohrt + + * plugins/modifier.debug_print_var.php: + fix bug, double escaped values in display + + * Smarty.class.php: + move debug test back into fetch() + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php + plugins/outputfilter.trimwhitespace.php: + assigned vars are no longer in global name space, few debug cleanups + +2002-12-11 Monte Ohrt + + * plugins/function.popup.php: + fix error in newline code + + * plugins/function.popup.php: + fix popup to allow newlines in text data + +2002-12-10 Monte Ohrt + + * Smarty.class.php: + fix plugin error logic + + * docs/designers.sgml + docs/programmers.sgml: + edit examples, make more verbose + + * NEWS + plugins/function.html_options.php: + escape html entities in the option values and output + + * NEWS + plugins/function.html_options.php: + fixed bug with label of html_options + +2002-12-09 Monte Ohrt + + * Smarty.class.php: + add support for var_export() + + * Config_File.class.php + Smarty.class.php: + clean up code, respect force_compile and compile_check flags + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php + docs/designers.sgml + plugins/function.mailto.php: + add caching feature to config loading, document update, add mailto plugin + +2002-12-08 Monte Ohrt + + * plugins/function.fetch.php: + fix query part of URL + +2002-12-05 Monte Ohrt + + * docs/designers.sgml: + fix typos + +2002-11-22 Monte Ohrt + + * Smarty_Compiler.class.php: + patch for warning message + +2002-11-21 Monte Ohrt + + * RELEASE_NOTES + Smarty.class.php: + get rid of testing for a set value with assign function, just set to + whatever is passed into the template + + * docs/programmers.sgml: + fix typo + +2002-11-19 Monte Ohrt + + * Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php: + commit changes, ready for 2.3.1 release + +2002-11-01 Monte Ohrt + + * plugins/function.html_options.php: + added label attribute to all option outputs, cover w3c spec. + + * NEWS: update NEWS file + + * docs/designers.sgml: update docs for optgroup output + + * plugins/function.html_options.php: + make html_options work with optgroup, make func modular and recursive. + +2002-10-29 Monte Ohrt + + * NEWS + Smarty.class.php: set mtime on compile files so they match source files + +2002-10-18 Monte Ohrt + + * NEWS + Smarty.class.php: added proper support for open_basedir setting + + * docs/designers.sgml: clear up docs on index, iteration and rownum + +2002-10-16 Monte Ohrt + + * plugins/modifier.default.php: fix warning message in default modifier + +2002-09-25 Monte Ohrt + + * docs/designers.sgml + plugins/modifier.strip.php + NEWS: added strip variable modifier + +2002-09-24 Andrei Zmievski + + * NEWS: *** empty log message *** + + * Smarty_Compiler.class.php: + Fix to be able to use $smarty.x variables as arrays. + +2002-09-23 Monte Ohrt + + * Config_File.class.php: + add support for mac/dos formatted config files (fix newlines) + + * docs/programmers.sgml: add optional tags to clear_cache parameters + + * docs/designers.sgml: + fix error with include_php description, add $this to description + +2002-09-20 Monte Ohrt + + * NEWS + docs/getting-started.sgml: fixed errors with example setup docs + +2002-09-16 Monte Ohrt + + * plugins/block.textformat.php + docs/designers.sgml + NEWS: add textformat block function + +2002-09-10 Monte Ohrt + + * docs/designers.sgml: + add assign attribute to cycle function documentation + + * docs/designers.sgml + docs/programmers.sgml: fix typos + +2002-09-09 Monte Ohrt + + * plugins/function.debug.php + templates/header.tpl: + fix header in debug template, fix typo in header.tpl example + +2002-08-15 mohrt + + * docs/programmers.sgml: fix typos + +2002-08-08 mohrt + + * RELEASE_NOTES + Smarty.class.php: + supress warnings from unlink() and is_dir(), let error handler deal with it + +2002-08-07 mohrt + + * docs/appendixes.sgml + docs/designers.sgml + docs/programmers.sgml + Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php: update files with new version numbers + +2002-08-02 mohrt + + * NEWS: update NEWS file with credits + + * NEWS + Smarty.class.php: added assign_by_ref() and append_by_ref() functions + +2002-08-01 mohrt + + * TODO + NEWS + Smarty.class.php: + changed default warning type for plugin errors from E_USER_WARNING to E_USER_ERROR + +2002-07-29 mohrt + + * plugins/function.html_select_time.php + docs/designers.sgml + NEWS: added paramters to html_select_time plugin + +2002-07-25 Andrei Zmievski + + * TODO: *** empty log message *** + +2002-07-24 mohrt + + * QUICKSTART: update QUICKSTART guide + + * NEWS + debug.tpl + plugins/modifier.debug_print_var.php: + update debug console to show objects, fix warning in debug.tpl + +2002-07-23 mohrt + + * docs/programmers.sgml: fix load_filter examples + + * Config_File.class.php + NEWS: fix error when there are no sections in config file + +2002-07-19 mohrt + + * docs/getting-started.sgml: fix error in install guide + +2002-07-18 mohrt + + * Smarty_Compiler.class.php: + correct the expression match for smarty:nodefaults + +2002-07-17 mohrt + + * Smarty_Compiler.class.php: fix default modifier to work with config vars + + * Smarty_Compiler.class.php: got args to strstr backwards... + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + change default modifiers to array instead of string + + * Smarty_Compiler.class.php + docs/designers.sgml + Smarty.class.php: add default modifier logic, minor doc updates + + * NEWS + Smarty.class.php + plugins/function.popup_init.php: + make popup_init xhtml compliant, minor variable name changes for consistancy + +2002-07-16 mohrt + + * NEWS: update NEWS file + + * plugins/function.debug.php + Smarty.class.php + debug.tpl + NEWS: + fix problem with filenames on windows, add ability to supply expire time in seconds when clearing cache or compiled files + +2002-07-15 mohrt + + * Smarty.class.php: + fixed problem with insert tags when loading function from script attribute + and caching enabled (Monte) + +2002-07-14 mohrt + + * NEWS + Smarty.class.php: fix bug with debug_tpl file path for Windows + +2002-07-12 Monte Ohrt + + * Smarty.class.php: fix append function with array/string issue + +2002-07-11 Monte Ohrt + + * RELEASE_NOTES: update release notes + + * NEWS + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php + Config_File.class.php: update files to 2.2.0 tags, get ready for release + +2002-07-09 Monte Ohrt + + * NEWS + Smarty.class.php: make debug.tpl work with any delimiter + + * NEWS + Smarty.class.php: + change tests in append and assign to != '' instead of empty(), which is more accurate + +2002-07-08 Monte Ohrt + + * docs/designers.sgml: minor doc update + + * Smarty.class.php: + cast var as an array, simplify and get rid of PHP warning messages + +2002-07-03 Monte Ohrt + + * Smarty.class.php: one more N + + * Smarty.class.php: + prepend "N" to filenames to avoid possible OS issues with dir names starting with "-" + + * Smarty.class.php: only set $debug_tpl in constructor if empty + + * Smarty.class.php + docs/designers.sgml + docs/getting-started.sgml + docs/programmers.sgml: + make use_sub_dirs go back to crc32 for subdir separation + +2002-06-29 Monte Ohrt + + * plugins/function.eval.php: do nothing if $val is empty + + * TODO + plugins/function.eval.php + plugins/function.popup_init.php: + add zindex to popup init, fix error message for eval. + +2002-06-27 Monte Ohrt + + * Smarty.class.php: + only loop through relative paths for PHP include_path, remove $_relative variable + + * Smarty_Compiler.class.php: added {$smarty.version} variable + +2002-06-26 Monte Ohrt + + * docs/appendixes.sgml + docs/designers.sgml + docs/getting-started.sgml + docs/programmers.sgml + Smarty.class.php: + update plugin loading logic, look in SMARTY_DIR, then cwd. If all fail, then retry all with include_path + + * templates/header.tpl + Smarty.class.php: update get_include_path, get _path_array only once + + * Smarty.class.php: fix get_include_path function for windows + + * Smarty.class.php: update plugin search logic + + * Smarty.class.php: only search include_path if relative path + + * plugins/function.html_select_date.php + plugins/function.html_select_time.php + plugins/modifier.date_format.php + Smarty_Compiler.class.php + NEWS + Smarty.class.php: allow plugins_dir to be an array of directories + +2002-06-25 Monte Ohrt + + * docs/programmers.sgml + docs/getting-started.sgml: update installation docs + + * debug.tpl + docs/getting-started.sgml + templates/debug.tpl + NEWS + Smarty.class.php: move debug.tpl to SMARTY_DIR, add to constructor + +2002-06-24 Monte Ohrt + + * plugins/function.assign_debug_info.php + NEWS: fixed warning message in function.assign_debug_info + + * Smarty.class.php: update include_path fixes + + * NEWS: + fixed $template_dir, $compile_dir, $cache_dir, $config_dir to respect include_path + +2002-06-23 Monte Ohrt + + * plugins/shared.make_timestamp.php: + update timestamp plugin to work when passed a timestamp + +2002-06-19 Monte Ohrt + + * NEWS: update NEWS file + + * plugins/modifier.date_format.php + docs/designers.sgml: + update date_format, allow optional 2nd paramater as default date if passed date is empty. update docs. + + * plugins/modifier.date_format.php: + fix date_format modifier, return nothing if given empty string + +2002-06-18 Monte Ohrt + + * NEWS + plugins/function.cycle.php: + gave $reset a default value in cycle function + + * plugins/function.html_select_date.php + plugins/shared.make_timestamp.php + NEWS: + corrected warnings in html_select_time function, made make timestamp always return a timestamp + +2002-06-17 Monte Ohrt + + * Smarty.class.php: swapped around cache_id and compile_id order + +2002-06-14 Monte Ohrt + + * docs/programmers.sgml + plugins/function.popup_init.php + Smarty.class.php: + change directory delimiter to "^" for cache and compile files + +2002-06-13 Andrei Zmievski + + * TODO: done. + + * Smarty_Compiler.class.php: + Optimize the calculation of section 'total' property. + +2002-06-11 Monte Ohrt + + * NEWS + Smarty.class.php: + added support for subdir exclusion, deletion by full or partial cache_id and compile_id, change file format to urlencoded values instead of crc32 + +2002-06-07 Monte Ohrt + + * Smarty.class.php: fix bug with last_modified_check code + + * NEWS + Smarty.class.php: + updated $GLOBALS refererence for HTTP_IF_MODIFIED_SINCE + +2002-06-06 Monte Ohrt + + * docs/designers.sgml + overlib.js: + remove overlib.js file from distribution, update plugin and docs + +2002-06-05 Monte Ohrt + + * docs/designers.sgml + NEWS + Smarty.class.php: fix 304 Not Modified, don't send content + +2002-06-03 Monte Ohrt + + * plugins/function.cycle.php: update version number + + * plugins/function.cycle.php + NEWS: + fixed cycle function to respect delimiter setting after initial setting + + * Smarty.class.php + NEWS: + update $GLOBALS references to work properly with track_globals settings + + * plugins/function.math.php: fixed bug with call $assign + + * docs/appendixes.sgml + docs/designers.sgml + plugins/function.html_options.php + plugins/function.html_select_time.php + NEWS + Smarty.class.php + Smarty_Compiler.class.php: + optimized for loops with count() function calls + +2002-06-01 Andrei Zmievski + + * TODO: *** empty log message *** + +2002-05-21 Monte Ohrt + + * NEWS: update NEWS file + + * plugins/function.html_select_date.php + RESOURCES + docs/designers.sgml + Config_File.class.php: + update html_select_date with month_value_format attribute for controlling the format of the month values. + +2002-05-17 Andrei Zmievski + + * NEWS + Smarty_Compiler.class.php: + Made it possible to use simple variables inside [] for indexing. + +2002-05-16 Monte Ohrt + + * docs/designers.sgml + docs/getting-started.sgml + NEWS + Smarty.class.php + Smarty_Compiler.class.php + TESTIMONIALS: add "once" attribute to php_include, update docs + +2002-05-09 Andrei Zmievski + + * NEWS + TODO: *** empty log message *** + +2002-05-07 Monte Ohrt + + * plugins/function.cycle.php: remove \n from cycle function + + * docs/designers.sgml + plugins/function.cycle.php + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php + NEWS: + update cycle function to handle array as input, update files to 2.1.1 + +2002-05-06 Monte Ohrt + + * plugins/function.fetch.php: + update fetch function with more error checking + +2002-05-03 Monte Ohrt + + * docs/designers.sgml + plugins/function.counter.php: + update counter to use name instead of id (id still works though) + + * plugins/function.cycle.php + docs/designers.sgml: rename id to name for cycle function + + * plugins/function.cycle.php: + update cycle function to allow blank values parameter after initialized + + * plugins/function.cycle.php: fix syntax error + +2002-05-02 Monte Ohrt + + * plugins/function.cycle.php: ugh, another typo + + * plugins/function.cycle.php: update comments + + * docs/designers.sgml + plugins/function.cycle.php + NEWS: added function cycle + + * FAQ + Smarty.class.php: fix register_outputfilter function + +2002-05-01 Monte Ohrt + + * docs/designers.sgml + NEWS + Smarty.class.php: fixed bug with resource testing and include_path + +2002-04-30 Monte Ohrt + + * NEWS + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php: update files for 2.1.0 release + +2002-04-30 Andrei Zmievski + + * plugins/function.fetch.php + docs/programmers.sgml + Smarty.class.php: Fix. + +2002-04-29 Andrei Zmievski + + * docs/programmers.sgml + docs/designers.sgml: A whole bunch of docs. + +2002-04-26 Monte Ohrt + + * FAQ + QUICKSTART + docs/programmers.sgml: update FAQ, QUICKSTART, small doc syntax fix + +2002-04-24 Monte Ohrt + + * docs/programmers.sgml + templates/debug.tpl + Smarty.class.php: changed doc structure a bit + +2002-04-16 Andrei Zmievski + + * Smarty.class.php: Add register/unregister API for output filters. + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php + TODO: + Changed the way filters are loaded, which now has to be done explicitly, + either through load_filter() API or by filling in $autoload_filters variable. + Also renamed internal variable to avoid namespace pollution. + +2002-04-15 Andrei Zmievski + + * Smarty.class.php: + Fixed _get_php_resource() to take include_path into account. + +2002-04-15 Monte Ohrt + + * docs/designers.sgml: + update docs, get modifiers and functions into index for easy access + + * docs/programmers.sgml + NEWS + Smarty.class.php: update caching documentation + +2002-04-15 Andrei Zmievski + + * NEWS: *** empty log message *** + + * Smarty.class.php: Only turn down error notices if $debugging is false. + +2002-04-15 Monte Ohrt + + * NEWS: update NEWS file + + * plugins/function.html_select_date.php: + fixed logic so this works right when field_separator = "/" + + * plugins/function.html_select_date.php: + fix regular expression for matching date + +2002-04-13 Monte Ohrt + + * docs/designers.sgml: updated html_select_date docs to reflect changes + + * NEWS + plugins/function.html_select_date.php: + added YYYY-MM-DD support to html_select_date + +2002-04-12 Andrei Zmievski + + * TESTIMONIALS: New entry. + +2002-04-12 Monte Ohrt + + * plugins/modifier.strip_tags.php: back out changes to strip_tags + + * docs/programmers.sgml: update docs regarding cache_lifetime + + * plugins/modifier.strip_tags.php + Smarty.class.php: + update cache_lifetime logic: -1 = never expire, 0 = always expire + +2002-04-11 Andrei Zmievski + + * BUGS + FAQ + INSTALL + NEWS + Smarty.class.php + Smarty_Compiler.class.php + docs/getting-started.sgml: + Fixed directory separtor issue. Requiring PHP 4.0.6 now. + + * NEWS + Smarty_Compiler.class.php: + Added ability to use simple variables for array indices or object properties. + + * TESTIMONIALS: Another one. + + * TESTIMONIALS: Adding one from Mark P. + +2002-04-05 Andrei Zmievski + + * Smarty_Compiler.class.php + NEWS + Smarty.class.php: Make it possible to unregister pre/postfilter plugins. + +2002-04-05 Monte Ohrt + + * INSTALL: Remove addons file from INSTALL instructions + +2002-04-04 Monte Ohrt + + * docs/designers.sgml: update doc error + + * docs/designers.sgml + plugins/modifier.escape.php + NEWS + Smarty.class.php: added htmlall attribute to escape modifier + +2002-04-03 Andrei Zmievski + + * Smarty_Compiler.class.php: Fixed undefined offset warning in {if} tag. + + * Smarty.class.php + NEWS: Added template_exists() API. + + * Smarty.class.php + Smarty_Compiler.class.php + NEWS: + - Added $smarty.template variable. + - Fixed {include_php} tag when dynamic values were used for 'file' attribute. + + * Config_File.class.php: Separator setting fix. + +2002-03-28 Monte Ohrt + + * FAQ + README: add digest address + + * FAQ + README + Smarty.class.php: update mailing list addresses + +2002-03-28 Andrei Zmievski + + * NEWS: *** empty log message *** + + * plugins/function.html_select_date.php + plugins/function.html_select_time.php + plugins/modifier.date_format.php: + Fix for when plugins directory is not the default one. + +2002-03-28 Andrei Zmievski + + * NEWS: *** empty log message *** + + * plugins/function.html_select_date.php + plugins/function.html_select_time.php + plugins/modifier.date_format.php: + Fix for when plugins directory is not the default one. + +2002-03-27 Monte Ohrt + + * FAQ: update FAQ page + +2002-03-26 Andrei Zmievski + + * CREDITS + NEWS + Smarty.class.php + Smarty_Compiler.class.php + TODO: Block functions changes. + + * Config_File.class.php: *** empty log message *** + +2002-03-25 Andrei Zmievski + + * Smarty.class.php + Smarty_Compiler.class.php: Initial implementation of block functions. + +2002-03-22 Monte Ohrt + + * docs/designers.sgml: fix documentation error in capture + +2002-03-22 Andrei Zmievski + + * Smarty.class.php: *** empty log message *** + + * Smarty.class.php: Turn off notices. + +2002-03-21 Andrei Zmievski + + * Smarty_Compiler.class.php: Make _current_file available to prefilters. + + * NEWS + Smarty.class.php: + Made is possible to assign variables in pre/postfilters. + +2002-03-20 Andrei Zmievski + + * plugins/function.html_select_date.php: Fixed +/- functionality. + + * NEWS: *** empty log message *** + +2002-03-20 Monte Ohrt + + * Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.class.php + Smarty_Compiler.class.php: update version numbers + + * plugins/function.html_select_date.php + plugins/function.html_select_time.php + plugins/modifier.date_format.php: + move .make_timestamp.php to shared.make_timestamp.php + + * NEWS + Smarty.class.php + docs/designers.sgml + plugins/function.fetch.php + plugins/function.html_select_date.php: + update file generation, replace crc32() '-' with 'N' + +2002-03-20 Andrei Zmievski + + * Smarty_Compiler.class.php: *** empty log message *** + +2002-03-19 Andrei Zmievski + + * NEWS: *** empty log message *** + + * Smarty.class.php + Smarty_Compiler.class.php: + Fix plugin behavior for inserts with script attribute. + + * NEWS: *** empty log message *** + + * Smarty_Compiler.class.php: Fix bug with $smarty.cookies. + + * TESTIMONIALS: *** empty log message *** + +2002-03-15 Monte Ohrt + + * NEWS + docs/designers.sgml: update Changelog + + * plugins/modifier.indent.php + plugins/modifier.wordwrap.php: add wordwrap and indent to repository + +2002-03-14 Monte Ohrt + + * Smarty.class.php: + remove show_info_include and show_info_header functions + +2002-03-13 Monte Ohrt + + * plugins/function.fetch.php: update fetch function + + * plugins/function.fetch.php: update fetch function with new parameters + +2002-03-12 Monte Ohrt + + * docs/designers.sgml: update doc tables + + * docs/designers.sgml: update docs columns + + * docs/getting-started.sgml + docs/appendixes.sgml: update docs + + * TESTIMONIALS + docs/appendixes.sgml: update syntax error in docs, add to testimonials + +2002-03-04 Monte Ohrt + + * FAQ + README: update FAQ, README with digest mode info + +2002-03-02 Monte Ohrt + + * QUICKSTART: update quickstart + + * Smarty.class.php: + change behavior so cache_lifetime = 0 never expires (instead of always regenerate) + +2002-03-01 Monte Ohrt + + * docs/designers.sgml: update doc example + +2002-03-01 Andrei Zmievski + + * CREDITS + RELEASE_NOTES + TODO + NEWS: *** empty log message *** + +2002-03-01 Monte Ohrt + + * docs/appendixes.sgml + docs/designers.sgml + docs/getting-started.sgml + docs/programmers.sgml: update document id tags + + * docs.sgml: remove docs.sgml + + * RESOURCES + Smarty.class.php: update resources + +2002-02-28 Andrei Zmievski + + * TESTIMONIALS + docs/appendixes.sgml + docs/designers.sgml + docs/programmers.sgml: *** empty log message *** + +2002-02-27 Andrei Zmievski + + * plugins/function.eval.php + docs/designers.sgml: *** empty log message *** + +2002-02-27 Monte Ohrt + + * plugins/function.eval.php: added eval function to plugin dir + +2002-02-27 Andrei Zmievski + + * NEWS: *** empty log message *** + +2002-02-27 Monte Ohrt + + * docs/designers.sgml: fix syntax error + + * docs/appendixes.sgml + docs/designers.sgml + docs/getting-started.sgml + docs/programmers.sgml: convert technical notes to docbook format + + * NEWS + docs/designers.sgml: added "eval" plugin docs + +2002-02-26 Andrei Zmievski + + * docs/programmers.sgml + docs/designers.sgml + docs/appendixes.sgml + docs/getting-started.sgml + docs/html-common.dsl + docs/.cvsignore: *** empty log message *** + + * docs/appendixes.sgml + docs/common.dsl + docs/designers.sgml + docs/getting-started.sgml + docs/html-common.dsl + docs/html.dsl + docs/manual.sgml + docs/preface.sgml + docs/programmers.sgml: Split up docs. + +2002-02-25 Andrei Zmievski + + * docs.sgml: *** empty log message *** + +2002-02-22 Monte Ohrt + + * docs.sgml: update docs + +2002-02-22 Andrei Zmievski + + * docs.sgml + AUTHORS + NEWS: *** empty log message *** + +2002-02-21 Monte Ohrt + + * Config_File.class.php + NEWS + Smarty.class.php + Smarty_Compiler.class.php + docs.sgml: update misc changes + +2002-02-21 Andrei Zmievski + + * docs.sgml: *** empty log message *** + +2002-02-20 Monte Ohrt + + * docs.sgml: misc updates + +2002-02-20 Andrei Zmievski + + * docs.sgml: *** empty log message *** + + * Smarty.class.php + plugins/function.assign.php + plugins/function.assign_debug_info.php + plugins/function.counter.php + plugins/function.fetch.php + plugins/function.math.php + plugins/function.popup.php + plugins/function.popup_init.php + plugins/modifier.escape.php: Fixup some naming. + +2002-02-20 Monte Ohrt + + * docs.sgml: update docs + +2002-02-20 Andrei Zmievski + + * docs.sgml: *** empty log message *** + +2002-02-20 Monte Ohrt + + * NEWS + docs.sgml + plugins/modifier.escape.php: + removed global vars from fetch function, added attrs to escape modifier + + * docs.sgml: add plugin chapter outline + +2002-02-19 Monte Ohrt + + * README + RELEASE_NOTES + RESOURCES + Smarty.class.php + docs.sgml + BUGS + FAQ + INSTALL + QUICKSTART: update docs + +2002-02-19 Andrei Zmievski + + * docs.sgml: Updated resources docs. + + * README: *** empty log message *** + + * docs.sgml: Updated description of {$smarty} variable. + + * BUGS + FAQ + INSTALL + QUICKSTART + RELEASE_NOTES + docs.sgml: Remove PEAR notes. + +2002-02-18 Andrei Zmievski + + * Config_File.class.php + NEWS: Removed dependency on PEAR. + +2002-02-18 Monte Ohrt + + * NEWS + docs.sgml + plugins/function.popup_init.php: add src attribute to popup_init + +2002-02-15 Andrei Zmievski + + * Smarty_Compiler.class.php + plugins/modifier.debug_print_var.php + NEWS + Smarty.class.php: Performance enhancements. + +2002-02-06 Andrei Zmievski + + * plugins/function.html_options.php: + Fix html_options output to be XHTML compatible. + +2002-02-05 Andrei Zmievski + + * Smarty.class.php + Smarty_Compiler.class.php: Fix up plugin inclusion. + + * Smarty.class.php + Smarty_Compiler.class.php + TODO + plugins/function.html_select_date.php + plugins/function.html_select_time.php + plugins/modifier.date_format.php: Fix plugin directory access. + +2002-02-04 Andrei Zmievski + + * .cvsignore + Smarty_Compiler.class.php: *** empty log message *** + +2002-01-31 Andrei Zmievski + + * NEWS: *** empty log message *** + + * Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php + TODO + plugins/function.assign.php + plugins/function.assign_debug_info.php + plugins/function.counter.php + plugins/function.fetch.php + plugins/function.html_options.php + plugins/function.html_select_date.php + plugins/function.html_select_time.php + plugins/function.math.php + plugins/function.popup.php + plugins/function.popup_init.php + plugins/modifier.capitalize.php + plugins/modifier.count_characters.php + plugins/modifier.count_paragraphs.php + plugins/modifier.count_sentences.php + plugins/modifier.count_words.php + plugins/modifier.date_format.php + plugins/modifier.debug_print_var.php + plugins/modifier.default.php + plugins/modifier.escape.php + plugins/modifier.lower.php + plugins/modifier.regex_replace.php + plugins/modifier.replace.php + plugins/modifier.spacify.php + plugins/modifier.string_format.php + plugins/modifier.strip_tags.php + plugins/modifier.truncate.php + plugins/modifier.upper.php + plugins/shared.make_timestamp.php + templates/index.tpl + AUTHORS + CREDITS + Config_File.class.php + README: Implemented plugin architecture. + + * NEWS: *** empty log message *** + +2002-01-30 Monte Ohrt + + * NEWS + Smarty.addons.php + Smarty.class.php + docs.sgml: added modifiers wordwrap and indent + +2002-01-28 Monte Ohrt + + * Smarty.class.php + docs.sgml: + add support for is-modified-since headers, adjust a doc example + +2002-01-24 Monte Ohrt + + * Smarty.class.php: cleanup formatting + + * NEWS + Smarty.class.php + docs.sgml: update ChangeLog, remove insert_tag_check parameter + +2002-01-24 Andrei Zmievski + + * plugins/standard.plugin.php: *** empty log message *** + +2002-01-24 Monte Ohrt + + * Smarty.class.php: fix syntax error + + * Smarty.class.php: removed unneccesary test from fetch() + +2002-01-23 Monte Ohrt + + * Smarty.addons.php: update overlib fixes + + * NEWS: update changelog + + * FAQ + NEWS + RESOURCES + Smarty.addons.php: updated overlib fixes + +2001-12-31 Andrei Zmievski + + * NEWS + Smarty.class.php: Fixed compile_id problem. + +2001-12-28 Monte Ohrt + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + fixed problem with using assigned var with include_php filepath + +2001-12-21 Monte Ohrt + + * RESOURCES: update RESOURCES + +2001-12-20 Monte Ohrt + + * FAQ + README: update FAQ + +2001-12-18 Monte Ohrt + + * Smarty_Compiler.class.php + docs.sgml + Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php: update version numbers + +2001-12-18 Andrei Zmievski + + * NEWS + Smarty.class.php: Fixed clear_cache(). + +2001-12-14 Monte Ohrt + + * NEWS + Smarty.addons.php: + fixed bug in smarty_make_timestamp introduced in PHP 4.1.0 + +2001-12-13 Monte Ohrt + + * NEWS + Smarty.class.php + docs.sgml: update default function args, fix cached insert debug timing + +2001-12-12 Monte Ohrt + + * docs.sgml: fix syntax error in documentation + + * Smarty.class.php: update default template handling functionality + +2001-12-11 Monte Ohrt + + * Smarty.class.php + Smarty_Compiler.class.php: update file fetching logic + +2001-12-11 Andrei Zmievski + + * NEWS + Smarty.class.php: Added 'script' attribute to {insert..}. + +2001-12-10 Monte Ohrt + + * NEWS + Smarty.class.php: added default template function handler + + * Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: update version numbers in files to 1.5.1 + +2001-12-10 Andrei Zmievski + + * NEWS + Smarty.class.php: Removed error message from the _read_file() method. + + * Smarty.class.php: Fix check for compile and cache IDs. + +2001-12-06 Monte Ohrt + + * QUICKSTART: fix spelling error in QUICKSTART + + * docs.sgml: fixed spelling errors in documenation + + * Smarty_Compiler.class.php + docs.sgml + Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php: commit 1.5.0 release + + * RESOURCES + docs.sgml: added RESOURCES file + +2001-12-05 Andrei Zmievski + + * Smarty_Compiler.class.php: Refactor. + +2001-12-05 Monte Ohrt + + * NEWS + Smarty_Compiler.class.php + docs.sgml: added assign to include and php_include + + * Smarty.class.php + Smarty_Compiler.class.php + docs.sgml: *** empty log message *** + +2001-12-04 Andrei Zmievski + + * NEWS + Smarty_Compiler.class.php: Formatting. + +2001-12-04 Monte Ohrt + + * Smarty_Compiler.class.php + NEWS + Smarty.class.php: update ChangeLog + +2001-12-04 Andrei Zmievski + + * NEWS + Smarty.class.php: Formatting. + +2001-12-04 Monte Ohrt + + * Smarty.class.php: removed SMARTY_DIR setting in constructor + + * Smarty.class.php: fix Smarty.class.php indention error + + * Smarty.class.php: update trusted logic + +2001-12-03 Monte Ohrt + + * Smarty.class.php: + fix up is_secure, is_trusted, make _parse_tpl_path function + + * Smarty.class.php: fix problem with testing SMARTY_DIR as empty + + * NEWS + docs.sgml: update documentation, change log + + * Smarty.class.php: + update constructor to check for SMARTY_DIR before assigning + +2001-12-03 Andrei Zmievski + + * NEWS + Smarty.class.php: *** empty log message *** + +2001-12-03 Monte Ohrt + + * FAQ + INSTALL + RELEASE_NOTES: update a few files + + * NEWS + QUICKSTART + Smarty.class.php + docs.sgml: added trusted_dir functionality, cleaned up secure_dir logic + +2001-12-03 Andrei Zmievski + + * NEWS: *** empty log message *** + + * NEWS + Smarty.class.php: - Introduced $compile_id class variable. + - Fixed a situation where if $cache_id and $compile_id were both null + they were passed to auto functions as empty string instead of null. + +2001-11-30 Monte Ohrt + + * NEWS + Smarty.class.php: + change variable names in fetch() fuction to smarty_* to avoid namespace conflicts + + * NEWS + Smarty.class.php: fixed bug in _rm_auto with catenated null values + +2001-11-29 Andrei Zmievski + + * NEWS + Smarty_Compiler.class.php: Added $smarty.section.* syntax. + + * Smarty_Compiler.class.php: Made 'name' attribute optional for {foreach}. + +2001-11-29 Monte Ohrt + + * Smarty.class.php + index.php: remove assign "now" in index.tpl + +2001-11-29 Andrei Zmievski + + * NEWS + Smarty.addons.php + Smarty.class.php: Fix formatting. + +2001-11-28 Monte Ohrt + + * NEWS + Smarty.class.php + docs.sgml: + removed return statements from _read_cache_file (how did they get in there?) + +2001-11-27 Monte Ohrt + + * docs.sgml + NEWS + Smarty.addons.php + Smarty.class.php: + fixed bugs and added assign attribute to several functions + +2001-11-27 Andrei Zmievski + + * NEWS: Some rewording. + + * Smarty_Compiler.class.php: Fix $smarty.capture access. + + * TODO: *** empty log message *** + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + Made {config_load ..} merge globals from each config file only once per scope. + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: - Added {foreach ...}. + - Made certain $smarty.* references handled at compilation time. + +2001-11-26 Monte Ohrt + + * Config_File.class.php + NEWS + Smarty.class.php + Smarty_Compiler.class.php + docs.sgml: commit cache handler functionality + +2001-11-20 Andrei Zmievski + + * NEWS + Smarty.addons.php + Smarty_Compiler.class.php: Various fixes and additions. + + * NEWS + index.php: *** empty log message *** + +2001-11-05 Monte Ohrt + + * Smarty.class.php: changed _read_file parameter from $end to $lines + + * NEWS + Smarty.class.php: fixed is_cache, make cache reading more efficient + +2001-11-02 Monte Ohrt + + * FAQ + NEWS: update FAQ with mailing list Reply-To header FAQ + + * NEWS + Smarty.class.php + index.php: supress fopen errors, return false if cache file won't load + +2001-11-01 Monte Ohrt + + * QUICKSTART + docs.sgml + index.php: update QUICKSTART guide with index key example + + * Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php + docs.sgml: commit all updates for 1.4.6 + +2001-11-01 Andrei Zmievski + + * NEWS: *** empty log message *** + +2001-10-30 Monte Ohrt + + * Smarty.addons.php: fix assign function problem with empty value passed + + * NEWS + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php + templates/debug.tpl: + fixed bug in assign function when passing an empty value + +2001-10-26 Monte Ohrt + + * Smarty.addons.php + Smarty.class.php + index.php: fix minor typo in debug code + +2001-10-26 Andrei Zmievski + + * Smarty.class.php: Typo. + +2001-10-26 Monte Ohrt + + * Smarty.addons.php: + update debug console output, handle html encoding correctly + +2001-10-26 Andrei Zmievski + + * Smarty.addons.php + templates/debug.tpl: Debug formatting. + + * Smarty.class.php: Disable rmdir warning. + +2001-10-26 Monte Ohrt + + * Smarty.addons.php + Smarty.class.php + templates/debug.tpl: update debugging to expand array variables + + * Smarty.class.php + docs.sgml: + update docs for fetching only timestamp with custom template source functions + + * Smarty.addons.php: fix debug console error + +2001-10-26 Andrei Zmievski + + * docs.sgml: Typos. + + * Smarty.addons.php: Cleanup whitespace. + + * Smarty_Compiler.class.php: Clean up whitespace. + + * Smarty.class.php: Cleaning up code, formatting mostly. + + * NEWS: *** empty log message *** + +2001-10-25 Monte Ohrt + + * NEWS + docs.sgml: update documentation to current version + + * NEWS + Smarty.addons.php: + updated fetch to give proper warning when fetching unreadable or nonexistant files + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + fixed problem with newline at the end of compiled templates + + * NEWS + Smarty.class.php: recompile cache if config file gets modified too. + + * NEWS + Smarty.class.php: + added feature to regenerate cache if compile_check is enabled and an + involved template is modified + +2001-10-23 Monte Ohrt + + * Smarty.class.php: fix indent for insert tags in debug console + + * templates/debug.tpl: update debug.tpl file format + + * NEWS + Smarty.addons.php + Smarty.class.php + templates/debug.tpl: + update execution time debugging, move into include list + +2001-10-10 Monte Ohrt + + * NEWS + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: + fixed up execution time output in debug console + +2001-10-09 Andrei Zmievski + + * Config_File.class.php + NEWS + Smarty.class.php + TODO: Added support for hidden config vars. + +2001-10-04 Monte Ohrt + + * NEWS + Smarty.addons.php + Smarty.class.php + templates/debug.tpl: added execution times to debug console + +2001-10-02 Andrei Zmievski + + * Smarty_Compiler.class.php: Add space. + +2001-10-01 Andrei Zmievski + + * Smarty.class.php: Fix reference to compile_id. + +2001-09-28 Andrei Zmievski + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: Added postfilter functions. + +2001-09-26 Andrei Zmievski + + * NEWS + Smarty.class.php + docs.sgml: Rename to clear_compiled_tpl(). + +2001-09-25 Andrei Zmievski + + * NEWS + Smarty_Compiler.class.php: + Fixed line number reporting when removing comments. + +2001-09-20 Monte Ohrt + + * NEWS + RELEASE_NOTES + Smarty.addons.php: made html_options output xhtml compatible + +2001-09-19 Monte Ohrt + + * Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php + templates/debug.tpl: updated version numbers + +2001-09-16 Monte Ohrt + + * FAQ + NEWS + docs.sgml: fix doc error with insert function + +2001-09-06 Andrei Zmievski + + * NEWS: *** empty log message *** + +2001-08-31 Monte Ohrt + + * NEWS: update ChangeLog + + * overlib.js + Smarty.addons.php + Smarty.class.php + docs.sgml: + update overlib to 3.50, adjust addon code so that the overlib.js file isn't modified + +2001-08-31 Andrei Zmievski + + * Smarty.class.php: - compile_id changes + + * NEWS + Smarty.addons.php: - compile_id support + - new options for html_select_date + +2001-08-23 Andrei Zmievski + + * TODO: *** empty log message *** + +2001-08-10 Andrei Zmievski + + * NEWS + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: + Modified to pass Smarty object as second parameter to insert functions. + Also moved _smarty_mod_handler() and _smarty_insert_handler() into the class. + + * NEWS + Smarty_Compiler.class.php: + Passing Smarty as second parameter to prefilter functions. + +2001-08-09 Andrei Zmievski + + * NEWS: *** empty log message *** + +2001-08-09 Monte Ohrt + + * templates/index.tpl + Smarty.class.php: add smarty.now variable to template + +2001-08-06 Monte Ohrt + + * templates/index.tpl: change config_load section back to setup + +2001-08-06 Andrei Zmievski + + * Smarty.addons.php: Optimize a bit. + +2001-08-04 Monte Ohrt + + * docs.sgml: update capture documentation + +2001-08-03 Monte Ohrt + + * FAQ + NEWS + Smarty.class.php: + fix bug with URL controlled debugging, works now (Monte) + +2001-08-01 Andrei Zmievski + + * Config_File.class.php: *** empty log message *** + + * Smarty_Compiler.class.php + Smarty.class.php: - Fixed some E_NOTICE stuff in compiler. + - Generalized assign_smarty_interface() a bit. + +2001-07-24 Andrei Zmievski + + * NEWS + Smarty_Compiler.class.php + TODO: See ChangeLog for details. + +2001-07-20 Andrei Zmievski + + * Config_File.class.php: Booleanize case-insensitively. + +2001-07-17 Monte Ohrt + + * NEWS: update ChangeLog + + * Smarty.class.php + docs.sgml: put SMARTY_DIR on Config_File require + +2001-07-11 Monte Ohrt + + * docs.sgml + FAQ + NEWS + Smarty.class.php: + updated security to not include insecure docs, only warning + +2001-07-10 Andrei Zmievski + + * Smarty.class.php: Adding 'sizeof' as an allowed {if} function. + +2001-07-06 Andrei Zmievski + + * NEWS: *** empty log message *** + +2001-07-06 Monte Ohrt + + * Config_File.class.php + NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: update version number to 1.4.4 + + * NEWS + Smarty.addons.php + Smarty_Compiler.class.php + docs.sgml + templates/header.tpl + templates/index.tpl: update documenatation, template examples + +2001-07-03 Andrei Zmievski + + * NEWS + Smarty.class.php: Implemented access to request vars via $smarty var. + + * NEWS + Smarty_Compiler.class.php: + Fixed a bug with parsing function arguments in {if} tags. + +2001-06-30 Monte Ohrt + + * NEWS: update ChangeLog + +2001-06-29 Monte Ohrt + + * Smarty.addons.php + Smarty.class.php + docs.sgml + overlib.js: + moved overlib to separate file, added SMARTY_DIR, documented. added much documentation + +2001-06-29 Andrei Zmievski + + * NEWS + RELEASE_NOTES + TODO: *** empty log message *** + +2001-06-29 Monte Ohrt + + * NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + docs.sgml + index.php + templates/debug.tpl + templates/header.tpl + templates/index.tpl: update release notes + +2001-06-27 Andrei Zmievski + + * Smarty_Compiler.class.php: *** empty log message *** + + * NEWS + Smarty_Compiler.class.php: Implemented 'step' section attribute. + + * Smarty_Compiler.class.php: Negative values of 'max' will mean no max. + + * AUTHORS + NEWS: *** empty log message *** + +2001-06-26 Andrei Zmievski + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php + index.php: Added 'max' and 'start' section attributes. + Added 'total' and 'iteration' section properties. + +2001-06-25 Andrei Zmievski + + * Config_File.class.php + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: Update version numbers. + +2001-06-23 Andrei Zmievski + + * TODO: *** empty log message *** + +2001-06-21 Andrei Zmievski + + * Config_File.class.php + NEWS: Fixed booleanization bug. + +2001-06-20 Monte Ohrt + + * docs.sgml: + update documents to reflect changes to cached content & debugging + +2001-06-20 Andrei Zmievski + + * Smarty.addons.php + Smarty.class.php: Remove debug output for cached and fetched cases. + +2001-06-20 Monte Ohrt + + * Smarty.class.php: update include_info to false + + * Smarty.class.php + docs.sgml + index.php + templates/footer.tpl: + moved debug logic into Smarty completely, created flags for it + +2001-06-19 Andrei Zmievski + + * Smarty.addons.php + Smarty.class.php + templates/debug.tpl: *** empty log message *** + + * NEWS + Smarty.class.php: Remove unneeded debug functions. + +2001-06-19 Monte Ohrt + + * NEWS + Smarty.addons.php + Smarty.class.php + docs.sgml + templates/debug.tpl + templates/footer.tpl: commit updates, add debug template + +2001-06-19 Andrei Zmievski + + * Smarty.class.php + Smarty_Compiler.class.php + TODO: + Moved config loading code inside main class, the compiled template now + simply calls that method. + +2001-06-15 Andrei Zmievski + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php + templates/index.tpl: * moved config array into class itself + * added 'scope' attribute for config_load + + * Smarty_Compiler.class.php + Smarty.addons.php + Smarty.class.php: Finishing up secure mode. + +2001-06-15 Monte Ohrt + + * NEWS: update ChangeLog + + * Smarty_Compiler.class.php: cleaned up logic of if statement security + + * Smarty_Compiler.class.php: update if logic to cover more situations + + * Smarty_Compiler.class.php + docs.sgml: update if statement security feature + +2001-06-14 Andrei Zmievski + + * Smarty.addons.php + Smarty.class.php: *** empty log message *** + + * NEWS + Smarty_Compiler.class.php: + Fixed a bug with quoted strings inside if statements. + +2001-06-13 Monte Ohrt + + * Smarty.addons.php + Smarty.class.php: added secure_dir array for multiple secure directories + + * Smarty.addons.php: update fetch funtion to respect security setting + + * NEWS + Smarty.addons.php + Smarty.class.php + docs.sgml: update documentation, changelog + + * Smarty.addons.php + Smarty.class.php: moved _extract setting to assign functions + + * Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: + added assign/unassign custom functions, ability to re-extract tpl_vars + + * Smarty.class.php + Smarty_Compiler.class.php + docs.sgml + index.php: commit security features + +2001-06-11 Andrei Zmievski + + * Smarty.class.php: Version variable typo. + +2001-06-05 Andrei Zmievski + + * Smarty.class.php: + Create config object in fetch() or just set the config path if it already + exists. + +2001-06-04 Andrei Zmievski + + * Smarty.class.php: *** empty log message *** + + * NEWS + Smarty_Compiler.class.php: + Fixed a problem with $ inside strip tags. + +2001-05-31 Andrei Zmievski + + * NEWS: *** empty log message *** + + * Config_File.class.php: Allow empty config_path. + +2001-05-29 Monte Ohrt + + * Smarty_Compiler.class.php + docs.sgml + NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php: update version numbers + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php + docs.sgml: moved version variable to internal variable + +2001-05-22 Andrei Zmievski + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php: + Moved $_smarty_sections and $_smarty_conf_obj into Smarty class. + +2001-05-18 Monte Ohrt + + * NEWS: update ChangeLog + + * FAQ + QUICKSTART: update FAQ, QUICKSTART for windows include_path setup + + * configs/test.conf: added configs directory to cvs + +2001-05-18 Andrei Zmievski + + * Smarty.class.php: Use compiler_class for including the file. + +2001-05-18 Monte Ohrt + + * docs.sgml: fix typo + +2001-05-16 Monte Ohrt + + * README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: update files to version 1.4.1 + + * NEWS: update ChangeLog + +2001-05-15 Andrei Zmievski + + * NEWS: *** empty log message *** + + * index.php: forget that! + + * NEWS + Smarty_Compiler.class.php + index.php: Fixed a few E_NOTICE warnings. + +2001-05-09 Monte Ohrt + + * NEWS + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + docs.sgml: update dates versions + +2001-05-09 Andrei Zmievski + + * NEWS: *** empty log message *** + + * Smarty.class.php: + Use absolute paths when requiring/including Smart components. + + * NEWS: *** empty log message *** + + * Smarty.class.php: Use write mode instead of append. + +2001-05-02 Andrei Zmievski + + * NEWS + Smarty_Compiler.class.php: Fix indexing by section properties. + +2001-05-02 Monte Ohrt + + * NEWS: update changelog + + * Smarty.class.php: remove period from syntax error + +2001-05-02 Andrei Zmievski + + * Smarty_Compiler.class.php: Double-quote the attribute values by default. + +2001-04-30 Monte Ohrt + + * Smarty_Compiler.class.php + NEWS: added simple {capture} logic + +2001-04-30 Andrei Zmievski + + * TODO: *** empty log message *** + + * Smarty_Compiler.class.php + Smarty.class.php: Fix passing config vars to included files. + + * Smarty.class.php + Smarty_Compiler.class.php: Fix inclusion again. + +2001-04-30 Monte Ohrt + + * FAQ + RELEASE_NOTES + Smarty.class.php + misc/fix_vars.php + NEWS: update paths for windows (c:) + +2001-04-28 Andrei Zmievski + + * Smarty.class.php + Smarty_Compiler.class.php: Fix passing variables to included files. + + * templates/index.tpl: *** empty log message *** + +2001-04-27 Andrei Zmievski + + * Smarty_Compiler.class.php: Fix includes. + +2001-04-26 Andrei Zmievski + + * Smarty_Compiler.class.php + docs.sgml + Smarty.class.php: Formatting mostly. + + * Smarty_Compiler.class.php + Config_File.class.php: *** empty log message *** + +2001-04-26 Monte Ohrt + + * Smarty_Compiler.class.php + docs.sgml + FAQ + NEWS + QUICKSTART + RELEASE_NOTES + Smarty.class.php: update docs with new changes + +2001-04-26 Andrei Zmievski + + * RELEASE_NOTES: *** empty log message *** + + * docs.sgml + templates/index.tpl + NEWS + Smarty_Compiler.class.php: Added ability to reference object properties. + +2001-04-25 Andrei Zmievski + + * README + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php + docs.sgml + AUTHORS + Config_File.class.php + CREDITS + RELEASE_NOTES + NEWS: *** empty log message *** + + * docs.sgml: Docs on new parameter to custom functions. + + * NEWS: *** empty log message *** + + * Smarty_Compiler.class.php: + Changing the way tpl vars are referenced and passing smarty object + to custom functions. + + * RELEASE_NOTES + docs.sgml: Fixing docs a bit. + +2001-04-24 Andrei Zmievski + + * docs.sgml: Docs for $compiler_class and compiler functions. + + * templates/index.tpl: *** empty log message *** + + * Smarty_Compiler.class.php: Remove debugging. + +2001-04-24 Monte Ohrt + + * docs.sgml: update compiler function docs + +2001-04-24 Andrei Zmievski + + * NEWS + Smarty.class.php + Smarty_Compiler.class.php + templates/index.tpl: Added compiler function support. + +2001-04-24 Monte Ohrt + + * RELEASE_NOTES + Smarty.class.php: + update notes, change show_info_header to false by default + + * Smarty.class.php + Smarty_Compiler.class.php + docs.sgml + CREDITS + FAQ + NEWS + README + RELEASE_NOTES: update documenation, bug fixes + +2001-04-24 Andrei Zmievski + + * misc/fix_vars.php: Hopefully fix for sure. + +2001-04-23 Monte Ohrt + + * misc/fix_vars.php: uncomment copy/unlink + +2001-04-23 Andrei Zmievski + + * misc/fix_vars.php: Do it more thoroughly. + + * misc/fix_vars.php: check for } + +2001-04-22 Andrei Zmievski + + * misc/fix_vars.php: Fix variable parsing. + +2001-04-20 Monte Ohrt + + * misc/fix_vars.php: fix problem with 4.0.5-dev and preg_replace_callback + +2001-04-19 Monte Ohrt + + * Smarty_Compiler.class.php + docs.sgml + misc/fix_vars.php + NEWS + RELEASE_NOTES + Smarty.class.php: update notes/documentation + + * NEWS + README + RELEASE_NOTES + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php + docs.sgml: update files for 1.4.0 release + +2001-04-16 Andrei Zmievski + + * misc/fix_vars.php: Added fix_vars.php script. + +2001-04-16 Monte Ohrt + + * QUICKSTART + RELEASE_NOTES + docs.sgml + templates/index.tpl: + update RELEASE_NOTES & scripts with new section var syntax + +2001-04-13 Andrei Zmievski + + * Smarty_Compiler.class.php: * Implement new variable format parser. + * Optimizing config load a bit. + +2001-04-13 Monte Ohrt + + * FAQ + NEWS + RELEASE_NOTES + Smarty.class.php: + added $check_cached_insert_tags to speed up cached pages if + {insert ...} is not used (Monte) + +2001-04-12 Andrei Zmievski + + * NEWS + Smarty.class.php + RELEASE_NOTES: *** empty log message *** + + * Smarty_Compiler.class.php: Remove redundant functions. + + * Smarty.class.php: Formatting. + +2001-04-12 Monte Ohrt + + * Smarty.class.php: update file: parsing + + * Smarty.class.php + docs.sgml: update documentation + +2001-04-12 Andrei Zmievski + + * Smarty.class.php + Smarty_Compiler.class.php + TODO: *** empty log message *** + +2001-04-11 Monte Ohrt + + * FAQ + QUICKSTART + RELEASE_NOTES: added RELEASE_NOTES file to cvs + + * NEWS + docs.sgml: update ChangeLog, update documentation + + * Smarty.class.php + Smarty_Compiler.class.php + templates/index.tpl: + update Smarty to compile at run-time. added ability to get files from + absolute paths, added work around for LOCK_EX and windows, changed a few + file permissions to be more secure. + +2001-03-29 Monte Ohrt + + * NEWS + Smarty.addons.php: + allow arbitrary date strings instead of just timestamps + +2001-03-28 Monte Ohrt + + * Smarty.class.php + Smarty_Compiler.class.php + docs.sgml + FAQ + NEWS + README + Smarty.addons.php: + update version in class, update docs for count_ and new vars + + * templates/index.tpl + docs.sgml: update docs, example template + +2001-03-28 Andrei Zmievski + + * Smarty_Compiler.class.php: Some variable renaming. + +2001-03-23 Andrei Zmievski + + * Smarty_Compiler.class.php + NEWS: Fixed nested include infinite repeat bug. + +2001-03-23 Monte Ohrt + + * Smarty.class.php: fix version number + + * Smarty.class.php + NEWS: added optional HTML header to output + +2001-03-22 Andrei Zmievski + + * Smarty_Compiler.class.php: Fixed inclusion of dynamic files. + +2001-03-16 Andrei Zmievski + + * Smarty_Compiler.class.php: Fixing the config_load scoping. + + * Smarty_Compiler.class.php: making config variables global for now. + +2001-03-15 Andrei Zmievski + + * NEWS: *** empty log message *** + + * Smarty_Compiler.class.php: + * Includes are now always done via generated function call to protect + namespace. + * config_load now always uses global config object to improve + performance. + +2001-03-13 Monte Ohrt + + * docs.sgml: update math documentation with format attribute + +2001-03-11 Monte Ohrt + + * docs.sgml + NEWS + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: update math function with format attribute + +2001-03-10 Andrei Zmievski + + * Smarty.addons.php: *** empty log message *** + + * NEWS + Smarty.addons.php + Smarty.class.php: Added html_select_time custom function. + +2001-03-08 Monte Ohrt + + * Smarty.class.php + Smarty_Compiler.class.php + NEWS + README + Smarty.addons.php: rename 1.3.1b to 1.3.1pl1 + + * NEWS + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php: update version numbers, changelog + + * Smarty.class.php + Smarty_Compiler.class.php: + moved _syntax_error to Smarty_Compiler.class.php + + * Smarty.class.php + docs.sgml: + missing _syntax_error function recovered. fixed minor syntax in docs + +2001-03-07 Monte Ohrt + + * QUICKSTART + README + Smarty.addons.php + Smarty.class.php + Smarty_Compiler.class.php + BUGS + INSTALL + NEWS: update everything to 1.3.1 + +2001-03-03 Monte Ohrt + + * Smarty_Compiler.class.php + Smarty.class.php: fixed bug with cached insert tags + +2001-03-02 Monte Ohrt + + * Smarty.class.php + Smarty_Compiler.class.php: + fix cache fuctions with separated compiled class + + * FAQ + NEWS + docs.sgml: update changelog + +2001-03-02 Andrei Zmievski + + * NEWS + Smarty_Compiler.class.php: Added 'first' and 'last' section properties. + +2001-03-02 Monte Ohrt + + * TODO: remove compiling separation TODO + + * Smarty_Compiler.class.php + Smarty.addons.php + Smarty.class.php: update function headers + + * templates/index.tpl + NEWS + Smarty.class.php + Smarty_Compiler.class.php + index.php: split out compiling code for faster execution + + * Smarty.class.php: fixed a few warning messages + + * Smarty.addons.php + Smarty.class.php + docs.sgml + NEWS: added fetch, unregister mod/fun, updated docs + +2001-03-01 Monte Ohrt + + * Smarty.addons.php: added "int" to available list + + * docs.sgml + FAQ + Smarty.class.php: update FAQ, add math functions & update documetation + + * index.php + Smarty.addons.php + Smarty.class.php + docs.sgml: fixed literal tags and other optional delimiters + +2001-02-26 Andrei Zmievski + + * NEWS + Smarty.class.php: + Added index_prev, index_next section properties and ability to + index by them. + + * NEWS + Smarty.addons.php + Smarty.class.php: Reverting the plugins patch - needs more thought. + + * Smarty.class.php: Fixing plugin loading. + +2001-02-23 Andrei Zmievski + + * Smarty.addons.php + Smarty.class.php + plugins/standard.plugin.php + NEWS: Added plugin functionality. + +2001-02-22 Monte Ohrt + + * docs.sgml + templates/index.tpl + NEWS + README + Smarty.class.php: fixed issue with php tags executed in literal blocks + +2001-02-21 Monte Ohrt + + * NEWS: update changelog for LGPL change + + * Smarty.class.php + docs.sgml + README + Smarty.addons.php: updated version numbers to 1.3.0 + + * NEWS + templates/index.tpl: update changelog, rearrange index.tpl file + +2001-02-21 Andrei Zmievski + + * NEWS + Smarty.class.php: *** empty log message *** + +2001-02-21 Monte Ohrt + + * docs.sgml: update parameters for is_cached and fetch + +2001-02-21 Andrei Zmievski + + * NEWS + Smarty.class.php: *** empty log message *** + +2001-02-21 Monte Ohrt + + * NEWS + Smarty.addons.php + docs.sgml: update docs, remove header function from addons + +2001-02-20 Monte Ohrt + + * FAQ + NEWS: update changelog + + * TODO: update todo + + * TODO: update todo list + + * Smarty.class.php: update php tag handling logic + +2001-02-19 Monte Ohrt + + * index.php + Config_File.class.php + FAQ + Smarty.class.php + docs.sgml: fixed + + * Smarty.addons.php: *** empty log message *** + +2001-02-13 Andrei Zmievski + + * TODO: *** empty log message *** + +2001-02-12 Andrei Zmievski + + * templates/index.tpl + Smarty.class.php: *** empty log message *** + +2001-02-10 Monte Ohrt + + * Smarty.class.php: remove unneeded preg_match + + * Smarty.class.php: remove comment + + * Smarty.class.php: updated php escape to handle +{/if} diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.assemble_plugin_filepath.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.assemble_plugin_filepath.php new file mode 100644 index 000000000..690d3ddbc --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.assemble_plugin_filepath.php @@ -0,0 +1,67 @@ +plugins_dir as $_plugin_dir) { + + $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename; + + // see if path is relative + if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $_plugin_dir)) { + $_relative_paths[] = $_plugin_dir; + // relative path, see if it is in the SMARTY_DIR + if (@is_readable(SMARTY_DIR . $_plugin_filepath)) { + $_return = SMARTY_DIR . $_plugin_filepath; + break; + } + } + // try relative to cwd (or absolute) + if (@is_readable($_plugin_filepath)) { + $_return = $_plugin_filepath; + break; + } + } + + if($_return === false) { + // still not found, try PHP include_path + if(isset($_relative_paths)) { + foreach ((array)$_relative_paths as $_plugin_dir) { + + $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename; + + $_params = array('file_path' => $_plugin_filepath); + require_once(SMARTY_CORE_DIR . 'core.get_include_path.php'); + if(smarty_core_get_include_path($_params, $smarty)) { + $_return = $_params['new_file_path']; + break; + } + } + } + } + $_filepaths_cache[$_plugin_filename] = $_return; + return $_return; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.assign_smarty_interface.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.assign_smarty_interface.php new file mode 100644 index 000000000..7e65a73ec --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.assign_smarty_interface.php @@ -0,0 +1,43 @@ + + * Name: assign_smarty_interface
+ * Purpose: assign the $smarty interface variable + * @param array Format: null + * @param Smarty + */ +function smarty_core_assign_smarty_interface($params, &$smarty) +{ + if (isset($smarty->_smarty_vars) && isset($smarty->_smarty_vars['request'])) { + return; + } + + $_globals_map = array('g' => 'HTTP_GET_VARS', + 'p' => 'HTTP_POST_VARS', + 'c' => 'HTTP_COOKIE_VARS', + 's' => 'HTTP_SERVER_VARS', + 'e' => 'HTTP_ENV_VARS'); + + $_smarty_vars_request = array(); + + foreach (preg_split('!!', strtolower($smarty->request_vars_order)) as $_c) { + if (isset($_globals_map[$_c])) { + $_smarty_vars_request = array_merge($_smarty_vars_request, $GLOBALS[$_globals_map[$_c]]); + } + } + $_smarty_vars_request = @array_merge($_smarty_vars_request, $GLOBALS['HTTP_SESSION_VARS']); + + $smarty->_smarty_vars['request'] = $_smarty_vars_request; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.create_dir_structure.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.create_dir_structure.php new file mode 100644 index 000000000..999cf5930 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.create_dir_structure.php @@ -0,0 +1,79 @@ +_dir_perms) && !is_dir($_new_dir)) { + $smarty->trigger_error("problem creating directory '" . $_new_dir . "'"); + return false; + } + $_new_dir .= '/'; + } + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.display_debug_console.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.display_debug_console.php new file mode 100644 index 000000000..a5d72913c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.display_debug_console.php @@ -0,0 +1,61 @@ + + * Name: display_debug_console
+ * Purpose: display the javascript debug console window + * @param array Format: null + * @param Smarty + */ +function smarty_core_display_debug_console($params, &$smarty) +{ + // we must force compile the debug template in case the environment + // changed between separate applications. + + if(empty($smarty->debug_tpl)) { + // set path to debug template from SMARTY_DIR + $smarty->debug_tpl = SMARTY_DIR . 'debug.tpl'; + if($smarty->security && is_file($smarty->debug_tpl)) { + $smarty->secure_dir[] = dirname(realpath($smarty->debug_tpl)); + } + $smarty->debug_tpl = 'file:' . SMARTY_DIR . 'debug.tpl'; + } + + $_ldelim_orig = $smarty->left_delimiter; + $_rdelim_orig = $smarty->right_delimiter; + + $smarty->left_delimiter = '{'; + $smarty->right_delimiter = '}'; + + $_compile_id_orig = $smarty->_compile_id; + $smarty->_compile_id = null; + + $_compile_path = $smarty->_get_compile_path($smarty->debug_tpl); + if ($smarty->_compile_resource($smarty->debug_tpl, $_compile_path)) + { + ob_start(); + $smarty->_include($_compile_path); + $_results = ob_get_contents(); + ob_end_clean(); + } else { + $_results = ''; + } + + $smarty->_compile_id = $_compile_id_orig; + + $smarty->left_delimiter = $_ldelim_orig; + $smarty->right_delimiter = $_rdelim_orig; + + return $_results; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_include_path.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_include_path.php new file mode 100644 index 000000000..43432412b --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_include_path.php @@ -0,0 +1,44 @@ + diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_microtime.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_microtime.php new file mode 100644 index 000000000..f1a28e042 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_microtime.php @@ -0,0 +1,23 @@ + diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_php_resource.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_php_resource.php new file mode 100644 index 000000000..786d4e78e --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.get_php_resource.php @@ -0,0 +1,80 @@ +trusted_dir; + $smarty->_parse_resource_name($params, $smarty); + + /* + * Find out if the resource exists. + */ + + if ($params['resource_type'] == 'file') { + $_readable = false; + if(file_exists($params['resource_name']) && is_readable($params['resource_name'])) { + $_readable = true; + } else { + // test for file in include_path + $_params = array('file_path' => $params['resource_name']); + require_once(SMARTY_CORE_DIR . 'core.get_include_path.php'); + if(smarty_core_get_include_path($_params, $smarty)) { + $_include_path = $_params['new_file_path']; + $_readable = true; + } + } + } else if ($params['resource_type'] != 'file') { + $_template_source = null; + $_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0]) + && call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0], + array($params['resource_name'], &$_template_source, &$smarty)); + } + + /* + * Set the error function, depending on which class calls us. + */ + if (method_exists($smarty, '_syntax_error')) { + $_error_funcc = '_syntax_error'; + } else { + $_error_funcc = 'trigger_error'; + } + + if ($_readable) { + if ($smarty->security) { + require_once(SMARTY_CORE_DIR . 'core.is_trusted.php'); + if (!smarty_core_is_trusted($params, $smarty)) { + $smarty->$_error_funcc('(secure mode) ' . $params['resource_type'] . ':' . $params['resource_name'] . ' is not trusted'); + return false; + } + } + } else { + $smarty->$_error_funcc($params['resource_type'] . ':' . $params['resource_name'] . ' is not readable'); + return false; + } + + if ($params['resource_type'] == 'file') { + $params['php_resource'] = $params['resource_name']; + } else { + $params['php_resource'] = $_template_source; + } + return true; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.is_secure.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.is_secure.php new file mode 100644 index 000000000..342f3aff8 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.is_secure.php @@ -0,0 +1,56 @@ +security || $smarty->security_settings['INCLUDE_ANY']) { + return true; + } + + if ($params['resource_type'] == 'file') { + $_rp = realpath($params['resource_name']); + if (isset($params['resource_base_path'])) { + foreach ((array)$params['resource_base_path'] as $curr_dir) { + if ( ($_cd = realpath($curr_dir)) !== false && + strncmp($_rp, $_cd, strlen($_cd)) == 0 && + $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) { + return true; + } + } + } + if (!empty($smarty->secure_dir)) { + foreach ((array)$smarty->secure_dir as $curr_dir) { + if ( ($_cd = realpath($curr_dir)) !== false && + strncmp($_rp, $_cd, strlen($_cd)) == 0 && + $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) { + return true; + } + } + } + } else { + // resource is not on local file system + return call_user_func_array( + $smarty->_plugins['resource'][$params['resource_type']][0][2], + array($params['resource_name'], &$smarty)); + } + + return false; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.is_trusted.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.is_trusted.php new file mode 100644 index 000000000..f0bd2fb8c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.is_trusted.php @@ -0,0 +1,47 @@ +trusted_dir)) { + $_rp = realpath($params['resource_name']); + foreach ((array)$smarty->trusted_dir as $curr_dir) { + if (!empty($curr_dir) && is_readable ($curr_dir)) { + $_cd = realpath($curr_dir); + if (strncmp($_rp, $_cd, strlen($_cd)) == 0 + && $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) { + $_smarty_trusted = true; + break; + } + } + } + } + + } else { + // resource is not on local file system + $_smarty_trusted = call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][3], + array($params['resource_name'], $smarty)); + } + + return $_smarty_trusted; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.load_plugins.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.load_plugins.php new file mode 100644 index 000000000..6db1dc51d --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.load_plugins.php @@ -0,0 +1,125 @@ +_plugins[$_type][$_name]; + + /* + * We do not load plugin more than once for each instance of Smarty. + * The following code checks for that. The plugin can also be + * registered dynamically at runtime, in which case template file + * and line number will be unknown, so we fill them in. + * + * The final element of the info array is a flag that indicates + * whether the dynamically registered plugin function has been + * checked for existence yet or not. + */ + if (isset($_plugin)) { + if (empty($_plugin[3])) { + if (!is_callable($_plugin[0])) { + $smarty->_trigger_fatal_error("[plugin] $_type '$_name' is not implemented", $_tpl_file, $_tpl_line, __FILE__, __LINE__); + } else { + $_plugin[1] = $_tpl_file; + $_plugin[2] = $_tpl_line; + $_plugin[3] = true; + if (!isset($_plugin[4])) $_plugin[4] = true; /* cacheable */ + } + } + continue; + } else if ($_type == 'insert') { + /* + * For backwards compatibility, we check for insert functions in + * the symbol table before trying to load them as a plugin. + */ + $_plugin_func = 'insert_' . $_name; + if (function_exists($_plugin_func)) { + $_plugin = array($_plugin_func, $_tpl_file, $_tpl_line, true, false); + continue; + } + } + + $_plugin_file = $smarty->_get_plugin_filepath($_type, $_name); + + if (! $_found = ($_plugin_file != false)) { + $_message = "could not load plugin file '$_type.$_name.php'\n"; + } + + /* + * If plugin file is found, it -must- provide the properly named + * plugin function. In case it doesn't, simply output the error and + * do not fall back on any other method. + */ + if ($_found) { + include_once $_plugin_file; + + $_plugin_func = 'smarty_' . $_type . '_' . $_name; + if (!function_exists($_plugin_func)) { + $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", $_tpl_file, $_tpl_line, __FILE__, __LINE__); + continue; + } + } + /* + * In case of insert plugins, their code may be loaded later via + * 'script' attribute. + */ + else if ($_type == 'insert' && $_delayed_loading) { + $_plugin_func = 'smarty_' . $_type . '_' . $_name; + $_found = true; + } + + /* + * Plugin specific processing and error checking. + */ + if (!$_found) { + if ($_type == 'modifier') { + /* + * In case modifier falls back on using PHP functions + * directly, we only allow those specified in the security + * context. + */ + if ($smarty->security && !in_array($_name, $smarty->security_settings['MODIFIER_FUNCS'])) { + $_message = "(secure mode) modifier '$_name' is not allowed"; + } else { + if (!function_exists($_name)) { + $_message = "modifier '$_name' is not implemented"; + } else { + $_plugin_func = $_name; + $_found = true; + } + } + } else if ($_type == 'function') { + /* + * This is a catch-all situation. + */ + $_message = "unknown tag - '$_name'"; + } + } + + if ($_found) { + $smarty->_plugins[$_type][$_name] = array($_plugin_func, $_tpl_file, $_tpl_line, true, true); + } else { + // output error + $smarty->_trigger_fatal_error('[plugin] ' . $_message, $_tpl_file, $_tpl_line, __FILE__, __LINE__); + } + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.load_resource_plugin.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.load_resource_plugin.php new file mode 100644 index 000000000..a7d37d1af --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.load_resource_plugin.php @@ -0,0 +1,74 @@ +_plugins['resource'][$params['type']]; + if (isset($_plugin)) { + if (!$_plugin[1] && count($_plugin[0])) { + $_plugin[1] = true; + foreach ($_plugin[0] as $_plugin_func) { + if (!is_callable($_plugin_func)) { + $_plugin[1] = false; + break; + } + } + } + + if (!$_plugin[1]) { + $smarty->_trigger_fatal_error("[plugin] resource '" . $params['type'] . "' is not implemented", null, null, __FILE__, __LINE__); + } + + return; + } + + $_plugin_file = $smarty->_get_plugin_filepath('resource', $params['type']); + $_found = ($_plugin_file != false); + + if ($_found) { /* + * If the plugin file is found, it -must- provide the properly named + * plugin functions. + */ + include_once($_plugin_file); + + /* + * Locate functions that we require the plugin to provide. + */ + $_resource_ops = array('source', 'timestamp', 'secure', 'trusted'); + $_resource_funcs = array(); + foreach ($_resource_ops as $_op) { + $_plugin_func = 'smarty_resource_' . $params['type'] . '_' . $_op; + if (!function_exists($_plugin_func)) { + $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", null, null, __FILE__, __LINE__); + return; + } else { + $_resource_funcs[] = $_plugin_func; + } + } + + $smarty->_plugins['resource'][$params['type']] = array($_resource_funcs, true); + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.process_cached_inserts.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.process_cached_inserts.php new file mode 100644 index 000000000..29cb007eb --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.process_cached_inserts.php @@ -0,0 +1,71 @@ +_smarty_md5.'{insert_cache (.*)}'.$smarty->_smarty_md5.'!Uis', + $params['results'], $match); + list($cached_inserts, $insert_args) = $match; + + for ($i = 0, $for_max = count($cached_inserts); $i < $for_max; $i++) { + if ($smarty->debugging) { + $_params = array(); + require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); + $debug_start_time = smarty_core_get_microtime($_params, $smarty); + } + + $args = unserialize($insert_args[$i]); + $name = $args['name']; + + if (isset($args['script'])) { + $_params = array('resource_name' => $smarty->_dequote($args['script'])); + require_once(SMARTY_CORE_DIR . 'core.get_php_resource.php'); + if(!smarty_core_get_php_resource($_params, $smarty)) { + return false; + } + $resource_type = $_params['resource_type']; + $php_resource = $_params['php_resource']; + + + if ($resource_type == 'file') { + $smarty->_include($php_resource, true); + } else { + $smarty->_eval($php_resource); + } + } + + $function_name = $smarty->_plugins['insert'][$name][0]; + if (empty($args['assign'])) { + $replace = $function_name($args, $smarty); + } else { + $smarty->assign($args['assign'], $function_name($args, $smarty)); + $replace = ''; + } + + $params['results'] = str_replace($cached_inserts[$i], $replace, $params['results']); + if ($smarty->debugging) { + $_params = array(); + require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); + $smarty->_smarty_debug_info[] = array('type' => 'insert', + 'filename' => 'insert_'.$name, + 'depth' => $smarty->_inclusion_depth, + 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $debug_start_time); + } + } + + return $params['results']; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.process_compiled_include.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.process_compiled_include.php new file mode 100644 index 000000000..3e1d4c15a --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.process_compiled_include.php @@ -0,0 +1,32 @@ +_cache_including; + $smarty->_cache_including = true; + + $_return = $params['results']; + foreach ($smarty->_cache_serials as $_include_file_path=>$_cache_serial) { + $_return = preg_replace_callback('!(\{nocache\:('.$_cache_serial.')#(\d+)\})!s', + array(&$smarty, '_process_compiled_include_callback'), + $_return); + } + $smarty->_cache_including = $_cache_including; + return $_return; +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.read_cache_file.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.read_cache_file.php new file mode 100644 index 000000000..2ab428111 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.read_cache_file.php @@ -0,0 +1,111 @@ +force_compile) { + // force compile enabled, always regenerate + return false; + } + + if (isset($content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']])) { + list($params['results'], $smarty->_cache_info) = $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']]; + return true; + } + + if (!empty($smarty->cache_handler_func)) { + // use cache_handler function + call_user_func_array($smarty->cache_handler_func, + array('read', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null)); + } else { + // use local cache file + $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']); + $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id); + $params['results'] = $smarty->_read_file($_cache_file); + } + + if (empty($params['results'])) { + // nothing to parse (error?), regenerate cache + return false; + } + + $cache_split = explode("\n", $params['results'], 2); + $cache_header = $cache_split[0]; + + $_cache_info = unserialize($cache_header); + + if ($smarty->caching == 2 && isset ($_cache_info['expires'])){ + // caching by expiration time + if ($_cache_info['expires'] > -1 && (time() > $_cache_info['expires'])) { + // cache expired, regenerate + return false; + } + } else { + // caching by lifetime + if ($smarty->cache_lifetime > -1 && (time() - $_cache_info['timestamp'] > $smarty->cache_lifetime)) { + // cache expired, regenerate + return false; + } + } + + if ($smarty->compile_check) { + $_params = array('get_source' => false, 'quiet'=>true); + foreach (array_keys($_cache_info['template']) as $_template_dep) { + $_params['resource_name'] = $_template_dep; + if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) { + // template file has changed, regenerate cache + return false; + } + } + + if (isset($_cache_info['config'])) { + $_params = array('resource_base_path' => $smarty->config_dir, 'get_source' => false, 'quiet'=>true); + foreach (array_keys($_cache_info['config']) as $_config_dep) { + $_params['resource_name'] = $_config_dep; + if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) { + // config file has changed, regenerate cache + return false; + } + } + } + } + + foreach ($_cache_info['cache_serials'] as $_include_file_path=>$_cache_serial) { + if (empty($smarty->_cache_serials[$_include_file_path])) { + $smarty->_include($_include_file_path, true); + } + + if ($smarty->_cache_serials[$_include_file_path] != $_cache_serial) { + /* regenerate */ + return false; + } + } + $params['results'] = $cache_split[1]; + $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']] = array($params['results'], $_cache_info); + + $smarty->_cache_info = $_cache_info; + return true; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.rm_auto.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.rm_auto.php new file mode 100644 index 000000000..b251f6491 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.rm_auto.php @@ -0,0 +1,71 @@ + $params['auto_base'], + 'level' => 0, + 'exp_time' => $params['exp_time'] + ); + require_once(SMARTY_CORE_DIR . 'core.rmdir.php'); + $_res = smarty_core_rmdir($_params, $smarty); + } else { + $_tname = $smarty->_get_auto_filename($params['auto_base'], $params['auto_source'], $params['auto_id']); + + if(isset($params['auto_source'])) { + if (isset($params['extensions'])) { + $_res = false; + foreach ((array)$params['extensions'] as $_extension) + $_res |= $smarty->_unlink($_tname.$_extension, $params['exp_time']); + } else { + $_res = $smarty->_unlink($_tname, $params['exp_time']); + } + } elseif ($smarty->use_sub_dirs) { + $_params = array( + 'dirname' => $_tname, + 'level' => 1, + 'exp_time' => $params['exp_time'] + ); + require_once(SMARTY_CORE_DIR . 'core.rmdir.php'); + $_res = smarty_core_rmdir($_params, $smarty); + } else { + // remove matching file names + $_handle = opendir($params['auto_base']); + $_res = true; + while (false !== ($_filename = readdir($_handle))) { + if($_filename == '.' || $_filename == '..') { + continue; + } elseif (substr($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, 0, strlen($_tname)) == $_tname) { + $_res &= (bool)$smarty->_unlink($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, $params['exp_time']); + } + } + } + } + + return $_res; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.rmdir.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.rmdir.php new file mode 100644 index 000000000..4fdbccc95 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.rmdir.php @@ -0,0 +1,55 @@ + keep root) + * WARNING: no tests, it will try to remove what you tell it! + * + * @param string $dirname + * @param integer $level + * @param integer $exp_time + * @return boolean + */ + +// $dirname, $level = 1, $exp_time = null + +function smarty_core_rmdir($params, &$smarty) +{ + if(!isset($params['level'])) { $params['level'] = 1; } + if(!isset($params['exp_time'])) { $params['exp_time'] = null; } + + if($_handle = @opendir($params['dirname'])) { + + while (false !== ($_entry = readdir($_handle))) { + if ($_entry != '.' && $_entry != '..') { + if (@is_dir($params['dirname'] . DIRECTORY_SEPARATOR . $_entry)) { + $_params = array( + 'dirname' => $params['dirname'] . DIRECTORY_SEPARATOR . $_entry, + 'level' => $params['level'] + 1, + 'exp_time' => $params['exp_time'] + ); + require_once(SMARTY_CORE_DIR . 'core.rmdir.php'); + smarty_core_rmdir($_params, $smarty); + } + else { + $smarty->_unlink($params['dirname'] . DIRECTORY_SEPARATOR . $_entry, $params['exp_time']); + } + } + } + closedir($_handle); + } + + if ($params['level']) { + return @rmdir($params['dirname']); + } + return (bool)$_handle; + +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.run_insert_handler.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.run_insert_handler.php new file mode 100644 index 000000000..71c384508 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.run_insert_handler.php @@ -0,0 +1,71 @@ +debugging) { + $_params = array(); + $_debug_start_time = smarty_core_get_microtime($_params, $smarty); + } + + if ($smarty->caching) { + $_arg_string = serialize($params['args']); + $_name = $params['args']['name']; + if (!isset($smarty->_cache_info['insert_tags'][$_name])) { + $smarty->_cache_info['insert_tags'][$_name] = array('insert', + $_name, + $smarty->_plugins['insert'][$_name][1], + $smarty->_plugins['insert'][$_name][2], + !empty($params['args']['script']) ? true : false); + } + return $smarty->_smarty_md5."{insert_cache $_arg_string}".$smarty->_smarty_md5; + } else { + if (isset($params['args']['script'])) { + $_params = array('resource_name' => $smarty->_dequote($params['args']['script'])); + require_once(SMARTY_CORE_DIR . 'core.get_php_resource.php'); + if(!smarty_core_get_php_resource($_params, $smarty)) { + return false; + } + + if ($_params['resource_type'] == 'file') { + $smarty->_include($_params['php_resource'], true); + } else { + $smarty->_eval($_params['php_resource']); + } + unset($params['args']['script']); + } + + $_funcname = $smarty->_plugins['insert'][$params['args']['name']][0]; + $_content = $_funcname($params['args'], $smarty); + if ($smarty->debugging) { + $_params = array(); + require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); + $smarty->_smarty_debug_info[] = array('type' => 'insert', + 'filename' => 'insert_'.$params['args']['name'], + 'depth' => $smarty->_inclusion_depth, + 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time); + } + + if (!empty($params['args']["assign"])) { + $smarty->assign($params['args']["assign"], $_content); + } else { + return $_content; + } + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.smarty_include_php.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.smarty_include_php.php new file mode 100644 index 000000000..30c6e7654 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.smarty_include_php.php @@ -0,0 +1,50 @@ + $params['smarty_file']); + require_once(SMARTY_CORE_DIR . 'core.get_php_resource.php'); + smarty_core_get_php_resource($_params, $smarty); + $_smarty_resource_type = $_params['resource_type']; + $_smarty_php_resource = $_params['php_resource']; + + if (!empty($params['smarty_assign'])) { + ob_start(); + if ($_smarty_resource_type == 'file') { + $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']); + } else { + $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']); + } + $smarty->assign($params['smarty_assign'], ob_get_contents()); + ob_end_clean(); + } else { + if ($_smarty_resource_type == 'file') { + $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']); + } else { + $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']); + } + } +} + + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_cache_file.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_cache_file.php new file mode 100644 index 000000000..d7a828492 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_cache_file.php @@ -0,0 +1,95 @@ +_cache_info['timestamp'] = time(); + if ($smarty->cache_lifetime > -1){ + // expiration set + $smarty->_cache_info['expires'] = $smarty->_cache_info['timestamp'] + $smarty->cache_lifetime; + } else { + // cache will never expire + $smarty->_cache_info['expires'] = -1; + } + + // collapse nocache.../nocache-tags + if (preg_match_all('!\{(/?)nocache\:[0-9a-f]{32}#\d+\}!', $params['results'], $match, PREG_PATTERN_ORDER)) { + // remove everything between every pair of outermost noache.../nocache-tags + // and replace it by a single nocache-tag + // this new nocache-tag will be replaced by dynamic contents in + // smarty_core_process_compiled_includes() on a cache-read + + $match_count = count($match[0]); + $results = preg_split('!(\{/?nocache\:[0-9a-f]{32}#\d+\})!', $params['results'], -1, PREG_SPLIT_DELIM_CAPTURE); + + $level = 0; + $j = 0; + for ($i=0, $results_count = count($results); $i < $results_count && $j < $match_count; $i++) { + if ($results[$i] == $match[0][$j]) { + // nocache tag + if ($match[1][$j]) { // closing tag + $level--; + unset($results[$i]); + } else { // opening tag + if ($level++ > 0) unset($results[$i]); + } + $j++; + } elseif ($level > 0) { + unset($results[$i]); + } + } + $params['results'] = implode('', $results); + } + $smarty->_cache_info['cache_serials'] = $smarty->_cache_serials; + + // prepend the cache header info into cache file + $params['results'] = serialize($smarty->_cache_info)."\n".$params['results']; + + if (!empty($smarty->cache_handler_func)) { + // use cache_handler function + call_user_func_array($smarty->cache_handler_func, + array('write', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null)); + } else { + // use local cache file + + if(!@is_writable($smarty->cache_dir)) { + // cache_dir not writable, see if it exists + if(!@is_dir($smarty->cache_dir)) { + $smarty->trigger_error('the $cache_dir \'' . $smarty->cache_dir . '\' does not exist, or is not a directory.', E_USER_ERROR); + return false; + } + $smarty->trigger_error('unable to write to $cache_dir \'' . realpath($smarty->cache_dir) . '\'. Be sure $cache_dir is writable by the web server user.', E_USER_ERROR); + return false; + } + + $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']); + $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id); + $_params = array('filename' => $_cache_file, 'contents' => $params['results'], 'create_dirs' => true); + require_once(SMARTY_CORE_DIR . 'core.write_file.php'); + smarty_core_write_file($_params, $smarty); + return true; + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_compiled_include.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_compiled_include.php new file mode 100644 index 000000000..d17bee11c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_compiled_include.php @@ -0,0 +1,79 @@ +caching && \!\$this->_cache_including\) \{ echo \'\{nocache\:('.$params['cache_serial'].')#(\d+)\}\';\}'; + $_tag_end = 'if \(\$this->caching && \!\$this->_cache_including\) \{ echo \'\{/nocache\:(\\2)#(\\3)\}\';\}'; + + preg_match_all('!('.$_tag_start.'(.*)'.$_tag_end.')!Us', + $params['compiled_content'], $_match_source, PREG_SET_ORDER); + + // no nocache-parts found: done + if (count($_match_source)==0) return; + + // convert the matched php-code to functions + $_include_compiled = "_version.", created on ".strftime("%Y-%m-%d %H:%M:%S")."\n"; + $_include_compiled .= " compiled from " . strtr(urlencode($params['resource_name']), array('%2F'=>'/', '%3A'=>':')) . " */\n\n"; + + $_compile_path = $params['include_file_path']; + + $smarty->_cache_serials[$_compile_path] = $params['cache_serial']; + $_include_compiled .= "\$this->_cache_serials['".$_compile_path."'] = '".$params['cache_serial']."';\n\n?>"; + + $_include_compiled .= $params['plugins_code']; + $_include_compiled .= "= 5.0) ? '_smarty' : 'this'; + for ($_i = 0, $_for_max = count($_match_source); $_i < $_for_max; $_i++) { + $_match =& $_match_source[$_i]; + $source = $_match[4]; + if ($this_varname == '_smarty') { + /* rename $this to $_smarty in the sourcecode */ + $tokens = token_get_all('\n"; + + $_params = array('filename' => $_compile_path, + 'contents' => $_include_compiled, 'create_dirs' => true); + + require_once(SMARTY_CORE_DIR . 'core.write_file.php'); + smarty_core_write_file($_params, $smarty); + return true; +} + + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_compiled_resource.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_compiled_resource.php new file mode 100644 index 000000000..b902eff3c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_compiled_resource.php @@ -0,0 +1,35 @@ +compile_dir)) { + // compile_dir not writable, see if it exists + if(!@is_dir($smarty->compile_dir)) { + $smarty->trigger_error('the $compile_dir \'' . $smarty->compile_dir . '\' does not exist, or is not a directory.', E_USER_ERROR); + return false; + } + $smarty->trigger_error('unable to write to $compile_dir \'' . realpath($smarty->compile_dir) . '\'. Be sure $compile_dir is writable by the web server user.', E_USER_ERROR); + return false; + } + + $_params = array('filename' => $params['compile_path'], 'contents' => $params['compiled_content'], 'create_dirs' => true); + require_once(SMARTY_CORE_DIR . 'core.write_file.php'); + smarty_core_write_file($_params, $smarty); + return true; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_file.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_file.php new file mode 100644 index 000000000..09e169840 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/internals/core.write_file.php @@ -0,0 +1,54 @@ + $_dirname); + require_once(SMARTY_CORE_DIR . 'core.create_dir_structure.php'); + smarty_core_create_dir_structure($_params, $smarty); + } + + // write to tmp file, then rename it to avoid + // file locking race condition + $_tmp_file = tempnam($_dirname, 'wrt'); + + if (!($fd = @fopen($_tmp_file, 'wb'))) { + $_tmp_file = $_dirname . DIRECTORY_SEPARATOR . uniqid('wrt'); + if (!($fd = @fopen($_tmp_file, 'wb'))) { + $smarty->trigger_error("problem writing temporary file '$_tmp_file'"); + return false; + } + } + + fwrite($fd, $params['contents']); + fclose($fd); + + // Delete the file if it allready exists (this is needed on Win, + // because it cannot overwrite files with rename() + if (file_exists($params['filename'])) { + @unlink($params['filename']); + } + @rename($_tmp_file, $params['filename']); + @chmod($params['filename'], $smarty->_file_perms); + + return true; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/block.textformat.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/block.textformat.php new file mode 100644 index 000000000..aaebab2f5 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/block.textformat.php @@ -0,0 +1,102 @@ + + * Name: textformat
+ * Purpose: format text a certain way with preset styles + * or custom wrap/indent settings
+ * @link http://smarty.php.net/manual/en/language.function.textformat.php {textformat} + * (Smarty online manual) + * @param array + *
+ * Params:   style: string (email)
+ *           indent: integer (0)
+ *           wrap: integer (80)
+ *           wrap_char string ("\n")
+ *           indent_char: string (" ")
+ *           wrap_boundary: boolean (true)
+ * 
+ * @param string contents of the block + * @param Smarty clever simulation of a method + * @return string string $content re-formatted + */ +function smarty_block_textformat($params, $content, &$smarty) +{ + if (is_null($content)) { + return; + } + + $style = null; + $indent = 0; + $indent_first = 0; + $indent_char = ' '; + $wrap = 80; + $wrap_char = "\n"; + $wrap_cut = false; + $assign = null; + + foreach ($params as $_key => $_val) { + switch ($_key) { + case 'style': + case 'indent_char': + case 'wrap_char': + case 'assign': + $$_key = (string)$_val; + break; + + case 'indent': + case 'indent_first': + case 'wrap': + $$_key = (int)$_val; + break; + + case 'wrap_cut': + $$_key = (bool)$_val; + break; + + default: + $smarty->trigger_error("textformat: unknown attribute '$_key'"); + } + } + + if ($style == 'email') { + $wrap = 72; + } + + // split into paragraphs + $_paragraphs = preg_split('![\r\n][\r\n]!',$content); + $_output = ''; + + for($_x = 0, $_y = count($_paragraphs); $_x < $_y; $_x++) { + if ($_paragraphs[$_x] == '') { + continue; + } + // convert mult. spaces & special chars to single space + $_paragraphs[$_x] = preg_replace(array('!\s+!','!(^\s+)|(\s+$)!'), array(' ',''), $_paragraphs[$_x]); + // indent first line + if($indent_first > 0) { + $_paragraphs[$_x] = str_repeat($indent_char, $indent_first) . $_paragraphs[$_x]; + } + // wordwrap sentences + $_paragraphs[$_x] = wordwrap($_paragraphs[$_x], $wrap - $indent, $wrap_char, $wrap_cut); + // indent lines + if($indent > 0) { + $_paragraphs[$_x] = preg_replace('!^!m', str_repeat($indent_char, $indent), $_paragraphs[$_x]); + } + } + $_output = implode($wrap_char . $wrap_char, $_paragraphs); + + return $assign ? $smarty->assign($assign, $_output) : $_output; + +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/compiler.assign.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/compiler.assign.php new file mode 100644 index 000000000..2e0201779 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/compiler.assign.php @@ -0,0 +1,38 @@ + + * Name: assign
+ * Purpose: assign a value to a template variable + * @link http://smarty.php.net/manual/en/language.custom.functions.php#LANGUAGE.FUNCTION.ASSIGN {assign} + * (Smarty online manual) + * @param string containing var-attribute and value-attribute + * @param Smarty_Compiler + */ +function smarty_compiler_assign($tag_attrs, &$compiler) +{ + $_params = $compiler->_parse_attrs($tag_attrs); + + if (!isset($_params['var'])) { + $compiler->_syntax_error("assign: missing 'var' parameter", E_USER_WARNING); + return; + } + + if (!isset($_params['value'])) { + $compiler->_syntax_error("assign: missing 'value' parameter", E_USER_WARNING); + return; + } + + return "\$this->assign({$_params['var']}, {$_params['value']});"; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.assign_debug_info.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.assign_debug_info.php new file mode 100644 index 000000000..8015624b1 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.assign_debug_info.php @@ -0,0 +1,39 @@ + + * Name: assign_debug_info
+ * Purpose: assign debug info to the template
+ * @param array unused in this plugin, this plugin uses {@link Smarty::$_config}, + * {@link Smarty::$_tpl_vars} and {@link Smarty::$_smarty_debug_info} + * @param Smarty + */ +function smarty_function_assign_debug_info($params, &$smarty) +{ + $assigned_vars = $smarty->_tpl_vars; + ksort($assigned_vars); + if (@is_array($smarty->_config[0])) { + $config_vars = $smarty->_config[0]; + ksort($config_vars); + $smarty->assign("_debug_config_keys", array_keys($config_vars)); + $smarty->assign("_debug_config_vals", array_values($config_vars)); + } + + $included_templates = $smarty->_smarty_debug_info; + + $smarty->assign("_debug_keys", array_keys($assigned_vars)); + $smarty->assign("_debug_vals", array_values($assigned_vars)); + + $smarty->assign("_debug_tpls", $included_templates); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.config_load.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.config_load.php new file mode 100644 index 000000000..db7f8f6b9 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.config_load.php @@ -0,0 +1,140 @@ + + * Name: config_load
+ * Purpose: load config file vars + * @link http://smarty.php.net/manual/en/language.function.config.load.php {config_load} + * (Smarty online manual) + * @param array Format: + *
+ * array('file' => required config file name,
+ *       'section' => optional config file section to load
+ *       'scope' => local/parent/global
+ *       'global' => overrides scope, setting to parent if true)
+ * 
+ * @param Smarty + */ +function smarty_function_config_load($params, &$smarty) +{ + if ($smarty->debugging) { + $_params = array(); + require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); + $_debug_start_time = smarty_core_get_microtime($_params, $smarty); + } + + $_file = isset($params['file']) ? $smarty->_dequote($params['file']) : null; + $_section = isset($params['section']) ? $smarty->_dequote($params['section']) : null; + $_scope = isset($params['scope']) ? $smarty->_dequote($params['scope']) : 'global'; + $_global = isset($params['global']) ? $smarty->_dequote($params['global']) : false; + + if (!isset($_file) || strlen($_file) == 0) { + $smarty->trigger_error("missing 'file' attribute in config_load tag", E_USER_ERROR, __FILE__, __LINE__); + } + + if (isset($_scope)) { + if ($_scope != 'local' && + $_scope != 'parent' && + $_scope != 'global') { + $smarty->trigger_error("invalid 'scope' attribute value", E_USER_ERROR, __FILE__, __LINE__); + } + } else { + if ($_global) { + $_scope = 'parent'; + } else { + $_scope = 'local'; + } + } + + $_params = array('resource_name' => $_file, + 'resource_base_path' => $smarty->config_dir, + 'get_source' => false); + $smarty->_parse_resource_name($_params); + $_file_path = $_params['resource_type'] . ':' . $_params['resource_name']; + if (isset($_section)) + $_compile_file = $smarty->_get_compile_path($_file_path.'|'.$_section); + else + $_compile_file = $smarty->_get_compile_path($_file_path); + + if($smarty->force_compile || !file_exists($_compile_file)) { + $_compile = true; + } elseif ($smarty->compile_check) { + $_params = array('resource_name' => $_file, + 'resource_base_path' => $smarty->config_dir, + 'get_source' => false); + $_compile = $smarty->_fetch_resource_info($_params) && + $_params['resource_timestamp'] > filemtime($_compile_file); + } else { + $_compile = false; + } + + if($_compile) { + // compile config file + if(!is_object($smarty->_conf_obj)) { + require_once SMARTY_DIR . $smarty->config_class . '.class.php'; + $smarty->_conf_obj = new $smarty->config_class(); + $smarty->_conf_obj->overwrite = $smarty->config_overwrite; + $smarty->_conf_obj->booleanize = $smarty->config_booleanize; + $smarty->_conf_obj->read_hidden = $smarty->config_read_hidden; + $smarty->_conf_obj->fix_newlines = $smarty->config_fix_newlines; + } + + $_params = array('resource_name' => $_file, + 'resource_base_path' => $smarty->config_dir, + $_params['get_source'] = true); + if (!$smarty->_fetch_resource_info($_params)) { + return; + } + $smarty->_conf_obj->set_file_contents($_file, $_params['source_content']); + $_config_vars = array_merge($smarty->_conf_obj->get($_file), + $smarty->_conf_obj->get($_file, $_section)); + if(function_exists('var_export')) { + $_output = ''; + } else { + $_output = ''\\\'', '\\'=>'\\\\')) . '\'); ?>'; + } + $_params = (array('compile_path' => $_compile_file, 'compiled_content' => $_output, 'resource_timestamp' => $_params['resource_timestamp'])); + require_once(SMARTY_CORE_DIR . 'core.write_compiled_resource.php'); + smarty_core_write_compiled_resource($_params, $smarty); + } else { + include($_compile_file); + } + + if ($smarty->caching) { + $smarty->_cache_info['config'][$_file] = true; + } + + $smarty->_config[0]['vars'] = @array_merge($smarty->_config[0]['vars'], $_config_vars); + $smarty->_config[0]['files'][$_file] = true; + + if ($_scope == 'parent') { + $smarty->_config[1]['vars'] = @array_merge($smarty->_config[1]['vars'], $_config_vars); + $smarty->_config[1]['files'][$_file] = true; + } else if ($_scope == 'global') { + for ($i = 1, $for_max = count($smarty->_config); $i < $for_max; $i++) { + $smarty->_config[$i]['vars'] = @array_merge($smarty->_config[$i]['vars'], $_config_vars); + $smarty->_config[$i]['files'][$_file] = true; + } + } + + if ($smarty->debugging) { + $_params = array(); + require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); + $smarty->_smarty_debug_info[] = array('type' => 'config', + 'filename' => $_file.' ['.$_section.'] '.$_scope, + 'depth' => $smarty->_inclusion_depth, + 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time); + } + +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.counter.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.counter.php new file mode 100644 index 000000000..cfe5dd886 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.counter.php @@ -0,0 +1,79 @@ + + * Name: counter
+ * Purpose: print out a counter value + * @link http://smarty.php.net/manual/en/language.function.counter.php {counter} + * (Smarty online manual) + * @param array parameters + * @param Smarty + * @return string|null + */ +function smarty_function_counter($params, &$smarty) +{ + static $counters = array(); + + $name = (isset($params['name'])) ? $params['name'] : 'default'; + if (!isset($counters[$name])) { + $counters[$name] = array( + 'start'=>1, + 'skip'=>1, + 'direction'=>'up', + 'count'=>1 + ); + } + $counter =& $counters[$name]; + + if (isset($params['start'])) { + $counter['start'] = $counter['count'] = (int)$params['start']; + } + + if (!empty($params['assign'])) { + $counter['assign'] = $params['assign']; + } + + if (isset($counter['assign'])) { + $smarty->assign($counter['assign'], $counter['count']); + } + + if (isset($params['print'])) { + $print = (bool)$params['print']; + } else { + $print = empty($counter['assign']); + } + + if ($print) { + $retval = $counter['count']; + } else { + $retval = null; + } + + if (isset($params['skip'])) { + $counter['skip'] = $params['skip']; + } + + if (isset($params['direction'])) { + $counter['direction'] = $params['direction']; + } + + if ($counter['direction'] == "down") + $counter['count'] -= $counter['skip']; + else + $counter['count'] += $counter['skip']; + + return $retval; + +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.cycle.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.cycle.php new file mode 100644 index 000000000..f61ff0b13 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.cycle.php @@ -0,0 +1,102 @@ + + * Name: cycle
+ * Date: May 3, 2002
+ * Purpose: cycle through given values
+ * Input: + * - name = name of cycle (optional) + * - values = comma separated list of values to cycle, + * or an array of values to cycle + * (this can be left out for subsequent calls) + * - reset = boolean - resets given var to true + * - print = boolean - print var or not. default is true + * - advance = boolean - whether or not to advance the cycle + * - delimiter = the value delimiter, default is "," + * - assign = boolean, assigns to template var instead of + * printed. + * + * Examples:
+ *
+ * {cycle values="#eeeeee,#d0d0d0d"}
+ * {cycle name=row values="one,two,three" reset=true}
+ * {cycle name=row}
+ * 
+ * @link http://smarty.php.net/manual/en/language.function.cycle.php {cycle} + * (Smarty online manual) + * @author Monte Ohrt + * @author credit to Mark Priatel + * @author credit to Gerard + * @author credit to Jason Sweat + * @version 1.3 + * @param array + * @param Smarty + * @return string|null + */ +function smarty_function_cycle($params, &$smarty) +{ + static $cycle_vars; + + $name = (empty($params['name'])) ? 'default' : $params['name']; + $print = (isset($params['print'])) ? (bool)$params['print'] : true; + $advance = (isset($params['advance'])) ? (bool)$params['advance'] : true; + $reset = (isset($params['reset'])) ? (bool)$params['reset'] : false; + + if (!in_array('values', array_keys($params))) { + if(!isset($cycle_vars[$name]['values'])) { + $smarty->trigger_error("cycle: missing 'values' parameter"); + return; + } + } else { + if(isset($cycle_vars[$name]['values']) + && $cycle_vars[$name]['values'] != $params['values'] ) { + $cycle_vars[$name]['index'] = 0; + } + $cycle_vars[$name]['values'] = $params['values']; + } + + $cycle_vars[$name]['delimiter'] = (isset($params['delimiter'])) ? $params['delimiter'] : ','; + + if(is_array($cycle_vars[$name]['values'])) { + $cycle_array = $cycle_vars[$name]['values']; + } else { + $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']); + } + + if(!isset($cycle_vars[$name]['index']) || $reset ) { + $cycle_vars[$name]['index'] = 0; + } + + if (isset($params['assign'])) { + $print = false; + $smarty->assign($params['assign'], $cycle_array[$cycle_vars[$name]['index']]); + } + + if($print) { + $retval = $cycle_array[$cycle_vars[$name]['index']]; + } else { + $retval = null; + } + + if($advance) { + if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) { + $cycle_vars[$name]['index'] = 0; + } else { + $cycle_vars[$name]['index']++; + } + } + + return $retval; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.debug.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.debug.php new file mode 100644 index 000000000..77e710921 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.debug.php @@ -0,0 +1,35 @@ + + * Name: debug
+ * Date: July 1, 2002
+ * Purpose: popup debug window + * @link http://smarty.php.net/manual/en/language.function.debug.php {debug} + * (Smarty online manual) + * @author Monte Ohrt + * @version 1.0 + * @param array + * @param Smarty + * @return string output from {@link Smarty::_generate_debug_output()} + */ +function smarty_function_debug($params, &$smarty) +{ + if (isset($params['output'])) { + $smarty->assign('_smarty_debug_output', $params['output']); + } + require_once(SMARTY_CORE_DIR . 'core.display_debug_console.php'); + return smarty_core_display_debug_console(null, $smarty); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.eval.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.eval.php new file mode 100644 index 000000000..3a4b8b2b8 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.eval.php @@ -0,0 +1,48 @@ + + * Name: eval
+ * Purpose: evaluate a template variable as a template
+ * @link http://smarty.php.net/manual/en/language.function.eval.php {eval} + * (Smarty online manual) + * @param array + * @param Smarty + */ +function smarty_function_eval($params, &$smarty) +{ + + if (!isset($params['var'])) { + $smarty->trigger_error("eval: missing 'var' parameter"); + return; + } + + if($params['var'] == '') { + return; + } + + $smarty->_compile_source('evaluated template', $params['var'], $_var_compiled); + + ob_start(); + $smarty->_eval('?>' . $_var_compiled); + $_contents = ob_get_contents(); + ob_end_clean(); + + if (!empty($params['assign'])) { + $smarty->assign($params['assign'], $_contents); + } else { + return $_contents; + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.fetch.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.fetch.php new file mode 100644 index 000000000..f5a6987a9 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.fetch.php @@ -0,0 +1,220 @@ + + * Name: fetch
+ * Purpose: fetch file, web or ftp data and display results + * @link http://smarty.php.net/manual/en/language.function.fetch.php {fetch} + * (Smarty online manual) + * @param array + * @param Smarty + * @return string|null if the assign parameter is passed, Smarty assigns the + * result to a template variable + */ +function smarty_function_fetch($params, &$smarty) +{ + if (empty($params['file'])) { + $smarty->_trigger_fatal_error("[plugin] parameter 'file' cannot be empty"); + return; + } + + $content = ''; + if ($smarty->security && !preg_match('!^(http|ftp)://!i', $params['file'])) { + $_params = array('resource_type' => 'file', 'resource_name' => $params['file']); + require_once(SMARTY_CORE_DIR . 'core.is_secure.php'); + if(!smarty_core_is_secure($_params, $smarty)) { + $smarty->_trigger_fatal_error('[plugin] (secure mode) fetch \'' . $params['file'] . '\' is not allowed'); + return; + } + + // fetch the file + if($fp = @fopen($params['file'],'r')) { + while(!feof($fp)) { + $content .= fgets ($fp,4096); + } + fclose($fp); + } else { + $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] . '\''); + return; + } + } else { + // not a local file + if(preg_match('!^http://!i',$params['file'])) { + // http fetch + if($uri_parts = parse_url($params['file'])) { + // set defaults + $host = $server_name = $uri_parts['host']; + $timeout = 30; + $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"; + $agent = "Smarty Template Engine ".$smarty->_version; + $referer = ""; + $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/'; + $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : ''; + $_is_proxy = false; + if(empty($uri_parts['port'])) { + $port = 80; + } else { + $port = $uri_parts['port']; + } + if(!empty($uri_parts['user'])) { + $user = $uri_parts['user']; + } + if(!empty($uri_parts['pass'])) { + $pass = $uri_parts['pass']; + } + // loop through parameters, setup headers + foreach($params as $param_key => $param_value) { + switch($param_key) { + case "file": + case "assign": + case "assign_headers": + break; + case "user": + if(!empty($param_value)) { + $user = $param_value; + } + break; + case "pass": + if(!empty($param_value)) { + $pass = $param_value; + } + break; + case "accept": + if(!empty($param_value)) { + $accept = $param_value; + } + break; + case "header": + if(!empty($param_value)) { + if(!preg_match('![\w\d-]+: .+!',$param_value)) { + $smarty->_trigger_fatal_error("[plugin] invalid header format '".$param_value."'"); + return; + } else { + $extra_headers[] = $param_value; + } + } + break; + case "proxy_host": + if(!empty($param_value)) { + $proxy_host = $param_value; + } + break; + case "proxy_port": + if(!preg_match('!\D!', $param_value)) { + $proxy_port = (int) $param_value; + } else { + $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'"); + return; + } + break; + case "agent": + if(!empty($param_value)) { + $agent = $param_value; + } + break; + case "referer": + if(!empty($param_value)) { + $referer = $param_value; + } + break; + case "timeout": + if(!preg_match('!\D!', $param_value)) { + $timeout = (int) $param_value; + } else { + $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'"); + return; + } + break; + default: + $smarty->_trigger_fatal_error("[plugin] unrecognized attribute '".$param_key."'"); + return; + } + } + if(!empty($proxy_host) && !empty($proxy_port)) { + $_is_proxy = true; + $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout); + } else { + $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout); + } + + if(!$fp) { + $smarty->_trigger_fatal_error("[plugin] unable to fetch: $errstr ($errno)"); + return; + } else { + if($_is_proxy) { + fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n"); + } else { + fputs($fp, "GET $uri HTTP/1.0\r\n"); + } + if(!empty($host)) { + fputs($fp, "Host: $host\r\n"); + } + if(!empty($accept)) { + fputs($fp, "Accept: $accept\r\n"); + } + if(!empty($agent)) { + fputs($fp, "User-Agent: $agent\r\n"); + } + if(!empty($referer)) { + fputs($fp, "Referer: $referer\r\n"); + } + if(isset($extra_headers) && is_array($extra_headers)) { + foreach($extra_headers as $curr_header) { + fputs($fp, $curr_header."\r\n"); + } + } + if(!empty($user) && !empty($pass)) { + fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n"); + } + + fputs($fp, "\r\n"); + while(!feof($fp)) { + $content .= fgets($fp,4096); + } + fclose($fp); + $csplit = split("\r\n\r\n",$content,2); + + $content = $csplit[1]; + + if(!empty($params['assign_headers'])) { + $smarty->assign($params['assign_headers'],split("\r\n",$csplit[0])); + } + } + } else { + $smarty->_trigger_fatal_error("[plugin] unable to parse URL, check syntax"); + return; + } + } else { + // ftp fetch + if($fp = @fopen($params['file'],'r')) { + while(!feof($fp)) { + $content .= fgets ($fp,4096); + } + fclose($fp); + } else { + $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] .'\''); + return; + } + } + + } + + + if (!empty($params['assign'])) { + $smarty->assign($params['assign'],$content); + } else { + return $content; + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_checkboxes.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_checkboxes.php new file mode 100644 index 000000000..a64d7db7a --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_checkboxes.php @@ -0,0 +1,143 @@ + + * Type: function
+ * Name: html_checkboxes
+ * Date: 24.Feb.2003
+ * Purpose: Prints out a list of checkbox input types
+ * Input:
+ * - name (optional) - string default "checkbox" + * - values (required) - array + * - options (optional) - associative array + * - checked (optional) - array default not set + * - separator (optional) - ie
or   + * - output (optional) - the output next to each checkbox + * - assign (optional) - assign the output as an array to this variable + * Examples: + *
+ * {html_checkboxes values=$ids output=$names}
+ * {html_checkboxes values=$ids name='box' separator='
' output=$names} + * {html_checkboxes values=$ids checked=$checked separator='
' output=$names} + *
+ * @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} + * (Smarty online manual) + * @author Christopher Kvarme + * @author credits to Monte Ohrt + * @version 1.0 + * @param array + * @param Smarty + * @return string + * @uses smarty_function_escape_special_chars() + */ +function smarty_function_html_checkboxes($params, &$smarty) +{ + require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); + + $name = 'checkbox'; + $values = null; + $options = null; + $selected = null; + $separator = ''; + $labels = true; + $output = null; + + $extra = ''; + + foreach($params as $_key => $_val) { + switch($_key) { + case 'name': + case 'separator': + $$_key = $_val; + break; + + case 'labels': + $$_key = (bool)$_val; + break; + + case 'options': + $$_key = (array)$_val; + break; + + case 'values': + case 'output': + $$_key = array_values((array)$_val); + break; + + case 'checked': + case 'selected': + $selected = array_map('strval', array_values((array)$_val)); + break; + + case 'checkboxes': + $smarty->trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING); + $options = (array)$_val; + break; + + case 'assign': + break; + + default: + if(!is_array($_val)) { + $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; + } else { + $smarty->trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE); + } + break; + } + } + + if (!isset($options) && !isset($values)) + return ''; /* raise error here? */ + + settype($selected, 'array'); + $_html_result = array(); + + if (is_array($options)) { + + foreach ($options as $_key=>$_val) + $_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels); + + + } else { + foreach ($values as $_i=>$_key) { + $_val = isset($output[$_i]) ? $output[$_i] : ''; + $_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels); + } + + } + + if(!empty($params['assign'])) { + $smarty->assign($params['assign'], $_html_result); + } else { + return implode("\n",$_html_result); + } + +} + +function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels) { + $_output = ''; + if ($labels) $_output .= ''; + $_output .= $separator; + + return $_output; +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_image.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_image.php new file mode 100644 index 000000000..aa2aa1875 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_image.php @@ -0,0 +1,142 @@ + + * Name: html_image
+ * Date: Feb 24, 2003
+ * Purpose: format HTML tags for the image
+ * Input:
+ * - file = file (and path) of image (required) + * - border = border width (optional, default 0) + * - height = image height (optional, default actual height) + * - image =image width (optional, default actual width) + * - basedir = base directory for absolute paths, default + * is environment variable DOCUMENT_ROOT + * + * Examples: {html_image file="images/masthead.gif"} + * Output: + * @link http://smarty.php.net/manual/en/language.function.html.image.php {html_image} + * (Smarty online manual) + * @author Monte Ohrt + * @author credits to Duda - wrote first image function + * in repository, helped with lots of functionality + * @version 1.0 + * @param array + * @param Smarty + * @return string + * @uses smarty_function_escape_special_chars() + */ +function smarty_function_html_image($params, &$smarty) +{ + require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); + + $alt = ''; + $file = ''; + $border = 0; + $height = ''; + $width = ''; + $extra = ''; + $prefix = ''; + $suffix = ''; + $server_vars = ($smarty->request_use_auto_globals) ? $_SERVER : $GLOBALS['HTTP_SERVER_VARS']; + $basedir = isset($server_vars['DOCUMENT_ROOT']) ? $server_vars['DOCUMENT_ROOT'] : ''; + foreach($params as $_key => $_val) { + switch($_key) { + case 'file': + case 'border': + case 'height': + case 'width': + case 'dpi': + case 'basedir': + $$_key = $_val; + break; + + case 'alt': + if(!is_array($_val)) { + $$_key = smarty_function_escape_special_chars($_val); + } else { + $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE); + } + break; + + case 'link': + case 'href': + $prefix = ''; + $suffix = ''; + break; + + default: + if(!is_array($_val)) { + $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; + } else { + $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE); + } + break; + } + } + + if (empty($file)) { + $smarty->trigger_error("html_image: missing 'file' parameter", E_USER_NOTICE); + return; + } + + if (substr($file,0,1) == '/') { + $_image_path = $basedir . $file; + } else { + $_image_path = $file; + } + + if(!isset($params['width']) || !isset($params['height'])) { + if ($smarty->security && + ($_params = array('resource_type' => 'file', 'resource_name' => $_image_path)) && + (require_once(SMARTY_CORE_DIR . 'core.is_secure.php')) && + (!smarty_core_is_secure($_params, $smarty)) ) { + $smarty->trigger_error("html_image: (secure) '$_image_path' not in secure directory", E_USER_NOTICE); + + } elseif (!$_image_data = @getimagesize($_image_path)) { + if(!file_exists($_image_path)) { + $smarty->trigger_error("html_image: unable to find '$_image_path'", E_USER_NOTICE); + return; + } else if(!is_readable($_image_path)) { + $smarty->trigger_error("html_image: unable to read '$_image_path'", E_USER_NOTICE); + return; + } else { + $smarty->trigger_error("html_image: '$_image_path' is not a valid image file", E_USER_NOTICE); + return; + } + } + + if(!isset($params['width'])) { + $width = $_image_data[0]; + } + if(!isset($params['height'])) { + $height = $_image_data[1]; + } + + } + + if(isset($params['dpi'])) { + if(strstr($server_vars['HTTP_USER_AGENT'], 'Mac')) { + $dpi_default = 72; + } else { + $dpi_default = 96; + } + $_resize = $dpi_default/$params['dpi']; + $width = round($width * $_resize); + $height = round($height * $_resize); + } + + return $prefix . ''.$alt.'' . $suffix; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_options.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_options.php new file mode 100644 index 000000000..da5571c5b --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_options.php @@ -0,0 +1,121 @@ + + * Name: html_options
+ * Input:
+ * - name (optional) - string default "select" + * - values (required if no options supplied) - array + * - options (required if no values supplied) - associative array + * - selected (optional) - string default not set + * - output (required if not options supplied) - array + * Purpose: Prints the list of ' . "\n"; + foreach ($values as $key => $value) { + $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected); + } + $optgroup_html .= "\n"; + return $optgroup_html; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_radios.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_radios.php new file mode 100644 index 000000000..c8633c5dd --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_radios.php @@ -0,0 +1,145 @@ + + * Type: function
+ * Name: html_radios
+ * Date: 24.Feb.2003
+ * Purpose: Prints out a list of radio input types
+ * Input:
+ * - name (optional) - string default "radio" + * - values (required) - array + * - options (optional) - associative array + * - checked (optional) - array default not set + * - separator (optional) - ie
or   + * - output (optional) - the output next to each radio button + * - assign (optional) - assign the output as an array to this variable + * Examples: + *
+ * {html_radios values=$ids output=$names}
+ * {html_radios values=$ids name='box' separator='
' output=$names} + * {html_radios values=$ids checked=$checked separator='
' output=$names} + *
+ * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios} + * (Smarty online manual) + * @author Christopher Kvarme + * @author credits to Monte Ohrt + * @version 1.0 + * @param array + * @param Smarty + * @return string + * @uses smarty_function_escape_special_chars() + */ +function smarty_function_html_radios($params, &$smarty) +{ + require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); + + $name = 'radio'; + $values = null; + $options = null; + $selected = null; + $separator = ''; + $labels = true; + $output = null; + $extra = ''; + + foreach($params as $_key => $_val) { + switch($_key) { + case 'name': + case 'separator': + $$_key = (string)$_val; + break; + + case 'checked': + case 'selected': + if(is_array($_val)) { + $smarty->trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING); + } else { + $selected = (string)$_val; + } + break; + + case 'labels': + $$_key = (bool)$_val; + break; + + case 'options': + $$_key = (array)$_val; + break; + + case 'values': + case 'output': + $$_key = array_values((array)$_val); + break; + + case 'radios': + $smarty->trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING); + $options = (array)$_val; + break; + + case 'assign': + break; + + default: + if(!is_array($_val)) { + $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; + } else { + $smarty->trigger_error("html_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE); + } + break; + } + } + + if (!isset($options) && !isset($values)) + return ''; /* raise error here? */ + + $_html_result = array(); + + if (isset($options) && is_array($options)) { + + foreach ((array)$options as $_key=>$_val) + $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels); + + } else { + + foreach ((array)$values as $_i=>$_key) { + $_val = isset($output[$_i]) ? $output[$_i] : ''; + $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels); + } + + } + + if(!empty($params['assign'])) { + $smarty->assign($params['assign'], $_html_result); + } else { + return implode("\n",$_html_result); + } + +} + +function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels) { + $_output = ''; + if ($labels) $_output .= ''; + $_output .= $separator; + + return $_output; +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_select_date.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_select_date.php new file mode 100644 index 000000000..fc2d449a8 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_select_date.php @@ -0,0 +1,316 @@ + + * Name: html_select_date
+ * Purpose: Prints the dropdowns for date selection. + * + * ChangeLog:
+ * - 1.0 initial release + * - 1.1 added support for +/- N syntax for begin + * and end year values. (Monte) + * - 1.2 added support for yyyy-mm-dd syntax for + * time value. (Jan Rosier) + * - 1.3 added support for choosing format for + * month values (Gary Loescher) + * - 1.3.1 added support for choosing format for + * day values (Marcus Bointon) + * - 1.3.2 suppport negative timestamps, force year + * dropdown to include given date unless explicitly set (Monte) + * @link http://smarty.php.net/manual/en/language.function.html.select.date.php {html_select_date} + * (Smarty online manual) + * @version 1.3.2 + * @author Andrei Zmievski + * @param array + * @param Smarty + * @return string + */ +function smarty_function_html_select_date($params, &$smarty) +{ + require_once $smarty->_get_plugin_filepath('shared','make_timestamp'); + require_once $smarty->_get_plugin_filepath('function','html_options'); + /* Default values. */ + $prefix = "Date_"; + $start_year = strftime("%Y"); + $end_year = $start_year; + $display_days = true; + $display_months = true; + $display_years = true; + $month_format = "%B"; + /* Write months as numbers by default GL */ + $month_value_format = "%m"; + $day_format = "%02d"; + /* Write day values using this format MB */ + $day_value_format = "%d"; + $year_as_text = false; + /* Display years in reverse order? Ie. 2000,1999,.... */ + $reverse_years = false; + /* Should the select boxes be part of an array when returned from PHP? + e.g. setting it to "birthday", would create "birthday[Day]", + "birthday[Month]" & "birthday[Year]". Can be combined with prefix */ + $field_array = null; + /* tags. + If not set, uses default dropdown. */ + $day_size = null; + $month_size = null; + $year_size = null; + /* Unparsed attributes common to *ALL* the tags. + An example might be in the template: all_extra ='class ="foo"'. */ + $all_extra = null; + /* Separate attributes for the tags. */ + $day_extra = null; + $month_extra = null; + $year_extra = null; + /* Order in which to display the fields. + "D" -> day, "M" -> month, "Y" -> year. */ + $field_order = 'MDY'; + /* String printed between the different fields. */ + $field_separator = "\n"; + $time = time(); + $all_empty = null; + $day_empty = null; + $month_empty = null; + $year_empty = null; + + foreach ($params as $_key=>$_value) { + switch ($_key) { + case 'prefix': + case 'time': + case 'start_year': + case 'end_year': + case 'month_format': + case 'day_format': + case 'day_value_format': + case 'field_array': + case 'day_size': + case 'month_size': + case 'year_size': + case 'all_extra': + case 'day_extra': + case 'month_extra': + case 'year_extra': + case 'field_order': + case 'field_separator': + case 'month_value_format': + case 'month_empty': + case 'day_empty': + case 'year_empty': + $$_key = (string)$_value; + break; + + case 'all_empty': + $$_key = (string)$_value; + $day_empty = $month_empty = $year_empty = $all_empty; + break; + + case 'display_days': + case 'display_months': + case 'display_years': + case 'year_as_text': + case 'reverse_years': + $$_key = (bool)$_value; + break; + + default: + $smarty->trigger_error("[html_select_date] unknown parameter $_key", E_USER_WARNING); + + } + } + + if(preg_match('!^-\d+$!',$time)) { + // negative timestamp, use date() + $time = date('Y-m-d',$time); + } + // If $time is not in format yyyy-mm-dd + if (!preg_match('/^\d{0,4}-\d{0,2}-\d{0,2}$/', $time)) { + // use smarty_make_timestamp to get an unix timestamp and + // strftime to make yyyy-mm-dd + $time = strftime('%Y-%m-%d', smarty_make_timestamp($time)); + } + // Now split this in pieces, which later can be used to set the select + $time = explode("-", $time); + + // make syntax "+N" or "-N" work with start_year and end_year + if (preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match)) { + if ($match[1] == '+') { + $end_year = strftime('%Y') + $match[2]; + } else { + $end_year = strftime('%Y') - $match[2]; + } + } + if (preg_match('!^(\+|\-)\s*(\d+)$!', $start_year, $match)) { + if ($match[1] == '+') { + $start_year = strftime('%Y') + $match[2]; + } else { + $start_year = strftime('%Y') - $match[2]; + } + } + if (strlen($time[0]) > 0) { + if ($start_year > $time[0] && !isset($params['start_year'])) { + // force start year to include given date if not explicitly set + $start_year = $time[0]; + } + if($end_year < $time[0] && !isset($params['end_year'])) { + // force end year to include given date if not explicitly set + $end_year = $time[0]; + } + } + + $field_order = strtoupper($field_order); + + $html_result = $month_result = $day_result = $year_result = ""; + + if ($display_months) { + $month_names = array(); + $month_values = array(); + if(isset($month_empty)) { + $month_names[''] = $month_empty; + $month_values[''] = ''; + } + for ($i = 1; $i <= 12; $i++) { + $month_names[$i] = strftime($month_format, mktime(0, 0, 0, $i, 1, 2000)); + $month_values[$i] = strftime($month_value_format, mktime(0, 0, 0, $i, 1, 2000)); + } + + $month_result .= ''; + } + + if ($display_days) { + $days = array(); + if (isset($day_empty)) { + $days[''] = $day_empty; + $day_values[''] = ''; + } + for ($i = 1; $i <= 31; $i++) { + $days[] = sprintf($day_format, $i); + $day_values[] = sprintf($day_value_format, $i); + } + + $day_result .= ''; + } + + if ($display_years) { + if (null !== $field_array){ + $year_name = $field_array . '[' . $prefix . 'Year]'; + } else { + $year_name = $prefix . 'Year'; + } + if ($year_as_text) { + $year_result .= ' $years, + 'values' => $yearvals, + 'selected' => $time[0], + 'print_result' => false), + $smarty); + $year_result .= ''; + } + } + + // Loop thru the field_order field + for ($i = 0; $i <= 2; $i++){ + $c = substr($field_order, $i, 1); + switch ($c){ + case 'D': + $html_result .= $day_result; + break; + + case 'M': + $html_result .= $month_result; + break; + + case 'Y': + $html_result .= $year_result; + break; + } + // Add the field seperator + if($i != 2) { + $html_result .= $field_separator; + } + } + + return $html_result; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_select_time.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_select_time.php new file mode 100644 index 000000000..00cd1ae88 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_select_time.php @@ -0,0 +1,192 @@ + + * Name: html_select_time
+ * Purpose: Prints the dropdowns for time selection + * @link http://smarty.php.net/manual/en/language.function.html.select.time.php {html_select_time} + * (Smarty online manual) + * @param array + * @param Smarty + * @return string + * @uses smarty_make_timestamp() + */ +function smarty_function_html_select_time($params, &$smarty) +{ + require_once $smarty->_get_plugin_filepath('shared','make_timestamp'); + require_once $smarty->_get_plugin_filepath('function','html_options'); + /* Default values. */ + $prefix = "Time_"; + $time = time(); + $display_hours = true; + $display_minutes = true; + $display_seconds = true; + $display_meridian = true; + $use_24_hours = true; + $minute_interval = 1; + $second_interval = 1; + /* Should the select boxes be part of an array when returned from PHP? + e.g. setting it to "birthday", would create "birthday[Hour]", + "birthday[Minute]", "birthday[Seconds]" & "birthday[Meridian]". + Can be combined with prefix. */ + $field_array = null; + $all_extra = null; + $hour_extra = null; + $minute_extra = null; + $second_extra = null; + $meridian_extra = null; + + foreach ($params as $_key=>$_value) { + switch ($_key) { + case 'prefix': + case 'time': + case 'field_array': + case 'all_extra': + case 'hour_extra': + case 'minute_extra': + case 'second_extra': + case 'meridian_extra': + $$_key = (string)$_value; + break; + + case 'display_hours': + case 'display_minutes': + case 'display_seconds': + case 'display_meridian': + case 'use_24_hours': + $$_key = (bool)$_value; + break; + + case 'minute_interval': + case 'second_interval': + $$_key = (int)$_value; + break; + + default: + $smarty->trigger_error("[html_select_time] unknown parameter $_key", E_USER_WARNING); + } + } + + $time = smarty_make_timestamp($time); + + $html_result = ''; + + if ($display_hours) { + $hours = $use_24_hours ? range(0, 23) : range(1, 12); + $hour_fmt = $use_24_hours ? '%H' : '%I'; + for ($i = 0, $for_max = count($hours); $i < $for_max; $i++) + $hours[$i] = sprintf('%02d', $hours[$i]); + $html_result .= '\n"; + } + + if ($display_minutes) { + $all_minutes = range(0, 59); + for ($i = 0, $for_max = count($all_minutes); $i < $for_max; $i+= $minute_interval) + $minutes[] = sprintf('%02d', $all_minutes[$i]); + $selected = intval(floor(strftime('%M', $time) / $minute_interval) * $minute_interval); + $html_result .= '\n"; + } + + if ($display_seconds) { + $all_seconds = range(0, 59); + for ($i = 0, $for_max = count($all_seconds); $i < $for_max; $i+= $second_interval) + $seconds[] = sprintf('%02d', $all_seconds[$i]); + $selected = intval(floor(strftime('%S', $time) / $second_interval) * $second_interval); + $html_result .= '\n"; + } + + if ($display_meridian && !$use_24_hours) { + $html_result .= '\n"; + } + + return $html_result; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_table.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_table.php new file mode 100644 index 000000000..0f6d03b93 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.html_table.php @@ -0,0 +1,137 @@ + + * Name: html_table
+ * Date: Feb 17, 2003
+ * Purpose: make an html table from an array of data
+ * Input:
+ * - loop = array to loop through + * - cols = number of columns + * - rows = number of rows + * - table_attr = table attributes + * - tr_attr = table row attributes (arrays are cycled) + * - td_attr = table cell attributes (arrays are cycled) + * - trailpad = value to pad trailing cells with + * - vdir = vertical direction (default: "down", means top-to-bottom) + * - hdir = horizontal direction (default: "right", means left-to-right) + * - inner = inner loop (default "cols": print $loop line by line, + * $loop will be printed column by column otherwise) + * + * + * Examples: + *
+ * {table loop=$data}
+ * {table loop=$data cols=4 tr_attr='"bgcolor=red"'}
+ * {table loop=$data cols=4 tr_attr=$colors}
+ * 
+ * @author Monte Ohrt + * @version 1.0 + * @link http://smarty.php.net/manual/en/language.function.html.table.php {html_table} + * (Smarty online manual) + * @param array + * @param Smarty + * @return string + */ +function smarty_function_html_table($params, &$smarty) +{ + $table_attr = 'border="1"'; + $tr_attr = ''; + $td_attr = ''; + $cols = 3; + $rows = 3; + $trailpad = ' '; + $vdir = 'down'; + $hdir = 'right'; + $inner = 'cols'; + + if (!isset($params['loop'])) { + $smarty->trigger_error("html_table: missing 'loop' parameter"); + return; + } + + foreach ($params as $_key=>$_value) { + switch ($_key) { + case 'loop': + $$_key = (array)$_value; + break; + + case 'cols': + case 'rows': + $$_key = (int)$_value; + break; + + case 'table_attr': + case 'trailpad': + case 'hdir': + case 'vdir': + case 'inner': + $$_key = (string)$_value; + break; + + case 'tr_attr': + case 'td_attr': + $$_key = $_value; + break; + } + } + + $loop_count = count($loop); + if (empty($params['rows'])) { + /* no rows specified */ + $rows = ceil($loop_count/$cols); + } elseif (empty($params['cols'])) { + if (!empty($params['rows'])) { + /* no cols specified, but rows */ + $cols = ceil($loop_count/$rows); + } + } + + $output = "\n"; + + for ($r=0; $r<$rows; $r++) { + $output .= "\n"; + $rx = ($vdir == 'down') ? $r*$cols : ($rows-1-$r)*$cols; + + for ($c=0; $c<$cols; $c++) { + $x = ($hdir == 'right') ? $rx+$c : $rx+$cols-1-$c; + if ($inner!='cols') { + /* shuffle x to loop over rows*/ + $x = floor($x/$cols) + ($x%$cols)*$rows; + } + + if ($x<$loop_count) { + $output .= "" . $loop[$x] . "\n"; + } else { + $output .= "$trailpad\n"; + } + } + $output .= "\n"; + } + $output .= "
\n"; + + return $output; +} + +function smarty_function_html_table_cycle($name, $var, $no) { + if(!is_array($var)) { + $ret = $var; + } else { + $ret = $var[$no % count($var)]; + } + + return ($ret) ? ' '.$ret : ''; +} + + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.mailto.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.mailto.php new file mode 100644 index 000000000..a4f4d2d5d --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.mailto.php @@ -0,0 +1,143 @@ + + * Name: mailto
+ * Date: May 21, 2002 + * Purpose: automate mailto address link creation, and optionally + * encode them.
+ * Input:
+ * - address = e-mail address + * - text = (optional) text to display, default is address + * - encode = (optional) can be one of: + * * none : no encoding (default) + * * javascript : encode with javascript + * * hex : encode with hexidecimal (no javascript) + * - cc = (optional) address(es) to carbon copy + * - bcc = (optional) address(es) to blind carbon copy + * - subject = (optional) e-mail subject + * - newsgroups = (optional) newsgroup(s) to post to + * - followupto = (optional) address(es) to follow up to + * - extra = (optional) extra tags for the href link + * + * Examples: + *
+ * {mailto address="me@domain.com"}
+ * {mailto address="me@domain.com" encode="javascript"}
+ * {mailto address="me@domain.com" encode="hex"}
+ * {mailto address="me@domain.com" subject="Hello to you!"}
+ * {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
+ * {mailto address="me@domain.com" extra='class="mailto"'}
+ * 
+ * @link http://smarty.php.net/manual/en/language.function.mailto.php {mailto} + * (Smarty online manual) + * @version 1.2 + * @author Monte Ohrt + * @author credits to Jason Sweat (added cc, bcc and subject functionality) + * @param array + * @param Smarty + * @return string + */ +function smarty_function_mailto($params, &$smarty) +{ + $extra = ''; + + if (empty($params['address'])) { + $smarty->trigger_error("mailto: missing 'address' parameter"); + return; + } else { + $address = $params['address']; + } + + $text = $address; + + // netscape and mozilla do not decode %40 (@) in BCC field (bug?) + // so, don't encode it. + $mail_parms = array(); + foreach ($params as $var=>$value) { + switch ($var) { + case 'cc': + case 'bcc': + case 'followupto': + if (!empty($value)) + $mail_parms[] = $var.'='.str_replace('%40','@',rawurlencode($value)); + break; + + case 'subject': + case 'newsgroups': + $mail_parms[] = $var.'='.rawurlencode($value); + break; + + case 'extra': + case 'text': + $$var = $value; + + default: + } + } + + $mail_parm_vals = ''; + for ($i=0; $itrigger_error("mailto: 'encode' parameter must be none, javascript or hex"); + return; + } + + if ($encode == 'javascript' ) { + $string = 'document.write(\''.$text.'\');'; + + $js_encode = ''; + for ($x=0; $x < strlen($string); $x++) { + $js_encode .= '%' . bin2hex($string[$x]); + } + + return ''; + + } elseif ($encode == 'hex') { + + preg_match('!^(.*)(\?.*)$!',$address,$match); + if(!empty($match[2])) { + $smarty->trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript."); + return; + } + $address_encode = ''; + for ($x=0; $x < strlen($address); $x++) { + if(preg_match('!\w!',$address[$x])) { + $address_encode .= '%' . bin2hex($address[$x]); + } else { + $address_encode .= $address[$x]; + } + } + $text_encode = ''; + for ($x=0; $x < strlen($text); $x++) { + $text_encode .= '&#x' . bin2hex($text[$x]).';'; + } + + $mailto = "mailto:"; + return ''.$text_encode.''; + + } else { + // no encoding + return ''.$text.''; + + } + +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.math.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.math.php new file mode 100644 index 000000000..c080d4dfe --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.math.php @@ -0,0 +1,82 @@ + + * Name: math
+ * Purpose: handle math computations in template
+ * @link http://smarty.php.net/manual/en/language.function.math.php {math} + * (Smarty online manual) + * @param array + * @param Smarty + * @return string + */ +function smarty_function_math($params, &$smarty) +{ + // be sure equation parameter is present + if (empty($params['equation'])) { + $smarty->trigger_error("math: missing equation parameter"); + return; + } + + $equation = $params['equation']; + + // make sure parenthesis are balanced + if (substr_count($equation,"(") != substr_count($equation,")")) { + $smarty->trigger_error("math: unbalanced parenthesis"); + return; + } + + // match all vars in equation, make sure all are passed + preg_match_all("!\!(0x)([a-zA-Z][a-zA-Z0-9_]*)!",$equation, $match); + $allowed_funcs = array('int','abs','ceil','cos','exp','floor','log','log10', + 'max','min','pi','pow','rand','round','sin','sqrt','srand','tan'); + foreach($match[2] as $curr_var) { + if (!in_array($curr_var,array_keys($params)) && !in_array($curr_var, $allowed_funcs)) { + $smarty->trigger_error("math: parameter $curr_var not passed as argument"); + return; + } + } + + foreach($params as $key => $val) { + if ($key != "equation" && $key != "format" && $key != "assign") { + // make sure value is not empty + if (strlen($val)==0) { + $smarty->trigger_error("math: parameter $key is empty"); + return; + } + if (!is_numeric($val)) { + $smarty->trigger_error("math: parameter $key: is not numeric"); + return; + } + $equation = preg_replace("/\b$key\b/",$val, $equation); + } + } + + eval("\$smarty_math_result = ".$equation.";"); + + if (empty($params['format'])) { + if (empty($params['assign'])) { + return $smarty_math_result; + } else { + $smarty->assign($params['assign'],$smarty_math_result); + } + } else { + if (empty($params['assign'])){ + printf($params['format'],$smarty_math_result); + } else { + $smarty->assign($params['assign'],sprintf($params['format'],$smarty_math_result)); + } + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.popup.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.popup.php new file mode 100644 index 000000000..80bd62aaf --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.popup.php @@ -0,0 +1,110 @@ + + * Name: popup
+ * Purpose: make text pop up in windows via overlib + * @link http://smarty.php.net/manual/en/language.function.popup.php {popup} + * (Smarty online manual) + * @param array + * @param Smarty + * @return string + */ +function smarty_function_popup($params, &$smarty) +{ + $append = ''; + foreach ($params as $_key=>$_value) { + switch ($_key) { + case 'text': + case 'trigger': + $$_key = (string)$_value; + break; + + case 'caption': + case 'closetext': + case 'status': + $append .= ',' . strtoupper($_key) . ",'" . str_replace("'","\'",$_value) . "'"; + break; + + case 'fgcolor': + case 'bgcolor': + case 'textcolor': + case 'capcolor': + case 'closecolor': + case 'textfont': + case 'captionfont': + case 'closefont': + case 'fgbackground': + case 'bgbackground': + case 'inarray': + case 'caparray': + case 'capicon': + case 'background': + case 'frame': + case 'function': + $append .= ',' . strtoupper($_key) . ",'$_value'"; + break; + + case 'textsize': + case 'captionsize': + case 'closesize': + case 'width': + case 'height': + case 'border': + case 'offsetx': + case 'offsety': + case 'snapx': + case 'snapy': + case 'fixx': + case 'fixy': + case 'padx': + case 'pady': + case 'timeout': + case 'delay': + $append .= ',' . strtoupper($_key) . ",$_value"; + break; + + case 'sticky': + case 'left': + case 'right': + case 'center': + case 'above': + case 'below': + case 'noclose': + case 'autostatus': + case 'autostatuscap': + case 'fullhtml': + case 'hauto': + case 'vauto': + if ($_value) $append .= ',' . strtoupper($_key); + break; + + default: + $smarty->trigger_error("[popup] unknown parameter $_key", E_USER_WARNING); + } + } + + if (empty($text) && !isset($inarray) && empty($function)) { + $smarty->trigger_error("overlib: attribute 'text' or 'inarray' or 'function' required"); + return false; + } + + if (empty($trigger)) { $trigger = "onmouseover"; } + + $retval = $trigger . '="return overlib(\''.preg_replace(array("!'!","![\r\n]!"),array("\'",'\r'),$text).'\''; + $retval .= $append . ');" onmouseout="nd();"'; + + return $retval; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.popup_init.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.popup_init.php new file mode 100644 index 000000000..f62c33c13 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/function.popup_init.php @@ -0,0 +1,39 @@ + + * Name: popup_init
+ * Purpose: initialize overlib + * @link http://smarty.php.net/manual/en/language.function.popup.init.php {popup_init} + * (Smarty online manual) + * @param array + * @param Smarty + * @return string + */ +function smarty_function_popup_init($params, &$smarty) +{ + $zindex = 1000; + + if (!empty($params['zindex'])) { + $zindex = $params['zindex']; + } + + if (!empty($params['src'])) { + return '' . "\n" + . '' . "\n"; + } else { + $smarty->trigger_error("popup_init: missing src parameter"); + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.capitalize.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.capitalize.php new file mode 100644 index 000000000..2b9169cef --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.capitalize.php @@ -0,0 +1,42 @@ + + * Name: capitalize
+ * Purpose: capitalize words in the string + * @link http://smarty.php.net/manual/en/language.modifiers.php#LANGUAGE.MODIFIER.CAPITALIZE + * capitalize (Smarty online manual) + * @param string + * @return string + */ +function smarty_modifier_capitalize($string, $uc_digits = false) +{ + smarty_modifier_capitalize_ucfirst(null, $uc_digits); + return preg_replace_callback('!\b\w+\b!', 'smarty_modifier_capitalize_ucfirst', $string); +} + +function smarty_modifier_capitalize_ucfirst($string, $uc_digits = null) +{ + static $_uc_digits = false; + + if(isset($uc_digits)) { + $_uc_digits = $uc_digits; + return; + } + + if(!preg_match('!\d!',$string[0]) || $_uc_digits) + return ucfirst($string[0]); + else + return $string[0]; +} + + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.cat.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.cat.php new file mode 100644 index 000000000..f5dc3d689 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.cat.php @@ -0,0 +1,33 @@ + + * Name: cat
+ * Date: Feb 24, 2003 + * Purpose: catenate a value to a variable + * Input: string to catenate + * Example: {$var|cat:"foo"} + * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat + * (Smarty online manual) + * @author Monte Ohrt + * @version 1.0 + * @param string + * @param string + * @return string + */ +function smarty_modifier_cat($string, $cat) +{ + return $string . $cat; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_characters.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_characters.php new file mode 100644 index 000000000..49ce655e8 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_characters.php @@ -0,0 +1,31 @@ + + * Name: count_characteres
+ * Purpose: count the number of characters in a text + * @link http://smarty.php.net/manual/en/language.modifier.count.characters.php + * count_characters (Smarty online manual) + * @param string + * @param boolean include whitespace in the character count + * @return integer + */ +function smarty_modifier_count_characters($string, $include_spaces = false) +{ + if ($include_spaces) + return(strlen($string)); + + return preg_match_all("/[^\s]/",$string, $match); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_paragraphs.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_paragraphs.php new file mode 100644 index 000000000..6a9833c97 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_paragraphs.php @@ -0,0 +1,28 @@ + + * Name: count_paragraphs
+ * Purpose: count the number of paragraphs in a text + * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php + * count_paragraphs (Smarty online manual) + * @param string + * @return integer + */ +function smarty_modifier_count_paragraphs($string) +{ + // count \r or \n characters + return count(preg_split('/[\r\n]+/', $string)); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_sentences.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_sentences.php new file mode 100644 index 000000000..0c210f08f --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_sentences.php @@ -0,0 +1,28 @@ + + * Name: count_sentences + * Purpose: count the number of sentences in a text + * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php + * count_sentences (Smarty online manual) + * @param string + * @return integer + */ +function smarty_modifier_count_sentences($string) +{ + // find periods with a word before but not after. + return preg_match_all('/[^\s]\.(?!\w)/', $string, $match); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_words.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_words.php new file mode 100644 index 000000000..42c8a741c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.count_words.php @@ -0,0 +1,32 @@ + + * Name: count_words
+ * Purpose: count the number of words in a text + * @link http://smarty.php.net/manual/en/language.modifier.count.words.php + * count_words (Smarty online manual) + * @param string + * @return integer + */ +function smarty_modifier_count_words($string) +{ + // split text by ' ',\r,\n,\f,\t + $split_array = preg_split('/\s+/',$string); + // count matches that contain alphanumerics + $word_count = preg_grep('/[a-zA-Z0-9\\x80-\\xff]/', $split_array); + + return count($word_count); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.date_format.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.date_format.php new file mode 100644 index 000000000..2f36b3b79 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.date_format.php @@ -0,0 +1,48 @@ +_get_plugin_filepath('shared','make_timestamp'); +/** + * Smarty date_format modifier plugin + * + * Type: modifier
+ * Name: date_format
+ * Purpose: format datestamps via strftime
+ * Input:
+ * - string: input date string + * - format: strftime format for output + * - default_date: default date if $string is empty + * @link http://smarty.php.net/manual/en/language.modifier.date.format.php + * date_format (Smarty online manual) + * @param string + * @param string + * @param string + * @return string|void + * @uses smarty_make_timestamp() + */ +function smarty_modifier_date_format($string, $format="%b %e, %Y", $default_date=null) +{ + if (substr(PHP_OS,0,3) == 'WIN') { + $_win_from = array ('%e', '%T', '%D'); + $_win_to = array ('%#d', '%H:%M:%S', '%m/%d/%y'); + $format = str_replace($_win_from, $_win_to, $format); + } + if($string != '') { + return strftime($format, smarty_make_timestamp($string)); + } elseif (isset($default_date) && $default_date != '') { + return strftime($format, smarty_make_timestamp($default_date)); + } else { + return; + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.debug_print_var.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.debug_print_var.php new file mode 100644 index 000000000..b9bb18488 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.debug_print_var.php @@ -0,0 +1,56 @@ + + * Name: debug_print_var
+ * Purpose: formats variable contents for display in the console + * @link http://smarty.php.net/manual/en/language.modifier.debug.print.var.php + * debug_print_var (Smarty online manual) + * @param array|object + * @param integer + * @param integer + * @return string + */ +function smarty_modifier_debug_print_var($var, $depth = 0, $length = 40) +{ + $_replace = array("\n"=>'\n', "\r"=>'\r', "\t"=>'\t'); + if (is_array($var)) { + $results = "Array (".count($var).")"; + foreach ($var as $curr_key => $curr_val) { + $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length); + $results .= "
".str_repeat(' ', $depth*2)."".strtr($curr_key, $_replace)." => $return"; + } + } else if (is_object($var)) { + $object_vars = get_object_vars($var); + $results = "".get_class($var)." Object (".count($object_vars).")"; + foreach ($object_vars as $curr_key => $curr_val) { + $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length); + $results .= "
".str_repeat(' ', $depth*2)."$curr_key => $return"; + } + } else if (is_resource($var)) { + $results = ''.(string)$var.''; + } else if (empty($var) && $var != "0") { + $results = 'empty'; + } else { + if (strlen($var) > $length ) { + $results = substr($var, 0, $length-3).'...'; + } else { + $results = $var; + } + $results = htmlspecialchars($results); + $results = strtr($results, $_replace); + } + return $results; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.default.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.default.php new file mode 100644 index 000000000..8268e396f --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.default.php @@ -0,0 +1,31 @@ + + * Name: default
+ * Purpose: designate default value for empty variables + * @link http://smarty.php.net/manual/en/language.modifier.default.php + * default (Smarty online manual) + * @param string + * @param string + * @return string + */ +function smarty_modifier_default($string, $default = '') +{ + if (!isset($string) || $string === '') + return $default; + else + return $string; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.escape.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.escape.php new file mode 100644 index 000000000..0a0270c56 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.escape.php @@ -0,0 +1,89 @@ + + * Name: escape
+ * Purpose: Escape the string according to escapement type + * @link http://smarty.php.net/manual/en/language.modifier.escape.php + * escape (Smarty online manual) + * @param string + * @param html|htmlall|url|quotes|hex|hexentity|javascript + * @return string + */ +function smarty_modifier_escape($string, $esc_type = 'html') +{ + switch ($esc_type) { + case 'html': + return htmlspecialchars($string, ENT_QUOTES); + + case 'htmlall': + return htmlentities($string, ENT_QUOTES); + + case 'url': + return urlencode($string); + + case 'quotes': + // escape unescaped single quotes + return preg_replace("%(?'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n',''<\/')); + + case 'mail': + // safe way to display e-mail address on a web page + return str_replace(array('@', '.'),array(' [AT] ', ' [DOT] '), $string); + + case 'nonstd': + // escape non-standard chars, such as ms document quotes + $_res = ''; + for($_i = 0, $_len = strlen($string); $_i < $_len; $_i++) { + $_ord = ord($string{$_i}); + // non-standard char, escape it + if($_ord >= 126){ + $_res .= '&#' . $_ord . ';'; + } + else { + $_res .= $string{$_i}; + } + } + return $_res; + + default: + return $string; + } +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.indent.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.indent.php new file mode 100644 index 000000000..1642bac3d --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.indent.php @@ -0,0 +1,27 @@ + + * Name: indent
+ * Purpose: indent lines of text + * @link http://smarty.php.net/manual/en/language.modifier.indent.php + * indent (Smarty online manual) + * @param string + * @param integer + * @param string + * @return string + */ +function smarty_modifier_indent($string,$chars=4,$char=" ") +{ + return preg_replace('!^!m',str_repeat($char,$chars),$string); +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.lower.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.lower.php new file mode 100644 index 000000000..0b4d1517d --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.lower.php @@ -0,0 +1,25 @@ + + * Name: lower
+ * Purpose: convert string to lowercase + * @link http://smarty.php.net/manual/en/language.modifier.lower.php + * lower (Smarty online manual) + * @param string + * @return string + */ +function smarty_modifier_lower($string) +{ + return strtolower($string); +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.nl2br.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.nl2br.php new file mode 100644 index 000000000..86a28d207 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.nl2br.php @@ -0,0 +1,35 @@ + + * Name: nl2br
+ * Date: Feb 26, 2003 + * Purpose: convert \r\n, \r or \n to <
> + * Input:
+ * - contents = contents to replace + * - preceed_test = if true, includes preceeding break tags + * in replacement + * Example: {$text|nl2br} + * @link http://smarty.php.net/manual/en/language.modifier.nl2br.php + * nl2br (Smarty online manual) + * @version 1.0 + * @author Monte Ohrt + * @param string + * @return string + */ +function smarty_modifier_nl2br($string) +{ + return nl2br($string); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.regex_replace.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.regex_replace.php new file mode 100644 index 000000000..b9cc865ea --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.regex_replace.php @@ -0,0 +1,29 @@ + + * Name: regex_replace
+ * Purpose: regular epxression search/replace + * @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php + * regex_replace (Smarty online manual) + * @param string + * @param string|array + * @param string|array + * @return string + */ +function smarty_modifier_regex_replace($string, $search, $replace) +{ + return preg_replace($search, $replace, $string); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.replace.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.replace.php new file mode 100644 index 000000000..2a43515f7 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.replace.php @@ -0,0 +1,29 @@ + + * Name: replace
+ * Purpose: simple search/replace + * @link http://smarty.php.net/manual/en/language.modifier.replace.php + * replace (Smarty online manual) + * @param string + * @param string + * @param string + * @return string + */ +function smarty_modifier_replace($string, $search, $replace) +{ + return str_replace($search, $replace, $string); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.spacify.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.spacify.php new file mode 100644 index 000000000..dad057f9b --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.spacify.php @@ -0,0 +1,29 @@ + + * Name: spacify
+ * Purpose: add spaces between characters in a string + * @link http://smarty.php.net/manual/en/language.modifier.spacify.php + * spacify (Smarty online manual) + * @param string + * @param string + * @return string + */ +function smarty_modifier_spacify($string, $spacify_char = ' ') +{ + return implode($spacify_char, + preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY)); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.string_format.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.string_format.php new file mode 100644 index 000000000..efd621506 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.string_format.php @@ -0,0 +1,28 @@ + + * Name: string_format
+ * Purpose: format strings via sprintf + * @link http://smarty.php.net/manual/en/language.modifier.string.format.php + * string_format (Smarty online manual) + * @param string + * @param string + * @return string + */ +function smarty_modifier_string_format($string, $format) +{ + return sprintf($format, $string); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.strip.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.strip.php new file mode 100644 index 000000000..738c6407e --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.strip.php @@ -0,0 +1,33 @@ + + * Name: strip
+ * Purpose: Replace all repeated spaces, newlines, tabs + * with a single space or supplied replacement string.
+ * Example: {$var|strip} {$var|strip:" "} + * Date: September 25th, 2002 + * @link http://smarty.php.net/manual/en/language.modifier.strip.php + * strip (Smarty online manual) + * @author Monte Ohrt + * @version 1.0 + * @param string + * @param string + * @return string + */ +function smarty_modifier_strip($text, $replace = ' ') +{ + return preg_replace('!\s+!', $replace, $text); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.strip_tags.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.strip_tags.php new file mode 100644 index 000000000..45f1ec14d --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.strip_tags.php @@ -0,0 +1,31 @@ + + * Name: strip_tags
+ * Purpose: strip html tags from text + * @link http://smarty.php.net/manual/en/language.modifier.strip.tags.php + * strip_tags (Smarty online manual) + * @param string + * @param boolean + * @return string + */ +function smarty_modifier_strip_tags($string, $replace_with_space = true) +{ + if ($replace_with_space) + return preg_replace('!<[^>]*?>!', ' ', $string); + else + return strip_tags($string); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.truncate.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.truncate.php new file mode 100644 index 000000000..15a26ba97 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.truncate.php @@ -0,0 +1,43 @@ + + * Name: truncate
+ * Purpose: Truncate a string to a certain length if necessary, + * optionally splitting in the middle of a word, and + * appending the $etc string. + * @link http://smarty.php.net/manual/en/language.modifier.truncate.php + * truncate (Smarty online manual) + * @param string + * @param integer + * @param string + * @param boolean + * @return string + */ +function smarty_modifier_truncate($string, $length = 80, $etc = '...', + $break_words = false) +{ + if ($length == 0) + return ''; + + if (strlen($string) > $length) { + $length -= strlen($etc); + if (!$break_words) + $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1)); + + return substr($string, 0, $length).$etc; + } else + return $string; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.upper.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.upper.php new file mode 100644 index 000000000..69960ae72 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.upper.php @@ -0,0 +1,25 @@ + + * Name: upper
+ * Purpose: convert string to uppercase + * @link http://smarty.php.net/manual/en/language.modifier.upper.php + * upper (Smarty online manual) + * @param string + * @return string + */ +function smarty_modifier_upper($string) +{ + return strtoupper($string); +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.wordwrap.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.wordwrap.php new file mode 100644 index 000000000..b9a9fe94b --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/modifier.wordwrap.php @@ -0,0 +1,28 @@ + + * Name: wordwrap
+ * Purpose: wrap a string of text at a given length + * @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php + * wordwrap (Smarty online manual) + * @param string + * @param integer + * @param string + * @param boolean + * @return string + */ +function smarty_modifier_wordwrap($string,$length=80,$break="\n",$cut=false) +{ + return wordwrap($string,$length,$break,$cut); +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/outputfilter.trimwhitespace.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/outputfilter.trimwhitespace.php new file mode 100644 index 000000000..9979e8586 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/outputfilter.trimwhitespace.php @@ -0,0 +1,75 @@ + + * Type: outputfilter
+ * Name: trimwhitespace
+ * Date: Jan 25, 2003
+ * Purpose: trim leading white space and blank lines from + * template source after it gets interpreted, cleaning + * up code and saving bandwidth. Does not affect + * <
>
and blocks.
+ * Install: Drop into the plugin directory, call + * $smarty->load_filter('output','trimwhitespace'); + * from application. + * @author Monte Ohrt + * @author Contributions from Lars Noschinski + * @version 1.3 + * @param string + * @param Smarty + */ +function smarty_outputfilter_trimwhitespace($source, &$smarty) +{ + // Pull out the script blocks + preg_match_all("!]+>.*?!is", $source, $match); + $_script_blocks = $match[0]; + $source = preg_replace("!]+>.*?!is", + '@@@SMARTY:TRIM:SCRIPT@@@', $source); + + // Pull out the pre blocks + preg_match_all("!
.*?
!is", $source, $match); + $_pre_blocks = $match[0]; + $source = preg_replace("!
.*?
!is", + '@@@SMARTY:TRIM:PRE@@@', $source); + + // Pull out the textarea blocks + preg_match_all("!]+>.*?!is", $source, $match); + $_textarea_blocks = $match[0]; + $source = preg_replace("!]+>.*?!is", + '@@@SMARTY:TRIM:TEXTAREA@@@', $source); + + // remove all leading spaces, tabs and carriage returns NOT + // preceeded by a php close tag. + $source = trim(preg_replace('/((?)\n)[\s]+/m', '\1', $source)); + + // replace script blocks + smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:SCRIPT@@@",$_script_blocks, $source); + + // replace pre blocks + smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:PRE@@@",$_pre_blocks, $source); + + // replace textarea blocks + smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:TEXTAREA@@@",$_textarea_blocks, $source); + + return $source; +} + +function smarty_outputfilter_trimwhitespace_replace($search_str, $replace, &$subject) { + $_len = strlen($search_str); + $_pos = 0; + for ($_i=0, $_count=count($replace); $_i<$_count; $_i++) + if (($_pos=strpos($subject, $search_str, $_pos))!==false) + $subject = substr_replace($subject, $replace[$_i], $_pos, $_len); + else + break; + +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/shared.escape_special_chars.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/shared.escape_special_chars.php new file mode 100644 index 000000000..515763abe --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/shared.escape_special_chars.php @@ -0,0 +1,30 @@ + + * Purpose: used by other smarty functions to escape + * special chars except for already escaped ones + * @param string + * @return string + */ +function smarty_function_escape_special_chars($string) +{ + if(!is_array($string)) { + $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string); + $string = htmlspecialchars($string); + $string = str_replace(array('%%%SMARTY_START%%%','%%%SMARTY_END%%%'), array('&',';'), $string); + } + return $string; +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/shared.make_timestamp.php b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/shared.make_timestamp.php new file mode 100644 index 000000000..acdd77735 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/libs/plugins/shared.make_timestamp.php @@ -0,0 +1,43 @@ + + * Purpose: used by other smarty functions to make a timestamp + * from a string. + * @param string + * @return string + */ +function smarty_make_timestamp($string) +{ + if(empty($string)) { + $string = "now"; + } + $time = strtotime($string); + if (is_numeric($time) && $time != -1) + return $time; + + // is mysql timestamp format of YYYYMMDDHHMMSS? + if (preg_match('/^\d{14}$/', $string)) { + $time = mktime(substr($string,8,2),substr($string,10,2),substr($string,12,2), + substr($string,4,2),substr($string,6,2),substr($string,0,4)); + + return $time; + } + + // couldn't recognize it, try to return a time + $time = (int) $string; + if ($time > 0) + return $time; + else + return time(); +} + +/* vim: set expandtab: */ + +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/misc/smarty_icon.README b/livesupport/modules/htmlUI/var/html/Smarty/misc/smarty_icon.README new file mode 100644 index 000000000..a5b4d05cc --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/misc/smarty_icon.README @@ -0,0 +1,6 @@ +Feel free to put the smarty icon on your site. +You can cut-and-paste the following code, be sure +to adjust the path to the image: + + + diff --git a/livesupport/modules/htmlUI/var/html/Smarty/misc/smarty_icon.gif b/livesupport/modules/htmlUI/var/html/Smarty/misc/smarty_icon.gif new file mode 100644 index 000000000..5d5196995 Binary files /dev/null and b/livesupport/modules/htmlUI/var/html/Smarty/misc/smarty_icon.gif differ diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/README b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/README new file mode 100644 index 000000000..d4d973130 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/README @@ -0,0 +1,32 @@ +Smarty Unit Testing +------------------- + +Smarty unit tests require the PEAR PHPUnit +package to be installed. See if you have that +installed with the following command: + +$> pear list + +If you don't see PHPUnit, install with this: + +$> pear install PHPUnit + +Edit the config.php file, +be sure everything is defined correctly. + +Be sure the following directories are present: + +templates +configs +templates_c (writable) +cache (writable) + +Then run from the command line: +php -q smarty_unit_test.php + +Or from the web browser: +http://www.your_domain.com/path/to/smarty_unit_test_gui.php + +This will run a unit test for every component +of Smarty and dump the results. All should pass +with flying colors. :) diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/config.php b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/config.php new file mode 100644 index 000000000..5e7da0561 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/config.php @@ -0,0 +1,5 @@ + diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/configs/globals_double_quotes.conf b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/configs/globals_double_quotes.conf new file mode 100644 index 000000000..5abc475eb --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/configs/globals_double_quotes.conf @@ -0,0 +1 @@ +foo = "bar" diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/configs/globals_single_quotes.conf b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/configs/globals_single_quotes.conf new file mode 100644 index 000000000..4517b7bd1 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/configs/globals_single_quotes.conf @@ -0,0 +1 @@ +foo = 'bar' diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/smarty_unit_test.php b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/smarty_unit_test.php new file mode 100644 index 000000000..c56a61a0e --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/smarty_unit_test.php @@ -0,0 +1,10 @@ + toString(); +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/smarty_unit_test_gui.php b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/smarty_unit_test_gui.php new file mode 100644 index 000000000..03309d4cb --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/smarty_unit_test_gui.php @@ -0,0 +1,10 @@ + toHTML(); +?> diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/assign_var.tpl b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/assign_var.tpl new file mode 100644 index 000000000..acc4b66a4 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/assign_var.tpl @@ -0,0 +1 @@ +{$foo} diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/constant.tpl b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/constant.tpl new file mode 100644 index 000000000..7ae11f1dc --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/constant.tpl @@ -0,0 +1 @@ +{$smarty.const.TEST_CONSTANT} diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/index.tpl b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/index.tpl new file mode 100644 index 000000000..fb6aad233 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/index.tpl @@ -0,0 +1 @@ +TEST STRING diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/parse_math.tpl b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/parse_math.tpl new file mode 100644 index 000000000..0b787d363 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/parse_math.tpl @@ -0,0 +1,12 @@ +{foreach name=loop from=$items item=i} +{$smarty.foreach.loop.iteration+2} +{$smarty.foreach.loop.iteration+$flt} +{$smarty.foreach.loop.iteration+$obj->six()} +{$smarty.foreach.loop.iteration+$obj->ten} +{/foreach} +{$obj->ten+$flt} +{$obj->ten*$flt} +{$obj->six()+$obj->ten} +{$obj->ten+$obj->ten} +{$obj->six()+$flt} +{$obj->six()+$items.0} diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/parse_obj_meth.tpl b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/parse_obj_meth.tpl new file mode 100644 index 000000000..ab198327f --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/templates/parse_obj_meth.tpl @@ -0,0 +1,8 @@ +{$obj->meth($foo, 2.5)} +{$obj->meth(2.5, $foo)} +{$obj->meth(2.5)} +{$obj->meth($obj->val, "foo")} +{$obj->meth("foo", $obj->val)} +{$obj->meth("foo", $foo)} +{$obj->meth($obj->arr.one, 2)} +{$obj->meth($obj->meth("foo", $foo))} diff --git a/livesupport/modules/htmlUI/var/html/Smarty/unit_test/test_cases.php b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/test_cases.php new file mode 100644 index 000000000..2df920e90 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/Smarty/unit_test/test_cases.php @@ -0,0 +1,450 @@ + 'one', 'two' => 2); + var $ten = 10; + + function meth($a="a", $b="b") { + return "$a:$b"; + } + + function six() { + return 6; + } +} + + +class SmartyTest extends PHPUnit_TestCase { + // contains the object handle of the string class + var $abc; + // contains the last triggered error's errorlevel + var $errorlevel; + + // constructor of the test suite + function SmartyTest($name) { + $this->PHPUnit_TestCase($name); + } + + // called before the test functions will be executed + // this function is defined in PHPUnit_TestCase and overwritten + // here + function setUp() { + // create a new instance of String with the + // string 'abc' + $this->smarty = new Smarty; + } + // called after the test functions are executed + // this function is defined in PHPUnit_TestCase and overwritten + // here + function tearDown() { + // delete your instance + unset($this->smarty); + } + + // dummy errorhandler for functions that are supposed to call trigger_error() + function error_handler($errorlevel) { + if ($errorlevel) $this->errorlevel = $errorlevel; + } + + /* DIRECTORY TESTS */ + + // test that template_dir exists + function test_template_dir_exists() { + $this->assertTrue(file_exists($this->smarty->template_dir)); + } + // test that template_dir is a directory + function test_template_dir_is_dir() { + $this->assertTrue(is_dir($this->smarty->template_dir)); + } + // test that template_dir is readable + function test_template_dir_is_readable() { + $this->assertTrue(is_readable($this->smarty->template_dir)); + } + // test that config_dir exists + function test_config_dir_exists() { + $this->assertTrue(file_exists($this->smarty->config_dir)); + } + // test that config_dir is a directory + function test_config_dir_is_dir() { + $this->assertTrue(is_dir($this->smarty->config_dir)); + } + // test that config_dir is readable + function test_config_dir_is_readable() { + $this->assertTrue(is_readable($this->smarty->config_dir)); + } + // test that compile_dir exists + function test_compile_dir_exists() { + $this->assertTrue(file_exists($this->smarty->compile_dir)); + } + // test that compile_dir is a directory + function test_compile_dir_is_dir() { + $this->assertTrue(is_dir($this->smarty->compile_dir)); + } + // test that compile_dir is readable + function test_compile_dir_is_readable() { + $this->assertTrue(is_readable($this->smarty->compile_dir)); + } + // test that compile_dir is writable + function test_compile_dir_is_writable() { + $this->assertTrue(is_writable($this->smarty->compile_dir)); + } + // test that cache_dir exists + function test_cache_dir_exists() { + $this->assertTrue(file_exists($this->smarty->cache_dir)); + } + // test that cache_dir is a directory + function test_cache_dir_is_dir() { + $this->assertTrue(is_dir($this->smarty->cache_dir)); + } + // test that cache_dir is readable + function test_cache_dir_is_readable() { + $this->assertTrue(is_readable($this->smarty->cache_dir)); + } + // test that cache_dir is writable + function test_cache_dir_is_writable() { + $this->assertTrue(is_writable($this->smarty->cache_dir)); + } + + /* METHOD EXISTS TESTS */ + function test_assign_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'assign')); + } + function test_assign_by_ref_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'assign_by_ref')); + } + function test_append_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'append')); + } + function test_append_by_ref_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'append_by_ref')); + } + function test_clear_assign_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'clear_assign')); + } + function test_register_function_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_function')); + } + function test_unregister_function_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_function')); + } + function test_register_object_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_object')); + } + function test_unregister_object_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_object')); + } + function test_register_block_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_block')); + } + function test_unregister_block_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_block')); + } + function test_register_compiler_function_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_compiler_function')); + } + function test_unregister_compiler_function_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_compiler_function')); + } + function test_register_modifier_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_modifier')); + } + function test_unregister_modifier_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_modifier')); + } + function test_register_resource_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_resource')); + } + function test_unregister_resource_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_resource')); + } + function test_register_prefilter_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_prefilter')); + } + function test_unregister_prefilter_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_prefilter')); + } + function test_register_postfilter_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_postfilter')); + } + function test_unregister_postfilter_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_postfilter')); + } + function test_register_outputfilter_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'register_outputfilter')); + } + function test_unregister_outputfilter_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'unregister_outputfilter')); + } + function test_load_filter_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'load_filter')); + } + function test_clear_cache_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'clear_cache')); + } + function test_clear_all_cache_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'clear_all_cache')); + } + function test_is_cached_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'is_cached')); + } + function test_clear_all_assign_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'clear_all_assign')); + } + function test_clear_compiled_tpl_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'clear_compiled_tpl')); + } + function test_template_exists_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'template_exists')); + } + function test_get_template_vars_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'get_template_vars')); + } + function test_get_config_vars_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'get_config_vars')); + } + function test_trigger_error_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'trigger_error')); + } + function test_display_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'display')); + } + function test_fetch_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'fetch')); + } + function test_config_load_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'config_load')); + } + function test_get_registered_object_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'get_registered_object')); + } + function test_clear_config_method_exists() { + $this->assertTrue(method_exists($this->smarty, 'clear_config')); + } + function test_get_plugin_filepath() { + $this->assertTrue(method_exists($this->smarty, '_get_plugin_filepath')); + } + + + function test_clear_compiled_tpl() { + $this->assertTrue($this->smarty->clear_compiled_tpl()); + } + + /* DISPLAY TESTS */ + + // test that display() executes properly + function test_call_to_display() { + ob_start(); + $this->smarty->display('index.tpl'); + $output = ob_get_contents(); + ob_end_clean(); + $this->assertEquals($output, 'TEST STRING'); + } + + /* FETCH TESTS */ + + // test that fetch() executes properly + function test_call_to_fetch() { + $this->assertEquals($this->smarty->fetch('index.tpl'), 'TEST STRING'); + } + + /* ASSIGN TESTS */ + + // test assigning a simple template variable + function test_assign_var() { + $this->smarty->assign('foo', 'bar'); + $this->assertEquals($this->smarty->fetch('assign_var.tpl'), 'bar'); + } + + /* PARSING TESTS */ + + // test assigning and calling an object + function test_parse_obj_meth() { + $obj = new Obj(); + $this->smarty->assign('obj', $obj); + $this->smarty->assign('foo', 'foo'); + $this->assertEquals('foo:2.5 +2.5:foo +2.5:b +val:foo +foo:val +foo:foo +one:2 +foo:foo:b', $this->smarty->fetch('parse_obj_meth.tpl')); + } + + // test assigning and calling an object + function test_parse_math() { + $obj = new Obj(); + $this->smarty->assign('obj', $obj); + $this->smarty->assign('flt', 2.5); + $this->smarty->assign('items', array(1, 2)); + $this->assertEquals('3 +3.5 +7 +11 +4 +4.5 +8 +12 +12.5 +25 +16 +20 +8.5 +7', $this->smarty->fetch('parse_math.tpl')); + } + + /* CONFIG FILE TESTS */ + + // test assigning a double quoted global variable + function test_config_load_globals_double_quotes() { + // load the global var + $this->smarty->config_load('globals_double_quotes.conf'); + // test that it is assigned + $this->assertEquals($this->smarty->_config[0]['vars']['foo'], 'bar'); + } + + // test assigning a single quoted global variable + function test_config_load_globals_single_quotes() { + // load the global var + $this->smarty->config_load('globals_single_quotes.conf'); + // test that it is assigned + $this->assertEquals($this->smarty->_config[0]['vars']['foo'], 'bar'); + } + + // test loading and running modifier.escape.php + function test_escape_modifier_get_plugins_filepath() { + $filepath = $this->smarty->_get_plugin_filepath('modifier', 'escape'); + $this->assertTrue($filepath); + } + + function test_escape_modifier_include_file() { + $filepath = $this->smarty->_get_plugin_filepath('modifier', 'escape'); + $this->assertTrue(include($filepath)); + } + + function test_escape_modifier_function_exists() { + $this->assertTrue(function_exists('smarty_modifier_escape')); + } + + function test_escape_modifier_escape_default() { + $string = smarty_modifier_escape(""); + $this->assertEquals('<html><body></body></html>', + $string); + } + + function test_escape_modifier_escape_html() { + $string = smarty_modifier_escape("", 'html'); + $this->assertEquals('<html><body></body></html>', + $string); + } + + function test_escape_modifier_escape_htmlall() { + $string = smarty_modifier_escape("", 'htmlall'); + $this->assertEquals('<html><body></body></html>', + $string); + } + + function test_escape_modifier_escape_url() { + $string = smarty_modifier_escape("http://test.com?foo=bar", 'url'); + $this->assertEquals('http%3A%2F%2Ftest.com%3Ffoo%3Dbar', $string); + } + + function test_escape_modifier_escape_quotes() { + $string = smarty_modifier_escape("'\\'\\''", 'quotes'); + $this->assertEquals("\\'\\'\\'\\'", $string); + } + + function test_escape_modifier_escape_hex() { + $string = smarty_modifier_escape("abcd", 'hex'); + $this->assertEquals('%61%62%63%64', $string); + } + + function test_escape_modifier_escape_hexentity() { + $string = smarty_modifier_escape("ABCD", 'hexentity'); + $this->assertEquals('ABCD', $string); + } + + function test_escape_modifier_escape_javascript() { + $string = smarty_modifier_escape("\r\n\\", 'javascript'); + $this->assertEquals('\\r\\n\\\\', $string); + } + + + function test_core_is_secure_file_exists() { + $file = SMARTY_CORE_DIR . 'core.is_secure.php'; + $this->assertTrue(file_exists($file)); + } + + function test_core_is_secure_file_include() { + $file = SMARTY_CORE_DIR . 'core.is_secure.php'; + $this->assertTrue(include($file)); + } + + function test_core_is_secure_function_exists() { + $this->assertTrue(function_exists('smarty_core_is_secure')); + } + + function test_core_is_secure_function_is_secure_true() { + $security = $this->smarty->security; + $this->smarty->security = true; + + /* check if index.tpl is secure (should be true) */ + $params = array('resource_type' => 'file', + 'resource_base_path' => dirname(__FILE__) . '/templates', + 'resource_name' => dirname(__FILE__) . '/templates/index.tpl'); + $this->assertTrue(smarty_core_is_secure($params, $this->smarty)); + $this->smarty->security = $security; + } + + function test_core_is_secure_function_is_secure_false() { + $security = $this->smarty->security; + $this->smarty->security = true; + /* check if test_cases.php is secure (should be false) */ + $params = array('resource_type' => 'file', + 'resource_base_path' => dirname(__FILE__) . '/templates', + 'resource_name' => __FILE__); + $this->assertFalse(smarty_core_is_secure($params, $this->smarty)); + $this->smarty->security = $security; + + } + + // test constants and security + function test_core_is_secure_function_smarty_var_const() { + define('TEST_CONSTANT', 'test constant'); + $this->assertEquals('test constant', $this->smarty->fetch('constant.tpl', + null, 'var_const')); + } + + function test_core_is_secure_function_smarty_var_const_allowed() { + $security = $this->smarty->security; + $security_settings = $this->smarty->security_settings; + $this->smarty->security_settings['ALLOW_CONSTANTS'] = true; + $this->smarty->security = true; + $this->assertEquals('test constant', $this->smarty->fetch('constant.tpl', + null, 'var_const_allowed')); + $this->smarty->security_settings = $security_settings; + $this->smarty->security = $security; + } + + function test_core_is_secure_function_smarty_var_const_not_allowed() { + $security = $this->smarty->security; + $this->smarty->security = true; + /* catch errors: */ + $this->errorlevel = null; + set_error_handler(array(&$this, 'error_handler')); + $this->smarty->fetch('constant.tpl', null, 'var_const_not_allowed'); + restore_error_handler(); + + $this->assertEquals( $this->errorlevel, E_USER_WARNING); + $this->smarty->security = $security; + } + +} + +?> diff --git a/livesupport/modules/htmlUI/var/html/SmartyDynamic_example.php b/livesupport/modules/htmlUI/var/html/SmartyDynamic_example.php new file mode 100644 index 000000000..95f71c8ca --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/SmartyDynamic_example.php @@ -0,0 +1,108 @@ + + * @author Alexey Borzov + * + * $Id: SmartyDynamic_example.php,v 1.1 2005/02/03 16:55:35 sebastian Exp $ + */ + +require_once 'HTML/QuickForm.php'; +require_once 'HTML/QuickForm/Renderer/Array.php'; +// fix this if your Smarty is somewhere else +require_once 'Smarty/libs/Smarty.class.php'; + +$form = new HTML_QuickForm('frmTest', 'post'); + +$form->setDefaults(array( + 'itxtTest' => 'Test Text Box', + 'itxaTest' => 'Hello World', + 'iselTest' => array('B', 'C'), + 'name' => array('first' => 'Thomas', 'last' => 'Schulz'), + 'iradYesNo' => 'Y', + 'ichkABCD' => array('A'=>true,'D'=>true) +)); + +$form->addElement('header', '', 'Normal Elements'); + +$form->addElement('hidden', 'ihidTest', 'hiddenField'); + +$form->addElement('text', 'itxtTest', array('Test Text', 'note' => 'Note for Testtext element.')); + +$form->addElement('textarea', 'itxaTest', 'Test TextArea', 'cols="40" rows="2"'); + +// will be later assigned to style green +$form->addElement('password', 'ipwdTest', 'Test Password'); +$select =& $form->addElement( + 'select', + 'iselTest', + array('Test Select', 'note' => 'We recommend to check at least two categories!'), + array('A'=>'A * * * * (luxory)', 'B'=>'B * * *','C'=>'C * *','D'=>'D * (simple)') + ); +$select->setSize(4); +$select->setMultiple(true); + +$form->addElement('submit', 'isubTest', 'Test Submit'); + +$form->addElement('header', '', 'Grouped Elements'); + +$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A'); +$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'B', null, 'B'); +$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'C', null, 'C'); +$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'D', null, 'D'); +$form->addGroup($checkbox, 'ichkABCD', 'ABCD', array(' ', '
')); + +// will be later assigned to style fancygroup +$radio[] = &HTML_QuickForm::createElement('radio', null, null, 'Yes', 'Y'); +$radio[] = &HTML_QuickForm::createElement('radio', null, null, 'No', 'N'); +$form->addGroup($radio, 'iradYesNo', 'Yes/No'); + +// will be later assigned to style fancygroup +$name['first'] = &HTML_QuickForm::createElement('text', 'first', 'First:'); +$name['first']->setSize(20); +$name['last'] = &HTML_QuickForm::createElement('text', 'last', 'Last:'); +$name['last']->setSize(30); +$form->addGroup($name, 'name', 'Name'); + +// add some 'required' rules to show "stars" and (possible) errors... +$form->addRule('itxtTest', 'Test Text is a required field', 'required'); +$form->addRule('itxaTest', 'Test TextArea is a required field', 'required'); +$form->addGroupRule('iradYesNo', 'Check Yes or No', 'required'); +$form->addGroupRule('name', array('last' => array(array('Last name is required', 'required')))); + +// try to validate the form +if ($form->validate()) { + $form->freeze(); +} + +$renderer =& new HTML_QuickForm_Renderer_Array(true, true); + +// give some elements aditional style informations +$renderer->setElementStyle(array( + 'ipwdTest' => 'green', + 'iradYesNo' => 'fancygroup', + 'name' => 'fancygroup' +)); + +$form->accept($renderer); + +// setup a template object +$tpl =& new Smarty; +$tpl->template_dir = './templates'; +$tpl->compile_dir = './templates_c'; + +// assign array with form data +$tpl->assign('form', $renderer->toArray()); + +// capture the array stucture +// (only for showing in sample template) +ob_start(); +print_r($renderer->toArray()); +$tpl->assign('dynamic_array', ob_get_contents()); +ob_end_clean(); + +// render and display the template +$tpl->display('smarty-dynamic.tpl'); + +?> diff --git a/livesupport/modules/htmlUI/var/html/SmartyStatic_example.php b/livesupport/modules/htmlUI/var/html/SmartyStatic_example.php new file mode 100644 index 000000000..1bc4ae7e7 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/SmartyStatic_example.php @@ -0,0 +1,137 @@ + + * @author Thomas Schulz + * + * $Id: SmartyStatic_example.php,v 1.1 2005/02/03 16:55:35 sebastian Exp $ + */ + +require_once 'HTML/QuickForm.php'; +require_once 'HTML/QuickForm/Renderer/ArraySmarty.php'; +// fix this if your Smarty is somewhere else +require_once 'Smarty/libs/Smarty.class.php'; + +// Form name will be used to find the placeholders. + +$form = new HTML_QuickForm('form', 'POST'); + +// Fills with some defaults values + +$defaultValues['company'] = 'Mamasam'; +$defaultValues['country'] = array(); +$defaultValues['name'] = array('first'=>'Bertrand', 'last'=>'Mansion'); +$defaultValues['phone'] = array('513', '123', '4567'); +$form->setDefaults($defaultValues); + +// Hidden + +$form->addElement('hidden', 'session', '1234567890'); + +// Personal information + +$form->addElement('header', 'personal', 'Personal Information'); + +$form->addElement('hidden', 'ihidTest', 'hiddenField'); +$form->addElement('text', 'email', 'Your email:'); +$form->addElement('password', 'pass', array('Your password:', 'note'=>'Please, choose a 8-10 characters password.'), 'size=10'); +$name['last'] = &HTML_QuickForm::createElement('text', 'first', 'First', 'size=10'); +$name['first'] = &HTML_QuickForm::createElement('text', 'last', 'Last', 'size=10'); +$form->addGroup($name, 'name', 'Name:', ', '); +$areaCode = &HTML_QuickForm::createElement('text', '', null,'size=4 maxlength=3'); +$phoneNo1 = &HTML_QuickForm::createElement('text', '', null, 'size=4 maxlength=3'); +$phoneNo2 = &HTML_QuickForm::createElement('text', '', null, 'size=5 maxlength=4'); +$form->addGroup(array($areaCode, $phoneNo1, $phoneNo2), 'phone', 'Telephone:', '-'); + +// Company information + +$form->addElement('header', 'company_info', 'Company Information'); + +$form->addElement('text', 'company', 'Company:', 'size=20'); + +$str[] = &HTML_QuickForm::createElement('text', '', null, 'size=20'); +$str[] = &HTML_QuickForm::createElement('text', '', null, 'size=20'); +$form->addGroup($str, 'street', 'Street:', '
'); + +$addr['zip'] = &HTML_QuickForm::createElement('text', 'zip', 'Zip', 'size=6 maxlength=10'); +$addr['city'] = &HTML_QuickForm::createElement('text', 'city', 'City', 'size=15'); +$form->addGroup($addr, 'address', 'Zip, city:'); + +$select = array('' => 'Please select...', 'AU' => 'Australia', 'FR' => 'France', 'DE' => 'Germany', 'IT' => 'Italy'); +$form->addElement('select', 'country', 'Country:', $select); + +$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A'); +$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'B', null, 'B'); +$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'C', null, 'C'); +$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'D', null, 'D'); +$form->addGroup($checkbox, 'destination', 'Destination:', array(' ', '
')); + +// Other elements + +$form->addElement('checkbox', 'news', '', " Check this box if you don't want to receive our newsletter."); + +$form->addElement('reset', 'reset', 'Reset'); +$form->addElement('submit', 'submit', 'Register'); + +// Adds some validation rules + +$form->addRule('email', 'Email address is required', 'required'); +$form->addGroupRule('name', 'Name is required', 'required'); +$form->addRule('pass', 'Password must be between 8 to 10 characters', 'rangelength', array(8, 10)); +$form->addRule('country', 'Country is a required field', 'required'); +$form->addGroupRule('destination', 'Please check at least two boxes', 'required', null, 2); +$form->addGroupRule('phone', 'Please fill all phone fields', 'required'); +$form->addGroupRule('phone', 'Values must be numeric', 'numeric'); + +$AddrRules['zip'][0] = array('Zip code is required', 'required'); +$AddrRules['zip'][1] = array('Zip code is numeric only', 'numeric'); +$AddrRules['city'][0] = array('City is required', 'required'); +$AddrRules['city'][1] = array('City is letters only', 'lettersonly'); +$form->addGroupRule('address', $AddrRules); + +// Tries to validate the form +if ($form->validate()) { + // Form is validated, then freezes the data + $form->freeze(); +} + +// setup a template object +$tpl =& new Smarty; +$tpl->template_dir = './templates'; +$tpl->compile_dir = './templates_c'; + +$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($tpl, true); + +$renderer->setRequiredTemplate( + '{if $error} + {$label|upper} + {else} + {$label} + {if $required} + * + {/if} + {/if}' + ); + +$renderer->setErrorTemplate( + '{if $error} + {$error}
+ {/if}{$html}' + ); + +$form->accept($renderer); + +// assign array with form data +$tpl->assign('form', $renderer->toArray()); + +// capture the array stucture +ob_start(); +print_r($renderer->toArray()); +$tpl->assign('static_array', ob_get_contents()); +ob_end_clean(); + +// render and display the template +$tpl->display('smarty-static.tpl'); + +?> diff --git a/livesupport/modules/htmlUI/var/html/clock.php b/livesupport/modules/htmlUI/var/html/clock.php new file mode 100644 index 000000000..99a2fa4f6 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/clock.php @@ -0,0 +1,178 @@ + date('H'), + 'minute'=> date('m'), + 'second'=> date('s') +); + +?> + + + + + + + +server time is: +
+local time is:    + diff --git a/livesupport/modules/htmlUI/var/html/img/a_Fernsehturm.jpg b/livesupport/modules/htmlUI/var/html/img/a_Fernsehturm.jpg new file mode 100644 index 000000000..803290595 Binary files /dev/null and b/livesupport/modules/htmlUI/var/html/img/a_Fernsehturm.jpg differ diff --git a/livesupport/modules/htmlUI/var/html/img/logo.jpg b/livesupport/modules/htmlUI/var/html/img/logo.jpg new file mode 100644 index 000000000..803290595 Binary files /dev/null and b/livesupport/modules/htmlUI/var/html/img/logo.jpg differ diff --git a/livesupport/modules/htmlUI/var/html/img/logo1.jpg b/livesupport/modules/htmlUI/var/html/img/logo1.jpg new file mode 100644 index 000000000..502a9965d Binary files /dev/null and b/livesupport/modules/htmlUI/var/html/img/logo1.jpg differ diff --git a/livesupport/modules/htmlUI/var/html/index.php b/livesupport/modules/htmlUI/var/html/index.php new file mode 100644 index 000000000..65c1015fb --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/index.php @@ -0,0 +1,4 @@ + diff --git a/livesupport/modules/htmlUI/var/html/rightmouseclick.html b/livesupport/modules/htmlUI/var/html/rightmouseclick.html new file mode 100644 index 000000000..a6fe8ac79 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/rightmouseclick.html @@ -0,0 +1,26 @@ + + + + + Untitled + + + + + + +xxxxx + + \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic-fancygroup.tpl b/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic-fancygroup.tpl new file mode 100644 index 000000000..f4636586b --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic-fancygroup.tpl @@ -0,0 +1,28 @@ + + + + + {if $element.required}*{/if}{$element.label}: + + + + {foreach key=gkey item=gitem from=$element.elements} + + {if $gitem.type eq "radio"} + + {else} + + + {/if} + + {/foreach} +
+ {$gitem.html} + + {if $gitem.required}*{/if} + {$gitem.label} + + {$gitem.html} +
+ + diff --git a/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic-green.tpl b/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic-green.tpl new file mode 100644 index 000000000..38313141e --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic-green.tpl @@ -0,0 +1,9 @@ + + + + {$element.label}: + + {if $element.error}{$element.error}
{/if} + {$element.html}{if $element.required}*{/if} + + diff --git a/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic.tpl b/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic.tpl new file mode 100644 index 000000000..a9dfb5520 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/examples/smarty-dynamic.tpl @@ -0,0 +1,134 @@ + + + + + Smarty template for Array renderer + + + + + +{$form.javascript} + + + {$form.hidden} + + {foreach item=sec key=i from=$form.sections} + + + + + {foreach item=element from=$sec.elements} + + + {if $element.style} + {include file="smarty-dynamic-`$element.style`.tpl} + + {* + NOTE: Another way ist to have smarty template code in + $element.style. In this case you can do: + + {if $element.style} + {eval var=$element.style} + *} + + + {elseif $element.type eq "submit" or $element.type eq "reset"} + {if not $form.frozen} + + + + + {/if} + + + {else} + + {if $element.type eq "textarea"} + + + + + {/if} + {/foreach} + {/foreach} + + {if $form.requirednote and not $form.frozen} + + + + + {/if} + + +
+ {$sec.header}
 {$element.html}
+ {if $element.required}*{/if}{$element.label}
+ {else} +
+ {if $element.required}*{/if}{$element.label}: + {/if} + {if $element.error}{$element.error}
{/if} + {if $element.type eq "group"} + {foreach key=gkey item=gitem from=$element.elements} + {$gitem.label} + {$gitem.html}{if $gitem.required}*{/if} + {if $element.separator}{cycle values=$element.separator}{/if} + {/foreach} + {else} + {$element.html} + {/if} +
{$element.label_note}
+
 {$form.requirednote}
+ +  +

Collected Errors:
+{foreach key=name item=error from=$form.errors} + {$error} in element [{$name}]
+{/foreach} +

+ +  +

Best Practice:
+Use only one dynamic form template like this for your
+Smarty driven project. You include this where
+to place a form with the formdata-Array rendered by
+SmartyDynamic QuickForm Renderer as option:

+ +
+{ldelim}include file=form-dynamic.tpl form=$formdata{rdelim}
+
+ +  +

The used "Dynamic" Array

+
+{$dynamic_array|htmlentities}
+
+ + + diff --git a/livesupport/modules/htmlUI/var/html/templates/filedata.tpl b/livesupport/modules/htmlUI/var/html/templates/filedata.tpl new file mode 100644 index 000000000..655d949a1 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/filedata.tpl @@ -0,0 +1,14 @@ +{* Smarty template *} +
+
+{if $fMetaData} + +{/if} +{if $fInfo} + {$fInfo} +{/if} +
+ + + +
diff --git a/livesupport/modules/htmlUI/var/html/templates/footer.tpl b/livesupport/modules/htmlUI/var/html/templates/footer.tpl new file mode 100644 index 000000000..c62269fe9 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/footer.tpl @@ -0,0 +1,6 @@ +{*Smarty template*} + + + + + diff --git a/livesupport/modules/htmlUI/var/html/templates/form_parts/dynForm_plain.tpl b/livesupport/modules/htmlUI/var/html/templates/form_parts/dynForm_plain.tpl new file mode 100644 index 000000000..e2e75d377 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/form_parts/dynForm_plain.tpl @@ -0,0 +1,60 @@ +{$dynform.javascript} + +{$dynform.hidden} + +{foreach item=element from=$dynform.elements} + + + {if $element.style} + {include file="smarty-dynamic-`$element.style`.tpl} + {/if} + {* + NOTE: Another way ist to have smarty template code in + $element.style. In this case you can do: + + {if $element.style} + {eval var=$element.style} + {/if} + *} + + + {if $element.type eq 'static'} + {$element.html} + + {else} +
+ {if $element.required}*{/if} + {if $element.label}{$element.label}:{/if} + + + {if $element.error}{$element.error}
{/if} + {if $element.type eq "group"} + {foreach key=gkey item=gitem from=$element.elements} + {$gitem.label} + {$gitem.html}{if $gitem.required}*{/if} + {if $element.separator}{cycle values=$element.separator}{/if} + {/foreach} + {else} + {$element.html} + {/if} +
{$element.label_note}
+ +
+ {/if} +{/foreach} + + {if $dynform.requirednote and not $dynform.frozen} +
+ {$dynform.requirednote} +
+ {/if} + + + + diff --git a/livesupport/modules/htmlUI/var/html/templates/form_parts/dynForm_sections.tpl b/livesupport/modules/htmlUI/var/html/templates/form_parts/dynForm_sections.tpl new file mode 100644 index 000000000..6581bf304 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/form_parts/dynForm_sections.tpl @@ -0,0 +1,79 @@ +{$dynform.javascript} + + + {$dynform.hidden} + + {foreach item=sec key=i from=$dynform.sections} + + + + + {foreach item=element from=$sec.elements} + + + {if $element.style} + {include file="smarty-dynamic-`$element.style`.tpl} + + {* + NOTE: Another way ist to have smarty template code in + $element.style. In this case you can do: + + {if $element.style} + {eval var=$element.style} + *} + + + {elseif $element.type eq "submit" or $element.type eq "reset"} + {if not $dynform.frozen} + + + + + {/if} + + + {else} + + {if $element.type eq "textarea"} + + + + + {/if} + {/foreach} + {/foreach} + + {if $dynform.requirednote and not $dynform.frozen} + + + + + {/if} + + +
+ {$sec.header}
 {$element.html}
+ {if $element.required}*{/if}{$element.label}
+ {else} +
+ {if $element.required}*{/if}{$element.label}: + {/if} + {if $element.error}{$element.error}
{/if} + {if $element.type eq "group"} + {foreach key=gkey item=gitem from=$element.elements} + {$gitem.label} + {$gitem.html}{if $gitem.required}*{/if} + {if $element.separator}{cycle values=$element.separator}{/if} + {/foreach} + {else} + {$element.html} + {/if} +
{$element.label_note}
+
 {$dynform.requirednote}
+ +  +

Collected Errors:
+{foreach key=name item=error from=$dynform.errors} + {$error} in element [{$name}]
+{/foreach} +

diff --git a/livesupport/modules/htmlUI/var/html/templates/form_parts/error.tpl b/livesupport/modules/htmlUI/var/html/templates/form_parts/error.tpl new file mode 100644 index 000000000..2b7324e08 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/form_parts/error.tpl @@ -0,0 +1 @@ +{if $error}{$error}{/if}{$html} diff --git a/livesupport/modules/htmlUI/var/html/templates/form_parts/required.tpl b/livesupport/modules/htmlUI/var/html/templates/form_parts/required.tpl new file mode 100644 index 000000000..da842f16b --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/form_parts/required.tpl @@ -0,0 +1,10 @@ +{if $error} + {$label|upper} +{else} + {$label} + +{/if} + +{if $required} + * +{/if} diff --git a/livesupport/modules/htmlUI/var/html/templates/form_parts/requirednote.tpl b/livesupport/modules/htmlUI/var/html/templates/form_parts/requirednote.tpl new file mode 100644 index 000000000..9927d8eed --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/form_parts/requirednote.tpl @@ -0,0 +1 @@ +* are required diff --git a/livesupport/modules/htmlUI/var/html/templates/header.tpl b/livesupport/modules/htmlUI/var/html/templates/header.tpl new file mode 100644 index 000000000..b55a645ec --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/header.tpl @@ -0,0 +1,13 @@ +{*Smarty template*} + + + + + + {include file="script/basics.js.tpl"} + + + + + + \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/login.tpl b/livesupport/modules/htmlUI/var/html/templates/login.tpl new file mode 100644 index 000000000..c14a66c3a --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/login.tpl @@ -0,0 +1,19 @@ +{*Smarty template*} + +{include file="header.tpl"} +{$loginform.javascript} + +
+
+
+ {$loginform.hidden} + + + + +
{$loginform.login.label}{$loginform.login.html}
{$loginform.pass.label}{$loginform.pass.html}
{$loginform.requirednote}{$loginform.Submit.html}
+
+
+
+{include file="footer.tpl"} + diff --git a/livesupport/modules/htmlUI/var/html/templates/main.tpl b/livesupport/modules/htmlUI/var/html/templates/main.tpl new file mode 100644 index 000000000..8b7d67c72 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/main.tpl @@ -0,0 +1,7 @@ +{*Smarty template*} + +{include file="header.tpl"} +{include file="masterpanel.tpl"} +{include file="footer.tpl"} + + diff --git a/livesupport/modules/htmlUI/var/html/templates/masterpanel.tpl b/livesupport/modules/htmlUI/var/html/templates/masterpanel.tpl new file mode 100644 index 000000000..7b2a921b2 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/masterpanel.tpl @@ -0,0 +1,55 @@ +{*Smarty template*} +
+ +{include file="statusbar.tpl"} + +{if $showMenuTop} + {include file="menu_top.tpl"} +{/if} + +{if $showPath} + {include file="path.tpl"} +{/if} + +{if $showTree} + {include file="tree.tpl"} +{/if} + +{if $showObjects} + {include file="objects.tpl"} +{/if} + +{if $showPermissions} + {include file="permissions.tpl"} +{/if} + +{if $showNewFileForm} + {include file="newfileform.tpl"} +{/if} + +{if ($showSearchForm || $showSearchRes)} + {include file="search.tpl"} +{/if} + +{if $showSubjects} + {include file="subjects.tpl"} +{/if} + +{if $showFile} + {include file="filedata.tpl"} +{/if} + +{if $showMetaDataForm} + {include file="metadataform.tpl"} +{/if} + +{if $showSystemPrefs} + {include file="systemPrefs.tpl"} +{/if} + +{if $showUploadForm} + {include file="uploadform.tpl"} +{/if} + +
+ diff --git a/livesupport/modules/htmlUI/var/html/templates/menu_top.tpl b/livesupport/modules/htmlUI/var/html/templates/menu_top.tpl new file mode 100644 index 000000000..5b4a22626 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/menu_top.tpl @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/metadataform.tpl b/livesupport/modules/htmlUI/var/html/templates/metadataform.tpl new file mode 100644 index 000000000..e7d7fc558 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/metadataform.tpl @@ -0,0 +1,124 @@ +{literal} + +{/literal} + +
+
+ {$mDataForm.tabs} + {$mDataForm.langswitch} + {foreach from=$mDataForm.pages key=key item=dynform} + {include file="form_parts/dynForm_plain.tpl"} + {/foreach} +
+
+ + diff --git a/livesupport/modules/htmlUI/var/html/templates/newfileform.tpl b/livesupport/modules/htmlUI/var/html/templates/newfileform.tpl new file mode 100644 index 000000000..4fb7f50e4 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/newfileform.tpl @@ -0,0 +1,7 @@ +{*Smarty template*} + +
+
+ {$newfileform} +
+
diff --git a/livesupport/modules/htmlUI/var/html/templates/objects.tpl b/livesupport/modules/htmlUI/var/html/templates/objects.tpl new file mode 100644 index 000000000..880a6cf75 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/objects.tpl @@ -0,0 +1,60 @@ +
+ + +{if $structure.msg} + +{/if} + +{if count($structure.listdata)} + {foreach from=$structure.listdata item=o} + + + + + {/foreach} +{else} + +{/if} +
+ {if $structure.tree} + {str_repeat str=' ' count=$o.level} + {else} + {str_repeat str=' ' count=3} + {/if} + [{$o.name}]:   + + + + {$a.$o.type} +  [rename] +  [move] +  [copy] + {* +  [replicate] + *} +  [permissions] +
+   + {if ($delOverride eq $o.id)} + [DEL] + {else} + [DEL] + {/if} + {if $o.type != 'Folder'} +  [Access] +  [Analyze] +  [MetaData] + {/if} + {if $o.type eq 'Replica'} +   (->$o.target}) + {/if} +   +
No objects
+ +
\ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/path.tpl b/livesupport/modules/htmlUI/var/html/templates/path.tpl new file mode 100644 index 000000000..5dd307a2f --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/path.tpl @@ -0,0 +1,17 @@ +{*Smarty template*} + +
+ + [Tree view]  |  + {foreach from=$structure.pathdata item=o} + [{$o.name}] + {if ($o.type eq 'Folder')} + / + {/if} + {/foreach} + + +
diff --git a/livesupport/modules/htmlUI/var/html/templates/permissions.tpl b/livesupport/modules/htmlUI/var/html/templates/permissions.tpl new file mode 100644 index 000000000..f91fbf102 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/permissions.tpl @@ -0,0 +1,67 @@ +
+ + + + + {if (is_array($perms.perms) && count($perms.perms)>0)} + + {foreach from=$perms.perms item=row} + {if $row.type eq 'A'} + {assign var='da' value='allow'} + {else} + {if $row.type eq 'D'} + {assign var='da' value='deny'} + {else} + {assign var='da' value=$row.type} + {/if} + {/if} + + + + + + + + {/foreach} + {else} + + {/if} +
Subject NameActionPermission
{* > *}{$row.login}{$row.action}{$da} + [remove] +
No Permissions set.
+ +
+ +
+ +Add Permission + + +for Action + + +to Subject + + + + +
+ +
\ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/popup/_close.tpl b/livesupport/modules/htmlUI/var/html/templates/popup/_close.tpl new file mode 100644 index 000000000..223c4d596 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/popup/_close.tpl @@ -0,0 +1,3 @@ + diff --git a/livesupport/modules/htmlUI/var/html/templates/popup/_reload_parent.tpl b/livesupport/modules/htmlUI/var/html/templates/popup/_reload_parent.tpl new file mode 100644 index 000000000..73898a7fb --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/popup/_reload_parent.tpl @@ -0,0 +1,4 @@ + diff --git a/livesupport/modules/htmlUI/var/html/templates/popup/login.tpl b/livesupport/modules/htmlUI/var/html/templates/popup/login.tpl new file mode 100644 index 000000000..ce27c02e9 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/popup/login.tpl @@ -0,0 +1,22 @@ +{*Smarty template*} + +{include file="header.tpl"} +{$loginform.javascript} + +
+
+
+ {$loginform.hidden} + + + + + +
{$loginform.login.label}{$loginform.login.html}
{$loginform.pass.label}{$loginform.pass.html}
{$loginform.langid.label}{$loginform.langid.html}
{$loginform.requirednote}{$loginform.Submit.html} {$loginform.cancel.html}
+
+
+
+ + + + diff --git a/livesupport/modules/htmlUI/var/html/templates/popup/logout.tpl b/livesupport/modules/htmlUI/var/html/templates/popup/logout.tpl new file mode 100644 index 000000000..b3300f19c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/popup/logout.tpl @@ -0,0 +1,20 @@ +{*Smarty template*} + +{include file="header.tpl"} + +
+
+
+ + + +
{tra 0='Are you sure to logout $1' 1=$user.login}
+   + +
+
+
+
+ + + diff --git a/livesupport/modules/htmlUI/var/html/templates/popup/signover.tpl b/livesupport/modules/htmlUI/var/html/templates/popup/signover.tpl new file mode 100644 index 000000000..d0d73ae49 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/popup/signover.tpl @@ -0,0 +1,20 @@ +{*Smarty template*} + +{include file="header.tpl"} + +
+
+
+ + + +
{tra 0='Are you sure to logout $1' 1=$user.login}
+   + +
+
+
+
+ + + \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/script/basics.js.tpl b/livesupport/modules/htmlUI/var/html/templates/script/basics.js.tpl new file mode 100644 index 000000000..4a6faacf5 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/script/basics.js.tpl @@ -0,0 +1,49 @@ + diff --git a/livesupport/modules/htmlUI/var/html/templates/script/clock.js.tpl b/livesupport/modules/htmlUI/var/html/templates/script/clock.js.tpl new file mode 100644 index 000000000..994a5d669 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/script/clock.js.tpl @@ -0,0 +1,168 @@ +{literal} + + + + +{/literal} diff --git a/livesupport/modules/htmlUI/var/html/templates/search.tpl b/livesupport/modules/htmlUI/var/html/templates/search.tpl new file mode 100644 index 000000000..6be6cdb1c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/search.tpl @@ -0,0 +1,35 @@ +{*Smarty template*} + +{if $showSearchForm} + {literal} + + {/literal} +
+
+ {foreach from=$searchform item=dynform} + {include file="form_parts/dynForm_plain.tpl"} + {/foreach} +
+
+{/if} + +{if $showSearchRes} +
+ + {if (count($searchres.search))} + {foreach from=$searchres.search item=s} +
{$s.gunid} + [XML] + [Form] +
+ {/foreach} + {else} + No match found. + {/if} + +
+{/if} \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/smarty-static.tpl b/livesupport/modules/htmlUI/var/html/templates/smarty-static.tpl new file mode 100644 index 000000000..63ca1d56f --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/smarty-static.tpl @@ -0,0 +1,156 @@ + + + + + Smarty template for ArraySmarty renderer: 2 column layout example + +{$form.javascript} + + + + +
+{$form.hidden} + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
{$form.header.personal}
{$form.name.label}{$form.name.error} + + + + + + + + + +
{$form.name.first.html}{$form.name.last.html}
{$form.name.first.label}{$form.name.last.label}
+
{$form.phone.label}{$form.phone.html}
{$form.email.label}{$form.email.html}
{$form.pass.label_note}
{$form.pass.label}{$form.pass.html}
+
+ + + + + + + + + + + + + + + + + + + + + + +
{$form.header.company_info}
{$form.company.label}{$form.company.html}
{$form.street.label}{$form.street.html}
{$form.address.label}{$form.address.error} + + + + + + + + + +
{$form.address.zip.html}{$form.address.city.html}
{$form.address.zip.label}{$form.address.city.label}
+
{$form.country.label}{$form.country.html}
{$form.destination.label}{$form.destination.html}
+
+ + + + + + + + + +
{$form.requirednote}{$form.reset.html} {$form.submit.html}

{$form.news.html}
+ +
+ +
+Collected Errors:
+{foreach key=name item=error from=$form.errors} + {$error} in element [{$name}]
+{/foreach} + +  +

The used "Static" Array

+
+{$static_array|htmlentities}
+
+ + + \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/statusbar.tpl b/livesupport/modules/htmlUI/var/html/templates/statusbar.tpl new file mode 100644 index 000000000..f5c4b5f0f --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/statusbar.tpl @@ -0,0 +1,30 @@ +{include file="script/clock.js.tpl"} +
+ +
+ server time +
+ +
+ +
+ local time +
+ +
+ +
+ +
+ +
+ {$statusbar.stationName} +
+ {$statusbar.frequency} +
+ +
+ {include file="userinfo.tpl"} +
+ +
diff --git a/livesupport/modules/htmlUI/var/html/templates/styles.css b/livesupport/modules/htmlUI/var/html/templates/styles.css new file mode 100644 index 000000000..e1ee45adf --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/styles.css @@ -0,0 +1,147 @@ + body { + background-color : ThreedLightShadow; + font-family : monospace; +} + +#masterpanel { + text-align: center; + background-color : ThreedLightShadow; + height: 610px; + font-family : monospace; +} + +#statusbar { + text-align: center; + width: 610px; + border-style : dotted; + padding : 5px; + height : 70px; +} + +.statusbaritem { + width : 100px; + height : 50px; + border-style : dotted; + padding : 3px; + float : left; +} + +#login { + width : 300px; + border-style : dotted; + padding : 5px; + margin-top: 20px; +} + +#tree { + text-align : left; + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 20px; +} + +#menu_top { + text-align: center; + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +#path { + text-align: center; + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +#objects { + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + + +#permissions { + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +#subjects { + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +#newfileform { + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +#searchform { + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +#searchres { + text-align: center; + width: 300px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +#footer { + + text-align: center; + width: 98%; + border-style : dotted; + padding : 5px; + margin-top: 20px; + font-size : x-small; +} + +#filedata { + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +#mdataform {; + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +.dynformelement { + padding-bottom : 6px; + text-align : right; +} + +#systemPrefs { + width: 610px; + border-style : dotted; + padding : 5px; + margin-top: 10px; +} + +a { + text-decoration: none; +} + +.header { + color: #FFF; + background-color: #999; +} \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/subjects.tpl b/livesupport/modules/htmlUI/var/html/templates/subjects.tpl new file mode 100644 index 000000000..a6ee6814c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/subjects.tpl @@ -0,0 +1,87 @@ +{* Smarty template *} +
+ +{if $changePassForm} + {$changePassForm} +{/if} + +{if $groups} + + + + {if (is_array($groups.rows) && count($groups.rows)>0)} + {foreach from=$groups.rows item=row} + + + {if ($row.type=='G')}(G){else}(U){/if} + + + {/foreach} + {else} + + {/if} + +
Subjects in group {$groups.gname}
{$row.id} + {if ($row.type=='G')} + {$row.login} + {else} + {$row.login} + {/if} + + + [remove from Group] + +
No Members
+
+ {$addSubj2GroupForm} +{/if} + +{if $subjects} + + + + + {if (is_array($subjects.subj) && count($subjects.subj)>0)} + {foreach from=$subjects.subj item=c} + + + + {if ($c.type == 'G')} + G: {$c.cnt} + {else} + (U) + {/if} + + + + {/foreach} + {else} + + {/if} + +
Subjects
idLoginUser/Group
{$c.id} + {if ($c.type eq 'G')} + {$c.login} + {else} + {$c.login} + {/if} + + [remove] + {if ($c.type != 'G')} + [change Password] + {/if} +
no subject
+ +
+
+ [Add User] +          + [Add Group] +

+ {$addSubjectForm} +
+{/if} + +
\ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/html/templates/systemPrefs.tpl b/livesupport/modules/htmlUI/var/html/templates/systemPrefs.tpl new file mode 100644 index 000000000..a2d34fb2a --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/systemPrefs.tpl @@ -0,0 +1,5 @@ +
+
+{include file="form_parts/dynForm_sections.tpl"} +
+
diff --git a/livesupport/modules/htmlUI/var/html/templates/tree.tpl b/livesupport/modules/htmlUI/var/html/templates/tree.tpl new file mode 100644 index 000000000..5bb17f78c --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/tree.tpl @@ -0,0 +1,20 @@ +{*Smarty template*} + +
+ +{if is_array($structure.treedata)} + {foreach from=$structure.treedata item=o} +
+ {$structure.treedata.type} + {if $structure.treedata.tree} + {str_repeat str=' ' count=3} + {else} + {str_repeat str='  ' count=$o.level} + {/if} + + [{$o.name}]
+
+ {/foreach} +{/if} + +
diff --git a/livesupport/modules/htmlUI/var/html/templates/uploadform.tpl b/livesupport/modules/htmlUI/var/html/templates/uploadform.tpl new file mode 100644 index 000000000..7c87e6246 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/uploadform.tpl @@ -0,0 +1,7 @@ +{*Smarty template*} + +
+
+ {$uploadform} +
+
diff --git a/livesupport/modules/htmlUI/var/html/templates/userinfo.tpl b/livesupport/modules/htmlUI/var/html/templates/userinfo.tpl new file mode 100644 index 000000000..8e7256b76 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/templates/userinfo.tpl @@ -0,0 +1,11 @@ +{*Smarty template*} + +{if $user.userid} + Login: {$user.login} +
+ [{tra 0=logout}] + [{tra 0='sign over'}] +{else} + {tra 0=login} +{/if} + diff --git a/livesupport/modules/htmlUI/var/html/ui_browser.php b/livesupport/modules/htmlUI/var/html/ui_browser.php new file mode 100644 index 000000000..1b2ac660b --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/ui_browser.php @@ -0,0 +1,155 @@ +display('popup/_reload_parent.tpl'); + break; + + case "_close": + $Smarty->display('popup/_close.tpl'); + break; + + case "login": + $Smarty->assign('loginform', $uiBrowser->loginform($Smarty, $ui_fmask)); + $Smarty->display('popup/login.tpl'); + break; + + case "logout": + $Smarty->assign('logouttype', 'logout'); + $Smarty->display('popup/logout.tpl'); + break; + + case "signover_1": + $Smarty->assign('logouttype', 'signover'); + $Smarty->display('popup/logout.tpl'); + break; + + case "signover_2": + $Smarty->assign('loginform', $uiBrowser->loginform($Smarty, $ui_fmask)); + $Smarty->display('popup/login.tpl'); + break; + + } + } + die(); + +}; + +$Smarty->assign('statusbar', $uiBrowser->getStationInfo()); + +if ($uiBrowser->userid) { + $Smarty->assign('showMenuTop', TRUE); + switch ($_REQUEST['act']){ + default: + $Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id)); + $Smarty->assign('showPath', TRUE); + + if ($_REQUEST['tree']=='Y') { + $Smarty->assign('showTree', TRUE); + } else { + $Smarty->assign('showObjects', TRUE); + } + $Smarty->assign('delOverride', $_REQUEST['delOverride']); + #$Smarty->assign('obj_types', array('Folder'=>'D', 'File'=>'F', 'Replica'=>'R')); + break; + + case "permissions": + $Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id, $_REQUEST['act']=='getHomeDir' ? TRUE : FALSE)); + $Smarty->assign('showPath', TRUE); + + $Smarty->assign('perms', $uiBrowser->getPermissions($uiBrowser->id)); + $Smarty->assign('showPermissions', TRUE); + break; + + + case "newfile": + $Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id, $_REQUEST['act']=='getHomeDir' ? TRUE : FALSE)); + $Smarty->assign('showPath', TRUE); + + $Smarty->assign('newfileform', $uiBrowser->getNewFileForm($uiBrowser->id, $ui_fmask['upload'])); + $Smarty->assign('showNewFileForm', TRUE); + break; + + + case "upload_1": + $Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id, $_REQUEST['act']=='getHomeDir' ? TRUE : FALSE)); + $Smarty->assign('showPath', FALSE); + + $Smarty->assign('uploadform', $uiBrowser->getUploadFileForm($uiBrowser->id, $ui_fmask['upload_1'])); + $Smarty->assign('showUploadForm', TRUE); + break; + + case "upload_2": + $Smarty->assign('structure', $uiBrowser->getStructure($uiBrowser->id, $_REQUEST['act']=='getHomeDir' ? TRUE : FALSE)); + $Smarty->assign('showPath', FALSE); + + $Smarty->assign('mDataForm', $uiBrowser->getMetaDataForm($uiBrowser->id, $ui_fmask['mData'], FALSE, $uiBrowser->getInfo($id, 'array'))); + $Smarty->assign('showMetaDataForm', TRUE); + break; + + case "search": + if($_REQUEST['doSearch']) { + $Smarty->assign('searchres', $uiBrowser->getSearchRes($uiBrwoser->id, $_REQUEST)); + $Smarty->assign('showSearchRes', TRUE); + } + + + $Smarty->assign('searchform', $uiBrowser->getSearchForm($uiBrowser->id, $_REQUEST, $ui_fmask)); + $Smarty->assign('showSearchForm', TRUE); + + break; + + case "subjects": + case "addUser": + case "addGroup": + $Smarty->assign('subjects', $uiBrowser->getSubjects()); + switch($_REQUEST['act']) { + case "addUser": $Smarty->assign('addSubjectForm', $uiBrowser->getAddSubjectForm($ui_fmask['addUser'])); break; + case "addGroup": $Smarty->assign('addSubjectForm', $uiBrowser->getAddSubjectForm($ui_fmask['addGroup'])); break; + } + $Smarty->assign('showSubjects', TRUE); + break; + + case "passwd": + $Smarty->assign('changePassForm', $uiBrowser->getChangePasswdForm($_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)); + $Smarty->assign('showSubjects', TRUE); + break; + + case "getFile": + $Smarty->assign('fData', $uiBrowser->getFile($uiBrowser->id)); + $Smarty->assign('showFile', TRUE); + break; + + case "getMdata": + $Smarty->assign('fMetaData', $uiBrowser->getMdata($uiBrowser->id)); + $Smarty->assign('showFile', TRUE); + break; + + case "editMetaDataValues": + $Smarty->assign('mDataForm', $uiBrowser->getMetaDataForm($uiBrowser->id, $ui_fmask['mData'], TRUE)); + $Smarty->assign('showMetaDataForm', TRUE); + break; + + case "getInfo": + $Smarty->assign('fInfo', $uiBrowser->getInfo($uiBrowser->id)); + $Smarty->assign('showFile', TRUE); + break; + + case "systemPrefs": + $Smarty->assign('dynform', $uiBrowser->systemPrefs($ui_fmask['systemPrefs'])); + $Smarty->assign('showSystemPrefs', TRUE); + break; + } +} + +$Smarty->display('main.tpl'); +?> diff --git a/livesupport/modules/htmlUI/var/html/ui_handler.php b/livesupport/modules/htmlUI/var/html/ui_handler.php new file mode 100644 index 000000000..9df9896b1 --- /dev/null +++ b/livesupport/modules/htmlUI/var/html/ui_handler.php @@ -0,0 +1,97 @@ +login($_REQUEST, $ui_fmask["loginform"]); + break; + + case "logout": + $uiHandler->logout(); + break; + + case "signover": + $uiHandler->logout(TRUE); + break; + + case "upload": ## media- and metadata file together + $uiHandler->upload(array_merge($_REQUEST, $_FILES), $uiHandler->id, $ui_fmask["upload"]); + break; + + case "upload_1": ## first upload + $uiHandler->upload_1(array_merge($_REQUEST, $_FILES), $uiHandler->id, $ui_fmask["upload_1"]); + break; + + case "upload_2": ## then edit metadata + + break; + + case "newFolder": + $uiHandler->newFolder($_REQUEST["newname"], $uiHandler->id); + break; + + case "rename": + $uiHandler->rename($_REQUEST["newname"], $uiHandler->id); + break; + + case "move": + $uiHandler->move($_REQUEST["newPath"], $uiHandler->id); + break; + + case "copy": + $uiHandler->copy($_REQUEST["newPath"], $uiHandler->id); + break; + + case "delete": + $uiHandler->delete($uiHandler->id, $_REQUEST["delOverride"]); + break; + + case "addUser": + $uiHandler->addSubj($_REQUEST, $ui_fmask["addUser"]); + break; + + case "addGroup": + $uiHandler->addSubj($_REQUEST, $ui_fmask["addGroup"]); + break; + + case "removeSubj": + $uiHandler->removeSubj($_REQUEST["login"]); + break; + + case "changePasswd": + $uiHandler->passwd($_REQUEST["uid"], $_REQUEST["oldpass"], $_REQUEST["pass"], $_REQUEST["pass2"]); + break; + + case "addPerm": + $uiHandler->addPerm($_REQUEST["subj"], $_REQUEST["permAction"], $uiHandler->id, $_REQUEST["allowDeny"]); + break; + + case "removePerm": + $uiHandler->removePerm($_REQUEST["permid"], $_REQUEST["oid"]); + break; + + case "addSubj2Group": + $uiHandler->addSubj2Group($_REQUEST["login"], $_REQUEST["gname"], $_REQUEST["reid"]); + break; + + case "removeSubjFromGr": + $uiHandler->removeSubjFromGr($_REQUEST["login"], $_REQUEST["gname"], $_REQUEST["reid"]); + break; + + case "systemPrefs": + $uiHandler->storeSystemPrefs(array_merge($_REQUEST, $_FILES), $ui_fmask["systemPrefs"]); + break; + + case "editMetaDataValues": + $uiHandler->storeMetaData($_REQUEST, $ui_fmask["mData"]); + break; + + default: + $_SESSION["alertMsg"] = $uiHandler->tra("Unknown method: ").$_REQUEST["act"]; + header("Location: ".UI_BROWSER); + die(); +} +if ($uiHandler->alertMsg) $_SESSION['alertMsg'] = $uiHandler->alertMsg; +header('Location: '.$uiHandler->redirUrl); +?> diff --git a/livesupport/modules/htmlUI/var/index.php b/livesupport/modules/htmlUI/var/index.php new file mode 100644 index 000000000..0715bf676 --- /dev/null +++ b/livesupport/modules/htmlUI/var/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/rules.html b/livesupport/modules/htmlUI/var/rules.html new file mode 100644 index 000000000..884a685b6 --- /dev/null +++ b/livesupport/modules/htmlUI/var/rules.html @@ -0,0 +1,93 @@ + + + + + +
+

 

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rule NameArgumentRule Description
requiredSome input is required in the field.
maxlength$lengthThe input can be at most $length characters.
minlength$lengthThe input must be at least $length + characters.
rangelength$min,$maxThe input must be between $min and $max characters + (inclusive).
regex$rxThe input must match the regular expression + $rx.
emailThe input must be a likely syntactically valid e-mail + address.*
emailorblankThe input must be blank or satisfy the email rule. +
lettersonlyThe input must contain only alphabetic + characters.
alphanumericThe input must contain only letters and numbers. +
numericThe input must contain a valid positive or negative + integer or decimal number.
nopunctuationThe input must not contain any of these characters: ( ) . + / * ^ ? # ! @ $ % + = , " ' > < ~ [ ] { }.
nonzeroThe input must not begin with zero.
uploadedfileThe element must contain a successfully uploaded + file.
maxfilesize$sizeThe uploaded file must be no more than $size + bytes.
mimetype$mimeThe uploaded file must have a MIME type of $mime. If + $mime is an array of MIME types, the uploaded file must have a MIME type + equal to one of the elements in $mime.
filename$file_rxThe uploaded file must have a filename that matches the + regular expression +$file_rx.

diff --git a/livesupport/modules/htmlUI/var/ui_base.inc.php b/livesupport/modules/htmlUI/var/ui_base.inc.php new file mode 100644 index 000000000..845cc7bf2 --- /dev/null +++ b/livesupport/modules/htmlUI/var/ui_base.inc.php @@ -0,0 +1,186 @@ +gm:\n".$err->getMessage()."\ndi:\n".$err->getDebugInfo()."\nui:\n".$err->getUserInfo()."\n"; + echo "
BackTrace:\n"; + print_r($err->backtrace); + echo "\n"; + exit; +} + +/** + * uiBase class + * + * LiveSupport HTML User Interface module + * + */ +class uiBase +{ + // --- 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']); + 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_seconds'], + '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']}
+ channels: {$ia['audio']['channels']}
+ sample_rate: {$ia['audio']['sample_rate']}
+ bits_per_sample: {$ia['audio']['bits_per_sample']}
+ channelmode: {$ia['audio']['channelmode']}
+ title: {$ia['id3v1']['title']}
+ artist: {$ia['id3v1']['artist']}
+ comment: {$ia['id3v1']['comment']}"; + } elseif ($format=='xml') { + return + ' + + + taken from test xml + 00:30:00.000000 + + '; + + } + } +} +?> diff --git a/livesupport/modules/htmlUI/var/ui_browser.class.php b/livesupport/modules/htmlUI/var/ui_browser.class.php new file mode 100644 index 000000000..8070004f6 --- /dev/null +++ b/livesupport/modules/htmlUI/var/ui_browser.class.php @@ -0,0 +1,557 @@ +getMessage()); + } + $dbc->setFetchMode(DB_FETCHMODE_ASSOC); + $this->gb =& new GreenBox(&$dbc, $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); + + + + } + + // --- error handling --- + /** + * alertMsg + * + * takes error message from session var + * + * @return string + */ + + function alertMsg() + { + if ($_SESSION['alertMsg']) { + $this->alertMsg = $_SESSION['alertMsg']; + unset($_SESSION['alertMsg']); + return $this->alertMsg; + } + return false; + } + + + function getStationInfo() + { + $a['frequency'] = $this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'frequency'); + $a['stationName'] = $this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'stationName'); + $a['stationLogoPath'] = $this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'stationLogoPath'); + + return $a; + } + + // --- template feed --- + /** + * loginform + * + * create a login-form + * + * @param string $faillogin login name of failed login process + * @return string (html) + */ + function loginform(&$Smarty, &$mask) + { + $form = new HTML_QuickForm('loginbox', UI_STANDARD_FORM_METHOD, UI_HANDLER); + $form->setRequiredNote(file_get_contents(UI_QFORM_REQUIREDNOTE)); + $this->_parseArr2Form($form, $mask['loginform']); + $this->_parseArr2Form($form, $mask['languages']); + + ## using Static Smarty Renderer + $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($Smarty, true); + $renderer->setRequiredTemplate(file_get_contents(UI_QFORM_REQUIRED)); + #$renderer->setErrorTemplate(file_get_contents(UI_QFORM_ERROR)); + + $form->accept($renderer); + + return $renderer->toArray(); + } + + + + + /** + * getUserInfo + * + * get info about logged in user + * + * @return array uname=>user Name, uid=>user ID + */ + function getUserInfo() + { + return array('uname'=>$this->gb->getSessLogin($this->sessid), + 'uid' =>$this->gb->getSessUserId($this->sessid)); + } + + /** + * getStructure + * + * get directory-structure + * + * @param int local ID of start-directory + * @param boolean $homedir TRUE: get homedir of current user + + * @eturn array tree of directory with subs + */ + 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, + )); + if($_REQUEST['tree']=='Y'){ + $data['treedata'] = $this->gb->getSubTree($id, $this->sessid); + } + + if(PEAR::isError($data['listdata'])){ + $data['msg'] = $data['listdata']->getMessage(); + $data['listdata'] = array(); + } + + return $data; + } + + + /** + * getNewFileForm + * + * create a form for file-upload + * + * @param int local $id of directory to store file in + * + * @eturn string (html) + */ + function getNewFileForm($id, $mask) + { + $form = new HTML_QuickForm('newfile', UI_STANDARD_FORM_METHOD, UI_HANDLER); + $form->setMaxFileSize($this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'maxfilesize')); + $form->setConstants(array('id' => $id)); + + $this->_parseArr2Form($form, $mask); + + return $form->toHTML(); + } + + + /** + * getUploadFileForm + * + * create a form for file-upload + * + * @param int local $id of directory to store file in + * + * @eturn string (html) + */ + function getUploadFileForm($id, $mask) + { + $form = new HTML_QuickForm('upload', UI_STANDARD_FORM_METHOD, UI_HANDLER); + $form->setMaxFileSize($this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'maxfilesize')); + $form->setConstants(array('id' => $id)); + + $this->_parseArr2Form($form, $mask); + + return $form->toHTML(); + } + + + /** + * getSubjects + * + * get all GreenBox subjects (users/groups) + * + * @return array subj=>unique id of subject, loggedAs=>corresponding login name + */ + function getSubjects() + { + return array('subj' => $this->gb->getSubjectsWCnt(), + 'loggedAs' => $this->login + ); + } + + + /** + * addSubjectForm + * + * create a form to add GreenBox subjects (users/groups) + * + * @return string (html) + */ + function getAddSubjectForm($mask) + { + $form = new HTML_QuickForm('addSubject', UI_STANDARD_FORM_METHOD, UI_HANDLER); + $this->_parseArr2Form($form, $mask); + return $form->toHTML(); + } + + /** + * getChangePasswdForm + * + * create a form to change user-passwords in GreenBox + * + * @return string (html) + */ + function getChangePasswdForm($uid, &$mask) + { + $form = new HTML_QuickForm('changePasswd', UI_STANDARD_FORM_METHOD, UI_HANDLER); + $form->setConstants(array('act'=>'changePasswd', + 'uid'=>$uid)); + $this->_parseArr2Form($form, $mask); + return $form->toHTML(); + } + + /** + * getGroups + * + * get a list of groups where user is member of + * + * @parm $id int local user ID + * @return array + */ + function getGroups($id) + { + return array( + 'rows' => $this->gb->listGroup($id), + 'id' => $id, + 'loggedAs' => $this->login, + 'gname' => $this->gb->getSubjName($id), + 'subj' => $this->gb->getSubjects() + ); + } + + + /** + * getSubj2GroupForm + * + * creates a form to assign groups to a user + * + * @param $id int local user ID + * + * @return string (html) + */ + function getSubj2GroupForm($id) + { + $g = $this->getGroups($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', + 'reid'=>$g['id'], + 'gname'=>$g['gname'])); + $form->addElement('hidden', 'act'); + $form->addElement('hidden', 'reid'); + $form->addElement('hidden', 'gname'); + $s =& $form->createElement('select', 'login', 'Add Group: '); + $s->loadArray($this->logins, NULL); + $form->addElement($s); + $form->addElement('submit', NULL, $this->tra('Do')); + + return $form->toHTML(); + } + + /** + * getPermissions + * + * get permissions for local object ID + * + * @param $id int local ID (file/folder) + * + * @return array + */ + function getPermissions($id) + { + return array('pathdata' => $this->gb->getPath($id), + 'perms' => $this->gb->getObjPerms($id), + 'actions' => $this->gb->getAllowedActions($this->gb->getObjType($id)), + 'subjects' => $this->gb->getSubjects(), + 'id' => $id, + 'loggedAs' => $this->login + ); + } + + + /** + * getSearchForm + * + * create a form for searching in StorageServer + * + * @param int local ID of start-directory + * + * @return string (html) + */ + function getSearchForm($id, &$formdata, &$mask) + { + $rowsBegin = ($formdata['counter'] ? $formdata['counter']-1 : UI_SEARCH_MIN_ROWS); + $form = new HTML_QuickForm('search', UI_STANDARD_FORM_METHOD, UI_BROWSER); + $form->setConstants(array('id'=>$id, 'counter'=>$rowsBegin+1)); + + foreach ($mask['mData']['tabs']['group']['group'] as $k=>$v) { + foreach ($mask['mData']['pages'][$v] as $val){ + $options[$val['element']] = $val['element']; + }; + }; + + for($n=1; $n<=UI_SEARCH_MAX_ROWS; $n++) { + $advRow = array( + array( + 'element' => 's1', + 'type' => 'static', + 'text' => "
" + ), + $n>$rowsBegin ? array( + 'element' => 's1_style', + 'type' => 'static', + 'text' => "" + ) : NULL, + array( + 'element' => 'searchBy['.$n.']', + 'type' => 'select', + 'label' => 'Search by', + 'groupit' => TRUE, + 'options' => $options, + ), + array( + 'element' => 'relation['.$n.']', + 'type' => 'select', + 'groupit' => TRUE, + 'options' => $mask['searchform.relations'], + 'selected' => '=', + ), + array( + 'element' => 'criteria['.$n.']', + 'type' => 'text', + 'groupit' => TRUE + ), + array( + 'group' => array('searchBy['.$n.']', 'relation['.$n.']', 'criteria['.$n.']'), + 'name' => NULL, + 'label' => NULL, + 'seperator' => '  ', + 'appendName'=> NULL + ), + $n>$rowsBegin ? array( + 'element' => 's2', + 'type' => 'static', + 'text' => "
" + ) : NULL, + ); + $this->_parseArr2Form($form, $advRow); + } + + + + $this->_parseArr2Form($form, $mask['searchform']); + $form->validate(); + + $renderer =& new HTML_QuickForm_Renderer_Array(true, true); + $form->accept($renderer); + $output['dynform'] = $renderer->toArray(); + #print_r($output); + return $output; + } + + + /** + * getSearchRes + * + * get Search Result + * + * @param $id int local ID (file/folder) to search in + * @param $serach string + * @return array + */ + function getSearchRes($id, &$formdata) + { + foreach ($formdata['criteria'] as $key=>$val) { + if (strlen($val)) { + $critArr[] = array('cat' => $formdata['searchBy'][$key], + 'op' => $formdata['relation'][$key], + 'val' => $val + ); + } + } + $searchCriteria = array('filetype' => 'audioclip', + 'operator' => 'or', + 'conditions'=> $critArr + ); + + $results = $this->gb->localSearch($searchCriteria, $this->sessid); + foreach ($results['results'] as $rec) { + $res[] = array('gunid' => $rec, + 'par_id' => $this->gb->_idFromGunid($rec)); + } + + return array('search' => $res, + 'id' => $id + ); + + } + + /** + * getFile + * + * Call access method and show access path. + * Example only - not really useable. + * TODO: resource should be released by release method call + * + * @param id int, local id of accessed file + */ + function getFile($id) + { + $r = $this->gb->access($id, $this->sessid); + if(PEAR::isError($r)) $_SESSION['alertMsg'] = $r->getMessage(); + else print_r($r); + } + + /** + * getMdata + * + * Show file's metadata as XML + * + * @param id int, local id of stored file + * @return array + */ + function getMdata($id) + { + return($this->gb->getMdata($id, $this->sessid)); + } + + + /** + * getMdataValue + * + * Get Files Metadata Record + * + * @param id int, local id of stored file + * @param cetagory string, metadata element name + * @return array + */ + function _getMdataValue($id, $category) + { + return($this->gb->getMdataValue($id, $category, $this->sessid)); + } + + + /** + * getMetaDataForm + * + * create a form to edit Metadata + * + * @param id int + * @return string (html) + */ + function getMetadataForm($id, &$mask, $get=FALSE, $data=NULL) + { + $form = new HTML_QuickForm('tabs', UI_STANDARD_FORM_METHOD, UI_BROWSER); + $this->_parseArr2Form($form, $mask['tabs']); + $output['tabs'] = $form->toHTML(); + $form = new HTML_QuickForm('langswitch', UI_STANDARD_FORM_METHOD, UI_BROWSER); + $this->_parseArr2Form($form, $mask['langswitch']); + $output['langswitch'] = $form->toHTML(); + /* + ## multiple forms + $parts = array ('Main', 'Music_Basic', 'Music_Advanced', 'Talk_Basic', 'Talk_Advanced'); + foreach ($parts as $key) { + unset ($form); + $form = new HTML_QuickForm($key, UI_STANDARD_FORM_METHOD, UI_BROWSER); + $this->_parseArr2Form($form, $mask['pages'][$key]); + $this->_parseArr2Form($form, $mask['basics']); + $output['pages'][$key] = $form->toHTML(); + } */ + + ## single form + $form = new HTML_QuickForm('metadata', 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)) + 'langid' => 'en' + ) + ); + + ## convert element names to be unique over different forms-parts, add javascript to spread values over parts, add existing values from database + foreach ($mask['tabs']['group']['group'] as $key) { + foreach ($mask['pages'][$key] as $k=>$v) { + $mask['pages'][$key][$k]['element'] = $key.'-'.$v['element']; + $mask['pages'][$key][$k]['attributes'] = array ('onChange' => "spread(this, '".$v['element']."')"); + + ## recive data from GreenBox + if ($get) { + $mask['pages'][$key][$k]['default'] = array_pop($this->gb->getMDataValue($id, strtr($v['element'], '_', '.'), $this->sessid)); + } + + ## get data from parameter + if (is_array($data)) { + $mask['pages'][$key][$k]['default'] = $data[strtr($v['element'], '_', '.')]; + } + } + #$form->addElement('html', "
"); + $form->addElement('static', NULL, NULL, "
"); + $this->_parseArr2Form($form, $mask['pages'][$key]); + $this->_parseArr2Form($form, $mask['buttons']); + #$form->addElement('html', "
"); + $form->addElement('static', NULL, NULL, "
"); + } + /* + $renderer = new HTML_QuickForm_Renderer_Default; + $renderer->setFormTemplate("\n\n
\n{content}\n
\n"); + #$renderer->setElementTemplate("\n\t
*{label}{error}
\t
{element}
\n\t"); + $renderer->setElementTemplate("\n\t
*{label}{error}
\t
{element}
\n\t"); + $form->accept($renderer); + $output['pages'][] = $renderer->toHTML(); + */ + + ## using Dynamic Smarty Renderer + $renderer =& new HTML_QuickForm_Renderer_Array(true, true); + $form->accept($renderer); + $output['pages'][] = $renderer->toArray(); + #print_r($output); + + return $output; + } + + + + function systemPrefs(&$mask) + { + $form = new HTML_QuickForm('systemPrefs', UI_STANDARD_FORM_METHOD, UI_HANDLER); + + foreach($mask as $key=>$val) { + $p = $this->gb->loadGroupPref($this->sessid, 'StationPrefs', $val['element']); + if (is_string($p)) $mask[$key]['default'] = $p; + }; + + $this->_parseArr2Form($form, $mask); + + ## using Dynamic Smarty Renderer + $renderer =& new HTML_QuickForm_Renderer_Array(true, true); + $form->accept($renderer); + + return $renderer->toArray(); + } +} +?> \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/ui_browser_init.php b/livesupport/modules/htmlUI/var/ui_browser_init.php new file mode 100644 index 000000000..80a732499 --- /dev/null +++ b/livesupport/modules/htmlUI/var/ui_browser_init.php @@ -0,0 +1,44 @@ +assign('alertMsg', $uiBrowser->alertMsg()); +$Smarty->assign('GLOBALS', array_merge($GLOBALS, array('id' => &$uiBrowser->id))); ## ??? really all GLOBALS ??? ## +$Smarty->assign('user', array('sessid' => &$uiBrowser->sessid, + 'userid' => &$uiBrowser->userid, + 'login' => &$uiBrowser->login + ) + ); +## retransfer incomplete formdata from SESSION to POST-data +if(is_array($_SESSION['retransferFormData'])){ + foreach($_SESSION['retransferFormData'] as $k=>$v){ + $_POST[$k] = $v; + } + unset($_SESSION['retransferFormData']); +} +?> diff --git a/livesupport/modules/htmlUI/var/ui_fmask.inc.php b/livesupport/modules/htmlUI/var/ui_fmask.inc.php new file mode 100644 index 000000000..201667a42 --- /dev/null +++ b/livesupport/modules/htmlUI/var/ui_fmask.inc.php @@ -0,0 +1,744 @@ + array( + array( + 'element' => 'act', + 'type' => 'hidden', + 'constant' => 'systemPrefs' + ), + array( + 'element' => 'basics', + 'type' => 'header', + 'label' => 'Basic Settings', + ), + array( + 'element' => 'maxfilesize', + 'type' => 'text', + 'label' => 'Maximum File Size for Upload', + 'required' => TRUE + ), + array( + 'rule' => 'numeric', + 'element' => 'maxfilesize', + ), + array( + 'rule' => 'nopunctuation', + 'element' => 'maxfilesize', + ), + array( + 'element' => 'frequency', + 'type' => 'text', + 'label' => 'Frequency', + 'required' => TRUE + ), + array( + 'element' => 'stationName', + 'type' => 'text', + 'label' => 'Staion Name', + 'required' => TRUE + ), + array( + 'element' => 'stationLogoPath', + 'type' => 'text', + 'label' => 'Station Logo path' + ), + array( + 'element' => 'stationURL', + 'type' => 'text', + 'label' => 'Station URL', + 'default' => 'http://' + ), + array( + 'rule' => 'regex', + 'element' => 'stationURL', + 'format' => '/^[0-9]{5}$/', + 'rulemsg' => 'URL seems not to be valid' + ), + array( + 'element' => 'upload', + 'type' => 'header', + 'label' => 'Upload' + ), + array( + 'element' => 'stationlogo', + 'type' => 'file', + 'label' => 'Station Logo' + ), + array( + 'element' =>'Submit', + 'type' =>'submit', + 'label' =>'Submit' + ) + ), + + /* =========================================================== Matadata-Mask */ + 'mData' => array( + 'basics' => array( + array( + 'element' => 'act', + 'type' => 'hidden', + 'constant'=> 'editMetaDataValues' + ), + array( + 'element' => 'id', + 'type' => 'hidden' + ), + array( + 'element' => 'langid', + 'type' => 'hidden' + ), + ), + 'buttons' => array ( + array( + 'element' =>'reset', + 'type' =>'reset', + 'label' =>'Reset', + 'groupit' => TRUE, + ), + array( + 'element' =>'button', + 'type' =>'button', + 'label' =>'Submit', + 'groupit' => TRUE, + 'attributes'=> array( + 'onClick' => 'return switchMDataLang();' + ), + ), + array( + 'group' => array('reset', 'button'), + ) + ), + 'tabs' => array( + array( + 'element' => 'Main', + 'type' => 'button', + 'label' => 'Main', + 'groupit' => TRUE, + 'attributes' => array('onClick' => 'showMain()') + ), + array( + 'element' => 'Music_Basic', + 'type' => 'button', + 'label' => 'Music_Basic', + 'groupit' => TRUE, + 'attributes' => array('onClick' => 'showMusic_Basic()') + ), + array( + 'element' => 'Music_Advanced', + 'type' => 'button', + 'label' => 'Music_Advanced', + 'groupit' => TRUE, + 'attributes' => array('onClick' => 'showMusic_Advanced()') + ), + array( + 'element' => 'Talk_Basic', + 'type' => 'button', + 'label' => 'Talk_Basic', + 'groupit' => TRUE, + 'attributes' => array('onClick' => 'showTalk_Basic()') + ), + array( + 'element' => 'Talk_Advanced', + 'type' => 'button', + 'label' => 'Talk_Advanced', + 'groupit' => TRUE, + 'attributes' => array('onClick' => 'showTalk_Advanced()') + ), + 'group' => array( + 'group' => array('Main', 'Music_Basic', 'Music_Advanced', 'Talk_Basic', 'Talk_Advanced'), + ) + + ), + 'langswitch' => array( + array( + 'element' => 'langid', + 'type' => 'select', + 'label' => 'Language', + 'options' => array( + 'en' => 'English', + 'cz' => 'Czech', + 'de' => 'German', + 'hu' => 'Hungarian', + ), + 'attributes'=> array('onChange' => 'return switchMDataLang()') + ) + ), + 'pages' => array( + 'Main' => array( + array( + 'element' => 'Title', + 'type' => 'text', + 'label' => 'Title', + 'required'=> TRUE, + ), + array( + 'element' => 'Creator', + 'type' => 'text', + 'label' => 'Creator', + 'required'=> TRUE, + ), + array( + 'element' => 'Type_Genre', + 'type' => 'text', + 'label' => 'Type_Genre', + 'required'=> TRUE, + ), + array( + 'element' => 'Format', + 'type' => 'select', + 'label' => 'Format', + 'required'=> TRUE, + 'options' => array( + 'File' => 'File', + 'live stream' => 'Live Stream', + 'networked file'=> 'Networked File', + 'audio/mpeg' => 'audio/mpeg' + ) + ), + array( + 'element' => 'Format_Extent', + 'type' => 'text', + 'label' => 'Format_Extent', + 'required'=> TRUE, + ), + ), + 'Music_Basic' => array( + array( + 'element' => 'Title', + 'type' => 'text', + 'label' => 'Title', + ), + array( + 'element' => 'Creator', + 'type' => 'text', + 'label' => 'Creator', + ), + array( + 'element' => 'Source_Album', + 'type' => 'text', + 'label' => 'Source_Album', + ), + array( + 'element' => 'Source_Year', + 'type' => 'date', + 'label' => 'Source_Year', + 'options' => array( + 'language' => 'en', + 'format' => 'dMY', + 'addEmptyOption'=> TRUE, + 'minYear' => 1900 + ) + ), + array( + 'element' => 'Type_Genre', + 'type' => 'text', + 'label' => 'Type_Genre', + ), + array( + 'element' => 'Description', + 'type' => 'textarea', + 'label' => 'Description', + ), + array( + 'element' => 'Format', + 'type' => 'select', + 'label' => 'Format', + 'options' => array( + 'File' => 'File', + 'live stream' => 'Live Stream', + 'networked file'=> 'Networked File', + 'audio/mpeg' => 'audio/mpeg' + ) + ), + array( + 'element' => 'Type_BPM', + 'type' => 'text', + 'label' => 'Type_BPM', + 'rule' => 'numeric', + ), + array( + 'element' => 'Description_Rating', + 'type' => 'text', + 'label' => 'Description_Rating', + 'rule' => 'numeric', + ), + array( + 'element' => 'Format_Extent', + 'type' => 'text', + 'label' => 'Format_Extent', + ), + ), + 'Music_Advanced'=> array( + array( + 'element' => 'Creator_Role_Encoder', + 'type' => 'text', + 'label' => 'Creator_Role_Encoder', + ), + array( + 'element' => 'Source_Album_TrackNumber', + 'type' => '', + 'label' => 'Source_Album_TrackNumber', + 'rule' => 'numeric', + ), + array( + 'element' => 'Source_Album_DiscNumber', + 'type' => 'text', + 'label' => 'Source_Album_DiscNumber', + 'rule' => 'numeric', + ), + array( + 'element' => 'Description_Mood', + 'type' => 'text', + 'label' => 'Description_Mood', + ), + array( + 'element' => 'Publisher', + 'type' => 'text', + 'label' => 'Publisher', + ), + array( + 'element' => 'Creator_Role_Composer', + 'type' => 'text', + 'label' => 'Creator_Role_Composer', + ), + array( + 'element' => 'Format_Medium_Bitrate', + 'type' => 'text', + 'label' => 'Format_Medium_Bitrate', + 'rule' => 'numeric' + ), + array( + 'element' => 'Format_Medium_Channels', + 'type' => 'select', + 'label' => 'Format_Medium_Channels', + 'options' => array( + 'mono' => 'Mono', + 'stereo' => 'Stereo', + '5.1' => '5.1' + ) + ), + array( + 'element' => 'Format_Medium_Samplerate', + 'type' => 'text', + 'label' => 'Format_Medium_Samplerate', + 'rule' => 'numeric' + ), + array( + 'element' => 'Format_Medium_Encoder', + 'type' => 'text', + 'label' => 'Format_Medium_Encoder', + ), + array( + 'element' => 'Format_CRC', + 'type' => 'text', + 'label' => 'Format_CRC', + 'rule' => 'numeric' + ), + array( + 'element' => 'Description_Lyrics', + 'type' => 'textarea', + 'label' => 'Description_Lyrics', + ), + array( + 'element' => 'Creator_Role_Orchestra', + 'type' => 'text', + 'label' => 'Creator_Role_Orchestra', + ), + array( + 'element' => 'Creator_Role_Conductor', + 'type' => 'text', + 'label' => 'Creator_Role_Conductor', + ), + array( + 'element' => 'Creator_Role_Lyricist', + 'type' => 'text', + 'label' => 'Creator_Role_Lyricist', + ), + array( + 'element' => 'Creator_Role_OriginalLyricist', + 'type' => 'text', + 'label' => 'Creator_Role_OriginalLyricist', + ), + array( + 'element' => 'Creator_Role_RadioStationName', + 'type' => 'text', + 'label' => 'Creator_Role_RadioStationName', + ), + array( + 'element' => 'Description_AudioFileInfoURL', + 'type' => 'text', + 'label' => 'Description_AudioFileInfoURL', + ), + array( + 'element' => 'Description_ArtistURL', + 'type' => 'text', + 'label' => 'Description_ArtistURL', + ), + array( + 'element' => 'Description_AudioSourceURL', + 'type' => 'text', + 'label' => 'Description_AudioSourceURL', + ), + array( + 'element' => 'Description_RadioStationURL', + 'type' => 'text', + 'label' => 'Description_RadioStationURL', + ), + array( + 'element' => 'Description_BuyCDURL', + 'type' => 'text', + 'label' => 'Description_BuyCDURL', + ), + array( + 'element' => 'Identifier_ISRCNumber', + 'type' => 'text', + 'label' => 'Identifier_ISRCNumber', + 'rule' => 'numeric' + ), + array( + 'element' => 'Identifier_CatalogNumber', + 'type' => 'text', + 'label' => 'Identifier_CatalogNumber', + 'rule' => 'numeric' + ), + array( + 'element' => 'Creator_Role_OriginalArtist', + 'type' => 'text', + 'label' => 'Creator_Role_OriginalArtist', + ), + array( + 'element' => 'Rights_Copyright', + 'type' => 'text', + 'label' => 'Rights_Copyright', + ), + ), + 'Talk_Basic' => array( + array( + 'element' => 'Title', + 'type' => 'text', + 'label' => 'Title', + ), + array( + 'element' => 'Coverage', + 'type' => 'text', + 'label' => 'Coverage', + ), + array( + 'element' => 'Description', + 'type' => 'textarea', + 'label' => 'Description', + ), + array( + 'element' => 'Creator', + 'type' => 'text', + 'label' => 'Creator', + ), + array( + 'element' => 'Subject', + 'type' => 'text', + 'label' => 'Subject', + ), + array( + 'element' => 'Type_Genre', + 'type' => 'text', + 'label' => 'Type_Genre', + ), + array( + 'element' => 'Format', + 'type' => 'select', + 'label' => 'Format', + 'options' => array( + 'File' => 'File', + 'live stream' => 'Live Stream', + 'networked file'=> 'Networked File', + 'audio/mpeg' => 'audio/mpeg' + ) + ), + ), + 'Talk_Advanced' => array( + array( + 'element' => 'Contributor', + 'type' => 'text', + 'label' => 'Contributor', + ), + array( + 'element' => 'Language', + 'type' => 'text', + 'label' => 'Language', + ), + array( + 'element' => 'Rights', + 'type' => 'text', + 'label' => 'Rights', + ), + ) + ) + ), + + 'chgPasswd' => array( + array( + 'element' => 'act', + 'type' => 'hidden', + ), + array( + 'element' => 'uid', + 'type' => 'hidden', + ), + array( + 'element' => 'oldpass', + 'type' => 'password', + 'label' => 'Old Password', + 'required' => TRUE, + ), + array( + 'element' => 'pass', + 'type' => 'password', + 'label' => 'New Password', + 'required' => TRUE, + ), + array( + 'element' => 'pass2', + 'type' => 'password', + 'label' => 'Retype Password', + 'required' => TRUE, + ), + array( + 'rule' => 'compare', + 'element' => array('pass','pass2'), + 'rulemsg' => 'The Passwords do not match' + ), + array( + 'element' =>'Submit', + 'type' =>'submit', + 'label' =>'Submit' + ) + + ), + + 'addUser' => array( + array( + 'element' => 'act', + 'type' => 'hidden', + 'constant' => 'addUser' + ), + array( + 'element' => 'login', + 'type' => 'text', + 'label' => 'Username', + 'required' => TRUE + ), + array( + 'element' =>'pass', + 'type' =>'password', + 'label' =>'Users 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' + ) + ), + + 'loginform' => array( + array( + 'element' => 'act', + 'type' => 'hidden', + 'constant' => 'login' + ), + array( + 'element' => 'login', + 'type' => 'text', + 'label' => 'Username', + 'required' => TRUE + ), + array( + 'element' => 'pass', + 'type' => 'password', + 'label' => 'Password', + 'required' => TRUE + ), + array( + 'element' => 'Submit', + 'type' => 'submit', + 'label' => 'Submit' + ), + array( + 'element' => 'cancel', + 'type' => 'button', + 'label' => 'Cancel', + 'attributes'=> array('onClick' => 'window.close()') + ) + ), + + 'upload' => array( + array( + 'element' => 'act', + 'type' => 'hidden', + 'constant' => 'upload' + ), + array( + 'element' => 'id', + 'type' => 'hidden' + ), + array( + 'element' => 'mediafile', + 'type' => 'file', + 'label' => 'Mediafile', + 'required' => TRUE, + 'requiredmsg'=> 'please select Media file' + ), + array( + 'element' => 'new_filename', + 'type' => 'text', + 'label' => 'New Filename' + ), + array( + 'element' => 'mdatafile', + 'type' => 'file', + 'label' => 'Metadata', + 'required' => TRUE, + 'requiredmsg'=> 'please select Metadata file' + ), + array( + 'element' => 'Submit', + 'type' => 'submit', + 'label' => 'Submit' + ) + ), + + 'upload_1' => array( + array( + 'element' => 'act', + 'type' => 'hidden', + 'constant' => 'upload_1' + ), + array( + 'element' => 'id', + 'type' => 'hidden' + ), + array( + 'element' => 'mediafile', + 'type' => 'file', + 'label' => 'Mediafile', + 'required' => TRUE, + 'requiredmsg'=> 'please select Media file' + ), + array( + 'element' => 'new_filename', + 'type' => 'text', + 'label' => 'New Filename' + ), + array( + 'element' => 'Submit', + 'type' => 'submit', + 'label' => 'Submit' + ) + ), + + 'searchform' => array( + array( + 'element' => 'act', + 'type' => 'hidden', + 'constant' => 'search' + ), + array( + 'element' => 'id', + 'type' => 'hidden' + ), + array( + 'element' => 'counter', + 'type' => 'hidden' + ), + array( + 'element' => 'addRow', + 'type' => 'button', + 'label' => 'One more Row', + 'attributes' => array('onClick' => 'showSearchRow()'), + 'groupit' => TRUE, + ), + array( + 'element' => 'JS', + 'type' => 'static', + 'text' => "", + ), + array( + 'element' => 'doSearch', + 'type' => 'submit', + 'label' => 'Submit', + 'groupit' => TRUE, + ), + array('group' => array('addRow', 'doSearch') + ), + ), + 'searchform.relations' => + array( + 'full' => 'full', + 'partial' => 'partial', + 'prefix' => 'prefix', + '=' => '=' , + '<' => '<', + '<=' => '<=', + '>' => '>', + '>=' => '>=' + ), + 'languages' => array( + array( + 'element' => 'langid', + 'type' => 'select', + 'label' => 'Language', + 'options' => array( + 'en' => 'English', + 'cz' => 'Czech', + 'de' => 'German', + 'hu' => 'Hungarian', + ) + ) + ) +); diff --git a/livesupport/modules/htmlUI/var/ui_handler.class.php b/livesupport/modules/htmlUI/var/ui_handler.class.php new file mode 100644 index 000000000..aa3809567 --- /dev/null +++ b/livesupport/modules/htmlUI/var/ui_handler.class.php @@ -0,0 +1,517 @@ +setFetchMode(DB_FETCHMODE_ASSOC); + $this->gb =& new GreenBox(&$dbc, $config); + $this->id = (!$_REQUEST['id'] ? $this->gb->storId : $_REQUEST['id']); + $this->sessid = $_REQUEST[$config['authCookieName']]; + $this->userid = $this->gb->getSessUserId($this->sessid); + $this->login = $this->gb->getSessLogin ($this->sessid); + $this->config = $config; + } + + // --- authentication --- + /** + * login + * + * Login to the storageServer. + * It set sessid to the cookie with name defined in ../conf.php + * + * @param login string, username + * @param pass string, password + */ + function login(&$formdata, &$mask) + { + if ($this->_validateForm($formdata, $mask)) { + $sessid = $this->gb->login($formdata['login'], $formdata['pass']); + if($sessid && !PEAR::isError($sessid)){ + setcookie($this->config['authCookieName'], $sessid); + + $fid = $this->gb->getObjId($formdata['login'], $this->gb->storId); + if(!PEAR::isError($fid)) $this->redirUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close'; + }else{ + $this->alertMsg = 'Login failed.'; + $_SESSION['retransferFormData']['login']=$formdata['login']; + $this->redirUrl = UI_BROWSER.'?popup[]=login'; + } + } + + } + + /** + * logout + * + * Logut from storageServer, takes sessid from cookie + * + * @param $trigger_login boolean, trigger login popup after logout + * + */ + function logout($trigger_login = FALSE) + { + $this->gb->logout($this->sessid); + setcookie($this->config['authCookieName'], ''); + + if ($trigger_login) + $this->redirUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=login'; + else $this->redirUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close'; + } + + // --- files --- + /** + * upload + * + * Provides file upload and store it to the storage + * + * @param filename string, name for the uploaded file + * @param mediafile file uploded by HTTP, raw binary media file + * @param mdatafile file uploded by HTTP, metadata XML file + * @param id int, destination folder id + */ + function upload(&$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); + } + } + $r = $this->gb->putFile($id, $formdata['new_filename'] ? $formdata['new_filename'] : $formdata['mediafile']['name'], $ntmp, $mdtmp, $this->sessid); + if(PEAR::isError($r)) $this->alertMsg = $r->getMessage(); + else{ + # $gb->updateMetadataDB($gb->_pathFromId($r), $mdata, $sessid); + @unlink($ntmp); + @unlink($mdtmp); + } + $this->redirUrl = UI_BROWSER."?id=".$id; + } else { + $this->redirUrl = UI_BROWSER."?act=newfile&id=".$id; + } + } + + + /** + * upload_1 + * + * Provides file upload and store it to the storage + * + * @param formdata array, submitted text and file + * @param id int, destination folder id + */ + function upload_1(&$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); + + $r = $this->gb->putFile($id, $formdata['new_filename'] ? $formdata['new_filename'] : $formdata['mediafile']['name'], $ntmp, NULL, $this->sessid); + if(PEAR::isError($r)) $this->alertMsg = $r->getMessage(); + else{ + # $gb->updateMetadataDB($gb->_pathFromId($r), $mdata, $sessid); + @unlink($ntmp); + @unlink($mdtmp); + } + + ## extract some metadata with getID3 + $this->gb->replaceMetadata($r, $this->getInfo($r, 'xml'), $mdataLoc = 'string', $this->sessid); + + + $this->redirUrl = UI_BROWSER."?act=editMetaDataValues&id=$r"; + } else { + $this->redirUrl = UI_BROWSER."?act=upload_1&id=$id"; + } + } + + /** + * newFolder + * + * Create new folder in the storage + * + * @param newname string, name for the new folder + * @param id int, destination folder id + */ + function newFolder($newname, $id) + { + $r = $this->gb->createFolder($id, $newname, $this->sessid); + if(PEAR::isError($r)) $this->alertMsg = $r->getMessage(); + $this->redirUrl = UI_BROWSER.'?id='.$id; + } + + /** + * rename + * + * Change the name of file or folder + * + * @param newname string, new name for the file or folder + * @param id int, destination folder id + */ + function rename($newname, $id) + { + $parid = $this->gb->getparent($this->id); + $r = $this->gb->renameFile($id, $newname, $this->sessid); + if(PEAR::isError($r)) $this->alertMsg = $r->getMessage(); + $this->redirUrl = UI_BROWSER."?id=$parid"; + } + + /** + * move + * + * Move file to another folder + * TODO: format of destinantion path should be properly defined + * + * @param newPath string, destination relative path + * @param id int, destination folder id + */ + function move($newPath, $id) + { + $newPath = urlencode($newPath); + $did = $this->gb->getObjIdFromRelPath($id, $newPath); + $parid = $this->gb->getparent($id); + $r = $this->gb->moveFile($id, $did, $this->sessid); + if(PEAR::isError($r)){ + $this->alertMsg = $r->getMessage(); + $this->redirUrl = UI_BROWSER."?id=$parid"; + } + else $this->redirUrl = UI_BROWSER."?id=$did"; + } + + /** + * copy + * + * Copy file to another folder + * TODO: format of destinantion path should be properly defined + * + * @param newPath string, destination relative path + * @param id int, destination folder id + */ + function copy($newPath, $id) + { + $newPath = urldecode($newPath); + $did = $this->gb->getObjIdFromRelPath($id, $newPath); + $parid = $this->gb->getparent($id); + $r = $this->gb->copyFile($id, $did, $this->sessid); + if(PEAR::isError($r)){ + $this->alertMsg = $r->getMessage(); + $this->redirUrl = UI_BROWSER."?id=$parid"; + } + else $this->redirUrl = UI_BROWSER."?id=$did"; + } + + /** + * delete + * + * Delete of stored file + * + * @param id int, local id of deleted file or folder + * @param delOverride int, local id od folder which can deleted if not empty + */ + function delete($id, $delOverride=FALSE) + { + $parid = $this->gb->getparent($id); + + ## add emtyness-test here ### + if (!($delOverride==$id) && (count($this->gb->getObjType($id)=='Folder'? + $this->gb->listFolder($id, $this->sessid):NULL))) { + $this->alertMsg = $this->tra("Folder is not empty. You can override this protection by clicking DEL again"); + $this->redirUrl = UI_BROWSER."?id=$parid&delOverride=$id"; + return; + } + ############################# + + $r = $this->gb->deleteFile($id, $this->sessid); + if(PEAR::isError($r)) $this->alertMsg = $r->getMessage(); + $this->redirUrl = UI_BROWSER."?id=$parid"; + } + + + /** + * getFile + * + * Call access method and show access path. + * Example only - not really useable. + * TODO: resource should be released by release method call + * + * @param id int, local id of accessed file + */ + function getFile($id) + { + $r = $this->gb->access($id, $this->sessid); + if(PEAR::isError($r)) $this->alertMsg = $r->getMessage(); + else echo $r; + } + + /** + * getMdata + * + * Show file's metadata as XML + * + * @param id int, local id of stored file + */ + function getMdata($id) + { + header("Content-type: text/xml"); + $r = $this->gb->getMdata($id, $this->sessid); + print_r($r); + } + + // --- subjs ---- + /** + * addSubj + * + * Create new user or group (empty pass => create group) + * + * @param formdata array('login', 'pass') + */ + function addSubj(&$formdata, &$mask) + { + $this->redirUrl = UI_BROWSER.'?act='.$_REQUEST['act']; + + ## first validate the form data + if ($this->_validateForm($formdata, $mask)) { + if($this->gb->checkPerm($this->userid, 'subjects')){ + $res = $this->gb->addSubj($formdata['login'], ($formdata['pass']=='' ? NULL:$formdata['pass'] )); + $this->alertMsg = $this->tra('Subject "'.$formdata['login'].'" added.'); + } else { + $this->alertMsg = $this->tra('Access denied.'); + return; + } + } + if(PEAR::isError($res)) $this->alertMsg = $res->getMessage(); + } + + /** + * removeSubj + * + * Remove existing user or group + * + * @param login string, login name of removed user + */ + function removeSubj($login) + { + $this->redirUrl = UI_BROWSER.'?act=subjects'; + + if($this->gb->checkPerm($this->userid, 'subjects')){ + $res = $this->gb->removeSubj($login); + }else{ + $this->alertMsg='Access denied.'; + return; + } + if(PEAR::isError($res)) $this->alertMsg = $res->getMessage(); + } + + /** + * passwd + * + * Change password for specified user + * + * @param uid int, local user id + * @param oldpass string, old user password + * @param pass string, new password + * @param pass2 string, retype of new password + */ + function passwd($uid, $oldpass, $pass, $pass2) + { + $this->redirUrl = UI_BROWSER.'?act=subjects'; + $ulogin = $this->gb->getSubjName($uid); + + if($this->userid != $uid && + ! $this->gb->checkPerm($this->userid, 'subjects')){ + $this->alertMsg='Access denied..'; + return; + } + if(FALSE === $this->gb->authenticate($ulogin, $oldpass)){ + $this->alertMsg='Wrong old pasword.'; + return; + } + if($pass !== $pass2){ + $this->alertMsg = "Passwords do not match. ". + "($pass/$pass2)"; + $this->redirUrl = UI_BROWSER.'?act=subjects'; + return; + } + $this->gb->passwd($ulogin, $oldpass, $pass); + } + + // --- perms --- + /** + * addPerm + * + * Add new permission record + * + * @param subj int, local user/group id + * @param permAction string, type of action from set predefined in conf.php + * @param id int, local id of file/object + * @param allowDeny char, A or D + */ + function addPerm($subj, $permAction, $id, $allowDeny) + { + if($this->gb->checkPerm($this->userid, 'editPerms', $id)){ + $this->gb->addPerm($subj, $permAction, + $id, $allowDeny); + }else{ + $this->alertMsg='Access denied.'; + } + $this->redirUrl = UI_BROWSER.'?id='.$id.'&act=permissions'; + } + + /** + * removePerm + * + * Remove permission record + * + * @param permid int, local id of permission record + * @param oid int, local id of object to handle + */ + function removePerm($permid, $oid) + { + if($this->gb->checkPerm($this->userid, 'editPerms', $oid)) + $this->gb->removePerm($permid); + else $this->alertMsg='Access denied.'; + $this->redirUrl = UI_BROWSER.'?act=permissions&id='.$oid; + } + + + /** + * addSubj2Group + * + * Add {login} and direct/indirect members to {gname} and to groups, + * where {gname} is [in]direct member + * + * @param login string + * @param gname string + * @param reid string, local id of managed group, just needed for redirect + */ + function addSubj2Group($login, $gname, $reid) + { + if($this->gb->checkPerm($this->userid, 'subjects')){ + $res = $this->gb->addSubj2Gr($login, $gname); + }else{ + $this->alertMsg='Access denied.'; + return; + } + if(PEAR::isError($res)) $this->alertMsg = $res->getMessage(); + + $this->redirUrl = UI_BROWSER.'?act=groups&id='.$reid; + } + + /** + * 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) + { + if($this->gb->checkPerm($this->userid, 'subjects')){ + $res = $this->gb->removeSubjFromGr($login, $gname); + }else{ + $this->alertMsg='Access denied.'; + return; + } + if(PEAR::isError($res)) $this->alertMsg = $res->getMessage(); + + $this->redirUrl = UI_BROWSER.'?act=groups&id='.$reid; + } + + + function storeMetaData(&$formdata, &$mask) + { + $this->redirUrl = UI_BROWSER.'?act=editMetaDataValues&id='.$formdata['id']; + 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) { + #$this->gb->setMDataValue($formdata['id'], $key, $val, $this->sessid) + } + + $this->alertMsg = $this->tra('Metadata saved'); + } + + + function _validateForm(&$formdata, &$mask) + { + $form = new HTML_QuickForm('validation', UI_STANDARD_FORM_METHOD, UI_HANDLER); + $this->_parseArr2Form($form, $mask, 'server'); + if (!$form->validate()) { + $_SESSION['retransferFormData'] = $formdata; + return FALSE; + } + ## test for uploadet files bacause HTMLQuickForm::validate() ignores them #### + foreach($mask as $k) { + if ($k['type']=='file' && $k['required']==TRUE) { + if ($formdata[$k['element']]['error']) { + $_SESSION['retransferFormData'] = $formdata; + return FALSE; + } + } + } + reset($mask); + return TRUE; + } + + + function storeSystemPrefs(&$formdata, &$mask) + { + $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)) $this->gb->saveGroupPref($this->sessid, 'StationPrefs', $val['element'], $formdata[$val['element']]); + 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'))) + $this->alertMsg = $this->tra('Error uploading Logo'); + return; + } + } + + $this->alertMsg = $this->tra('Settings saved'); + return; + } + $this->alertMsg = $this->tra('Error saving Settings'); + } + + + function _isTextInput($input) + { + $test = array('text' =>0, 'textarea' =>0, 'select'=>0, 'radio'=>0, 'checkbox'=>0); + if (array_key_exists($input, $test)) + return TRUE; + + return FALSE; + } + +} + +?> \ No newline at end of file diff --git a/livesupport/modules/htmlUI/var/ui_handler_init.php b/livesupport/modules/htmlUI/var/ui_handler_init.php new file mode 100644 index 000000000..2b8a4be61 --- /dev/null +++ b/livesupport/modules/htmlUI/var/ui_handler_init.php @@ -0,0 +1,21 @@ +