├── .gitignore ├── LICENSE ├── README.md ├── _build ├── config.json ├── gpm_resolvers │ └── gpm.resolve.resources.php ├── resolvers │ ├── config.php │ ├── sample_content.php │ └── sample_settings.php └── setup.options.php ├── _packages └── flatso-1.1.1-pl.transport.zip ├── assets └── components │ └── flatso │ ├── css │ ├── flatso.css │ ├── mobile-nav.css │ └── reset.css │ ├── images │ ├── beach-house.jpg │ ├── downtown.jpg │ ├── facebook-white-35.png │ ├── forest.jpg │ ├── golden-city.jpg │ ├── golden-gate-bridge.jpg │ ├── home-page-image.jpg │ ├── modx-revo-2_3-icon.png │ ├── revine-yoga.jpg │ ├── rss-white-35.png │ ├── surf-city.jpg │ ├── twitter-white-35.png │ └── wayne-avatar.jpg │ ├── js │ └── mobile-nav.js │ └── styleguide │ ├── buttons.html │ ├── components.html │ ├── css │ ├── base.css │ └── modx-chunk.css │ ├── forms.html │ ├── fposts.html │ ├── giant-ads.html │ ├── index.html │ ├── listings.html │ ├── lists.html │ ├── nav-tab.html │ ├── navigation.html │ ├── tables.html │ └── text-blocks.html ├── core └── components │ └── flatso │ ├── docs │ ├── changelog.md │ ├── index.md │ └── license.md │ ├── elements │ ├── chunks │ │ ├── features │ │ │ ├── tpl.feature_featured_posts_sidebar_flatso.chunk.tpl │ │ │ └── tpl.feature_listing_flatso.chunk.tpl │ │ ├── flatsocss.chunk.tpl │ │ ├── listing │ │ │ ├── mxt.listing_aside_flatso.chunk.tpl │ │ │ ├── mxt.listing_content_flatso.chunk.tpl │ │ │ ├── mxt.listing_end_flatso.chunk.tpl │ │ │ ├── mxt.listing_header_flatso.chunk.tpl │ │ │ └── mxt.listing_start_flatso.chunk.tpl │ │ ├── mobile │ │ │ └── mobile-nav_flatso.chunk.tpl │ │ ├── mxt.global_assets_flatso.chunk.tpl │ │ ├── mxt.global_header_flatso.chunk.tpl │ │ ├── mxt.global_meta_flatso.chunk.tpl │ │ ├── nav_tab_support.chunk.tpl │ │ ├── page │ │ │ ├── mxt.page_content_flatso.chunk.tpl │ │ │ ├── mxt.page_end_flatso.chunk.tpl │ │ │ ├── mxt.page_header_flatso.chunk.tpl │ │ │ └── mxt.page_start_flatso.chunk.tpl │ │ ├── rss-item.chunk.tpl │ │ ├── styleguide.chunk.tpl │ │ └── tpls │ │ │ ├── tpl.arc_list_flatso.chunk.tpl │ │ │ ├── tpl.listing_tag_flatso.chunk.tpl │ │ │ ├── tpl.nav-item_flatso.chunk.tpl │ │ │ └── tpl.tag_list_flatso.chunk.tpl │ ├── snippets │ │ └── cateheading.snippet.php │ └── templates │ │ └── rss.template.tpl │ └── resources │ └── sample_resource.html └── screenshots ├── Flatso-Theme.jpeg ├── dependencies.jpeg ├── featured-posts.jpeg ├── flatso-config.jpeg ├── font-config.jpeg ├── mxt-config.jpeg └── theme-config.jpeg /.gitignore: -------------------------------------------------------------------------------- 1 | _build/build.config.php 2 | config.core.php 3 | 4 | _packages/*.* 5 | !_packages/.gitignore 6 | !_packages/*.zip 7 | 8 | .idea 9 | .settings 10 | nbproject 11 | .project 12 | 13 | .DS_Store 14 | .DS_Store? 15 | ._* 16 | .Spotlight-V100 17 | .Trashes 18 | ehthumbs.db 19 | Thumbs.db -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 MODX Content Management 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # flatso 2 | Home of Flatso: the simple personal blog theme for MODX, done without any "Parent Extras" like "Articles", but instead using MODX 2.4 dependencies to install Extras. 3 | 4 | YouTube Demo: [https://youtu.be/cARDoKmL9mg](https://youtu.be/cARDoKmL9mg) 5 | 6 | DEMO: [Live Site](http://flatso.clients.modxcloud.com/) 7 | Package: [Download v1.0.0-pl](flatso-1.0.0-pl.transport.zip) 8 | 9 | This package has 1 goal: 10 | 11 | **Get you up and running with a standard MODX Blog install with the least barrier to entry.** 12 | 13 | ##Framework 14 | 15 | Built on the [MODX Themes](https://github.com/modxcms/mxt/wiki) Framework 16 | 17 | The Wiki in this Repo should however contain all of the information you need about the **Theme Markup**. 18 | 19 | ##Requirements 20 | 21 | 1. MODX 2.4 - For the dependencies 22 | ![dependencies](screenshots/dependencies.jpeg) 23 | 24 | 2. MODX Theme Extra (Package) - For the base config 25 | ![MXT config](screenshots/mxt-config.jpeg) 26 | 27 | 3. Flatso Extra (Package) - For everything else! 28 | ![Flatso Config](screenshots/flatso-config.jpeg) 29 | 30 | 4. After install set Friendly URLs to `Yes` 31 | 32 | 5. Clear cache 33 | 34 | --- 35 | 36 | ![Screenshot](screenshots/Flatso-Theme.jpeg) 37 | -------------------------------------------------------------------------------- /_build/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Flatso", 3 | "lowCaseName": "flatso", 4 | "description": "Home of Flatso: the simple blog and theme for MODX, done right.", 5 | "author": "Wayne Roddy", 6 | "version": "1.1.1", 7 | "package": { 8 | "elements": { 9 | "templates": [ 10 | { 11 | "name": "RSS" 12 | } 13 | ], 14 | "snippets": [ 15 | { 16 | "name": "cateHeading" 17 | } 18 | ], 19 | "chunks": [ 20 | { 21 | "name": "nav_tab_support" 22 | }, 23 | { 24 | "name": "rss-item" 25 | }, 26 | { 27 | "name": "styleguide" 28 | }, 29 | { 30 | "name": "FlatsoCss" 31 | }, 32 | { 33 | "name": "mxt.global_assets_flatso" 34 | }, 35 | { 36 | "name": "mxt.global_header_flatso" 37 | }, 38 | { 39 | "name": "mxt.global_meta_flatso" 40 | }, 41 | { 42 | "name": "tpl.feature_featured_posts_sidebar_flatso", 43 | "category": "Features" 44 | }, 45 | { 46 | "name": "tpl.feature_listing_flatso", 47 | "category": "Features" 48 | }, 49 | { 50 | "name": "mxt.listing_aside_flatso", 51 | "category": "Listing" 52 | }, 53 | { 54 | "name": "mxt.listing_content_flatso", 55 | "category": "Listing" 56 | }, 57 | { 58 | "name": "mxt.listing_end_flatso", 59 | "category": "Listing" 60 | }, 61 | { 62 | "name": "mxt.listing_header_flatso", 63 | "category": "Listing" 64 | }, 65 | { 66 | "name": "mxt.listing_start_flatso", 67 | "category": "Listing" 68 | }, 69 | { 70 | "name": "mobile-nav_flatso", 71 | "category": "Mobile" 72 | }, 73 | { 74 | "name": "mxt.page_content_flatso", 75 | "category": "Page" 76 | }, 77 | { 78 | "name": "mxt.page_end_flatso", 79 | "category": "Page" 80 | }, 81 | { 82 | "name": "mxt.page_header_flatso", 83 | "category": "Page" 84 | }, 85 | { 86 | "name": "mxt.page_start_flatso", 87 | "category": "Page" 88 | }, 89 | { 90 | "name": "tpl.arc_list_flatso", 91 | "category": "TPLs" 92 | }, 93 | { 94 | "name": "tpl.listing_tag_flatso", 95 | "category": "TPLs" 96 | }, 97 | { 98 | "name": "tpl.nav-item_flatso", 99 | "category": "TPLs" 100 | }, 101 | { 102 | "name": "tpl.tag_list_flatso", 103 | "category": "TPLs" 104 | } 105 | ], 106 | "categories": [ 107 | { 108 | "name": "Features" 109 | }, 110 | { 111 | "name": "Listing" 112 | }, 113 | { 114 | "name": "Mobile" 115 | }, 116 | { 117 | "name": "Page" 118 | }, 119 | { 120 | "name": "TPLs" 121 | } 122 | ] 123 | }, 124 | "resources": [ 125 | { 126 | "pagetitle": "Home", 127 | "alias": "index", 128 | "template": "MX Template", 129 | "isfolder": 1, 130 | "published": 1, 131 | "class_key": "CollectionContainer", 132 | "setAsHome": 1, 133 | "tvs": [ 134 | { 135 | "name": "content_tpl", 136 | "value": "listing" 137 | }, 138 | { 139 | "name": "body_tpl", 140 | "value": "page" 141 | }, 142 | { 143 | "name": "page_icon", 144 | "value": "fa-home" 145 | }, 146 | { 147 | "name": "page_img", 148 | "value": "assets/components/flatso/images/home-page-image.jpg" 149 | }, 150 | { 151 | "name": "fpost_ids", 152 | "value": "9,10" 153 | }, 154 | { 155 | "name": "hero_banner", 156 | "value": "yes" 157 | }, 158 | { 159 | "name": "carousel_ids", 160 | "value": "" 161 | }, 162 | { 163 | "name": "slider_ids", 164 | "value": "" 165 | }, 166 | { 167 | "name": "listing_ids", 168 | "value": "" 169 | }, 170 | { 171 | "name": "listbyparent", 172 | "value": "" 173 | } 174 | ] 175 | }, 176 | { 177 | "pagetitle": "Categories", 178 | "longtitle": "All Categories", 179 | "alias": "tags", 180 | "template": "MX Template", 181 | "published": 1, 182 | "isfolder": 1, 183 | "tvs": [ 184 | { 185 | "name": "content_tpl", 186 | "value": "listing" 187 | }, 188 | { 189 | "name": "body_tpl", 190 | "value": "page" 191 | }, 192 | { 193 | "name": "page_icon", 194 | "value": "" 195 | }, 196 | { 197 | "name": "page_img", 198 | "value": "" 199 | }, 200 | { 201 | "name": "fpost_ids", 202 | "value": "" 203 | }, 204 | { 205 | "name": "hero_banner", 206 | "value": "" 207 | }, 208 | { 209 | "name": "carousel_ids", 210 | "value": "" 211 | }, 212 | { 213 | "name": "slider_ids", 214 | "value": "" 215 | }, 216 | { 217 | "name": "listing_ids", 218 | "value": "" 219 | }, 220 | { 221 | "name": "listbyparent", 222 | "value": "" 223 | } 224 | ] 225 | }, 226 | { 227 | "pagetitle": "RSS", 228 | "alias": "rss", 229 | "introtext": "RSS FEED", 230 | "template": "RSS", 231 | "published": 1, 232 | "searchable": 0, 233 | "richtext": 0, 234 | "cacheable": 0, 235 | "hidemenu": 1, 236 | "content_type": "RSS" 237 | }, 238 | { 239 | "pagetitle": "Style Guide", 240 | "longtitle": "Style Guide", 241 | "alias": "style-guide", 242 | "template": "MX Template", 243 | "published": 1, 244 | "content": "[[$styleguide]]", 245 | "tvs": [ 246 | { 247 | "name": "content_tpl", 248 | "value": "page" 249 | }, 250 | { 251 | "name": "body_tpl", 252 | "value": "page" 253 | }, 254 | { 255 | "name": "page_icon", 256 | "value": "" 257 | }, 258 | { 259 | "name": "page_img", 260 | "value": "assets/components/flatso/images/revine-yoga.jpg" 261 | }, 262 | { 263 | "name": "fpost_ids", 264 | "value": "" 265 | }, 266 | { 267 | "name": "hero_banner", 268 | "value": "yes" 269 | }, 270 | { 271 | "name": "carousel_ids", 272 | "value": "" 273 | }, 274 | { 275 | "name": "slider_ids", 276 | "value": "" 277 | }, 278 | { 279 | "name": "listing_ids", 280 | "value": "" 281 | }, 282 | { 283 | "name": "listbyparent", 284 | "value": "" 285 | } 286 | ] 287 | }, 288 | { 289 | "pagetitle": "Archives", 290 | "longtitle": "[[+arc_month_name]] [[+arc_year]] Archives", 291 | "introtext": "A lot can happen in a month", 292 | "alias": "archives", 293 | "template": "MX Template", 294 | "published": 1, 295 | "isfolder": 1, 296 | "tvs": [ 297 | { 298 | "name": "content_tpl", 299 | "value": "listing" 300 | }, 301 | { 302 | "name": "body_tpl", 303 | "value": "page" 304 | }, 305 | { 306 | "name": "page_icon", 307 | "value": "" 308 | }, 309 | { 310 | "name": "page_img", 311 | "value": "" 312 | }, 313 | { 314 | "name": "fpost_ids", 315 | "value": "" 316 | }, 317 | { 318 | "name": "hero_banner", 319 | "value": "" 320 | }, 321 | { 322 | "name": "carousel_ids", 323 | "value": "" 324 | }, 325 | { 326 | "name": "slider_ids", 327 | "value": "" 328 | }, 329 | { 330 | "name": "listing_ids", 331 | "value": "" 332 | }, 333 | { 334 | "name": "listbyparent", 335 | "value": "" 336 | } 337 | ] 338 | }, 339 | { 340 | "pagetitle": "Golden Gate Bridge", 341 | "longtitle": "Golden Gate Bridge", 342 | "description": "Golden Gate Bridge spans the San Francisco Bay.", 343 | "introtext": "Golden Gate Bridge spans the San Francisco Bay.", 344 | "published": 1, 345 | "alias": "golden-gate-bridge", 346 | "template": "MX Template", 347 | "file": "sample_resource.html", 348 | "parent": "Home", 349 | "tvs": [ 350 | { 351 | "name": "content_tpl", 352 | "value": "page" 353 | }, 354 | { 355 | "name": "body_tpl", 356 | "value": "page" 357 | }, 358 | { 359 | "name": "page_icon", 360 | "value": "" 361 | }, 362 | { 363 | "name": "page_img", 364 | "value": "assets/components/flatso/images/golden-gate-bridge.jpg" 365 | }, 366 | { 367 | "name": "fpost_ids", 368 | "value": "" 369 | }, 370 | { 371 | "name": "hero_banner", 372 | "value": "" 373 | }, 374 | { 375 | "name": "carousel_ids", 376 | "value": "" 377 | }, 378 | { 379 | "name": "slider_ids", 380 | "value": "" 381 | }, 382 | { 383 | "name": "listing_ids", 384 | "value": "" 385 | }, 386 | { 387 | "name": "listbyparent", 388 | "value": "" 389 | } 390 | ], 391 | "others": [ 392 | { 393 | "name": "tagger-category", 394 | "value": "Landmarks" 395 | } 396 | ] 397 | }, 398 | { 399 | "pagetitle": "Redwood Forest", 400 | "longtitle": "Redwood Forest", 401 | "description": "Find everything you need to plan your Northern California vacation in the redwoods.", 402 | "introtext": "Find everything you need to plan your Northern California vacation in the redwoods.", 403 | "published": 1, 404 | "alias": "redwood-forest", 405 | "template": "MX Template", 406 | "file": "sample_resource.html", 407 | "parent": "Home", 408 | "tvs": [ 409 | { 410 | "name": "content_tpl", 411 | "value": "page" 412 | }, 413 | { 414 | "name": "body_tpl", 415 | "value": "page" 416 | }, 417 | { 418 | "name": "page_icon", 419 | "value": "" 420 | }, 421 | { 422 | "name": "page_img", 423 | "value": "assets/components/flatso/images/forest.jpg" 424 | }, 425 | { 426 | "name": "fpost_ids", 427 | "value": "" 428 | }, 429 | { 430 | "name": "hero_banner", 431 | "value": "" 432 | }, 433 | { 434 | "name": "carousel_ids", 435 | "value": "" 436 | }, 437 | { 438 | "name": "slider_ids", 439 | "value": "" 440 | }, 441 | { 442 | "name": "listing_ids", 443 | "value": "" 444 | }, 445 | { 446 | "name": "listbyparent", 447 | "value": "" 448 | } 449 | ], 450 | "others": [ 451 | { 452 | "name": "tagger-category", 453 | "value": "Landmarks" 454 | } 455 | ] 456 | }, 457 | { 458 | "pagetitle": "Golden City", 459 | "longtitle": "Golden City", 460 | "introtext": "Look at this beautiful color. ", 461 | "published": 1, 462 | "alias": "golden-city", 463 | "template": "MX Template", 464 | "file": "sample_resource.html", 465 | "parent": "Home", 466 | "tvs": [ 467 | { 468 | "name": "content_tpl", 469 | "value": "page" 470 | }, 471 | { 472 | "name": "body_tpl", 473 | "value": "page" 474 | }, 475 | { 476 | "name": "page_icon", 477 | "value": "" 478 | }, 479 | { 480 | "name": "page_img", 481 | "value": "assets/components/flatso/images/golden-city.jpg" 482 | }, 483 | { 484 | "name": "fpost_ids", 485 | "value": "" 486 | }, 487 | { 488 | "name": "hero_banner", 489 | "value": "yes" 490 | }, 491 | { 492 | "name": "carousel_ids", 493 | "value": "" 494 | }, 495 | { 496 | "name": "slider_ids", 497 | "value": "" 498 | }, 499 | { 500 | "name": "listing_ids", 501 | "value": "" 502 | }, 503 | { 504 | "name": "listbyparent", 505 | "value": "" 506 | } 507 | ], 508 | "others": [ 509 | { 510 | "name": "tagger-category", 511 | "value": "Landscapes" 512 | } 513 | ] 514 | }, 515 | { 516 | "pagetitle": "Downtown Hustle", 517 | "longtitle": "Downtown Hustle", 518 | "published": 1, 519 | "alias": "downtown-hustle", 520 | "template": "MX Template", 521 | "file": "sample_resource.html", 522 | "parent": "Home", 523 | "tvs": [ 524 | { 525 | "name": "content_tpl", 526 | "value": "page" 527 | }, 528 | { 529 | "name": "body_tpl", 530 | "value": "page" 531 | }, 532 | { 533 | "name": "page_icon", 534 | "value": "" 535 | }, 536 | { 537 | "name": "page_img", 538 | "value": "assets/components/flatso/images/downtown.jpg" 539 | }, 540 | { 541 | "name": "fpost_ids", 542 | "value": "" 543 | }, 544 | { 545 | "name": "hero_banner", 546 | "value": "yes" 547 | }, 548 | { 549 | "name": "carousel_ids", 550 | "value": "" 551 | }, 552 | { 553 | "name": "slider_ids", 554 | "value": "" 555 | }, 556 | { 557 | "name": "listing_ids", 558 | "value": "" 559 | }, 560 | { 561 | "name": "listbyparent", 562 | "value": "" 563 | } 564 | ], 565 | "others": [ 566 | { 567 | "name": "tagger-category", 568 | "value": "Landscapes" 569 | } 570 | ] 571 | }, 572 | { 573 | "pagetitle": "Coastal Beach House", 574 | "longtitle": "Coastal Beach House", 575 | "description": "The shores of Orange Park are a mellow sight.", 576 | "introtext": "The shores of Orange Park are a mellow sight.", 577 | "published": 1, 578 | "alias": "coastal-beach-house", 579 | "template": "MX Template", 580 | "file": "sample_resource.html", 581 | "parent": "Home", 582 | "tvs": [ 583 | { 584 | "name": "content_tpl", 585 | "value": "page" 586 | }, 587 | { 588 | "name": "body_tpl", 589 | "value": "page" 590 | }, 591 | { 592 | "name": "page_icon", 593 | "value": "" 594 | }, 595 | { 596 | "name": "page_img", 597 | "value": "assets/components/flatso/images/beach-house.jpg" 598 | }, 599 | { 600 | "name": "fpost_ids", 601 | "value": "" 602 | }, 603 | { 604 | "name": "hero_banner", 605 | "value": "yes" 606 | }, 607 | { 608 | "name": "carousel_ids", 609 | "value": "" 610 | }, 611 | { 612 | "name": "slider_ids", 613 | "value": "" 614 | }, 615 | { 616 | "name": "listing_ids", 617 | "value": "" 618 | }, 619 | { 620 | "name": "listbyparent", 621 | "value": "" 622 | } 623 | ], 624 | "others": [ 625 | { 626 | "name": "tagger-category", 627 | "value": "Landmarks" 628 | } 629 | ] 630 | }, 631 | { 632 | "pagetitle": "Surf City", 633 | "longtitle": "Surf City", 634 | "description": "Hang Ten Brah!", 635 | "introtext": "Hang Ten Brah!", 636 | "published": 1, 637 | "alias": "surf-city", 638 | "template": "MX Template", 639 | "file": "sample_resource.html", 640 | "parent": "Home", 641 | "tvs": [ 642 | { 643 | "name": "content_tpl", 644 | "value": "page" 645 | }, 646 | { 647 | "name": "body_tpl", 648 | "value": "page" 649 | }, 650 | { 651 | "name": "page_icon", 652 | "value": "" 653 | }, 654 | { 655 | "name": "page_img", 656 | "value": "assets/components/flatso/images/surf-city.jpg" 657 | }, 658 | { 659 | "name": "fpost_ids", 660 | "value": "" 661 | }, 662 | { 663 | "name": "hero_banner", 664 | "value": "yes" 665 | }, 666 | { 667 | "name": "carousel_ids", 668 | "value": "" 669 | }, 670 | { 671 | "name": "slider_ids", 672 | "value": "" 673 | }, 674 | { 675 | "name": "listing_ids", 676 | "value": "" 677 | }, 678 | { 679 | "name": "listbyparent", 680 | "value": "" 681 | } 682 | ], 683 | "others": [ 684 | { 685 | "name": "tagger-category", 686 | "value": "Landscapes" 687 | } 688 | ] 689 | } 690 | ], 691 | "systemSettings": [ 692 | { 693 | "key": "archive_id", 694 | "value": "" 695 | }, 696 | { 697 | "key": "blog_id", 698 | "value": "" 699 | }, 700 | { 701 | "key": "category_id", 702 | "value": "" 703 | }, 704 | { 705 | "key": "rss_id", 706 | "value": "" 707 | }, 708 | { 709 | "key": "site_logo", 710 | "value": "" 711 | } 712 | ] 713 | }, 714 | "dependencies": [ 715 | { 716 | "name": "mxt", 717 | "version": ">=1.0.0" 718 | }, 719 | { 720 | "name": "collections", 721 | "version": ">=3.2.0" 722 | }, 723 | { 724 | "name": "tagger", 725 | "version": ">=1.7.0" 726 | }, 727 | { 728 | "name": "getresources", 729 | "version": ">=1.6.0" 730 | }, 731 | { 732 | "name": "archivist", 733 | "version": ">=1.2.0" 734 | }, 735 | { 736 | "name": "getpage", 737 | "version": ">=1.2.0" 738 | }, 739 | { 740 | "name": "pthumb", 741 | "version": ">=2.3.0" 742 | }, 743 | { 744 | "name": "resizer", 745 | "version": ">=1.0.0" 746 | }, 747 | { 748 | "name": "switch", 749 | "version": ">=1.1.0" 750 | }, 751 | { 752 | "name": "clientconfig", 753 | "version": ">=1.3.0" 754 | } 755 | ], 756 | "build": { 757 | "readme": "docs/index.md", 758 | "license": "docs/license.md", 759 | "changelog": "docs/changelog.md", 760 | "setupOptions": { 761 | "source": "setup.options.php" 762 | }, 763 | "resolver": { 764 | "before": ["sample_content.php"], 765 | "after": ["sample_settings.php", "config.php"] 766 | } 767 | } 768 | } 769 | -------------------------------------------------------------------------------- /_build/gpm_resolvers/gpm.resolve.resources.php: -------------------------------------------------------------------------------- 1 | xpdo) return false; 13 | /** @var modX $modx */ 14 | $modx =& $object->xpdo; 15 | 16 | if (!function_exists('getResourceMap')) { 17 | function getResourceMap() { 18 | global $modx; 19 | 20 | $assetsPath = rtrim($modx->getOption('flatso.assets_path',null,$modx->getOption('assets_path').'components/flatso/'), '/') . '/'; 21 | $rmf = $assetsPath . 'resourcemap.php'; 22 | 23 | if (is_readable($rmf)) { 24 | $map = include $rmf; 25 | } else { 26 | $map = array(); 27 | } 28 | 29 | return $map; 30 | } 31 | } 32 | 33 | if (!function_exists('setResourceMap')) { 34 | function setResourceMap($resourceMap) { 35 | global $modx; 36 | 37 | $assetsPath = rtrim($modx->getOption('flatso.assets_path',null,$modx->getOption('assets_path').'components/flatso/'), '/') . '/'; 38 | $rmf = $assetsPath . 'resourcemap.php'; 39 | file_put_contents($rmf, 'getOption('tagger.core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/tagger/'); 60 | if (file_exists($taggerCorePath . 'model/tagger/tagger.class.php')) { 61 | /** @var Tagger $tagger */ 62 | $tagger = $modx->getService( 63 | 'tagger', 64 | 'Tagger', 65 | $taggerCorePath . 'model/tagger/', 66 | array( 67 | 'core_path' => $taggerCorePath 68 | ) 69 | ); 70 | 71 | $tagger = $tagger instanceof Tagger; 72 | } else { 73 | $tagger = null; 74 | } 75 | 76 | foreach ($others as $other) { 77 | if (($tagger == true) && (strpos($other['name'], 'tagger-') !== false)) { 78 | $groupAlias = preg_replace('/tagger-/', '', $other['name'], 1); 79 | 80 | $group = $modx->getObject('TaggerGroup', array('alias' => $groupAlias)); 81 | if ($group) { 82 | $other['name'] = 'tagger-' . $group->id; 83 | } 84 | } 85 | 86 | $resource[$other['name']] = $other['value']; 87 | } 88 | } 89 | 90 | $res = $modx->runProcessor('resource/create', $resource); 91 | $resObject = $res->getObject(); 92 | 93 | if ($resObject && isset($resObject['id'])) { 94 | /** @var modResource $modResource */ 95 | $modResource = $modx->getObject('modResource', array('id' => $resObject['id'])); 96 | 97 | if ($modResource) { 98 | foreach ($tvs as $tv) { 99 | $modResource->setTVValue($tv['name'], $tv['value']); 100 | } 101 | 102 | return $modResource->id; 103 | } 104 | } 105 | 106 | return false; 107 | } 108 | } 109 | 110 | if (!function_exists('updateResource')) { 111 | function updateResource($resource) { 112 | global $modx; 113 | 114 | if (isset($resource['tvs'])) { 115 | $tvs = $resource['tvs']; 116 | unset($resource['tvs']); 117 | } else { 118 | $tvs = array(); 119 | } 120 | 121 | if (isset($resource['others'])) { 122 | $others = $resource['others']; 123 | unset($resource['others']); 124 | 125 | $taggerCorePath = $modx->getOption('tagger.core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/tagger/'); 126 | if (file_exists($taggerCorePath . 'model/tagger/tagger.class.php')) { 127 | /** @var Tagger $tagger */ 128 | $tagger = $modx->getService( 129 | 'tagger', 130 | 'Tagger', 131 | $taggerCorePath . 'model/tagger/', 132 | array( 133 | 'core_path' => $taggerCorePath 134 | ) 135 | ); 136 | 137 | $tagger = $tagger instanceof Tagger; 138 | } else { 139 | $tagger = null; 140 | } 141 | 142 | foreach ($others as $other) { 143 | if (($tagger == true) && (strpos($other['name'], 'tagger-') !== false)) { 144 | $groupAlias = preg_replace('/tagger-/', '', $other['name'], 1); 145 | 146 | $group = $modx->getObject('TaggerGroup', array('alias' => $groupAlias)); 147 | if ($group) { 148 | $other['name'] = 'tagger-' . $group->id; 149 | } 150 | } 151 | 152 | $resource[$other['name']] = $other['value']; 153 | } 154 | } 155 | 156 | $res = $modx->runProcessor('resource/update', $resource); 157 | $resObject = $res->getObject(); 158 | 159 | if ($resObject && isset($resObject['id'])) { 160 | /** @var modResource $modResource */ 161 | $modResource = $modx->getObject('modResource', array('id' => $resObject['id'])); 162 | 163 | if ($modResource) { 164 | foreach ($tvs as $tv) { 165 | $modResource->setTVValue($tv['name'], $tv['value']); 166 | } 167 | 168 | return $modResource->id; 169 | } 170 | } 171 | 172 | return false; 173 | } 174 | } 175 | 176 | switch ($options[xPDOTransport::PACKAGE_ACTION]) { 177 | case xPDOTransport::ACTION_INSTALL: 178 | case xPDOTransport::ACTION_UPGRADE: 179 | $resources = array ( 180 | 0 => 181 | array ( 182 | 'pagetitle' => 'Home', 183 | 'alias' => 'index', 184 | 'parent' => 0, 185 | 'content' => '', 186 | 'context_key' => 'web', 187 | 'class_key' => 'CollectionContainer', 188 | 'longtitle' => '', 189 | 'description' => '', 190 | 'isfolder' => 1, 191 | 'introtext' => '', 192 | 'deleted' => 0, 193 | 'menutitle' => '', 194 | 'hide_children_in_tree' => 0, 195 | 'show_in_tree' => 1, 196 | 'set_as_home' => 1, 197 | 'tvs' => 198 | array ( 199 | 'content_tpl' => 200 | array ( 201 | 'name' => 'content_tpl', 202 | 'value' => 'listing', 203 | ), 204 | 'body_tpl' => 205 | array ( 206 | 'name' => 'body_tpl', 207 | 'value' => 'page', 208 | ), 209 | 'page_icon' => 210 | array ( 211 | 'name' => 'page_icon', 212 | 'value' => 'fa-home', 213 | ), 214 | 'page_img' => 215 | array ( 216 | 'name' => 'page_img', 217 | 'value' => 'assets/components/flatso/images/home-page-image.jpg', 218 | ), 219 | 'fpost_ids' => 220 | array ( 221 | 'name' => 'fpost_ids', 222 | 'value' => '9,10', 223 | ), 224 | 'hero_banner' => 225 | array ( 226 | 'name' => 'hero_banner', 227 | 'value' => 'yes', 228 | ), 229 | 'carousel_ids' => 230 | array ( 231 | 'name' => 'carousel_ids', 232 | 'value' => '', 233 | ), 234 | 'slider_ids' => 235 | array ( 236 | 'name' => 'slider_ids', 237 | 'value' => '', 238 | ), 239 | 'listing_ids' => 240 | array ( 241 | 'name' => 'listing_ids', 242 | 'value' => '', 243 | ), 244 | 'listbyparent' => 245 | array ( 246 | 'name' => 'listbyparent', 247 | 'value' => '', 248 | ), 249 | ), 250 | 'others' => 251 | array ( 252 | ), 253 | 'template' => 'MX Template', 254 | 'published' => 1, 255 | ), 256 | 1 => 257 | array ( 258 | 'pagetitle' => 'Categories', 259 | 'alias' => 'tags', 260 | 'parent' => 0, 261 | 'content' => '', 262 | 'context_key' => 'web', 263 | 'class_key' => 'modDocument', 264 | 'longtitle' => 'All Categories', 265 | 'description' => '', 266 | 'isfolder' => 1, 267 | 'introtext' => '', 268 | 'deleted' => 0, 269 | 'menutitle' => '', 270 | 'hide_children_in_tree' => 0, 271 | 'show_in_tree' => 1, 272 | 'set_as_home' => 0, 273 | 'tvs' => 274 | array ( 275 | 'content_tpl' => 276 | array ( 277 | 'name' => 'content_tpl', 278 | 'value' => 'listing', 279 | ), 280 | 'body_tpl' => 281 | array ( 282 | 'name' => 'body_tpl', 283 | 'value' => 'page', 284 | ), 285 | 'page_icon' => 286 | array ( 287 | 'name' => 'page_icon', 288 | 'value' => '', 289 | ), 290 | 'page_img' => 291 | array ( 292 | 'name' => 'page_img', 293 | 'value' => '', 294 | ), 295 | 'fpost_ids' => 296 | array ( 297 | 'name' => 'fpost_ids', 298 | 'value' => '', 299 | ), 300 | 'hero_banner' => 301 | array ( 302 | 'name' => 'hero_banner', 303 | 'value' => '', 304 | ), 305 | 'carousel_ids' => 306 | array ( 307 | 'name' => 'carousel_ids', 308 | 'value' => '', 309 | ), 310 | 'slider_ids' => 311 | array ( 312 | 'name' => 'slider_ids', 313 | 'value' => '', 314 | ), 315 | 'listing_ids' => 316 | array ( 317 | 'name' => 'listing_ids', 318 | 'value' => '', 319 | ), 320 | 'listbyparent' => 321 | array ( 322 | 'name' => 'listbyparent', 323 | 'value' => '', 324 | ), 325 | ), 326 | 'others' => 327 | array ( 328 | ), 329 | 'template' => 'MX Template', 330 | 'published' => 1, 331 | ), 332 | 2 => 333 | array ( 334 | 'pagetitle' => 'RSS', 335 | 'alias' => 'rss', 336 | 'parent' => 0, 337 | 'content' => '', 338 | 'context_key' => 'web', 339 | 'class_key' => 'modDocument', 340 | 'longtitle' => '', 341 | 'description' => '', 342 | 'isfolder' => 0, 343 | 'introtext' => 'RSS FEED', 344 | 'deleted' => 0, 345 | 'menutitle' => '', 346 | 'hide_children_in_tree' => 0, 347 | 'show_in_tree' => 1, 348 | 'set_as_home' => 0, 349 | 'tvs' => 350 | array ( 351 | ), 352 | 'others' => 353 | array ( 354 | ), 355 | 'template' => 'RSS', 356 | 'content_type' => 'RSS', 357 | 'published' => 1, 358 | 'hidemenu' => 1, 359 | 'cacheable' => 0, 360 | 'searchable' => 0, 361 | 'richtext' => 0, 362 | ), 363 | 3 => 364 | array ( 365 | 'pagetitle' => 'Style Guide', 366 | 'alias' => 'style-guide', 367 | 'parent' => 0, 368 | 'content' => '[[$styleguide]]', 369 | 'context_key' => 'web', 370 | 'class_key' => 'modDocument', 371 | 'longtitle' => 'Style Guide', 372 | 'description' => '', 373 | 'isfolder' => 0, 374 | 'introtext' => '', 375 | 'deleted' => 0, 376 | 'menutitle' => '', 377 | 'hide_children_in_tree' => 0, 378 | 'show_in_tree' => 1, 379 | 'set_as_home' => 0, 380 | 'tvs' => 381 | array ( 382 | 'content_tpl' => 383 | array ( 384 | 'name' => 'content_tpl', 385 | 'value' => 'page', 386 | ), 387 | 'body_tpl' => 388 | array ( 389 | 'name' => 'body_tpl', 390 | 'value' => 'page', 391 | ), 392 | 'page_icon' => 393 | array ( 394 | 'name' => 'page_icon', 395 | 'value' => '', 396 | ), 397 | 'page_img' => 398 | array ( 399 | 'name' => 'page_img', 400 | 'value' => 'assets/components/flatso/images/revine-yoga.jpg', 401 | ), 402 | 'fpost_ids' => 403 | array ( 404 | 'name' => 'fpost_ids', 405 | 'value' => '', 406 | ), 407 | 'hero_banner' => 408 | array ( 409 | 'name' => 'hero_banner', 410 | 'value' => 'yes', 411 | ), 412 | 'carousel_ids' => 413 | array ( 414 | 'name' => 'carousel_ids', 415 | 'value' => '', 416 | ), 417 | 'slider_ids' => 418 | array ( 419 | 'name' => 'slider_ids', 420 | 'value' => '', 421 | ), 422 | 'listing_ids' => 423 | array ( 424 | 'name' => 'listing_ids', 425 | 'value' => '', 426 | ), 427 | 'listbyparent' => 428 | array ( 429 | 'name' => 'listbyparent', 430 | 'value' => '', 431 | ), 432 | ), 433 | 'others' => 434 | array ( 435 | ), 436 | 'template' => 'MX Template', 437 | 'published' => 1, 438 | ), 439 | 4 => 440 | array ( 441 | 'pagetitle' => 'Archives', 442 | 'alias' => 'archives', 443 | 'parent' => 0, 444 | 'content' => '', 445 | 'context_key' => 'web', 446 | 'class_key' => 'modDocument', 447 | 'longtitle' => '[[+arc_month_name]] [[+arc_year]] Archives', 448 | 'description' => '', 449 | 'isfolder' => 1, 450 | 'introtext' => 'A lot can happen in a month', 451 | 'deleted' => 0, 452 | 'menutitle' => '', 453 | 'hide_children_in_tree' => 0, 454 | 'show_in_tree' => 1, 455 | 'set_as_home' => 0, 456 | 'tvs' => 457 | array ( 458 | 'content_tpl' => 459 | array ( 460 | 'name' => 'content_tpl', 461 | 'value' => 'listing', 462 | ), 463 | 'body_tpl' => 464 | array ( 465 | 'name' => 'body_tpl', 466 | 'value' => 'page', 467 | ), 468 | 'page_icon' => 469 | array ( 470 | 'name' => 'page_icon', 471 | 'value' => '', 472 | ), 473 | 'page_img' => 474 | array ( 475 | 'name' => 'page_img', 476 | 'value' => '', 477 | ), 478 | 'fpost_ids' => 479 | array ( 480 | 'name' => 'fpost_ids', 481 | 'value' => '', 482 | ), 483 | 'hero_banner' => 484 | array ( 485 | 'name' => 'hero_banner', 486 | 'value' => '', 487 | ), 488 | 'carousel_ids' => 489 | array ( 490 | 'name' => 'carousel_ids', 491 | 'value' => '', 492 | ), 493 | 'slider_ids' => 494 | array ( 495 | 'name' => 'slider_ids', 496 | 'value' => '', 497 | ), 498 | 'listing_ids' => 499 | array ( 500 | 'name' => 'listing_ids', 501 | 'value' => '', 502 | ), 503 | 'listbyparent' => 504 | array ( 505 | 'name' => 'listbyparent', 506 | 'value' => '', 507 | ), 508 | ), 509 | 'others' => 510 | array ( 511 | ), 512 | 'template' => 'MX Template', 513 | 'published' => 1, 514 | ), 515 | 5 => 516 | array ( 517 | 'pagetitle' => 'Golden Gate Bridge', 518 | 'alias' => 'golden-gate-bridge', 519 | 'parent' => 'Home', 520 | 'content' => '

521 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation. 522 |

523 |

524 | Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. 525 |

526 |

527 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. 528 |

', 529 | 'context_key' => 'web', 530 | 'class_key' => 'modDocument', 531 | 'longtitle' => 'Golden Gate Bridge', 532 | 'description' => 'Golden Gate Bridge spans the San Francisco Bay.', 533 | 'isfolder' => 0, 534 | 'introtext' => 'Golden Gate Bridge spans the San Francisco Bay.', 535 | 'deleted' => 0, 536 | 'menutitle' => '', 537 | 'hide_children_in_tree' => 0, 538 | 'show_in_tree' => 1, 539 | 'set_as_home' => 0, 540 | 'tvs' => 541 | array ( 542 | 'content_tpl' => 543 | array ( 544 | 'name' => 'content_tpl', 545 | 'value' => 'page', 546 | ), 547 | 'body_tpl' => 548 | array ( 549 | 'name' => 'body_tpl', 550 | 'value' => 'page', 551 | ), 552 | 'page_icon' => 553 | array ( 554 | 'name' => 'page_icon', 555 | 'value' => '', 556 | ), 557 | 'page_img' => 558 | array ( 559 | 'name' => 'page_img', 560 | 'value' => 'assets/components/flatso/images/golden-gate-bridge.jpg', 561 | ), 562 | 'fpost_ids' => 563 | array ( 564 | 'name' => 'fpost_ids', 565 | 'value' => '', 566 | ), 567 | 'hero_banner' => 568 | array ( 569 | 'name' => 'hero_banner', 570 | 'value' => '', 571 | ), 572 | 'carousel_ids' => 573 | array ( 574 | 'name' => 'carousel_ids', 575 | 'value' => '', 576 | ), 577 | 'slider_ids' => 578 | array ( 579 | 'name' => 'slider_ids', 580 | 'value' => '', 581 | ), 582 | 'listing_ids' => 583 | array ( 584 | 'name' => 'listing_ids', 585 | 'value' => '', 586 | ), 587 | 'listbyparent' => 588 | array ( 589 | 'name' => 'listbyparent', 590 | 'value' => '', 591 | ), 592 | ), 593 | 'others' => 594 | array ( 595 | 0 => 596 | array ( 597 | 'name' => 'tagger-category', 598 | 'value' => 'Landmarks', 599 | ), 600 | ), 601 | 'template' => 'MX Template', 602 | 'published' => 1, 603 | ), 604 | 6 => 605 | array ( 606 | 'pagetitle' => 'Redwood Forest', 607 | 'alias' => 'redwood-forest', 608 | 'parent' => 'Home', 609 | 'content' => '

610 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation. 611 |

612 |

613 | Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. 614 |

615 |

616 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. 617 |

', 618 | 'context_key' => 'web', 619 | 'class_key' => 'modDocument', 620 | 'longtitle' => 'Redwood Forest', 621 | 'description' => 'Find everything you need to plan your Northern California vacation in the redwoods.', 622 | 'isfolder' => 0, 623 | 'introtext' => 'Find everything you need to plan your Northern California vacation in the redwoods.', 624 | 'deleted' => 0, 625 | 'menutitle' => '', 626 | 'hide_children_in_tree' => 0, 627 | 'show_in_tree' => 1, 628 | 'set_as_home' => 0, 629 | 'tvs' => 630 | array ( 631 | 'content_tpl' => 632 | array ( 633 | 'name' => 'content_tpl', 634 | 'value' => 'page', 635 | ), 636 | 'body_tpl' => 637 | array ( 638 | 'name' => 'body_tpl', 639 | 'value' => 'page', 640 | ), 641 | 'page_icon' => 642 | array ( 643 | 'name' => 'page_icon', 644 | 'value' => '', 645 | ), 646 | 'page_img' => 647 | array ( 648 | 'name' => 'page_img', 649 | 'value' => 'assets/components/flatso/images/forest.jpg', 650 | ), 651 | 'fpost_ids' => 652 | array ( 653 | 'name' => 'fpost_ids', 654 | 'value' => '', 655 | ), 656 | 'hero_banner' => 657 | array ( 658 | 'name' => 'hero_banner', 659 | 'value' => '', 660 | ), 661 | 'carousel_ids' => 662 | array ( 663 | 'name' => 'carousel_ids', 664 | 'value' => '', 665 | ), 666 | 'slider_ids' => 667 | array ( 668 | 'name' => 'slider_ids', 669 | 'value' => '', 670 | ), 671 | 'listing_ids' => 672 | array ( 673 | 'name' => 'listing_ids', 674 | 'value' => '', 675 | ), 676 | 'listbyparent' => 677 | array ( 678 | 'name' => 'listbyparent', 679 | 'value' => '', 680 | ), 681 | ), 682 | 'others' => 683 | array ( 684 | 0 => 685 | array ( 686 | 'name' => 'tagger-category', 687 | 'value' => 'Landmarks', 688 | ), 689 | ), 690 | 'template' => 'MX Template', 691 | 'published' => 1, 692 | ), 693 | 7 => 694 | array ( 695 | 'pagetitle' => 'Golden City', 696 | 'alias' => 'golden-city', 697 | 'parent' => 'Home', 698 | 'content' => '

699 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation. 700 |

701 |

702 | Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. 703 |

704 |

705 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. 706 |

', 707 | 'context_key' => 'web', 708 | 'class_key' => 'modDocument', 709 | 'longtitle' => 'Golden City', 710 | 'description' => '', 711 | 'isfolder' => 0, 712 | 'introtext' => 'Look at this beautiful color. ', 713 | 'deleted' => 0, 714 | 'menutitle' => '', 715 | 'hide_children_in_tree' => 0, 716 | 'show_in_tree' => 1, 717 | 'set_as_home' => 0, 718 | 'tvs' => 719 | array ( 720 | 'content_tpl' => 721 | array ( 722 | 'name' => 'content_tpl', 723 | 'value' => 'page', 724 | ), 725 | 'body_tpl' => 726 | array ( 727 | 'name' => 'body_tpl', 728 | 'value' => 'page', 729 | ), 730 | 'page_icon' => 731 | array ( 732 | 'name' => 'page_icon', 733 | 'value' => '', 734 | ), 735 | 'page_img' => 736 | array ( 737 | 'name' => 'page_img', 738 | 'value' => 'assets/components/flatso/images/golden-city.jpg', 739 | ), 740 | 'fpost_ids' => 741 | array ( 742 | 'name' => 'fpost_ids', 743 | 'value' => '', 744 | ), 745 | 'hero_banner' => 746 | array ( 747 | 'name' => 'hero_banner', 748 | 'value' => 'yes', 749 | ), 750 | 'carousel_ids' => 751 | array ( 752 | 'name' => 'carousel_ids', 753 | 'value' => '', 754 | ), 755 | 'slider_ids' => 756 | array ( 757 | 'name' => 'slider_ids', 758 | 'value' => '', 759 | ), 760 | 'listing_ids' => 761 | array ( 762 | 'name' => 'listing_ids', 763 | 'value' => '', 764 | ), 765 | 'listbyparent' => 766 | array ( 767 | 'name' => 'listbyparent', 768 | 'value' => '', 769 | ), 770 | ), 771 | 'others' => 772 | array ( 773 | 0 => 774 | array ( 775 | 'name' => 'tagger-category', 776 | 'value' => 'Landscapes', 777 | ), 778 | ), 779 | 'template' => 'MX Template', 780 | 'published' => 1, 781 | ), 782 | 8 => 783 | array ( 784 | 'pagetitle' => 'Downtown Hustle', 785 | 'alias' => 'downtown-hustle', 786 | 'parent' => 'Home', 787 | 'content' => '

788 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation. 789 |

790 |

791 | Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. 792 |

793 |

794 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. 795 |

', 796 | 'context_key' => 'web', 797 | 'class_key' => 'modDocument', 798 | 'longtitle' => 'Downtown Hustle', 799 | 'description' => '', 800 | 'isfolder' => 0, 801 | 'introtext' => '', 802 | 'deleted' => 0, 803 | 'menutitle' => '', 804 | 'hide_children_in_tree' => 0, 805 | 'show_in_tree' => 1, 806 | 'set_as_home' => 0, 807 | 'tvs' => 808 | array ( 809 | 'content_tpl' => 810 | array ( 811 | 'name' => 'content_tpl', 812 | 'value' => 'page', 813 | ), 814 | 'body_tpl' => 815 | array ( 816 | 'name' => 'body_tpl', 817 | 'value' => 'page', 818 | ), 819 | 'page_icon' => 820 | array ( 821 | 'name' => 'page_icon', 822 | 'value' => '', 823 | ), 824 | 'page_img' => 825 | array ( 826 | 'name' => 'page_img', 827 | 'value' => 'assets/components/flatso/images/downtown.jpg', 828 | ), 829 | 'fpost_ids' => 830 | array ( 831 | 'name' => 'fpost_ids', 832 | 'value' => '', 833 | ), 834 | 'hero_banner' => 835 | array ( 836 | 'name' => 'hero_banner', 837 | 'value' => 'yes', 838 | ), 839 | 'carousel_ids' => 840 | array ( 841 | 'name' => 'carousel_ids', 842 | 'value' => '', 843 | ), 844 | 'slider_ids' => 845 | array ( 846 | 'name' => 'slider_ids', 847 | 'value' => '', 848 | ), 849 | 'listing_ids' => 850 | array ( 851 | 'name' => 'listing_ids', 852 | 'value' => '', 853 | ), 854 | 'listbyparent' => 855 | array ( 856 | 'name' => 'listbyparent', 857 | 'value' => '', 858 | ), 859 | ), 860 | 'others' => 861 | array ( 862 | 0 => 863 | array ( 864 | 'name' => 'tagger-category', 865 | 'value' => 'Landscapes', 866 | ), 867 | ), 868 | 'template' => 'MX Template', 869 | 'published' => 1, 870 | ), 871 | 9 => 872 | array ( 873 | 'pagetitle' => 'Coastal Beach House', 874 | 'alias' => 'coastal-beach-house', 875 | 'parent' => 'Home', 876 | 'content' => '

877 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation. 878 |

879 |

880 | Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. 881 |

882 |

883 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. 884 |

', 885 | 'context_key' => 'web', 886 | 'class_key' => 'modDocument', 887 | 'longtitle' => 'Coastal Beach House', 888 | 'description' => 'The shores of Orange Park are a mellow sight.', 889 | 'isfolder' => 0, 890 | 'introtext' => 'The shores of Orange Park are a mellow sight.', 891 | 'deleted' => 0, 892 | 'menutitle' => '', 893 | 'hide_children_in_tree' => 0, 894 | 'show_in_tree' => 1, 895 | 'set_as_home' => 0, 896 | 'tvs' => 897 | array ( 898 | 'content_tpl' => 899 | array ( 900 | 'name' => 'content_tpl', 901 | 'value' => 'page', 902 | ), 903 | 'body_tpl' => 904 | array ( 905 | 'name' => 'body_tpl', 906 | 'value' => 'page', 907 | ), 908 | 'page_icon' => 909 | array ( 910 | 'name' => 'page_icon', 911 | 'value' => '', 912 | ), 913 | 'page_img' => 914 | array ( 915 | 'name' => 'page_img', 916 | 'value' => 'assets/components/flatso/images/beach-house.jpg', 917 | ), 918 | 'fpost_ids' => 919 | array ( 920 | 'name' => 'fpost_ids', 921 | 'value' => '', 922 | ), 923 | 'hero_banner' => 924 | array ( 925 | 'name' => 'hero_banner', 926 | 'value' => 'yes', 927 | ), 928 | 'carousel_ids' => 929 | array ( 930 | 'name' => 'carousel_ids', 931 | 'value' => '', 932 | ), 933 | 'slider_ids' => 934 | array ( 935 | 'name' => 'slider_ids', 936 | 'value' => '', 937 | ), 938 | 'listing_ids' => 939 | array ( 940 | 'name' => 'listing_ids', 941 | 'value' => '', 942 | ), 943 | 'listbyparent' => 944 | array ( 945 | 'name' => 'listbyparent', 946 | 'value' => '', 947 | ), 948 | ), 949 | 'others' => 950 | array ( 951 | 0 => 952 | array ( 953 | 'name' => 'tagger-category', 954 | 'value' => 'Landmarks', 955 | ), 956 | ), 957 | 'template' => 'MX Template', 958 | 'published' => 1, 959 | ), 960 | 10 => 961 | array ( 962 | 'pagetitle' => 'Surf City', 963 | 'alias' => 'surf-city', 964 | 'parent' => 'Home', 965 | 'content' => '

966 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation. 967 |

968 |

969 | Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. 970 |

971 |

972 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. 973 |

', 974 | 'context_key' => 'web', 975 | 'class_key' => 'modDocument', 976 | 'longtitle' => 'Surf City', 977 | 'description' => 'Hang Ten Brah!', 978 | 'isfolder' => 0, 979 | 'introtext' => 'Hang Ten Brah!', 980 | 'deleted' => 0, 981 | 'menutitle' => '', 982 | 'hide_children_in_tree' => 0, 983 | 'show_in_tree' => 1, 984 | 'set_as_home' => 0, 985 | 'tvs' => 986 | array ( 987 | 'content_tpl' => 988 | array ( 989 | 'name' => 'content_tpl', 990 | 'value' => 'page', 991 | ), 992 | 'body_tpl' => 993 | array ( 994 | 'name' => 'body_tpl', 995 | 'value' => 'page', 996 | ), 997 | 'page_icon' => 998 | array ( 999 | 'name' => 'page_icon', 1000 | 'value' => '', 1001 | ), 1002 | 'page_img' => 1003 | array ( 1004 | 'name' => 'page_img', 1005 | 'value' => 'assets/components/flatso/images/surf-city.jpg', 1006 | ), 1007 | 'fpost_ids' => 1008 | array ( 1009 | 'name' => 'fpost_ids', 1010 | 'value' => '', 1011 | ), 1012 | 'hero_banner' => 1013 | array ( 1014 | 'name' => 'hero_banner', 1015 | 'value' => 'yes', 1016 | ), 1017 | 'carousel_ids' => 1018 | array ( 1019 | 'name' => 'carousel_ids', 1020 | 'value' => '', 1021 | ), 1022 | 'slider_ids' => 1023 | array ( 1024 | 'name' => 'slider_ids', 1025 | 'value' => '', 1026 | ), 1027 | 'listing_ids' => 1028 | array ( 1029 | 'name' => 'listing_ids', 1030 | 'value' => '', 1031 | ), 1032 | 'listbyparent' => 1033 | array ( 1034 | 'name' => 'listbyparent', 1035 | 'value' => '', 1036 | ), 1037 | ), 1038 | 'others' => 1039 | array ( 1040 | 0 => 1041 | array ( 1042 | 'name' => 'tagger-category', 1043 | 'value' => 'Landscapes', 1044 | ), 1045 | ), 1046 | 'template' => 'MX Template', 1047 | 'published' => 1, 1048 | ), 1049 | ); 1050 | 1051 | if (isset($options['install_resources']) && empty($options['install_resources'])) return true; 1052 | 1053 | $resourceMap = getResourceMap(); 1054 | $toRemove = $resourceMap; 1055 | $siteStart = $modx->getOption('site_start'); 1056 | 1057 | foreach ($resources as $resource) { 1058 | if (is_string($resource['parent'])) { 1059 | if (isset($resourceMap[$resource['parent']])) { 1060 | $resource['parent'] = $resourceMap[$resource['parent']]; 1061 | } else { 1062 | /** @var modResource $parent */ 1063 | $parent = $modx->getObject('modResource', array('pagetitle' => $resource['parent'])); 1064 | if ($parent) { 1065 | $resource['parent'] = $parent->id; 1066 | } 1067 | } 1068 | } else { 1069 | if ($resource['parent'] != 0) { 1070 | /** @var modResource $parent */ 1071 | $parent = $modx->getObject('modResource', array('id' => $resource['parent'])); 1072 | if ($parent) { 1073 | $resource['parent'] = $parent->id; 1074 | } 1075 | } else { 1076 | $resource['parent'] = 0; 1077 | } 1078 | } 1079 | 1080 | if ($resource['template'] !== null) { 1081 | if ($resource['template'] !== 0) { 1082 | $template = $modx->getObject('modTemplate', array('templatename' => $resource['template'])); 1083 | if ($template) { 1084 | $resource['template'] = $template->id; 1085 | } 1086 | } else { 1087 | $resource['template'] = 0; 1088 | } 1089 | } 1090 | 1091 | if ($resource['content_type'] !== null) { 1092 | $content_type = $modx->getObject('modContentType', array('name' => $resource['content_type'])); 1093 | if ($content_type) { 1094 | $resource['content_type'] = $content_type->id; 1095 | } 1096 | } else { 1097 | $resource['content_type'] = $modx->getOption('default_content_type', null, 1); 1098 | } 1099 | 1100 | if (isset($resourceMap[$resource['pagetitle']])) { 1101 | unset($toRemove[$resource['pagetitle']]); 1102 | 1103 | /** @var modResource $exists */ 1104 | $exists = $modx->getObject('modResource', array('id' => $resourceMap[$resource['pagetitle']])); 1105 | if ($exists) { 1106 | $resource['id'] = $exists->id; 1107 | $resId = updateResource($resource); 1108 | 1109 | if ($resId !== false) { 1110 | $resourceMap[$resource['pagetitle']] = $resId; 1111 | } 1112 | } else { 1113 | if ($resource['set_as_home'] == 1) { 1114 | unset($resource['set_as_home']); 1115 | $resource['id'] = $siteStart; 1116 | 1117 | $resId = updateResource($resource); 1118 | 1119 | if ($resId !== false) { 1120 | $resourceMap[$resource['pagetitle']] = $resId; 1121 | } 1122 | } else { 1123 | $resId = createResource($resource); 1124 | 1125 | if ($resId !== false) { 1126 | $resourceMap[$resource['pagetitle']] = $resId; 1127 | } 1128 | } 1129 | } 1130 | } else { 1131 | if ($resource['set_as_home'] == 1) { 1132 | unset($resource['set_as_home']); 1133 | $resource['id'] = $siteStart; 1134 | 1135 | $resId = updateResource($resource); 1136 | 1137 | if ($resId !== false) { 1138 | $resourceMap[$resource['pagetitle']] = $resId; 1139 | } 1140 | } else { 1141 | $resId = createResource($resource); 1142 | 1143 | if ($resId !== false) { 1144 | $resourceMap[$resource['pagetitle']] = $resId; 1145 | } 1146 | } 1147 | } 1148 | } 1149 | 1150 | foreach ($toRemove as $pageTitle => $resource) { 1151 | unset($resourceMap[$pageTitle]); 1152 | 1153 | if ($resource == $siteStart) continue; 1154 | 1155 | /** @var modResource $modResource */ 1156 | $modResource = $modx->getObject('modResource', $resource); 1157 | if ($modResource) { 1158 | $modx->updateCollection('modResource', array('parent' => 0), array('parent' => $resource)); 1159 | 1160 | $modResource->remove(); 1161 | } 1162 | } 1163 | 1164 | setResourceMap($resourceMap); 1165 | 1166 | break; 1167 | case xPDOTransport::ACTION_UNINSTALL: 1168 | 1169 | break; 1170 | } 1171 | 1172 | return true; -------------------------------------------------------------------------------- /_build/resolvers/config.php: -------------------------------------------------------------------------------- 1 | xpdo) return false; 3 | /** @var modX $modx */ 4 | $modx =& $object->xpdo; 5 | 6 | if (!function_exists('getResourceMap')) { 7 | function getResourceMap() { 8 | global $modx; 9 | 10 | $assetsPath = rtrim($modx->getOption('flatso.assets_path',null,$modx->getOption('assets_path').'components/flatso/'), '/') . '/'; 11 | $rmf = $assetsPath . 'resourcemap.php'; 12 | 13 | if (is_readable($rmf)) { 14 | $map = include $rmf; 15 | } else { 16 | $map = array(); 17 | } 18 | 19 | return $map; 20 | } 21 | } 22 | 23 | if (!function_exists('createClientConfigSettings')) { 24 | function createClientConfigSettings($rssResource) { 25 | global $modx; 26 | 27 | $clientConfigCorePath = $modx->getOption('clientconfig.core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/clientconfig/'); 28 | /** @var ClientConfig $clientConfig */ 29 | $clientConfig = $modx->getService( 30 | 'clientconfig', 31 | 'ClientConfig', 32 | $clientConfigCorePath . 'model/clientconfig/', 33 | array( 34 | 'core_path' => $clientConfigCorePath 35 | ) 36 | ); 37 | 38 | $groups = array(); 39 | 40 | $group = $modx->getObject('cgGroup', array('label' => 'Global')); 41 | if (!$group) { 42 | $group = $modx->newObject('cgGroup'); 43 | $group->set('label', 'Global'); 44 | $group->set('description', ''); 45 | $group->set('sortorder', '0'); 46 | $group->save(); 47 | } 48 | $groups['global'] = $group->id; 49 | 50 | $group = $modx->getObject('cgGroup', array('label' => 'Fonts')); 51 | if (!$group) { 52 | $group = $modx->newObject('cgGroup'); 53 | $group->set('label', 'Fonts'); 54 | $group->set('description', ''); 55 | $group->set('sortorder', '1'); 56 | $group->save(); 57 | } 58 | $groups['fonts'] = $group->id; 59 | 60 | $group = $modx->getObject('cgGroup', array('label' => 'Mobile')); 61 | if (!$group) { 62 | $group = $modx->newObject('cgGroup'); 63 | $group->set('label', 'Mobile'); 64 | $group->set('description', ''); 65 | $group->set('sortorder', '3'); 66 | $group->save(); 67 | } 68 | $groups['mobile'] = $group->id; 69 | 70 | $group = $modx->getObject('cgGroup', array('label' => 'Content')); 71 | if (!$group) { 72 | $group = $modx->newObject('cgGroup'); 73 | $group->set('label', 'Content'); 74 | $group->set('description', ''); 75 | $group->set('sortorder', '90'); 76 | $group->save(); 77 | } 78 | $groups['content'] = $group->id; 79 | 80 | $group = $modx->getObject('cgGroup', array('label' => 'Social Media')); 81 | if (!$group) { 82 | $group = $modx->newObject('cgGroup'); 83 | $group->set('label', 'Social Media'); 84 | $group->set('description', ''); 85 | $group->set('sortorder', '91'); 86 | $group->save(); 87 | } 88 | $groups['socialmedia'] = $group->id; 89 | 90 | $group = $modx->getObject('cgGroup', array('label' => 'Images')); 91 | if (!$group) { 92 | $group = $modx->newObject('cgGroup'); 93 | $group->set('label', 'Images'); 94 | $group->set('description', ''); 95 | $group->set('sortorder', '95'); 96 | $group->save(); 97 | } 98 | $groups['images'] = $group->id; 99 | 100 | $group = $modx->getObject('cgGroup', array('label' => 'JS')); 101 | if (!$group) { 102 | $group = $modx->newObject('cgGroup'); 103 | $group->set('label', 'JS'); 104 | $group->set('description', ''); 105 | $group->set('sortorder', '99'); 106 | $group->save(); 107 | } 108 | $groups['js'] = $group->id; 109 | 110 | $settings = array( 111 | array( 112 | 'key' => 'cc_font_script', 113 | 'label' => 'External Font Script(s)', 114 | 'xtype' => 'textarea', 115 | 'description' => '', 116 | 'is_required' => '0', 117 | 'sortorder' => '0', 118 | 'value' => "", 119 | 'default' => '', 120 | 'group' => $groups['fonts'], 121 | 'options' => '' 122 | ), 123 | array( 124 | 'key' => 'cc_body_font', 125 | 'label' => 'Body Font Family', 126 | 'xtype' => 'textfield', 127 | 'description' => '', 128 | 'is_required' => '0', 129 | 'sortorder' => '1', 130 | 'value' => "font-family: 'Lato', Arial, sans-serif; font-weight: 400;", 131 | 'default' => '', 132 | 'group' => $groups['fonts'], 133 | 'options' => '' 134 | ), 135 | array( 136 | 'key' => 'cc_heading_font', 137 | 'label' => 'Heading Font Family', 138 | 'xtype' => 'textfield', 139 | 'description' => '', 140 | 'is_required' => '0', 141 | 'sortorder' => '2', 142 | 'value' => "font-weight: 900;", 143 | 'default' => '', 144 | 'group' => $groups['fonts'], 145 | 'options' => '' 146 | ), 147 | array( 148 | 'key' => 'cc_light_font', 149 | 'label' => 'Light Font Family', 150 | 'xtype' => 'textfield', 151 | 'description' => '', 152 | 'is_required' => '0', 153 | 'sortorder' => '3', 154 | 'value' => "font-weight: 300;", 155 | 'default' => '', 156 | 'group' => $groups['fonts'], 157 | 'options' => '' 158 | ), 159 | array( 160 | 'key' => 'cc_primary_color', 161 | 'label' => 'Primary Color', 162 | 'xtype' => 'colorpickerfield', 163 | 'description' => '', 164 | 'is_required' => '0', 165 | 'sortorder' => '0', 166 | 'value' => "6e9924", 167 | 'default' => '', 168 | 'group' => $groups['global'], 169 | 'options' => '' 170 | ), 171 | array( 172 | 'key' => 'cc_secondary_color', 173 | 'label' => 'Secondary Color', 174 | 'xtype' => 'colorpickerfield', 175 | 'description' => '', 176 | 'is_required' => '0', 177 | 'sortorder' => '1', 178 | 'value' => "444444", 179 | 'default' => '', 180 | 'group' => $groups['global'], 181 | 'options' => '' 182 | ), 183 | array( 184 | 'key' => 'cc_third_color', 185 | 'label' => 'Third Color', 186 | 'xtype' => 'colorpickerfield', 187 | 'description' => '', 188 | 'is_required' => '0', 189 | 'sortorder' => '1', 190 | 'value' => "aaaaaa", 191 | 'default' => '', 192 | 'group' => $groups['global'], 193 | 'options' => '' 194 | ), 195 | array( 196 | 'key' => 'cc_body_bg_color', 197 | 'label' => 'Body BG Color', 198 | 'xtype' => 'colorpickerfield', 199 | 'description' => '', 200 | 'is_required' => '0', 201 | 'sortorder' => '2', 202 | 'value' => "ececec", 203 | 'default' => '', 204 | 'group' => $groups['global'], 205 | 'options' => '' 206 | ), 207 | array( 208 | 'key' => 'cc_body_font_color', 209 | 'label' => 'Body Font Color', 210 | 'xtype' => 'colorpickerfield', 211 | 'description' => '', 212 | 'is_required' => '0', 213 | 'sortorder' => '3', 214 | 'value' => "3a3a3a", 215 | 'default' => '', 216 | 'group' => $groups['global'], 217 | 'options' => '' 218 | ), 219 | array( 220 | 'key' => 'cc_header_background', 221 | 'label' => 'Header BG Color', 222 | 'xtype' => 'colorpickerfield', 223 | 'description' => '', 224 | 'is_required' => '0', 225 | 'sortorder' => '4', 226 | 'value' => "444444", 227 | 'default' => '', 228 | 'group' => $groups['global'], 229 | 'options' => '' 230 | ), 231 | array( 232 | 'key' => 'cc_nav_link', 233 | 'label' => 'Nav Link Color', 234 | 'xtype' => 'colorpickerfield', 235 | 'description' => '', 236 | 'is_required' => '0', 237 | 'sortorder' => '5', 238 | 'value' => "f2f2f2", 239 | 'default' => '', 240 | 'group' => $groups['global'], 241 | 'options' => '' 242 | ), 243 | array( 244 | 'key' => 'cc_nav_link_hover', 245 | 'label' => 'Nav Link Hover Color', 246 | 'xtype' => 'colorpickerfield', 247 | 'description' => '', 248 | 'is_required' => '0', 249 | 'sortorder' => '6', 250 | 'value' => "6e9924", 251 | 'default' => '', 252 | 'group' => $groups['global'], 253 | 'options' => '' 254 | ), 255 | array( 256 | 'key' => 'cc_js_link', 257 | 'label' => 'JS Library Link', 258 | 'xtype' => 'textfield', 259 | 'description' => '', 260 | 'is_required' => '0', 261 | 'sortorder' => '0', 262 | 'value' => "", 263 | 'default' => '', 264 | 'group' => $groups['js'], 265 | 'options' => '' 266 | ), 267 | array( 268 | 'key' => 'cc_mobile_background', 269 | 'label' => 'Mobile Background Color', 270 | 'xtype' => 'colorpickerfield', 271 | 'description' => '', 272 | 'is_required' => '0', 273 | 'sortorder' => '0', 274 | 'value' => "6e9924", 275 | 'default' => '', 276 | 'group' => $groups['mobile'], 277 | 'options' => '' 278 | ), 279 | array( 280 | 'key' => 'cc_mobile_link', 281 | 'label' => 'Mobile Link Color', 282 | 'xtype' => 'colorpickerfield', 283 | 'description' => '', 284 | 'is_required' => '0', 285 | 'sortorder' => '1', 286 | 'value' => "FFFFFF", 287 | 'default' => '', 288 | 'group' => $groups['mobile'], 289 | 'options' => '' 290 | ), 291 | array( 292 | 'key' => 'cc_mobile_link_hover', 293 | 'label' => 'Mobile Link Hover Color', 294 | 'xtype' => 'colorpickerfield', 295 | 'description' => '', 296 | 'is_required' => '0', 297 | 'sortorder' => '2', 298 | 'value' => "333333", 299 | 'default' => '', 300 | 'group' => $groups['mobile'], 301 | 'options' => '' 302 | ), 303 | array( 304 | 'key' => 'cc_logo', 305 | 'label' => 'Site Logo', 306 | 'xtype' => 'modx-panel-tv-image', 307 | 'description' => '', 308 | 'is_required' => '0', 309 | 'sortorder' => '0', 310 | 'value' => "assets/components/flatso/images/modx-revo-2_3-icon.png", 311 | 'default' => '', 312 | 'group' => $groups['images'], 313 | 'options' => '' 314 | ), 315 | array( 316 | 'key' => 'cc_site_title', 317 | 'label' => 'Site Title', 318 | 'xtype' => 'textfield', 319 | 'description' => '', 320 | 'is_required' => '0', 321 | 'sortorder' => '0', 322 | 'value' => "Flatso", 323 | 'default' => '', 324 | 'group' => $groups['content'], 325 | 'options' => '' 326 | ), 327 | array( 328 | 'key' => 'cc_sidebar_title', 329 | 'label' => 'Sidebar Widget Title', 330 | 'xtype' => 'textfield', 331 | 'description' => '', 332 | 'is_required' => '0', 333 | 'sortorder' => '1', 334 | 'value' => "ABOUT ME", 335 | 'default' => '', 336 | 'group' => $groups['content'], 337 | 'options' => '' 338 | ), 339 | array( 340 | 'key' => 'cc_sidebar_img', 341 | 'label' => 'Sidebar Widget Image', 342 | 'xtype' => 'modx-panel-tv-image', 343 | 'description' => '', 344 | 'is_required' => '0', 345 | 'sortorder' => '3', 346 | 'value' => "assets/components/flatso/images/wayne-avatar.jpg", 347 | 'default' => '', 348 | 'group' => $groups['content'], 349 | 'options' => '' 350 | ), 351 | array( 352 | 'key' => 'cc_sidebar_subtitle', 353 | 'label' => 'Sidebar Widget Subtitle', 354 | 'xtype' => 'textfield', 355 | 'description' => '', 356 | 'is_required' => '0', 357 | 'sortorder' => '2', 358 | 'value' => "BIO", 359 | 'default' => '', 360 | 'group' => $groups['content'], 361 | 'options' => '' 362 | ), 363 | array( 364 | 'key' => 'cc_sidebar_message', 365 | 'label' => 'Sidebar Widget Message', 366 | 'xtype' => 'textarea', 367 | 'description' => '', 368 | 'is_required' => '0', 369 | 'sortorder' => '3', 370 | 'value' => "Hamburger ullamco alcatra exercitation prosciutto shoulder pork loin. Minim ham hock duis picanha incididunt turkey sed swine ball tip consectetur dolore. Hamburger ham deserunt, et minim frankfurter occaecat id. Pastrami est picanha kevin cow. Ea rump doner pork belly boudin.", 371 | 'default' => '', 372 | 'group' => $groups['content'], 373 | 'options' => '' 374 | ), 375 | array( 376 | 'key' => 'cc_featured_title', 377 | 'label' => 'Featured Post Sidebar Title', 378 | 'xtype' => 'textfield', 379 | 'description' => '', 380 | 'is_required' => '0', 381 | 'sortorder' => '4', 382 | 'value' => "Featured Posts", 383 | 'default' => '', 384 | 'group' => $groups['content'], 385 | 'options' => '' 386 | ), 387 | array( 388 | 'key' => 'cc_social_title', 389 | 'label' => 'Widget Title', 390 | 'xtype' => 'textfield', 391 | 'description' => '', 392 | 'is_required' => '0', 393 | 'sortorder' => '0', 394 | 'value' => "GET CONNECTED", 395 | 'default' => '', 396 | 'group' => $groups['socialmedia'], 397 | 'options' => '' 398 | ), 399 | array( 400 | 'key' => 'cc_facebook_icon', 401 | 'label' => 'Facebook Icon', 402 | 'xtype' => 'modx-panel-tv-image', 403 | 'description' => '', 404 | 'is_required' => '0', 405 | 'sortorder' => '1', 406 | 'value' => "assets/components/flatso/images/facebook-white-35.png", 407 | 'default' => '', 408 | 'group' => $groups['socialmedia'], 409 | 'options' => '' 410 | ), 411 | array( 412 | 'key' => 'cc_facebook_link', 413 | 'label' => 'Facebook Link', 414 | 'xtype' => 'textfield', 415 | 'description' => '', 416 | 'is_required' => '0', 417 | 'sortorder' => '2', 418 | 'value' => "https://facebook.com", 419 | 'default' => '', 420 | 'group' => $groups['socialmedia'], 421 | 'options' => '' 422 | ), 423 | array( 424 | 'key' => 'cc_twitter_icon', 425 | 'label' => 'Twitter Icon', 426 | 'xtype' => 'modx-panel-tv-image', 427 | 'description' => '', 428 | 'is_required' => '0', 429 | 'sortorder' => '3', 430 | 'value' => "assets/components/flatso/images/twitter-white-35.png", 431 | 'default' => '', 432 | 'group' => $groups['socialmedia'], 433 | 'options' => '' 434 | ), 435 | array( 436 | 'key' => 'cc_twitter_link', 437 | 'label' => 'Twitter Link', 438 | 'xtype' => 'textfield', 439 | 'description' => '', 440 | 'is_required' => '0', 441 | 'sortorder' => '4', 442 | 'value' => "https://twitter.com", 443 | 'default' => '', 444 | 'group' => $groups['socialmedia'], 445 | 'options' => '' 446 | ), 447 | array( 448 | 'key' => 'cc_rss_icon', 449 | 'label' => 'RSS Icon', 450 | 'xtype' => 'modx-panel-tv-image', 451 | 'description' => '', 452 | 'is_required' => '0', 453 | 'sortorder' => '5', 454 | 'value' => "assets/components/flatso/images/rss-white-35.png", 455 | 'default' => '', 456 | 'group' => $groups['socialmedia'], 457 | 'options' => '' 458 | ), 459 | array( 460 | 'key' => 'cc_rss_link', 461 | 'label' => 'RSS Link', 462 | 'xtype' => 'textfield', 463 | 'description' => '', 464 | 'is_required' => '0', 465 | 'sortorder' => '6', 466 | 'value' => $rssResource, 467 | 'default' => '', 468 | 'group' => $groups['socialmedia'], 469 | 'options' => '' 470 | ), 471 | 472 | ); 473 | 474 | foreach ($settings as $setting) { 475 | $settingObject = $modx->getObject('cgSetting', array('key' => $setting['key'])); 476 | if (!$settingObject) { 477 | $settingObject = $modx->newObject('cgSetting'); 478 | $settingObject->set('key', $setting['key']); 479 | $settingObject->set('label', $setting['label']); 480 | $settingObject->set('xtype', $setting['xtype']); 481 | $settingObject->set('description', $setting['description']); 482 | $settingObject->set('is_required', $setting['is_required']); 483 | $settingObject->set('sortorder', $setting['sortorder']); 484 | $settingObject->set('value', $setting['value']); 485 | $settingObject->set('default', $setting['default']); 486 | $settingObject->set('group', $setting['group']); 487 | $settingObject->set('options', $setting['options']); 488 | $settingObject->save(); 489 | } 490 | } 491 | } 492 | } 493 | 494 | switch ($options[xPDOTransport::PACKAGE_ACTION]) { 495 | case xPDOTransport::ACTION_INSTALL: 496 | 497 | if (isset($options['install_resources']) && empty($options['install_resources'])) { 498 | $rssResource = ''; 499 | $archivistIDsValue = ''; 500 | } else { 501 | $resourceMap = getResourceMap(); 502 | $rssResource = "[[~" . $resourceMap['RSS'] . "]]"; 503 | $archivistIDsValue = $resourceMap['Archives']; 504 | } 505 | 506 | createClientConfigSettings($rssResource); 507 | 508 | $themeSetting = $modx->getObject('modSystemSetting', array('key' => 'mxt.theme')); 509 | if ($themeSetting) { 510 | $themeSetting->set('value','flatso'); 511 | $themeSetting->save(); 512 | } 513 | 514 | $archivistIDs = $modx->getObject('modSystemSetting', array('key' => 'archivist.archive_ids')); 515 | if (!$archivistIDs) { 516 | $archivistIDs = $modx->newObject('modSystemSetting'); 517 | $archivistIDs->set('key', 'archivist.archive_ids'); 518 | $archivistIDs->set('namespace', 'archivist'); 519 | $archivistIDs->set('area', 'furls'); 520 | } 521 | 522 | if (!empty($archivistIDsValue)) { 523 | $archivistIDs->set('value', $archivistIDsValue . ':arc_'); 524 | } 525 | 526 | $archivistIDs->save(); 527 | 528 | if (!(isset($options['install_resources'])) || !(empty($options['install_resources']))) { 529 | $contentType = $modx->getObject('modContentType', array('name' => 'HTML')); 530 | if ($contentType) { 531 | $contentType->set('file_extensions', '/'); 532 | $contentType->save(); 533 | } 534 | } 535 | 536 | break; 537 | case xPDOTransport::ACTION_UPGRADE: 538 | 539 | $resourceMap = getResourceMap(); 540 | $rssResource = ''; 541 | 542 | if (!empty($resourceMap)) { 543 | $rssResource = "[[~" . $resourceMap['RSS'] . "]]"; 544 | } 545 | 546 | createClientConfigSettings($rssResource); 547 | 548 | break; 549 | case xPDOTransport::ACTION_UNINSTALL: 550 | break; 551 | } 552 | 553 | return true; 554 | -------------------------------------------------------------------------------- /_build/resolvers/sample_content.php: -------------------------------------------------------------------------------- 1 | xpdo) return false; 3 | /** @var modX $modx */ 4 | $modx =& $object->xpdo; 5 | 6 | switch ($options[xPDOTransport::PACKAGE_ACTION]) { 7 | case xPDOTransport::ACTION_INSTALL: 8 | if (isset($options['install_resources']) && empty($options['install_resources'])) return true; 9 | 10 | $taggerCorePath = $modx->getOption('tagger.core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/tagger/'); 11 | /** @var Tagger $tagger */ 12 | $tagger = $modx->getService( 13 | 'tagger', 14 | 'Tagger', 15 | $taggerCorePath . 'model/tagger/', 16 | array( 17 | 'core_path' => $taggerCorePath 18 | ) 19 | ); 20 | 21 | $template = $modx->getObject('modTemplate', array('templatename' => 'MX Template')); 22 | 23 | $group = $modx->getObject('TaggerGroup', array('alias' => 'category')); 24 | if (!$group) { 25 | $group = $modx->newObject('TaggerGroup'); 26 | $group->set('name', 'Category'); 27 | $group->set('alias', 'category'); 28 | $group->set('field_type', 'tagger-combo-tag'); 29 | $group->set('allow_new', 0); 30 | $group->set('remove_unused', 0); 31 | $group->set('allow_blank', 1); 32 | $group->set('allow_type', 0); 33 | $group->set('show_autotag', 0); 34 | $group->set('hide_input', 0); 35 | $group->set('tag_limit', 0); 36 | $group->set('show_for_templates', ''); 37 | $group->set('place', 'in-tab'); 38 | $group->set('description', ''); 39 | 40 | if ($template) { 41 | $group->set('show_for_templates', $template->id); 42 | } 43 | 44 | $group->save(); 45 | } 46 | 47 | $tags = array('Landmarks', 'Landscapes'); 48 | 49 | foreach ($tags as $tag) { 50 | $tagObject = $modx->newObject('TaggerTag'); 51 | $tagObject->set('tag', $tag); 52 | $tagObject->set('alias', strtolower($tag)); 53 | $tagObject->set('group', $group->id); 54 | $tagObject->save(); 55 | } 56 | 57 | break; 58 | case xPDOTransport::ACTION_UPGRADE: 59 | break; 60 | case xPDOTransport::ACTION_UNINSTALL: 61 | break; 62 | } 63 | 64 | return true; -------------------------------------------------------------------------------- /_build/resolvers/sample_settings.php: -------------------------------------------------------------------------------- 1 | xpdo) return false; 3 | /** @var modX $modx */ 4 | $modx =& $object->xpdo; 5 | 6 | if (!function_exists('getResourceMap')) { 7 | function getResourceMap() { 8 | global $modx; 9 | 10 | $assetsPath = rtrim($modx->getOption('flatso.assets_path',null,$modx->getOption('assets_path').'components/flatso/'), '/') . '/'; 11 | $rmf = $assetsPath . 'resourcemap.php'; 12 | 13 | if (is_readable($rmf)) { 14 | $map = include $rmf; 15 | } else { 16 | $map = array(); 17 | } 18 | 19 | return $map; 20 | } 21 | } 22 | 23 | switch ($options[xPDOTransport::PACKAGE_ACTION]) { 24 | case xPDOTransport::ACTION_INSTALL: 25 | if (isset($options['install_resources']) && empty($options['install_resources'])) return true; 26 | 27 | $resourceMap = getResourceMap(); 28 | 29 | $archive = $modx->getObject('modSystemSetting', array('key' => 'flatso.archive_id')); 30 | if ($archive && !empty($resourceMap['Archives'])) { 31 | $archive->set('value', $resourceMap['Archives']); 32 | $archive->save(); 33 | } 34 | 35 | $blog = $modx->getObject('modSystemSetting', array('key' => 'flatso.blog_id')); 36 | if ($blog && !empty($resourceMap['Home'])) { 37 | $blog->set('value', $resourceMap['Home']); 38 | $blog->save(); 39 | } 40 | 41 | $category = $modx->getObject('modSystemSetting', array('key' => 'flatso.category_id')); 42 | if ($category && !empty($resourceMap['Categories'])) { 43 | $category->set('value', $resourceMap['Categories']); 44 | $category->save(); 45 | } 46 | 47 | $fPosts = $modx->getObject('modSystemSetting', array('key' => 'mxt.default_fposts')); 48 | if ($fPosts && !empty($resourceMap['Coastal Beach House']) && !empty($resourceMap['Surf City'])) { 49 | $fPosts->set('value', $resourceMap['Coastal Beach House'] . ',' . $resourceMap['Surf City']); 50 | $fPosts->save(); 51 | } 52 | 53 | if (!empty($resourceMap['Home'])) { 54 | /** @var modResource $homeResource */ 55 | $homeResource = $modx->getObject('modResource', $resourceMap['Home']); 56 | if ($homeResource) { 57 | $homeResource->setTVValue('fpost_ids', $resourceMap['Coastal Beach House'] . ',' . $resourceMap['Surf City']); 58 | } 59 | } 60 | 61 | break; 62 | case xPDOTransport::ACTION_UPGRADE: 63 | break; 64 | case xPDOTransport::ACTION_UNINSTALL: 65 | break; 66 | } 67 | 68 | return true; -------------------------------------------------------------------------------- /_build/setup.options.php: -------------------------------------------------------------------------------- 1 | friendly_urls. 4 |
5 | 6 | '; 10 | 11 | return $output; -------------------------------------------------------------------------------- /_packages/flatso-1.1.1-pl.transport.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/_packages/flatso-1.1.1-pl.transport.zip -------------------------------------------------------------------------------- /assets/components/flatso/css/flatso.css: -------------------------------------------------------------------------------- 1 | /*GLOBAL*/ 2 | .clearfix:before,.clearfix:after{content: " ";display: table;}.clearfix:after{clear: both;} 3 | .container{max-width: 60rem;margin-left:auto;margin-right:auto;} 4 | form input{border:none;border-radius:6px;margin-bottom:10px;padding:0 8px; text-indent:5px;} 5 | form textarea{border:none;border-radius:6px;margin-bottom:10px;padding:.5rem; display:block;font-size:.9rem;min-width: 20rem;} 6 | form button{border:none;border-radius:6px;margin-bottom:10px;padding:.5rem 1rem; cursor: pointer;} 7 | form label{min-width: 8rem; display: inline-block;} 8 | form .input-wrapper{display:block; margin-bottom:1rem;} 9 | form select{border:none;border-radius:6px;padding: 0 .25rem;} 10 | 11 | /*header*/ 12 | nav{text-align:center;} 13 | nav ul li ul li{display:block;text-align:left;} 14 | nav ul li ul li a{display:inline-block;border-top:none !important;border-bottom:none !important;} 15 | nav ul li:hover > ul{visibility:visible;} 16 | nav ul li ul.open{visibility:visible;} 17 | nav ul li ul{visibility:hidden;position:absolute;z-index:99999;top:100%;left:0;} 18 | 19 | /*hero*/ 20 | main.hero--on{position:relative;z-index:9;margin-top:22rem;} 21 | main.hero--on aside{margin-top:4rem !important;} 22 | .hero--banner{width:100%;height:25rem;background-size:cover;position:absolute;z-index:1;text-align:center;} 23 | .hero--banner .logo{position:relative;top: 40%;transform: translateY(-50%);} 24 | 25 | /*main*/ 26 | main{margin-top:2rem;margin-bottom:2rem;} 27 | 28 | /*typography*/ 29 | h1{font-size:1.5rem;} 30 | h2{font-size:1.3rem;} 31 | h3{font-size:1.2rem;} 32 | h4{font-size:1.1rem;} 33 | h5,h6{font-size:1rem;} 34 | small{font-size:.8rem;} 35 | 36 | /*listing*/ 37 | body.listing main > section{background-color:#FFF;width:60%;} 38 | body.listing main > section{float:left;} 39 | body.listing main > section h1{font-size:1.5rem;display:block;padding:.75rem 1rem;text-align:center;margin:-1rem 1rem 0 1rem;} 40 | body.listing main > section h1:first-letter{text-transform:uppercase;} 41 | .listing--item--date{display:block;text-align:center;} 42 | .listing--item--date span{display:inline-block;padding:.35rem .95rem;} 43 | .listing--item h2{margin:1rem 0;line-height:2rem;font-size:2rem;text-align:center;} 44 | .listing--item p{padding:.5rem 0;} 45 | .paging{text-align:center;}.paging ul{padding:1rem;}.paging li{display:inline-block;padding:.5rem;} 46 | 47 | /*aside*/ 48 | body.listing main > aside{width:35%;float:right;margin-top:1rem;} 49 | .aside--widget{margin-bottom:1.5rem;padding-top:1rem;} 50 | .aside--widget--inner{padding:1rem;}.aside--widget--inner p{padding:.5rem 0;} 51 | .aside--widget h3{margin-left:-4px;width:85%;text-indent:1rem;padding:.35rem;font-weight:400;} 52 | 53 | /*social links*/ 54 | .social--link{display:block;font-size:1.25rem;padding:.25rem;} 55 | .social--link span{vertical-align:middle;text-align:center;display:inline-block;margin-right:1rem;} 56 | .social--link span img{vertical-align:middle;} 57 | 58 | /*page*/ 59 | body.page main > section{padding:1.5rem;} 60 | body.page main > section > article > h1{font-size:1.5rem;padding-bottom:1rem;} 61 | body.page .page--meta{padding:.5rem 0;font-size:.9rem;} 62 | body.page main > section > article p{padding-bottom:1rem;} 63 | body.page main > section > article ul,body.page main > section > article ol{margin:1rem 2rem;} 64 | body.page main > section > article ul ul,body.page main > section > article ol ol{margin:0 2rem;} 65 | body.page main > section > article ul{list-style:disc;}body.page main > section > article ol{list-style:decimal;} 66 | body.page main a:hover{text-decoration:underline;} 67 | 68 | /*featured post*/ 69 | aside .feat--post{margin-bottom:1rem;border-bottom:1px solid #f2f2f2;} 70 | aside .feat--post--img{float:left; margin-right:.5rem;} 71 | 72 | /*tables*/ 73 | table{width: 100%;} 74 | table th{text-align:left; padding: .5rem 0;} 75 | table td{padding: .5rem 0;} 76 | 77 | @media (max-width: 960px) { 78 | nav{display:none;} 79 | main{margin-top:7rem;} 80 | body.listing main > section, body.listing main > aside{ float:none; width:80%; margin-left:auto; margin-right:auto;} 81 | 82 | /* Force tables to not be like tables anymore */ 83 | table, table thead, table tbody, table th, table td, table tr{display: block;} 84 | /* Hide table headers (but not display: none;, for accessibility) */ 85 | table thead tr{position: absolute;top: -9999px;left: -9999px;} 86 | /* Behave like a "row" */ 87 | table td {border: none;position: relative;padding-left: 33% !important;} 88 | /* Now like a table header */ 89 | table td:before {position: absolute;top: 6px;left: 6px;width: 45%;padding-right: 10px;white-space: nowrap;content: attr(data-label); font-weight: bold;} 90 | /*table row seperation line*/ 91 | table td:last-of-type:after{content: " "; height: 2px; background:#cbc7c7;width: 100%;position: absolute;top:98%;left: 0;} 92 | } 93 | -------------------------------------------------------------------------------- /assets/components/flatso/css/mobile-nav.css: -------------------------------------------------------------------------------- 1 | @-webkit-keyframes slideInLeft { 2 | 3 | 0% { 4 | -webkit-transform: translate3d(-250px, 0, 0); 5 | transform: translate3d(-250px, 0, 0); 6 | visibility: visible; 7 | } 8 | 9 | 100% { 10 | -webkit-transform: translate3d(0, 0, 0); 11 | transform: translate3d(0, 0, 0); 12 | } 13 | 14 | } 15 | 16 | @keyframes slideInLeft { 17 | 18 | 0% { 19 | -webkit-transform: translate3d(-250px, 0, 0); 20 | transform: translate3d(-250px, 0, 0); 21 | visibility: visible; 22 | } 23 | 24 | 100% { 25 | -webkit-transform: translate3d(0, 0, 0); 26 | transform: translate3d(0, 0, 0); 27 | } 28 | 29 | } 30 | 31 | @-webkit-keyframes slideOutLeft { 32 | 33 | 0% { 34 | -webkit-transform: translate3d(0, 0, 0); 35 | transform: translate3d(0, 0, 0); 36 | } 37 | 38 | 100% { 39 | -webkit-transform: translate3d(-250px, 0, 0); 40 | transform: translate3d(-250px, 0, 0); 41 | visibility: hidden; 42 | } 43 | 44 | } 45 | 46 | @keyframes slideOutLeft { 47 | 48 | 0% { 49 | -webkit-transform: translate3d(0, 0, 0); 50 | transform: translate3d(0, 0, 0); 51 | } 52 | 53 | 100% { 54 | -webkit-transform: translate3d(-250px, 0, 0); 55 | transform: translate3d(-250px, 0, 0); 56 | visibility: hidden; 57 | } 58 | 59 | } 60 | body.open{overflow: hidden;}body.open:after {opacity: 1;visibility: visible;} 61 | .b-nav {position: absolute;z-index: 9999;}.b-nav:not(.open) {visibility: hidden;display:none;} 62 | .b-nav li:not(.open) {-webkit-animation-duration: 0.4s;animation-duration: 0.4s;-webkit-animation-fill-mode: both; animation-fill-mode: both;-webkit-animation-name: slideOutLeft;animation-name: slideOutLeft;} 63 | .b-nav li:first-child {padding-top: 30px;}.b-nav.open {visibility: visible;} 64 | .b-nav.open {visibility: visible;display:block;} 65 | .b-nav.open li {-webkit-animation-duration: 0.4s;animation-duration: 0.4s;-webkit-animation-fill-mode: both;animation-fill-mode: both;-webkit-animation-name: slideInLeft;animation-name: slideInLeft;} 66 | .b-nav li {list-style-type: none;padding: 10px;text-align: left;-webkit-transform: translateX(-250px);transform: translateX(-250px);} 67 | .b-link {font-size: 24px;font-weight: 300;margin-left: 30px;text-decoration: none;transition: all 0.4s ease;width: auto;} 68 | .b-menu{border-radius: 50%; 69 | cursor: pointer; 70 | display: inline-block; 71 | height: 55px; 72 | padding-left: 13px; 73 | padding-top: 15px; 74 | position: relative; 75 | transition: all 0.4s ease; 76 | -webkit-user-select: none; 77 | -moz-user-select: none; 78 | -ms-user-select: none; 79 | user-select: none; 80 | width: 55px; 81 | z-index: 9999; 82 | } 83 | .b-bun--top { 84 | height: 2px; 85 | top: 0; 86 | width: 25px; 87 | } 88 | 89 | .b-bun--mid { 90 | height: 2px; 91 | top: 8px; 92 | width: 25px; 93 | } 94 | 95 | .b-bun--bottom { 96 | height: 2px; 97 | top: 16px; 98 | width: 25px; 99 | } 100 | .b-container { 101 | display: none; 102 | height: 55px; 103 | right: 30px; 104 | position: absolute; 105 | top: 10px; 106 | } 107 | .b-container.open .b-bun--top {top: 9px; 108 | -webkit-transform: rotate(45deg); 109 | transform: rotate(45deg); 110 | } 111 | .b-container.open .b-bun--mid { 112 | opacity: 0; 113 | } 114 | 115 | .b-container.open .b-bun--bottom {top: 5px; 116 | -webkit-transform: rotate(-45deg); 117 | transform: rotate(-45deg); 118 | } 119 | @media screen { 120 | 121 | [hidden~="screen"] { 122 | display: inherit; 123 | } 124 | 125 | [hidden~="screen"]:not(:active):not(:focus):not(:target) { 126 | clip: rect(0 0 0 0) !important; 127 | position: absolute !important; 128 | } 129 | 130 | } 131 | 132 | @media (max-width: 960px) { 133 | .b-container { 134 | display: block; 135 | } 136 | } -------------------------------------------------------------------------------- /assets/components/flatso/css/reset.css: -------------------------------------------------------------------------------- 1 | /*MODX Normalize/Sanitize @dubrod */ 2 | body,button,input,select,textarea,pre,ul,ol{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p,dl,ol,ul,dt,dd{margin:0}ul,ol{list-style:none}button,input,select,textarea{font-family:inherit;font-size:100%}article,aside,details,figcaption,figure,footer,header,main,nav,section,summary{display:block}img{border:0}:root{-ms-overflow-style:-ms-autohiding-scrollbar;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}audio:not([controls]){display:none}details{display:block}input[type=number]{width:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}main{display:block}summary{display:block}pre{overflow:auto}progress{display:inline-block}template{display:none}textarea{overflow:auto}[hidden]{display:none}[unselectable]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}*,::before,::after{box-sizing:inherit}*{font-size:inherit;line-height:inherit}::before,::after{text-decoration:inherit;vertical-align:inherit}*,::before,::after{border-style:solid;border-width:0}*{margin:0;padding:0}:root{box-sizing:border-box;cursor:default;font:16px/1.5 sans-serif;text-rendering:optimizeLegibility}a{text-decoration:none}audio,canvas,iframe,img,svg,video{vertical-align:middle}button,input,select,textarea{color:inherit;font-family:inherit;font-style:inherit;font-weight:inherit}button,input,select,textarea{min-height:1.5em}code,kbd,pre,samp{font-family:monospace,monospace}select::-ms-expand{display:none}select::-ms-value{color:currentColor}table{border-collapse:collapse;border-spacing:0}textarea{resize:vertical} 3 | .fit{max-width:100%;} -------------------------------------------------------------------------------- /assets/components/flatso/images/beach-house.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/beach-house.jpg -------------------------------------------------------------------------------- /assets/components/flatso/images/downtown.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/downtown.jpg -------------------------------------------------------------------------------- /assets/components/flatso/images/facebook-white-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/facebook-white-35.png -------------------------------------------------------------------------------- /assets/components/flatso/images/forest.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/forest.jpg -------------------------------------------------------------------------------- /assets/components/flatso/images/golden-city.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/golden-city.jpg -------------------------------------------------------------------------------- /assets/components/flatso/images/golden-gate-bridge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/golden-gate-bridge.jpg -------------------------------------------------------------------------------- /assets/components/flatso/images/home-page-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/home-page-image.jpg -------------------------------------------------------------------------------- /assets/components/flatso/images/modx-revo-2_3-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/modx-revo-2_3-icon.png -------------------------------------------------------------------------------- /assets/components/flatso/images/revine-yoga.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/revine-yoga.jpg -------------------------------------------------------------------------------- /assets/components/flatso/images/rss-white-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/rss-white-35.png -------------------------------------------------------------------------------- /assets/components/flatso/images/surf-city.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/surf-city.jpg -------------------------------------------------------------------------------- /assets/components/flatso/images/twitter-white-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/twitter-white-35.png -------------------------------------------------------------------------------- /assets/components/flatso/images/wayne-avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/assets/components/flatso/images/wayne-avatar.jpg -------------------------------------------------------------------------------- /assets/components/flatso/js/mobile-nav.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var body = document.body; 3 | var burgerMenu = document.getElementsByClassName('b-menu')[0]; 4 | var burgerContain = document.getElementsByClassName('b-container')[0]; 5 | var burgerNav = document.getElementsByClassName('b-nav')[0]; 6 | 7 | burgerMenu.addEventListener('click', function toggleClasses() { 8 | [body, burgerContain, burgerNav].forEach(function (el) { 9 | el.classList.toggle('open'); 10 | }); 11 | }, false); 12 | })(); -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/buttons.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Buttons 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 | 74 |
75 |
76 | 77 |
78 |
79 |

Buttons

80 |

81 |
82 |
83 | 84 |

This theme has no button sets

85 | 86 |
87 | 88 |
89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 |
98 |
99 |
100 | 101 | 102 |
103 | 104 |
105 | 106 | 107 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/components.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Hero Banner 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Hero Banner

79 |

Large Fullscreen background image.

80 |
81 |
82 |

Available on "Page" and "Listing" Content Types.

83 |

Turn on the Hero by checking Show Banner Image and uploading an image to Page Image

84 |
85 |
86 |
87 |

 88 |                       Visible on the home page
 89 |                 
90 |
91 |
92 |
93 | 94 | 95 | 96 | 97 |
98 |
99 |
100 | 101 | 102 |
103 | 104 |
105 | 106 | 107 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/css/base.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background: #FFF !important; 3 | } 4 | .box-heading{background: #f2f2f2;} 5 | .main-title{color:#646D73;float: left;} 6 | #nav a{color: #59646d;} 7 | #nav a:hover{color:#646D73;} 8 | #nav a.active{background: transparent;color:#FFF;} 9 | .fill-dark{background:#646D73;color:#FFF; } 10 | 11 | .sg-header{ 12 | width:100%; 13 | background: #3e4549; 14 | color: #bbb; 15 | } 16 | .docnav a{color: #bbb;line-height: 2rem; border-bottom: 1px solid #f2f2f2; text-indent: .25rem; font-weight: normal;} 17 | .docnav a:hover{color: #646D73;} 18 | .docnav a.active{color: #646D73; font-weight: bold;} 19 | 20 | 21 | .rounded{border-radius: .5rem;} 22 | .round-bottom{ border-radius:0 0 3px 3px; } 23 | code, 24 | pre { 25 | background:rgba(0,0,0,0.025); 26 | font-size:12px; 27 | line-height:20px; 28 | padding:3px; 29 | border-radius: 3px; 30 | } 31 | pre { 32 | display:block; 33 | padding:10px; 34 | word-break:break-all; 35 | word-wrap:break-word; 36 | white-space:pre; 37 | white-space:pre-wrap; 38 | -moz-tab-size:4; 39 | tab-size:4; 40 | } 41 | pre code { 42 | background:transparent; 43 | padding:0; 44 | } 45 | /* Keyword.Declaration 46 | * Keyword.Namespace 47 | * Keyword.Reserved */ 48 | pre .kd, 49 | pre .kn, 50 | pre .kr, 51 | pre .nt { color:#0B5A91; } /* Name.Tag */ 52 | .limiter { 53 | width:83.3333%; 54 | max-width:1000px; 55 | margin-left:auto; 56 | margin-right:auto; 57 | } 58 | .col0 { float:left; width:04.1666%; max-width:50px; } 59 | .col1 { float:left; width:08.3333%; max-width:100px; } 60 | .col2 { float:left; width:16.6666%; max-width:200px; } 61 | .col3 { float:left; width:25.0000%; max-width:300px; } 62 | .col4 { float:left; width:33.3333%; max-width:400px; } 63 | .col5 { float:left; width:41.6666%; max-width:500px; } 64 | .col6 { float:left; width:50.0000%; max-width:600px; } 65 | .col7 { float:left; width:58.3333%; max-width:700px; } 66 | .col8 { float:left; width:66.6666%; max-width:800px; } 67 | .col9 { float:left; width:75.0000%; max-width:900px; } 68 | .col10 { float:left; width:83.3333%; max-width:1000px; } 69 | .col11 { float:left; width:91.6666%; max-width:1100px; } 70 | .col12 { width:100%; display:block; } 71 | 72 | .contain{position: relative;} 73 | .text-right{text-align: right;} 74 | .truncate { 75 | text-overflow:ellipsis; 76 | white-space:nowrap; 77 | overflow:hidden; 78 | } 79 | 80 | .box { 81 | margin-bottom:20px; 82 | border:1px solid rgba(0,0,0,0.10); 83 | } 84 | .box figure, 85 | .box .box-heading { 86 | border-bottom:1px solid rgba(0,0,0,0.1); 87 | } 88 | .box figure:last-child { 89 | border-bottom:none; 90 | } 91 | 92 | 93 | /* Margins 94 | ------------------------------------------------------- */ 95 | 96 | .space-left0 { margin-left: 5px;} 97 | .space-left1 { margin-left: 10px;} 98 | .space-left2 { margin-left: 20px;} 99 | .space-left3 { margin-left: 30px;} 100 | .space-left4 { margin-left: 40px;} 101 | .space-left8 { margin-left: 80px;} 102 | .space-left12 { margin-left: 120px;} 103 | .space-left16 { margin-left: 160px;} 104 | .space-left20 { margin-left: 200px;} 105 | .space-left24 { margin-left: 240px;} 106 | 107 | .space-right0 { margin-right: 5px;} 108 | .space-right1 { margin-right: 10px;} 109 | .space-right2 { margin-right: 20px;} 110 | .space-right3 { margin-right: 30px;} 111 | .space-right4 { margin-right: 40px;} 112 | .space-right8 { margin-right: 80px;} 113 | .space-right12 { margin-right: 120px;} 114 | .space-right16 { margin-right: 160px;} 115 | .space-right20 { margin-right: 200px;} 116 | .space-right24 { margin-right: 240px;} 117 | 118 | .space-bottom0 { margin-bottom: 5px;} 119 | .space-bottom1 { margin-bottom: 10px;} 120 | .space-bottom, /* deprecated, use space-bottom2 */ 121 | .space-bottom2 { margin-bottom: 20px;} 122 | .space-bottom4 { margin-bottom: 40px;} 123 | .space-bottom8 { margin-bottom: 80px;} 124 | 125 | .space-top0 { margin-top: 5px;} 126 | .space-top1 { margin-top: 10px;} 127 | .space-top2 { margin-top: 20px;} 128 | .space-top4 { margin-top: 40px;} 129 | .space-top8 { margin-top: 80px;} 130 | 131 | .unlimiter .col0, 132 | .unlimiter .col1, 133 | .unlimiter .col2, 134 | .unlimiter .col3, 135 | .unlimiter .col4, 136 | .unlimiter .col5, 137 | .unlimiter .col6, 138 | .unlimiter .col7, 139 | .unlimiter .col8, 140 | .unlimiter .col9, 141 | .unlimiter .col10, 142 | .unlimiter .col11 { 143 | max-width: none; 144 | } 145 | 146 | .margin0 { margin-left:04.1666%; } 147 | .margin1 { margin-left:08.3333%; } 148 | .margin2 { margin-left:16.6666%; } 149 | .margin3 { margin-left:25.0000%; } 150 | .margin4 { margin-left:33.3333%; } 151 | .margin5 { margin-left:41.6666%; } 152 | .margin6 { margin-left:50.0000%; } 153 | .margin7 { margin-left:58.3333%; } 154 | .margin8 { margin-left:66.6666%; } 155 | .margin9 { margin-left:75.0000%; } 156 | .margin10 { margin-left:83.3333%; } 157 | .margin11 { margin-left:91.6666%; } 158 | .margin12 { margin-left:100.0000%; } 159 | 160 | /* Padding 161 | ------------------------------------------------------- */ 162 | .pad0 { padding:5px; } 163 | .pad0y { padding-top:5px; padding-bottom:5px; } 164 | .pad0x { padding-right:5px; padding-left:5px; } 165 | 166 | .pad1 { padding:10px; } 167 | .pad2 { padding:20px; } 168 | .pad4 { padding:40px; } 169 | 170 | .pad1x { padding-left: 10px; padding-right: 10px;} 171 | .pad2x { padding-left: 20px; padding-right: 20px;} 172 | .pad4x { padding-left: 40px; padding-right: 40px;} 173 | 174 | .pad1y { padding-top: 10px; padding-bottom: 10px;} 175 | .pad2y { padding-top: 20px; padding-bottom: 20px;} 176 | .pad4y { padding-top: 40px; padding-bottom: 40px;} 177 | 178 | .pad8 { padding: 80px; } 179 | .pad8y { padding-top: 80px; padding-bottom: 80px;} 180 | .pad8x { padding-left: 80px; padding-right: 80px;} 181 | 182 | /* Absolute containers 183 | ------------------------------------------------------- */ 184 | .pin-top, 185 | .pin-right, 186 | .pin-bottom, 187 | .pin-left, 188 | .pin-topleft, 189 | .pin-topright, 190 | .pin-bottomleft, 191 | .pin-bottomright { 192 | position:absolute; 193 | } 194 | .pin-bottom { right:0; bottom:0; left:0; } 195 | .pin-top { top:0; right:0; left:0; } 196 | .pin-left { top:0; bottom:0; left:0; } 197 | .pin-right { top:0; right:0; bottom:0; } 198 | .pin-bottomright { bottom:0; right:0; } 199 | .pin-bottomleft { bottom:0; left:0; } 200 | .pin-topright { top:0; right:0; } 201 | .pin-topleft { top:0; left:0; } 202 | 203 | .docnav { position:fixed; top:100px; bottom:0; width:100%; } 204 | .docnav .limiter { height:100%; } 205 | .docnav .col3 { height:100%; } 206 | .docnav nav { 207 | position: absolute; 208 | left:0; top:0; right:20px; bottom:20px; 209 | } 210 | .docnav nav a{display: block; text-align: left;} 211 | 212 | .scroll-styled .highlight pre, 213 | .scroll-styled { 214 | overflow:auto; 215 | } 216 | .scroll-styled .highlight pre::webkit-scrollbar, 217 | .scroll-styled::-webkit-scrollbar { 218 | width:8px; 219 | height:8px; 220 | border-left:0; 221 | background:rgba(0,0,0,0.1); 222 | } 223 | .scroll-styled .highlight pre::webkit-scrollbar:hover, 224 | .scroll-styled::-webkit-scrollbar:hover { 225 | background:rgba(0,0,0,0.15); 226 | } 227 | .scroll-styled .highlight pre::webkit-scrollbar-track, 228 | .scroll-styled::-webkit-scrollbar-track { 229 | background:none; 230 | } 231 | .scroll-styled .highlight pre::webkit-scrollbar-thumb, 232 | .scroll-styled::-webkit-scrollbar-thumb { 233 | background:rgba(0,0,0,0.1); 234 | border-radius:0; 235 | } 236 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/css/modx-chunk.css: -------------------------------------------------------------------------------- 1 | body{font-family: 'Lato', Arial, sans-serif; font-weight: 400; line-height: 1.5rem; background-color:#ececec;color:#3a3a3a;} 2 | h1,h2,h3,strong,.bold{font-weight: 900;} .light{font-weight: 300;} 3 | a{color:#6e9924;text-decoration:none;} 4 | 5 | /*mobile nav*/ 6 | body:after {background: #6e9924;content: '';height: 100%;left: 0;opacity: 0;overflow: hidden;padding: 0;position: absolute;z-index: 999;top: 0;visibility: hidden;transition: all 0.4s ease;width: 100%;} 7 | .b-nav li a{color: #FFFFFF;} .b-link{color: #FFFFFF;border-left:2px solid #FFFFFF;}.b-link:hover {color: #333333;} 8 | .b-link--active {border-left: 2px solid #FFFFFF;padding-left: 10px;} 9 | .b-menu{background: #6e9924; border:2px solid #6e9924;}.b-menu:hover {border:2px solid #6e9924;} 10 | .b-bun {background: #FFFFFF;position:relative;transition: all 0.4s ease;} 11 | .b-container:hover:not(.open) .bun-top,.b-container:hover:not(.open) .bun-mid,.b-container:hover:not(.open) .bun-bottom {background: #6e9924;} 12 | .b-container.open .b-main{border:2px solid #FFFFFF;}.b-container.open .b-bun--top,.b-container.open .b-bun--bottom {background: #FFFFFF;} 13 | 14 | /*header*/ 15 | header{width:100%;background-color:#444444;} 16 | nav ul li{position:relative;z-index:9999;display:inline-block;color:#f2f2f2;font-weight: 300;}nav ul li a{text-transform:uppercase;font-weight: 300;display:block;padding:.35rem 1rem;color:#f2f2f2;font-size:1rem;border-top:2px solid #444444;border-bottom:2px solid #444444;} 17 | nav ul li:hover > a{color:#6e9924;border-top:2px solid #6e9924;} 18 | nav ul li ul{width:12rem;background-color:#444444;} 19 | 20 | /*listing*/ 21 | body.listing main > section h1{color:#FFF;background-color:#6e9924;} 22 | .listing--item{padding:3rem 2rem;border-bottom:1px solid #ececec;} 23 | .listing--item--date span{font-weight: 300;background-color:#6e9924;color:#FFF;} 24 | .listing--item h2 a{color:#444444;}.listing--item h2 a:hover{color:#6e9924;} 25 | .listing--item--meta{font-weight: 300;text-align:center;text-transform:uppercase;} 26 | .paging li{background-color:#6e9924;} 27 | .paging li a{color:#FFF;opacity:.6;}.paging li a.active,.paging li a:hover{opacity:1 !important;} 28 | 29 | /*aside*/ 30 | .aside--widget{background-color:#FFF;border-bottom:2px solid #444444;} 31 | .aside--widget h3{border-left:4px solid #444444;background-color:#6e9924;color:#FFF;} 32 | 33 | /*social links*/ 34 | .social--link{color:#444444;} 35 | .social--link:hover{background-color:#f2f2f2;} 36 | .social--link span{background-color:#6e9924;} 37 | 38 | /*page*/ 39 | body.page main{background-color:#FFF;} 40 | body.page main > section > article > h1{border-bottom: 1px solid #6e9924;} 41 | body.page .page--meta{color:#aaaaaa;font-weight: 300;} 42 | body.page main a{color:#6e9924;text-decoration:none;} 43 | 44 | blockquote{color:#aaaaaa;border-left:3px solid #6e9924; padding: .5rem 1rem; margin:1rem 0;} 45 | 46 | /*featured post*/ 47 | .feat--post h4 a{color:#444444;}.feat--post h4 a:hover{color:#6e9924;} 48 | 49 | /*forms*/ 50 | input,textarea,select{border:1px solid #aaaaaa !important;} 51 | form button[type="submit"]{background-color:#6e9924;} form button[type="submit"]:hover{color: #FFF;} 52 | 53 | /*tables*/ 54 | table{border-bottom:1px solid #aaaaaa;} 55 | table thead{border-bottom:1px solid #6e9924;} 56 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/forms.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Forms 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Text Input

79 |

Standard Input with label

80 |
81 |
82 |
83 |
84 | 85 | 86 |
87 |
88 | 89 | 90 |
91 |
92 |
93 |
94 |
95 |

 96 |                       <div class="input-wrapper">
 97 |                         <label for="text">Input Label:</label>
 98 |                         <input name="text" type="text" placeholder="Text Input Values">
 99 |                       </div>
100 |                   
101 |
102 |
103 |
104 | 105 | 106 | 107 |
108 |
109 |

Radio Input

110 |

Standard Radio with label

111 |
112 |
113 |
114 |
115 | 116 | Radio Value 117 |
118 | 119 |
120 |
121 |
122 |
123 |

124 |                       <div class="input-wrapper">
125 |                         <label for="radio">Radio Label:</label>
126 |                         <input name="radio" type="radio"> Radio Value
127 |                       </div>
128 |                   
129 |
130 |
131 |
132 | 133 | 134 |
135 |
136 |

Checkbox Input

137 |

Standard Checkbox with label

138 |
139 |
140 |
141 |
142 | 143 | Checkbox Value 144 |
145 | 146 |
147 |
148 |
149 |
150 |

151 |                       <div class="input-wrapper">
152 |                         <label for="checkbox">Checkbox Label:</label>
153 |                         <input name="checkbox" type="checkbox"> Checkbox Value
154 |                       </div>
155 |                   
156 |
157 |
158 |
159 | 160 | 161 | 162 |
163 |
164 |

Textarea

165 |

Standard Textarea with label

166 |
167 |
168 |
169 |
170 | 171 | 172 |
173 | 174 |
175 |
176 |
177 |
178 |

179 |                       <div class="input-wrapper">
180 |                         <label for="text">Input Label:</label>
181 |                         <textarea name="text">Text input values</textarea>
182 |                       </div>
183 |                   
184 |
185 |
186 |
187 | 188 | 189 | 190 |
191 |
192 |

Select

193 |

Standard Select with label

194 |
195 |
196 |
197 |
198 | 199 | 204 |
205 | 206 |
207 |
208 |
209 |
210 |

211 |                       <div class="input-wrapper">
212 |                         <label for="select">Select Label:</label>
213 |                         <select name="select">
214 |                           <option value="1">Option 1</option>
215 |                         </select>
216 |                       </div>
217 |                   
218 |
219 |
220 |
221 | 222 | 223 | 224 |
225 |
226 |

Button

227 |

Standard Button

228 |
229 |
230 |
231 |
232 | 233 |
234 | 235 |
236 |
237 |
238 |
239 |

240 |                       <div class="input-wrapper">
241 |                         <button type="submit">SUBMIT</button>
242 |                       </div>
243 |                   
244 |
245 |
246 |
247 | 248 | 249 | 250 | 251 |
252 |
253 |
254 | 255 | 256 |
257 | 258 |
259 | 260 | 261 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/fposts.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Featured Posts 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Featured Posts

79 |

Large Fullscreen background image.

80 |
81 |
82 |

Available on "Listing" Content Types with a "Sidebar".

83 |

Enter a comma separated string of resources

84 |

85 | 86 |

87 |
88 |
89 |
90 |

 91 |                       Visible on the home page
 92 |                 
93 |
94 |
95 |
96 | 97 | 98 | 99 | 100 |
101 |
102 |
103 | 104 | 105 |
106 | 107 |
108 | 109 | 110 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/giant-ads.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Giant Ads 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Giant Ads

79 |

Display full cover ads on blog posts.

80 |
81 |
82 |

Available on Every Resource.

83 |

The Flatso snapshot comes bundled with this Extra. Giant Ads

84 |
    85 |
  1. Insert HTML into a "Giants Ads" Collection Resource in the tree.
  2. 86 |
  3. Choose that Resource via the Template Variables Dropdown on any blog post
  4. 87 |
88 |
89 |
90 |
91 |

 92 |                       Visible on surf city - http://flatso.clients.modxcloud.com/surf-city/
 93 |                 
94 |
95 |
96 |
97 | 98 | 99 | 100 | 101 |
102 |
103 |
104 | 105 | 106 |
107 | 108 |
109 | 110 | 111 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Colors 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Primary

79 |

#6e9924

80 |
81 |
82 | 83 |
84 |
85 | 86 |
87 |
88 |

Secondary

89 |

#444444

90 |
91 |
92 | 93 |
94 |
95 | 96 |
97 |
98 |

Third

99 |

#aaa

100 |
101 |
102 | 103 |
104 |
105 | 106 | 107 | 108 | 109 |
110 |
111 |
112 | 113 | 114 |
115 | 116 |
117 | 118 | 119 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/listings.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Listings 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Listings

79 |

Full page listings with pagination.

80 |
81 |
82 |

Available on "Listing" Content Types.

83 |

Listings control the Blog Parent, Categories, and Archives

84 |

Listings contain the Sidebar by default.

85 |
86 |
87 |
88 |

 89 |                       Visible on the home page
 90 |                 
91 |
92 |
93 |
94 | 95 | 96 | 97 | 98 |
99 |
100 |
101 | 102 | 103 |
104 | 105 |
106 | 107 | 108 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/lists.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Lists 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Unordered

79 |

Standard UL when used in a "Page Body"

80 |
81 |
82 |
    83 |
  • Standard UL
  • 84 |
  • Standard UL
  • 85 |
  • Standard UL
  • 86 |
87 |
88 |
89 | 90 | 91 |
92 |
93 |

Unordered Nested

94 |

95 |
96 |
97 |
    98 |
  • Standard UL
  • 99 |
  • 100 | Standard UL 101 |
      102 |
    • Standard UL
    • 103 |
    • Standard UL
    • 104 |
    • Standard UL
    • 105 |
    106 |
  • 107 |
  • Standard UL
  • 108 |
109 |
110 |
111 | 112 | 113 | 114 |
115 |
116 |

Ordered

117 |

Standard OL when used in a "Page Body"

118 |
119 |
120 |
    121 |
  1. Standard OL
  2. 122 |
  3. Standard OL
  4. 123 |
  5. Standard OL
  6. 124 |
125 |
126 |
127 | 128 | 129 |
130 |
131 |
132 | 133 | 134 |
135 | 136 |
137 | 138 | 139 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/nav-tab.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Nav Tab JS 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Nav Tab JS

79 |

The "nav_tab_support" chunk is a small dependency free JS function that we are building with the a11y manager to help support dropdown menu navigation by hitting tab.

80 |
81 |
82 |

Available on Every Resource.

83 |

Small JS File in the Footer.

84 |
It can be removed without worry from the mxt.listing_end_flatso and mxt.page_end_flatso
85 |
86 |
87 |
88 |

 89 | 
 90 |                 
91 |
92 |
93 |
94 | 95 | 96 | 97 | 98 |
99 |
100 |
101 | 102 | 103 |
104 | 105 |
106 | 107 | 108 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/navigation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Navigation 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Navigation

79 |

Top Level Navigation.

80 |
81 |
82 |

Available on Every Resource.

83 |

Automatically built according to tree order.

84 |
85 |
86 |
87 |

 88 | 
 89 |                 
90 |
91 |
92 |
93 | 94 | 95 | 96 | 97 |
98 |
99 |
100 | 101 | 102 |
103 | 104 |
105 | 106 | 107 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/tables.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Tables 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 | 74 |
75 |
76 | 77 |
78 |
79 |

Table

80 |

With Responsive reorganization built-in

81 |
82 |
83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 |
Table Header 1Table Header 2Table Header 3
Division 1Division 2Division 3
Division 1Division 2Division 3
Division 1Division 2Division 3
110 | 111 |
112 |
113 |
114 |

115 |                       <table cellspacing="0" cellpadding="0">
116 |                         <thead>
117 |                           <tr>
118 |                             <th>Table Header 1</th>
119 |                             <th>Table Header 2</th>
120 |                             <th>Table Header 3</th>
121 |                           </tr>
122 |                         </thead>
123 |                         <tbody>
124 |                           <tr>
125 |                             <td data-label="Header 1">Division 1</td>
126 |                             <td data-label="Header 2">Division 2</td>
127 |                             <td data-label="Header 3">Division 3</td>
128 |                           </tr>
129 |                         </tbody>
130 |                       </table>
131 |                   
132 |
133 |
134 |
135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |
144 |
145 |
146 | 147 | 148 |
149 | 150 |
151 | 152 | 153 | -------------------------------------------------------------------------------- /assets/components/flatso/styleguide/text-blocks.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Style Guide | Text Blocks 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 |
29 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 |
46 | 62 |
63 |
64 | 65 |
66 |
67 | 72 |
73 |
74 |
75 | 76 |
77 |
78 |

Headings

79 |

<h5> <h6> are identical in styling to discourage excessive levels of hierarchy.

80 |
81 |
82 |

Heading 1

83 |

Heading 2

84 |

Heading 3

85 |

Heading 4

86 |
Heading 5
87 |
Heading 6
88 |
89 | 90 |
91 |
92 |

 93 |                         <h1>Heading 1</h1>
 94 |                         <h2>Heading 2</h2>
 95 |                         <h3>Heading 3</h3>
 96 |                         <h4>Heading 4</h4>
 97 |                         <h5>Heading 5</h5>
 98 |                         <h6>Heading 6</h6>
 99 |                     
100 |
101 |
102 |
103 | 104 | 105 |
106 |
107 |

Paragraphs

108 |

109 | Standard paragraph with link. 110 |

111 |
112 |
113 |

Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.

114 |
115 |
116 |
117 |

118 |                       <p>content</p>
119 |                   
120 |
121 |
122 |
123 | 124 | 125 |
126 |
127 |

Small

128 |

129 | Standard small text 130 |

131 |
132 |
133 | Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula. 134 |
135 |
136 |
137 |

138 |                       <small>content</small>
139 |                   
140 |
141 |
142 |
143 | 144 | 145 |
146 |
147 |

Blockquote

148 |

149 | Standard blockquote. 150 |

151 |
152 |
153 |
Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.
154 |
155 |
156 |
157 |

158 |                       <blockquote>content</blockquote>
159 |                   
160 |
161 |
162 |
163 | 164 | 165 |
166 |
167 |
168 | 169 | 170 |
171 | 172 |
173 | 174 | 175 | -------------------------------------------------------------------------------- /core/components/flatso/docs/changelog.md: -------------------------------------------------------------------------------- 1 | # Flatso 1.1.1 2 | - Blog ID on RSS pull 3 | - RSS ID Setting and non static RSS Link 4 | - Strip "-" in Category Name caused by tagger output 5 | 6 | # Flatso 1.1.0 7 | - Official Standalone style guide 8 | - Third Config style 9 | - Site name in Config 10 | - Styles for Forms and Tables 11 | 12 | # Flatso 1.0.0 13 | - Basic Blog with 2.4 Dependencies and System Config settings 14 | -------------------------------------------------------------------------------- /core/components/flatso/docs/index.md: -------------------------------------------------------------------------------- 1 | # Flatso 2 | 3 | Get up and running with a standard MODX Blog install with the least barrier to entry. A simple personal blog theme for MODX, done without any "Parent Extras" like "Articles", but instead using MODX 2.4 dependencies to install Extras. 4 | 5 | ## Installation 6 | - Turn on `friendly_urls` -------------------------------------------------------------------------------- /core/components/flatso/docs/license.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 MODX Systems, LLC (hello@modx.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/features/tpl.feature_featured_posts_sidebar_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 |
2 | [[+tv.page_img:notempty=`[[+pagetitle]]`]] 3 |

[[+menutitle:default=`[[+pagetitle]]`]]

4 |

[[+publishedon:strtotime:date=`%B %e, %Y`]]

5 | 6 |
-------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/features/tpl.feature_listing_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 | [[+publishedon:strtotime:date=`%B %e, %Y`]] 4 |
5 |

[[+menutitle:default=`[[+pagetitle]]`]]

6 |
Posted by [[*createdby:userinfo=`fullname`]] in [[!TaggerGetTags? &resources=`[[+id]]` &rowTpl=`tpl.listing_tag_flatso`]]
7 | 8 | [[+tv.page_img:notempty=`

[[+pagetitle]]

`]] 9 | 10 |

[[+introtext]]

11 | 12 |
-------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/flatsocss.chunk.tpl: -------------------------------------------------------------------------------- 1 | 58 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/listing/mxt.listing_aside_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/listing/mxt.listing_content_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | [[*hero_banner:is=`yes`:then=`
2 | [[++cc_logo:notempty=``]] 3 |
`]] 4 |
5 |
6 |
7 | 8 | [[switch? 9 | &get=`[[*id]]` 10 | &c1=`[[++flatso.archive_id]]` &do1=`

[[*longtitle]]

[[+archives]]` 11 | &c2=`[[++flatso.category_id]]` &do2=` 12 |

[[+cateName:empty=`[[*longtitle]]`:default=`[[+cateName]]`]]

13 | [[!getPage? 14 | &elementClass=`modSnippet` 15 | &element=`getResources` 16 | &parents=`[[++flatso.blog_id]]` 17 | &limit=`5` 18 | &depth=`0` 19 | &pageVarKey=`page` 20 | &includeTVs=`1` 21 | &processTVs=`1` 22 | &tvPrefix=`tv.` 23 | &sortby=`publishedon` 24 | &sortdir=`DESC` 25 | &where=`[[!TaggerGetResourcesWhere]]` 26 | &tpl=`tpl.feature_listing_flatso` 27 | ]] 28 | ` 29 | 30 | &default=` 31 | [[!getPage? 32 | &elementClass=`modSnippet` 33 | &element=`getResources` 34 | &parents=`[[*id]]` 35 | &depth=`0` 36 | &limit=`5` 37 | &pageVarKey=`page` 38 | &includeTVs=`1` 39 | &processTVs=`1` 40 | &tvPrefix=`tv.` 41 | &tpl=`tpl.feature_listing_flatso` 42 | &sortby=`publishedon` 43 | &sortdir=`DESC` 44 | ]] 45 | `]] 46 | 47 | [[!+page.nav:notempty=`
    [[!+page.nav]]
`]] 48 |
49 | 50 |
51 | 52 | [[$mxt.listing_aside_flatso]] 53 | 54 |
-------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/listing/mxt.listing_end_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | 2 | [[++cc_js_link:notempty=``]] 3 | 4 | [[$nav_tab_support]] 5 | 6 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/listing/mxt.listing_header_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | [[$mxt.global_header_flatso]] -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/listing/mxt.listing_start_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | [[*longtitle:default=`[[*pagetitle]]`]] | [[++cc_site_title]] 7 | 8 | 9 | [[$mxt.global_meta_flatso]] 10 | [[$mxt.global_assets_flatso]] 11 | 12 | 13 | 14 | [[*id:eq=`[[++flatso.archive_id]]`:then=`[[!getArchives? &parents=`[[++flatso.blog_id]]` &toPlaceholder=`archives` &tpl=`tpl.feature_listing_flatso` &includeTVs=`1` &processTVs=`1` &tvPrefix=`tv.`]]`]] 15 | [[*id:eq=`[[++flatso.category_id]]`:then=`[[!cateHeading]]`]] 16 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/mobile/mobile-nav_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/mxt.global_assets_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | [[++cc_font_script]] 4 | [[$FlatsoCss]] 5 | 6 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/mxt.global_header_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | [[$mobile-nav_flatso]] 2 |
3 |
4 | 7 |
8 |
9 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/mxt.global_meta_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [[*page_img:notempty=``]] 10 | [[switch? 11 | &get=`[[*id]]` 12 | &c1=`[[++flatso.category_id]]` &do1=`` 13 | &c2=`[[++flatso.archive_id]]` &do2=`` 14 | &default=` 15 | 16 | 17 | ` 18 | ]] 19 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/nav_tab_support.chunk.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/page/mxt.page_content_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | [[*hero_banner:is=`yes`:then=`
2 | [[++cc_logo:notempty=``]] 3 |
`]] 4 |
5 |
6 |
7 |

[[*longtitle]]

8 |

By: on

9 |
[[*content]]
10 |
11 |
12 |
-------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/page/mxt.page_end_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | 2 | [[++cc_js_link:notempty=``]] 3 | 4 | [[$nav_tab_support]] 5 | [[*mxg-ad:notempty=`[[$mxg-ad-js]]`]] 6 | 7 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/page/mxt.page_header_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | [[$mxt.global_header_flatso]] -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/page/mxt.page_start_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | [[*longtitle:default=`[[*pagetitle]]`]] | [[++cc_site_title]] 7 | 8 | 9 | [[$mxt.global_meta_flatso]] 10 | [[$mxt.global_assets_flatso]] 11 | 12 | 13 | 14 | [[[[*mxg-ad:is=``:then=`-`:else=``]]getResources? &resources=`[[*mxg-ad]]` &tpl=`mxg-ad-content` &includeContent=`1` &limit=`1`]] 15 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/rss-item.chunk.tpl: -------------------------------------------------------------------------------- 1 | 2 | [[+longtitle:default=`[[+pagetitle]]`]] 3 | [[!++site_url]][[~[[+id]]]] 4 | [[+description]] 5 | [[+publishedon:strtotime:date=`%a, %e %b %Y`]] 17:00:00 +0000 6 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/styleguide.chunk.tpl: -------------------------------------------------------------------------------- 1 |

Heading 1

2 |

Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.

3 |

This line of text is meant to be <small> print.

4 |

Heading 2

5 |

The following snippet of text is rendered as bold text.

6 |

The following snippet of text is rendered as italicized text.

7 | 8 |

Heading 3

9 | 10 |
Blockquote Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. nteger posuere erat a ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
11 | 12 | 17 | 18 | 29 | 30 |
    31 |
  1. OL with numbers
  2. 32 |
  3. OL with numbers
  4. 33 |
  5. OL with numbers
  6. 34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
Table Header 1Table Header 2Table Header 3
Division 1Division 2Division 3
Division 1Division 2Division 3
Division 1Division 2Division 3
62 |
63 |
64 | 65 |

Form

66 |
67 |
68 |
69 | 70 | 71 |
72 |
73 | 74 | 75 |
76 | 77 |
78 | 79 | 80 |
81 | 82 |
83 | 84 | 89 |
90 | 91 |
92 | 93 |
94 | 95 |
96 | -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/tpls/tpl.arc_list_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 |
  • [[+date]] ([[+count]])
  • -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/tpls/tpl.listing_tag_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 | [[+tag]] -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/tpls/tpl.nav-item_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 |
  • 2 | [[+menutitle:default=`[[+pagetitle]]`]] 3 | [[+id:eq=`[[++flatso.archive_id]]`:then=``]] 4 | [[+id:eq=`[[++flatso.category_id]]`:then=``]] 5 |
  • -------------------------------------------------------------------------------- /core/components/flatso/elements/chunks/tpls/tpl.tag_list_flatso.chunk.tpl: -------------------------------------------------------------------------------- 1 |
  • [[+tag]] ([[+cnt]])
  • -------------------------------------------------------------------------------- /core/components/flatso/elements/snippets/cateheading.snippet.php: -------------------------------------------------------------------------------- 1 | sanitizePatterns); 3 | $name = str_replace("-", " ", urldecode($get['category'])); 4 | $modx->setPlaceholder('cateName', $name); 5 | -------------------------------------------------------------------------------- /core/components/flatso/elements/templates/rss.template.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | [[++site_name]] 6 | [[!++site_url]] 7 | [[*description]] 8 | [[*publishedon:strtotime:date=`%a, %e %b %Y`]] 17:00:00 +0000 9 | [[getResources? &parents=`[[++flatso.blog_id]]` &depth=`0` &limit=`30` &sortby=`{"publishedon":"DESC"}` &tpl=`rss-item`]] 10 | 11 | 12 | -------------------------------------------------------------------------------- /core/components/flatso/resources/sample_resource.html: -------------------------------------------------------------------------------- 1 |

    2 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation. 3 |

    4 |

    5 | Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. 6 |

    7 |

    8 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. 9 |

    -------------------------------------------------------------------------------- /screenshots/Flatso-Theme.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/screenshots/Flatso-Theme.jpeg -------------------------------------------------------------------------------- /screenshots/dependencies.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/screenshots/dependencies.jpeg -------------------------------------------------------------------------------- /screenshots/featured-posts.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/screenshots/featured-posts.jpeg -------------------------------------------------------------------------------- /screenshots/flatso-config.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/screenshots/flatso-config.jpeg -------------------------------------------------------------------------------- /screenshots/font-config.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/screenshots/font-config.jpeg -------------------------------------------------------------------------------- /screenshots/mxt-config.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/screenshots/mxt-config.jpeg -------------------------------------------------------------------------------- /screenshots/theme-config.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modxcms/flatso/c50c9f4c1b488f692bb5d01293fd0751b5898ae7/screenshots/theme-config.jpeg --------------------------------------------------------------------------------