Skip to content

Commit

Permalink
Sitemap fix, configurable media directory
Browse files Browse the repository at this point in the history
  • Loading branch information
metaxmx committed Dec 31, 2015
1 parent 3face23 commit f87e62d
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 5 deletions.
3 changes: 3 additions & 0 deletions app/admin/AdminTasks.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import util.renderers.RenderContext
import util.renderers.RenderTypeBlog
import controllers.routes
import java.nio.file.Files
import play.api.Configuration

/**
* Admin tasks.
Expand All @@ -40,6 +41,8 @@ object AdminTasks extends Logging {
val mdFormat = MarkdownContentRenderer.renderFormat

lazy val config = ConfigFactory.defaultApplication()

implicit lazy val playConfig = Configuration(config)

def dbConfig = DatabaseConfig.forConfig[MySQLDriver](path = "slick.dbs.default", config = config)

Expand Down
2 changes: 2 additions & 0 deletions app/controllers/AdminController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import scala.util.Failure
import scala.util.Success
import util.renderers.ContentWithAbstract
import models.Attachment
import play.api.Play.current

@Singleton
class AdminController @Inject() (blogService: BlogService, val messagesApi: MessagesApi) extends AbstractController with I18nSupport {
Expand Down Expand Up @@ -262,6 +263,7 @@ class AdminController @Inject() (blogService: BlogService, val messagesApi: Mess
}

private def render(blogEntry: BlogEntry, attachments: Seq[Attachment], content: String) = {
implicit val config = current.configuration
implicit val renderContext = RenderContext.blogRenderContext(blogEntry, attachments)
ContentRenderers.render(content)
}
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/SiteMapController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class SiteMapController @Inject() (blogService: BlogService) extends AbstractCon
<changefreq>{ url.changefreq }</changefreq>
{
if (url.changed.isDefined) {
<changed>{ url.lastmod.get }</changed>
<lastmod>{ url.lastmod.get }</lastmod>
}
}
<priority>{ url.priority }</priority>
Expand Down
12 changes: 8 additions & 4 deletions app/util/renderers/ContentRenderer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import play.api.mvc.Call
import util.renderers.post.PostRenderers
import util.renderers.pre.PreRenderers
import models.Attachment
import play.api.Configuration

case class ContentWithAbstract(abstractText: String, content: String) {

Expand All @@ -24,13 +25,16 @@ case class RenderContext(renderType: RenderType, format: String, attachments: Se

object RenderContext {

val blogAttachmentRoot = new File("media/blog")
def blogAttachmentRoot(implicit configuration: Configuration) =
new File(configuration.getString("media.path").getOrElse("media") + "/blog")

def blogAttachmentDestination(blogId: Int) = new File(blogAttachmentRoot, blogId.toString)
def blogAttachmentDestination(blogId: Int)(implicit configuration: Configuration) =
new File(blogAttachmentRoot, blogId.toString)

def blogAttachmentFolder(blogId: Int) = Option(blogAttachmentDestination(blogId)) filter { _.isDirectory }
def blogAttachmentFolder(blogId: Int)(implicit configuration: Configuration) =
Option(blogAttachmentDestination(blogId)) filter { _.isDirectory }

def blogRenderContext(blog: BlogEntry, attachments: Seq[Attachment]): RenderContext =
def blogRenderContext(blog: BlogEntry, attachments: Seq[Attachment])(implicit configuration: Configuration): RenderContext =
RenderContext(RenderTypeBlog, blog.contentFormat, attachments,
blogAttachmentFolder(blog.id), routes.BlogController.showBlogEntry(blog.url),
routes.BlogController.attachment(blog.url, _), routes.BlogController.attachmentGallery(blog.url, _),
Expand Down
1 change: 1 addition & 0 deletions conf/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ slick.dbs.default = {
# Media
# ~~~~~
media {
# !!! This connection parameters must be overwritten in instance.conf !!!
path = media
}

Expand Down

0 comments on commit f87e62d

Please sign in to comment.