=0;j--)a.dom.remove(i[j],1);q.moveToBookmark(m)}function c(){var b=this;a.on("VisualChars",function(a){b.active(a.state)})}var d,e=this;a.addCommand("mceVisualChars",b),a.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:c}),a.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:c,selectable:!0,context:"view",prependToContext:!0}),a.on("beforegetcontent",function(a){d&&"raw"!=a.format&&!a.draft&&(d=!0,b(!1))})});
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/plugins/wordcount/plugin.min.js:
--------------------------------------------------------------------------------
1 | tinymce.PluginManager.add("wordcount",function(a){function b(){a.theme.panel.find("#wordcount").text(["Words: {0}",e.getCount()])}var c,d,e=this;c=a.getParam("wordcount_countregex",/[\w\u2019\x27\-\u00C0-\u1FFF]+/g),d=a.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),a.on("init",function(){var c=a.theme.panel&&a.theme.panel.find("#statusbar")[0];c&&window.setTimeout(function(){c.insert({type:"label",name:"wordcount",text:["Words: {0}",e.getCount()],classes:"wordcount",disabled:a.settings.readonly},0),a.on("setcontent beforeaddundo",b),a.on("keyup",function(a){32==a.keyCode&&b()})},0)}),e.getCount=function(){var b=a.getContent({format:"raw"}),e=0;if(b){b=b.replace(/\.\.\./g," "),b=b.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," "),b=b.replace(/(\w+)(?[a-z0-9]+;)+(\w+)/i,"$1$3").replace(/&.+?;/g," "),b=b.replace(d,"");var f=b.match(c);f&&(e=f.length)}return e}});
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/content.inline.min.css:
--------------------------------------------------------------------------------
1 | .mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid red;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid green;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333}
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/content.min.css:
--------------------------------------------------------------------------------
1 | body{background-color:#FFF;color:#000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px}.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid red;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid green;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333}
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce-small.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce-small.eot
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce-small.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce-small.woff
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce.eot
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce.ttf
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/fonts/tinymce.woff
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/img/anchor.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/img/anchor.gif
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/img/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/img/loader.gif
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/img/object.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/img/object.gif
--------------------------------------------------------------------------------
/Resources/public/js/tinymce/skins/lightgray/img/trans.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/js/tinymce/skins/lightgray/img/trans.gif
--------------------------------------------------------------------------------
/Resources/public/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Procurious",
3 | "version": "1.0.0",
4 | "description": "hello!",
5 | "main": "gulpfile.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "Dusan Stojanovic, dusan@etondigital.com",
10 | "license": "ISC",
11 | "repository": {
12 | "type": "git",
13 | "url": "https://github.com/"
14 | },
15 | "devDependencies": {
16 | "del": "^1.1.0",
17 | "gulp": "^3.8.10",
18 | "gulp-autoprefixer": "^2.0.0",
19 | "gulp-bless": "^3.0.1",
20 | "gulp-cache": "^0.2.4",
21 | "gulp-compass": "^2.0.3",
22 | "gulp-concat": "^2.4.2",
23 | "gulp-csso": "^0.2.9",
24 | "gulp-imagemin": "^2.0.0",
25 | "gulp-jshint": "^1.9.0",
26 | "gulp-livereload": "^3.0.2",
27 | "gulp-notify": "^2.1.0",
28 | "gulp-plumber": "^0.6.6",
29 | "gulp-rename": "^1.2.0",
30 | "gulp-uglify": "^1.0.2",
31 | "gulp-uncss": "^1.0.1"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Resources/public/scss/_components.articles.scss:
--------------------------------------------------------------------------------
1 | .c-article {
2 | background-color: white;
3 | padding: 20px;
4 | margin-top: 20px;
5 | &:not(:first-child) { margin-top: 30px; }
6 | &__full {
7 | margin-left: -20px;
8 | margin-right: -20px;
9 | }
10 | }
11 |
12 |
13 | .img-up {
14 | position: relative;
15 | width: 88px;
16 | height: 66px;
17 | img {
18 | max-height: 100%;
19 | width: auto;
20 | margin: 0 auto;
21 | }
22 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_components.discussions.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Holycode-Products/EDBlogBundle/bce97b1991b6201733aa7459712c840d92a96ccc/Resources/public/scss/_components.discussions.scss
--------------------------------------------------------------------------------
/Resources/public/scss/_components.dropdowns.scss:
--------------------------------------------------------------------------------
1 | // Dropdown keep open and style checkboxes
2 | .keep-open {
3 | position: relative;
4 | .dropdown-toggler {
5 | &:hover {
6 | cursor: pointer;
7 | }
8 | }
9 | .dropdown-toggled {
10 | display: block;
11 | margin-top: -1px;
12 | border: solid 1px $light-grey;
13 | @include box-shadow(0 0 1px rgba(0,0,0,.175));
14 | @include border-radius(0);
15 | max-height: 240px;
16 | overflow: auto;
17 | }
18 | &.wide {
19 | .dropdown-toggled {
20 | width: 100%;
21 | }
22 | }
23 | label {
24 | width: 100%;
25 | margin-bottom: 0;
26 | color: #030303;
27 | font-weight: 400;
28 | padding: 4px 15px 4px 33px !important;
29 | white-space: normal !important;
30 | text-indent: -18px;
31 | &:hover {
32 | cursor: pointer;
33 | background-color: $blue-btn !important;
34 | }
35 | &.level {
36 | &--1 {padding-left: 51px !important;}
37 | &--2 {padding-left: 69px !important;}
38 | &--3 {padding-left: 87px !important;}
39 | &--4 {padding-left: 105px !important;}
40 | }
41 | }
42 | input {
43 | cursor: pointer;
44 | }
45 | .select-mask {
46 | position: absolute;
47 | width: 100%;
48 | height: 100%;
49 | background: white;
50 | filter: alpha(opacity=0);
51 | opacity: 0;
52 | }
53 | .chck-child {
54 | label {
55 | padding-left: 51px !important;
56 | }
57 | }
58 | select.form-control {
59 | height: 48px;
60 | }
61 | }
62 | .autocomplete-suggestion{
63 | padding-left: 10px;
64 | cursor: pointer;
65 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_components.forms.scss:
--------------------------------------------------------------------------------
1 | // Login form
2 | .login-form {
3 | @include bp(lap) {
4 | width: 420px;
5 | margin: auto;
6 | }
7 | .form-control {
8 | font-size: 14px;
9 | }
10 | .form-control:-moz-placeholder {
11 | font-size: 14px;
12 | }
13 | .form-control::-moz-placeholder {
14 | font-size: 14px;
15 | }
16 | .form-control:-ms-input-placeholder {
17 | font-size: 14px;
18 | }
19 | .form-control::-webkit-input-placeholder {
20 | font-size: 14px;
21 | }
22 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_components.other.scss:
--------------------------------------------------------------------------------
1 | // Used for insert media
2 | .b-upload {
3 | cursor: pointer;
4 | background: $blue-btn;
5 | border: solid 1px #539bc6;
6 | color: white;
7 | padding: 10px 0 15px;
8 | margin-bottom: 30px;
9 | transition-property: background;
10 | transition-duration: 0.3s;
11 | &:hover {
12 | background: #55ade3;
13 | }
14 | .fa-camera {
15 | position: relative;
16 | top: 4px;
17 | }
18 | .wording div {
19 | text-align: center;
20 | @include bp(tab) {
21 | text-align: left;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_components.sidebar.scss:
--------------------------------------------------------------------------------
1 | .c-sidebar {
2 | margin-top: 15px;
3 | &:not(:first-child) { margin-top: 37px; }
4 | &__title {
5 | font-size: 13px;
6 | font-weight: bold;
7 | text-transform: uppercase;
8 | color: #93a0a8;
9 | margin-bottom: 15px;
10 | }
11 | &__list {
12 | a:not(.btn) {
13 | display: block;
14 | color: $app-blue;
15 | margin-bottom: 6px;
16 | margin-left: 15px;
17 | &.leader {
18 | font-size: 15px;
19 | font-weight: bold;
20 | margin-left: 0;
21 | }
22 | &.hover, &.active {
23 | color: black;
24 | }
25 | }
26 | &__el1 {
27 | margin-bottom: 8px;
28 | margin-right: 5px;
29 | float: left;
30 | @include bp(tab) {
31 | float: none;
32 | }
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_components.togglers.scss:
--------------------------------------------------------------------------------
1 | // Toggles
2 | // used everywhere
3 | .toggle--close {
4 | position: absolute;
5 | top: 5px;
6 | right: 9px;
7 | color: #999;
8 | &:hover {color: #333;}
9 | }
10 | // EB
11 | .toggle--remove {
12 | position: absolute;
13 | width: 20px;
14 | height: 20px;
15 | background: $blog-bg-grey;
16 | color: white;
17 | border-radius: 100%;
18 | line-height: 20px;
19 | text-align: center;
20 | top: 3px;
21 | right: 3px;
22 | &:hover, &:active, &:focus {color: white;}
23 | }
24 | .toggle--selected {
25 | display: none;
26 | z-index: 10;
27 | position: absolute;
28 | width: 25px;
29 | height: 25px;
30 | background: $blue-btn;
31 | color: white;
32 | line-height: 25px;
33 | text-align: center;
34 | top: -2px;
35 | left: -2px;
36 | &:hover, &:active, &:focus {color: white;}
37 | }
38 |
--------------------------------------------------------------------------------
/Resources/public/scss/_elements.headings.scss:
--------------------------------------------------------------------------------
1 | // Headings
2 | // --------------
3 | #{headings()} {
4 | @extend .por;
5 | margin: 0 0 $base-line-height;
6 | letter-spacing: -.05em;
7 | font-weight: normal;
8 | font-family: $sans;
9 | line-height: 1.2;
10 | line-height: normal;
11 | }
12 | h1 {font-size: 2.3em;}
13 | h2 {font-size: 2.2em;}
14 | h3 {font-size: 1.8em;}
15 | h4 {font-size: 1.5em;}
16 | h5 {font-size: 1.2em;}
17 | h6 {font-size: 1em;}
18 |
--------------------------------------------------------------------------------
/Resources/public/scss/_elements.links.scss:
--------------------------------------------------------------------------------
1 | // Links
2 | // --------------
3 | a {
4 | @include transition(0.1s);
5 | text-decoration: none;
6 | color: $blog-blue;
7 | }
8 | a {
9 | &:hover,
10 | &:active {
11 | color: #000;
12 | text-decoration: none;
13 | }
14 | &:focus {outline: 0;}
15 | }
16 | a:hover,
17 | a:focus {
18 | color: #000;
19 | text-decoration: none;
20 | }
21 | a:focus {
22 | outline: 0;
23 | outline: none;
24 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_elements.lists.scss:
--------------------------------------------------------------------------------
1 | // Lists
2 | // --------------
3 | ul, ol, dl {
4 | margin: 0 0 $base-line-height;
5 | padding: 0;
6 | }
7 | ul {list-style: disc outside;}
8 | ol {list-style: decimal outside;}
9 | ul ul, ul ol, ol ul, ol ol {
10 | margin: 0;
11 | }
12 | li, dd {
13 | margin-left: $base-line-height;
14 | line-height: 1.5;
15 | &[class*="col-"] {
16 | list-style: none;
17 | margin-left: 0;
18 | }
19 | }
20 | li ul, li ol {font-size: 1em;}
21 | nav {
22 | ul, ol {list-style: none outside;}
23 | }
24 | nav li {
25 | margin: 0;
26 | padding: 0;
27 | display: inline;
28 | }
29 | dt {
30 | font-weight: bold;
31 | margin-top: $base-line-height/2;
32 | &:first-child {margin-top: 0;}
33 | }
34 |
--------------------------------------------------------------------------------
/Resources/public/scss/_elements.other.scss:
--------------------------------------------------------------------------------
1 | // Other
2 | // --------------
3 |
4 | p {
5 | margin: 0 0 $base-line-height;
6 | line-height: 1.5;
7 | .center & {
8 | text-align: center;
9 | }
10 | .aright & {
11 | text-align: right;
12 | }
13 | }
14 |
15 | hr {
16 | clear: both;
17 | overflow: hidden;
18 | margin: ceil($base-line-height/2) 0;
19 | height: 1px;
20 | border: 0;
21 | background-color: darken($light-grey, 10%);
22 | &.offscreen {
23 | margin-left: -3000px !important;
24 | margin-right: -3000px !important;
25 | }
26 | }
27 |
28 | // dark text link, used for Join link on login form
29 | a.text--dark {
30 | &:hover {
31 | border-bottom: 1px solid rgba(#000, .25);
32 | }
33 | }
34 |
35 | // Simulate *
36 | label.required:after {
37 | content: '*';
38 | font-size: 11px;
39 | top: -5px;
40 | left: 4px;
41 | position: relative;
42 | }
43 | .no-after {
44 | label.required:after {
45 | content: '';
46 | }
47 | label {
48 | display: block;
49 | }
50 | input {
51 | float: left;
52 | margin-right: 10px;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/Resources/public/scss/_generic.normalize.scss:
--------------------------------------------------------------------------------
1 | html {
2 | background-color: $brand-color;
3 | &.log-in {background-color: $brand-color;}
4 | }
5 | body {
6 | background: transparent none;
7 | color: $dark-grey;
8 | text-align: left;
9 | font-family: $sans;
10 | }
11 |
12 | // Sticky footer
13 | @include bp(tab) {
14 | html, body {
15 | height: 100%;
16 | }
17 | .wrap {
18 | &--app {
19 | min-height: 100%;
20 | /* equal to footer height */
21 | margin-bottom: -73px; /* 43 + 30 */
22 | }
23 | }
24 | .wrap:after {
25 | content: "";
26 | display: block;
27 | }
28 | }
29 |
30 | select {
31 | padding-left: 6px !important;
32 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_generic.reset.scss:
--------------------------------------------------------------------------------
1 | // =Additional reset styles and html elements defaults
2 | // ===================================================
3 | html {
4 | box-sizing: border-box;
5 | }
6 | *, *:before, *:after {
7 | box-sizing: inherit;
8 | }
9 |
10 | html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {text-align: left;}
11 | textarea {resize: vertical;}
12 | code {
13 | line-height: 1;
14 | font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Andale Mono", "DejaVu Sans Mono", "Lucida Console", monospace;
15 | font-size: 0.9em;
16 | }
17 |
18 | // --------------
19 | img {
20 | display: inline-block;
21 | max-width: 100%;
22 | height: auto;
23 | border: 0;
24 | vertical-align: middle;
25 | font-style: italic;
26 | }
27 |
28 | // Fix for stretched svg files in IE
29 | // img[src*=".svg"] {
30 | // width: 100%;
31 | // }
32 |
33 | figure > img {display: block;}
34 | // --------------
35 | textarea:active,
36 | textarea:focus {
37 | cursor: text;
38 | outline: none;
39 | }
40 |
41 | abbr[title],dfn[title] {cursor: help;}
42 | u,ins {text-decoration: none;}
43 |
44 | div {
45 | word-break: break-word;
46 | word-wrap: break-word;
47 | }
48 |
--------------------------------------------------------------------------------
/Resources/public/scss/_objects.footers.scss:
--------------------------------------------------------------------------------
1 | // Footer
2 | #push {
3 | height: 73px; /* 43 + 30 */
4 | }
5 | .footer {
6 | border-top: solid 1px $light-grey;
7 | padding: 12px;
8 | height: 43px;
9 | z-index: 1;
10 | position: relative;
11 | margin-top: 30px;
12 | }
13 |
--------------------------------------------------------------------------------
/Resources/public/scss/_objects.headers.scss:
--------------------------------------------------------------------------------
1 | // When there's just big logo (some simple pages)
2 | .header--simple {
3 | padding: 0;
4 | background-color: transparent;
5 | text-align: center;
6 | }
7 |
8 | // Roundtable dashboard header
9 | .header--dashboard {
10 | overflow: hidden;
11 | background: #000;
12 | padding: 8px 15px;
13 | a {
14 | @extend .text--mini;
15 | line-height: 25px;
16 | &:hover {color: #fff;}
17 | }
18 | }
19 |
20 | // EdBlog application header
21 | .header--app {
22 | overflow: hidden;
23 | background: white;
24 | padding: 8px 15px;
25 | border-bottom: solid 1px #cccfd1;
26 | a {
27 | font-size: 13px;
28 | text-transform: uppercase;
29 | line-height: 25px;
30 | color: $app-blue;
31 | font-weight: bold;
32 | @include bp(tab) {
33 | margin-left: 20px;
34 | }
35 | &:hover, &.on, &.active {color: #000;}
36 | }
37 | img {
38 | width: 84px;
39 | height: 28px;
40 | }
41 | &.small-res {
42 | padding: 0;
43 | a {
44 | display: block;
45 | padding: 8px 15px;
46 | border-top: solid 1px #cccfd1;
47 | }
48 | }
49 | }
50 |
51 | // Logo
52 | .logo {
53 | display: inline-block;
54 | margin: 12px 0 14px 15px;
55 | float: left;
56 | // for login/register pages:
57 | .header--simple & {
58 | float: none;
59 | margin: 64px 0 20px;
60 | }
61 | // Roundtable admin dashboard logo
62 | .header--dashboard &, .header--app & {
63 | margin: 0;
64 | color: white;
65 | text-transform: uppercase;
66 | font-weight: bold;
67 | font-size: 13px;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Resources/public/scss/_objects.wrappers.scss:
--------------------------------------------------------------------------------
1 | // Wrapper
2 | .wrap {
3 | overflow: hidden;
4 | position: relative;
5 | padding: 0;
6 | background: $brand-color;
7 |
8 | // lightest grey wrap
9 | &--lightest {
10 | background: $lightest-grey;
11 | }
12 | }
13 |
14 | // Responsive (width and height) iframe
15 | .video-wrapper {
16 | position: relative;
17 | // Variant 1 is with padding given here (always the same), and variant 2 is using dynamic value from wrapVideo() function
18 | padding-bottom: 56.25%;
19 | height: 0;
20 | overflow: hidden;
21 | iframe {
22 | position: absolute;
23 | top: 0;
24 | left: 0;
25 | width: 100%;
26 | height: 100%;
27 | }
28 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_settings.all.scss:
--------------------------------------------------------------------------------
1 | // Sizes
2 | //============================================================
3 |
4 | $base-font-size : 13px;
5 | $base-line-height : 20px;
6 | $line-height-ratio : $base-line-height / $base-font-size;
7 | $gutter : 30px;
8 | $border-radius : 2px;
9 |
10 | // UI color scheme
11 | //============================================================
12 | // Brand color
13 | $brand-color : #e0e3e5;
14 |
15 | // UI colors
16 | $dark-grey : #333;
17 | $light-grey : #d0d3d5;
18 | $lightest-grey : #f5f5f7;
19 |
20 | //EDBlog style
21 | $blog-blue : #51a0d0;
22 | $blog-bg-grey : #4a4b4b;
23 | $app-blue : #36a9ed;
24 | $app-grey : #727679;
25 | $app-light-grey : #737373;
26 | $c-grey : #191919;
27 | $color-placeholder : #969696;
28 |
29 | // Usual Colors
30 | $blue : #3289cd;
31 | $blue-light : #85A1B3;
32 | $blue-greyish : #B9C3CA;
33 | $blue-btn : #6fbae7;
34 |
35 | // Font stacks
36 | //============================================================
37 | $sans : "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
38 |
--------------------------------------------------------------------------------
/Resources/public/scss/_tools.mixins.scss:
--------------------------------------------------------------------------------
1 | // Breakpoints Mixin
2 | // THIS MIXIN WORKS ONLY WITH LATEST SASS BETA (at the moment: 06/10/13 01:37:34)
3 | // usage: @include bp(tab) {...}
4 | //------------------------------------------------------------
5 | @mixin bp($point) {
6 | // Small devices (tablets, 768px and up)
7 | @if $point == tab {
8 | @media only screen and (min-width: 768px) { @content; }
9 | }
10 | // Medium devices (desktops, 992px and up)
11 | @if $point == lap {
12 | @media only screen and (min-width: 992px) { @content; }
13 | }
14 | // Large devices (large desktops, 1200px and up)
15 | @if $point == desk {
16 | @media only screen and (min-width: 1200px) { @content; }
17 | }
18 | // Larger devices (larger desktops, 1280px and up)
19 | @if $point == deskplus {
20 | @media only screen and (min-width: 1280px) { @content; }
21 | }
22 | }
23 |
24 | // vertical and horizontal alignment of absolutely positioned element inside relative element
25 | // this method can cause elements to be blurry due to the element being placed on a 'half pixel'. A solution for this is to set its parent element to preserve-3d
26 | // abs-alligned automatically gets width of 50% (centered, with 25% for both sides), so for particular cases this should be overrided
27 | // usage: @include abs-parent; *recommended
28 | // usage: @include abs-aligned;
29 | //============================================================
30 | @mixin abs-parent {
31 | -webkit-transform-style: preserve-3d;
32 | -moz-transform-style: preserve-3d;
33 | -ms-transform-style: preserve-3d;
34 | transform-style: preserve-3d;
35 | }
36 | @mixin abs-aligned {
37 | position: absolute;
38 | top: 50%;
39 | left: 50%;
40 | -webkit-transform: translate(-50%,-50%);
41 | -moz-transform: translate(-50%,-50%);
42 | -ms-transform: translate(-50%,-50%);
43 | transform: translate(-50%,-50%);
44 | }
--------------------------------------------------------------------------------
/Resources/public/scss/_trumps.colors.scss:
--------------------------------------------------------------------------------
1 | // Color classes
2 | // ======================================================
3 |
4 | // BGs
5 | .bg--transp {background: transparent none !important;}
6 | .bgblack--p02 {background: rgba(#000, .02) !important;}
7 | .bgblack--p05 {background: rgba(#000, .05) !important;}
8 | .bgblack--p10 {background: rgba(#000, .1) !important;}
9 | .bgwhite {background: #fff !important;}
10 | .bg--lightgrey {background: $lightest-grey;}
11 | .bg--imgnone {background-image: none !important;}
12 |
13 | // Text colors
14 | .white { color: white !important; }
15 | .black { color: black !important; }
16 | .dark-grey { color: $dark-grey !important; }
17 | .app-blue { color: $app-blue !important; }
18 | .app-grey { color: $app-grey !important; }
19 | .app-light-grey { color: $app-light-grey !important; }
20 | .c-grey { color: $c-grey !important; }
21 | .color-placeholder { color: $color-placeholder !important; }
22 | .text--blue-light {color: $blue-light !important;}
23 |
--------------------------------------------------------------------------------
/Resources/public/scss/_trumps.displays.scss:
--------------------------------------------------------------------------------
1 | // Display and Visiability
2 | // ======================================================//
3 |
4 | .hide {display: none !important;}
5 | .invisible {visibility: hidden !important;}
6 | .destroy {display: none !important; visibility: hidden !important;}
7 |
8 | // display
9 | .d--b {display: block !important;}
10 | .d--i {display: inline !important;}
11 | .d--ib {display: inline-block !important;}
12 | .d--t {display: table !important; width: 100% !important; table-layout: fixed !important;}
13 | .d--tc {display: table-cell !important; vertical-align: middle !important;}
14 | .d--tr {display: table-row !important;}
15 | // display responsive
16 | .d--ib--b {
17 | display: inline-block;
18 | @include bp(tab) {
19 | display: block;
20 | }
21 | }
22 |
23 | // muted
24 | .muted--total {opacity: 0 !important;}
25 | .muted {opacity: .6 !important;}
26 | .mutedmore {opacity: .3 !important;}
27 |
28 | // Visibility
29 | .visible--tab {
30 | display: none;
31 | @include bp(tab) {display: block;}
32 | }
33 | .visible--lap {
34 | display: none;
35 | @include bp(lap) {display: block;}
36 | }
37 | .visible--desk {
38 | display: none;
39 | @include bp(desk) {display: block;}
40 | }
41 | .invisible--tab {
42 | display: block;
43 | @include bp(tab) {display: none;}
44 | }
45 | .invisible--lap {
46 | display: block;
47 | @include bp(lap) {display: none;}
48 | }
49 | .invisible--desk {
50 | display: block;
51 | @include bp(desk) {display: none;}
52 | }
53 |
54 | // overflow-hidden, overflow visible
55 | .ovh {overflow: hidden !important;}
56 | .ovv {overflow: visible !important;}
57 | .vh {visibility: hidden !important;}
58 | .vv {visibility: visible !important;}
59 |
60 | // Vertical align in table style
61 | .tabled {
62 | display: table;
63 | width: 100%;
64 | height: 100%;
65 | .table-cell {
66 | display: table-cell;
67 | vertical-align: middle;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Resources/public/scss/_trumps.floats.scss:
--------------------------------------------------------------------------------
1 | // Floats
2 | // ======================================================//
3 |
4 | .clear {clear: both !important;}
5 | .flleft {float: left !important;}
6 | .flright {float: right !important;}
7 | .flright--responsive-mob {
8 | @include bp(tab) {
9 | float: right !important;
10 | }
11 | }
12 |
13 | // clearfix
14 | .clearfix {@include clearfix;}
15 | // clearfix overflow visible
16 | .cfov {
17 | &:before,
18 | &:after {content: " "; display: table;}
19 | &:after {clear: both;}
20 | & {*zoom: 1;}
21 | }
22 |
--------------------------------------------------------------------------------
/Resources/public/scss/_trumps.lineheights.scss:
--------------------------------------------------------------------------------
1 | // Line heights
2 | // ======================================================//
3 | .lh1 {line-height: 1 !important;}
4 | .lh2 {line-height: 1.9 !important;}
5 | .lh30 {line-height: 30px !important;}
6 | .lh32 {line-height: 32px !important;}
7 |
--------------------------------------------------------------------------------
/Resources/public/scss/_trumps.others.scss:
--------------------------------------------------------------------------------
1 | // Other helper classes
2 | // ======================================================
3 |
4 | // Rotate
5 | .rotate90 {
6 | -webkit-transform: rotate(90deg);
7 | -moz-transform: rotate(90deg);
8 | -ms-transform: rotate(90deg);
9 | -o-transform: rotate(90deg);
10 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
11 | }
12 |
13 | // Togglers
14 | .js-toggler {
15 | &.on {
16 | i {
17 | @extend .rotate90;
18 | }
19 | }
20 | }
21 | .toggled { display: none; }
22 |
23 |
24 | // no animation flicker in webkit
25 | %noflicker, .noflicker {
26 | @include backface-visibility(hidden);
27 | @include perspective(1000);
28 | @include translateZ(0);
29 | }
30 |
31 | // shadowed box
32 | // used in message header, discussion header...
33 | .box-shadow {
34 | @extend .ovh;
35 | @extend .margin--reset;
36 | @extend .por;
37 | @include box-shadow(0 0 15px rgba(#000, .25));
38 | background: #fff;
39 | }
40 |
41 | // Pointer
42 | .pointer {cursor: pointer !important;}
43 | .cursor-default {cursor: default !important;}
44 |
--------------------------------------------------------------------------------
/Resources/public/scss/_trumps.positions.scss:
--------------------------------------------------------------------------------
1 | // Positions
2 | // ======================================================//
3 |
4 | .por {position: relative !important;}
5 | .poa {position: absolute !important;}
6 | .poa--t20 {top: 20px;}
7 | .poa--r20 {right: 20px;}
8 |
9 | // clicky
10 | .clicky {position: relative !important; top: 1px !important;}
11 |
12 | // abs-aligned
13 | .abs-aligned {@include abs-aligned;}
14 |
15 | // overlay
16 | .overlay {
17 | position : absolute;
18 | top : 0;
19 | left : 0;
20 | bottom : 0;
21 | right : 0;
22 | width : 100%;
23 | height : 100%;
24 | }
25 |
--------------------------------------------------------------------------------
/Resources/public/scss/_trumps.widths-borders.scss:
--------------------------------------------------------------------------------
1 | // Widths and borders
2 | // ======================================================//
3 |
4 | // widths in ems
5 | .width--1em {width: 1em; text-align: center;}
6 |
7 | // Img
8 | .img--auto {
9 | width: auto;
10 | height: auto;
11 | }
12 |
13 | // Borders
14 | .brdr--0 {border: 0 !important}
15 | // rounded
16 | .rounded {@include border-radius($border-radius);}
17 | // circle
18 | .circle {@include border-radius(50%);}
19 |
--------------------------------------------------------------------------------
/Resources/public/scss/main.scss:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 | //----------------
4 | @import "compass";
5 | //----------------
6 |
7 | @import "settings.all";
8 |
9 | @import "tools.mixins";
10 |
11 | @import "generic.reset";
12 | @import "generic.normalize";
13 |
14 | @import "elements.headings";
15 | @import "elements.links";
16 | @import "elements.lists";
17 | @import "elements.other";
18 | @import "elements.tables";
19 |
20 | @import "objects.footers";
21 | @import "objects.headers";
22 | @import "objects.wrappers";
23 |
24 | @import "components.articles";
25 | @import "components.dashboard";
26 | @import "components.discussions";
27 | @import "components.dropdowns";
28 | @import "components.forms";
29 | @import "components.other";
30 | @import "components.pagination";
31 | @import "components.phototiles";
32 | @import "components.sidebar";
33 | @import "components.togglers";
34 |
35 | @import "trumps.colors";
36 | @import "trumps.displays";
37 | @import "trumps.dividers";
38 | @import "trumps.floats";
39 | @import "trumps.lineheights";
40 | @import "trumps.others";
41 | @import "trumps.positions";
42 | @import "trumps.texts";
43 | @import "trumps.widths-borders";
44 |
45 | @import "vendor/bootstrap-override";
46 | @import "vendor/pnotify-override";
47 | @import "vendor/tinymce-override";
48 |
--------------------------------------------------------------------------------
/Resources/public/scss/vendor/_pnotify-override.scss:
--------------------------------------------------------------------------------
1 | .ui-pnotify-title {
2 | line-height: 17px;
3 | display: inline-block;
4 | }
5 |
6 | .ui-pnotify-closer, .ui-pnotify-sticker {
7 | position: relative;
8 | z-index: 10;
9 | }
--------------------------------------------------------------------------------
/Resources/public/scss/vendor/_tinymce-override.scss:
--------------------------------------------------------------------------------
1 | // Override Tinymce style
2 | .mce-container, .mce-container-body, .mce-menu {
3 | background: #f1f4f6 !important;
4 | border-color: #bcc2c6 !important;
5 | @include border-radius(0 !important);
6 | .mce-btn {
7 | border: 0 !important;
8 | box-shadow: none !important;
9 | &:hover {
10 | background: none !important;
11 | }
12 | button {
13 | background: #f1f4f6 !important;
14 | opacity: 1 !important;
15 | border: solid 1px transparent !important;
16 | @include border-radius(3px !important);
17 | &:hover {
18 | border: solid 1px #bcc2c6 !important;
19 | }
20 | i {
21 | text-shadow: none !important;
22 | }
23 | }
24 | &.mce-active {
25 | button {
26 | border: solid 1px #bcc2c6 !important;
27 | }
28 | }
29 | }
30 | .mce-menu-item {
31 | &:hover {
32 | background: #6fbae7;
33 | color: white;
34 | }
35 | }
36 | }
37 | .mce-panel {
38 | background-image: none !important;
39 | }
40 | .mce-foot {
41 | .mce-btn.mce-primary.mce-first {
42 | button {
43 | background: $blue-btn !important;
44 | color: white;
45 | @include border-radius(2px !important);
46 | padding: 9px 13px;
47 | border: 0 !important;
48 | font-size: 13px;
49 | font-weight: bold;
50 | text-shadow: none !important;
51 | text-transform: uppercase;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/Resources/translations/messages.fr.xlf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Symfony2 is great
7 | J'aime Symfony2
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Resources/views/Article/Excerpt/form_preview.html.twig:
--------------------------------------------------------------------------------
1 | {% media media, 'small' with {'class': 'media-object js-media-object', 'alt' : 'EdBlog' } %}
2 |
3 |
--------------------------------------------------------------------------------
/Resources/views/Article/Excerpt/list.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
13 | {% include "EDBlogBundle:Article/Excerpt:listAjax.html.twig"%}
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Resources/views/Article/Excerpt/listAjax.html.twig:
--------------------------------------------------------------------------------
1 | {% if(pagination|length) %}
2 |
3 | {% include "EDBlogBundle:Article/Excerpt:listAjaxElements.html.twig"%}
4 |
5 | {{ knp_pagination_render(pagination) }}
6 | {% else %}
7 |
8 | There is no media, please upload some media.
9 |
10 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Article/Excerpt/listAjaxElements.html.twig:
--------------------------------------------------------------------------------
1 | {% for media in pagination %}
2 |
3 |
12 |
13 |
14 | {% endfor %}
--------------------------------------------------------------------------------
/Resources/views/Article/Media/list.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
13 | {% include "EDBlogBundle:Article/Media:listAjax.html.twig"%}
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Resources/views/Article/Media/listAjax.html.twig:
--------------------------------------------------------------------------------
1 | {% if(pagination|length) %}
2 |
3 | {% include "EDBlogBundle:Article/Media:listAjaxElements.html.twig"%}
4 |
5 | {{ knp_pagination_render(pagination) }}
6 | {% else %}
7 |
8 | There is no media, please upload some media.
9 |
10 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Article/Media/listAjaxElements.html.twig:
--------------------------------------------------------------------------------
1 | {% for media in pagination %}
2 |
3 |
12 | {{ render(controller('EDBlogBundle:Backend/Media:editInfo', { 'id': media.id })) }}
13 |
14 | {% endfor %}
--------------------------------------------------------------------------------
/Resources/views/Article/checkWritingLock.html.twig:
--------------------------------------------------------------------------------
1 | User {{ user }} is currently editing this article. Do you want to take over the article and block other user from continuing to edit?
--------------------------------------------------------------------------------
/Resources/views/Article/metadata__prototype.html.twig:
--------------------------------------------------------------------------------
1 | {% spaceless %}
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 | {% endspaceless %}
14 |
--------------------------------------------------------------------------------
/Resources/views/Article/show.html.twig:
--------------------------------------------------------------------------------
1 | {% extends "@EDBlog/Layout/blog_admin_main.html.twig" %}
2 |
3 | {% block content %}
4 |
5 |
6 |
7 |
8 |
9 |
10 | {% if is_granted('EDIT_ARTICLE', article) %}
11 |
Edit
12 | {% endif %}
13 |
{{ article.title }}
14 |
15 |
16 |
By {{ article.author.blogDisplayName }} on {{ article.publishedAt|blogDate}}
17 | {% if (article.categories|length) %}
18 | in {% for category in article.categories %}
19 | {{ loop.index0 ? ', ' }}{{ category.term.title }}
20 | {% endfor %}
21 | {% endif %}
22 | {#| X comments #}
23 |
24 | {% if (article.tags|length) %}
25 |
26 | {% for tag in article.tags %}
27 | {{ tag.term.title }}
28 | {% endfor %}
29 |
30 | {% endif %}
31 |
32 |
{{ article.content|raw }}
33 |
34 |
35 |
36 | {% include 'EDBlogBundle:Comment:list.html.twig' %}
37 |
38 |
39 |
40 | {% endblock content %}
41 |
42 | {% block javascripts %}
43 | {{ parent() }}
44 |
49 | {% endblock %}
--------------------------------------------------------------------------------
/Resources/views/Article/upload_form.html.twig:
--------------------------------------------------------------------------------
1 | {% if mediaLibrary is not defined %}
2 | {{ form_widget(form_media.media, {'attr': { 'data-href': path('ed_blog_admin_article_upload') }}) }}
3 | {% else %}
4 | {{ form_widget(form_media.media, {'attr': { 'data-href': path('ed_blog_admin_media_upload') }}) }}
5 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Comment/Comments/list.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 |
3 | {% block content %}
4 |
5 |
Comments
6 |
7 | {% if not is_granted('ACCESS_COMMENTS') %}
8 |
Comments are currently disabled. To enable commenting visit Settings area.
9 | {% endif %}
10 |
11 | {% include "@EDBlog/Comment/Comments/listAjax.html.twig" %}
12 |
13 | {{ include('EDBlogBundle:Modals:remove_article.html.twig') }}
14 | {% endblock content %}
--------------------------------------------------------------------------------
/Resources/views/Comment/Comments/listAjax.html.twig:
--------------------------------------------------------------------------------
1 | {% from '@EDBlog/Global/Macro/tables.html.twig' import sortableTh %}
2 |
3 |
4 | {% if pagination|length %}
5 |
6 |
7 |
8 | {{ sortableTh('Display name', 'displayname', 'ed_blog_admin_comment_list', 'v2', orderBy, order) }}
9 | {{ sortableTh('Email', 'email', 'ed_blog_admin_comment_list', 'v2', orderBy, order) }}
10 | {{ sortableTh('Author status', 'author_status', 'ed_blog_admin_comment_list', 'v2', orderBy, order) }}
11 | {{ sortableTh('Comment', 'comment', 'ed_blog_admin_comment_list', 'v2', orderBy, order) }}
12 | {{ sortableTh('Article', 'article', 'ed_blog_admin_comment_list', 'v2', orderBy, order) }}
13 | {{ sortableTh('Comment status', 'status', 'ed_blog_admin_comment_list', 'v2', orderBy, order) }}
14 | {{ sortableTh('Commented at', 'createdAt', 'ed_blog_admin_comment_list', 'v2', orderBy, order) }}
15 | Action
16 |
17 |
18 |
19 | {% for comment in pagination %}
20 | {% include "@EDBlog/Comment/Comments/listAjaxElement.html.twig" with { 'comment': comment} %}
21 | {% endfor %}
22 | {{ knp_pagination_render(pagination) }}
23 |
24 |
25 | {% endif %}
26 |
--------------------------------------------------------------------------------
/Resources/views/Comment/Comments/listAjaxElement.html.twig:
--------------------------------------------------------------------------------
1 | {% if comment.author is not defined %}
2 | {% set comment = comment[0] %}
3 | {% endif %}
4 |
5 | {% if comment.author %}{{ comment.author.commenterDisplayName }}{% else %}{{ comment.name }}{% endif %}
6 | {% if comment.author %}{{ comment.author.email }}{% else %}{{ comment.email }}{% endif %}
7 | {% if comment.author %} Registered user {% else %} Public user {% endif %}
8 | {{ comment.comment | displayLinks | raw }}
9 | {{ comment.article.title }}
10 | {% if comment.status == constant('STATUS_PENDING', comment) %} Waiting for approval {% else %} Approved {% endif %}
11 | {{ comment.createdAt | blogDateTime }}
12 |
13 | {% if comment.status == constant('STATUS_PENDING', comment) %} Approve it {% endif %}
14 | Edit
15 | Remove
16 |
17 |
--------------------------------------------------------------------------------
/Resources/views/Comment/Comments/paginationComments.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
25 |
--------------------------------------------------------------------------------
/Resources/views/Comment/Comments/paginationCommentsAjax.html.twig:
--------------------------------------------------------------------------------
1 | {{ knp_pagination_render(pagination) }}
--------------------------------------------------------------------------------
/Resources/views/Comment/comment.html.twig:
--------------------------------------------------------------------------------
1 | {% if (comment.status == constant('STATUS_ACTIVE', comment)) or (app.user and comment.author == app.user) or (not app.user and isMyComment(comment)) %}
2 |
12 |
13 | {% if comment.status == constant('STATUS_PENDING', comment) %}
14 | {% if (app.user and comment.author == app.user) or (not app.user and isMyComment(comment)) %}
15 |
Your comment is awaiting moderation.
16 | {% endif %}
17 | {% endif %}
18 | {{ comment.comment |displayLinks|raw }}
19 |
20 |
21 |
22 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Comment/comments.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
Comments
3 |
4 | {% if is_granted('ACCESS_COMMENTS_LIST') and is_granted('CREATE_COMMENT') %}
5 |
8 | {% endif %}
9 |
10 |
11 |
12 | {% if not is_granted('ACCESS_COMMENTS_LIST') %}
13 | {% include "@EDBlog/Comment/loginToListComments.html.twig" %}
14 | {% else %}
15 |
16 |
17 | {% for comment in comments %}
18 | {% include 'EDBlogBundle:Comment:comment.html.twig' with {'comment': comment} %}
19 | {% endfor %}
20 |
21 |
22 | {% endif %}
23 |
--------------------------------------------------------------------------------
/Resources/views/Comment/edit.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 | {% form_theme form '@EDBlog/Global/forms.html.twig' %}
3 |
4 | {% block content %}
5 |
6 |
Edit Comment
7 |
8 |
29 |
30 | {% endblock content %}
--------------------------------------------------------------------------------
/Resources/views/Comment/form.html.twig:
--------------------------------------------------------------------------------
1 | {% if is_granted('ACCESS_COMMENTS_LIST') and is_granted('CREATE_COMMENT') %}
2 |
40 | {% elseif is_granted('ACCESS_COMMENTS_LIST') %}
41 | {% include "@EDBlog/Comment/loginToCreateComments.html.twig" %}
42 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Comment/list.html.twig:
--------------------------------------------------------------------------------
1 | {% if is_granted('ACCESS_COMMENTS') %}
2 |
6 | {% endif %}
7 |
--------------------------------------------------------------------------------
/Resources/views/Comment/loginToCreateComments.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Login to leave a comment.
4 |
5 |
--------------------------------------------------------------------------------
/Resources/views/Comment/loginToListComments.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
Login to see or leave comments.
3 |
--------------------------------------------------------------------------------
/Resources/views/Frontend/Blog/blogBreadcrumb.html.twig:
--------------------------------------------------------------------------------
1 | {% if (criteria is defined) %}
2 |
3 |
Blog /
4 | {% if (criteria.type == 'category') %}
5 | {{ criteria.type }}:
6 | {% set categories = categoriesFromFirstLevel(criteria.value) %}
7 | {% for category in categories %}
8 | {{ category.Term.title }} /
9 | {% endfor %}
10 | {{ criteria.value.Term.title}} {{ criteria.value.description ? '('~criteria.value.description~')' }}
11 | {% elseif (criteria.type == 'tag') %}
12 | {{ criteria.type }}: {{ criteria.value.Term.title}}
13 | {% elseif (criteria.type == 'author') %}
14 | {{ criteria.type }}: {{ criteria.value.blogDisplayName}}
15 | {% elseif (criteria.type == 'archive') %}
16 | {{ criteria.type }}: {{ criteria.value.year }} {{ getMonth(criteria.value.month)}}
17 | {% endif %}
18 |
19 |
20 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Frontend/Blog/blog_sidebar.html.twig:
--------------------------------------------------------------------------------
1 | {% if (categories|length) %}
2 |
10 | {% endif %}
11 |
12 | {{ render (controller('EDBlogBundle:Backend/Tag:topTags',{ 'number' : 5 } ) ) }}
13 |
14 | {% if (archive|length) %}
15 |
26 | {% endif %}
27 |
34 | {% endif %}
35 | {% endfor %}
36 |
37 |
38 | {% endif %}
39 |
--------------------------------------------------------------------------------
/Resources/views/Frontend/Blog/blog_sidebar_tags.html.twig:
--------------------------------------------------------------------------------
1 | {% if (topNtags|length) %}
2 |
10 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Frontend/Blog/index.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Frontend/Layout:main.html.twig' %}
2 |
3 | {% block content %}
4 |
5 |
6 |
7 | {{ render(controller('EDBlogBundle:Frontend/Sidebar:blogList')) }}
8 |
9 |
10 | {% include "EDBlogBundle:Frontend/Blog:blogBreadcrumb.html.twig" %}
11 | {% include "EDBlogBundle:Frontend/Blog:indexAjax.html.twig" %}
12 |
13 |
14 |
15 | {% endblock content %}
--------------------------------------------------------------------------------
/Resources/views/Frontend/Blog/indexAjax.html.twig:
--------------------------------------------------------------------------------
1 | {% if pagination|length %}
2 |
3 | {% include 'EDBlogBundle:Frontend/Blog:indexAjaxElements.html.twig' %}
4 |
5 | {{ knp_pagination_render(pagination) }}
6 | {% else %}
7 | {% if (app.request.attributes.get('_route') == 'ed_blog_frontend_index') %}
8 | There are no articles yet!
9 | {% else %}
10 | There are no articles within this criteria.
11 | {% endif %}
12 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Frontend/Blog/indexAjaxElements.html.twig:
--------------------------------------------------------------------------------
1 | {% for item in pagination %}
2 | {% set commentsCnt = commentsCount(item) %}
3 |
4 |
5 |
6 |
7 |
By {{ item.author.blogDisplayName }} on {{ item.publishedAt|blogDate}}
8 | {% if (item.categories|length) %}
9 | in {% for category in item.categories %}
10 | {{ loop.index0 ? ', ' }}{{ category.term.title }}
11 | {% endfor %}
12 | {% endif %}
13 | {% if ( is_granted('ACCESS_COMMENTS') and commentsCnt) %}
14 | | {{ commentsCnt }} comment{{ (commentsCnt > 1) ? 's' }}
15 | {% endif %}
16 |
17 |
18 |
{% media item.excerptPhoto, 'excerpt' with {'class': 'centered img--auto d--b'} %}
19 |
20 |
{{ item.excerptText|raw }}
21 |
22 |
Read more
23 |
24 |
25 | {% endfor %}
26 |
--------------------------------------------------------------------------------
/Resources/views/Frontend/Blog/singleArticle.html.twig:
--------------------------------------------------------------------------------
1 | {% extends "EDBlogBundle:Frontend/Layout:main.html.twig" %}
2 |
3 | {% block title %}{{ article.title }}{% endblock %}
4 |
5 | {% block metaTags %}
6 | {% for meta in article.metaData %}
7 | {% if meta.key!='writing_locked' %}
8 |
9 | {% endif %}
10 | {% endfor %}
11 | {% endblock %}
12 |
13 | {% block content %}
14 |
15 |
16 |
17 |
18 |
{{ article.title }}
19 |
20 |
By {{ article.author.blogDisplayName }} on {{ article.publishedAt|blogDate}}
21 | {% if (article.categories|length) %}
22 | in {% for category in article.categories %}
23 | {{ loop.index0 ? ', ' }}{{ category.term.title }}
24 | {% endfor %}
25 | {% endif %}
26 | {% if ( is_granted('ACCESS_COMMENTS') and commentsCnt) %}
27 | | {{ commentsCnt }} comment{{ (commentsCnt > 1) ? 's' }}
28 | {% endif %}
29 |
30 |
31 | {% if (article.tags|length) %}
32 |
33 | {% for tag in article.tags %}
34 | {{ tag.term.title }} {% if not loop.last %}, {% endif %}
35 | {% endfor %}
36 |
37 | {% endif %}
38 |
39 |
{{ article.content|raw }}
40 |
41 |
42 |
43 | {% include 'EDBlogBundle:Comment:list.html.twig' %}
44 |
45 |
46 | {% endblock content %}
47 |
48 | {% block javascripts %}
49 | {{ parent() }}
50 |
55 | {% endblock %}
--------------------------------------------------------------------------------
/Resources/views/Frontend/Global/FormsTheme/date_widget.html.twig:
--------------------------------------------------------------------------------
1 | {% block date_widget %}
2 | {% spaceless %}
3 | {% if widget == 'single_text' %}
4 | {{ block('form_widget_simple') }}
5 | {% else %}
6 | {% set attr = attr|merge({'class': attr.class|default('inline')}) %}
7 | {{ date_pattern|replace({
8 | '{{ year }}': form_widget(form.year, {'attr': {'class': attr.widget_class|default('') ~ ' form-control form-control--sm mrg--l/2'}}),
9 | '{{ month }}': form_widget(form.month, {'attr': {'class': attr.widget_class|default('') ~ ' form-control form-control--sm'}}),
10 | '{{ day }}': form_widget(form.day, {'attr': {'class': attr.widget_class|default('') ~ ' form-control form-control--sm mrg--l/2'}}),
11 | })|raw }}
12 | {{ block('help') }}
13 | {% endif %}
14 | {% endspaceless %}
15 | {% endblock %}
--------------------------------------------------------------------------------
/Resources/views/Frontend/Global/pagination.html.twig:
--------------------------------------------------------------------------------
1 | {% if next is defined %}
2 |
3 |
6 |
7 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Frontend/Global/paginationAjax.html.twig:
--------------------------------------------------------------------------------
1 | {{ knp_pagination_render(pagination) }}
--------------------------------------------------------------------------------
/Resources/views/Frontend/Layout/_footer.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Resources/views/Frontend/Layout/header.html.twig:
--------------------------------------------------------------------------------
1 |
16 |
17 | {# Menu on small devices #}
18 |
--------------------------------------------------------------------------------
/Resources/views/Frontend/Layout/main.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Frontend/Layout:base.html.twig' %}
2 |
3 | {% set currentPath = app.request.attributes.get('_route') %}
4 |
5 | {% block favicon %}
6 | {{ parent() }}
7 | {% endblock %}
8 |
9 | {% block stylesheets %}
10 | {{ parent() }}
11 | {% endblock %}
12 |
13 | {% block body %}
14 | {{ parent() }}
15 |
16 |
17 | {% block header %}
18 | {{ parent() }}
19 | {% include 'EDBlogBundle:Frontend/Layout:header.html.twig' %}
20 | {% endblock header %}
21 |
22 | {% block content %}{% endblock %}
23 |
24 |
25 |
26 | {% block footer %}
27 | {{ parent() }}
28 | {% include('EDBlogBundle:Frontend/Layout:_footer.html.twig') %}
29 | {% endblock footer %}
30 |
31 | {% endblock %} {# endblock body #}
32 |
33 | {% block javascripts %}
34 | {{ parent() }}
35 | {% endblock %}
36 |
--------------------------------------------------------------------------------
/Resources/views/Global/Macro/tables.html.twig:
--------------------------------------------------------------------------------
1 | {% macro sortableColumn(label, input, pathName, orderBy, order) %}
2 | {{ label }}
3 | {% endmacro %}
4 |
5 | {% macro sortableTh(label, input, pathName, thClass, orderBy, order) %}
6 |
7 | {{ label }}
8 |
9 | {% endmacro %}
--------------------------------------------------------------------------------
/Resources/views/Global/categories.html.twig:
--------------------------------------------------------------------------------
1 | {% macro slash(taxonomy) %}
2 |
3 | {% endmacro %}
--------------------------------------------------------------------------------
/Resources/views/Global/pagination.html.twig:
--------------------------------------------------------------------------------
1 | {% if next is defined %}
2 |
3 |
6 |
7 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Global/paginationAjax.html.twig:
--------------------------------------------------------------------------------
1 | {{ knp_pagination_render(pagination) }}
--------------------------------------------------------------------------------
/Resources/views/Global/paginationClassic.html.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Resources/views/Global/paginationClassicAjax.html.twig:
--------------------------------------------------------------------------------
1 | {{ knp_pagination_render(pagination) }}
--------------------------------------------------------------------------------
/Resources/views/Homepage/_menu.html.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Resources/views/Layout/blog_admin_main.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_base.html.twig' %}
2 |
3 | {% set currentPath = app.request.attributes.get('_route') %}
4 |
5 | {% block favicon %}
6 | {{ parent() }}
7 | {% endblock %}
8 |
9 | {% block stylesheets %}
10 | {{ parent() }}
11 | {% endblock %}
12 |
13 | {% block body %}
14 | {{ parent() }}
15 |
16 | {% block header %}
17 | {{ parent() }}
18 |
19 |
23 |
24 | {% endblock header %}
25 |
26 |
27 |
28 | {% include('EDBlogBundle:Homepage:_menu.html.twig') with {'currentPath': currentPath} %}
29 |
30 | {% block content %}
31 | {% endblock %}
32 |
33 | {# Used for footer #}
34 |
35 |
36 | {% block footer %}
37 | {{ parent() }}
38 | {% endblock footer %}
39 |
40 | {% endblock %} {# endblock body #}
41 |
42 | {% block javascripts %}
43 | {{ parent() }}
44 | {% endblock %}
45 |
--------------------------------------------------------------------------------
/Resources/views/Media/cropPanel.html.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Resources/views/Media/editForm.html.twig:
--------------------------------------------------------------------------------
1 | {% form_theme form '@EDBlog/Global/forms.html.twig' %}
2 |
--------------------------------------------------------------------------------
/Resources/views/Media/editInfoForm.html.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Resources/views/Media/image.html.twig:
--------------------------------------------------------------------------------
1 | {% media media, 'small' with {'class': 'media-object js-media-object'} %}
--------------------------------------------------------------------------------
/Resources/views/Media/list.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 |
3 | {% block content %}
4 |
5 |
Media library
6 |
17 | {% include "EDBlogBundle:Media:listAjax.html.twig"%}
18 |
19 | {% include 'EDBlogBundle:Modals:remove_article.html.twig' %}
20 | {% include 'EDBlogBundle:Article:upload_form.html.twig' with { 'form_media' : form_media, 'mediaLibrary': true } %}
21 | {% endblock content %}
22 |
23 | {% block javascripts %}
24 | {{ parent() }}
25 |
30 | {% endblock %}
--------------------------------------------------------------------------------
/Resources/views/Media/listAjax.html.twig:
--------------------------------------------------------------------------------
1 | {% if(pagination|length) %}
2 |
3 | {% include "EDBlogBundle:Media:listAjaxElements.html.twig"%}
4 |
5 |
6 | {% else %}
7 | {# Empty state #}
8 |
10 | {% endif %}
--------------------------------------------------------------------------------
/Resources/views/Media/listAjaxElements.html.twig:
--------------------------------------------------------------------------------
1 | {% for media in pagination %}
2 |
3 |
11 | {{ render(controller('EDBlogBundle:Backend/Media:editInfo', { 'id': media.id })) }}
12 |
13 | {% endfor %}
--------------------------------------------------------------------------------
/Resources/views/Modals/article_locked.html.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Resources/views/Modals/remove_article.html.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/children.html.twig:
--------------------------------------------------------------------------------
1 | {% set level = level + 1 %}
2 |
3 | {% for taxon in taxonomy.children %}
4 | {% include "@EDBlog/Taxonomy/Category/listAjaxElement.html.twig" with { 'taxonomy': taxon, 'level' : level } %}
5 | {% endfor %}
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/create.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 |
3 | {% block content %}
4 |
5 |
Create category
6 | {{ form_errors(form) }}
7 |
30 |
31 | {% endblock content %}
32 |
33 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/edit.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 | {% form_theme form '@EDBlog/Global/forms.html.twig' %}
3 |
4 | {% block content %}
5 |
6 |
Edit category
7 | {{ form_errors(form) }}
8 |
31 |
32 | {% endblock content %}
33 |
34 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/list.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 |
3 | {% block content %}
4 |
5 |
Categories
6 |
Create new category
7 |
8 | {% include "@EDBlog/Taxonomy/Category/listAjax.html.twig" %}
9 |
10 |
11 | {{ include('EDBlogBundle:Modals:remove_article.html.twig') }}
12 | {% endblock content %}
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/listAjax.html.twig:
--------------------------------------------------------------------------------
1 | {% from '@EDBlog/Global/Macro/tables.html.twig' import sortableTh %}
2 |
3 |
4 | {% if pagination|length %}
5 |
6 |
7 |
8 | {{ sortableTh('Title', 'title', 'ed_blog_category_list', 'v2', orderBy, order) }}
9 | {{ sortableTh('Slug', 'slug', 'ed_blog_category_list', 'v0', orderBy, order) }}
10 | {{ sortableTh('Description', 'description', 'ed_blog_category_list', 'v2', orderBy, order) }}
11 | {{ sortableTh('Articles Count', 'count', 'ed_blog_category_list', 'v1', orderBy, order) }}
12 | {{ sortableTh('Parent', 'parent', 'ed_blog_category_list', 'v2', orderBy, order) }}
13 | Action
14 |
15 |
16 |
17 | {% for taxonomy in pagination %}
18 | {% include "@EDBlog/Taxonomy/Category/listAjaxElement.html.twig" with { 'taxonomy': taxonomy} %}
19 | {% endfor %}
20 | {{ knp_pagination_render(pagination) }}
21 |
22 |
23 |
24 | {% endif %}
25 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/listAjaxElement.html.twig:
--------------------------------------------------------------------------------
1 | {% if level is not defined %}
2 | {% set level = 0 %}
3 | {% endif %}
4 |
5 | {{ taxonomy|categoryLevelSlash }}
6 | {{ taxonomy.term.slug }}
7 | {{ taxonomy.description }}
8 | {{ taxonomy.count | default('0') }}
9 | {% if taxonomy.parent %}{{ taxonomy.parent.term.title }}{% endif %}
10 |
11 | Remove
12 | Edit
13 |
14 |
15 |
16 | {% include "@EDBlog/Taxonomy/Category/children.html.twig" %}
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/list_sortable.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 |
3 | {% block content %}
4 |
5 |
Categories
6 |
Create new category
7 |
8 | {% include "@EDBlog/Taxonomy/Category/list_sortableAjax.html.twig" %}
9 |
10 |
11 | {{ include('EDBlogBundle:Modals:remove_article.html.twig') }}
12 | {% endblock content %}
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/list_sortableAjax.html.twig:
--------------------------------------------------------------------------------
1 | {% from '@EDBlog/Global/Macro/tables.html.twig' import sortableTh %}
2 |
3 |
4 | {% if pagination|length %}
5 |
6 |
7 |
8 | {{ sortableTh('Title', 'title', 'ed_blog_category_list', 'v2', orderBy, order) }}
9 | {{ sortableTh('Slug', 'slug', 'ed_blog_category_list', 'v0', orderBy, order) }}
10 | {{ sortableTh('Description', 'description', 'ed_blog_category_list', 'v2', orderBy, order) }}
11 | {{ sortableTh('Articles Count', 'count', 'ed_blog_category_list', 'v1', orderBy, order) }}
12 | {{ sortableTh('Parent', 'parent', 'ed_blog_category_list', 'v2', orderBy, order) }}
13 | Action
14 |
15 |
16 |
17 | {% for taxonomy in pagination %}
18 | {% include "@EDBlog/Taxonomy/Category/list_sortableAjaxElement.html.twig" %}
19 | {% endfor %}
20 | {{ knp_pagination_render(pagination) }}
21 |
22 |
23 |
24 | {% endif %}
25 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/list_sortableAjaxElement.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 | {% if taxonomy.term is not defined %}
4 | {% set taxonomy = taxonomy[0] %}
5 | {% endif %}
6 | {{ taxonomy|categoryLevelSlash }}
7 | {{ taxonomy.term.slug }}
8 | {{ taxonomy.description }}
9 | {{ taxonomy.count | default('0') }}
10 | {% if taxonomy.parent %}{{ taxonomy.parent.term.title }}{% endif %}
11 |
12 | Remove
13 | Edit
14 |
15 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/pretty.html.twig:
--------------------------------------------------------------------------------
1 | {% if level is not defined %}
2 | {% set level = 0 %}
3 | {% else %}
4 | {% set level = level +1 %}
5 | {% endif %}
6 |
7 | {#{% for category in categories %}
8 |
9 | {{ category.term.title }}
10 | {% include "@EDBlog/Taxonomy/Category/pretty.html.twig" with { 'categories': category.children} %}
11 | {% endfor %}#}
12 |
13 | {% for category in categories %}
14 |
15 | {{ category.term.title }}
16 |
17 | {% include "@EDBlog/Taxonomy/Category/pretty.html.twig" with { 'categories': category.children} %}
18 | {% endfor %}
19 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Category/pretty_limited.html.twig:
--------------------------------------------------------------------------------
1 | {% if level is not defined %}
2 | {% set level = 0 %}
3 | {% else %}
4 | {% set level = level +1 %}
5 | {% endif %}
6 |
7 | {#{% for category in categories %}
8 |
9 | {{ category.term.title }}
10 | {% include "@EDBlog/Taxonomy/Category/pretty.html.twig" with { 'categories': category.children} %}
11 | {% endfor %}#}
12 |
13 | {% for category in categories %}
14 | {% if level < 4 %}
15 | {{ category|categoryLevelSlash }}
16 |
17 | {% include "@EDBlog/Taxonomy/Category/pretty_limited.html.twig" with { 'categories': category.children} %}
18 | {% endif %}
19 |
20 | {% endfor %}
21 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Tag/create.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 |
3 | {% block content %}
4 |
5 |
Create tag
6 | {{ form_errors(form) }}
7 |
25 |
26 | {% endblock content %}
27 |
28 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Tag/edit.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 | {% form_theme form '@EDBlog/Global/forms.html.twig' %}
3 |
4 | {% block content %}
5 |
6 |
Edit tag
7 | {{ form_errors(form) }}
8 |
26 |
27 | {% endblock content %}
28 |
29 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Tag/list.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 |
3 | {% block content %}
4 |
5 |
Tags
6 |
Create new tag
7 |
8 | {% include "@EDBlog/Taxonomy/Tag/listAjax.html.twig" %}
9 |
10 |
11 | {{ include('EDBlogBundle:Modals:remove_article.html.twig') }}
12 | {% endblock content %}
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Tag/listAjax.html.twig:
--------------------------------------------------------------------------------
1 | {% from '@EDBlog/Global/Macro/tables.html.twig' import sortableTh %}
2 |
3 |
4 | {% if pagination|length %}
5 |
6 |
7 |
8 | {{ sortableTh('Title', 'title', 'ed_blog_tag_list', 'v2', orderBy, order) }}
9 | {{ sortableTh('Slug', 'slug', 'ed_blog_tag_list', 'v0', orderBy, order) }}
10 | {{ sortableTh('Description', 'description', 'ed_blog_tag_list', 'v2', orderBy, order) }}
11 | {{ sortableTh('Articles Count', 'count', 'ed_blog_tag_list', 'v1', orderBy, order) }}
12 | Action
13 |
14 |
15 |
16 | {% for taxonomy in pagination %}
17 | {% include "@EDBlog/Taxonomy/Tag/listAjaxElement.html.twig" with { 'taxonomy': taxonomy} %}
18 | {% endfor %}
19 | {{ knp_pagination_render(pagination) }}
20 |
21 |
22 | {% endif %}
23 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/Tag/listAjaxElement.html.twig:
--------------------------------------------------------------------------------
1 | {% if level is not defined %}
2 | {% set level = 0 %}
3 | {% endif %}
4 |
5 | {{ taxonomy|categoryLevelSlash }}
6 | {{ taxonomy.term.slug }}
7 | {{ taxonomy.description }}
8 | {{ taxonomy.count | default('0') }}
9 |
10 | Remove
11 | Edit
12 |
13 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/pagination.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
27 |
--------------------------------------------------------------------------------
/Resources/views/Taxonomy/paginationAjax.html.twig:
--------------------------------------------------------------------------------
1 | {{ knp_pagination_render(pagination) }}
--------------------------------------------------------------------------------
/Resources/views/Users/add.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 | {% form_theme form '@EDBlog/Global/forms.html.twig' %}
3 |
4 | {% block content %}
5 |
6 |
Import new blog user
7 |
8 |
22 |
23 | {% endblock content %}
24 |
25 |
--------------------------------------------------------------------------------
/Resources/views/Users/blog_privileges.html.twig:
--------------------------------------------------------------------------------
1 | {{ user|blogRole }}
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Resources/views/Users/edit.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'EDBlogBundle:Layout:blog_admin_main.html.twig' %}
2 | {% form_theme form '@EDBlog/Global/forms.html.twig' %}
3 |
4 | {% block content %}
5 |
6 |
Edit blog user
7 |
8 |
22 |
23 | {% endblock content %}
24 |
25 |
--------------------------------------------------------------------------------
/Resources/views/Utils/_comment.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
{% if comment.author %}{{ comment.author }}{% else %}{{ comment.name }}{% endif %}
3 |
{{ comment.createdAt|date("m/d/Y") }}
4 |
5 |
6 | {{ comment.comment }}
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Resources/views/Utils/_comments.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
Comments
3 |
4 |
5 |
6 |
7 |
8 |
9 | {% for comment in comments %}
10 | {% include 'EDBlogBundle:Utils:_comment.html.twig' with {'comment': comment} %}
11 | {% endfor %}
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Resources/views/Utils/fields.html.twig:
--------------------------------------------------------------------------------
1 | {% block form_row %}
2 | {% spaceless %}
3 |
12 | {% endspaceless %}
13 | {% endblock form_row %}
14 |
15 | {% block form_errors %}
16 | {% spaceless %}
17 | {% if errors|length > 0 %}
18 | {% for error in errors %}
19 |
20 | {{
21 | error.messagePluralization is null
22 | ? error.messageTemplate|trans(error.messageParameters, 'validators')
23 | : error.messageTemplate|transchoice(error.messagePluralization, error.messageParameters, 'validators')
24 | }}
25 |
26 | {% endfor %}
27 | {% endif %}
28 | {% endspaceless %}
29 | {% endblock form_errors %}
--------------------------------------------------------------------------------
/Resources/views/Utils/flash_message.html.twig:
--------------------------------------------------------------------------------
1 | {% for flashMessage in app.session.flashbag.get('success') %}
2 |
3 |
4 |
5 |
6 | {{ flashMessage }}
7 |
8 |
9 |
10 | {% endfor %}
11 |
12 | {% for flashMessage in app.session.flashbag.get('error') %}
13 |
14 |
15 |
16 |
17 | {{ flashMessage }}
18 |
19 |
20 |
21 | {% endfor %}
22 |
23 | {% for flashMessage in app.session.flashbag.get('info') %}
24 |
25 |
26 |
27 |
28 | {{ flashMessage }}
29 |
30 |
31 |
32 | {% endfor %}
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Resources/views/Utils/flash_message.js.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Security/ACL/ArticlePermissionMap.php:
--------------------------------------------------------------------------------
1 | attributes, true);
23 | }
24 | }
--------------------------------------------------------------------------------
/Security/ACL/PermissionMap.php:
--------------------------------------------------------------------------------
1 | attributes, true);
27 | }
28 | }
--------------------------------------------------------------------------------
/Transformers/PhotoToIdTransformer.php:
--------------------------------------------------------------------------------
1 | om = $om;
23 | }
24 |
25 | public function transform($value)
26 | {
27 | return $value ? $value->getId() : '';
28 | }
29 | public function reverseTransform($value)
30 | {
31 | if($value)
32 | {
33 | $photo = $this->om->getRepository('ApplicationSonataMediaBundle:Media')->find($value);
34 |
35 | if ($photo)
36 | {
37 | return $photo;
38 | }
39 | else
40 | {
41 | return null;
42 | }
43 | }
44 | else
45 | {
46 | return null;
47 | }
48 | }
49 | }
--------------------------------------------------------------------------------
/Transformers/UserToEmailTransformer.php:
--------------------------------------------------------------------------------
1 | om = $om;
24 | $this->objectClass = $objectClass;
25 | }
26 |
27 | public function transform($value)
28 | {
29 | return !empty($value) ? $value->getEmail() : '';
30 | }
31 |
32 | public function reverseTransform($value)
33 | {
34 | if($value)
35 | {
36 | $user = $this->om->getRepository($this->objectClass)->findOneBy(array('email' => $value));
37 |
38 | if (!$user)
39 | throw new TransformationFailedException();
40 |
41 | return $user;
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/Util/EDEncryption.php:
--------------------------------------------------------------------------------
1 | salt = 'encrypt';
34 | $text = $value;
35 | $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
36 | $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
37 | $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->salt, $text, MCRYPT_MODE_ECB, $iv);
38 | return trim($this->safe_b64encode($crypttext));
39 | }
40 |
41 | /**
42 | * @param raw int
43 | * @return decrypted string
44 | */
45 | public function decode($value) {
46 |
47 | if (!$value) {
48 | return false;
49 | }
50 | $this->salt = 'encrypt';
51 | $crypttext = $this->safe_b64decode($value);
52 | $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
53 | $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
54 | $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->salt, $crypttext, MCRYPT_MODE_ECB, $iv);
55 | return trim($decrypttext);
56 | }
57 |
58 | }
59 |
60 | ?>
--------------------------------------------------------------------------------
/Util/IDEncrypt.php:
--------------------------------------------------------------------------------
1 | encode($id);
24 | }
25 |
26 | /**
27 | * @param raw int
28 | * @return decrypted string
29 | */
30 | public static function decrypt($encrypted) {
31 | return self::getEDEncr()->decode($encrypted);
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ed/blog-bundle",
3 | "type": "symfony-bundle",
4 | "description": "Symfony EDBlogBundle",
5 | "keywords": ["Blog"],
6 | "homepage": "http://blog-demo.etonlabs.com",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Vladimir Mladenovic",
11 | "email": "mladenovic.info@gmail.com"
12 | },
13 | {
14 | "name": "Milos Milojevic",
15 | "email": "milosmoto@gmail.com"
16 | },
17 | {
18 | "name": "Vladimir Bogdanovic",
19 | "email": "vladimir.bogdanovic@yahoo.com"
20 | },
21 | {
22 | "name": "Stanislava Stojanovic Novoselac",
23 | "email": "stanislavastojanovic@gmail.com"
24 | },
25 | {
26 | "name": "Nenad Jovanovic",
27 | "email": "nenad.jovanovic@etondigital.com"
28 | }
29 | ],
30 | "require": {
31 | "php": ">=5.3.3",
32 | "symfony/symfony": ">=2.6",
33 | "doctrine/doctrine-bundle": "~1.4",
34 | "twig/extensions": "~1.0",
35 | "symfony/assetic-bundle": "~2.3",
36 | "sensio/framework-extra-bundle": "~3.0,>=3.0.2",
37 | "incenteev/composer-parameter-handler": "~2.0",
38 | "friendsofsymfony/user-bundle": "*",
39 | "sonata-project/media-bundle": "~2.3",
40 | "sonata-project/doctrine-orm-admin-bundle": "^2.3",
41 | "jms/serializer-bundle": "~0.13",
42 | "knplabs/knp-paginator-bundle": "*",
43 | "doctrine/doctrine-fixtures-bundle": "*",
44 | "stof/doctrine-extensions-bundle": "~1.1@dev",
45 | "eko/feedbundle": "~1.2"
46 | },
47 | "require-dev": {
48 | "doctrine/doctrine-bundle": "~1.3",
49 | "swiftmailer/swiftmailer": "~4.3|~5",
50 | "willdurand/propel-typehintable-behavior": "~1.0",
51 | "symfony/yaml": "~2.3",
52 | "symfony/validator": "~2.3",
53 | "sensio/generator-bundle": "~2.3",
54 | "behat/behat": "~3.0",
55 | "behat/symfony2-extension": "~2.0",
56 | "behat/mink": "~1.6",
57 | "behat/mink-extension": "~2.0",
58 | "behat/mink-browserkit-driver": "~1.2",
59 | "behat/mink-goutte-driver": "~1.0",
60 | "behat/mink-selenium2-driver": "~1.1"
61 | },
62 | "autoload": {
63 | "psr-4": { "ED\\BlogBundle\\": "" }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------