Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 06/16/2019 in all areas

  1. Not sure if you have in mind a site profile for generally sharing with the community, or something that is made available only to some specific users/clients. If it's the former I would think option 1 would be necessary if you want the profile to be usable by a wide audience. I expect there are many here who are not running Git or Composer. And as you say you would update the profile from time to time (not really different in that regard from a module you have authored). If it's the latter then another option could be @bernhard's Kickstart tool: You would provide users with Kickstart settings that point to a remote profile zip that does not include any third-party modules within it, and then add the third-party modules in the "recipe". That way a user who is installing the profile always gets the latest module versions. I suppose you could use the Kickstart approach for a generally shared site profile too but it comes back to the audience thing again. If PW beginners should also be able to use the profile then it's probably best if the profile can be installed as per the standard procedure without them needing to learn any additional tools.
    4 points
  2. Thanks @horst and @Robin S for the input! Those are some valuable insights right there. I do have to agree that #1 would be beneficial for the widest possible audience. As you pointed out, Robin, this is likely still the best approach for most site profiles out there, simply because it's the only solution that works right out of the box. Anything else would require either the use of somewhat developer-oriented tools (such as Git or Composer) or a totally different approach (ProcessWire Kickstart) – and as such would be a potential turn-off for some users. This is just me thinking out loud, but if site profiles were able to provide a list of dependencies that ProcessWire could then satisfy (or tell the user to handle manually if it couldn't), that could be nice. Or perhaps ProcessWire should provide some sort of built-in support for "recipes"... ? Anyway, in my case the site profile I'm working on is going to be rather developer-oriented, so if Composer is enough to scare someone away – well, that's probably for the best. Basically what Horst said above: it depends on the target group, and in this case my target group are developers, so going with a set of tools that are anyway considered essential in the business isn't necessarily a bad thing. I could also go with Kickstarter, but since I'm trying to reach for the "serious developer" territory here, I think using industry-wide best practices is actually going to be a benefit in itself ? (And yes, I'm currently leaning towards Composer approach. Though please let me know if you have better ideas – I'm all ears!)
    2 points
  3. Thank you @Wanze for the additions (especially for the structured data)!!
    2 points
  4. I wrote a script a while back to search for this kind of thing, though it doesn't spider Gitlab, PW gists or forum code yet. I've made a start at putting it online at pwgeeks.com. Currently only has about 60 items of over 1300 it has found to date - but as I massage it back to life, the directory will fill up.
    2 points
  5. After building the ProcessMentions module and another autocomplete module for images, I found that I am going to need even more of these, but things were going to get repetitive. So I refactored the whole thing into a basic autocompletion module and individual "actions". The result is Autocomplete for CKEditor (GitHub). To try out, Install the module and actions Enable actions in the settings of any CKEditor field Edit a page with this field, type "@" and some characters for the and enjoy There are still a few things I need to implement. ATM, it only supports single characters as triggers for the autocomplete. I'd like to change that to combinations so I don't run out of special characters at some point. I also have to add a few more configuration options (like search only at the beginning or also in the middle of the searched string). The documentation for custom styling also needs some work. I have tried to keep things generic. Implementing your own actions should be quite straight forward. The README at GitHub illustrates the main steps and the supplied action classes have inline documentation. I would love to get some feedback or even see some third party InlineCompleteAction implementations.
    1 point
  6. ProcessWire 3.0.133 adds a useful new $page->meta() method for a new type of page-specific persistent data storage, adds the ability for users to create their own bookmarks in Lister, and has a handy and time saving update for the asmSelect input type. Read on for all the details, examples and screenshots— https://processwire.com/blog/posts/pw-3.0.133/
    1 point
  7. Perfect. Thanks so much. I like the idea of using ProTable for this rather than a Repeater to reduce overheads. Much appreciated everyone.
    1 point
  8. @adrian I found a small bug. Using slashes for example on the title field the image doesn't rename properly. For example on title field I have: Poster/Flyer and the image renamed to flyer.jpg where it should be poster_flyer.jpg.
    1 point
  9. Yeah, it's pretty bare-bones at the moment. A form to allow folks to manually submit finds/report classification errors would be neat too.
    1 point
  10. Ok, I think the directory is about there now. Has about 1400 assets - many of which are not available via the modules directory. Enjoy.
    1 point
  11. I had some use case, were I have to show some data from my $page->meta() to specific users in the admin panel while they edit the page. I used FieldtypeRuntimeMarkup and created a field which makes only the output of this meta values. It works well.
    1 point
  12. Done, thanks for the hint! ? I was thinking that ProcessWire would update this information regularly? ?
    1 point
  13. UPDATE 2019-06-15 The taxes repeater field in module config editor was updated: changed to a grid view for more flexibility added field validation prepared the taxes-repeater field code to become a standalone flexible Inputfield module for general use (Array/JSON repeater input field which stores its values in a single text field) The taxes handling is completed! SnipWire now acts as a full flexible taxes-provider for Snipcart (we use Webhooks for this). No configuration needed in Snipcart dashboard. SnipCart orders are now fully working (except shipping handling). The sample shop templates got an update: customer login/logout customer dashboard link/button to view orders history and subscriptions editing of customer profile Other updates and fixes: The SnipWire Dashboard was updated (Charts, Orders, Customers, ...) --> see screenshot below. The Dashboard fetches its data from Snipcart via CURL multi - the response time for a fresh load is now under 2 seconds The Webhooks handler now supports all Snipcart events via hookable methods. Snipwire now supports all major Admin themes (Uikit, Reno and Default) All module classes/files are more structured (e.g. separate helper and service classes) Under the hood many bugs are fixed and code is updated to prevent unexpected errors. Added a crispy SVG logo for all SnipCart back-end pages ? Screen-recording of updated taxes-repeater: Screenshot of SnipWire Dashboard:
    1 point
  14. Version 0.8.0 has been released: Adds facebook share preview for content editors when editing Opengraph meta data Adds support to extend the rendered meta title with additional information such as the domain or site name (#11) Renders structured data (JSON-LD) for breadcrumbs via new group "structuredData" (#10) Adds new meta group "structuredData" which will handle more types of structured data in the future ? Happy weekend everyone! Cheers
    1 point
  15. I got ajax working, it was pretty simple in the end. In RockGridItem.js: xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var httpResult = JSON.parse(xhr.responseText); // Tabulator change var table = RockGrid.table; table.setData(httpResult); grid.getDOM().dispatchEvent(new Event('RockGridAjaxDone', {bubbles:true})); } };
    1 point
  16. Well... I stumbled across this almost by accident and... I really like love it. 1 remote file 1 setup file Ready to go Almost as easy as setting up a new project in laragon. <?php /** * Universal Starter Default * * @author wbmnfktr, webmanufaktur.net * @version 1 * */ $password = $this->randomPassword(16); return [ 'pw' =>'https://github.com/processwire/processwire/archive/dev.zip', 'profile' => 'https://github.com/webmanufaktur/pwbmultiblank/archive/master.zip', 'settings' => [ 'timezone' => 368, // vienna 'dbUser' => 'root', 'dbPass' => '', 'dbTablesAction' => 'remove', ], 'recipes' => [ function() { $this->installModule('FieldtypeRepeater'); $this->installModule('HannaCodeDialog', 'https://github.com/Toutouwai/HannaCodeDialog/archive/master.zip'); $this->installModule('ImportPagesCSV', 'https://github.com/ryancramerdesign/ImportPagesCSV/zipball/master'); $this->installModule('InputfieldPageAutocomplete'); $this->installModule('LazyCron'); $this->installModule('MinimalFieldset', 'https://github.com/Toutouwai/MinimalFieldset/archive/master.zip'); $this->installModule('PageHitCounter', 'https://github.com/FlipZoomMedia/PageHitCounter/archive/master.zip'); $this->installModule('PagePathHistory'); $this->installModule('ProcessDatabaseBackups','https://github.com/ryancramerdesign/ProcessDatabaseBackups/archive/master.zip'); $this->installModule('ProcessExportProfile', 'https://github.com/ryancramerdesign/ProcessExportProfile/archive/master.zip'); $this->installModule('ProcessForgotPassword'); $this->installModule('ProcessJumplinks', 'https://gitlab.com/rockettpw/seo/jumplinks-one/-/archive/1.5.54/jumplinks-one-1.5.54.zip'); $this->installModule('ProcessMenuBuilder', 'https://github.com/kongondo/MenuBuilder/archive/master.zip'); $this->installModule('ProcessPageClone'); $this->installModule('TextformatterHannaCode', 'https://github.com/ryancramerdesign/ProcessHannaCode/archive/master.zip'); }, ], ];
    1 point
  17. The topic you found is about modules. If you want to add a tab to your page edit screen you should create a field of type FieldsetTabOpen. Add it to your template and place the inputfields you want to show up under this tab between the opening and closing field.
    1 point
  18. Just thought I'd add the solution to this problem, for reference. Turns out there's a file called /site/assets/cache/LazyCron.lock (or something along those lines) preventing the cron functionality from working when there are PHP errors in my cron logic, which can happen during development of course. Fixing the errors and deleting the lock file restores functionality.
    1 point
×
×
  • Create New...