From: idfx Date: Sat, 6 Nov 2004 16:55:01 +0000 (+0000) Subject: restoring head X-Git-Tag: BEFORE_MERGE_1_1~31 X-Git-Url: http://erislabs.net/gitweb/?p=mir.git;a=commitdiff_plain;h=c9758b0aba1df417bcd5db424e031995a7bdba71 restoring head --- diff --git a/etc/config.properties-dist b/etc/config.properties-dist index f32ade06..e7c7d5c6 100755 --- a/etc/config.properties-dist +++ b/etc/config.properties-dist @@ -1,308 +1,387 @@ # # Sample config for Mir # by Matthias 2001-09-12 +# reorganized by 2003-02-12 # # The Mir software realizes a semi-dynamic web service: -# The web server that is accessed by users has pure static +# The web server that is accessed by readers has pure static # pages. These pages are generated by the Mir software that # consists of a collection of Java servlets and HTML templates. +# # Mir uses a database server to store the data that is needed to # build the static site. # So there are basically three parts in this config file: # -# a) general setup +# a) general & admin setup # b) static site config -# c) dynamic admin site +# c) dynamic site # d) database config # # edit this to suit your needs -# After you edited this file, build.sh has to be invoked. -# To be sure, also restart Tomcat. +# After editing this file, two steps need to be taken to make the changes effective: +# 1. ant has to be invoked. +# 2. tomcat needs to be restarted. # -# Note that for Mir to work, Tomcat has to be set up to handle all -# URLs that begin with /servlet. All other URLs are handled by Apache. +# This file only contains the properties that are most often changed. To view all +# possible config values, refer to the file default.properties, located in the +# source directory. Don't change settings in default.properties however, instead +# use this file. # -# There are more configuration values located in the default.properties file -# located in source/. If necessary these values can be overridden in this file. +# Note: for filename values, by default, files are used relative to the servlet's +# WEB-INF directory. # # The setup uses the following assumptions: -# The URL to reach the site is http://indy.code-fu.de -# The StorageRoot of this URL is /pub/Dokumente/Indymedia/de-tech/Mir -# All data is located below this directory, including the servlets. +# The URL to reach the site is http://mir.someserver.org +# The StorageRoot of this URL is /var/www/project/site/ +# All produced pages and media are located below this directory. +################################################ +############ A) GENERAL SETUP ############## +################################################ +# mir/project an contact information +# for display on the site # -# -# GENERAL SETUP -# - -### mir/imc information -Mir.Name=mir.indymedia.org +Mir.Name=mir.someserver.org Mir.Shortname=mir -Mir.Contact-email.address=mir-coders@lists.indymedia.org -Mir.Contact-email.name=mir-coders mailinglist -Mir.Tech-email.address=mir-coders@lists.indymedia.org -Mir.Tech-email.name=mir-coders mailinglist -Mir.Public-email.address=mir-coders@lists.indymedia.org -Mir.Public-email.name=mir-coders mailinglist -Mir.Version=pre 1.2 -DirectOpenposting=yes +Mir.Contact-email.address=mir-project@somemailserver.org +Mir.Contact-email.name=mir-project mailinglist + +Mir.Tech-email.address=mir-admins@somemailserver.org +Mir.Tech-email.name=mir-admins mailinglist + +Mir.Public-email.address=project@somemailserver.org +Mir.Public-email.name=project mailinglist # Default timezone to display times in in admin, producers +# use CET for Central European Time (Paris, Amsterdam) +# more timezones here: http://www.postgresql.org/docs/7.2/static/timezones.html # -# Leave empty to use the system's default -Mir.DefaultTimezone= +Mir.DefaultTimezone= UTC # Default date/time format +# For the syntax of the format, refer to +# http://java.sun.com/j2se/1.3/docs/api/java/text/SimpleDateFormat.html Mir.DefaultDateTimeFormat = yyyy-MM-dd HH:mm -#where to put the lucene index -IndexPath=/tmp/index +# where to put the lucene index +# for the build in searchengine +# (must be creatable and writable by the tomcat user) +IndexPath=index # temp-dir used for media-uploads TempDir=/tmp +# Logging +# Log.LogClass = mir.log.log4j.LoggerImpl Log.log4j.ConfigurationFile = etc/log4j.properties Log.Home = log +# Mir.Localizer +# for your additional site-specific java-code +# Mir.Localizer=mircoders.localizer.basic.MirBasicLocalizer # The location of the producer specifiations +# Mir.Localizer.ProducerConfigFile=etc/producer/producers.xml -# Settings for the admin login: -# If the default language is left empty, it will set the accept-language of -# the client browser as the default. -Mir.Login.DefaultLanguage=en -Mir.Login.Languages=en;de;fr;nl;es;pt;eu;sv;tr;zh;gz - # For missing values, the FallbackLanguage is used as default +# Mir.Admin.FallbackLanguage=en # the templates +# Mir.Localizer.Producer.GeneratorLibrary= default=freemarker(etc/producer/) Mir.Localizer.Admin.GeneratorLibrary= default=freemarker(templates/admin/) Mir.Localizer.OpenPosting.GeneratorLibrary= default=freemarker(etc/open/) + +################################# +# admin interface configuration # +################################# + +# Settings for the admin login: +# If the default language is left empty, it will set the accept-language of +# the client browser as the default. +# +Mir.Login.DefaultLanguage=en +Mir.Login.Languages=en;de;fr;nl;es;pt;eu;sv;tr;zh;gz + +# Show who's logged in? +# +Mir.Admin.ShowLoggedinUsers=1 + # How should the custom operations (hide etc) in article and comment lists # be presented? # 0 = links, 1 = checkboxes, 2 = a listbox +# Mir.Localizer.Admin.ListOperationsFlavor=1 # How should the topics be presented on the article edit page? # 0 = in a multiselect list box, 1 = checkboxes +# Mir.Localizer.Admin.TopicListFlavor=1 # For the checkboxes flavour, how many columns should there be? +# Mir.Localizer.Admin.TopicListColumns=3 # In which order should the topic appear? +# Mir.Localizer.Admin.TopicListOrder=title # enable deletion of comments/articles? +# Mir.Localizer.Admin.AllowDeleteComment=1 Mir.Localizer.Admin.AllowDeleteArticle=1 +# Article Preview Link URL (Link to produced articles from within admin) +# +Article.PublicUrl=http://mir.code-foo.org/en/${to_content.date.formatted.yyyy}/${to_content.date.formatted.MM}/${to_content.id}.shtml +Comment.PublicUrl=http://mir.code-foo.org/en/${date.formatted.yyyy}/${date.formatted.MM}/${id}.shtml + -# Article Preview Link URL (Link to produced articles from within admin) -ContentList.ArticleLink=http://production.indy.code-foo.org/en/${date.formatted.yyyy}/${date.formatted.MM}/${id}.shtml -CommentList.ArticleLink=http://production.indy.code-foo.org/en/${co_content.date.formatted.yyyy}/${to_content.date.formatted.MM}/${to_content.id}.shtml +####################### +# automated producers # +####################### +# Which producers need to be called after an article is posted +# +Mir.Localizer.OpenPosting.ContentProducers= \ +media.new;articles.changed;startpage.generate;synchronization.run -# Which producers need to be called after an article (resp. a comment) is posted -Mir.Localizer.OpenPosting.ContentProducers= media.new;articles.changed;startpage.generate;synchronization.run -Mir.Localizer.OpenPosting.CommentProducers= articles.changed;synchronization.run +# Which producers need to be called after a comment is posted +# +Mir.Localizer.OpenPosting.CommentProducers= \ +articles.changed;synchronization.run # Which producers need to be called after the "produce all new" link is clicked from admin -Mir.Localizer.Producer.AllNewProducers= media.new;articles.changed;startpage.run;synchronization.run +# +Mir.Localizer.Producer.AllNewProducers= \ +media.new;articles.changed;startpage.run;synchronization.run + +######### +# rsync # +######### #use rsync to mirror the website to a remote-host +# Rsync=no -Rsync.Script.Path=/var/www/bin/rsync-copy +Rsync.Script.Path=/var/www/bin/rsync-copy.sh -# the maximum allowed size of an uploaded media file in KB. -MaxMediaUploadSize=20000 -# the maximum number of allowed media items to upload at once. -ServletModule.OpenIndy.MaxMediaUploadItems=20 - -# the default number of media items to upload at once -ServletModule.OpenIndy.DefaultMediaUploadItems=1 +################### +# FileEdit module # +################### - -# +# for extra flexibility editors can edit text-files from within the admin-interface +# these files can then be included in webpages using SSI as footer or announcement-box... # -# STATIC SITE CONFIG +# a list of directories to edit +# format: +# :::<0|1 (recursion off or on)> [, ....] # +ServletModule.FileEdit.Configuration= \ + includes:/var/www/project/site/includes:.*\\.inc:1 -# the url of the static site -Producer.ProductionHost=http://indy.code-fu.de - -# the url of the public site -Producer.PublicationHost=http://indy.code-fu.de -# Produrce.StorageRoot is the directory, in which -# the generated HTML pages will be stored -Producer.StorageRoot=/pub/Dokumente/Indymedia/de-tech/Mir/produced -# FileEdit module -# a list of directories to edit -# format: -# :::<0|1 (recursion off or on)> [, ....] -ServletModule.FileEdit.Configuration= \ - includes:/pub/Dokumente/Indymedia/de-tech/Mir/produced/inc:.*\\.inc:1 +################################################ +########### B) STATIC SITE CONFIG ############# +################################################ +# the url of the static site +# on the machine where mir runs on # +Producer.ProductionHost=http://mir.someserver.org + +# the url of the public site +# only different from ProductionHost if pages are copied to +# one ore more mirror-servers for delivery # -# DYNAMIC SITE CONFIG -# +Producer.PublicationHost=http://mir.someserver.org -# the url of the openposting-servlet -Producer.OpenAction=http://indy.code-fu.de/Mir/servlet/OpenMir +# Produrce.StorageRoot is the directory, in which +# the generated HTML pages will be stored +# +Producer.StorageRoot=/var/www/project/site/ -# use this property if the pages are not produced under the docRoot +# use this property only if the pages are NOT produced under the docRoot # of the webserver. all links in the produced pages are prepended # with Producer.DocRoot +# Producer.DocRoot= -Producer.ActionServlet=/servlet/Mir -# this is the name of the subdirectory where the image-dir -# will be linked to. -Producer.ImageRoot=/img +##################### +# media server URLs # +##################### +# for better performance or load-sharing +# images/media can be copied to (and served from) different servers +# only in this case image- and medialinks need different URLs. # the url of the video-server -Producer.Video.Host=http://indy.code-fu.de/video +# +Producer.Video.Host=http://mir.someserver.org/video # the url of the audio-server -Producer.Audio.Host=http://indy.code-fu.de/audio +# +Producer.Audio.Host=http://mir.someserver.org/audio # the url of the image-server -Producer.Image.Host=http://indy.code-fu.de/images +# +Producer.Image.Host=http://mir.someserver.org/images # the url of the media-server -Producer.Media.Host=http://indy.code-fu.de/media +# +Producer.Media.Host=http://mir.someserver.org/media # the url of the real-media-server -Producer.RealMedia.Host=rtsp://some.media.server/somedir/ +# +Producer.RealMedia.Host=rtsp://some.streamingmedia.server/somedir/ + -# image specific storage directories +############################################ +# image/media specific storage directories # +############################################ + # absolute directory, where the images are saved -Producer.Image.Path=/pub/Dokumente/Indymedia/de-tech/Mir/produced/images/ +# +Producer.Image.Path=/var/www/project/site/images/ + -# media specific storage directories # absolute directory, where the media files are saved -Producer.Media.Path=/pub/Dokumente/Indymedia/de-tech/Mir/produced/media +# +Producer.Media.Path=/var/www/project/site/media # absolute directory, where the realmedia data files(ra and rm) are saved # the ram files which point to the RealMedia.Host get saved in the regular Media dir # this should make rsyncing to a separate streaming server much easier -Producer.RealMedia.Path=/pub/Dokumente/rtsp +# +Producer.RealMedia.Path=/var/www/project/site/rtsp +# mir creates a small thumbnail-icon for each image posted # relativ directory, where the thumbnails will be saved +# Producer.Image.IconPath=/icon + +#################### +# media-type-icons # +#################### + +# by default they are stored in the webservers [docRoot]/img directory +# they are distibuted with the mir-source (etc/producer/images) +# use the "staticimages.generate" producer once to copy them in place +# + # Tiny Icons for the media types on the newswire summary. # (right hand side of start page) +# Producer.Icon.TinyImage=photo_small.gif Producer.Icon.TinyAudio=audio_small.gif Producer.Icon.TinyVideo=video_small.gif Producer.Icon.TinyText=text_small.gif #Medium sized icons used at various places +# Producer.Icon.BigImage=photo_big.gif Producer.Icon.BigAudio=audio_big.gif Producer.Icon.BigVideo=video_big.gif Producer.Icon.BigText=text_big.gif #Icons used for links +# Producer.ExtLinkName=extlink.gif Producer.IntLinkName=intlink.gif Producer.MailLinkName=maillink.gif -#the style sheet used to turn html into xsl:fo -#this is not currently in use, so don't worry about it -Producer.HTML2FOStyleSheet=/some/dir/mir/etc/producer/html2fo.xsl - -# the following lines are used to construct PDFs on the fly from one or more articles -# for the moment, if you want to change anything else about your pdfs, you -# will have to learn some java! -# -# keep in mind that there may not be enough room for all the text you enter as the -# value of one these options, if text doesn't appear, the only easy thing to do is -# use less text! +# this is the name of the subdirectory where the image-dir +# will be linked to. # +Producer.ImageRoot=/img -# a single line of big text which will appear at the top of the first page of all generated pdfs -PDF.Title=INDYMEDIA SOMEWHERE -# about two lines of small text which will appear at the bottom of every page +################################################ +########### C) DYNAMIC SITE CONFIG ############# +################################################ -PDF.Footer=Indymedia does blah. Content is good, and free to use for non-commercial purposes under the Open Content license. if you have questions, email someone. - +# the main mir-servlet # -# the size paper your target audience will likely have in their printers. pick one of A4 or LETTER +Producer.ActionServlet=/servlet/Mir + +# the url of the openposting-servlet # +Producer.OpenAction=http://mir.someserver.org/servlet/OpenMir -PDF.PageSize=A4 +# the maximum allowed size of an uploaded media file in KB. +# +MaxMediaUploadSize=20000 +# the maximum number of allowed media items to upload at once. +# +ServletModule.OpenIndy.MaxMediaUploadItems=20 +# the default number of media items to upload at once +# +ServletModule.OpenIndy.DefaultMediaUploadItems=1 -# -# edit with caution below this line -###################################################################### +###################### +# PDF configurations # +###################### +# the following lines are used to construct PDFs on the fly from one or more articles +# for the moment, if you want to change anything else about your pdfs, you +# will have to learn some java! # -# -# DATABASE SETUP +# keep in mind that there may not be enough room for all the text you enter as the +# value of one these options, if text doesn't appear, the only easy thing to do is +# use less text! # +# a single line of big text which will appear at the top of the first page of all generated pdfs # -# specify your database +PDF.Title=SOME MIR-SITE -Database.poolMin=1 -Database.poolMax=10 -Database.poolResetTime=1.0 -Database.PoolLog=log/pool.log -Database.Limit=20 -Database.Username=postgres -Database.Password= -Database.Host=localhost -Database.Name=Mir +# about two lines of small text which will appear at the bottom of every page +# +PDF.Footer=Mir-CMS PDF-Newsletter. Content is good, and free to use for non-commercial purposes under the Open Content license. If you have questions, email someone. +# the size paper your target audience will likely have in their printers. +# pick one of A4 or LETTER # -# this sets the adaptor to be used +PDF.PageSize=A4 -Database.Adaptor=mir.storage.DatabaseAdaptorPostgresql +################################################ +############ D) DATABASE CONFIG ############## +################################################ +# specify your database # -# configuration for adaptor postgres -# In this example, "Mir" is the dbname +Database.Name=Mir +Database.Username=postgres +Database.Password= -Adaptor.PostgreSQL.URL=jdbc:postgresql://localhost:5432/Mir -Adaptor.PostgreSQL.Driver=org.postgresql.Driver +Database.Host=localhost +Database.Port=5432 +Database.Driver=org.postgresql.Driver -# how many articles should be shown on a list-page -Lists.Max.Items=10 -# -# Servlet / Module configurations -# +############################################ +# encoding configuration # +############################################ -# don't change this unless you really know your i18n. # The default encoding charset used in the written html files as well # as the dynamic output html. -# also used for the HTML charset meta tag. -Mir.DefaultEncoding=UTF8 - -# this encoding is used for the HTML charset meta tag. -# it must be the html charset equivalent of the Java encoding above -# don't change this unless... Mir.DefaultHTMLCharset=UTF-8 + +# The java equivalent of Mir.DefaultHTMLCharset +Mir.DefaultEncoding=UTF8 diff --git a/etc/log4j.properties b/etc/log4j.properties index 60df8a6a..136953b8 100755 --- a/etc/log4j.properties +++ b/etc/log4j.properties @@ -1,16 +1,30 @@ -log4j.rootLogger= WARN, A1 +log4j.rootLogger= ERROR, A1 log4j.logger.Utility= INFO, UtilityA +log4j.additivity.Utility=false log4j.logger.Global= INFO, GlobalA +log4j.additivity.Global=false log4j.logger.Servlet= INFO, ServletA -log4j.logger.Database= INFO, DatabaseA +log4j.additivity.Servlet=false +log4j.logger.Database= WARN, DatabaseA +log4j.additivity.Database=false log4j.logger.Entity= INFO, EntityA +log4j.additivity.Entity=false log4j.logger.Media= INFO, MediaA +log4j.additivity.Media=false log4j.logger.Producer= INFO, ProducerA +log4j.additivity.Producer=false log4j.logger.ServletModule= INFO, ServletModuleA +log4j.additivity.ServletModule=false log4j.logger.Module= INFO, ModuleA +log4j.additivity.Module=false log4j.logger.Localizer= INFO, LocalizerA +log4j.additivity.Localizer=false log4j.logger.Generator= INFO, GeneratorA +log4j.additivity.Generator=false log4j.logger.PDFGenerator= INFO, PDFGeneratorA +log4j.additivity.PDFGenerator=false +log4j.logger.AdminUsage= INFO, AdminUsageA +log4j.additivity.AdminUsage=false log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout @@ -75,3 +89,9 @@ log4j.appender.PDFGeneratorA=org.apache.log4j.RollingFileAppender log4j.appender.PDFGeneratorA.File=${log.home}/pdf.log log4j.appender.PDFGeneratorA.layout=org.apache.log4j.PatternLayout log4j.appender.PDFGeneratorA.layout.ConversionPattern=%d [%p] %c %x %m%n + +log4j.appender.AdminUsageA=org.apache.log4j.RollingFileAppender +log4j.appender.AdminUsageA.File=${log.home}/adminusage.log +log4j.appender.AdminUsageA.layout=org.apache.log4j.PatternLayout +log4j.appender.AdminUsageA.layout.ConversionPattern=%d %m%n + diff --git a/etc/objectstore.properties b/etc/objectstore.properties index eda3b3fd..2bded21f 100755 --- a/etc/objectstore.properties +++ b/etc/objectstore.properties @@ -1,5 +1,6 @@ StoreContainer.EntityDefaultSize 45 -StoreContinaer.EntityListDefaultSize 15 -StorableObjectEntity.Entity.DefaultSize 5000 -StorableObjectEntity.EntityList.DefaultSize 400 - +StoreContainer.EntityListDefaultSize 15 +StorableObjectEntity.Entity.DefaultSize 300 +StorableObjectEntity.EntityList.DefaultSize 100 +EntityTopics.Entity.DefaultSize 200 +EntityTopics.EntityList.DefaultSize 20 diff --git a/etc/producer/RSS-full.template b/etc/producer/RSS-full.template new file mode 100755 index 00000000..1f244c6c --- /dev/null +++ b/etc/producer/RSS-full.template @@ -0,0 +1,97 @@ + + + + + + ${title}width="${w}" height="${h}"> +
${title}
+
+ + + + + + + + + + + + + + ${utility.encodeHTML(channeltitle)} + ${utility.encodeHTML(channelidentifier)} + + ${utility.encodeHTML(channeldescription)} + + + ${utility.encodeHTML(channelpublisher)} + + Open Content License, http://www.opencontent.org + ${config.now.formatted.dc} + + + + + + + + + + + + ${utility.encodeHTML(i.title)} + ${articleprefix}/${i.date.formatted["yyyy"]}/${i.date.formatted["MM"]}/${i.id}.shtml + ${utility.encodeHTML(i.description_parsed)} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ]]> + ${utility.encodeHTML(i.content_data_parsed)} +
+ ${i.creationdate.formatted["yyyy-MM-dd'T'HH:mm'-07:00'"]} + + ${utility.encodeHTML(i.creator)} + + + ${utility.encodeXML(i.creator_main_url)} + + ${i.language.code} +
+
+
diff --git a/etc/producer/RSS.template b/etc/producer/RSS.template index 3637fd3f..0be5075a 100755 --- a/etc/producer/RSS.template +++ b/etc/producer/RSS.template @@ -9,26 +9,25 @@ ${utility.encodeXML(channeltitle)} - ${utility.encodeXML(channellink)} + ${utility.encodeXML(channelidentifier)} ${utility.encodeXML(channeldescription)} ${utility.encodeXML(channelpublisher)} Open Content License, http://www.opencontent.org - ${config.now.dc} + ${config.now.formatted.dc} - + - - ${i.title} - ${config["Producer.ProductionHost"]}${config.docRoot}${i.publish_path}${i.id}.shtml - ${i.description_sentence} - ${i.webdb_create_dc}+0200 + + ${i.title} + ${articleprefix}/${i.date.formatted["yyyy"]}/${i.date.formatted["MM"]}/${i.id}.shtml + ${i.creationdate.formatted["yyyy-MM-dd'T'HH:mm'-07:00'"]} diff --git a/etc/producer/article.template b/etc/producer/article.template index 6ca865e8..68986c11 100755 --- a/etc/producer/article.template +++ b/etc/producer/article.template @@ -5,12 +5,13 @@ - + ${config["Mir.Name"]} | ${article.title} - - - - + + + + + @@ -23,221 +24,238 @@ - + + - + - - -
- - - - -
((i))
- - - - -
 ${lang("general.start")}
-
- - - -
-
-
-
-    - - ${lang("general.menu.missionStatement")} >>   - ${lang("general.menu.moderation")} >>   - ${lang("general.menu.support")} >>   - ${lang("general.menu.mailinglists")} >>   - ${lang("general.menu.participate")} >> - -
- - + +
-
-

${article.title}

- -

${article.creator}, ${article.creationdate.formatted["dd.MM.yyyy HH:mm"]}

-
-

${article.description_parsed}

- - -

- - ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} - -

-
- -

- - - ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} -

-
- -

- - - ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} -

-
- - -

- ${image[ -
${image["title"]} -

-
- -
-

${article.content_data_parsed}

-
- -

- - - - ${lang("article.email.prefix")}: ${article.creator_email}
-
- - ${lang("article.homepage.prefix")}: ${article.creator_main_url}
-
-
-

-
-
-
-
- + +
+
+ + + + + + + +
((i)) + +
+  ${lang("general.start")} +
+ +
+ + + +
+
+
+
+ + ${lang("general.menu.missionStatement")} >>   + ${lang("general.menu.moderation")} >>   + ${lang("general.menu.support")} >>   + ${lang("general.menu.mailinglists")} >>   + ${lang("general.menu.participate")} >> + +
+
+
+   +
+
+
+  ${lang("general.addtranslation")} >> +
+ +
+

${article.title}

+ +

${article.to_original.creator} (${lang("general.translatedby", article.creator)}), ${article.to_original.creationdate.formatted["dd.MM.yyyy HH:mm"]}

+
+

${article.description_parsed}

+ + + + +

+   + + ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} + +

+
+ + +

+ + + ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} +

+
+ + +

+ + + ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} +

+
+ + +

+ ${image[ +
${image["title"]} +

+
+
+ +
+

${article.content_data_parsed}

+
+ +

+ + + - ${lang("article.email.prefix")}: ${article.creator_email}
+
+ + ${lang("article.homepage.prefix")}: ${article.creator_main_url}
+
+
+

+
+
+
+
+
  - ${lang("article.get_as_pdf")}>> -
-
-
+ ${lang("article.get_as_pdf")} >> +
+ +
  - ${lang("article.add_to_pdf")}>> -
-
-
+ ${lang("article.add_to_pdf")} >> +
+ +
  - ${lang("article.newsletter_checkout")}>> -
+ ${lang("article.newsletter_checkout")} >> +

-
+
  - ${lang("article.send_as_email")}>> -
+ ${lang("article.send_as_email")} >> +

-
-   - ${lang("article.addcomment")}>> -
- -
- -
- ${utility.encodeHTML(c.title)}
- ${c.creationdate.formatted["dd.MM.yyyy HH:mm"]}
- - - - ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} - - - - - - ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} - - - - - ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} - - - - ${image[ -
${image["title"]} -
- - - ${c.description_parsed} - - - -
- ${utility.encodeHTML(c.creator)}> -
- -
- ${lang("article.email.prefix")}: ${utility.encodeHTML(c.email)} -
- -
- ${lang("article.homepage.prefix")}: ${utility.encodeHTML(c.email)} -
-
-
-
-
-
-
+
+   + ${lang("article.addcomment")} >> +
+ +
+ +
+ ${utility.encodeHTML(c.title)}
+ ${c.creationdate.formatted["dd.MM.yyyy - HH:mm"]}
+ + + + ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} + + + + + + ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} + + + + + ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]} + + + + ${image[ +
${image["title"]} +
+ + + ${c.description_parsed} + + + +
+ ${utility.encodeHTML(c.creator)}> +
+ +
+ ${lang("article.email.prefix")}: ${utility.encodeHTML(c.email)} +
+ +
+ ${lang("article.homepage.prefix")}: ${utility.encodeHTML(c.main_url)} +
+
+
+
+
+
+
-
diff --git a/etc/producer/batchnav.template b/etc/producer/batchnav.template index 0e7342cf..258ae855 100755 --- a/etc/producer/batchnav.template +++ b/etc/producer/batchnav.template @@ -1,2 +1,35 @@ -${batch.first.index}

-${b.index} | + + + ${batch.first.index}

+ ${b.index} | + + + + +

+ +
\ No newline at end of file diff --git a/etc/producer/featurearchive.template b/etc/producer/featurearchive.template index 8fd5fc53..5133f195 100755 --- a/etc/producer/featurearchive.template +++ b/etc/producer/featurearchive.template @@ -1,148 +1,162 @@ - + ${config["Mir.Name"]} | ${lang("featurearchive.title")} - - - - - - - - - - - - - - + - + - - - + + + + + + +
- - - - -
((i))
- - - - -
 ${lang("general.start")}
-
- -
- - - - -
-    - - ${lang("general.menu.missionStatement")} >>   - ${lang("general.menu.moderation")} >>   - ${lang("general.menu.support")} >>   - ${lang("general.menu.mailinglists")} >>   - ${lang("general.menu.participate")} >> - -
- - - - - - - - - - - + + - - - - +
+ ${aorig.creator} (${lang("general.translatedby", i.creator)}), ${aorig.creationdate.formatted["dd-MM-yyyy - HH:mm"]}

+

+ + + + + + + + + + + ${aorig.to_media_images[0][ + + ${i.description_parsed} +
+ ${lang("general.readmore")} >> +

+ +
+ + + + + + +
     -
-
- ${lang("featurearchive.title")} -
-
-
     - -      -
     -
- - -

+

+ + + + +
((i))
+ + + + +
 ${lang("general.start")}
+
+ +
+ + + + +
+    + + ${lang("general.menu.missionStatement")} >>   + ${lang("general.menu.moderation")} >>   + ${lang("general.menu.support")} >>   + ${lang("general.menu.mailinglists")} >>   + ${lang("general.menu.participate")} >> + +
+ + + + + + + + + - - - - -
     +
+
+ ${lang("featurearchive.title")} +
+
+
    
     +
+ + + + + + + + + +

${i.title} -
- ${i.creator}, ${i.webdb_create_formatted}

-

- - - - - - - - - - - ${i.to_media_images[0][ - - ${i.description_parsed} -
- ${lang("general.readmore")} >> -

- -
-
- - - << ${lang("general.page.prefix")} ${batch.previous.index} - - - | - - - ${lang("general.page.prefix")} ${batch.next.index} >> - - - -
     -
- ${lang("general.page.prefix")} ${batch.current.index} ${lang("general.page.infix")} - - -
-      -
-
 
    
+
  + + + + + + + + + + +

     + + << ${lang("general.page.prefix")} ${batch.previous.index} + + + | + + + ${lang("general.page.prefix")} ${batch.next.index} >> + + +   + + +     


+ + +
diff --git a/etc/producer/html2fo.xsl b/etc/producer/html2fo.xsl index f25b81c5..ea273cfe 100755 --- a/etc/producer/html2fo.xsl +++ b/etc/producer/html2fo.xsl @@ -8,7 +8,7 @@ uses to break paragraphs with empty blocks, which do the same thing in XSL:FO --> - + diff --git a/etc/producer/languagebar.template b/etc/producer/languagebar.template new file mode 100755 index 00000000..000b3dcf --- /dev/null +++ b/etc/producer/languagebar.template @@ -0,0 +1,4 @@ +${article.to_original.languagename} + + | ${a.languagename} + diff --git a/etc/producer/navigation.template b/etc/producer/navigation.template index 6d88655f..f359e169 100755 --- a/etc/producer/navigation.template +++ b/etc/producer/navigation.template @@ -1,46 +1,61 @@ -
- ${lang("navigation.languages")} - -
${l.name} -
-
+
+ ${lang("navigation.languages")} + +
${l.name} +
+
-
-
-
- ${lang("navigation.search.title")}
- - - - -
- ${lang("navigation.search.images")}
- ${lang("navigation.search.audio")}
- ${lang("navigation.search.video")}
- - -
-
- -
- ${lang("navigation.publish")} >> -
-
-
- ${lang("navigation.newswirearchive")} >>  -
-
-
- ${lang("navigation.featurearchive")} >>  -
-
- -
- ${lang("navigation.topics")} - -
${t.title} -
-
-
- +
+
+
+ ${lang("navigation.search.title")}
+ + + + + +
+ ${lang("navigation.search.images")}
+ ${lang("navigation.search.audio")}
+ ${lang("navigation.search.video")}
+ + +
+
+ +
+ ${lang("navigation.publish")} >> +
+
+
+ ${lang("navigation.featurearchive")} >> 

+ ${lang("navigation.newswirearchive")} >>  +
+ +
+ +
+ ${lang("navigation.topics")} + +
${t.title} +
+
+
+
+ ${lang("navigation.syndication")}
+ + XML ${lang("syndication.features")}
+ XML ${lang("syndication.features")} ${lang("syndication.full")}
+ XML ${lang("syndication.newswire")}
+ XML ${lang("syndication.newswire")} ${lang("syndication.full")}
+
+ + XML ${t.title} ${lang("syndication.features")}
+ XML ${t.title} ${lang("syndication.features")} ${lang("syndication.full")}
+ XML ${t.title} ${lang("syndication.newswire")}
+ XML ${t.title} ${lang("syndication.newswire")} ${lang("syndication.full")}
+
+
+
+
diff --git a/etc/producer/newswirearchive.template b/etc/producer/newswirearchive.template index 5b9b8004..0cca4af3 100755 --- a/etc/producer/newswirearchive.template +++ b/etc/producer/newswirearchive.template @@ -1,148 +1,163 @@ - + ${config["Mir.Name"]} | ${lang("newswirearchive.title")} - - - - - - - - - - - - - - + - + - - - + + + + + + +
- - - - -
((i))
- - - - -
 ${lang("general.start")}
-
- -
- - - - -
-    - - ${lang("general.menu.missionStatement")} >>   - ${lang("general.menu.moderation")} >>   - ${lang("general.menu.support")} >>   - ${lang("general.menu.mailinglists")} >>   - ${lang("general.menu.participate")} >> - -
- - - - - - - - - - - + + - - - - +
+ ${aorig.creator} (${lang("general.translatedby", i.creator)}), ${aorig.creationdate.formatted["dd-MM-yyyy - HH:mm"]}

+

+ + + + + + + + + + + ${aorig.to_media_images[0][ + + ${i.description_parsed} +
+ ${lang("general.readmore")} >> +

+ +
+ + + + + + +
     -
-
- ${lang("newswirearchive.title")} -
-
-
     - -      -
     -
- - -

+

+ + + + +
((i))
+ + + + +
 ${lang("general.start")}
+
+ +
+ + + + +
+    + + ${lang("general.menu.missionStatement")} >>   + ${lang("general.menu.moderation")} >>   + ${lang("general.menu.support")} >>   + ${lang("general.menu.mailinglists")} >>   + ${lang("general.menu.participate")} >> + +
+ + + + + + + + + - - - - -
     +
+
+ ${lang("newswirearchive.title")} +
+
+
    
     +
+ + + + + + + + + + +

${i.title} -
- ${i.creator}, ${i.webdb_create_formatted}

-

- - - - - - - - - - - ${i.to_media_images[0][ - - ${i.description_parsed} -
- ${lang("general.readmore")} >> -

- -
-
- - - << ${lang("general.page.prefix")} ${batch.previous.index} - - - | - - - ${lang("general.page.prefix")} ${batch.next.index} >> - - - -
     -
- ${lang("general.page.prefix")} ${batch.current.index} ${lang("general.page.infix")} - - -
-      -
-
 
    
+
  + + + + + + + + + + +

     + + << ${lang("general.page.prefix")} ${batch.previous.index} + + + | + + + ${lang("general.page.prefix")} ${batch.next.index} >> + + +   + + +     


+ + +
diff --git a/etc/producer/printablecontent.template b/etc/producer/printablecontent.template index ce9c3a79..164ee259 100755 --- a/etc/producer/printablecontent.template +++ b/etc/producer/printablecontent.template @@ -41,7 +41,7 @@ which is to be used to layout the text contained in this page-sequence--> - + - Here is where some descriptive text could go. A fair use disclaimer + font-family="serif" + color="black" + line-height="12pt"> + Here is where some descriptive text could go. A fair use disclaimer an attribution of copyright/left rights, etc. the possibilities are endless. - - - - + + + + text-align="center"> ${article.title} @@ -95,7 +95,7 @@ an attribution of copyright/left rights, etc. the possibilities are endless. font-family="sans-serif" line-height="13pt" space-after.optimum="3pt" - text-align="end"> + text-align="end"> ${article.creator}, ${article.webdb_create_formatted} @@ -103,31 +103,31 @@ an attribution of copyright/left rights, etc. the possibilities are endless. + text-align="justify"> ${article.description_parsed} - + - - Email: ${article.creator_email} + Email: ${article.creator_email} - URL: ${article.creator_main_url} + URL: ${article.creator_main_url} - + diff --git a/etc/producer/producers.xml b/etc/producer/producers.xml index 8864dbda..b9483af9 100755 --- a/etc/producer/producers.xml +++ b/etc/producer/producers.xml @@ -1,4 +1,4 @@ - + + + + + + + + @@ -47,30 +141,52 @@ + + + + + + + + + + + + + + + + - - + @@ -111,13 +227,13 @@ - + - - @@ -127,8 +243,8 @@ - @@ -138,8 +254,8 @@ - @@ -210,14 +326,15 @@ - + - + selection="c.is_published='1' and c.to_article_type in (${articletype.newswire}, ${articletype.feature}) and c.id=cxt.content_id and cxt.topic_id = ${topic.id}" + order="webdb_create asc" extratables="content_x_topic cxt"> @@ -340,6 +457,32 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/producer/routines.template b/etc/producer/routines.template index ed337b7f..750dcebd 100755 --- a/etc/producer/routines.template +++ b/etc/producer/routines.template @@ -86,7 +86,7 @@

, ${anArticle.creationdate.formatted["dd.MM.yyyy HH:mm"]}

-

+

${anArticle.description_parsed}

diff --git a/etc/producer/startpage.template b/etc/producer/startpage.template index 0cf6fbda..afdd74b4 100755 --- a/etc/producer/startpage.template +++ b/etc/producer/startpage.template @@ -1,4 +1,4 @@ - + Template file for the front page. - virtually no CSS functions - all paths relative to / @@ -7,219 +7,240 @@ - - ${config["Mir.Name"]} - - - - - + + ${config["Mir.Name"]} + + + + + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + +
((i)) -
-    - - ${lang("general.menu.missionStatement")} >>   - ${lang("general.menu.moderation")} >>   - ${lang("general.menu.support")} >>   - ${lang("general.menu.mailinglists")} >>   - ${lang("general.menu.participate")} >> - -
-
-
-    ${config["Mir.Name"]} -
-
         
- - - - - - - - - - - - -
- ${lang("startpage.imcs")} -
- - - -
-
- - -
- - - -
- ${lang("startpage.breakingnews")} +++ - - - - - ${bn.creationdate.formatted["dd-MM-yyyy HH:mm"]}: ${bn.text} +++ - - -
-
-
- - - - - + + + + + + + + + + + + + + + + + + +
-

+

((i)) +
+ + ${lang("general.menu.missionStatement")} >>   + ${lang("general.menu.moderation")} >>   + ${lang("general.menu.support")} >>   + ${lang("general.menu.mailinglists")} >>   + ${lang("general.menu.participate")} >> + +
+
+
+    ${config["Mir.Name"]} +
+
         
+ + + + + + + + + + + + +
+ ${lang("startpage.imcs")} +
+ + + +
+
+ + +
+ + + +
+ ${lang("startpage.breakingnews")} +++ + + + + + ${bn.creationdate.formatted["dd-MM-yyyy HH:mm"]}: ${bn.text} +++ + + +
+
+
+ + + + + + + + + + + +
+

${s.title} -
- ${s.creator}, ${s.webdb_create_formatted}

-

- - - - - - - - - - - ${s.to_media_images[0][ - - ${s.description_parsed} -
+

+ ${sorig.creator} (${lang("general.translatedby", s.creator)}), ${sorig.creationdate.formatted["dd.MM.yyyy - HH:mm"]}

+

+ + + + + + + + + + + ${sorig.to_media_images[0][ + + ${s.description_parsed} +
${lang("general.readmore")} >> -

- -
-
- +

+ +
+
+ - - -

+ + + + + + + + + +

${i.title} -
- ${i.creator}, ${i.creationdate.formatted["dd-MM-yyyy HH:mm"]}

-

- - - - - - - - - - - ${i.to_media_images[0][ - - ${i.description_parsed} -
+

+ ${forig.creator} (${lang("general.translatedby", i.creator)}), ${forig.creationdate.formatted["dd.MM.yyyy - HH:mm"]}

+

+ + + + + + + + + + + ${forig.to_media_images[0][ + + ${i.description_parsed} +
${lang("general.readmore")} >> >> -

- -
-
- - -
- - - - - - - + + - - - - - - - - - - + + + +
- ${lang("startpage.newswire")} -
- - - - - ${n.to_media_icon.icon_alt} +

+ +
+ + + +
+ + + + + + + - -
+ ${lang("startpage.newswire")} +
+ + + + + + + + + + + + + ${norig.to_media_icon.icon_alt} ${n.title}
${n.creationdate.formatted["dd-MM-yyyy HH:mm"]}
-
-
-
- +
+ + + - -
-
- - -
 
  -

- -

-
 
+
+ + +
 
  +

+ +

+
 
diff --git a/etc/producer/topicpage.template b/etc/producer/topicpage.template index e3728344..d30b89fd 100755 --- a/etc/producer/topicpage.template +++ b/etc/producer/topicpage.template @@ -1,184 +1,217 @@ - + ${config["Mir.Name"]} | ${topic.title} - - - - - - - - - - - - - - + - + - - - + + + + + +
- - - - -
((i))
- - - - -
 ${lang("general.start")}
-
- -
- - - - -
-    - - ${lang("general.menu.missionStatement")} >>   - ${lang("general.menu.moderation")} >>   - ${lang("general.menu.support")} >>   - ${lang("general.menu.mailinglists")} >>   - ${lang("general.menu.participate")} >> - -
- - - - - - - - - - - - - - - +
+ ${aorig.creator} (${lang("general.translatedby", i.creator)}), ${aorig.creationdate.formatted["dd-MM-yyyy - HH:mm"]}

+

+ + + + + + + + + + + ${aorig.to_media_images[0][ + + ${i.description_parsed} +
+ ${lang("general.readmore")} >> +

+ +
+ + + + + + + + + +
     -
-
- ${topic.title} -
-
-
     - -      -
     -
- - - + + - - - - -
-

+

+ + + + +
((i))
+ + + + +
 ${lang("general.start")}
+
+ +
+ + + + +
+    + + ${lang("general.menu.missionStatement")} >>   + ${lang("general.menu.moderation")} >>   + ${lang("general.menu.support")} >>   + ${lang("general.menu.mailinglists")} >>   + ${lang("general.menu.participate")} >> + +
+ + + + + + + + + + +
     +
+
+ ${topic.title} +
+
+
      + +      +
     +
+ + + + + + + + + + +
+

${s.title} -
- ${s.creator}, ${s.webdb_create_formatted}

-

- - - - - - - - - - - ${s.to_media_images[0][ - - ${s.description_parsed} -
- ${lang("general.readmore")} >> -

- -
-
- - - - -

+
+ ${sorig.creator} (${lang("general.translatedby", s.creator)}), ${sorig.creationdate.formatted["dd-MM-yyyy - HH:mm"]}

+

+ + + + + + + + + + + ${sorig.to_media_images[0][ + + ${s.description_parsed} +
+ ${lang("general.readmore")} >> +

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

${i.title} -
- ${i.creator}, ${i.webdb_create_formatted}

-

- - - - - - - - - - - ${i.to_media_images[0][ - - ${i.description_parsed} -
- ${lang("general.readmore")} >> -

- -
-
- - - << ${lang("general.page.prefix")} ${batch.previous.index} - - - | - - - ${lang("general.page.prefix")} ${batch.next.index} >> - - - -
     -
- ${lang("general.page.prefix")} ${batch.current.index} ${lang("general.page.infix")} - - -
-      -
-
 
     +   + +      +
+
 
+ + + + + + + + + +

     + + << ${lang("general.page.prefix")} ${batch.previous.index} + + + | + + + ${lang("general.page.prefix")} ${batch.next.index} >> + + +   + + +  


+ + +
diff --git a/etc/scripts/bundletool.sh b/etc/scripts/bundletool.sh new file mode 100755 index 00000000..88b0d511 --- /dev/null +++ b/etc/scripts/bundletool.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +HOME=`dirname $0` + +for j in $HOME/../../bin/mir/WEB-INF/lib/*.jar; do + if [ "$CLASSPATH" ] ; then + CLASSPATH="$CLASSPATH:$j" + else + CLASSPATH="$j" + fi +done +export CLASSPATH + +if [ "$JAVA_HOME" ] ; then + if [ -z "$JAVACMD" ]; then + JAVACMD="$JAVA_HOME/bin/java" + fi +fi + +$JAVACMD tool.BundleTool $* diff --git a/etc/scripts/produce.sh b/etc/scripts/produce.sh new file mode 100755 index 00000000..535c2899 --- /dev/null +++ b/etc/scripts/produce.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +echo -e "http://your.mir.home/yourmirwebapp/servlet/Mir?login=youruser&password=yourpassword&module=Producer&do=produce&producer=$1&verb=$2\n-accept_all_cookies\n-dump" | lynx - diff --git a/etc/scripts/reload.sh b/etc/scripts/reload.sh new file mode 100755 index 00000000..2737590f --- /dev/null +++ b/etc/scripts/reload.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +echo -e "http://your.mir.home/yourmirwebapp/servlet/Mir?login=youruser&password=yourpassword&module=Admin&do=reload\n-accept_all_cookies \n-dump" | lynx -