From f990f72eb5242534288b665d928a302fe4ba3872 Mon Sep 17 00:00:00 2001 From: Deon George Date: Tue, 30 Jun 2009 20:46:41 +1000 Subject: [PATCH] RELEASE 1.1.0.1 --- INSTALL | 4 ++-- VERSION | 2 +- htdocs/cmd.php | 3 ++- htdocs/common.php | 7 ++++++- htdocs/draw_tree_node.php | 6 ++++++ htdocs/timeout.php | 2 ++ index.php | 6 ++++++ lib/EntryWriter1.php | 16 +++++++++++++-- lib/config_default.php | 4 ++-- lib/createlm.php | 6 ++---- lib/emuhash_functions.php | 5 +---- lib/functions.php | 4 ++-- lib/page.php | 29 +++++++++++++++++++-------- locale/fi_FI/LC_MESSAGES/messages.mo | Bin 0 -> 46798 bytes locale/it_IT/LC_MESSAGES/messages.mo | Bin 47069 -> 47055 bytes locale/it_IT/LC_MESSAGES/messages.po | 2 +- tools/po/make_mo_all | 2 +- tools/po/messages.header | 2 +- 18 files changed, 70 insertions(+), 30 deletions(-) create mode 100644 locale/fi_FI/LC_MESSAGES/messages.mo diff --git a/INSTALL b/INSTALL index 0e965b7..2f150fe 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ For install instructions in non-English languages, see the wiki: - http://wiki.phpldapadmin.info + http://phpldapadmin.wiki.sourceforge.net * Requirements @@ -17,7 +17,7 @@ For install instructions in non-English languages, see the wiki: * For additional help See the wiki: - http://wiki.phpldapadmin.info + http://phpldapadmin.wiki.sourceforge.net Join our mailing list: https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel diff --git a/VERSION b/VERSION index 88205e3..96cc9d6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -$Name: RELEASE-1_1_0 $ +$Name: RELEASE-1_1_0_1 $ diff --git a/htdocs/cmd.php b/htdocs/cmd.php index 4c9a579..920aa5f 100644 --- a/htdocs/cmd.php +++ b/htdocs/cmd.php @@ -1,7 +1,8 @@ diff --git a/htdocs/draw_tree_node.php b/htdocs/draw_tree_node.php index cf3620e..7839d0a 100644 --- a/htdocs/draw_tree_node.php +++ b/htdocs/draw_tree_node.php @@ -1,4 +1,10 @@ getProperty('helper'); + + # Should only return 1 default entry. + if (isset($params['value']) && ! is_array($params['value'])) + return $params['value']; + + # If there are multiple values, return the first one. + else if (isset($params['value']) && is_array($params['value'])) + return array_shift($params['value']); + + # No default values, return a blank. + else + return ''; } protected function getAttributeRenameMenuItem($attribute) { diff --git a/lib/config_default.php b/lib/config_default.php index a492b50..def3647 100644 --- a/lib/config_default.php +++ b/lib/config_default.php @@ -1,5 +1,5 @@ default->appearance['tree'] = array( 'desc'=>'Class name which inherits from Tree class and implements the draw() method', - 'default'=>'HTMLTree'); + 'default'=>'AJAXTree'); $this->default->appearance['entry_factory'] = array( 'desc'=>'Class name which inherits from EntryFactory class', diff --git a/lib/createlm.php b/lib/createlm.php index e92eb4d..5ba6a63 100644 --- a/lib/createlm.php +++ b/lib/createlm.php @@ -1,6 +1,6 @@ - private $_head; + protected $_head; # Settings for this application - private $_app; + protected $_app; # Default values array. - private $_default; + protected $_default; public function __construct($server_id=null) { if (defined('DEBUG_ENABLED') && DEBUG_ENABLED) @@ -34,15 +35,20 @@ class page { # Capture any output so far (in case we send some headers below) - there shouldnt be any output anyway. $preOutput = ''; - if (ob_get_level()) { + + # Try and work around if php compression is on, or the user has set compression in the config. + # type = 1 for user gzip, 0 for php.ini gzip. + $obStatus = ob_get_status(); + if ($obStatus['type'] && $obStatus['status']) { $preOutput = ob_get_contents(); ob_end_clean(); } - //header('Content-type: text/html; charset="UTF-8"'); @todo: Something is sending output to the browser. + header('Content-type: text/html; charset="UTF-8"'); if (isset($_SESSION['plaConfig']) && $_SESSION['plaConfig']->GetValue('appearance','compress') - && eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) { + && eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING']) + && ! ini_get('zlib.output_compression')) { header('Content-Encoding: gzip'); @@ -50,6 +56,11 @@ class page { debug_log('Sent COMPRESSED header to browser and discarded (%s)',129,__FILE__,__LINE__,__METHOD__,$preOutput); } + if (isset($_SESSION['plaConfig']) + && $_SESSION['plaConfig']->GetValue('appearance','compress') + && ini_get('zlib.output_compression')) + $this->setsysmsg(array(array('title'=>_('Warning'),'body'=>_('WARNING: You cannot have PHP compression and phpLDAPadmin compression enabled at the same time. Please unset zlib.output_compression or set $config->custom->appearance[\'compress\']=false'),'type'=>'warn'))); + # Turn back on output buffering. ob_start(); @@ -321,6 +332,7 @@ class page { if ($compress && ob_get_level() && isset($_SESSION['plaConfig']) && $_SESSION['plaConfig']->GetValue('appearance','compress') + && ! ini_get('zlib.output_compression') && eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) { $output = ob_get_contents(); @@ -400,6 +412,7 @@ class page { # compress output if (ob_get_level() && isset($_SESSION['plaConfig']) && $_SESSION['plaConfig']->GetValue('appearance','compress') + && ! ini_get('zlib.output_compression') && eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) { $output = ob_get_contents(); diff --git a/locale/fi_FI/LC_MESSAGES/messages.mo b/locale/fi_FI/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..6a1d0083a5b35d1d8076c5bda5e901b7b499da06 GIT binary patch literal 46798 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 z zY>UqBvyz-v&8(%_VN7Mnbb3p)&;mO>`5vRvB1d^otGc2A$luLUKSfy1gNpZ4K?wcr z?|L4xC{ZyKZ6>dtkVp76)Xc2Rm7pfgSybeXS05HyIahm2R)JYXIDH+&BGu*;{M)k0@}~Fn5f-UPB6D^0w4Panig;p6E;z%SRW$krF}amX*V{+_OcVXJF6PgDwEq&WB$G;JP={}fA`AAhCYUw` z5@vpl`u$WSkFqWAk-ym_i_vzsge4&Qf?Z(C^7UE8m+Z09;FH=yP+F<(+{49v+Kr=S zL|)v%jp>|4S*L{!7yP?II1!vhgG1t*2Ya})T4m=nf~-Y6(0_%ghp&^cTEq7~!(tSl zU_wz6zva0WJi*3xMwMS{Ua>95y!GdVr2{UP#d+{!ssHZ`{P&8EWa zM~Va;Z*O%knfC!F_OSK){Z#C}DZfZ>`+eoYPw@sGN+H@3-YT)hes4Cgyl<~< zX7k(X!`;Yfr1AehJsI|n11wZpm7k;3L`tPVkdwHIMJbRPWY~T_@)RN&3cblh4syNx zsV1nl{D4kgmMP(0)AMXE#glsk*hj@qJp{Lc!)^C+i+v-)ae4Tp6CWtkWvw%r`Oij> z$5sI%OB+1pBlDKx#-YbuQTVV^sRGlI8h=D0J5`LQC6f_{8fo$;>p@r$3JZcejJ*$Q ziD+W}33&&LLKKW={*cLu z*lweQ*feFv`juh{tef#L&7C}#h>)K9z!PJJNzNV+C(f{zO5b?O_XE&yV*rI_{Fk1l z(iz?cb2jx@J3p}PZjmCt5|O(HWa<%?G4PBR(R2^Wb@gWxF$nZ zE;xX^EB6-4wQob^u4=?2`9*6vsoa;x>7sgK%fMJCk*f?R2{K{#D={FvqRvQWBtOKW z(+pYJ10fR^6N{=h-a*hIIMA$2!A9QSuRx&MQ_B$cMvNgaRega&Sg z=ENT}*=cew|#kYR?z<^Vj3P@8|Qm_kG{@-mlno z*Z;k{{;iQ=&L%%&-d<`@W2!Hy>X~SvQaB2 zL@zExRc;+>;uld{aMFE#7Bh)&Vlc)%X)EarqoEISQHjjMo>-2W_z_geAIE;U5p@Rk zpc1)_gYjz|fu7}d3#OpX$SO?3y>5IFy~O`TzH?0U3j1Ofj^RN$=Hd>Fz-y=pzQhMG za-|(G7uD~>LD+~o#K+N#S1=#H!zGyWlraI=iaHbR7{dJKER9GyE}{oNLGAqys1k;* zvK5L(C6tcZ>paw+mY^#3YxKvZsPC&V8f#G{Z$h1wgQ&{Bg0akRPPrYIQJLMuc>Ej( zV(4nypNdLgoEuL^O*9v^HI;ZjR--1|=RR*mE$kfr96M3thd)jIHNZ$3+N(U&eO`iE z;R~pHeGpZ;cQF$$qP8Nq+9sBTdY+Hk>mrQ8)u==^yY5C+>JS#-E7jCrnSW1*45l3C zQDsr7{)6iO0<{9aHMRl+P|tscUL1{@a29&80+rAP)P&EY#@UYg?f`0QTh}n~6dEV# z&V`J3OXdY_9#TbgUsI#yI z^+SP+%plIhLAw9TXlTF&jKRaGTk#g^Omw>aw^1tyTyGN%Lrv&Gt!M=L<9O8f*?2z| zqt4PwOvHLrVn;BB`OV*GB;m)XOoM-C<3!YToQm3#m8eoSpx)bqL-7Raa9ziE9Q%9r zA4~Bpo|&=8jaBy^_)HBg{X{+QKz~b^}|zx+1QBp;XhCVUB@8& z4141}SJPm>4?-R0p{T_3T+14$e;OUj=@^6iQG3~iDpC4IyYeDb0_E5jpTrrs7W?4` zt{IIMk_6bK}XV z1ZJZb7o)zbM{Uh6RE6F^9pa1b^MB$H;yVtFu{8Q^wgcs(1}H@(vIO;E4TfPIDv=!+ zj)zbKokktr>zIrG!@)T55B4vl1(-tIh#owHJ<+*LLj(Q`Rl3hn*CS+$eIXZ>$W+uy z=cD$r3ibYTsEJ#!5Z}ZQ3~RKBdohnV3G;CYsv_;kIF30(V+tMDP#-33wR@F;5yaC` zTU3rZ6BVevt;0Te$bH`7#;;>9`p=^mFX1fw2GelbHap)c9I5+%j>b&AfEqY|yDe1( zjv?NLTImH$#ZPe<#_X_(=HhVTUttv1<1cVGF2rj%2XkI9X0rNGiQmG(%x}J=k%5sr z`44>%U%cH0#_h)S#mb$B|^4{y59Z=v=wbdODRAO;X8Vh>-UvJSNcM==uLKpomnjKiWrisQRI?iDC-jHrT;sF?r zLs2Eoa^q6e4^{>C!qpgnYhBl45OIU+cGtbAvvL@<**tLPD3TQ099FEM}K?m h*3qHTwqOr@r!6Sq#?;?cx{}jezXt^;7I3A;LA&$Y9uou3M z{qQup@G|;ik0r(o$G|1V-Q6*Pj)8Pc#|SLJXsp37+=2S=IO@HR(HpN~5?;rN7`fD# z(Kru#;s*4?CQQQ?^u>SR0PI}qW)(DipR^B#pyGH8#x(4W4?53hV;pfYhTuBXL|ah_ z?n3RrQ4GiH&U5byV}gkLqQ;MO;xTR-TFHI*0M5W%+>8%lCn|wS%j|nIP%D^)TEQH2 z;d0c@Z9+|a5OoA+oadimD)BAsgCm#Qopg_f6b(n~UocId5hLuGagBhlko zV+LUqsy`i-zzipzkD90qbu`s@53WZ|c-VP<0=2LU_)F|SjUQ7ONPY zR`@3BUcZCdy00)5ub_@%aFtCg2lc!Vbu>lT59?5gY6A5T`X|H`~C+aL$y zpD+QnRsVDPJ*({sLQp#}4E1~>y6`^KgpZ>OD^Uq;K~4AuYW&@(@7_k;juX{PkWJ$Z z9eN>Tl`)YQoE?74>@FR&y|_m`0#(MJ9UVY*a#zp%Pkzns5aMVgsrc zcA(xnfb6i_yhlSHoJB9Zh|2scr~f8uf}e3RdcQ!O;8fImC76rPqORK~s3W?DO5hG^ zVf|mU&y#R0@pK%b`@f2Y25iQG_%7;JTtwAGhtq!twSw@~HqmI*gz=~qO-2u#iTZvP z-h;)cT3U-S*n~>#JsimV=C3qj@ds3iCL>({gY%J^eC;_w1$tM8&F41UEvkHtXZk*KQA zaNG!Kqk<+L3l-9Je`7Bb$yJs1H*%+Ox{W z5aRi$BdS2vL?uRHBl_Vn=lLlo{uF!C|24YsD&}FYP4*VdL(R7iN9q1wpz)Aic+C!6 zh}x=3OvYWPm0rdK{0V=7BN}a@`8bStG4{hIOvg6-HQvBN%xmHgmHJVM-^QWLZ@f0! zEswUSdOcXq%ORATk0V%v{{@GqzuxQ*dB;rI5vhf#?wbv%G> zeegYvNDSCwi*Y1sMZdwZSdZF~Q`iG5htT3j>l9?$5LE@i|`xN zf^wVL|A90bn(a?%o8xJWqyHOpq2E>;Ct!c#JdDIesM@GQ9myut5xkF~_&KU*J8%Hr zLDf{)HapI+ZEky}nRKM_U*YDL*^*a4@bYGyX(;a+?WJ-6E0vPsJXTgb&NVA*M%JX