Public Member Functions | |
| preInit () | |
| First initialization. | |
| doProcessData () | |
| Detects, if a save command has been triggered. | |
| processData () | |
| Do processing of data, submitting it to TCEmain. | |
| init () | |
| Initialize the normal module operation. | |
| main () | |
| Main module operation. | |
| printContent () | |
| Outputting the accumulated content to screen. | |
| makeEditForm () | |
| Creates the editing form with TCEforms, based on the input from GPvars. | |
| makeButtonPanel () | |
| Create the panel of buttons for submitting the form or otherwise perform operations. | |
| makeDocSel () | |
| Create the selector box form element which allows to select between open documents. | |
| makeCmenu () | |
| Create the selector box form element which allows to select a clear-cache operation. | |
| compileForm ($panel, $docSel, $cMenu, $editForm) | |
| Put together the various elements (buttons, selectors, form) into a table. | |
| functionMenus () | |
| Create the checkbox buttons in the bottom of the pages. | |
| shortCutLink () | |
| Create shortcut and open-in-window link in the bottom of the page. | |
| tceformMessages () | |
| Reads comment messages from TCEforms and prints them in a HTML comment in the buttom of the page. | |
| editRegularContentFromId () | |
| Function, which populates the internal editconf array with editing commands for all tt_content elements from the normal column in normal language from the page pointed to by $this->editRegularContentFromId. | |
| compileStoreDat () | |
| Populates the variables $this->storeArray, $this->storeUrl, $this->storeUrlMd5. | |
| getNewIconMode ($table, $key='saveDocNew') | |
| Function used to look for configuration of buttons in the form: Fx. | |
| closeDocument ($code=0) | |
| Handling the closing of a document. | |
| setDocument ($currentDocFromHandlerMD5='', $retUrl='alt_doc_nodoc.php') | |
| Redirects to the document pointed to by $currentDocFromHandlerMD5 OR $retUrl (depending on some internal calculations). | |
Public Attributes | |
| $editconf | |
| $columnsOnly | |
| $defVals | |
| $overrideVals | |
| $returnUrl | |
| $closeDoc | |
| $doSave | |
| $data | |
| $mirror | |
| $cacheCmd | |
| $redirect | |
| $disableRTE | |
| $returnNewPageId | |
| $vC | |
| $popViewId | |
| $popViewId_addParams | |
| $viewUrl | |
| $editRegularContentFromId | |
| $recTitle | |
| $disHelp | |
| $noView | |
| $returnEditConf | |
| $doc | |
| $content | |
| $retUrl | |
| $R_URL_parts | |
| $R_URL_getvars | |
| $R_URI | |
| $storeTitle | |
| $storeArray | |
| $storeUrl | |
| $storeUrlMd5 | |
| $docDat | |
| $docHandler | |
| $elementsData | |
| $firstEl | |
| $errorC | |
| $newC | |
| $viewId | |
| $viewId_addParams | |
| $modTSconfig | |
| $tceforms | |
| $generalPathOfForm | |
| $dontStoreDocumentRef | |
|
|
Handling the closing of a document.
Definition at line 1074 of file alt_doc.php. Referenced by preInit(), and processData(). 01074 {
01075 global $BE_USER;
01076
01077 // If current document is found in docHandler, then unset it, possibly unset it ALL and finally, write it to the session data:
01078 if (isset($this->docHandler[$this->storeUrlMd5])) {
01079 unset($this->docHandler[$this->storeUrlMd5]);
01080 if ($code=='3') $this->docHandler=array();
01081 $BE_USER->pushModuleData('alt_doc.php',array($this->docHandler,$this->docDat[1]));
01082 }
01083
01084 // If ->returnEditConf is set, then add the current content of editconf to the ->retUrl variable: (used by other scripts, like wizard_add, to know which records was created or so...)
01085 if ($this->returnEditConf && $this->retUrl!='dummy.php') {
01086 $this->retUrl.='&returnEditConf='.rawurlencode(serialize($this->editconf));
01087 }
01088
01089 // If code is NOT set OR set to 1, then make a header location redirect to $this->retUrl
01090 if (!$code || $code==1) {
01091 Header('Location: '.t3lib_div::locationHeaderUrl($this->retUrl));
01092 exit;
01093 } else {
01094 $this->setDocument('',$this->retUrl);
01095 }
01096 }
|
|
||||||||||||||||||||
|
Put together the various elements (buttons, selectors, form) into a table.
Definition at line 859 of file alt_doc.php. References menu(), and table(). 00859 {
00860 global $LANG;
00861
00862
00863 $formContent='';
00864 $formContent.='
00865
00866 <!--
00867 Header of the editing page.
00868 Contains the buttons for saving/closing, the document selector and menu selector.
00869 Shows the path of the editing operation as well.
00870 -->
00871 <table border="0" cellpadding="0" cellspacing="1" width="470" id="typo3-altdoc-header">
00872 <tr>
00873 <td nowrap="nowrap" valign="top">'.$panel.'</td>
00874 <td nowrap="nowrap" valign="top" align="right">'.$docSel.$cMenu.'</td>
00875 </tr>
00876 <tr>
00877 <td colspan="2">'.$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.path',1).': '.htmlspecialchars($this->generalPathOfForm).'</td>
00878 </tr>
00879 </table>
00880 <img src="clear.gif" width="1" height="4" alt="" /><br />
00881
00882
00883
00884
00885 <!--
00886 EDITING FORM:
00887 -->
00888
00889 '.$editForm.'
00890
00891
00892
00893 <!--
00894 Saving buttons (same as in top)
00895 -->
00896
00897 '.$panel.
00898 '<input type="hidden" name="returnUrl" value="'.htmlspecialchars($this->retUrl).'" />
00899 <input type="hidden" name="viewUrl" value="'.htmlspecialchars($this->viewUrl).'" />';
00900
00901 if ($this->returnNewPageId) {
00902 $formContent.='<input type="hidden" name="returnNewPageId" value="1" />';
00903 }
00904 $formContent.='<input type="hidden" name="popViewId" value="'.htmlspecialchars($this->viewId).'" />';
00905 if ($this->viewId_addParams) {
00906 $formContent.='<input type="hidden" name="popViewId_addParams" value="'.htmlspecialchars($this->viewId_addParams).'" />';
00907 }
00908 $formContent.='<input type="hidden" name="closeDoc" value="0" />';
00909 $formContent.='<input type="hidden" name="doSave" value="0" />';
00910 $formContent.='<input type="hidden" name="_serialNumber" value="'.md5(microtime()).'" />';
00911 $formContent.='<input type="hidden" name="_disableRTE" value="'.$this->tceforms->disableRTE.'" />';
00912
00913 return $formContent;
00914 }
|
|
|
Populates the variables $this->storeArray, $this->storeUrl, $this->storeUrlMd5.
Definition at line 1048 of file alt_doc.php. Referenced by preInit(), and processData(). 01048 {
01049 $this->storeArray = t3lib_div::compileSelectedGetVarsFromArray('edit,defVals,overrideVals,columnsOnly,disHelp,noView,editRegularContentFromId',$this->R_URL_getvars);
01050 $this->storeUrl = t3lib_div::implodeArrayForUrl('',$this->storeArray);
01051 $this->storeUrlMd5 = md5($this->storeUrl);
01052 }
|
|
|
Detects, if a save command has been triggered.
Definition at line 219 of file alt_doc.php. References $out. 00219 {
00220 $out = $this->doSave || isset($_POST['_savedok_x']) || isset($_POST['_saveandclosedok_x']) || isset($_POST['_savedokview_x']) || isset($_POST['_savedoknew_x']);
00221 return $out;
00222 }
|
|
|
Function, which populates the internal editconf array with editing commands for all tt_content elements from the normal column in normal language from the page pointed to by $this->editRegularContentFromId.
Definition at line 1021 of file alt_doc.php. References t3lib_extMgm::isLoaded(). Referenced by init(). 01021 {
01022 if (t3lib_extMgm::isLoaded('cms')) {
01023 $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
01024 'uid',
01025 'tt_content',
01026 'pid='.intval($this->editRegularContentFromId).
01027 t3lib_BEfunc::deleteClause('tt_content').
01028 ' AND colPos=0 AND sys_language_uid=0',
01029 '',
01030 'sorting'
01031 );
01032 if ($GLOBALS['TYPO3_DB']->sql_num_rows($res)) {
01033 $ecUids=array();
01034 while($ecRec = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
01035 $ecUids[]=$ecRec['uid'];
01036 }
01037 $this->editconf['tt_content'][implode(',',$ecUids)]='edit';
01038 }
01039 }
01040 }
|
|
|
Create the checkbox buttons in the bottom of the pages.
Definition at line 921 of file alt_doc.php. 00921 {
00922 global $BE_USER,$LANG;
00923
00924 $funcMenus = '';
00925
00926 // Show palettes:
00927 $funcMenus.= '<br /><br />'.t3lib_BEfunc::getFuncCheck('','SET[showPalettes]',$this->MOD_SETTINGS['showPalettes'],'alt_doc.php',t3lib_div::implodeArrayForUrl('',array_merge($this->R_URL_getvars,array('SET'=>'')))).$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.showPalettes',1);
00928
00929 // Show descriptions/help texts:
00930 if ($BE_USER->uc['edit_showFieldHelp']!='text') {
00931 $funcMenus.= '<br />'.t3lib_BEfunc::getFuncCheck('','SET[showDescriptions]',$this->MOD_SETTINGS['showDescriptions'],'alt_doc.php',t3lib_div::implodeArrayForUrl('',array_merge($this->R_URL_getvars,array('SET'=>'')))).$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.showDescriptions',1);
00932 }
00933
00934 // Show disable RTE checkbox:
00935 if ($BE_USER->isRTE()) {
00936 $funcMenus.= '<br />'.t3lib_BEfunc::getFuncCheck('','SET[disableRTE]',$this->MOD_SETTINGS['disableRTE'],'alt_doc.php',t3lib_div::implodeArrayForUrl('',array_merge($this->R_URL_getvars,array('SET'=>'')))).$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.disableRTE',1);
00937 }
00938
00939 return '
00940
00941 <!--
00942 Function menus (checkboxes for selecting options):
00943 -->
00944 '.$funcMenus;
00945 }
|
|
||||||||||||
|
Function used to look for configuration of buttons in the form: Fx. disabling buttons or showing them at various positions.
Definition at line 1061 of file alt_doc.php. References table(). Referenced by processData(). 01061 {
01062 global $BE_USER;
01063 $TSconfig = $BE_USER->getTSConfig('options.'.$key);
01064 $output = trim(isset($TSconfig['properties'][$table]) ? $TSconfig['properties'][$table] : $TSconfig['value']);
01065 return $output;
01066 }
|
|
|
Initialize the normal module operation.
Definition at line 346 of file alt_doc.php. References editRegularContentFromId(), and t3lib_BEfunc::getModuleData(). 00346 {
00347 global $BE_USER,$LANG,$BACK_PATH;
00348
00349 // Setting more GPvars:
00350 $this->popViewId = t3lib_div::_GP('popViewId');
00351 $this->popViewId_addParams = t3lib_div::_GP('popViewId_addParams');
00352 $this->viewUrl = t3lib_div::_GP('viewUrl');
00353 $this->editRegularContentFromId = t3lib_div::_GP('editRegularContentFromId');
00354 $this->recTitle = t3lib_div::_GP('recTitle');
00355 $this->disHelp = t3lib_div::_GP('disHelp');
00356 $this->noView = t3lib_div::_GP('noView');
00357
00358 // Set other internal variables:
00359 $this->R_URL_getvars['returnUrl']=$this->retUrl;
00360 $this->R_URI = $this->R_URL_parts['path'].'?'.t3lib_div::implodeArrayForUrl('',$this->R_URL_getvars);
00361
00362 // MENU-ITEMS:
00363 // If array, then it's a selector box menu
00364 // If empty string it's just a variable, that'll be saved.
00365 // Values NOT in this array will not be saved in the settings-array for the module.
00366 $this->MOD_MENU = array(
00367 'showPalettes' => '',
00368 'showDescriptions' => '',
00369 'disableRTE' => ''
00370 );
00371
00372 // Setting virtual document name
00373 $this->MCONF['name']='xMOD_alt_doc.php';
00374
00375 // CLEANSE SETTINGS
00376 $this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']);
00377
00378 // Create an instance of the document template object
00379 $this->doc = t3lib_div::makeInstance('mediumDoc');
00380 $this->doc->bodyTagMargins['x']=5;
00381 $this->doc->bodyTagMargins['y']=5;
00382 $this->doc->backPath = $BACK_PATH;
00383 $this->doc->docType = 'xhtml_trans';
00384
00385 $this->doc->form='<form action="'.htmlspecialchars($this->R_URI).'" method="post" enctype="'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'].'" name="editform" onsubmit="return TBE_EDITOR_checkSubmit(1);">';
00386
00387 $this->doc->JScode = $this->doc->wrapScriptTags('
00388 function jumpToUrl(URL,formEl) { //
00389 if (!TBE_EDITOR_isFormChanged()) {
00390 document.location = URL;
00391 } else if (formEl && formEl.type=="checkbox") {
00392 formEl.checked = formEl.checked ? 0 : 1;
00393 }
00394 }
00395
00396 // Object: TS:
00397 function typoSetup () { //
00398 this.uniqueID = "";
00399 }
00400 var TS = new typoSetup();
00401
00402 // Info view:
00403 function launchView(table,uid,bP) { //
00404 var backPath= bP ? bP : "";
00405 var thePreviewWindow="";
00406 thePreviewWindow = window.open(backPath+"show_item.php?table="+escape(table)+"&uid="+escape(uid),"ShowItem"+TS.uniqueID,"height=300,width=410,status=0,menubar=0,resizable=0,location=0,directories=0,scrollbars=1,toolbar=0");
00407 if (thePreviewWindow && thePreviewWindow.focus) {
00408 thePreviewWindow.focus();
00409 }
00410 }
00411 function deleteRecord(table,id,url) { //
00412 if (confirm('.$LANG->JScharCode($LANG->getLL('deleteWarning')).')) {
00413 document.location = "tce_db.php?cmd["+table+"]["+id+"][delete]=1&redirect="+escape(url)+"&vC='.$BE_USER->veriCode().'&prErr=1&uPT=1";
00414 }
00415 return false;
00416 }
00417 '.(isset($_POST['_savedokview_x']) && $this->popViewId ? t3lib_BEfunc::viewOnClick($this->popViewId,'',t3lib_BEfunc::BEgetRootLine($this->popViewId),'',$this->viewUrl,$this->popViewId_addParams) : '')
00418 ).$this->doc->getDynTabMenuJScode();
00419
00420 // Setting up the context sensitive menu:
00421 $CMparts = $this->doc->getContextMenuCode();
00422 $this->doc->JScode.= $CMparts[0];
00423 $this->doc->bodyTagAdditions = $CMparts[1];
00424 $this->doc->postCode.= $CMparts[2];
00425 }
|
|
|
Main module operation.
Definition at line 432 of file alt_doc.php. References t3lib_BEfunc::cshItem(), and t3lib_BEfunc::getModTSconfig(). 00432 {
00433 global $BE_USER,$LANG;
00434
00435 // Starting content accumulation:
00436 $this->content='';
00437 $this->content.=$this->doc->startPage('TYPO3 Edit Document');
00438
00439 // Begin edit:
00440 if (is_array($this->editconf)) {
00441
00442 // Initialize TCEforms (rendering the forms)
00443 $this->tceforms = t3lib_div::makeInstance('t3lib_TCEforms');
00444 $this->tceforms->initDefaultBEMode();
00445 $this->tceforms->doSaveFieldName = 'doSave';
00446 $this->tceforms->returnUrl = $this->R_URI;
00447 $this->tceforms->palettesCollapsed = !$this->MOD_SETTINGS['showPalettes'];
00448 $this->tceforms->disableRTE = $this->MOD_SETTINGS['disableRTE'];
00449 $this->tceforms->enableClickMenu = TRUE;
00450 $this->tceforms->enableTabMenu = TRUE;
00451
00452 // Clipboard is initialized:
00453 $this->tceforms->clipObj = t3lib_div::makeInstance('t3lib_clipboard'); // Start clipboard
00454 $this->tceforms->clipObj->initializeClipboard(); // Initialize - reads the clipboard content from the user session
00455
00456 // Setting external variables:
00457 if ($BE_USER->uc['edit_showFieldHelp']!='text' && $this->MOD_SETTINGS['showDescriptions']) $this->tceforms->edit_showFieldHelp='text';
00458
00459 if ($this->editRegularContentFromId) {
00460 $this->editRegularContentFromId();
00461 }
00462
00463 // Creating the editing form, wrap it with buttons, document selector etc.
00464 $editForm = $this->makeEditForm();
00465 if ($editForm) {
00466 reset($this->elementsData);
00467 $this->firstEl = current($this->elementsData);
00468
00469 if ($this->viewId) {
00470 // Module configuration:
00471 $this->modTSconfig = t3lib_BEfunc::getModTSconfig($this->viewId,'mod.xMOD_alt_doc');
00472 } else $this->modTSconfig=array();
00473
00474 $panel = $this->makeButtonPanel();
00475 $docSel = $this->makeDocSel();
00476 $cMenu = $this->makeCmenu();
00477
00478 $formContent = $this->compileForm($panel,$docSel,$cMenu,$editForm);
00479
00480 $this->content.= $this->tceforms->printNeededJSFunctions_top().
00481 $formContent.
00482 $this->tceforms->printNeededJSFunctions();
00483 $this->content.= $this->functionMenus();
00484
00485 // Add CSH:
00486 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'TCEforms', $GLOBALS['BACK_PATH'],'<br/>|',FALSE,'margin-top: 20px;');
00487
00488 $this->content.= $this->shortCutLink();
00489
00490 $this->tceformMessages();
00491 }
00492 }
00493 }
|
|
|
Create the panel of buttons for submitting the form or otherwise perform operations.
Definition at line 717 of file alt_doc.php. References $TCA, t3lib_extMgm::isLoaded(), and table(). 00717 {
00718 global $TCA,$LANG;
00719
00720 $panel='';
00721
00722 // Render SAVE type buttons:
00723 // The action of each button is decided by its name attribute. (See doProcessData())
00724 if (!$this->errorC && !$TCA[$this->firstEl['table']]['ctrl']['readOnly']) {
00725
00726 // SAVE button:
00727 $panel.= '<input type="image" class="c-inputButton" name="_savedok"'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/savedok.gif','').' title="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:rm.saveDoc',1).'" />';
00728
00729 // SAVE / VIEW button:
00730 if ($this->viewId && !$this->noView && t3lib_extMgm::isLoaded('cms')) {
00731 $panel.= '<input type="image" class="c-inputButton" name="_savedokview"'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/savedokshow.gif','').' title="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:rm.saveDocShow',1).'" />';
00732 }
00733
00734 // SAVE / NEW button:
00735 if (count($this->elementsData)==1 && $this->getNewIconMode($this->firstEl['table'])) {
00736 $panel.= '<input type="image" class="c-inputButton" name="_savedoknew"'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/savedoknew.gif','').' title="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:rm.saveNewDoc',1).'" />';
00737 }
00738
00739 // SAVE / CLOSE
00740 $panel.= '<input type="image" class="c-inputButton" name="_saveandclosedok"'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/saveandclosedok.gif','').' title="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:rm.saveCloseDoc',1).'" />';
00741 }
00742
00743 // CLOSE button:
00744 $panel.= '<a href="#" onclick="document.editform.closeDoc.value=1; document.editform.submit(); return false;">'.
00745 '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/closedok.gif','width="21" height="16"').' class="c-inputButton" title="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:rm.closeDoc',1).'" alt="" />'.
00746 '</a>';
00747
00748 // DELETE + UNDO buttons:
00749 if (!$this->errorC && !$TCA[$this->firstEl['table']]['ctrl']['readOnly'] && count($this->elementsData)==1) {
00750 if ($this->firstEl['cmd']!='new' && t3lib_div::testInt($this->firstEl['uid'])) {
00751
00752 // Delete:
00753 if ($this->firstEl['deleteAccess'] && !$TCA[$this->firstEl['table']]['ctrl']['readOnly'] && !$this->getNewIconMode($this->firstEl['table'],'disableDelete')) {
00754 $aOnClick = 'return deleteRecord(\''.$this->firstEl['table'].'\',\''.$this->firstEl['uid'].'\',unescape(\''.rawurlencode($this->retUrl).'\'));';
00755 $panel.= '<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.
00756 '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/deletedok.gif','width="21" height="16"').' class="c-inputButton" title="'.$LANG->getLL('deleteItem',1).'" alt="" />'.
00757 '</a>';
00758 }
00759
00760 // Undo:
00761 $undoButton = 0;
00762 $undoRes = $GLOBALS['TYPO3_DB']->exec_SELECTquery('tstamp', 'sys_history', 'tablename="'.$GLOBALS['TYPO3_DB']->quoteStr($this->firstEl['table'], 'sys_history').'" AND recuid="'.intval($this->firstEl['uid']).'"', '', 'tstamp DESC', '1');
00763 if ($undoButtonR = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($undoRes)) {
00764 $undoButton = 1;
00765 }
00766 if ($undoButton) {
00767 $aOnClick = 'document.location=\'show_rechis.php?element='.rawurlencode($this->firstEl['table'].':'.$this->firstEl['uid']).'&revert=ALL_FIELDS&sumUp=-1&returnUrl='.rawurlencode($this->R_URI).'\'; return false;';
00768 $panel.= '<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.
00769 '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/undo.gif','width="21" height="16"').' class="c-inputButton" title="'.htmlspecialchars(sprintf($LANG->getLL('undoLastChange'),t3lib_BEfunc::calcAge(time()-$undoButtonR['tstamp'],$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.minutesHoursDaysYears')))).'" alt="" />'.
00770 '</a>';
00771 }
00772 if ($this->getNewIconMode($this->firstEl['table'],'showHistory')) {
00773 $aOnClick = 'document.location=\'show_rechis.php?element='.rawurlencode($this->firstEl['table'].':'.$this->firstEl['uid']).'&returnUrl='.rawurlencode($this->R_URI).'\'; return false;';
00774 $panel.= '<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.
00775 '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/history2.gif','width="13" height="12"').' class="c-inputButton" alt="" />'.
00776 '</a>';
00777 }
00778
00779 // If only SOME fields are shown in the form, this will link the user to the FULL form:
00780 if ($this->columnsOnly) {
00781 $panel.= '<a href="'.htmlspecialchars($this->R_URI.'&columnsOnly=').'">'.
00782 '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/edit2.gif','width="11" height="12"').' class="c-inputButton" title="'.$LANG->getLL('editWholeRecord',1).'" alt="" />'.
00783 '</a>';
00784 }
00785 }
00786 }
00787 return $panel;
00788 }
|
|
|
Create the selector box form element which allows to select a clear-cache operation. Can be disabled through Page TSconfig.
Definition at line 838 of file alt_doc.php. References t3lib_BEfunc::cshItem(). 00838 {
00839
00840 // Generate the menu if NOT disabled:
00841 if (!$this->modTSconfig['properties']['disableCacheSelector']) {
00842 $cMenu = $this->doc->clearCacheMenu(intval($this->viewId),!$this->modTSconfig['properties']['disableDocSelector']);
00843
00844 // Add CSH:
00845 $cMenu.=t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'TCEforms_cacheSelector', $GLOBALS['BACK_PATH'],'', TRUE);
00846 } else $cMenu ='';
00847 return $cMenu;
00848 }
|
|
|
Create the selector box form element which allows to select between open documents. Can be disabled through Page TSconfig.
Definition at line 796 of file alt_doc.php. References t3lib_BEfunc::cshItem(). 00796 {
00797 global $BE_USER,$LANG;
00798
00799 // Render the selector ONLY if it has not been disabled:
00800 if (!$this->modTSconfig['properties']['disableDocSelector']) {
00801
00802 // Checking if the currently open document is stored in the list of "open documents" - if not, then add it:
00803 if ((strcmp($this->docDat[1],$this->storeUrlMd5)||!isset($this->docHandler[$this->storeUrlMd5])) && !$this->dontStoreDocumentRef) {
00804 $this->docHandler[$this->storeUrlMd5]=array($this->storeTitle,$this->storeArray,$this->storeUrl);
00805 $BE_USER->pushModuleData('alt_doc.php',array($this->docHandler,$this->storeUrlMd5));
00806 }
00807
00808 // Now, create the document selector box:
00809 $docSel='';
00810 if (is_array($this->docHandler)) {
00811 $opt = array();
00812 $opt[] = '<option>[ '.$LANG->getLL('openDocs',1).': ]</option>';
00813
00814 // Traverse the list of open documents:
00815 foreach($this->docHandler as $md5k => $setupArr) {
00816 $theValue = 'alt_doc.php?'.$setupArr[2].'&returnUrl='.rawurlencode($this->retUrl);
00817 $opt[]='<option value="'.htmlspecialchars($theValue).'"'.(!strcmp($md5k,$this->storeUrlMd5)?' selected="selected"':'').'>'.htmlspecialchars(strip_tags(t3lib_div::htmlspecialchars_decode($setupArr[0]))).'</option>';
00818 }
00819
00820 // Compile the selector box finally:
00821 $onChange = 'if(this.options[this.selectedIndex].value && !TBE_EDITOR_isFormChanged()){document.location=(this.options[this.selectedIndex].value);}';
00822 $docSel='<select name="_docSelector" onchange="'.htmlspecialchars($onChange).'">'.implode('',$opt).'</select>';
00823
00824 // Add CSH:
00825 $docSel.=t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'TCEforms_docSelector', $GLOBALS['BACK_PATH'],'', TRUE);
00826 }
00827 } else $docSel='';
00828 return $docSel;
00829 }
|
|
|
Creates the editing form with TCEforms, based on the input from GPvars.
Definition at line 535 of file alt_doc.php. References $LANG, $TCA, t3lib_BEfunc::fixVersioningPid(), t3lib_BEfunc::getRecord(), t3lib_BEfunc::getRecordTitle(), t3lib_BEfunc::isRecordLocked(), and table(). 00535 {
00536 global $BE_USER,$LANG,$TCA;
00537
00538 // Initialize variables:
00539 $this->elementsData=array();
00540 $this->errorC=0;
00541 $this->newC=0;
00542 $thePrevUid='';
00543 $editForm='';
00544
00545 // Traverse the GPvar edit array
00546 foreach($this->editconf as $table => $conf) { // Tables:
00547 if (is_array($conf) && $TCA[$table] && $BE_USER->check('tables_modify',$table)) {
00548
00549 // Traverse the keys/comments of each table (keys can be a commalist of uids)
00550 foreach($conf as $cKey => $cmd) {
00551 if ($cmd=='edit' || $cmd=='new') {
00552
00553 // Get the ids:
00554 $ids = t3lib_div::trimExplode(',',$cKey,1);
00555
00556 // Traverse the ids:
00557 foreach($ids as $theUid) {
00558
00559 // Checking if the user has permissions? (Only working as a precaution, because the final permission check is always down in TCE. But it's good to notify the user on beforehand...)
00560 // First, resetting flags.
00561 $hasAccess = 1;
00562 $deniedAccessReason = '';
00563 $deleteAccess = 0;
00564 $this->viewId = 0;
00565
00566 // If the command is to create a NEW record...:
00567 if ($cmd=='new') {
00568 if (intval($theUid)) { // NOTICE: the id values in this case points to the page uid onto which the record should be create OR (if the id is negativ) to a record from the same table AFTER which to create the record.
00569
00570 // Find parent page on which the new record reside
00571 if ($theUid<0) { // Less than zero - find parent page
00572 $calcPRec=t3lib_BEfunc::getRecord($table,abs($theUid));
00573 $calcPRec=t3lib_BEfunc::getRecord('pages',$calcPRec['pid']);
00574 } else { // always a page
00575 $calcPRec=t3lib_BEfunc::getRecord('pages',abs($theUid));
00576 }
00577
00578 // Now, calculate whether the user has access to creating new records on this position:
00579 if (is_array($calcPRec)) {
00580 $CALC_PERMS = $BE_USER->calcPerms($calcPRec); // Permissions for the parent page
00581 if ($table=='pages') { // If pages:
00582 $hasAccess = $CALC_PERMS&8 ? 1 : 0;
00583 $this->viewId = $calcPRec['pid'];
00584 } else {
00585 $hasAccess = $CALC_PERMS&16 ? 1 : 0;
00586 $this->viewId = $calcPRec['uid'];
00587 }
00588 }
00589 }
00590 $this->dontStoreDocumentRef=1; // Don't save this document title in the document selector if the document is new.
00591 } else { // Edit:
00592 $calcPRec = t3lib_BEfunc::getRecord($table,$theUid);
00593 t3lib_BEfunc::fixVersioningPid($table,$calcPRec);
00594 if (is_array($calcPRec)) {
00595 if ($table=='pages') { // If pages:
00596 $CALC_PERMS = $BE_USER->calcPerms($calcPRec);
00597 $hasAccess = $CALC_PERMS&2 ? 1 : 0;
00598 $deleteAccess = $CALC_PERMS&4 ? 1 : 0;
00599 $this->viewId = $calcPRec['uid'];
00600 } else {
00601 $CALC_PERMS = $BE_USER->calcPerms(t3lib_BEfunc::getRecord('pages',$calcPRec['pid'])); // Fetching pid-record first.
00602 $hasAccess = $CALC_PERMS&16 ? 1 : 0;
00603 $deleteAccess = $CALC_PERMS&16 ? 1 : 0;
00604 $this->viewId = $calcPRec['pid'];
00605
00606 // Adding "&L=xx" if the record being edited has a languageField with a value larger than zero!
00607 if ($TCA[$table]['ctrl']['languageField'] && $calcPRec[$TCA[$table]['ctrl']['languageField']]>0) {
00608 $this->viewId_addParams = '&L='.$calcPRec[$TCA[$table]['ctrl']['languageField']];
00609 }
00610 }
00611
00612 // Check internals regarding access:
00613 if ($hasAccess) {
00614 $hasAccess = $BE_USER->recordEditAccessInternals($table, $calcPRec);
00615 $deniedAccessReason = $BE_USER->errorMsg;
00616 }
00617 } else $hasAccess = 0;
00618 }
00619
00620 // AT THIS POINT we have checked the access status of the editing/creation of records and we can now proceed with creating the form elements:
00621
00622 if ($hasAccess) {
00623 $prevPageID = is_object($trData)?$trData->prevPageID:'';
00624 $trData = t3lib_div::makeInstance('t3lib_transferData');
00625 $trData->addRawData = TRUE;
00626 $trData->defVals = $this->defVals;
00627 $trData->lockRecords=1;
00628 $trData->disableRTE = $this->MOD_SETTINGS['disableRTE'];
00629 $trData->prevPageID = $prevPageID;
00630 $trData->fetchRecord($table,$theUid,$cmd=='new'?'new':''); // 'new'
00631 reset($trData->regTableItems_data);
00632 $rec = current($trData->regTableItems_data);
00633 $rec['uid'] = $cmd=='new'?uniqid('NEW'):$theUid;
00634 $this->elementsData[]=array(
00635 'table' => $table,
00636 'uid' => $rec['uid'],
00637 'cmd' => $cmd,
00638 'deleteAccess' => $deleteAccess
00639 );
00640 if ($cmd=='new') {
00641 $rec['pid'] = $theUid=='prev'?$thePrevUid:$theUid;
00642 }
00643
00644 // Now, render the form:
00645 if (is_array($rec)) {
00646
00647 // Setting visual path / title of form:
00648 $this->generalPathOfForm = $this->tceforms->getRecordPath($table,$rec);
00649 if (!$this->storeTitle) {
00650 $this->storeTitle = $this->recTitle ? htmlspecialchars($this->recTitle) : t3lib_BEfunc::getRecordTitle($table,$rec,1);
00651 }
00652
00653 // Setting variables in TCEforms object:
00654 $this->tceforms->hiddenFieldList = '';
00655 $this->tceforms->globalShowHelp = $this->disHelp ? 0 : 1;
00656 if (is_array($this->overrideVals[$table])) {
00657 $this->tceforms->hiddenFieldListArr = array_keys($this->overrideVals[$table]);
00658 }
00659
00660 // Register default language labels, if any:
00661 $this->tceforms->registerDefaultLanguageData($table,$rec);
00662
00663 // Create form for the record (either specific list of fields or the whole record):
00664 $panel = '';
00665 if ($this->columnsOnly) {
00666 $panel.= $this->tceforms->getListedFields($table,$rec,$this->columnsOnly);
00667 } else {
00668 $panel.= $this->tceforms->getMainFields($table,$rec);
00669 }
00670 $panel = $this->tceforms->wrapTotal($panel,$rec,$table);
00671
00672 // Setting the pid value for new records:
00673 if ($cmd=='new') {
00674 $panel.= '<input type="hidden" name="data['.$table.']['.$rec['uid'].'][pid]" value="'.$rec['pid'].'" />';
00675 $this->newC++;
00676 }
00677
00678 // Display "is-locked" message:
00679 if ($lockInfo = t3lib_BEfunc::isRecordLocked($table,$rec['uid'])) {
00680 $lockIcon = '
00681
00682 <!--
00683 Warning box:
00684 -->
00685 <table border="0" cellpadding="0" cellspacing="0" class="warningbox">
00686 <tr>
00687 <td><img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/recordlock_warning3.gif','width="17" height="12"').' alt="" /></td>
00688 <td>'.htmlspecialchars($lockInfo['msg']).'</td>
00689 </tr>
00690 </table>
00691 ';
00692 } else $lockIcon = '';
00693
00694 // Combine it all:
00695 $editForm.= $lockIcon.$panel;
00696 }
00697
00698 $thePrevUid = $rec['uid'];
00699 } else {
00700 $this->errorC++;
00701 $editForm.=$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.noEditPermission',1).'<br /><br />'.
00702 ($deniedAccessReason ? 'Reason: '.htmlspecialchars($deniedAccessReason).'<br/><br/>' : '');
00703 }
00704 }
00705 }
00706 }
00707 }
00708 }
00709 return $editForm;
00710 }
|
|
|
First initialization.
Definition at line 167 of file alt_doc.php. References closeDocument(), compileStoreDat(), and setDocument(). 00167 {
00168 global $BE_USER;
00169
00170 // Setting GPvars:
00171 $this->editconf = t3lib_div::_GP('edit');
00172 $this->defVals = t3lib_div::_GP('defVals');
00173 $this->overrideVals = t3lib_div::_GP('overrideVals');
00174 $this->columnsOnly = t3lib_div::_GP('columnsOnly');
00175 $this->returnUrl = t3lib_div::_GP('returnUrl');
00176 $this->closeDoc = t3lib_div::_GP('closeDoc');
00177 $this->doSave = t3lib_div::_GP('doSave');
00178 $this->returnEditConf = t3lib_div::_GP('returnEditConf');
00179
00180 // Setting override values as default if defVals does not exist.
00181 if (!is_array($this->defVals) && is_array($this->overrideVals)) {
00182 $this->defVals = $this->overrideVals;
00183 }
00184
00185 // Setting return URL
00186 $this->retUrl = $this->returnUrl ? $this->returnUrl : 'dummy.php';
00187
00188 // Make R_URL (request url) based on input GETvars:
00189 $this->R_URL_parts = parse_url(t3lib_div::getIndpEnv('REQUEST_URI'));
00190 $this->R_URL_getvars = t3lib_div::_GET();
00191
00192 // MAKE url for storing
00193 $this->compileStoreDat();
00194
00195 // Initialize more variables.
00196 $this->dontStoreDocumentRef=0;
00197 $this->storeTitle='';
00198
00199 // Get session data for the module:
00200 $this->docDat = $BE_USER->getModuleData('alt_doc.php','ses');
00201 $this->docHandler = $this->docDat[0];
00202
00203 // If a request for closing the document has been sent, act accordingly:
00204 if ($this->closeDoc>0) {
00205 $this->closeDocument($this->closeDoc);
00206 }
00207
00208 // If NO vars are sent to the script, try to read first document:
00209 if (is_array($this->R_URL_getvars) && count($this->R_URL_getvars)<2 && !is_array($this->editconf)) { // Added !is_array($this->editconf) because editConf must not be set either. Anyways I can't figure out when this situation here will apply...
00210 $this->setDocument($this->docDat[1]);
00211 }
00212 }
|
|
|
Outputting the accumulated content to screen.
Definition at line 500 of file alt_doc.php. 00500 {
00501
00502 echo $this->content.$this->doc->endPage();
00503 }
|
|
|
Do processing of data, submitting it to TCEmain.
Definition at line 229 of file alt_doc.php. References $TYPO3_CONF_VARS, closeDocument(), compileStoreDat(), debug(), getNewIconMode(), t3lib_BEfunc::getRecord(), and t3lib_BEfunc::getSetUpdateSignal(). 00229 {
00230 global $BE_USER,$TYPO3_CONF_VARS;
00231
00232 // GPvars specifically for processing:
00233 $this->data = t3lib_div::_GP('data');
00234 $this->mirror = t3lib_div::_GP('mirror');
00235 $this->cacheCmd = t3lib_div::_GP('cacheCmd');
00236 $this->redirect = t3lib_div::_GP('redirect');
00237 $this->disableRTE = t3lib_div::_GP('_disableRTE');
00238 $this->returnNewPageId = t3lib_div::_GP('returnNewPageId');
00239 $this->vC = t3lib_div::_GP('vC');
00240
00241 // See tce_db.php for relevate options here:
00242 // Only options related to $this->data submission are included here.
00243 $tce = t3lib_div::makeInstance('t3lib_TCEmain');
00244 $tce->stripslashes_values=0;
00245
00246 // Setting default values specific for the user:
00247 $TCAdefaultOverride = $BE_USER->getTSConfigProp('TCAdefaults');
00248 if (is_array($TCAdefaultOverride)) {
00249 $tce->setDefaultsFromUserTS($TCAdefaultOverride);
00250 }
00251
00252 // Setting internal vars:
00253 if ($BE_USER->uc['neverHideAtCopy']) { $tce->neverHideAtCopy = 1; }
00254 $tce->debug=0;
00255 $tce->disableRTE = $this->disableRTE;
00256
00257 // Loading TCEmain with data:
00258 $tce->start($this->data,array());
00259 if (is_array($this->mirror)) { $tce->setMirror($this->mirror); }
00260
00261 // If pages are being edited, we set an instruction about updating the page tree after this operation.
00262 if (isset($this->data['pages'])) {
00263 t3lib_BEfunc::getSetUpdateSignal('updatePageTree');
00264 }
00265
00266
00267 // Checking referer / executing
00268 $refInfo=parse_url(t3lib_div::getIndpEnv('HTTP_REFERER'));
00269 $httpHost = t3lib_div::getIndpEnv('TYPO3_HOST_ONLY');
00270 if ($httpHost!=$refInfo['host'] && $this->vC!=$BE_USER->veriCode() && !$TYPO3_CONF_VARS['SYS']['doNotCheckReferer']) {
00271 $tce->log('',0,0,0,1,"Referer host '%s' and server host '%s' did not match and veriCode was not valid either!",1,array($refInfo['host'],$httpHost));
00272 debug('Error: Referer host did not match with server host.');
00273 } else {
00274
00275 // Perform the saving operation with TCEmain:
00276 $tce->process_uploads($_FILES);
00277 $tce->process_datamap();
00278
00279 // If there was saved any new items, load them:
00280 if (count($tce->substNEWwithIDs_table)) {
00281
00282 // Resetting editconf:
00283 $this->editconf = array();
00284
00285 // Traverse all new records and forge the content of ->editconf so we can continue to EDIT these records!
00286 foreach($tce->substNEWwithIDs_table as $nKey => $nTable) {
00287 $this->editconf[$nTable][$tce->substNEWwithIDs[$nKey]]='edit';
00288 if ($nTable=='pages' && $this->retUrl!='dummy.php' && $this->returnNewPageId) {
00289 $this->retUrl.='&id='.$tce->substNEWwithIDs[$nKey];
00290 }
00291 }
00292
00293 // Finally, set the editconf array in the "getvars" so they will be passed along in URLs as needed.
00294 $this->R_URL_getvars['edit']=$this->editconf;
00295
00296 // Unsetting default values since we don't need them anymore.
00297 unset($this->R_URL_getvars['defVals']);
00298
00299 // Re-compile the store* values since editconf changed...
00300 $this->compileStoreDat();
00301 }
00302
00303 // If a document is saved and a new one is created right after.
00304 if (isset($_POST['_savedoknew_x']) && is_array($this->editconf)) {
00305
00306 // Finding the current table:
00307 reset($this->editconf);
00308 $nTable=key($this->editconf);
00309
00310 // Finding the first id, getting the records pid+uid
00311 reset($this->editconf[$nTable]);
00312 $nUid=key($this->editconf[$nTable]);
00313 $nRec = t3lib_BEfunc::getRecord($nTable,$nUid,'pid,uid');
00314
00315 // Setting a blank editconf array for a new record:
00316 $this->editconf=array();
00317 if ($this->getNewIconMode($nTable)=='top') {
00318 $this->editconf[$nTable][$nRec['pid']]='new';
00319 } else {
00320 $this->editconf[$nTable][-$nRec['uid']]='new';
00321 }
00322
00323 // Finally, set the editconf array in the "getvars" so they will be passed along in URLs as needed.
00324 $this->R_URL_getvars['edit']=$this->editconf;
00325
00326 // Re-compile the store* values since editconf changed...
00327 $this->compileStoreDat();
00328 }
00329
00330 $tce->printLogErrorMessages(
00331 isset($_POST['_saveandclosedok_x']) ?
00332 $this->retUrl :
00333 $this->R_URL_parts['path'].'?'.t3lib_div::implodeArrayForUrl('',$this->R_URL_getvars) // popView will not be invoked here, because the information from the submit button for save/view will be lost .... But does it matter if there is an error anyways?
00334 );
00335 }
00336 if (isset($_POST['_saveandclosedok_x']) || $this->closeDoc<0) { // || count($tce->substNEWwithIDs)... If any new items has been save, the document is CLOSED because if not, we just get that element re-listed as new. And we don't want that!
00337 $this->closeDocument(abs($this->closeDoc));
00338 }
00339 }
|
|
||||||||||||
|
Redirects to the document pointed to by $currentDocFromHandlerMD5 OR $retUrl (depending on some internal calculations). Most likely you will get a header-location redirect from this function.
Definition at line 1106 of file alt_doc.php. References t3lib_extMgm::isLoaded(). Referenced by preInit(). 01106 {
01107 if (!t3lib_extMgm::isLoaded('cms') && !strcmp($retUrl,'alt_doc_nodoc.php')) return;
01108
01109 if (!$this->modTSconfig['properties']['disableDocSelector'] && is_array($this->docHandler) && count($this->docHandler)) {
01110 if (isset($this->docHandler[$currentDocFromHandlerMD5])) {
01111 $setupArr=$this->docHandler[$currentDocFromHandlerMD5];
01112 } else {
01113 reset($this->docHandler);
01114 $setupArr=current($this->docHandler);
01115 }
01116 if ($setupArr[2]) {
01117 $sParts = parse_url(t3lib_div::getIndpEnv('REQUEST_URI'));
01118 $retUrl = $sParts['path'].'?'.$setupArr[2].'&returnUrl='.rawurlencode($retUrl);
01119 }
01120 }
01121 Header('Location: '.t3lib_div::locationHeaderUrl($retUrl));
01122 exit;
01123 }
|
|
|
Create shortcut and open-in-window link in the bottom of the page.
Definition at line 952 of file alt_doc.php. References $content. 00952 {
00953 global $BE_USER,$LANG;
00954
00955 // ShortCut
00956 if ($this->returnUrl!='close.html') {
00957 $content.='<br /><br />';
00958
00959 // Shortcut:
00960 if ($BE_USER->mayMakeShortcut()) {
00961 $content.=$this->doc->makeShortcutIcon('returnUrl,edit,defVals,overrideVals,columnsOnly,returnNewPageId,editRegularContentFromId,disHelp,noView',implode(',',array_keys($this->MOD_MENU)),$this->MCONF['name'],1);
00962 }
00963
00964 // Open in new window:
00965 $aOnClick = 'vHWin=window.open(\''.t3lib_div::linkThisScript(array('returnUrl'=>'close.html')).'\',\''.md5($this->R_URI).'\',\''.($BE_USER->uc['edit_wideDocument']?'width=670,height=500':'width=600,height=400').',status=0,menubar=0,scrollbars=1,resizable=1\');vHWin.focus();return false;';
00966 $content.='<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.
00967 '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/open_in_new_window.gif','width="19" height="14"').' title="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.openInNewWindow',1).'" alt="" />'.
00968 '</a>';
00969 }
00970 return '
00971
00972 <!--
00973 Shortcut link:
00974 -->
00975 '.$content;
00976 }
|
|
|
Reads comment messages from TCEforms and prints them in a HTML comment in the buttom of the page.
Definition at line 983 of file alt_doc.php. 00983 {
00984 if (count($this->tceforms->commentMessages)) {
00985 $this->content.='
00986
00987 <!-- TCEFORM messages
00988 '.htmlspecialchars(implode(chr(10),$this->tceforms->commentMessages)).'
00989 -->
00990
00991 ';
00992 }
00993 }
|
|
|
Definition at line 107 of file alt_doc.php. |
|
|
Definition at line 102 of file alt_doc.php. |
|
|
Definition at line 98 of file alt_doc.php. |
|
|
Definition at line 125 of file alt_doc.php. |
|
|
Definition at line 105 of file alt_doc.php. |
|
|
Definition at line 99 of file alt_doc.php. |
|
|
Definition at line 109 of file alt_doc.php. |
|
|
Definition at line 118 of file alt_doc.php. |
|
|
Definition at line 124 of file alt_doc.php. |
|
|
Definition at line 137 of file alt_doc.php. |
|
|
Definition at line 138 of file alt_doc.php. |
|
|
Definition at line 154 of file alt_doc.php. |
|
|
Definition at line 103 of file alt_doc.php. |
|
|
Definition at line 97 of file alt_doc.php. |
|
|
Definition at line 116 of file alt_doc.php. |
|
|
Definition at line 142 of file alt_doc.php. |
|
|
Definition at line 144 of file alt_doc.php. |
|
|
Definition at line 143 of file alt_doc.php. |
|
|
Definition at line 150 of file alt_doc.php. |
|
|
Definition at line 106 of file alt_doc.php. |
|
|
Definition at line 148 of file alt_doc.php. |
|
|
Definition at line 145 of file alt_doc.php. |
|
|
Definition at line 119 of file alt_doc.php. |
|
|
Definition at line 100 of file alt_doc.php. |
|
|
Definition at line 113 of file alt_doc.php. |
|
|
Definition at line 114 of file alt_doc.php. |
|
|
Definition at line 130 of file alt_doc.php. |
|
|
Definition at line 129 of file alt_doc.php. |
|
|
Definition at line 128 of file alt_doc.php. |
|
|
Definition at line 117 of file alt_doc.php. |
|
|
Definition at line 108 of file alt_doc.php. |
|
|
Definition at line 127 of file alt_doc.php. |
|
|
Definition at line 120 of file alt_doc.php. |
|
|
Definition at line 110 of file alt_doc.php. |
|
|
Definition at line 101 of file alt_doc.php. |
|
|
Definition at line 133 of file alt_doc.php. |
|
|
Definition at line 132 of file alt_doc.php. |
|
|
Definition at line 134 of file alt_doc.php. |
|
|
Definition at line 135 of file alt_doc.php. |
|
|
Definition at line 149 of file alt_doc.php. |
|
|
Definition at line 111 of file alt_doc.php. |
|
|
Definition at line 146 of file alt_doc.php. |
|
|
Definition at line 147 of file alt_doc.php. |
|
|
Definition at line 115 of file alt_doc.php. |
1.3.8-20040913