[dw-free] proposed new subdirectory: cgi-bin/LJ/Global
[commit: http://hg.dwscoalition.org/dw-free/rev/e23da908d160]
http://bugs.dwscoalition.org/show_bug.cgi?id=3974
ljdefaults.pl -> LJ/Global/Defaults.pm
Patch by
kareila.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=3974
ljdefaults.pl -> LJ/Global/Defaults.pm
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- cgi-bin/LJ/Config.pm
- cgi-bin/LJ/Global/Defaults.pm
- cgi-bin/ljdefaults.pl
- doc/raw/appendices/glossary.xml
- doc/raw/build/ljconfig/ljconfig2db.pl
- doc/raw/lj.book/admin/create_users.xml
- doc/raw/lj.book/install/ljconfig.xml
-------------------------------------------------------------------------------- diff -r 7b150ebe0121 -r e23da908d160 cgi-bin/LJ/Config.pm --- a/cgi-bin/LJ/Config.pm Tue Oct 25 18:48:29 2011 +0800 +++ b/cgi-bin/LJ/Config.pm Tue Oct 25 19:37:10 2011 +0800 @@ -28,7 +28,7 @@ etc/config-private.pl etc/config-local.pl etc/config.pl - cgi-bin/ljdefaults.pl + cgi-bin/LJ/Global/Defaults.pm ); # loads all configurations from scratch diff -r 7b150ebe0121 -r e23da908d160 cgi-bin/LJ/Global/Defaults.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cgi-bin/LJ/Global/Defaults.pm Tue Oct 25 19:37:10 2011 +0800 @@ -0,0 +1,363 @@ +#!/usr/bin/perl +# This code was forked from the LiveJournal project owned and operated +# by Live Journal, Inc. The code has been modified and expanded by +# Dreamwidth Studios, LLC. These files were originally licensed under +# the terms of the license supplied by Live Journal, Inc, which can +# currently be found at: +# +# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt +# +# In accordance with the original license, this code and all its +# modifications are provided under the GNU General Public License. +# A copy of that license can be found in the LICENSE file included as +# part of this distribution. +# +# +# Do not edit this file. You should edit etc/config.pl. If that file +# doesn't exist, copy it from doc/ljconfig.pl.txt to etc/config.pl and +# edit it there. This file only provides backup default values for upgrading. +# + +use strict; +no strict "vars"; + +{ + package LJ; + use Sys::Hostname (); + + $DEFAULT_STYLE ||= { + 'core' => 'core1', + 'layout' => 'generator/layout', + 'i18n' => 'generator/en', + }; + + $DEFAULT_FEED_STYLE ||= { + core => 'core2', + layout => 'sitefeeds/layout', + theme => 'sitefeeds/default', + }; + + # cluster 0 is no longer supported + $DEFAULT_CLUSTER ||= 1; + @CLUSTERS = (1) unless @CLUSTERS; + + $HOME = $LJ::HOME; + $HTDOCS = "$HOME/htdocs"; + $SSLDOCS ||= "$HOME/ssldocs"; + $BIN = "$HOME/bin"; + + $SERVER_NAME ||= Sys::Hostname::hostname(); + + $UNICODE = 1 unless defined $UNICODE; + + @LANGS = ("en") unless @LANGS; + $DEFAULT_LANG ||= $LANGS[0]; + + $SITENAME ||= "NameNotConfigured.com"; + unless ($SITENAMESHORT) { + $SITENAMESHORT = $SITENAME; + $SITENAMESHORT =~ s/\..*//; # remove .net/.com/etc + } + $SITENAMEABBREV ||= "[??]"; + + $MSG_READONLY_USER ||= "Database temporarily in read-only mode during maintenance."; + + $DOMAIN_WEB ||= "www.$DOMAIN"; + $SITEROOT ||= "http://$DOMAIN_WEB"; + $IMGPREFIX ||= "$SITEROOT/img"; + $STATPREFIX ||= "$SITEROOT/stc"; + $WSTATPREFIX ||= "$SITEROOT/stc"; + $JSPREFIX ||= "$SITEROOT/js"; + $USERPIC_ROOT ||= "$LJ::SITEROOT/userpic"; + $PALIMGROOT ||= "$LJ::SITEROOT/palimg"; + + # path to sendmail and any necessary options + $SENDMAIL ||= "/usr/sbin/sendmail -t -oi"; + + # protocol, mailserver hostname, and preferential weight. + # qmtp, smtp, dmtp, and sendmail are the currently supported protocols. + @MAIL_TRANSPORTS = ( [ 'sendmail', $SENDMAIL, 1 ] ) unless @MAIL_TRANSPORTS; + + # roles that slow support queries should use in order of precedence + @SUPPORT_SLOW_ROLES = ('slow') unless @SUPPORT_SLOW_ROLES; + + # where we set the cookies (note the period before the domain) + $COOKIE_DOMAIN ||= ".$DOMAIN"; + + $MAX_SCROLLBACK_LASTN ||= 100; + $MAX_SCROLLBACK_FRIENDS ||= 1000; + $MAX_USERPIC_KEYWORDS ||= 10; + + $LJ::AUTOSAVE_DRAFT_INTERVAL ||= 3; + + # this option can be a boolean or a URL, but internally we want a URL + # (which can also be a boolean) + if ($LJ::OPENID_SERVER && $LJ::OPENID_SERVER == 1) { + $LJ::OPENID_SERVER = "$LJ::SITEROOT/openid/server"; + } + + # set default capability limits if the site maintainer hasn't. + { + my %defcap = ( + 'checkfriends' => 1, + 'checkfriends_interval' => 60, + 'friendsviewupdate' => 30, + 'makepoll' => 1, + 'maxfriends' => 500, + 'moodthemecreate' => 1, + 'styles' => 1, + 's2styles' => 1, + 's2props' => 1, + 's2viewentry' => 1, + 's2viewreply' => 1, + 's2stylesmax' => 10, + 's2layersmax' => 50, + 'textmessage' => 1, + 'userdomain' => 0, + 'domainmap' => 0, + 'useremail' => 0, + 'userpics' => 5, + 'findsim' => 1, + 'full_rss' => 1, + 'can_post' => 1, + 'get_comments' => 1, + 'leave_comments' => 1, + 'mod_queue' => 50, + 'mod_queue_per_poster' => 1, + 'hide_email_after' => 0, + 'userlinks' => 5, + 'maxcomments' => 10000, + 'maxcomments-before-captcha' => 5000, + 'rateperiod-lostinfo' => 24*60, # 24 hours + 'rateallowed-lostinfo' => 5, + 'tools_recent_comments_display' => 50, + 'rateperiod-invitefriend' => 60, # 1 hour + 'rateallowed-invitefriend' => 20, + 'subscriptions' => 25, + 'usermessage_length' => 5000, + ); + foreach my $k (keys %defcap) { + next if (defined $LJ::CAP_DEF{$k}); + $LJ::CAP_DEF{$k} = $defcap{$k}; + } + } + + # FIXME: should forcibly limit userlinks to 255 (tinyint) + + # Send community invites from the admin address unless otherwise specified + $COMMUNITY_EMAIL ||= $ADMIN_EMAIL; + + # The list of content types that we consider valid for gzip compression. + %GZIP_OKAY = ( + 'text/html' => 1, # regular web pages; XHTML 1.0 "may" be this + 'text/xml' => 1, # regular XML files + 'application/xml' => 1, # XHTML 1.1 "may" be this + 'application/xhtml+xml' => 1, # XHTML 1.1 "should" be this + 'application/rdf+xml' => 1, # FOAF should be this + ) unless %GZIP_OKAY; + + # maximum FOAF friends to return (so the server doesn't get overloaded) + $MAX_FOAF_FRIENDS ||= 1000; + + # maximum number of friendofs to load/memcache (affects profile.bml display) + $MAX_FRIENDOF_LOAD ||= 5000; + + # block size is used in stats generation code that gets n rows from the db at a time + $STATS_BLOCK_SIZE ||= 10_000; + + # Maximum number of comments to display on Recent Comments page + $TOOLS_RECENT_COMMENTS_MAX ||= 150; + + # setup the mogilefs defaults so we can create the necessary domains + # and such. it is not recommended that you change the name of the + # classes. you can feel free to add your own or alter the mindevcount + # from within etc/config.pl, but the LiveJournal code uses these class + # names elsewhere and depends on them existing if you're using MogileFS + # for storage. + # + # also note that this won't actually do anything unless you have + # defined a MOGILEFS_CONFIG hash in etc/config.pl and you explicitly set + # at least the hosts key to be an arrayref of ip:port combinations + # indicating where to reach your local MogileFS server. + %MOGILEFS_CONFIG = () unless defined %MOGILEFS_CONFIG; + $MOGILEFS_CONFIG{domain} ||= 'livejournal'; + $MOGILEFS_CONFIG{timeout} ||= 3; + + $MOGILEFS_CONFIG{classes} ||= {}; + $MOGILEFS_CONFIG{classes}->{temp} ||= 2; + $MOGILEFS_CONFIG{classes}->{userpics} ||= 3; + $MOGILEFS_CONFIG{classes}->{vgifts} ||= 3; + + # Default to allow all reproxying. + %REPROXY_DISABLE = () unless %REPROXY_DISABLE; + + + # detect whether we are running on 32-bit architecture + my $arch = ( length(pack "L!", 0) == 4 ) ? 1 : 0; + if ( defined $ARCH32 ) { + die "Can't have ARCH32 set to false on a 32-bit architecture" if $ARCH32 < + $arch; + } else { + $ARCH32 = $arch; + } + + + # setup default minimal style information + $MINIMAL_USERAGENT{$_} ||= 1 foreach qw(Links Lynx w BlackBerry WebTV); # w is for w3m + $MINIMAL_BML_SCHEME ||= 'lynx'; + $MINIMAL_STYLE{'core'} ||= 'core1'; + + # maximum size to cache s2compiled data + $MAX_S2COMPILED_CACHE_SIZE ||= 7500; # bytes + + # max content length we should read via ATOM api + # 25MB + $MAX_ATOM_UPLOAD ||= 26214400; + + $DEFAULT_EDITOR ||= 'rich'; + + unless (@LJ::EVENT_TYPES) { + @LJ::EVENT_TYPES = map { "LJ::Event::$_" } + qw ( + AddedToCircle + Birthday + CommunityInvite + CommunityJoinApprove + CommunityJoinReject + CommunityJoinRequest + ImportStatus + InvitedFriendJoins + JournalNewComment + JournalNewComment::TopLevel + JournalNewComment::Edited + JournalNewEntry + NewUserpic + OfficialPost + PollVote + RemovedFromCircle + SecurityAttributeChanged + UserExpunged + UserMessageRecvd + UserMessageSent + VgiftApproved + XPostFailure + XPostSuccess + ); + } + + unless (@LJ::NOTIFY_TYPES) { + @LJ::NOTIFY_TYPES = map { "LJ::NotificationMethod::$_" } + qw ( Email ); + } + + # random user defaults to a week + $RANDOM_USER_PERIOD = 7; + + # how far in advance to send out birthday notifications + $LJ::BIRTHDAY_NOTIFS_ADVANCE ||= 2*24*60*60; + + # "RPC" URI mappings + # add default URI handler mappings + my %ajaxmapping = ( + delcomment => "delcomment.bml", + talkscreen => "talkscreen.bml", + controlstrip => "tools/endpoints/controlstrip.bml", + ctxpopup => "tools/endpoints/ctxpopup.bml", + changerelation => "tools/endpoints/changerelation.bml", + userpicselect => "tools/endpoints/getuserpics.bml", + esn_inbox => "tools/endpoints/esn_inbox.bml", + esn_subs => "tools/endpoints/esn_subs.bml", + trans_save => "tools/endpoints/trans_save.bml", + dirsearch => "tools/endpoints/directorysearch.bml", + poll => "tools/endpoints/poll.bml", + pollvote => "tools/endpoints/pollvote.bml", + jobstatus => "tools/endpoints/jobstatus.bml", + widget => "tools/endpoints/widget.bml", + multisearch => "tools/endpoints/multisearch.bml", + extacct_auth => "tools/endpoints/extacct_auth.bml", + contentfilters => "tools/endpoints/contentfilters.bml", + general => "tools/endpoints/general.bml", + ); + + foreach my $src (keys %ajaxmapping) { + $LJ::AJAX_URI_MAP{$src} ||= $ajaxmapping{$src}; + } + $LJ::AJAX_URI_MAP{load_state_codes} = 'tools/endpoints/load_state_codes.bml'; + $LJ::AJAX_URI_MAP{profileexpandcollapse} = 'tools/endpoints/profileexpandcollapse.bml'; + + # List all countries that have states listed in 'codes' table in DB + # These countries will be displayed with drop-down menu on Profile edit page + # 'type' is used as 'type' attribute value in 'codes' table + # 'save_region_code' specifies what to save in 'state' userprop - + # '1' mean save short region code and '0' - save full region name + %LJ::COUNTRIES_WITH_REGIONS = ( + 'US' => { type => 'state', save_region_code => 1, }, + 'RU' => { type => 'stateru', save_region_code => 1, }, + #'AU' => { type => 'stateau', save_region_code => 0, }, + #'CA' => { type => 'stateca', save_region_code => 0, }, + #'DE' => { type => 'statede', save_region_code => 0, }, + ); + + %LJ::VALID_PAGE_NOTICES = ( + profile_design => 1, + settings_design => 1, + ); + + $SUBDOMAIN_RULES = { + P => [ 1, "users.$LJ::DOMAIN" ], + Y => [ 1, "syndicated.$LJ::DOMAIN" ], + C => [ 1, "community.$LJ::DOMAIN" ], + }; + + $LJ::USERSEARCH_METAFILE_PATH ||= "$HOME/var/usersearch.data"; + + # default to limit to 2000 results + $LJ::MAX_DIR_SEARCH_RESULTS ||= 2000; + + # default to limit to 50,000 watch or trust edges to load + $LJ::MAX_WT_EDGES_LOAD ||= 50_000; + + # to avoid S2 error "Excessive recursion detected and stopped." + $S2::MAX_RECURSION ||= 500; + + # limit number of tags to search in intersection mode + $LJ::TAG_INTERSECTION ||= 20; + + # not expected to need to be changed + # default priority for libraries and resources in a sitescheme, + # so that they come before any stylesheets declared by the page itself + $LJ::LIB_RES_PRIORITY = 3; + $LJ::SCHEME_RES_PRIORITY = 2; + + # FIXME: remove the need for this, it's a hack of a hack of a hack + # it used to be that site scheme pages were called later than page-level CSS + # so page-level CSS was written with that assumption, and overrode some colors + # now that site scheme pages are called earlier than page-level CSS + # (as they should be) some pages look weird. + # So let us temporarily force old behavior on existing files + $LJ::OLD_RES_PRIORITY = 5; + + # we only support the minifaction of a subset of pre-generated files + # so for now, let's just configure which files to use a minified version of + # TODO: minify as part of the build process, and remove this hardcoding + %LJ::MINIFY = ( + "js/jquery/jquery-1.5.js" => "js/jquery/jquery-1.5.min.js", + "js/jquery/jquery.ui.core.js" => "js/jquery/jquery.ui.core.min.js", + "js/jquery/jquery.ui.autocomplete.js" => "js/jquery/jquery.ui.autocomplete.min.js", + "js/jquery/jquery.ui.datepicker.js" => "js/jquery/jquery.ui.datepicker.min.js", + "js/jquery/jquery.ui.dialog.js" => "js/jquery/jquery.ui.dialog.min.js", + "js/jquery/jquery.ui.draggable.js" => "js/jquery/jquery.ui.draggable.min.js", + "js/jquery/jquery.ui.droppable.js" => "js/jquery/jquery.ui.droppable.min.js", + "js/jquery/jquery.ui.mouse.js" => "js/jquery/jquery.ui.mouse.min.js", + "js/jquery/jquery.ui.position.js" => "js/jquery/jquery.ui.position.min.js", + "js/jquery/jquery.ui.selectable.js" => "js/jquery/jquery.ui.selectable.min.js", + "js/jquery/jquery.ui.sortable.js" => "js/jquery/jquery.ui.sortable.min.js", + "js/jquery/jquery.ui.widget.js" => "js/jquery/jquery.ui.widget.min.js", + + "js/hoverIntent.js" => "js/hoverIntent.minified.js", + "js/tooltip.js" => "js/tooltip.min.js", + ) unless defined %LJ::MINIFY; +} + + +1; diff -r 7b150ebe0121 -r e23da908d160 cgi-bin/ljdefaults.pl --- a/cgi-bin/ljdefaults.pl Tue Oct 25 18:48:29 2011 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,363 +0,0 @@ -#!/usr/bin/perl -# This code was forked from the LiveJournal project owned and operated -# by Live Journal, Inc. The code has been modified and expanded by -# Dreamwidth Studios, LLC. These files were originally licensed under -# the terms of the license supplied by Live Journal, Inc, which can -# currently be found at: -# -# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt -# -# In accordance with the original license, this code and all its -# modifications are provided under the GNU General Public License. -# A copy of that license can be found in the LICENSE file included as -# part of this distribution. -# -# -# Do not edit this file. You should edit etc/config.pl. If that file -# doesn't exist, copy it from doc/ljconfig.pl.txt to etc/config.pl and -# edit it there. This file only provides backup default values for upgrading. -# - -use strict; -no strict "vars"; - -{ - package LJ; - use Sys::Hostname (); - - $DEFAULT_STYLE ||= { - 'core' => 'core1', - 'layout' => 'generator/layout', - 'i18n' => 'generator/en', - }; - - $DEFAULT_FEED_STYLE ||= { - core => 'core2', - layout => 'sitefeeds/layout', - theme => 'sitefeeds/default', - }; - - # cluster 0 is no longer supported - $DEFAULT_CLUSTER ||= 1; - @CLUSTERS = (1) unless @CLUSTERS; - - $HOME = $LJ::HOME; - $HTDOCS = "$HOME/htdocs"; - $SSLDOCS ||= "$HOME/ssldocs"; - $BIN = "$HOME/bin"; - - $SERVER_NAME ||= Sys::Hostname::hostname(); - - $UNICODE = 1 unless defined $UNICODE; - - @LANGS = ("en") unless @LANGS; - $DEFAULT_LANG ||= $LANGS[0]; - - $SITENAME ||= "NameNotConfigured.com"; - unless ($SITENAMESHORT) { - $SITENAMESHORT = $SITENAME; - $SITENAMESHORT =~ s/\..*//; # remove .net/.com/etc - } - $SITENAMEABBREV ||= "[??]"; - - $MSG_READONLY_USER ||= "Database temporarily in read-only mode during maintenance."; - - $DOMAIN_WEB ||= "www.$DOMAIN"; - $SITEROOT ||= "http://$DOMAIN_WEB"; - $IMGPREFIX ||= "$SITEROOT/img"; - $STATPREFIX ||= "$SITEROOT/stc"; - $WSTATPREFIX ||= "$SITEROOT/stc"; - $JSPREFIX ||= "$SITEROOT/js"; - $USERPIC_ROOT ||= "$LJ::SITEROOT/userpic"; - $PALIMGROOT ||= "$LJ::SITEROOT/palimg"; - - # path to sendmail and any necessary options - $SENDMAIL ||= "/usr/sbin/sendmail -t -oi"; - - # protocol, mailserver hostname, and preferential weight. - # qmtp, smtp, dmtp, and sendmail are the currently supported protocols. - @MAIL_TRANSPORTS = ( [ 'sendmail', $SENDMAIL, 1 ] ) unless @MAIL_TRANSPORTS; - - # roles that slow support queries should use in order of precedence - @SUPPORT_SLOW_ROLES = ('slow') unless @SUPPORT_SLOW_ROLES; - - # where we set the cookies (note the period before the domain) - $COOKIE_DOMAIN ||= ".$DOMAIN"; - - $MAX_SCROLLBACK_LASTN ||= 100; - $MAX_SCROLLBACK_FRIENDS ||= 1000; - $MAX_USERPIC_KEYWORDS ||= 10; - - $LJ::AUTOSAVE_DRAFT_INTERVAL ||= 3; - - # this option can be a boolean or a URL, but internally we want a URL - # (which can also be a boolean) - if ($LJ::OPENID_SERVER && $LJ::OPENID_SERVER == 1) { - $LJ::OPENID_SERVER = "$LJ::SITEROOT/openid/server"; - } - - # set default capability limits if the site maintainer hasn't. - { - my %defcap = ( - 'checkfriends' => 1, - 'checkfriends_interval' => 60, - 'friendsviewupdate' => 30, - 'makepoll' => 1, - 'maxfriends' => 500, - 'moodthemecreate' => 1, - 'styles' => 1, - 's2styles' => 1, - 's2props' => 1, - 's2viewentry' => 1, - 's2viewreply' => 1, - 's2stylesmax' => 10, - 's2layersmax' => 50, - 'textmessage' => 1, - 'userdomain' => 0, - 'domainmap' => 0, - 'useremail' => 0, - 'userpics' => 5, - 'findsim' => 1, - 'full_rss' => 1, - 'can_post' => 1, - 'get_comments' => 1, - 'leave_comments' => 1, - 'mod_queue' => 50, - 'mod_queue_per_poster' => 1, - 'hide_email_after' => 0, - 'userlinks' => 5, - 'maxcomments' => 10000, - 'maxcomments-before-captcha' => 5000, - 'rateperiod-lostinfo' => 24*60, # 24 hours - 'rateallowed-lostinfo' => 5, - 'tools_recent_comments_display' => 50, - 'rateperiod-invitefriend' => 60, # 1 hour - 'rateallowed-invitefriend' => 20, - 'subscriptions' => 25, - 'usermessage_length' => 5000, - ); - foreach my $k (keys %defcap) { - next if (defined $LJ::CAP_DEF{$k}); - $LJ::CAP_DEF{$k} = $defcap{$k}; - } - } - - # FIXME: should forcibly limit userlinks to 255 (tinyint) - - # Send community invites from the admin address unless otherwise specified - $COMMUNITY_EMAIL ||= $ADMIN_EMAIL; - - # The list of content types that we consider valid for gzip compression. - %GZIP_OKAY = ( - 'text/html' => 1, # regular web pages; XHTML 1.0 "may" be this - 'text/xml' => 1, # regular XML files - 'application/xml' => 1, # XHTML 1.1 "may" be this - 'application/xhtml+xml' => 1, # XHTML 1.1 "should" be this - 'application/rdf+xml' => 1, # FOAF should be this - ) unless %GZIP_OKAY; - - # maximum FOAF friends to return (so the server doesn't get overloaded) - $MAX_FOAF_FRIENDS ||= 1000; - - # maximum number of friendofs to load/memcache (affects profile.bml display) - $MAX_FRIENDOF_LOAD ||= 5000; - - # block size is used in stats generation code that gets n rows from the db at a time - $STATS_BLOCK_SIZE ||= 10_000; - - # Maximum number of comments to display on Recent Comments page - $TOOLS_RECENT_COMMENTS_MAX ||= 150; - - # setup the mogilefs defaults so we can create the necessary domains - # and such. it is not recommended that you change the name of the - # classes. you can feel free to add your own or alter the mindevcount - # from within etc/config.pl, but the LiveJournal code uses these class - # names elsewhere and depends on them existing if you're using MogileFS - # for storage. - # - # also note that this won't actually do anything unless you have - # defined a MOGILEFS_CONFIG hash in etc/config.pl and you explicitly set - # at least the hosts key to be an arrayref of ip:port combinations - # indicating where to reach your local MogileFS server. - %MOGILEFS_CONFIG = () unless defined %MOGILEFS_CONFIG; - $MOGILEFS_CONFIG{domain} ||= 'livejournal'; - $MOGILEFS_CONFIG{timeout} ||= 3; - - $MOGILEFS_CONFIG{classes} ||= {}; - $MOGILEFS_CONFIG{classes}->{temp} ||= 2; - $MOGILEFS_CONFIG{classes}->{userpics} ||= 3; - $MOGILEFS_CONFIG{classes}->{vgifts} ||= 3; - - # Default to allow all reproxying. - %REPROXY_DISABLE = () unless %REPROXY_DISABLE; - - - # detect whether we are running on 32-bit architecture - my $arch = ( length(pack "L!", 0) == 4 ) ? 1 : 0; - if ( defined $ARCH32 ) { - die "Can't have ARCH32 set to false on a 32-bit architecture" if $ARCH32 < - $arch; - } else { - $ARCH32 = $arch; - } - - - # setup default minimal style information - $MINIMAL_USERAGENT{$_} ||= 1 foreach qw(Links Lynx w BlackBerry WebTV); # w is for w3m - $MINIMAL_BML_SCHEME ||= 'lynx'; - $MINIMAL_STYLE{'core'} ||= 'core1'; - - # maximum size to cache s2compiled data - $MAX_S2COMPILED_CACHE_SIZE ||= 7500; # bytes - - # max content length we should read via ATOM api - # 25MB - $MAX_ATOM_UPLOAD ||= 26214400; - - $DEFAULT_EDITOR ||= 'rich'; - - unless (@LJ::EVENT_TYPES) { - @LJ::EVENT_TYPES = map { "LJ::Event::$_" } - qw ( - AddedToCircle - Birthday - CommunityInvite - CommunityJoinApprove - CommunityJoinReject - CommunityJoinRequest - ImportStatus - InvitedFriendJoins - JournalNewComment - JournalNewComment::TopLevel - JournalNewComment::Edited - JournalNewEntry - NewUserpic - OfficialPost - PollVote - RemovedFromCircle - SecurityAttributeChanged - UserExpunged - UserMessageRecvd - UserMessageSent - VgiftApproved - XPostFailure - XPostSuccess - ); - } - - unless (@LJ::NOTIFY_TYPES) { - @LJ::NOTIFY_TYPES = map { "LJ::NotificationMethod::$_" } - qw ( Email ); - } - - # random user defaults to a week - $RANDOM_USER_PERIOD = 7; - - # how far in advance to send out birthday notifications - $LJ::BIRTHDAY_NOTIFS_ADVANCE ||= 2*24*60*60; - - # "RPC" URI mappings - # add default URI handler mappings - my %ajaxmapping = ( - delcomment => "delcomment.bml", - talkscreen => "talkscreen.bml", - controlstrip => "tools/endpoints/controlstrip.bml", - ctxpopup => "tools/endpoints/ctxpopup.bml", - changerelation => "tools/endpoints/changerelation.bml", - userpicselect => "tools/endpoints/getuserpics.bml", - esn_inbox => "tools/endpoints/esn_inbox.bml", - esn_subs => "tools/endpoints/esn_subs.bml", - trans_save => "tools/endpoints/trans_save.bml", - dirsearch => "tools/endpoints/directorysearch.bml", - poll => "tools/endpoints/poll.bml", - pollvote => "tools/endpoints/pollvote.bml", - jobstatus => "tools/endpoints/jobstatus.bml", - widget => "tools/endpoints/widget.bml", - multisearch => "tools/endpoints/multisearch.bml", - extacct_auth => "tools/endpoints/extacct_auth.bml", - contentfilters => "tools/endpoints/contentfilters.bml", - general => "tools/endpoints/general.bml", - ); - - foreach my $src (keys %ajaxmapping) { - $LJ::AJAX_URI_MAP{$src} ||= $ajaxmapping{$src}; - } - $LJ::AJAX_URI_MAP{load_state_codes} = 'tools/endpoints/load_state_codes.bml'; - $LJ::AJAX_URI_MAP{profileexpandcollapse} = 'tools/endpoints/profileexpandcollapse.bml'; - - # List all countries that have states listed in 'codes' table in DB - # These countries will be displayed with drop-down menu on Profile edit page - # 'type' is used as 'type' attribute value in 'codes' table - # 'save_region_code' specifies what to save in 'state' userprop - - # '1' mean save short region code and '0' - save full region name - %LJ::COUNTRIES_WITH_REGIONS = ( - 'US' => { type => 'state', save_region_code => 1, }, - 'RU' => { type => 'stateru', save_region_code => 1, }, - #'AU' => { type => 'stateau', save_region_code => 0, }, - #'CA' => { type => 'stateca', save_region_code => 0, }, - #'DE' => { type => 'statede', save_region_code => 0, }, - ); - - %LJ::VALID_PAGE_NOTICES = ( - profile_design => 1, - settings_design => 1, - ); - - $SUBDOMAIN_RULES = { - P => [ 1, "users.$LJ::DOMAIN" ], - Y => [ 1, "syndicated.$LJ::DOMAIN" ], - C => [ 1, "community.$LJ::DOMAIN" ], - }; - - $LJ::USERSEARCH_METAFILE_PATH ||= "$HOME/var/usersearch.data"; - - # default to limit to 2000 results - $LJ::MAX_DIR_SEARCH_RESULTS ||= 2000; - - # default to limit to 50,000 watch or trust edges to load - $LJ::MAX_WT_EDGES_LOAD ||= 50_000; - - # to avoid S2 error "Excessive recursion detected and stopped." - $S2::MAX_RECURSION ||= 500; - - # limit number of tags to search in intersection mode - $LJ::TAG_INTERSECTION ||= 20; - - # not expected to need to be changed - # default priority for libraries and resources in a sitescheme, - # so that they come before any stylesheets declared by the page itself - $LJ::LIB_RES_PRIORITY = 3; - $LJ::SCHEME_RES_PRIORITY = 2; - - # FIXME: remove the need for this, it's a hack of a hack of a hack - # it used to be that site scheme pages were called later than page-level CSS - # so page-level CSS was written with that assumption, and overrode some colors - # now that site scheme pages are called earlier than page-level CSS - # (as they should be) some pages look weird. - # So let us temporarily force old behavior on existing files - $LJ::OLD_RES_PRIORITY = 5; - - # we only support the minifaction of a subset of pre-generated files - # so for now, let's just configure which files to use a minified version of - # TODO: minify as part of the build process, and remove this hardcoding - %LJ::MINIFY = ( - "js/jquery/jquery-1.5.js" => "js/jquery/jquery-1.5.min.js", - "js/jquery/jquery.ui.core.js" => "js/jquery/jquery.ui.core.min.js", - "js/jquery/jquery.ui.autocomplete.js" => "js/jquery/jquery.ui.autocomplete.min.js", - "js/jquery/jquery.ui.datepicker.js" => "js/jquery/jquery.ui.datepicker.min.js", - "js/jquery/jquery.ui.dialog.js" => "js/jquery/jquery.ui.dialog.min.js", - "js/jquery/jquery.ui.draggable.js" => "js/jquery/jquery.ui.draggable.min.js", - "js/jquery/jquery.ui.droppable.js" => "js/jquery/jquery.ui.droppable.min.js", - "js/jquery/jquery.ui.mouse.js" => "js/jquery/jquery.ui.mouse.min.js", - "js/jquery/jquery.ui.position.js" => "js/jquery/jquery.ui.position.min.js", - "js/jquery/jquery.ui.selectable.js" => "js/jquery/jquery.ui.selectable.min.js", - "js/jquery/jquery.ui.sortable.js" => "js/jquery/jquery.ui.sortable.min.js", - "js/jquery/jquery.ui.widget.js" => "js/jquery/jquery.ui.widget.min.js", - - "js/hoverIntent.js" => "js/hoverIntent.minified.js", - "js/tooltip.js" => "js/tooltip.min.js", - ) unless defined %LJ::MINIFY; -} - - -1; diff -r 7b150ebe0121 -r e23da908d160 doc/raw/appendices/glossary.xml --- a/doc/raw/appendices/glossary.xml Tue Oct 25 18:48:29 2011 +0800 +++ b/doc/raw/appendices/glossary.xml Tue Oct 25 19:37:10 2011 +0800 @@ -81,7 +81,7 @@ </glossentry> <glossentry> - <glossterm><filename>ljconfig.pl</filename></glossterm> + <glossterm><filename>config.pl</filename></glossterm> <glossdef><para>This file (in the <filename class="directory">etc</filename> directory) contains the settings for a &lj; installation; site admins enable/disable/configure features @@ -89,6 +89,14 @@ </glossentry> <glossentry> + <glossterm><filename>Defaults.pm</filename></glossterm> + <glossdef><para>This file (in the + <filename class="directory">cgi-bin/LJ/Global</filename> directory) + contains &lj; installation default settings. It is similar to config.pl, + but you don't make changes to this defaults file.</para></glossdef> + </glossentry> + + <glossentry> <glossterm><filename>ljdb</filename></glossterm> <glossdef><para>This file (in the <filename class="directory">bin</filename> directory) is a @@ -96,23 +104,6 @@ </glossentry> <glossentry> - <glossterm><filename>ljdefaults.pl</filename></glossterm> - <glossdef><para>This file (in the - <filename class="directory">cgi-bin</filename> directory) - contains &lj; installation default settings. It is similar to ljconfig.pl, - but you don't make changes to this defaults file.</para></glossdef> - </glossentry> - - <glossentry> - <glossterm><filename>ljoverrides.pl</filename></glossterm> - <glossdef><para>This file (in the - <filename class="directory">cgi-bin</filename> directory) - is for local &lj; server config overrides; this file gets loaded last, - overriding any other configuration. It uses the same format as - <filename>ljconfig.pl</filename>.</para></glossdef> - </glossentry> - - <glossentry> <glossterm><filename>texttool.pl</filename></glossterm> <glossdef><para>This file loads new text, breadcrumbs, and their metadata, for the installation.</para></glossdef> diff -r 7b150ebe0121 -r e23da908d160 doc/raw/build/ljconfig/ljconfig2db.pl --- a/doc/raw/build/ljconfig/ljconfig2db.pl Tue Oct 25 18:48:29 2011 +0800 +++ b/doc/raw/build/ljconfig/ljconfig2db.pl Tue Oct 25 19:37:10 2011 +0800 @@ -17,7 +17,7 @@ 'user' => { 'name' => 'User-Configurable', 'desc' => "New installations will probably want to set these variables. Some are ". - "automatically set by ljdefaults.pl based on your other settings, but it ". + "automatically set by LJ/Global/Defaults.pm based on your other settings, but it ". "wouldn't hurt to specify them all explicitly.", 'abuse' => { @@ -875,9 +875,9 @@ 'auto' => { 'name' => 'Auto-Configured', 'desc' => "These <varname>\$LJ::</varname> settings are automatically set in ". - "<filename>ljdefaults.pl</filename>. You do not need to use all of them. ". + "<filename>cgi-bin/LJ/Global/Defaults.pm</filename>. You do not need to use all of them. ". "Some are only documented here for people interested in extending &lj;, or for other special cases.". - "You can define them in <filename>ljconfig.pl</filename> ahead of time so you can use them in ". + "You can define them in <filename>etc/config.pl</filename> ahead of time so you can use them in ". "definitions of future variables. ", 'configuration_directories' => { diff -r 7b150ebe0121 -r e23da908d160 doc/raw/lj.book/admin/create_users.xml --- a/doc/raw/lj.book/admin/create_users.xml Tue Oct 25 18:48:29 2011 +0800 +++ b/doc/raw/lj.book/admin/create_users.xml Tue Oct 25 19:37:10 2011 +0800 @@ -4,15 +4,15 @@ Once you have your &lj; server tuned and tweaked, you are probably going to want to create some users and communities. </para> <para> - Creating users is relatively simple, and depends on which options you are using in your <filename>etc/ljconfig.pl</filename>. + Creating users is relatively simple, and depends on which options you are using in your <filename>etc/config.pl</filename>. <note> <para> - If you are not using this file for your setup, then the default options defined in <filename>cgi-bin/ljdefaults.pl</filename> will be assumed. + If you are not using this file for your setup, then the default options defined in <filename>cgi-bin/LJ/Global/Defaults.pm</filename> will be assumed. </para> </note> </para> <para> - If your service is live, simply visit <filename>/create.bml</filename>. With this page, you can create as many users as you like. + If your service is live, simply visit <filename>/create</filename>. With this page, you can create as many users as you like. </para> </chapter> diff -r 7b150ebe0121 -r e23da908d160 doc/raw/lj.book/install/ljconfig.xml --- a/doc/raw/lj.book/install/ljconfig.xml Tue Oct 25 18:48:29 2011 +0800 +++ b/doc/raw/lj.book/install/ljconfig.xml Tue Oct 25 19:37:10 2011 +0800 @@ -1,26 +1,26 @@ <chapter id="lj.install.ljconfig"> - <title>Configuring ljconfig.pl</title> + <title>Configuring config.pl</title> <para> You need to make a &lj; configuration file. There's an - example <literal>ljconfig.pl</literal> in the doc directory by the + example <literal>config.pl</literal> in the doc directory by the name of <quote><filename>ljconfig.pl.txt</filename></quote>. You need to copy - this file to <filename>etc/ljconfig.pl</filename> and then + this file to <filename>etc/config.pl</filename> and then edit it to suit your needs. </para> <para> <screen> <prompt>$</prompt> <userinput>cd <replaceable>/home/lj</replaceable></userinput> - <prompt>$</prompt> <userinput>cp doc/ljconfig.pl.txt etc/ljconfig.pl</userinput></screen> + <prompt>$</prompt> <userinput>cp doc/ljconfig.pl.txt etc/config.pl</userinput></screen> </para> <para> The reason it's not there already is so that future upgrades don't - destroy your configuration. The end of - <filename>ljconfig.pl</filename> reads in - <filename>cgi-bin/ljdefaults.pl</filename> so that if we add new options, - <filename>ljdefaults.pl</filename> will be updated and will set + destroy your configuration. + <filename>cgi-bin/LJ/Config.pm</filename> reads in + <filename>cgi-bin/LJ/Global/Defaults.pm</filename> so that if we add new options, + <filename>LJ/Global/Defaults.pm</filename> will be updated and will set sane defaults. After an upgrade you want to glance at - <filename>ljdefaults.pl</filename> (or the original + <filename>LJ/Global/Defaults.pm</filename> (or the original <filename>doc/ljconfig.pl.txt</filename>) and see if there are any new options you feel like setting. </para> --------------------------------------------------------------------------------