Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


apeisa last won the day on May 5

apeisa had the most liked content!

Community Reputation

3,770 Excellent


About apeisa

  • Rank
    Hero Member

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location
    Vihti, Finland

Recent Profile Visitors

24,209 profile views
  1. Yes, I think you are probably right with both of your reasons. I did try to make pagelist work with pagination (it does, but couldn't get limit to be set dynamically, so it follows whatever is set on pagelist module which defaults to 50). It seems that I wont need pagination at all on dashboard (more proof for your point 1), but if the need arises I will definitely take a closer look into it.
  2. Unfortunately I believe there is no best practice and very little tools and helpers regarding testing. I have some experience with Laravel and there testing is first class citizen and is very easy to get started. I think @teppo has done some testing with few of his modules if I remember correctly?
  3. I generally prefer modules not to "pollute" anything with fields and templates. I believe it is also quite a rare need for modules to really to create pages, templates and fields. Of course you generally don't get "turnkey solutions" this way, but more lower level modules and building blocks. For simple example: any modules related to event calendars are just tools to help you build event calendars (render helpers, fieldtypes etc) until they actually create templates and fields for you.
  4. Sound quality is strange 🙂 But your English and articulation is very good, clear and easy to understand! Keep up with the videos!
  5. Ajax upload is not possibility here. I tried to find a cleaner solution than downloading, extracting and filtering json files myself, but final method wasn't that messy so I think it goes (just worried about the edge cases though).
  6. Thanks @kongondo! Never actually used WireUpload - is there way to "attach" it to certain field in a page? If I do $language->language_files->add($urltozip) it just adds the zip without unzipping it.
  7. @bernhard just created a new PR for basic language support (creating new languages and setting translation files for a language). Usage inside migrations is simple: $finnish = $rm->addNewLanguage("finnish", "Finnish"); $rm->setTranslationsToLanguage( "https://github.com/apeisa/Finnish-ProcessWire/archive/master.zip", $finnish->name, ); Or if you just want to set translations to default language: $rm->setTranslationsToLanguage("https://github.com/apeisa/Finnish-ProcessWire/archive/master.zip");
  8. Thanks @teppo Those links you added come handy if the need is add new language instead of update default one. EDIT: I realize that adding new languages was exactly what I asked for in first post. But actually needed only updating the current default. Anyways, I think adding new languages is trivial to this.
  9. Ok, it was "fairly" simple. I didn't find a way to use WireUpload to handle unzipping, so had to do it manually. But this seems to work: <?php namespace ProcessWire; $upgrade = function (RockMigrations $rm) { // Install lang support module modules('LanguageSupport'); // get default language $default = languages()->get('default'); // Download lang pack from github to cache folder, unzip and loop and add .json files to language_files field for the language $http = new WireHttp(); $zipUrl = "https://github.com/apeisa/Finnish-ProcessWire/archive/master.zip"; $zipLocal = config()->paths->cache . "language.zip"; $http->download($zipUrl, $zipLocal); $items = files()->unzip($zipLocal, config()->paths->cache); if(count($items)) { foreach($items as $item) { if (strpos($item, ".json") === false) continue; // Yeah, there could be more proper check here... $default->language_files->add(config()->paths->cache . $item); } } // finally save the language $default->save(); // UI update needs still logout/login or modules => refresh modules()->refresh(); }; Not sure what part of that could be part of RM and how? Also - in this level uninstall of LanguageSupport works nicely - I think it might be a lot more complex when multilang fields are involved.
  10. Thanks @bernhard Yep, I guessed this might be tricky one... Things I would like to to do via API is a) install basic language support (this is probably easy one) b) add new languages (this probably too, since language is a page) c) upload json files to a new language (maybe this also, since json files are just files inside the language) If/when I get this working, I will definitely add support to RockMigrations for this.
  11. Thanks @d'Hinnisdaël Gotta say I really like this module, solid work & documentation. One suggestion - not sure I understand the reason for current Collection pagination? It only shows the count of results, instead of showing actual pager. Changing this to actual pager is trivial, but probably something you would like to offer as an option? $pagination = sprintf( $this->_('Showing %d of %d'), $this->collection->count, $this->collection->getTotal() ); $footer .= "<div>{$pagination}</div>"; so instead of that just use: $footer .= "<div>{$this->collection->renderPager()}</div>"; And we have default PW pager working as expected. Of course this is not fully functional (and probably reason why left out from initial version?) is that it doesn't work with current table sorts which are only client sorts. Another route for case where you really need paging would be using pagelist, but there I think pager limit should be a setting too.
  12. Hi Has anyone tried to install (and/or) update languages without using admin UI? I would love to automate that process.
  • Create New...