openpod_web.ex 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. defmodule OpenpodWeb do
  2. @moduledoc """
  3. The entrypoint for defining your web interface, such
  4. as controllers, views, channels and so on.
  5. This can be used in your application as:
  6. use OpenpodWeb, :controller
  7. use OpenpodWeb, :view
  8. The definitions below will be executed for every view,
  9. controller, etc, so keep them short and clean, focused
  10. on imports, uses and aliases.
  11. Do NOT define functions inside the quoted expressions
  12. below. Instead, define any helper function in modules
  13. and import those modules here.
  14. """
  15. def controller do
  16. quote do
  17. use Phoenix.Controller, namespace: OpenpodWeb
  18. import Plug.Conn
  19. import OpenpodWeb.Gettext
  20. alias OpenpodWeb.Router.Helpers, as: Routes
  21. end
  22. end
  23. def view do
  24. quote do
  25. use Phoenix.View,
  26. root: "lib/openpod_web/templates",
  27. namespace: OpenpodWeb
  28. # Import convenience functions from controllers
  29. import Phoenix.Controller,
  30. only: [get_flash: 1, get_flash: 2, view_module: 1, view_template: 1]
  31. # Include shared imports and aliases for views
  32. unquote(view_helpers())
  33. end
  34. end
  35. def router do
  36. quote do
  37. use Phoenix.Router
  38. import Plug.Conn
  39. import Phoenix.Controller
  40. end
  41. end
  42. def channel do
  43. quote do
  44. use Phoenix.Channel
  45. import OpenpodWeb.Gettext
  46. end
  47. end
  48. defp view_helpers do
  49. quote do
  50. # Use all HTML functionality (forms, tags, etc)
  51. use Phoenix.HTML
  52. use PhoenixHtmlSanitizer, :basic_html
  53. # Import basic rendering functionality (render, render_layout, etc)
  54. import Phoenix.View
  55. import OpenpodWeb.ErrorHelpers
  56. import OpenpodWeb.Gettext
  57. alias OpenpodWeb.Router.Helpers, as: Routes
  58. end
  59. end
  60. @doc """
  61. When used, dispatch to the appropriate controller/view/etc.
  62. """
  63. defmacro __using__(which) when is_atom(which) do
  64. apply(__MODULE__, which, [])
  65. end
  66. end