Öffentliche Methoden | |
| Value () | |
| path_to_page ($pageid) | |
| path_to_object ($pageid) | |
| load () | |
| loadWithId ($valueid=0) | |
| getVersionList () | |
| getCountVersions () | |
| getLastChangeTime () | |
| release () | |
| save () | |
| delete () | |
| generate () | |
| getObjectIdsByValue ($text) | |
| getObjectIdsByLastChangeUserId ($userid) | |
| getLastChangedObjectByUserId ($userid) | |
| tmpfile () | |
Öffentliche Attribute | |
| $valueid = 0 | |
| $page | |
| $pageid | |
| $isLink = false | |
| $linkToObjectId = 0 | |
| $text = '' | |
| $number = 0 | |
| $date = 0 | |
| $element | |
| $elementid | |
| $value | |
| $lastchangeTimeStamp | |
| $lastchangeUserId | |
| $lastchangeUserName | |
| $active | |
| $publish | |
Definiert in Zeile 32 der Datei Value.class.php.
| Value::delete | ( | ) |
Diesen Inhalt loeschen
Definiert in Zeile 427 der Datei Value.class.php.
Benutzt $db und db_connection().
00428 { 00429 $db = db_connection(); 00430 $sql = new Sql( 'DELETE * FROM {t_value}'. 00431 ' WHERE elementid ={elementid}'. 00432 ' AND pageid ={pageid}'. 00433 ' AND languageid={languageid}' ); 00434 $sql->setInt( 'elementid' ,$this->element->elementid ); 00435 $sql->setInt( 'pageid' ,$this->pageid ); 00436 $sql->setInt( 'languageid',$this->languageid); 00437 $row = $db->getRow( $sql->query ); 00438 }
| Value::generate | ( | ) |
Hier findet die eigentliche Bereitstellung des Inhaltes statt, zu jedem Elementtyp wird ein Inhalt ermittelt.
Definiert in Zeile 447 der Datei Value.class.php.
Benutzt $conf, $date, $db, $element, $number, $SESS, Object::available(), Text::bbCode2Wiki(), Logger::debug(), Text::encodeHtml(), Text::encodeHtmlSpecialChars(), Logger::error(), Session::getDatabase(), Http::getServer(), load(), tmpfile(), Html::url(), Value() und Logger::warn().
00448 { 00449 global $conf; 00450 00451 if ( intval($this->valueid)==0 ) 00452 $this->load(); 00453 00454 $inhalt = ''; 00455 00456 global $conf; 00457 00458 if ( $conf['cache']['enable_cache'] && is_file( $this->tmpfile() )) 00459 { 00460 $this->value = implode('',file($this->tmpfile() )); // from cache. 00461 return; 00462 } 00463 00464 // Inhalt ist mit anderer Seite verkn�pft. 00465 if ( in_array($this->element->type,array('text','longtext','date','number')) && intval($this->linkToObjectId) != 0 && !$this->isLink ) 00466 { 00467 $p = new Page( $this->linkToObjectId ); 00468 $p->load(); 00469 00470 $v = new Value(); 00471 $v->isLink = true; 00472 $v->pageid = $p->pageid; 00473 $v->page = $p; 00474 $v->simple = $this->simple; 00475 $v->element = $this->element; 00476 $v->languageid = $this->languageid; 00477 $v->modelid = $this->modelid; 00478 $v->load(); 00479 $v->generate(); 00480 $this->value = $v->value; 00481 return; 00482 } 00483 00484 switch( $this->element->type ) 00485 { 00486 case 'list' : // nur wg. R�ckw�rtskompabilit�t. 00487 case 'insert': 00488 00489 $objectid = $this->linkToObjectId; 00490 00491 if ( intval($objectid) == 0 ) 00492 $objectid = $this->element->defaultObjectId; 00493 00494 if ( ! Object::available( $objectid) ) 00495 return; 00496 00497 $object = new Object( $objectid ); 00498 $object->objectLoadRaw(); 00499 00500 if ( $object->isFolder ) 00501 { 00502 if ( $this->simple ) 00503 { 00504 $f = new Folder( $objectid ); 00505 $f->load(); 00506 $inhalt = $f->name; 00507 unset( $f ); 00508 } 00509 else 00510 { 00511 if ( $objectid != $this->page->objectid ) // Rekursion vermeiden 00512 { 00513 $f = new Folder( $objectid ); 00514 foreach( $f->getObjectIds() as $oid ) 00515 { 00516 if ( $oid != $this->page->objectid ) // Rekursion vermeiden 00517 { 00518 switch( $this->element->subtype ) 00519 { 00520 case '': 00521 case 'inline': 00522 $o = new Object( $oid ); 00523 $o->load(); 00524 switch( $o->getType() ) 00525 { 00526 case OR_TYPE_PAGE: 00527 $p = new Page( $oid ); 00528 $p->public = $this->page->public; 00529 $p->up_path = $this->page->up_path(); 00530 $p->modelid = $this->page->modelid; 00531 $p->languageid = $this->languageid; 00532 $p->mime_type = $this->page->mimeType(); 00533 $p->load(); 00534 $p->generate(); 00535 $inhalt .= $p->value; 00536 unset( $p ); 00537 break; 00538 case OR_TYPE_LINK: 00539 $l = new Link( $oid ); 00540 $l->load(); 00541 if ( $l->isLinkToObject ) 00542 { 00543 $op = new Object( $l->linkedObjectId ); 00544 $op->load(); 00545 if ( $op->isPage ) 00546 { 00547 $p = new Page( $l->linkedObjectId ); 00548 $p->public = $this->page->public; 00549 $p->up_path = $this->page->up_path(); 00550 $p->modelid = $this->page->modelid; 00551 $p->languageid = $this->languageid; 00552 $p->load(); 00553 $p->generate(); 00554 $inhalt .= $p->value; 00555 unset( $p ); 00556 } 00557 } 00558 break; 00559 } 00560 break; 00561 00562 case 'ssi': 00563 $inhalt .= '<!--#include virtual="'.$this->page->path_to_object($oid).'" -->'; 00564 break; 00565 00566 default: 00567 $inhalt = '?'.$this->element->subtype.'?'; 00568 } 00569 } 00570 else die('FATAL: recursion detected'); 00571 } 00572 } 00573 else die('FATAL: recursion detected'); 00574 } 00575 } 00576 elseif ( $object->isPage ) 00577 { 00578 if ( $this->simple ) 00579 { 00580 $p = new Page( $objectid ); 00581 $p->load(); 00582 $inhalt = $p->name; 00583 unset( $p ); 00584 } 00585 else 00586 { 00587 if ( $objectid != $this->page->objectid ) // Rekursion vermeiden 00588 { 00589 switch( $this->element->subtype ) 00590 { 00591 case '': 00592 case 'inline': 00593 $p = new Page( $objectid ); 00594 $p->public = $this->page->public; 00595 $p->up_path = $this->page->up_path(); 00596 $p->modelid = $this->page->modelid; 00597 $p->languageid = $this->languageid; 00598 $p->mime_type = $this->page->mimeType(); 00599 $p->load(); 00600 $p->generate(); 00601 $inhalt = $p->value; 00602 unset( $p ); 00603 break; 00604 00605 case 'ssi': 00606 $inhalt = '<!--#include virtual="'.$this->page->path_to_object($objectid).'" -->'; 00607 break; 00608 00609 default: 00610 $inhalt = '?'.$this->element->subtype.'?'; 00611 break; 00612 } 00613 } 00614 else die('FATAL: recursion detected'); 00615 } 00616 } 00617 00618 if ( $this->simple ) 00619 { 00620 $inhalt = strip_tags( $inhalt ); 00621 $inhalt = str_replace( "\n",'',$inhalt ); 00622 $inhalt = str_replace( "\r",'',$inhalt ); 00623 } 00624 00625 break; 00626 00627 00628 case 'link': 00629 00630 $objectid = $this->linkToObjectId; 00631 00632 if ( intval($objectid) == 0 ) 00633 $objectid = $this->element->defaultObjectId; 00634 00635 if ( $objectid==0 ) 00636 { 00637 // Link noch nicht gefuellt 00638 $inhalt = ''; 00639 } 00640 elseif ( ! Object::available($objectid) ) 00641 { 00642 $inhalt = $this->simple?'-':''; 00643 } 00644 elseif ( $this->simple ) 00645 { 00646 $o = new Object( $objectid ); 00647 $o->load(); 00648 $inhalt = $o->name; 00649 } 00650 else 00651 { 00652 $inhalt = $this->page->path_to_object( $objectid ); 00653 } 00654 00655 break; 00656 00657 00658 case 'copy': 00659 00660 list($linkElementName,$targetElementName) = explode('%',$this->element->name.'%'); 00661 00662 if ( empty($targetElementName) ) 00663 break; 00664 00665 $element = new Element(); 00666 $element->name = $linkElementName; 00667 $element->load(); 00668 00669 if ( intval($element->elementid)==0 ) 00670 break; 00671 00672 $linkValue = new Value(); 00673 $linkValue->elementid = $element->elementid; 00674 $linkValue->element = $element; 00675 $linkValue->pageid = $this->pageid; 00676 $linkValue->page = $this->page; 00677 $linkValue->simple = $this->simple; 00678 $linkValue->languageid = $this->languageid; 00679 $linkValue->load(); 00680 00681 if ( !Object::available( $linkValue->linkToObjectId ) ) 00682 break; 00683 00684 $linkedPage = new Page( $linkValue->linkToObjectId ); 00685 $linkedPage->load(); 00686 00687 $linkedPageTemplate = new Template( $linkedPage->templateid ); 00688 $targetElementId = array_search( $targetElementName, $linkedPageTemplate->getElementNames() ); 00689 00690 if ( intval($targetElementId)==0 ) 00691 break; 00692 00693 $targetValue = new Value(); 00694 $targetValue->elementid = $targetElementId; 00695 $targetValue->element = new Element($targetElementId); 00696 $targetValue->element->load(); 00697 $targetValue->pageid = $linkedPage->pageid; 00698 $targetValue->page = $linkedPage; 00699 $targetValue->simple = $this->simple; 00700 $targetValue->generate(); 00701 00702 $inhalt = $targetValue->value; 00703 00704 break; 00705 00706 00707 case 'linkinfo': 00708 00709 @list( $linkElementName, $name ) = explode('%',$this->element->name); 00710 if ( is_null($name) ) 00711 break; 00712 00713 $element = new Element(); 00714 $element->name = $linkElementName; 00715 $element->load(); 00716 00717 $linkValue = new Value(); 00718 $linkValue->elementid = $element->elementid; 00719 $linkValue->element = $element; 00720 $linkValue->pageid = $this->pageid; 00721 $linkValue->languageid = $this->languageid; 00722 $linkValue->load(); 00723 00724 if ( !Object::available( $linkValue->linkToObjectId ) ) 00725 break; 00726 00727 $linkedObject = new Object( $linkValue->linkToObjectId ); 00728 $linkedObject->load(); 00729 00730 switch( $this->element->subtype ) 00731 { 00732 case 'width': 00733 $f = new File( $linkValue->linkToObjectId ); 00734 $f->load(); 00735 if ( $f->isImage() ) 00736 { 00737 $f->getImageSize(); 00738 $inhalt = $f->width; 00739 } 00740 unset($f); 00741 break; 00742 00743 case 'height': 00744 $f = new File( $linkValue->linkToObjectId ); 00745 $f->load(); 00746 if ( $f->isImage() ) 00747 { 00748 $f->getImageSize(); 00749 $inhalt = $f->height; 00750 } 00751 unset($f); 00752 break; 00753 00754 default: 00755 $inhalt = ''; 00756 Logger::error('subtype for linkinfo not implemented:'.$this->element->subtype); 00757 } 00758 00759 break; 00760 00761 00762 case 'longtext': 00763 case 'text': 00764 case 'select': 00765 00766 $inhalt = $this->text; 00767 00768 // Wenn Inhalt leer, dann Vorbelegung verwenden 00769 if ( $inhalt == '' ) 00770 $inhalt = $this->element->defaultText; 00771 00772 // Wenn HTML nicht erlaubt und Wiki-Formatierung aktiv, dann einfache HTML-Tags in Wiki umwandeln 00773 if ( !$this->element->html && $this->element->wiki && $conf['editor']['wiki']['convert_html'] && $this->page->mimeType()=='text/html' ) 00774 $inhalt = Text::html2Wiki( $inhalt ); 00775 00776 // Wenn Wiki-Formatierung aktiv, dann BB-Code umwandeln 00777 if ( $this->element->wiki && $conf['editor']['wiki']['convert_bbcode'] ) 00778 $inhalt = Text::bbCode2Wiki( $inhalt ); 00779 00780 // Wenn HTML nicht erlaubt ist, dann die HTML-Tags ersetzen 00781 if ( !$this->element->html && !$this->element->wiki && $this->page->mimeType()=='text/html') 00782 $inhalt = Text::encodeHtml( $inhalt ); 00783 00784 // Wenn HTML nicht erlaubt ist, dann Sonderzeichen in HTML �bersetzen 00785 if ( !$this->element->wiki && !$this->element->wiki && $this->page->mimeType()=='text/html' ) 00786 $inhalt = Text::encodeHtmlSpecialChars( $inhalt ); 00787 00788 // Schnellformatierung ('Wiki') durchfuehren 00789 if ( $this->element->wiki ) 00790 { 00791 $transformer = new Transformer(); 00792 $transformer->text = $inhalt; 00793 $transformer->page = $this->page; 00794 $transformer->element = $this->element; 00795 00796 $transformer->transform(); 00797 $inhalt = $transformer->text; 00798 } 00799 00800 if ( $this->simple ) 00801 { 00802 $inhalt = strip_tags( $inhalt ); 00803 $inhalt = str_replace( "\n",'',$inhalt ); 00804 $inhalt = str_replace( "\r",'',$inhalt ); 00805 } 00806 00807 break; 00808 00809 00810 // Zahl 00811 // 00812 // wird im entsprechenden Format angezeigt. 00813 case 'number': 00814 00815 if ( $this->number == 0 ) 00816 { 00817 // Zahl ist gleich 0, dann Default-Text 00818 $inhalt = $this->element->defaultText; 00819 break; 00820 } 00821 00822 $number = $this->number / pow(10,$this->element->decimals); 00823 $inhalt = number_format( $number,$this->element->decimals,$this->element->decPoint,$this->element->thousandSep ); 00824 00825 break; 00826 00827 00828 // Datum 00829 case 'date': 00830 00831 $date = $this->date; 00832 00833 if ( intval($date) == 0 ) 00834 { 00835 // Datum wurde noch nicht eingegeben 00836 $inhalt = $this->element->defaultText; 00837 break; 00838 } 00839 00840 // Datum gemaess Elementeinstellung formatieren 00841 $inhalt = date( $this->element->dateformat,$date ); 00842 00843 break; 00844 00845 00846 // Programmcode (PHP) 00847 case 'code': 00848 00849 if ( $this->page->simple ) 00850 break; 00851 00852 $this->page->load(); 00853 00854 $code = new Code(); 00855 $code->page = &$this->page; 00856 $code->setObjectId( $this->page->objectid ); 00857 $code->delOutput(); 00858 $code->code = $this->element->code; 00859 00860 // Jetzt ausfuehren des temporaeren PHP-Codes 00861 $code->execute(); 00862 00863 $inhalt = $code->getOutput(); 00864 00865 break; 00866 00867 00868 // Programmcode (PHP) 00869 case 'dynamic': 00870 00871 if ( $this->page->simple ) 00872 break; 00873 00874 $this->page->load(); 00875 $className = $this->element->subtype; 00876 $fileName = './dynamicClasses/'.$className.'.class.php'; 00877 if ( is_file( $fileName ) ) 00878 { 00879 // Fuer den Fall, dass eine Dynamic-Klasse mehrmals pro Vorlage auftritt 00880 if ( !class_exists($className) ) 00881 require( $fileName ); 00882 00883 if ( class_exists($className) ) 00884 { 00885 $dynEl = new $className; 00886 $dynEl->page = &$this->page; 00887 00888 if ( method_exists( $dynEl,'execute' ) ) 00889 { 00890 //$dynEl->delOutput(); 00891 $dynEl->objectid = $this->page->objectid; 00892 $dynEl->page = &$this->page; 00893 00894 foreach( $this->element->getDynamicParameters() as $param_name=>$param_value ) 00895 { 00896 if ( isset( $dynEl->$param_name ) ) 00897 { 00898 Logger::debug("Setting parameter for dynamic Class $className, ".$param_name.':'.$param_value ); 00899 $dynEl->$param_name = $param_value; 00900 } 00901 } 00902 00903 $dynEl->execute(); 00904 $inhalt = $dynEl->getOutput(); 00905 } 00906 else 00907 { 00908 Logger::warn('element:'.$this->element->name.', '. 00909 'class:'.$className.', no method: execute()'); 00910 } 00911 } 00912 else 00913 { 00914 Logger::warn('element:'.$this->element->name.', '. 00915 'class not found:'.$className); 00916 } 00917 } 00918 else 00919 { 00920 Logger::warn('element:'.$this->element->name.', '. 00921 'file not found:'.$fileName); 00922 } 00923 00924 // Wenn HTML-Ausgabe, dann Sonderzeichen in HTML �bersetzen 00925 if ( $this->page->mimeType()=='text/html' ) 00926 $inhalt = Text::encodeHtmlSpecialChars( $inhalt ); 00927 00928 break; 00929 00930 00931 // Info-Feld als Datum 00932 case 'infodate': 00933 00934 if ( $this->page->simple ) 00935 break; 00936 00937 switch( $this->element->subtype ) 00938 { 00939 case 'date_published': 00940 // START_TIME wird zu Beginn im Controller gesetzt. 00941 // So erh�lt jede Datei das gleiche Ver�ffentlichungsdatum. 00942 $inhalt = date( $this->element->dateformat,START_TIME ); 00943 break; 00944 00945 case 'date_saved': 00946 $inhalt = date( $this->element->dateformat,$this->page->lastchangeDate ); 00947 break; 00948 00949 case 'date_created': 00950 $inhalt = date( $this->element->dateformat,$this->page->createDate ); 00951 break; 00952 00953 default: 00954 Logger::warn('element:'.$this->element->name.', '. 00955 'type:'.$this->element->type.', '. 00956 'unknown subtype:'.$this->element->subtype); 00957 } 00958 00959 break; 00960 00961 00962 // Info-Feld 00963 case 'info': 00964 00965 if ( $this->page->simple ) 00966 break; 00967 00968 $raw = false; 00969 switch( $this->element->subtype ) 00970 { 00971 case 'db_id': 00972 $inhalt = $SESS['dbid']; 00973 break; 00974 case 'db_name': 00975 $inhalt = $conf['database_'.$SESS['dbid']]['comment']; 00976 break; 00977 case 'project_id': 00978 $inhalt = $this->page->projectid; 00979 break; 00980 case 'project_name': 00981 $project = new Project( $this->page->projectid ); 00982 $project->load(); 00983 $inhalt = $project->name; 00984 break; 00985 case 'language_id': 00986 $inhalt = $this->page->languageid; 00987 break; 00988 case 'language_iso': 00989 $language = new Language( $this->page->languageid ); 00990 $language->load(); 00991 $inhalt = $language->isoCode; 00992 break; 00993 case 'language_name': 00994 $language = new Language( $this->page->languageid ); 00995 $language->load(); 00996 $inhalt = $language->name; 00997 break; 00998 case 'page_id': 00999 $inhalt = $this->page->objectid; 01000 break; 01001 case 'page_name': 01002 $inhalt = $this->page->name; 01003 break; 01004 case 'page_desc': 01005 $inhalt = $this->page->desc; 01006 break; 01007 case 'page_fullfilename': 01008 $inhalt = $this->page->full_filename(); 01009 break; 01010 case 'page_filename': 01011 $inhalt = $this->page->filename; 01012 break; 01013 case 'page_extension': 01014 $inhalt = ''; 01015 break; 01016 case 'edit_url': 01017 $raw = true; 01018 $db = Session::getDatabase(); 01019 $inhalt = Html::url('index','object',$this->page->objectid,array('dbid'=>$db->id)); 01020 break; 01021 case 'edit_fullurl': 01022 $raw = true; 01023 $inhalt = Http::getServer(); 01024 $db = Session::getDatabase(); 01025 $params = array('dbid' =>$db->id, 01026 'objectid' =>$this->page->objectid, 01027 'modelid' =>$this->page->modelid, 01028 'languageid'=>$this->page->languageid, 01029 'elementid' =>$this->element->elementid ); 01030 $inhalt .= '/'.basename(Html::url('index','object',$this->page->objectid,$params)); 01031 break; 01032 case 'lastch_user_username': 01033 $user = $this->page->lastchangeUser; 01034 $user->load(); 01035 $inhalt = $user->name; 01036 break; 01037 case 'lastch_user_fullname': 01038 $user = $this->page->lastchangeUser; 01039 $user->load(); 01040 $inhalt = $user->fullname; 01041 break; 01042 case 'lastch_user_mail': 01043 $user = $this->page->lastchangeUser; 01044 $user->load(); 01045 $inhalt = $user->mail; 01046 break; 01047 case 'lastch_user_desc': 01048 $user = $this->page->lastchangeUser; 01049 $user->load(); 01050 $inhalt = $user->desc; 01051 break; 01052 case 'lastch_user_tel': 01053 $user = $this->page->lastchangeUser; 01054 $user->load(); 01055 $inhalt = $user->tel; 01056 break; 01057 01058 case 'create_user_username': 01059 $user = $this->page->createUser; 01060 $user->load(); 01061 $inhalt = $user->name; 01062 break; 01063 case 'create_user_fullname': 01064 $user = $this->page->createUser; 01065 $user->load(); 01066 $inhalt = $user->fullname; 01067 break; 01068 case 'create_user_mail': 01069 $user = $this->page->createUser; 01070 $user->load(); 01071 $inhalt = $user->mail; 01072 break; 01073 case 'create_user_desc': 01074 $user = $this->page->createUser; 01075 $user->load(); 01076 $inhalt = $user->desc; 01077 break; 01078 case 'create_user_tel': 01079 $user = $this->page->createUser; 01080 $user->load(); 01081 $inhalt = $user->tel; 01082 break; 01083 01084 case 'act_user_username': 01085 $user = new User($SESS['user']['id']); 01086 $user->load(); 01087 $inhalt = $user->name; 01088 break; 01089 case 'act_user_fullname': 01090 $user = new User($SESS['user']['id']); 01091 $user->load(); 01092 $inhalt = $user->fullname; 01093 break; 01094 case 'act_user_mail': 01095 $user = new User($SESS['user']['id']); 01096 $user->load(); 01097 $inhalt = $user->mail; 01098 break; 01099 case 'act_user_desc': 01100 $user = new User($SESS['user']['id']); 01101 $user->load(); 01102 $inhalt = $user->desc; 01103 break; 01104 case 'act_user_tel': 01105 $user = new User($SESS['user']['id']); 01106 $user->load(); 01107 $inhalt = $user->tel; 01108 break; 01109 default: 01110 Logger::warn('element:'.$this->element->name.', '. 01111 'type:'.$this->element->type.', '. 01112 'unknown subtype:'.$this->element->subtype); 01113 // Keine Fehlermeldung in erzeugte Seite schreiben. 01114 } 01115 01116 if ( !$raw && $this->page->mimeType()=='text/html' ) 01117 $inhalt = Text::encodeHtml( $inhalt ); 01118 01119 // Wenn HTML-Ausgabe, dann Sonderzeichen in HTML �bersetzen 01120 if ( $this->page->mimeType()=='text/html' ) 01121 $inhalt = Text::encodeHtmlSpecialChars( $inhalt ); 01122 01123 break; 01124 01125 default: 01126 // Unbekannte Elementtypen darf es nicht geben, daher ERROR loggen. 01127 Logger::error('element:'.$this->element->name.', '. 01128 'unknown type:'.$this->element->type); 01129 01130 } 01131 01132 01133 if ( $this->page->icons && $this->element->withIcon ) 01134 $inhalt = '<a href="'.Html::url('pageelement','edit',$this->page->objectid,array('elementid'=>$this->element->elementid)).'" title="'.$this->element->desc.'" target="cms_main_main"><img src="'.OR_THEMES_DIR.$conf['interface']['theme'].'/images/icon_el_'.$this->element->type.IMG_ICON_EXT.'" border="0" align="left"></a>'.$inhalt; 01135 01136 $this->value = $inhalt; 01137 01138 01139 // Store in cache. 01140 $f = fopen( $this->tmpfile(),'w' ); 01141 fwrite( $f,$this->value ); 01142 fclose( $f ); 01143 }
| Value::getCountVersions | ( | ) |
Die Anzahl der Versionen des aktuellen Inhaltes wird ermittelt
Definiert in Zeile 280 der Datei Value.class.php.
Benutzt $db und db_connection().
00281 { 00282 $db = db_connection(); 00283 00284 $sql = new Sql( 'SELECT COUNT(*) FROM {t_value}'. 00285 ' WHERE elementid ={elementid}'. 00286 ' AND pageid ={pageid}'. 00287 ' AND languageid={languageid}' ); 00288 $sql->setInt( 'elementid' ,$this->element->elementid ); 00289 $sql->setInt( 'pageid' ,$this->pageid ); 00290 $sql->setInt( 'languageid',$this->languageid); 00291 00292 return $db->getOne( $sql->query ); 00293 }
| Value::getLastChangedObjectByUserId | ( | $ | userid | ) |
Es wird das Objekt ermittelt, welches der Benutzer zuletzt ge�ndert hat.
Definiert in Zeile 1201 der Datei Value.class.php.
Benutzt $db und db_connection().
Wird benutzt von IndexAction::login().
01202 { 01203 $db = db_connection(); 01204 01205 $sql = new Sql( <<<SQL 01206 SELECT {t_object}.id 01207 FROM {t_value} 01208 LEFT JOIN {t_page} 01209 ON {t_page}.id={t_value}.pageid 01210 LEFT JOIN {t_object} 01211 ON {t_object}.id={t_page}.objectid 01212 WHERE {t_value}.lastchange_userid={userid} 01213 ORDER BY {t_value}.lastchange_date DESC 01214 SQL 01215 ); 01216 $sql->setInt ( 'userid' ,$userid ); 01217 return $db->getOne( $sql->query ); 01218 }
| Value::getLastChangeTime | ( | ) |
Definiert in Zeile 296 der Datei Value.class.php.
Benutzt $db und db_connection().
00297 { 00298 $db = db_connection(); 00299 00300 $sql = new Sql( 00301 <<<SQL 00302 SELECT lastchange_date FROM {t_value} 00303 WHERE elementid ={elementid} 00304 AND pageid ={pageid} 00305 AND languageid={languageid} 00306 ORDER BY id DESC 00307 SQL 00308 ); 00309 $sql->setInt( 'elementid' ,$this->element->elementid ); 00310 $sql->setInt( 'pageid' ,$this->pageid ); 00311 $sql->setInt( 'languageid',$this->languageid); 00312 00313 return $db->getOne( $sql->query ); 00314 }
| Value::getObjectIdsByLastChangeUserId | ( | $ | userid | ) |
Es werden Objekte mit einer UserId ermittelt
| Integer | Benutzer-Id der letzten ?nderung |
Definiert in Zeile 1175 der Datei Value.class.php.
Benutzt $db und db_connection().
01176 { 01177 01178 $db = db_connection(); 01179 01180 $sql = new Sql( 'SELECT {t_object}.id FROM {t_value} '. 01181 ' LEFT JOIN {t_page} '. 01182 ' ON {t_page}.id={t_value}.pageid '. 01183 ' LEFT JOIN {t_object} '. 01184 ' ON {t_object}.id={t_page}.objectid '. 01185 ' WHERE {t_value}.lastchange_userid={userid}'. 01186 ' AND {t_value}.languageid={languageid}'. 01187 ' ORDER BY {t_object}.lastchange_date DESC' ); 01188 $sql->setInt ( 'languageid',$this->languageid ); 01189 $sql->setInt ( 'userid' ,$userid ); 01190 01191 return $db->getCol( $sql->query ); 01192 }
| Value::getObjectIdsByValue | ( | $ | text | ) |
Es werden Objekte mit einem Inhalt gesucht.
| String | Suchbegriff |
Definiert in Zeile 1151 der Datei Value.class.php.
Benutzt $db, $text und db_connection().
01152 { 01153 $db = db_connection(); 01154 01155 $sql = new Sql( 'SELECT {t_object}.id FROM {t_value} '. 01156 ' LEFT JOIN {t_page} '. 01157 ' ON {t_page}.id={t_value}.pageid '. 01158 ' LEFT JOIN {t_object} '. 01159 ' ON {t_object}.id={t_page}.objectid '. 01160 ' WHERE {t_value}.text LIKE {text}'. 01161 ' AND {t_value}.languageid={languageid}'. 01162 ' ORDER BY {t_object}.lastchange_date DESC' ); 01163 01164 $sql->setInt ( 'languageid',$this->languageid ); 01165 $sql->setString( 'text' ,'%'.$text.'%' ); 01166 return $db->getCol( $sql->query ); 01167 }
| Value::getVersionList | ( | ) |
Alle Versionen des aktuellen Inhaltes werden ermittelt
Definiert in Zeile 237 der Datei Value.class.php.
Benutzt $db, db_connection() und Value().
00238 { 00239 $db = db_connection(); 00240 00241 $sql = new Sql( 'SELECT {t_value}.*,{t_user}.name as lastchange_username'. 00242 ' FROM {t_value}'. 00243 ' LEFT JOIN {t_user} ON {t_user}.id={t_value}.lastchange_userid'. 00244 ' WHERE elementid ={elementid}'. 00245 ' AND pageid ={pageid}'. 00246 ' AND languageid={languageid}'. 00247 ' ORDER BY lastchange_date' ); 00248 $sql->setInt( 'elementid' ,$this->element->elementid ); 00249 $sql->setInt( 'pageid' ,$this->pageid ); 00250 $sql->setInt( 'languageid',$this->languageid); 00251 00252 $list = array(); 00253 foreach( $db->getAll( $sql->query ) as $row ) 00254 { 00255 $val = new Value(); 00256 $val->valueid = $row['id']; 00257 00258 $val->text = $row['text']; 00259 $val->valueid = intval($row['id'] ); 00260 $val->linkToObjectId = intval($row['linkobjectid']); 00261 $val->number = intval($row['number' ]); 00262 $val->date = intval($row['date' ]); 00263 00264 $val->active = ( $row['active' ]=='1' ); 00265 $val->publish = ( $row['publish']=='1' ); 00266 00267 $val->lastchangeTimeStamp = intval($row['lastchange_date' ]); 00268 $val->lastchangeUserId = intval($row['lastchange_userid' ]); 00269 $val->lastchangeUserName = $row['lastchange_username']; 00270 $list[] = $val; 00271 } 00272 return $list; 00273 }
| Value::load | ( | ) |
Laden des aktuellen Inhaltes aus der Datenbank
Definiert in Zeile 160 der Datei Value.class.php.
Benutzt $db und db_connection().
Wird benutzt von generate().
00161 { 00162 $db = db_connection(); 00163 00164 if ( $this->publish ) 00165 $sql = new Sql( 'SELECT * FROM {t_value}'. 00166 ' WHERE elementid ={elementid}'. 00167 ' AND pageid ={pageid}'. 00168 ' AND languageid={languageid}'. 00169 ' AND publish=1' ); 00170 else 00171 $sql = new Sql( 'SELECT * FROM {t_value}'. 00172 ' WHERE elementid ={elementid}'. 00173 ' AND pageid ={pageid}'. 00174 ' AND languageid={languageid}'. 00175 ' AND active=1' ); 00176 $sql->setInt( 'elementid' ,$this->element->elementid ); 00177 $sql->setInt( 'pageid' ,$this->pageid ); 00178 $sql->setInt( 'languageid',$this->languageid); 00179 $row = $db->getRow( $sql->query ); 00180 00181 if ( count($row) > 0 ) // Wenn Inhalt gefunden 00182 { 00183 $this->text = $row['text']; 00184 $this->valueid = intval($row['id'] ); 00185 $this->linkToObjectId = intval($row['linkobjectid']); 00186 $this->number = intval($row['number' ]); 00187 $this->date = intval($row['date' ]); 00188 00189 $this->active = ( $row['active' ]=='1' ); 00190 $this->publish = ( $row['publish']=='1' ); 00191 00192 $this->lastchangeTimeStamp = intval($row['lastchange_date' ]); 00193 $this->lastchangeUserId = intval($row['lastchange_userid']); 00194 } 00195 }
| Value::loadWithId | ( | $ | valueid = 0 |
) |
Laden eines bestimmten Inhaltes aus der Datenbank
Definiert in Zeile 201 der Datei Value.class.php.
Benutzt $db, $valueid und db_connection().
00202 { 00203 if ( $valueid != 0 ) 00204 $this->valueid = $valueid; 00205 00206 $db = db_connection(); 00207 00208 $sql = new Sql( 'SELECT {t_value}.*,{t_user}.name as lastchange_username'. 00209 ' FROM {t_value}'. 00210 ' LEFT JOIN {t_user} ON {t_user}.id={t_value}.lastchange_userid'. 00211 ' WHERE {t_value}.id={valueid}' ); 00212 $sql->setInt( 'valueid',$this->valueid); 00213 $row = $db->getRow( $sql->query ); 00214 00215 $this->text = $row['text' ]; 00216 $this->pageid = intval($row['pageid' ]); 00217 $this->elementid = intval($row['elementid' ]); 00218 $this->languageid = intval($row['languageid' ]); 00219 $this->valueid = intval($row['id' ]); 00220 $this->linkToObjectId = intval($row['linkobjectid']); 00221 $this->number = intval($row['number' ]); 00222 $this->date = intval($row['date' ]); 00223 00224 $this->active = ( $row['active' ]=='1' ); 00225 $this->publish = ( $row['publish']=='1' ); 00226 00227 $this->lastchangeTimeStamp = intval($row['lastchange_date' ]); 00228 $this->lastchangeUserId = intval($row['lastchange_userid' ]); 00229 $this->lastchangeUserName = $row['lastchange_username']; 00230 }
| Value::path_to_object | ( | $ | pageid | ) |
Definiert in Zeile 151 der Datei Value.class.php.
Benutzt $pageid und path_to_page().
00152 { 00153 return $this->path_to_page( $pageid ); 00154 }
| Value::path_to_page | ( | $ | pageid | ) |
Definiert in Zeile 147 der Datei Value.class.php.
Benutzt $pageid.
Wird benutzt von path_to_object().
00148 { 00149 return $this->page->path_to_object( $pageid ); 00150 }
| Value::release | ( | ) |
Inhalt freigeben
Definiert in Zeile 321 der Datei Value.class.php.
Benutzt $db und db_connection().
00322 { 00323 $db = db_connection(); 00324 00325 $sql = new Sql( 'UPDATE {t_value}'. 00326 ' SET publish=0'. 00327 ' WHERE elementid ={elementid}'. 00328 ' AND pageid ={pageid}'. 00329 ' AND languageid={languageid}' ); 00330 $sql->setInt( 'elementid' ,$this->elementid ); 00331 $sql->setInt( 'pageid' ,$this->pageid ); 00332 $sql->setInt( 'languageid',$this->languageid); 00333 00334 $db->query( $sql->query ); 00335 00336 $sql = new Sql( 'UPDATE {t_value}'. 00337 ' SET publish=1'. 00338 ' WHERE active = 1'. 00339 ' AND elementid ={elementid}'. 00340 ' AND pageid ={pageid}'. 00341 ' AND languageid={languageid}' ); 00342 $sql->setInt( 'elementid' ,$this->elementid ); 00343 $sql->setInt( 'pageid' ,$this->pageid ); 00344 $sql->setInt( 'languageid',$this->languageid); 00345 00346 $db->query( $sql->query ); 00347 }
| Value::save | ( | ) |
Inhalt speichern
Definiert in Zeile 352 der Datei Value.class.php.
Benutzt $db, $SESS, db_connection() und Session::getUser().
00353 { 00354 global $SESS; 00355 $db = db_connection(); 00356 00357 $sql = new Sql( 'UPDATE {t_value}'. 00358 ' SET active=0'. 00359 ' WHERE elementid ={elementid}'. 00360 ' AND pageid ={pageid}'. 00361 ' AND languageid={languageid}' ); 00362 $sql->setInt( 'elementid' ,$this->element->elementid ); 00363 $sql->setInt( 'pageid' ,$this->pageid ); 00364 $sql->setInt( 'languageid',$this->languageid); 00365 00366 $db->query( $sql->query ); 00367 00368 if ( $this->publish ) 00369 { 00370 // Wenn Inhalt sofort veroeffentlicht werden kann, dann 00371 // alle anderen Inhalte auf nicht-veroeffentlichen stellen 00372 $sql = new Sql( 'UPDATE {t_value}'. 00373 ' SET publish=0'. 00374 ' WHERE elementid ={elementid}'. 00375 ' AND pageid ={pageid}'. 00376 ' AND languageid={languageid}' ); 00377 $sql->setInt( 'elementid' ,$this->element->elementid ); 00378 $sql->setInt( 'pageid' ,$this->pageid ); 00379 $sql->setInt( 'languageid',$this->languageid); 00380 00381 $db->query( $sql->query ); 00382 } 00383 00384 // Naechste ID aus Datenbank besorgen 00385 $sql = new Sql('SELECT MAX(id) FROM {t_value}'); 00386 $this->valueid = intval($db->getOne($sql->query))+1; 00387 00388 $sql = new Sql( <<<SQL 00389 INSERT INTO {t_value} 00390 (id ,linkobjectid ,text ,number ,date ,elementid ,pageid ,languageid ,active,publish ,lastchange_date ,lastchange_userid ) 00391 VALUES ({valueid},{linkobjectid},{text},{number},{date},{elementid},{pageid},{languageid},1 ,{publish},{lastchange_date},{lastchange_userid}) 00392 SQL 00393 ); 00394 $sql->setInt( 'valueid' ,$this->valueid ); 00395 $sql->setInt( 'elementid' ,$this->element->elementid ); 00396 $sql->setInt( 'pageid' ,$this->pageid ); 00397 $sql->setInt( 'languageid',$this->languageid ); 00398 00399 if ( intval($this->linkToObjectId)==0) 00400 $sql->setNull ( 'linkobjectid' ); 00401 else $sql->setInt ( 'linkobjectid',$this->linkToObjectId ); 00402 00403 if ( $this->text == '' ) 00404 $sql->setNull ( 'text' ); 00405 else $sql->setString( 'text',$this->text ); 00406 00407 if ( intval($this->number)==0) 00408 $sql->setNull ( 'number' ); 00409 else $sql->setInt ( 'number',$this->number ); 00410 00411 if ( intval($this->date)==0) 00412 $sql->setNull ( 'date' ); 00413 else $sql->setInt ( 'date',$this->date ); 00414 00415 $sql->setBoolean( 'publish' ,$this->publish ); 00416 $sql->setInt ( 'lastchange_date' ,time() ); 00417 $user = Session::getUser(); 00418 $sql->setInt ( 'lastchange_userid',$user->userid ); 00419 00420 $db->query( $sql->query ); 00421 }
| Value::tmpfile | ( | ) |
Ermittelt einen tempor�ren Dateinamen f�r diesen Inhalt.
Definiert in Zeile 1224 der Datei Value.class.php.
Benutzt $db, db_connection() und Object::getTempFileName().
Wird benutzt von generate().
01225 { 01226 $db = db_connection(); 01227 $filename = Object::getTempFileName( array('db'=>$db->id, 01228 'va'=>$this->valueid, 01229 'el'=>$this->element->elementid, 01230 'la'=>$this->languageid, 01231 'm' =>$this->page->modelid, 01232 'pu'=>intval($this->publish), 01233 'si'=>intval($this->simple) ) ); 01234 return $filename; 01235 }
| Value::Value | ( | ) |
Konstruktor
Definiert in Zeile 135 der Datei Value.class.php.
Benutzt Session::getProjectLanguage().
Wird benutzt von generate() und getVersionList().
00136 { 00137 $this->lastchangeUserId = 0; 00138 $this->lastchangeTimeStamp = 0; 00139 00140 $language = Session::getProjectLanguage(); 00141 $this->languageid = $language->languageid; 00142 }
| Value::$active |
Schalter, ob dieser Inhalt der aktive Inhalt ist Boolean
Definiert in Zeile 123 der Datei Value.class.php.
| Value::$date = 0 |
Datum als Unix-Timestamp Integer
Definiert in Zeile 81 der Datei Value.class.php.
Wird benutzt von generate().
| Value::$element |
| Value::$elementid |
Element-Id Integer
Definiert in Zeile 93 der Datei Value.class.php.
| Value::$isLink = false |
Kennzeichen, ob der Inhalt mit dem Inhalt einer anderern Seite verkn�pft wird. Object
Definiert in Zeile 56 der Datei Value.class.php.
| Value::$lastchangeTimeStamp |
TimeStamp der letzten Aenderung Integer
Definiert in Zeile 105 der Datei Value.class.php.
| Value::$lastchangeUserId |
Benutzer-ID der letzten Aenderung Integer
Definiert in Zeile 111 der Datei Value.class.php.
| Value::$lastchangeUserName |
Benutzername der letzten Aenderung Integer
Definiert in Zeile 117 der Datei Value.class.php.
| Value::$linkToObjectId = 0 |
Objekt-ID, auf die verlinkt wird Integer
Definiert in Zeile 62 der Datei Value.class.php.
| Value::$number = 0 |
Zahl. Auch Flie?kommazahlen werden als Ganzzahl gespeichert Integer
Definiert in Zeile 74 der Datei Value.class.php.
Wird benutzt von generate().
| Value::$page |
Seiten-Objekt der ?bergeordneten Seite Object
Definiert in Zeile 44 der Datei Value.class.php.
| Value::$pageid |
Seiten-Id der uebergeordneten Seite Integer
Definiert in Zeile 50 der Datei Value.class.php.
Wird benutzt von path_to_object() und path_to_page().
| Value::$publish |
Schalter, ob dieser Inhalt der Inhalt ist, der veroeffentlicht werden soll Boolean
Definiert in Zeile 130 der Datei Value.class.php.
| Value::$text = '' |
Text-Inhalt String
Definiert in Zeile 68 der Datei Value.class.php.
Wird benutzt von getObjectIdsByValue().
| Value::$value |
Der eigentliche Inhalt des Elementes String
Definiert in Zeile 99 der Datei Value.class.php.
| Value::$valueid = 0 |
ID dieser Inhaltes Integer
Definiert in Zeile 38 der Datei Value.class.php.
Wird benutzt von loadWithId().
1.5.8