edge_framework 1.0.0 → 1.1.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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YWUzNjU2ZjMwOWNhYTg2MjkwMGM1ZWIyM2FmNjdhMTIwM2RhZWY4Yw==
4
+ ZGI2ODYzNzA5ZDRiYzBkODQxYTE5YWQyNGNiNDg5NTM1YmU5MjcxMg==
5
5
  data.tar.gz: !binary |-
6
- OTYzOTM1YzdkODkxYmVjMWNiNzQ4MTkxMTRlNGRiZTM2ZGZhMGI1OQ==
6
+ OGU3NzBjMTg5MTI2ZWUzMjMxY2FlMWE4Njk2MGJkN2RmYTYyM2U5YQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YmExYTg2YTI4MjI4Zjg3OTZmOWEwMjQ1ZDRiZmVkNDE5ZWQxNzA5YzA5M2Ni
10
- ODFjYjk2MTg0ODUyMGI0NWZlNDRmM2IwYmE2NzE1YmYwMjQ2MzE2YmZiODdk
11
- OGY1ZjY1ZGZiNzUxYmNjY2UxZGRiMWY3YWMyYzAyNmU1NGRiM2M=
9
+ MGJmYjU4YjRmMWM2OWUzZmNiNzdjZTM4OTU2ZmZmNTQ2YmUwYzlhOGQ0YmUy
10
+ MmUxY2U4MDk5ODdmMmZmNTM5YTFhZjM3ODAwYWRjN2YxMTE2ZjA4ZjRmZTZj
11
+ NWQ3Y2ZmMTc1NjIxNWZjNjIwZGQwYWU2ZmRmZmMzNWU2OGI0MzU=
12
12
  data.tar.gz: !binary |-
13
- YWNjMDg4YjRjMzQyMzEyOWUwYTY4MjNjYjQyOTFhYjkyNmY3MTNkM2Y3NTQ4
14
- NjdhMTRmZmQ5MDA3MzNiNTM1MzE5MWEwODY4ZjM5OGZhNjU2OGU3ZjM4NTRj
15
- YjdjMWVhYjAxZWI4NWE2YWI0MjNmYzUyZGJlOWMwZmUwMDIzYzE=
13
+ MzU2OTlhODhkODcwYzU1OGJlZGNmOGM0ODkxYzkyMGM2YzcwOTU5NDRkMTcw
14
+ MzZiYjQ5YzYxNTVmODY4YzAxYTQwZWNiMWFjYWYxNDE1YjNmZTE5MjVjZTEx
15
+ YmI4MmNlODhlOTA4MWNhMWFkOWVjMjU3YzJkODA3Y2JiZjgzYWY=
data/README.md CHANGED
@@ -322,16 +322,16 @@ Example:
322
322
  Custom Post Type
323
323
  --------------------
324
324
 
325
- add_post_type( $name, <$icon>, <$taxonomy> )
326
-
327
325
  ![Wordpress Custom Type](http://cdn.setyono.net/edge/wp-post-type.jpg)
328
326
 
327
+ add_post_type( $name, <$icon>, <$taxonomy> )
328
+
329
329
  Inside `functions.php`, add these codes:
330
330
 
331
331
  add_post_type("Product", "cart", "Brand");
332
332
  add_post_type("Event", "calendar");
333
333
 
334
- All names must be **singular**. The icon name is taken from [melchoyce.github.io/dashicons/](http://melchoyce.github.io/dashicons/).
334
+ The icon name is taken from [melchoyce.github.io/dashicons/](http://melchoyce.github.io/dashicons/).
335
335
 
336
336
  To enable custom WP Query, create a class with the Post Type's name that extends `Post`.
337
337
 
@@ -339,15 +339,29 @@ To enable custom WP Query, create a class with the Post Type's name that extends
339
339
  class Product extends Post {}
340
340
  class Event extends Post {}
341
341
 
342
- Now, you can call the functions:
342
+ Now, you can use the custom WP Query:
343
343
 
344
344
  $products = Product::find_by("brand", "Microsoft")
345
345
  $events = Event::find()
346
346
 
347
+ Template File
348
+ ---------------
349
+
347
350
  The template file for custom post is `single-{slug}.php` while custom taxonomy is `taxonomy-{slug}.php`.
348
351
 
349
352
  Based on the example above, create `single-product.php` for single **Product** template. If we need to list all products within a brand, create `taxonomy-brand.php` which works the same way as `category.php`.
350
353
 
354
+ Naming Convention
355
+ -----------------
356
+
357
+ All names must be **singular** and no special character.
358
+
359
+ Space is the only one allowed but its class name is the **combined words**.
360
+
361
+ add_post_type("Photo Gallery", "format-gallery");
362
+
363
+ class Photogallery extends Post {}
364
+
351
365
  COMPASS
352
366
  =================
353
367
 
@@ -391,9 +405,9 @@ GRID - mixin
391
405
 
392
406
  Custom grid makes the markup cleaner and less duplication.
393
407
 
394
- It allows one additional sizing: **mini** which is below 480px by default. You can only set mini size when small size is specified.
408
+ It allows one additional breakpoint: **mini** which is below 480px by default. You can only set mini size when small one is specified.
395
409
 
396
- We still need to write the base class (`.row` and `.column`).
410
+ We need to include the base class in the markup (`.row` and `.column`).
397
411
 
398
412
  // HTML
399
413
  <div class="row">
@@ -401,6 +415,7 @@ We still need to write the base class (`.row` and `.column`).
401
415
  <main class="column"></main>
402
416
  </div>
403
417
 
418
+
404
419
  // SCSS
405
420
  aside {
406
421
  @include column(2, 4, 12);
@@ -416,7 +431,7 @@ We still need to write the base class (`.row` and `.column`).
416
431
 
417
432
  **GUTTER**
418
433
 
419
- If you want to modify all the gutters, change it in Setting file. Otherwise, you must customize both row and column.
434
+ Custom gutter must be applied to both row and column
420
435
 
421
436
  // HTML
422
437
  <div class="my-row row">
@@ -424,6 +439,7 @@ If you want to modify all the gutters, change it in Setting file. Otherwise, you
424
439
  <main class="column"></main>
425
440
  </div>
426
441
 
442
+
427
443
  // SCSS
428
444
  .my-row {
429
445
  @include row($gutter: 50px);
@@ -437,28 +453,62 @@ If you want to modify all the gutters, change it in Setting file. Otherwise, you
437
453
  @include column($large: 10, $gutter: 50px);
438
454
  }
439
455
 
456
+ **COLLAPSE**
457
+
458
+ Collapse must be applied to both row and column.
459
+
460
+ .my-row {
461
+ @include row($collapse: true);
462
+ }
463
+
464
+ main {
465
+ @include column($large: 10, $collapse: true);
466
+ }
467
+
440
468
  **TOTAL COLUMNS**
441
469
 
470
+ You can either use `$total` parameter or fraction:
471
+
442
472
  aside {
443
- @include column($large: 20, $total: 100);
473
+ @include column($large: 7, $total: 15);
444
474
  }
445
475
 
446
- main {
447
- @include column($large: 80, $total: 100);
476
+ // or
477
+
478
+ aside {
479
+ @include column($large: 7 / 15);
448
480
  }
449
481
 
450
- **COLLAPSE**
482
+ Custom total columns is useful when you need **to match a given design**.
483
+
484
+ Let's say you get this layout that throw off your default grid:
451
485
 
452
- Collapse must be applied to both custom row and column.
486
+ ![Pre-given Design](http://cdn.setyono.net/edge/custom-total-column.jpg)
487
+
488
+ Here's how you can handle it:
453
489
 
490
+ // HTML
491
+ <div class="my-row row">
492
+ <main class="my-col column"> ... </main>
493
+ <aside class="side-col column"> ... </aside>
494
+ </div>
495
+
496
+
497
+ // CSS
454
498
  .my-row {
455
- @include row($collapse: true);
499
+ @include row($gutter: 35px);
456
500
  }
457
501
 
458
- main {
459
- @include column($large: 10, $collapse: true);
502
+ .my-col {
503
+ @include column($large: 500 / 735, $gutter: 35px);
460
504
  }
461
505
 
506
+ .side-col {
507
+ @include column($large: 200 / 735, $gutter: 35px);
508
+ }
509
+
510
+ Remember that we need to include the `.row` and `.column` class.
511
+
462
512
  TILE - mixin
463
513
  ======================
464
514
 
@@ -294,7 +294,7 @@
294
294
  </div>
295
295
  </div> -->
296
296
 
297
- <!-- <div class="row" data-page="code">
297
+ <div class="row" data-page="code">
298
298
  <div class="large-12 columns">
299
299
  <h1>EDGE Code</h1>
300
300
  <h3>Markup</h3>
@@ -341,7 +341,7 @@
341
341
  end
342
342
  </code></pre>
343
343
  </div>
344
- </div> -->
344
+ </div>
345
345
 
346
346
  <!-- <div class="row" data-page="tile">
347
347
  <div class="large-12 columns">
@@ -380,7 +380,7 @@
380
380
  </div>
381
381
  </div> -->
382
382
 
383
- <div class="row" data-page="custom-tile">
383
+ <!-- <div class="row" data-page="custom-tile">
384
384
  <div class="large-12 columns">
385
385
  <div class="demo-tile">
386
386
  <h1>Custom Tile</h1>
@@ -430,7 +430,7 @@
430
430
  </ul>
431
431
  </div>
432
432
  </div>
433
- </div>
433
+ </div> -->
434
434
 
435
435
  <!-- <div class="row" data-page="grid">
436
436
  <div class="large-12 columns">
@@ -816,7 +816,7 @@
816
816
  </div>
817
817
  </section> -->
818
818
 
819
- <section class="row" data-page="button">
819
+ <!-- <section class="row" data-page="button">
820
820
  <div class="large-4 column">
821
821
  <h1>Button</h1>
822
822
  <a href="" class="button">Hello World</a>
@@ -839,7 +839,7 @@
839
839
  <br>
840
840
  <a href="" class="button black-button">Hello World</a>
841
841
  </div>
842
- </section>
842
+ </section> -->
843
843
 
844
844
  <!-- <div class="row" data-page="form">
845
845
  <div class="large-6 columns">
@@ -1,6 +1,6 @@
1
1
  /* ------------------------------------------
2
2
  - EDGE Framework - github.com/HennerS/Edge
3
- - v1.0.0 (Davion)
3
+ - v1.1.0 (Ezalor)
4
4
  ------------------------------------------ */
5
5
 
6
6
  @import "edge/base";
@@ -9,7 +9,14 @@ $column-gutter : 20px !default;
9
9
 
10
10
  // Calculate percentages for grid
11
11
  @function gridCalc($colNumber, $totalColumns) {
12
- @return percentage($colNumber / $totalColumns);
12
+ // If column specified is not fraction
13
+ @if $colNumber >= 1 {
14
+ @return percentage($colNumber / $totalColumns);
15
+ }
16
+ // If column specified is fraction (like 2/12)
17
+ @else {
18
+ @return percentage($colNumber);
19
+ }
13
20
  }
14
21
 
15
22
  // ---------------------------------
@@ -0,0 +1,346 @@
1
+ // =============
2
+ // EDGE GRID
3
+ // =============
4
+ // Based on Foundation 4 by ZURB
5
+
6
+ $row-max-width : 1140px !default;
7
+ $total-columns : 12 !default;
8
+ $column-gutter : 20px !default;
9
+
10
+ // Calculate percentages for grid
11
+ @function gridCalc($colNumber, $totalColumns) {
12
+ @return percentage($colNumber / $totalColumns);
13
+ }
14
+
15
+ // ---------------------------------
16
+ // GRID ROW
17
+ // - Create container for the grid
18
+ // ---------------------------------
19
+
20
+ @mixin row(
21
+ $gutter : $column-gutter,
22
+ $width : $row-max-width,
23
+ $nest : false,
24
+ $collapse : false,
25
+ $for-base : false ) {
26
+
27
+ @if $for-base {
28
+ margin: 0 auto;
29
+ width: 100%;
30
+ max-width: $width + $gutter;
31
+
32
+ @if not $responsive {
33
+ min-width: $width + $gutter;
34
+ }
35
+ @include clearfix;
36
+ }
37
+
38
+ // If gutter is passed as param, calculate it
39
+ @if $gutter != $column-gutter {
40
+ max-width: $width + $gutter;
41
+
42
+ @if not $responsive {
43
+ min-width: $width + $gutter;
44
+ }
45
+ }
46
+
47
+ @if $nest and $collapse {
48
+ margin: 0;
49
+ padding-right: 0;
50
+ padding-left: 0;
51
+ width: auto;
52
+ max-width: none;
53
+
54
+ @if not $responsive {
55
+ min-width: 0;
56
+ }
57
+ }
58
+
59
+ @else if $nest {
60
+ margin-right: -($gutter / 2);
61
+ margin-left: -($gutter / 2);
62
+ width: auto;
63
+ max-width: none;
64
+
65
+ @if not $responsive {
66
+ min-width: 0;
67
+ }
68
+ }
69
+
70
+ @else if $collapse {
71
+ margin: 0 auto;
72
+ width: 100%;
73
+ max-width: $width;
74
+
75
+ @if not $responsive {
76
+ min-width: $width;
77
+ }
78
+ }
79
+
80
+ @if $external-call {
81
+ .row & {
82
+ margin-right: -($gutter / 2);
83
+ margin-left: -($gutter / 2);
84
+ }
85
+ }
86
+ }
87
+
88
+ // ----------------------------------------------
89
+ // Calculate size for column created externally
90
+ //-----------------------------------------------
91
+ @mixin external-call-column(
92
+ $column : 0,
93
+ $total : 0,
94
+ $offset : 0,
95
+ $parent-offset : 0) {
96
+
97
+ @if $column > 0 {
98
+ width: gridCalc($column, $total);
99
+ } @else {
100
+ width: 100%;
101
+ }
102
+
103
+ // Offset is only allowed if the column is specified
104
+ @if $column > 0 and $offset > 0 {
105
+ margin-#{$default-float}: gridCalc($offset, $total);
106
+ }
107
+ // If parent (larger) column has offset, remove it
108
+ @else if $parent-offset > 0 {
109
+ margin-#{$default-float}: 0;
110
+ }
111
+ }
112
+
113
+ // ----------------------------------
114
+ // Prevent duplicate in column
115
+ // ----------------------------------
116
+ @mixin source-ordering-column(
117
+ $push : 0,
118
+ $pull : 0,
119
+ $total : 0) {
120
+
121
+ @if $push > 0 {
122
+ #{$default-float}: gridCalc($push, $total);
123
+ #{$default-opposite}: auto;
124
+ }
125
+ @if $pull > 0 {
126
+ #{$default-opposite}: gridCalc($pull, $total);
127
+ #{$default-float}: auto;
128
+ }
129
+ }
130
+
131
+ // --------------------------------------
132
+ // Prevent duplicate in the base output
133
+ // --------------------------------------
134
+ @mixin source-ordering-output() {
135
+ @for $i from 1 through $total-columns - 1 {
136
+ .large-offset-#{$i} {
137
+ @include column($large-offset:$i);
138
+ }
139
+ .push#{-$i} {
140
+ @include column($push:$i);
141
+ }
142
+ .pull#{-$i} {
143
+ @include column($pull:$i);
144
+ }
145
+ }
146
+ }
147
+
148
+ // ------------------------
149
+ // GRID COLUMN
150
+ // - Create the grid
151
+ // ------------------------
152
+ @mixin column(
153
+ $large : 0,
154
+ $small : 0, // For external call only, small size screen
155
+ $mini : 0, // For external call only, mini size screen
156
+ $large-offset : 0,
157
+ $small-offset : 0, // For external call only
158
+ $mini-offset : 0, // For external call only
159
+ $push : 0,
160
+ $pull : 0,
161
+ $collapse : false,
162
+ $centered : false,
163
+ $gutter : $column-gutter,
164
+ $total : $total-columns,
165
+ $for-base : false ) {
166
+
167
+ @if $for-base {
168
+ position: relative;
169
+ float: $default-float;
170
+ padding-right: $gutter / 2;
171
+ padding-left: $gutter / 2;
172
+ }
173
+
174
+ // If gutter's value is different from default, it means it is passed as param
175
+ @if $gutter != $column-gutter {
176
+ padding-right: $gutter / 2;
177
+ padding-left: $gutter / 2;
178
+ }
179
+
180
+ // If collapsed, get rid of distance padding
181
+ @if $collapse {
182
+ padding-right: 0;
183
+ padding-left: 0;
184
+ }
185
+
186
+ // If offset, calculate appropriate margins
187
+ @if $large-offset > 0 {
188
+ margin-#{$default-float}: gridCalc($large-offset, $total);
189
+ }
190
+
191
+ // If a column number is given, calculate width
192
+ @if $large > 0 {
193
+ width: gridCalc($large, $total);
194
+ }
195
+
196
+ // Source Ordering, adds left/right depending on which you use.
197
+ @if $external-call and $responsive {
198
+ @include above(small) {
199
+ @include source-ordering-column($push:$push, $pull:$pull, $total:$total);
200
+ }
201
+ } @else {
202
+ @include source-ordering-column($push:$push, $pull:$pull, $total:$total);
203
+ }
204
+
205
+ // If centered, get rid of float and add auto margin
206
+ @if $centered {
207
+ display: block;
208
+ float: none;
209
+ margin-right: auto !important;
210
+ margin-left: auto !important;
211
+ }
212
+
213
+ // If external call and responsive is true
214
+ @if $external-call and $responsive {
215
+ // If small column is specified
216
+ @if $small > 0 {
217
+ @include below(small) {
218
+ @include external-call-column($column:$small, $total:$total, $offset:$small-offset, $parent-offset:$large-offset);
219
+ }
220
+
221
+ @if $mini > 0 {
222
+ @include below(mini) {
223
+ @include external-call-column($column:$mini, $total:$total, $offset:$mini-offset, $parent-offset:$small-offset);
224
+ }
225
+ }
226
+ }
227
+ // If small is not passed, stack the column
228
+ @else {
229
+ @include below(small) {
230
+ @include external-call-column($column:$small, $total:$total, $offset:$small-offset, $parent-offset:$large-offset);
231
+ }
232
+ }
233
+ }
234
+
235
+ // Create notes when on debug
236
+ @if $debug and $external-call {
237
+ $notes: "large-#{$large}";
238
+ @if $large-offset > 0 {
239
+ $notes: $notes + " large-offset-#{$large-offset}";
240
+ }
241
+ @if $small > 0 {
242
+ $notes: $notes + " small-#{$small}";
243
+ }
244
+ @if $small-offset > 0 {
245
+ $notes: $notes + " small-offset-#{$small-offset}";
246
+ }
247
+ @if $mini > 0 {
248
+ $notes: $notes + " mini-#{$mini}";
249
+ }
250
+ @if $mini-offset > 0 {
251
+ $notes: $notes + " mini-offset-#{$mini-offset}";
252
+ }
253
+ @if $push > 0 {
254
+ $notes: $notes + " push-#{$push}";
255
+ }
256
+ @if $pull > 0 {
257
+ $notes: $notes + " pull-#{$pull}";
258
+ }
259
+ @if $centered {
260
+ $notes: $notes + " centered";
261
+ }
262
+ h-column: $notes;
263
+ }
264
+ }
265
+
266
+ @if $include-grid and not $external-call {
267
+
268
+ /* ------------
269
+ EDGE Grid
270
+ ------------ */
271
+
272
+ // Normal row
273
+ .row {
274
+ @include row($for-base:true);
275
+
276
+ // Collapsed row
277
+ &.collapse {
278
+ @include row($collapse:true);
279
+ .column,
280
+ .columns {
281
+ @include column($collapse:true);
282
+ }
283
+ }
284
+
285
+ // Nested-collapsed row
286
+ .row {
287
+ @include row($nest:true);
288
+ &.collapse {
289
+ @include row($nest:true, $collapse:true);
290
+ }
291
+ }
292
+ }
293
+
294
+ // Normal column
295
+ .column,
296
+ .columns {
297
+ @include column($large:$total-columns, $for-base:true);
298
+ }
299
+
300
+ @for $i from 1 through $total-columns {
301
+ .large#{-$i} { @include column($large:$i); }
302
+ }
303
+
304
+ // Centered column
305
+ .column.large-centered,
306
+ .columns.large-centered {
307
+ @include column($centered:true);
308
+ }
309
+
310
+ // Source Ordering
311
+ @if $responsive {
312
+ @include above(small) {
313
+ @include source-ordering-output();
314
+ }
315
+ } @else {
316
+ @include source-ordering-output();
317
+ }
318
+
319
+ @if $responsive {
320
+ // Small screen and below
321
+ @include below(small) {
322
+ .column,
323
+ .columns {
324
+ @include column($large:$total-columns);
325
+ }
326
+ @for $i from 1 through $total-columns {
327
+ .small#{-$i} {
328
+ @include column($large:$i);
329
+ }
330
+ }
331
+
332
+ @for $i from 0 through $total-columns - 2 {
333
+ .small-offset-#{$i} {
334
+ @include column($large-offset:$i);
335
+ }
336
+ }
337
+
338
+ .column.small-centered,
339
+ .columns.small-centered {
340
+ @include column($centered:true);
341
+ }
342
+ }
343
+
344
+ } // responsive
345
+
346
+ } // $include-grid
@@ -144,7 +144,7 @@ button, select { text-transform: none; }
144
144
  button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; }
145
145
  button[disabled], html input[disabled] { cursor: default; }
146
146
  input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; }
147
- input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
147
+ input[type="search"] { -webkit-appearance: textfield; }
148
148
  input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
149
149
  button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
150
150
 
data/lib/edge/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Edge
2
- VERSION = "1.0.0"
3
- CODENAME = "Davion"
2
+ VERSION = "1.1.0"
3
+ CODENAME = "Ezalor"
4
4
  end
@@ -15,20 +15,10 @@ $body-font-family : "Helvetica", Helvetica, Arial, "sans-serif";
15
15
  $main-color : #2a71e3;
16
16
  $sub-color : #d7d7d7;
17
17
 
18
- // -------------------
19
- // COLOR PALETTE
20
- // -------------------
21
- // $passive-color : #d7d7d7;
22
- // $blue-color : #2a71e3;
23
- // $yellow-color : #fac741;
24
- // $red-color : #d35400;
25
- // $green-color : #229e61;
26
-
27
18
  // ----------------
28
19
  // OUTPUT CONFIG
29
20
  // ----------------
30
21
  // $responsive : true;
31
- // $debug : false;
32
22
 
33
23
  // $include-tile : true;
34
24
  // $include-visibility : true;
@@ -38,6 +28,25 @@ $sub-color : #d7d7d7;
38
28
  // $include-print : false;
39
29
  // $include-code : false;
40
30
 
31
+ // ---------------
32
+ // GLOBAL VALUE
33
+ // ---------------
34
+ // $g-radius : 3px;
35
+ // $g-transition : all .2s ease-in-out;
36
+
37
+ // --------
38
+ // GRID
39
+ // --------
40
+ // $row-max-width : 1140px;
41
+ // $total-columns : 12;
42
+ // $column-gutter : 20px;
43
+
44
+ // ------------
45
+ // TILE
46
+ // ------------
47
+ // $max-tiles : 12;
48
+ // $tile-gutter : 15px;
49
+
41
50
  // ------
42
51
  // BODY
43
52
  // ------
@@ -63,12 +72,6 @@ $sub-color : #d7d7d7;
63
72
 
64
73
  // $p-margin-bottom : 1em;
65
74
 
66
- // ---------------
67
- // GLOBAL VALUE
68
- // ---------------
69
- // $g-radius : 3px;
70
- // $g-transition : all .2s ease-in-out;
71
-
72
75
  // -------------------
73
76
  // MEDIA QUERIES
74
77
  // -------------------
@@ -77,19 +80,6 @@ $sub-color : #d7d7d7;
77
80
  // $large-screen : 1440px;
78
81
  // $retina-screen : 192dpi;
79
82
 
80
- // --------
81
- // GRID
82
- // --------
83
- // $row-max-width : 1140px;
84
- // $total-columns : 12;
85
- // $column-gutter : 20px;
86
-
87
- // ------------
88
- // TILE
89
- // ------------
90
- // $max-tiles : 12;
91
- // $tile-gutter : 15px;
92
-
93
83
  // -----------------
94
84
  // CODE Highlighter
95
85
  // -----------------
@@ -51,3 +51,5 @@ $RECYCLE.BIN/
51
51
  # Ignore all logfiles and tempfiles.
52
52
  /log/*.log
53
53
  /tmp
54
+
55
+ .sass-cache/
@@ -2,7 +2,7 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width" />
5
+ <meta name="viewport" content="width=device-width">
6
6
 
7
7
  <!-- WEBSITE DETAIL -->
8
8
  <title><%%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
@@ -0,0 +1,139 @@
1
+ <?php
2
+ /*
3
+ Create Custom Post Type
4
+ */
5
+
6
+ function add_post_type($name, $icon = "admin-post", $tax_name = null) {
7
+ $plural = Inflector::pluralize($name);
8
+ $singular = $name;
9
+
10
+ $labels = array(
11
+ "name" => $plural,
12
+ "singular_name" => $singular,
13
+ "add_new_item" => "Add New " . $singular,
14
+ "edit_item" => "Edit " . $singular,
15
+ "new_item" => "New " . $singular,
16
+ "view_item" => "View " . $singular,
17
+ "search_items" => "Search " . $plural,
18
+ "not_found" => "No " . strtolower($plural) . " found",
19
+ "not_found_in_trash" => "No " . strtolower($plural) . " found in Trash",
20
+ "parent_item_colon" => "Parent " . $singular . ":",
21
+ );
22
+
23
+ $post_args = array(
24
+ "public" => true,
25
+ "menu_icon" => "dashicons-".$icon,
26
+ "labels" => $labels,
27
+ "capability_type" => "post",
28
+ "supports" => array(
29
+ "title",
30
+ "editor",
31
+ "custom-fields",
32
+ "revisions",
33
+ "thumbnail",
34
+ ),
35
+ );
36
+
37
+ // If taxonomy is given
38
+ if($tax_name) {
39
+ add_taxonomy($tax_name, $name);
40
+ }
41
+
42
+ register_post_type(strtolower($name), $post_args);
43
+ }
44
+
45
+ /*
46
+ Create Custom Taxonomy
47
+ */
48
+
49
+ function add_taxonomy($name, $post_type) {
50
+ $plural = Inflector::pluralize($name);
51
+ $singular = $name;
52
+
53
+ $labels = array(
54
+ "name" => $plural,
55
+ "singular_name" => $singular,
56
+ "all_items" => "All " . $plural,
57
+ "edit_item" => "Edit " . $singular,
58
+ "view_item" => "View " . $singular,
59
+ "update_item" => "Update " . $singular,
60
+ "add_new_item" => "Add New " . $singular,
61
+ "parent_item" => "Parent " . $singular,
62
+ "search_items" => "Search " . $plural,
63
+ "popular_items" => "Popular " . $plural,
64
+ "add_or_remove_items" => "Add or remove " . strtolower($plural),
65
+ "choose_from_most_used" => "Choose from the most used " . strtolower($plural),
66
+ "not_found" => "No " . strtolower($plural) . " found"
67
+ );
68
+
69
+ $tax_args = array(
70
+ "labels" => $labels,
71
+ "show_ui" => true,
72
+ "query_var" => true,
73
+ "show_admin_column" => false,
74
+ "hierarchical" => true,
75
+ );
76
+ register_taxonomy(strtolower($name), strtolower($post_type), $tax_args);
77
+
78
+ new CPT_Filter(array(strtolower($post_type) => array(strtolower($singular) ) ) );
79
+ }
80
+
81
+ /*
82
+ Add Taxonomy filter to a CPT
83
+ @author Ohad Raz <admin@bainternet.info>
84
+ */
85
+ class CPT_Filter {
86
+ function __construct($cpt = array()) {
87
+ $this->cpt = $cpt;
88
+ add_action("restrict_manage_posts", array($this, "my_restrict_manage_posts") );
89
+ }
90
+
91
+ /*
92
+ Add select dropdown per taxonomy
93
+ */
94
+ public function my_restrict_manage_posts() {
95
+ // only display these taxonomy filters on desired custom post_type listings
96
+ global $typenow;
97
+ $types = array_keys($this->cpt);
98
+
99
+ if (in_array($typenow, $types) ) {
100
+ // create an array of taxonomy slugs you want to filter by - if you want to retrieve all taxonomies, could use get_taxonomies() to build the list
101
+ $filters = $this->cpt[$typenow];
102
+
103
+ foreach ($filters as $tax_slug) {
104
+ // retrieve the taxonomy object
105
+ $tax_obj = get_taxonomy($tax_slug);
106
+ $tax_name = $tax_obj->labels->name;
107
+
108
+ // output html for taxonomy dropdown filter
109
+ echo "<select name='".strtolower($tax_slug)."' id='".strtolower($tax_slug)."' class='postform'>";
110
+ echo "<option value=''>Show All $tax_name</option>";
111
+ $this->generate_taxonomy_options($tax_slug,0,0,(isset($_GET[strtolower($tax_slug)])? $_GET[strtolower($tax_slug)] : null));
112
+ echo "</select>";
113
+ }
114
+ }
115
+ }
116
+
117
+ /*
118
+ Generate_taxonomy_options generate dropdown
119
+ */
120
+ public function generate_taxonomy_options($tax_slug, $parent = "", $level = 0, $selected = null) {
121
+ $args = array("show_empty" => 1);
122
+
123
+ if(!is_null($parent) ) {
124
+ $args = array("parent" => $parent);
125
+ }
126
+ $terms = get_terms($tax_slug, $args);
127
+ $tab = "";
128
+
129
+ for($i = 0; $i < $level; $i++) {
130
+ $tab .= "--";
131
+ }
132
+
133
+ foreach ($terms as $term) {
134
+ // output each select option line, check against the last $_GET to show the current option selected
135
+ echo "<option value=". $term->slug, $selected == $term->slug ? " selected='selected'" : "", ">" . $tab . $term->name ." (" . $term->count .")</option>";
136
+ $this->generate_taxonomy_options($tax_slug, $term->term_id, $level + 1, $selected);
137
+ }
138
+ }
139
+ }//end class
@@ -1,8 +1,13 @@
1
1
  <?php
2
- // Thanks to http://www.eval.ca/articles/php-pluralize (MIT license)
3
- // http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/inflections.rb (MIT license)
4
- // http://www.fortunecity.com/bally/durrus/153/gramch13.html
5
- // http://www2.gsu.edu/~wwwesl/egw/crump.htm
2
+ /*
3
+ Pluralize or Singularize a verb/noun
4
+
5
+ Thanks to:
6
+ - http://www.eval.ca/articles/php-pluralize (MIT license)
7
+ - http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/inflections.rb (MIT license)
8
+ - http://www.fortunecity.com/bally/durrus/153/gramch13.html
9
+ - http://www2.gsu.edu/~wwwesl/egw/crump.htm
10
+ */
6
11
 
7
12
  class Inflector {
8
13
  static $plural = array(
@@ -59,26 +64,26 @@ class Inflector {
59
64
  );
60
65
 
61
66
  static $irregular = array(
62
- 'move' => 'moves',
63
- 'foot' => 'feet',
64
- 'goose' => 'geese',
65
- 'sex' => 'sexes',
66
- 'child' => 'children',
67
- 'man' => 'men',
68
- 'tooth' => 'teeth',
69
- 'person' => 'people'
67
+ "move" => "moves",
68
+ "foot" => "feet",
69
+ "goose" => "geese",
70
+ "sex" => "sexes",
71
+ "child" => "children",
72
+ "man" => "men",
73
+ "tooth" => "teeth",
74
+ "person" => "people"
70
75
  );
71
76
 
72
77
  static $uncountable = array(
73
- 'sheep',
74
- 'fish',
75
- 'deer',
76
- 'series',
77
- 'species',
78
- 'money',
79
- 'rice',
80
- 'information',
81
- 'equipment'
78
+ "sheep",
79
+ "fish",
80
+ "deer",
81
+ "series",
82
+ "species",
83
+ "money",
84
+ "rice",
85
+ "information",
86
+ "equipment"
82
87
  );
83
88
 
84
89
  public static function pluralize( $string ) {
@@ -89,7 +94,7 @@ class Inflector {
89
94
 
90
95
  // check for irregular singular forms
91
96
  foreach ( self::$irregular as $pattern => $result ) {
92
- $pattern = '/' . $pattern . '$/i';
97
+ $pattern = "/" . $pattern . "$/i";
93
98
 
94
99
  if ( preg_match( $pattern, $string ) ) {
95
100
  return preg_replace( $pattern, $result, $string);
@@ -114,7 +119,7 @@ class Inflector {
114
119
 
115
120
  // check for irregular plural forms
116
121
  foreach ( self::$irregular as $result => $pattern ) {
117
- $pattern = '/' . $pattern . '$/i';
122
+ $pattern = "/" . $pattern . "$/i";
118
123
 
119
124
  if ( preg_match( $pattern, $string ) ) {
120
125
  return preg_replace( $pattern, $result, $string);
@@ -5,6 +5,8 @@
5
5
  - Requirement: Wordpress 3.8 and PHP 5.3
6
6
  ------------------------------------------- */
7
7
  include "inflector.php";
8
+ include "cpt.php";
9
+ include "query.php";
8
10
 
9
11
  function home() { echo home_url()."/"; }
10
12
  function root() { return get_template_directory_uri()."/"; }
@@ -13,31 +15,6 @@ function root() { return get_template_directory_uri()."/"; }
13
15
  function js() { echo root()."assets/js/"; }
14
16
  function files() { echo root()."assets/files/"; }
15
17
 
16
- /*
17
- ELLIPSIZE
18
- - Adding "..." at the end of the string.
19
- - Default is 160 characters
20
- */
21
-
22
- function ellipsize($text, $char_number = "160", $etc = "...") {
23
- $text = html_entity_decode($text, ENT_QUOTES);
24
- if (strlen($text) > $char_number) {
25
- $text = substr($text, 0, $char_number);
26
- $text = substr($text,0,strrpos($text," "));
27
-
28
- $punctuation = ".!?:;,-"; // punctuation you want removed
29
-
30
- $text = (strspn(strrev($text), $punctuation) != 0)
31
- ?
32
- substr($text, 0, -strspn(strrev($text), $punctuation))
33
- :
34
- $text;
35
-
36
- $text = $text.$etc;
37
- }
38
- $text = htmlentities($text, ENT_QUOTES);
39
- return $text;
40
- }
41
18
 
42
19
  /*
43
20
  CUSTOM NAV MENU
@@ -53,113 +30,6 @@ function edge_nav_menu() {
53
30
  ));
54
31
  }
55
32
 
56
- /*
57
- DATABASE CALL
58
- */
59
-
60
- class Post {
61
- public static function find($args = null) {
62
- wp_reset_postdata();
63
-
64
- if(empty($args) ) {
65
- $args = array(
66
- "post_type" => get_called_class()
67
- );
68
- }
69
-
70
- return new WP_Query($args);
71
- }
72
-
73
- public static function find_by($key, $value) {
74
- wp_reset_postdata();
75
-
76
- $args = array(
77
- $key => $value,
78
- "post_type" => get_called_class()
79
- );
80
- return new WP_Query($args);
81
- }
82
- }
83
-
84
- class Page extends Post {}
85
-
86
- /*
87
- CUSTOM POST TYPE
88
- */
89
-
90
- function add_post_type($name, $icon = "admin-post", $tax_name = null) {
91
- $plural = Inflector::pluralize($name);
92
- $singular = $name;
93
-
94
- $labels = array(
95
- "name" => $plural,
96
- "singular_name" => $singular,
97
- "add_new_item" => "Add New " . $singular,
98
- "edit_item" => "Edit " . $singular,
99
- "new_item" => "New " . $singular,
100
- "view_item" => "View " . $singular,
101
- "search_items" => "Search " . $plural,
102
- "not_found" => "No " . strtolower($plural) . " found",
103
- "not_found_in_trash" => "No " . strtolower($plural) . " found in Trash",
104
- "parent_item_colon" => "Parent " . $singular . ":",
105
- );
106
-
107
- $post_args = array(
108
- "public" => true,
109
- "menu_icon" => "dashicons-".$icon,
110
- "labels" => $labels,
111
- "capability_type" => "post",
112
- "supports" => array(
113
- "title",
114
- "editor",
115
- "custom-fields",
116
- "revisions",
117
- "thumbnail",
118
- ),
119
- );
120
-
121
- // If taxonomy is given
122
- if($tax_name) {
123
- add_taxonomy($tax_name, $name);
124
- }
125
-
126
- register_post_type(strtolower($name), $post_args);
127
- }
128
-
129
- /*
130
- CUSTOM TAXONOMY
131
- */
132
-
133
- function add_taxonomy($name, $post_type) {
134
- $plural = Inflector::pluralize($name);
135
- $singular = $name;
136
-
137
- $labels = array(
138
- "name" => $plural,
139
- "singular_name" => $singular,
140
- "all_items" => "All " . $plural,
141
- "edit_item" => "Edit " . $singular,
142
- "view_item" => "View " . $singular,
143
- "update_item" => "Update " . $singular,
144
- "add_new_item" => "Add New " . $singular,
145
- "parent_item" => "Parent " . $singular,
146
- "search_items" => "Search " . $plural,
147
- "popular_items" => "Popular " . $plural,
148
- "add_or_remove_items" => "Add or remove " . strtolower($plural),
149
- "choose_from_most_used" => "Choose from the most used " . strtolower($plural),
150
- "not_found" => "No " . strtolower($plural) . " found"
151
- );
152
-
153
- $tax_args = array(
154
- "labels" => $labels,
155
- "show_ui" => true,
156
- "query_var" => true,
157
- "show_admin_column" => false,
158
- "hierarchical" => true,
159
- );
160
- register_taxonomy(strtolower($name), strtolower($post_type), $tax_args);
161
- }
162
-
163
33
  /* REMOVE MENU ITEMS */
164
34
  add_action("admin_menu", "remove_menu_items");
165
35
 
@@ -0,0 +1,31 @@
1
+ <?php
2
+
3
+ /*
4
+ Custom WP Query
5
+ */
6
+
7
+ class Post {
8
+ public static function find($args = null) {
9
+ wp_reset_postdata();
10
+
11
+ if(empty($args) ) {
12
+ $args = array(
13
+ "post_type" => get_called_class()
14
+ );
15
+ }
16
+
17
+ return new WP_Query($args);
18
+ }
19
+
20
+ public static function find_by($key, $value) {
21
+ wp_reset_postdata();
22
+
23
+ $args = array(
24
+ $key => $value,
25
+ "post_type" => get_called_class()
26
+ );
27
+ return new WP_Query($args);
28
+ }
29
+ }
30
+
31
+ class Page extends Post {}
@@ -0,0 +1,27 @@
1
+ <?php // Generic Utility
2
+
3
+ /*
4
+ ELLIPSIZE
5
+ - Adding "..." at the end of the string.
6
+ - Default is 160 characters
7
+ */
8
+
9
+ function ellipsize($text, $char_number = "160", $etc = "...") {
10
+ $text = html_entity_decode($text, ENT_QUOTES);
11
+ if (strlen($text) > $char_number) {
12
+ $text = substr($text, 0, $char_number);
13
+ $text = substr($text,0,strrpos($text," "));
14
+
15
+ $punctuation = ".!?:;,-"; // punctuation you want removed
16
+
17
+ $text = (strspn(strrev($text), $punctuation) != 0)
18
+ ?
19
+ substr($text, 0, -strspn(strrev($text), $punctuation))
20
+ :
21
+ $text;
22
+
23
+ $text = $text.$etc;
24
+ }
25
+ $text = htmlentities($text, ENT_QUOTES);
26
+ return $text;
27
+ }
@@ -4,15 +4,19 @@
4
4
  add_theme_support("post-thumbnails");
5
5
  add_theme_support("menus");
6
6
 
7
+
8
+
7
9
  /* CUSTOM POST TYPE
8
10
  1: Type name, MUST be singular
9
11
  2: (opt) Icon name, check http://melchoyce.github.io/dashicons/
10
12
  3: (opt) Taxonomy name, MUST be singular
11
13
  */
12
- add_post_type("Product", "cart", "Brand"); // Sample
13
- // Allow the use of Product::find()
14
+ // Example:
15
+ add_post_type("Product", "cart", "Brand");
14
16
  class Product extends Post {};
15
17
 
18
+
19
+
16
20
  /* Remove Unnecessary ADMIN SIDEBAR
17
21
  - Use the slug
18
22
  */
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edge_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henner Setyono
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-27 00:00:00.000000000 Z
11
+ date: 2014-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -109,6 +109,7 @@ files:
109
109
  - assets/sass/edge/components/_code.scss
110
110
  - assets/sass/edge/components/_form.scss
111
111
  - assets/sass/edge/components/_grid.scss
112
+ - assets/sass/edge/components/_grid_old.scss
112
113
  - assets/sass/edge/components/_normalize.scss
113
114
  - assets/sass/edge/components/_print.scss
114
115
  - assets/sass/edge/components/_tile.scss
@@ -125,7 +126,6 @@ files:
125
126
  - lib/edge/sprockets.rb
126
127
  - lib/edge/version.rb
127
128
  - lib/edge_framework.rb
128
- - template/base/.gitignore
129
129
  - template/base/assets/css/.keep
130
130
  - template/base/assets/files/.keep
131
131
  - template/base/assets/fonts/.keep
@@ -139,16 +139,17 @@ files:
139
139
  - template/base/assets/sass/app.scss
140
140
  - template/base/assets/sass/framework.scss
141
141
  - template/base/config.rb
142
+ - template/base/gitignore
142
143
  - template/base/robots.txt
143
144
  - template/html/index.html
144
- - template/php/_footer.php
145
- - template/php/_header.php
146
- - template/php/index.php
147
145
  - template/rails/application.html.erb
148
146
  - template/wordpress/404.php
149
147
  - template/wordpress/category.php
148
+ - template/wordpress/code/cpt.php
150
149
  - template/wordpress/code/inflector.php
151
150
  - template/wordpress/code/main.php
151
+ - template/wordpress/code/query.php
152
+ - template/wordpress/code/util.php
152
153
  - template/wordpress/comments.php
153
154
  - template/wordpress/content-post.php
154
155
  - template/wordpress/content-posts.php
@@ -1,17 +0,0 @@
1
- <div id="footer-push"></div>
2
- </div>
3
- <footer class="main-footer"></footer>
4
-
5
- <!-- JAVASCRIPT LIBRARY -->
6
- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
7
- <script>
8
- // Fallback if Google's one doesn't load
9
- if (!window.jQuery) {
10
- document.write("<script src='assets/js/vendor/jquery.min.js'><\/script>");
11
- }
12
- </script>
13
- <script src="assets/js/vendor/fastclick.min.js"></script>
14
- <script src="assets/js/app.js"></script>
15
-
16
- </body>
17
- </html>
@@ -1,24 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width">
6
-
7
- <!-- WEBSITE DETAIL -->
8
- <title>My Website</title>
9
- <meta name="description" content="This is a description of your website, only first 160 characters matters">
10
-
11
- <!-- FAVICON -->
12
- <link rel="icon" href="assets/img/favicon.png">
13
- <link rel="apple-touch-icon-precomposed" href="assets/img/favicon-big.png">
14
-
15
- <!-- JAVASCRIPT that must load first -->
16
- <script src="assets/js/vendor/custom.modernizr.js"></script>
17
-
18
- <!-- STYLESHEET -->
19
- <link rel="stylesheet" href="assets/css/framework.css">
20
- <link rel="stylesheet" href="assets/css/app.css">
21
-
22
- </head>
23
- <body>
24
- <div id="main-wrapper">
@@ -1,5 +0,0 @@
1
- <?php include "_header.php"; ?>
2
-
3
- <!-- Content here -->
4
-
5
- <?php include "_footer.php"; ?>