kms 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/kms/application/controllers/assets_controller.coffee.erb +1 -1
- data/app/assets/javascripts/kms/application/controllers/pages_controller.coffee.erb +3 -3
- data/app/assets/javascripts/kms/application/module.coffee +1 -1
- data/app/assets/javascripts/templates/settings.html.slim +5 -5
- data/app/assets/stylesheets/kms/custom.css.scss +3 -3
- data/app/controllers/kms/application_controller.rb +1 -1
- data/app/controllers/kms/public/pages_controller.rb +2 -4
- data/app/models/concerns/kms/compile_templates.rb +4 -0
- data/app/models/kms/page.rb +0 -3
- data/app/models/kms/template.rb +0 -3
- data/app/views/devise/passwords/edit.html.erb +22 -0
- data/app/views/devise/passwords/new.html.erb +15 -0
- data/config/locales/en.yml +18 -16
- data/config/locales/ru.yml +19 -17
- data/db/migrate/20141027065341_create_pages.rb +1 -1
- data/db/migrate/20141027083603_create_templates.rb +1 -1
- data/db/migrate/20141027083633_add_template_id_to_pages.rb +1 -1
- data/db/migrate/20141029145253_create_assets.rb +1 -1
- data/db/migrate/20141031125758_add_ancestry_to_pages.rb +1 -1
- data/db/migrate/20141031140308_devise_create_users.rb +1 -1
- data/db/migrate/20141119084306_add_fullpath_to_pages.rb +1 -1
- data/db/migrate/20141121112652_add_role_to_users.rb +1 -1
- data/db/migrate/20141127073902_add_templatable_fields_to_pages.rb +1 -1
- data/db/migrate/20141209132901_add_hidden_to_page.rb +1 -1
- data/db/migrate/20150209120632_add_position_to_kms_pages.rb +1 -1
- data/db/migrate/20160129100437_create_kms_snippets.rb +1 -1
- data/db/migrate/20160712094512_create_kms_settings.rb +1 -1
- data/lib/kms/engine.rb +1 -0
- data/lib/kms/version.rb +1 -1
- data/spec/internal/log/test.log +420 -0
- data/vendor/assets/bower.json +3 -1
- data/vendor/assets/bower_components/angular-cookies/LICENSE.md +21 -0
- data/vendor/assets/bower_components/angular-cookies/README.md +2 -11
- data/vendor/assets/bower_components/angular-cookies/angular-cookies.js +259 -143
- data/vendor/assets/bower_components/angular-cookies/angular-cookies.min.js +5 -4
- data/vendor/assets/bower_components/angular-cookies/angular-cookies.min.js.map +3 -3
- data/vendor/assets/bower_components/angular-cookies/bower.json +3 -2
- data/vendor/assets/bower_components/angular-cookies/index.js +2 -0
- data/vendor/assets/bower_components/angular-cookies/package.json +10 -3
- data/vendor/assets/bower_components/angular-sanitize/LICENSE.md +21 -0
- data/vendor/assets/bower_components/angular-sanitize/README.md +2 -11
- data/vendor/assets/bower_components/angular-sanitize/angular-sanitize.js +69 -64
- data/vendor/assets/bower_components/angular-sanitize/angular-sanitize.min.js +12 -12
- data/vendor/assets/bower_components/angular-sanitize/angular-sanitize.min.js.map +2 -2
- data/vendor/assets/bower_components/angular-sanitize/bower.json +3 -2
- data/vendor/assets/bower_components/angular-sanitize/index.js +2 -0
- data/vendor/assets/bower_components/angular-sanitize/package.json +10 -3
- data/vendor/assets/bower_components/angular/LICENSE.md +21 -0
- data/vendor/assets/bower_components/angular/README.md +2 -5
- data/vendor/assets/bower_components/angular/angular-csp.css +8 -0
- data/vendor/assets/bower_components/angular/angular.js +11011 -6910
- data/vendor/assets/bower_components/angular/angular.min.js +297 -244
- data/vendor/assets/bower_components/angular/angular.min.js.gzip +0 -0
- data/vendor/assets/bower_components/angular/angular.min.js.map +3 -3
- data/vendor/assets/bower_components/angular/bower.json +2 -1
- data/vendor/assets/bower_components/angular/index.js +2 -0
- data/vendor/assets/bower_components/angular/package.json +2 -2
- metadata +11 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f3376e353187d1fcbd9033b374380f744467c2e3
|
|
4
|
+
data.tar.gz: ac386e50234dfa6e1c5830f1193412a4c8e8957b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c9108885e35beeaea1ed0f8bd2b4b86da47814736ae204c194385e9b2a0aff4436406ce0c06a7f01c48e6855086959e51d2dffe207e98fb2a68bdf441ea564e5
|
|
7
|
+
data.tar.gz: bc3e1331a225a5bfe633dfd04d8fa2a4ebb180bc17b57ce5138a7b7aacd528c8d9530a565163d64501b5b429d916187cf9d2c9cf01c2a7c07da17faa38f9c9ff
|
|
@@ -43,7 +43,7 @@ AssetsController = ($scope, $state, $cookieStore, $cookies, Restangular, $stateP
|
|
|
43
43
|
$scope.assets[content_type] = _.without($scope.assets[content_type], asset)
|
|
44
44
|
|
|
45
45
|
$scope.setHeaders = ->
|
|
46
|
-
'X-XSRF-TOKEN': $cookies
|
|
46
|
+
'X-XSRF-TOKEN': $cookies.get("XSRF-TOKEN") # call func for getting a cookie
|
|
47
47
|
|
|
48
48
|
$scope.getMode = (asset)->
|
|
49
49
|
if /javascript/.test(asset.content_type)
|
|
@@ -35,6 +35,9 @@ PagesController = ($scope, $state, $cookieStore, Restangular, $stateParams, Aler
|
|
|
35
35
|
if $stateParams.id
|
|
36
36
|
$scope.store.get($stateParams.id).then (page)->
|
|
37
37
|
$scope.page = page
|
|
38
|
+
unless $scope.page.parent_id
|
|
39
|
+
index_page = _.select($scope.pages, (p) -> p.slug == 'index')[0]
|
|
40
|
+
$scope.page.parent_id = (if index_page then index_page.id else null)
|
|
38
41
|
else
|
|
39
42
|
$scope.page = {}
|
|
40
43
|
|
|
@@ -59,9 +62,6 @@ PagesController = ($scope, $state, $cookieStore, Restangular, $stateParams, Aler
|
|
|
59
62
|
$scope.pages = $scope.exceptCurrentPage($scope.pages)
|
|
60
63
|
$scope.parentPages = $scope.exceptCurrentPage($scope.parentPages)
|
|
61
64
|
$scope.page.slug = "index" if $scope.pages.length == 0
|
|
62
|
-
unless $scope.page.parent_id
|
|
63
|
-
index_page = _.select($scope.pages, (p) -> p.slug == 'index')[0]
|
|
64
|
-
$scope.page.parent_id = (if index_page then index_page.id else null)
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
$scope.create = ->
|
|
@@ -20,6 +20,6 @@ angular.module('KMS').config ['$httpProvider', '$locationProvider', 'Restangular
|
|
|
20
20
|
]
|
|
21
21
|
.run ['$http', '$cookies', 'editableOptions', '$rootScope', '$state', ($http, $cookies, editableOptions, $rootScope, $state) ->
|
|
22
22
|
$rootScope.$state = $state
|
|
23
|
-
$http.defaults.headers.common['X-XSRF-TOKEN'] = $cookies
|
|
23
|
+
$http.defaults.headers.common['X-XSRF-TOKEN'] = $cookies.get('XSRF-TOKEN')
|
|
24
24
|
editableOptions.theme = 'bs3'
|
|
25
25
|
]
|
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
a href="##{engine_class.engine_name}" = engine_class.engine_name.humanize
|
|
7
7
|
div class="tab-content"
|
|
8
8
|
- if Kms::SettingsService.templates.present?
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
9
|
+
- Kms::SettingsService.templates.each_with_index do |(engine_class, templates), index|
|
|
10
|
+
div role="tabpanel" class="tab-pane" ng-class="{active: isActiveTab(#{index})}" id=engine_class.engine_name
|
|
11
|
+
form role="form" ng-submit="update()"
|
|
12
12
|
.widget
|
|
13
13
|
.widget-body.no-padding
|
|
14
14
|
- templates.each do |template|
|
|
15
15
|
.message
|
|
16
16
|
ng-include src="'#{template}'"
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
.btn-group
|
|
18
|
+
button.btn.btn-default type="submit" = I18n.t(:update_settings)
|
|
19
19
|
- else
|
|
20
20
|
= I18n.t(:no_settings)
|
|
@@ -5,7 +5,7 @@ module Kms
|
|
|
5
5
|
# For APIs, you may want to use :null_session instead.
|
|
6
6
|
protect_from_forgery with: :exception
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
after_action :set_csrf_cookie_for_ng
|
|
9
9
|
|
|
10
10
|
def set_csrf_cookie_for_ng
|
|
11
11
|
cookies['XSRF-TOKEN'] = form_authenticity_token if protect_against_forgery?
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
module Kms
|
|
2
2
|
class Public::PagesController < ActionController::Base
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
before_action :eval_externals
|
|
5
5
|
|
|
6
6
|
def show
|
|
7
7
|
page_result = Kms.template_manager.render(@page.register_id, @externals)
|
|
8
|
-
# apply typograph to page content
|
|
9
|
-
#page_result = EvilFront::Russian.typograph_html(page_result)
|
|
10
8
|
result = Kms.template_manager.render(@template.register_id, @externals.
|
|
11
9
|
merge(_inner_template: page_result))
|
|
12
10
|
|
|
13
|
-
render
|
|
11
|
+
render html: result.html_safe
|
|
14
12
|
end
|
|
15
13
|
|
|
16
14
|
protected
|
data/app/models/kms/page.rb
CHANGED
data/app/models/kms/template.rb
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<div class="wrapper">
|
|
2
|
+
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { class: 'form-signin', method: :put }) do |f| %>
|
|
4
|
+
<h2 class="form-signin-heading">KMS</h2>
|
|
5
|
+
<h4>Change your password</h4>
|
|
6
|
+
<%= devise_error_messages! %>
|
|
7
|
+
<%= f.hidden_field :reset_password_token %>
|
|
8
|
+
|
|
9
|
+
<% if @minimum_password_length %>
|
|
10
|
+
<em>(<%= @minimum_password_length %> characters minimum)</em><br />
|
|
11
|
+
<% end %>
|
|
12
|
+
<%= f.password_field :password, autofocus: true, autocomplete: "off", class: 'form-control', placeholder: 'Password' %>
|
|
13
|
+
|
|
14
|
+
<%= f.password_field :password_confirmation, autocomplete: "off", class: 'form-control', placeholder: 'Password confirmation' %>
|
|
15
|
+
|
|
16
|
+
<%= f.submit "Change my password", class: "btn btn-lg btn-primary btn-block" %>
|
|
17
|
+
|
|
18
|
+
<br>
|
|
19
|
+
<%= render "devise/shared/links" %>
|
|
20
|
+
<% end %>
|
|
21
|
+
|
|
22
|
+
</div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<div class="wrapper">
|
|
2
|
+
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { class: 'form-signin', method: :post }) do |f| %>
|
|
3
|
+
<h2 class="form-signin-heading">KMS</h2>
|
|
4
|
+
<%= devise_error_messages! %>
|
|
5
|
+
|
|
6
|
+
<h4>Forgot your password?</h4>
|
|
7
|
+
<%= f.email_field :email, autofocus: true, class: 'form-control', placeholder: 'Email' %>
|
|
8
|
+
<br>
|
|
9
|
+
<%= f.submit "Send reset password instructions", class: "btn btn-lg btn-primary btn-block" %>
|
|
10
|
+
<br>
|
|
11
|
+
<%= render "devise/shared/links" %>
|
|
12
|
+
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
</div>
|
data/config/locales/en.yml
CHANGED
|
@@ -50,29 +50,31 @@ en:
|
|
|
50
50
|
tags_title: "Tags"
|
|
51
51
|
filters_title: "Filters"
|
|
52
52
|
variables_title: "Variables"
|
|
53
|
+
endpoints_title: "Endpoints"
|
|
53
54
|
property: "Property of"
|
|
55
|
+
parameter: "Parameter for"
|
|
54
56
|
description: "Description"
|
|
55
57
|
specification: "Detailed Liquor specification"
|
|
56
58
|
tags:
|
|
57
59
|
declare:
|
|
58
|
-
main_description: "Tag declare could be used for variables declaration and initial value setup in this form
|
|
60
|
+
main_description: "Tag declare could be used for variables declaration and initial value setup in this form:"
|
|
59
61
|
additional_description: "Difference between declare and assign tag - with declare you can create variables with the same names but in different scopes."
|
|
60
62
|
assign:
|
|
61
|
-
main_description: "Tag assign could be used for variables declaration and its initial value setup in this form
|
|
63
|
+
main_description: "Tag assign could be used for variables declaration and its initial value setup in this form:"
|
|
62
64
|
if:
|
|
63
|
-
main_description: "Tag if is a standard conditional statement and has this form
|
|
65
|
+
main_description: "Tag if is a standard conditional statement and has this form:"
|
|
64
66
|
unless:
|
|
65
|
-
main_description: 'Tag unless executes its "body" if conditional expression results in false or null
|
|
67
|
+
main_description: 'Tag unless executes its "body" if conditional expression results in false or null:'
|
|
66
68
|
for:
|
|
67
69
|
main_description: "Tag for is a standard cycle statement and has this form: "
|
|
68
70
|
capture:
|
|
69
|
-
main_description: "Tag capture runs code and saves result in var. If var already contained value, capture changes it
|
|
71
|
+
main_description: "Tag capture runs code and saves result in var. If var already contained value, capture changes it:"
|
|
70
72
|
content_for:
|
|
71
|
-
main_description: "Tag content_for runs code and saves result in some handle
|
|
73
|
+
main_description: "Tag content_for runs code and saves result in some handle:"
|
|
72
74
|
yield:
|
|
73
|
-
main_description: "Tag yield has 3 forms. In the simples case (without arguments) it inserts content of internal template (Page content in terms of this CMS). If string with handle was setup with {% content_for %}, then yield returns this string. If no string with handle, yield returns result of if_none block execution, if such block was specified, or just empty string
|
|
75
|
+
main_description: "Tag yield has 3 forms. In the simples case (without arguments) it inserts content of internal template (Page content in terms of this CMS). If string with handle was setup with {% content_for %}, then yield returns this string. If no string with handle, yield returns result of if_none block execution, if such block was specified, or just empty string:"
|
|
74
76
|
include:
|
|
75
|
-
main_description: 'Tag include includes content of Snippet into template. The only argument of include - Snippet ID (field "Slug/ID" that you need to setup on Snippet creation in "Snippets")
|
|
77
|
+
main_description: 'Tag include includes content of Snippet into template. The only argument of include - Snippet ID (field "Slug/ID" that you need to setup on Snippet creation in "Snippets"):'
|
|
76
78
|
variables:
|
|
77
79
|
var_loop:
|
|
78
80
|
main_description: 'Variable giving access to current state of cycle/iteration. Can be used only in "for" cycle. var_loop - common name, for accessing actual cycle variable you need to concatenate cycle variable name and "_loop". Example:'
|
|
@@ -80,7 +82,7 @@ en:
|
|
|
80
82
|
length: "Iterations count (collection size)"
|
|
81
83
|
index: "Current iteration index - index of element"
|
|
82
84
|
page:
|
|
83
|
-
main_description: 'Variable "page" can be accessed in any template and references to current page
|
|
85
|
+
main_description: 'Variable "page" can be accessed in any template and references to current page:'
|
|
84
86
|
properties:
|
|
85
87
|
slug: 'Value of "Slug" field'
|
|
86
88
|
fullpath: 'Page fullpath'
|
|
@@ -93,7 +95,7 @@ en:
|
|
|
93
95
|
index:
|
|
94
96
|
main_description: 'Variable "index" accessible in templates and references to root page (with "index" slug). Object properties are the same as for "page" variable.'
|
|
95
97
|
request:
|
|
96
|
-
main_description: 'Variable "request" gives an access to some properties of current request
|
|
98
|
+
main_description: 'Variable "request" gives an access to some properties of current request:'
|
|
97
99
|
properties:
|
|
98
100
|
path: 'Returns request relative path'
|
|
99
101
|
url: 'Returns request URL'
|
|
@@ -114,17 +116,17 @@ en:
|
|
|
114
116
|
link: 'Link to page, containing query'
|
|
115
117
|
filters:
|
|
116
118
|
asset_path:
|
|
117
|
-
main_description: 'Filter "asset_path" allows to get a relative path to any file from "Assets" section by filename
|
|
119
|
+
main_description: 'Filter "asset_path" allows to get a relative path to any file from "Assets" section by filename:'
|
|
118
120
|
asset_tag:
|
|
119
|
-
main_description: 'Filter "asset_tag" allows to include javascript and css files, uploaded to "Assets" section
|
|
121
|
+
main_description: 'Filter "asset_tag" allows to include javascript and css files, uploaded to "Assets" section:'
|
|
120
122
|
resize:
|
|
121
|
-
main_description: 'This function/filter helps to change image size on-the-fly. For this filter you need to use absolute URL of image and "format" argument. Returns also URL. To get absolute URL (having only relative - any asset from "Assets") you should use "request.base_url"
|
|
123
|
+
main_description: 'This function/filter helps to change image size on-the-fly. For this filter you need to use absolute URL of image and "format" argument. Returns also URL. To get absolute URL (having only relative - any asset from "Assets") you should use "request.base_url":'
|
|
122
124
|
add_watermark:
|
|
123
|
-
main_description: 'It allows to add watermark to image. You need image URL and 3 arguments: "image" - watermark image (watermark), "dissolve" - transparency and "position" - position. Returns also URL
|
|
125
|
+
main_description: 'It allows to add watermark to image. You need image URL and 3 arguments: "image" - watermark image (watermark), "dissolve" - transparency and "position" - position. Returns also URL:'
|
|
124
126
|
ends_with:
|
|
125
|
-
main_description: 'Allows to check if string ends with some pattern
|
|
127
|
+
main_description: 'Allows to check if string ends with some pattern:'
|
|
126
128
|
currency:
|
|
127
|
-
main_description: 'Formats currency values. Possible options: precision, delimiter, separator, format, unit
|
|
129
|
+
main_description: 'Formats currency values. Possible options: precision, delimiter, separator, format, unit:'
|
|
128
130
|
activerecord:
|
|
129
131
|
models:
|
|
130
132
|
kms/template:
|
data/config/locales/ru.yml
CHANGED
|
@@ -50,29 +50,31 @@ ru:
|
|
|
50
50
|
tags_title: "Тэги"
|
|
51
51
|
filters_title: "Фильтры"
|
|
52
52
|
variables_title: "Переменные"
|
|
53
|
+
endpoints_title: "Запросы"
|
|
53
54
|
property: "Свойство"
|
|
55
|
+
parameter: "Параметр для"
|
|
54
56
|
description: "Описание"
|
|
55
57
|
specification: "Подробная спецификация Liquor"
|
|
56
58
|
tags:
|
|
57
59
|
declare:
|
|
58
|
-
main_description: "Тэг declare может быть использован для объявления и задания значений переменным в следующей
|
|
60
|
+
main_description: "Тэг declare может быть использован для объявления и задания значений переменным в следующей форме:"
|
|
59
61
|
additional_description: "Отличие от assign в том, что с declare можно создавать переменные с одинаковыми именами, но в разных областях видимости."
|
|
60
62
|
assign:
|
|
61
|
-
main_description: "Тэг assign может быть использован для объявления и задания значений переменным в следующей
|
|
63
|
+
main_description: "Тэг assign может быть использован для объявления и задания значений переменным в следующей форме:"
|
|
62
64
|
if:
|
|
63
|
-
main_description: "Тэг if является стандартным условным оператором и имеет следующую
|
|
65
|
+
main_description: "Тэг if является стандартным условным оператором и имеет следующую форму:"
|
|
64
66
|
unless:
|
|
65
|
-
main_description: 'Тэг unless выполняет "тело" условия, если результат выражения - false или null
|
|
67
|
+
main_description: 'Тэг unless выполняет "тело" условия, если результат выражения - false или null:'
|
|
66
68
|
for:
|
|
67
|
-
main_description: "Тэг for является стандартным циклическим оператором и имеет следующую
|
|
69
|
+
main_description: "Тэг for является стандартным циклическим оператором и имеет следующую форму:"
|
|
68
70
|
capture:
|
|
69
|
-
main_description: "Тэг capture выполняет code и сохраняет результат в var. Если var уже имела значение, capture изменяет
|
|
71
|
+
main_description: "Тэг capture выполняет code и сохраняет результат в var. Если var уже имела значение, capture изменяет его:"
|
|
70
72
|
content_for:
|
|
71
|
-
main_description: "Тэг content_for выполняет code и сохраняет результат в handle
|
|
73
|
+
main_description: "Тэг content_for выполняет code и сохраняет результат в handle:"
|
|
72
74
|
yield:
|
|
73
|
-
main_description: "Тэг yield имеет 3 формы написания. В самом простом случае (без аргументов) тэг вставляет содержимое внутреннего шаблона (в данной CMS это страница). Если строка с handle была задана с помощью {% content_for %}, тогда yield возвращает эту строку. Если не было задано строки с этим handle, yield либо возвращает результат выполнения блока if_none, если он задан, или пустую
|
|
75
|
+
main_description: "Тэг yield имеет 3 формы написания. В самом простом случае (без аргументов) тэг вставляет содержимое внутреннего шаблона (в данной CMS это страница). Если строка с handle была задана с помощью {% content_for %}, тогда yield возвращает эту строку. Если не было задано строки с этим handle, yield либо возвращает результат выполнения блока if_none, если он задан, или пустую строку:"
|
|
74
76
|
include:
|
|
75
|
-
main_description: 'Тэг include включает в шаблон содержимое Сниппета. Единственный аргумент include - это идентификатор Сниппета (поле "Идентификатор", указанное при создании сниппета в разделе "Сниппеты")
|
|
77
|
+
main_description: 'Тэг include включает в шаблон содержимое Сниппета. Единственный аргумент include - это идентификатор Сниппета (поле "Идентификатор", указанное при создании сниппета в разделе "Сниппеты"):'
|
|
76
78
|
variables:
|
|
77
79
|
var_loop:
|
|
78
80
|
main_description: 'Переменная, предоставляющая доступ к текущему состоянию цикла. Может быть использована только внутри цикла for. var_loop - обобщённое имя, для получения настоящего имени переменной нужно сконкатенировать название переменной цикла и "_loop". Например:'
|
|
@@ -80,7 +82,7 @@ ru:
|
|
|
80
82
|
length: "Количество итераций (размер коллекции)"
|
|
81
83
|
index: "Номер текущей итерации - индекс элемента"
|
|
82
84
|
page:
|
|
83
|
-
main_description: 'Переменная page доступна в шаблонах и является ссылкой на текущую отображаемую
|
|
85
|
+
main_description: 'Переменная page доступна в шаблонах и является ссылкой на текущую отображаемую страницу:'
|
|
84
86
|
properties:
|
|
85
87
|
slug: 'Значение поля "Ссылка" страницы'
|
|
86
88
|
fullpath: 'Полный путь страницы'
|
|
@@ -93,7 +95,7 @@ ru:
|
|
|
93
95
|
index:
|
|
94
96
|
main_description: 'Переменная index доступна в шаблонах и является ссылкой на корневую страницу сайта (со ссылкой index). Свойства объекта такие же, как у переменной page.'
|
|
95
97
|
request:
|
|
96
|
-
main_description: 'Переменная request предоставляет доступ к некоторым параметрам текущего
|
|
98
|
+
main_description: 'Переменная request предоставляет доступ к некоторым параметрам текущего запроса:'
|
|
97
99
|
properties:
|
|
98
100
|
path: 'Возвращает относительный путь запроса'
|
|
99
101
|
url: 'Возвращает URL запроса'
|
|
@@ -114,17 +116,17 @@ ru:
|
|
|
114
116
|
link: 'Ссылка на страницу, содержащую искомый запрос'
|
|
115
117
|
filters:
|
|
116
118
|
asset_path:
|
|
117
|
-
main_description: 'Фильтр asset_path позволяет получить путь к файлу из раздела "Файлы" по имени
|
|
119
|
+
main_description: 'Фильтр asset_path позволяет получить путь к файлу из раздела "Файлы" по имени файла:'
|
|
118
120
|
asset_tag:
|
|
119
|
-
main_description: 'Фильтр asset_tag позволяет подключать javascript и css файлы, загруженные в раздел "Файлы"
|
|
121
|
+
main_description: 'Фильтр asset_tag позволяет подключать javascript и css файлы, загруженные в раздел "Файлы":'
|
|
120
122
|
resize:
|
|
121
|
-
main_description: 'Функция выполняет изменение размеров изображения. Для функции необходим абсолютный URL изображения и аргумент "format", на выходе также URL. Для получения абсолютного URL следует использовать request.base_url
|
|
123
|
+
main_description: 'Функция выполняет изменение размеров изображения. Для функции необходим абсолютный URL изображения и аргумент "format", на выходе также URL. Для получения абсолютного URL следует использовать request.base_url:'
|
|
122
124
|
add_watermark:
|
|
123
|
-
main_description: 'Функция выполняет добавление watermark к изображению. Для функции необходим URL изображения и 3 аргумента "image" - изображение для наложения (watermark), "dissolve" - прозрачность и "position" - позиция, на выходе также URL
|
|
125
|
+
main_description: 'Функция выполняет добавление watermark к изображению. Для функции необходим URL изображения и 3 аргумента "image" - изображение для наложения (watermark), "dissolve" - прозрачность и "position" - позиция, на выходе также URL:'
|
|
124
126
|
ends_with:
|
|
125
|
-
main_description: 'Позволяет проверить, оканчивается строка определённым паттерном или
|
|
127
|
+
main_description: 'Позволяет проверить, оканчивается строка определённым паттерном или нет:'
|
|
126
128
|
currency:
|
|
127
|
-
main_description: 'Форматирование полей, хранящих денежные значения. Возможные опции - precision, delimiter, separator, format, unit
|
|
129
|
+
main_description: 'Форматирование полей, хранящих денежные значения. Возможные опции - precision, delimiter, separator, format, unit:'
|
|
128
130
|
activerecord:
|
|
129
131
|
models:
|
|
130
132
|
kms/template:
|