Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


clsource last won the day on August 26

clsource had the most liked content!

Community Reputation

685 Excellent

1 Follower

About clsource

  • Rank
    Sr. Member
  • Birthday 10/18/1989

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location

Recent Profile Visitors

7,674 profile views
  1. Thanks this is a nice improvement πŸ™‚ Now it's lazy loaded and the thumbnails are 200x200 px πŸ™‚
  2. https://processwire.com/api/ref/languages/get-default/ $wire->addHookBefore("Pages::saveReady", function(HookEvent $event) { $page = $event->arguments(0); if($page->template->name != 'mytemplate') return; if(count(wire("languages")) > 1) { $defaultLang = wire("languages")->getDefault(); $page->title->setLanguageValue($defaultLang, "New Value"); } else { $page->title = "New value"; } $event->arguments(0, $page); });
  3. May be this can work? https://processwire.com/api/ref/pages-type/save-ready/ $wire->addHookBefore("Pages::saveReady", function(HookEvent $event) { $page = $event->arguments(0); if($page->template->name != 'mytemplate') return; $defaultLang = wire("languages")->get("default"); $page->title->setLanguageValue($defaultLang, "New Value"); $event->arguments(0, $page); });
  4. $defaultLang = wire("languages")->get("default"); $page->title->setLanguageValue($defaultLang, "New Value");
  5. Maybe is your internet provider configuration. https://watchmysys.com/blog/2015/01/unitymedia-is-blocking-vpn-connections/ Please try using another Internet provider maybe using 4G. Or similar network. Thanks.
  6. check if you are using https πŸ™‚ https://aves.ninjas.cl/
  7. Hello, I finished this toy project. A simple API to show data for Chilean Birds. Used to flex my PW and React muscles, since a lot of time has passed since making something with those techs. Code: https://github.com/NinjasCL/chileanbirds-api Frontend (React): https://aves.ninjas.cl Backend (PW): https://aves.ninjas.cl/api Hope you like it πŸ™‚ Thanks.
  8. clsource

    Solidwire Language

    I didnΒ΄t mean to say which approach is better. I think RockMigrations is a good tool. SolidWire is not a replacement of any migration strategy or tool. It's just an idea to ease the communication and prototyping between developers and other people. It's in the same area of https://plantuml.com/ Just a tool to improving an eagle view of the system. The JSON output is just an idea similar to https://doc.mapeditor.org/en/stable/manual/introduction/ Any other proper migration tool could use it to generate a proper output. But is not mandatory :).
  9. clsource

    Solidwire Language

    Ok I have been toying around with this lib https://mudgen.github.io/webscript/docs/ And make a somewhat implementation of SolidWire using Javascript. import builder from "webscript/src/webscript.js"; import createElement from "webscript/src/createObjectElement.js"; const { wire, templates, template, fields, field, pages, page } = builder( createElement ); const core = { fields: { textarea: field.class("FieldtypeTextarea"), }, }; const site = {}; site.fields = { body: core.fields.textarea.name("body"), about: core.fields.textarea.name("about").max(100), }; site.templates = { home: template .name("home") .root(true) .fields(site.fields.body.label("Content")(), site.fields.about()), }; site.pages = { home: page.title("Home").template(site.templates.home()), }; const render = (data) => Object.values(data).map((item) => item()); const solid = wire( templates(render(site.templates)), fields(render(site.fields)), pages(render(site.pages)) ); console.log(JSON.stringify(solid, null, 2)); executing that code brings this result in json { "tagName": "wire", "children": [ { "tagName": "templates", "children": [ { "tagName": "template", "children": [], "value": "", "__isElement": true, "name": "home", "root": true, "fields": [ { "tagName": "field", "children": [], "value": "", "__isElement": true, "class": "FieldtypeTextarea", "name": "body", "label": "Content" }, { "tagName": "field", "children": [], "value": "", "__isElement": true, "class": "FieldtypeTextarea", "name": "about", "max": 100 } ] } ], "value": "", "__isElement": true }, { "tagName": "fields", "children": [ { "tagName": "field", "children": [], "value": "", "__isElement": true, "class": "FieldtypeTextarea", "name": "body" }, { "tagName": "field", "children": [], "value": "", "__isElement": true, "class": "FieldtypeTextarea", "name": "about", "max": 100 } ], "value": "", "__isElement": true }, { "tagName": "pages", "children": [ { "tagName": "page", "children": [], "value": "", "__isElement": true, "title": "Home", "template": { "tagName": "template", "children": [], "value": "", "__isElement": true, "name": "home", "root": true, "fields": [ { "tagName": "field", "children": [], "value": "", "__isElement": true, "class": "FieldtypeTextarea", "name": "body", "label": "Content" }, { "tagName": "field", "children": [], "value": "", "__isElement": true, "class": "FieldtypeTextarea", "name": "about", "max": 100 } ] } } ], "value": "", "__isElement": true } ], "value": "", "__isElement": true } @bernhard maybe some JSON like that could be used in RockMigrations. So you have the best of both worlds. A simpler syntax and an output that could be used to define migrations using JSON πŸ™‚
  10. Althought Laragon is a great choice. You can also use Docker if you want πŸ™‚ Here I made a simple config for PW https://github.com/joyofpw/docker πŸ™‚
  11. clsource

    Solidwire Language

    Hey I updated the spec. Now it's more like Pseudocode than a whole language in itself. The idea is just to communicate better and make plans before building or thinkering with the fields. Example for this small project that I'm building https://github.com/NinjasCL/chileanbirds-api @document { @wire { @templates { home: template().options({@once, @strong, @root}), notfound: template().options({@once, @childless}).description("Used in 404 errors"), birds: template().options({@strong}).family({ parents: ["home"], children: ["birds-item"] }), birds-item: template().options({@childless}).family({ parents: ["birds"] }) }, @fields { title: text().options({@i18n, @global}), body: textarea().options({@i18n}), uid: text(), href: url(), file: files().max(1), migration: checkbox(), dimorfism: checkbox(), size: text(), order: text(), species: text(), image: images().max(1).mediatypes([@jpg, @png, @svg]), images: images().mediatypes([@jpg, @png, @svg]), value: text().options({@i18n}), habitat: textarea() .description("Stores the habitat property") .options({@i18n}), didyouknow: textarea() .description("Stores the did you know property") .options({@i18n}), iucn: pagetable() .max(1) .fields({ body: body().description("Stores the iucn description"), value: value().description("Stores the iucn value") }), audio: pagetable() .max(1) .fields({ file, title.label("Author") }), map: pagetable() .max(1) .fields({ image, value }), }, @pages { + "Home" (template:home) @many -> { + "Birds" (template:birds) @many -> { + "Bird 1" (template:birds-item, fields: { title: title().label("Names"), body: body().label("Description").description("Stores the bird description"), images, habitat, didyouknow, iucn, audio, map, species, migration, dimorfism }) } // /birds } // /home } // /pages } // /wire } // /document
  12. I think another approach is just having a "Homily" template.That uses a repeater field to storage dates and seasons. Maybe a structure similar to this <homilies> <homily> <title /> <about /> <repeater> <priority type="int"/> <date/> <season /> </repeater> </homily> <homily> <title /> <about /> <repeater> <priority type="int"/> <date/> <season /> </repeater> </homily> <homily> <title /> <about /> <repeater> <priority type="int"/> <date/> <season /> </repeater> </homily> </homilies> So you can search all the homilies and put the different dates and season configuration for that homily. If one or more homily is on the same date then you can use the priority field to sort them out.
  13. Also you can use this docker file I created for easy PW dev env πŸ™‚ https://github.com/joyofpw/docker
  14. This is a cool idea. I will start creating a course, but it has no the contents, but in the following weeks I will start uploading videos.
  15. Hello friends here a small config for quickly using composer and processwire https://github.com/joyofpw/docker πŸ˜„
  • Create New...