Popular Content

Showing most liked content since 09/12/2017 in all areas

  1. 20 points
    https://www.baumrock.com/portfolio/individuelles-crm-und-controlling-tool/ I'm happy to share my biggest and most interesting ProcessWire project so far with you It's a 100% custom office-management solution that helps my client to keep track of all their contacts, projects and finance/controlling stuff. Conception was done back in 2016 and the software is productive since begin of this year. My client is very happy with the result and so am I. Some technical insights: Everything is done inside the PW Admin. I'm using the Reno Theme with some custom colors. In the beginning I was not sure if I should stay with the pw admin or build my own admin-framework but now I'm VERY happy that I went with PW Almost all of my custom Process Pages use my RockDatatables module - there are still some limitations but without it, this project would not have been possible For the charts I used Google Charts and chartjs - both play well together with the datatables and make it possible to display filtered data instantly: also my handsontable module was created for this project to have a nice and quick option for matrix data inputs: Lister and ListerPro were no options as i needed much more flexibility regarding data presentation (like colorization, filtering and building sums of selected rows): invoices are highly customisable as well and easy to create. PDFs are created by php and mPDF by the way: all data is dummy data populated via my Module RockDummyData have a nice weekend everybody
  2. 11 points
    Just something I was trying out recently that might be useful to someone... With the following hook added to /site/ready.php you can adjust the CKEditor toolbar that a particular role gets for a particular field. Use the name of your CKEditor field in the hook condition. $this->addHookBefore('Field(name=my_ckeditor_field)::getInputfield', function(HookEvent $event) { $field = $event->object; // Define toolbar for a particular role if($this->user->hasRole('editor')) $field->toolbar = 'Format, Bold, Italic, -, NumberedList, BulletedList, Outdent, Indent'; }); Or what I find useful on some sites is adding extra toolbar buttons for superuser only that you don't trust editors to use. $this->addHookBefore('Field(name=my_ckeditor_field)::getInputfield', function(HookEvent $event) { $field = $event->object; // Add extra buttons for superuser only if($this->user->isSuperuser()) $field->toolbar .= ', Table, TextColor'; }); You could use the same technique to selectively define other CKEditor settings such as 'stylesSet', 'customOptions', 'extraPlugins', etc.
  3. 11 points
    This week: A hurricane, no electricity, a new version of ProcessWire on the dev branch, and a new version of ProDrafts that adds repeater support and workflow support. https://processwire.com/blog/posts/processwire-3.0.75-and-a-new-version-of-prodrafts/
  4. 11 points
    CMS critic is one website and not even a very popular one. It has done great stuff promoting PW (and many other systems out there), but it is very small amount of visibility. ProcessWire is steadily pushing forward, but it is true that some systems did get more popular in much faster - especially craft. See this https://trends.google.co.uk/trends/explore?date=all&q=processwire,craft cms (I believe they did get most users from dying Expression Engine community where they were popular plugin authors). I think ProcessWire is "old dog" now for most - it isn't "new and interesting" anymore, so all kind of marketing "gimmicks" should be used. New features should be promoted much more (videos, tutorials, blog posts etc). Ryan is doing most of the development, weekly posts and supporting his paid modules, so this is something where community - all of us - could help. Also I believe that this website, docs, tutorials etc are those parts of this project that can be most easily delegated to community. Another one is having official starter themes (site profiles) and admin theme. We have amazing amount of design and development talent here, I wish we could collaborate more easily. We all know Ryan is busy, so do not wait for green light and guidance - if you feel like you could do something for our community - just build it and share it! More people will pick interest and great things will happen!
  5. 7 points
    Personally I have the impression it's growing at a slow but steady pace. And though slow and steady is much better than fast and sloppy, it's a bit frustrating to see other platforms seeming to get more attention while being notoriously inferior. I like following CMS Critic's Awards. PW has got a bunch of exposure there, but this year it's only nominated for "Best for SMEs" alongside Craft and ModX, both paid platforms. I'm guessing Craft will get that one because it looks polished and very DIY, and PW is too "pro" for that category. Then there's "Best free CMS". PW is not there. You see the usual Joomla and Wordpress there, along with CMS Made Simple. That one just trying out the demo makes me cringe. It's so 2001 that I can't take it seriously. Now I've never used Joomla, but I constantly compare PW with Wordpress and can't comprehend how Wordpress still holds on to such a large chunk of the market. "Best Open Source CMS". CMS Made Simple, ModX, Silverstripe. So I went to see what Silverstripe is all about. Now SS looks to use a somewhat similar approach to PW, and though it looks relatively polished, it doesn't feel as mature to me. So we've got PW in one category this year, and the wrong one. To me that feels like a loss, which will reflect another dip in that Google Trends chart over the next year. The next version will be an important step. Updating the default theme of the CMS is a must. I'm guessing most people now immediately install Reno's theme the second they enter the CMS after installing. So a new version with a new look will attract attention and that will hopefully pull it up a bit more. If we want it to grow faster (an argument can be made whether that would be good or not), it's mostly a matter of getting more people to try it out. After getting the first project running, it's hard not to be hooked. On an end note, I think it's time we start considering a refresh on the website. Just saying.
  6. 6 points
    Why not? It's not that much work and provides you with all the niceties of language support. Drop a simple PHP template in the regular templates folder: <?php include("../site/ajax/{$input->urlSegment1}.php"); and create a template with url segments enabled with pattern: regex:^[a-zA-Z0-9]+\.php$ A single, hidden page can then route all your ajax calls in a language-aware way. Altogether that shouldn't take more than five minutes.
  7. 6 points
    On the issue of We're getting very OT here, but I have handled this is many different way depending on needs, but this module (originally by @apeisa and fixed for PW 3 by @teppo can actually be a great starting point for a frontend user interface: https://github.com/teppokoivula/AdminBar You will want to skin it to match your site etc, but it can look and work really well, eg:
  8. 5 points
    @elabx - thought I'd take a quick look into what is actually required and this seems to work well: $this->addHookAfter('ProcessPageSearch::executeFor', function($event) { $response = $event->return; $responseArray = json_decode($response, true); $matches = $responseArray['matches']; $i=0; foreach($matches as $match) { if($match['type'] == 'Pages' && strpos($match['path'], $this->config->urls->admin) === false) $matches[$i]['editUrl'] = $match['path']; $i++; } $responseArray['matches'] = $matches; $event->return = json_encode($responseArray); }); Note that it only changes the link if the match has type of "Pages" and also doesn't point to an admin url. Let me know if this works at your end ok.
  9. 5 points
    This must be the most impressive thing I've seen in PW. Hope it was expensive too
  10. 5 points
    i would be happy to take over some backend part. i did some quick research on what's present at the moment at processwire.com and it looks like the only reasonable project lead could be ryan. we have the site, the modules directory, the forum, the dev-directory, the blog, store, showcase... i don't know how everything works behind the scenes. but as the roadmap also lists "new website" as a point i think it's at least on ryans wishlist. it would be really nice if ryan could manage to involve the community into this process. also i would really love to see more transparency what this "WE" in my quote of the roadmap actually is... as I stated on some other threads one of my main concerns with processwire at the moment is the quite high bus factor (https://en.wikipedia.org/wiki/Bus_factor) same here: available for that not before 2018, but willing to help wherever i can
  11. 5 points
    Curious what everyone else thinks. Maybe it won't be a huge deal in most cases, but I can see sites with certain header and footer content being cutoff with this design. Have a read of their developer guidelines - yet another thing to consider in our designs: https://developer.apple.com/ios/human-interface-guidelines/overview/iphone-x/ Honestly I think more square corners for the device itself look better and I think the screen should be completely square - I feel like this is stepping back to old TV rounded corners: Note that I don't like the edge of the Samsumg Galaxy S8 either - I feel like it looks weird and I am sure your hands would end up covering the edge of what you are trying to view. Sorry for rambling, but I am curious what everyone else thinks they should be aiming for both esthetics and functionality?
  12. 5 points
    you should definitely invest some minutes and start writing process modules. it's incredible how fast you can create your very own admin GUIs and you will learn to understand processwire a lot better define "success" i agree with most of all posts above but i also want to say that i like the fact (or at least it seems to be like this) that we do NOT attract a lot of "i am looking for a click click and it's done" users. i like the way people here behave, trying to learn things, trying to understand, trying to find their way around the code... maybe if processwire looked more fancy that would be different. i don't know. and maybe it's not ryans goal to become more popular. the roadmap states it as a goal for 2017 - but i'm not sure how important it is for ryan. personally i would love to hear more personal and strategic infos regarding the project. who is the team behind processwire? is it only ryan? what happens if ryan can not continue to work on it? he said at several occasions that there ARE people that could continue the project but i would love to have a more reliable solution/statement for that. i don't really care if we have 10.000 or 10.000.000 users - but i do care if i have enough certainty to be able to work with some kind of software on the long run. to be honest i have some concerns about the last point sometimes. but i calm myself knowing that even if processwire would not get updated for a long time it would still run safely and without any issues and i would have enough time to learn something else
  13. 5 points
    Sorry, I was more talking about my post rather than what you guys were posting. I completely agree with your goals for 2018. In fact I am currently trying to convince a Drupal shop to go with ProcessWire. They don't want to touch Drupal 8 and I have an PW advocate on their team, but we both agree that PW needs a more modern look (website and admin theme) to help convince their clients. Unfortunately it's often not enough that things work great, they also have to look great and look like they will work great - the whole "judging a book by it's cover thing" - as devs we hopefully don't do that, but clients will!
  14. 5 points
    Sounds off topic but may not be so. As pointed out earlier and above, documentation is an important part of the success. Everyone knows that (probably...) And building front-end logins, forms, admins, dashboards, modules and stuff like that is not documented, except for module and core code comments and hard to scan blog posts, of course. But those are hidden bits of information and kinda time consuming to dig up. Also, basic frontend design tutorials are outdated. I propose to make 2018 the year of the documentation, so to speak. What if we could stop hunting for new features for a while and concentrate on the following in 2018: new processwire.com new UIkit admin theme documentation: updated basic frontend design tutorials and lots of real world form API tutorials for the masses. Just my two cents here
  15. 5 points
    I wish, I wish... ProcessWire had loooooots of @ryans behind it. As it stands, we all depend on him. As long as he is with us, all is good though...
  16. 4 points
    You are right. Yes, and we are working to resolve it. You've been a great help so far, reporting the spam, thanks!
  17. 4 points
    Is this a ProcessWire friday happiness guest blog post request I'm reading?! 'cause it would be awesome.
  18. 4 points
    I think a lot of us would like to contribute, some way or another, depending on skils and available time. But at the end it's Ryan who must alocate time and other resources for this project and take a lead.
  19. 4 points
    hi rushy and welcome to the forum! that does not sound good in the pw world you should avoid creating your own custom php files in the root of processwire. it's better to stay with the intended way of displaying pages, meaning you have a page in the backend and a related template. in your case you dont even need another template or another page. you can submit the form to the page itself. lets say you have a tempalte "contact" and in that template you display your form like this: <?php // /site/templates/contact.php ... <form ...> ... </form> just change your forms action to itself and add some additional php code to the top of your file: <?php // /site/templates/contact.php if($input->post->yoursubmit) { // do some checks and sanitization, eg spam-check // log this request echo 'Thanks for your message!'; } else { <form action="./"> <input type="submit" name="yoursubmit" ...> </form> } pseudocode
  20. 4 points
  21. 4 points
    The thing that can potentially allow Table to scale up to a very large number of rows is the ability to paginate the rows, both in output and in the admin interface. Pagination is not enabled by default but is an option. You could probably have 150 rows in an AJAX-loading repeater without a technical issue, but for both Table and Repeater you could have a bit of a usability issue with that number of rows. Imagine dragging a row from bottom to top for instance. And I don't know if that's even possible with a paginated Table interface (how do you drag from the last page to the first?). But these problems seem like they just go with the territory of what you are needing to do and the number of items you need to support. If you think you will work on more PW projects I'd say it's definitely worth purchasing ProFields. It's fantastic value for money, just for Table and Repeater Matrix alone.
  22. 4 points
    I've found a cleaner way to modify prepend/append files depending on the current page. wire()->addHookBefore('PageRender::renderPage', function (HookEvent $e) { /** @var Page $page */ /** @var HookEvent $event */ /** @var Template $template */ $event = $e->arguments(0); $options = $event->arguments(0); $page = $event->object; $template = $page->template; $options['prependFiles'] = [ "{$template}.routes.php", "_common.php", ]; $options['appendFiles'] = [ "views/{$template}.php", "_after.php", "layouts/main.php", ]; $event->setArgument(0, $options); }); The older way felt too much like a hack to me. To early exit and skip including remaining files during render, use `return $this->halt();` anywhere in your templates.
  23. 4 points
    I really would try upgrading to latest dev first - that wireInstanceOf function adds a lot of extra logic that I assume will take care of things when $type is null.
  24. This post cannot be displayed because it is in a forum which requires at least 10 posts to view.
  25. 4 points
    One trick is to do this instead... if('pageGeo' == $page->template) If you mistyped that as: if('pageGeo' = $page->template)// syntax error // OR even if(1 = $page->id)// syntax error PHP will throw a Parse Error: syntax error, unexpected '=' , immediately alerting you of your mistake .
  26. 4 points
    I just forked the module and added support for repeaters (only on the multi select inputfield for now); it basically involves 2 steps - changing the module code to use mostly the renderReady method instead of render(), and then some small update to the js file to init the field on the necessary events, which for the sake of brevity also involves moving the init code into its own function var... I submitted a pull request; in the meantime if you need this to work now, you can try the forked version https://github.com/outflux3/InputfieldChosenSelect
  27. This post cannot be displayed because it is in a forum which requires at least 10 posts to view.
  28. 3 points
    I also recommend using built-in InputfieldPageAutoComplete, install it from Modules > Core and change categories field to use autocomplete. It's much easier to seach and pick categories with it. There's also selectize and chosen js alternatives as well https://modules.processwire.com/modules/inputfield-selectize/ https://modules.processwire.com/modules/inputfield-chosen-select/
  29. 3 points
    v1.5.7 is up, containing the Trash pagelist action for non-SuperUsers too (from Robin S), with an inline confirm feature:
  30. 3 points
    For the last week or so, a number of accouts have started to post status updates with (mostly) unrelated content. I've checked out the submission histories of ~20 of them, and none of them has a recent post. They were registered long time ago and made several status updates over time. I started noticing them after the last week's forum update. Something about it allowed these status updates to surface, and now around ~10-15 updates are posted daily, which is enough to flood the activity stream. Is anyone else bothered by this? These are from the last 24 hours
  31. 3 points
    If possible, I would create a "group" for those active members who request more quota so that they can be assigned more. (This is theory, I do not know how the forum works...) I understand that 50MB x 5200 is already a lot and most of the forum members do not need it, but for those who contribute a lot, 50MB is not too much.
  32. 3 points
    This is a really BIG Project you should write an article around this especially a case study
  33. 3 points
    These are just demos and often running the default skin. I think Ryan has mentioned a few times he's keen to stress that they're not design proposals.
  34. 3 points
    Yes, and personally I'm up to lend a hand. But we need to organise. Maybe by starting a thread dedicated to setting up a team and starting to discuss things.
  35. 3 points
    Thanks again @Robin S. I think i'll go with the Profield. As i understand, it should also be frontend editable via a modal. This way i have the best editing experience and at the same time i support the Development of Processwire. Thanks @all for your help.
  36. 3 points
    PageListTrash Allows non-superusers to trash pages directly from Page List (if they have page-delete permission for that page). Not much to say really - the module adds a "Trash" option to the extra actions for pages in Page List. It looks and works just like the Trash action available to superusers. https://github.com/Toutouwai/PageListTrash/ Up to you whether you think non-superusers should be trusted with simpler trashing. For most cases I like the default behaviour where editors have to jump through some more hoops - I want them to think carefully about what they are doing. But if an editor needs to trash several pages then this module might reduce frustration. @tpr, by now you can probably predict what I'm going to say... ...something to merge into AdminOnSteroids?
  37. 3 points
    I'm making progress with all the necessary changes. On my dev server (not git-pushed yet), the following is complete: Languages: Multi-language is sorted. It now renders the sitemap according to Google standards, where a page's <url> is generated for each languages with alternate langs, including current. Method is not the same as above example (page-loop), but expands on the root-first-then-children process - this allows easier flexibility in terms of what we can ignore on a page by page basis. ISOs: Haven't created the separate language ISO field yet, as my my main concern is regarding names vs ISOs. If they are normally identical, then we would only need to declare a proper ISO name for the default language only when its URL matches the default root URL (ie: default URL root = site root). In this case, perhaps it would be better to simply have a module config entry for the default language only? The rationale behind this is that the language name (other than default) should be the same as the iso (for better SEO practice, I'd guess). I haven't yet bumped into a ProcessWire site that doesn't use the ISO for each language name accordingly. If I'm wrong, please point it out, and then I'll use the iso field, per the above example. Or perhaps I should simple allow the flexibility and have the ISO name fall back to the language name if not provided via a field (the default would still need one if it is root)? Image-support: Images are now picked up in all languages, given the process-change. If an image field is not specified in another language, it will fall back to the default language. Support for ImageExtra remains. Priority: not done yet. I'll follow a basic principal with this: if the priority is set on a specific page, then it will be added. Otherwise, the tag will be left out. If this is not the correct methodology, please let me know. (cc @psy) Note: I still need to do some testing on this...
  38. 3 points
    From what it looks like, $user is the currently logged in user - this check is outside your functions, so I don't see that this is actually doing anything. The email check looks fine This should also be ok, but remember the issue I mentioned with the first line. This turns off output formatting which is important when saving fields to a page - consider a datetime - you want to save a unix timestamp, and not a formatted string like 14 September, 2017 7:17:11 am Really your call - there are arguments for both approaches. You might actually find things simpler if you try this approach to user pages: https://processwire.com/blog/posts/processwire-core-updates-2.5.14/#multiple-templates-or-parents-for-users which lets you set up users with URL accessible pages directly. BTW - a great writeup of your approach here - I am sure others will learn lots!
  39. 3 points
    @SamC - depending on your needs/preferences, you might also look at these: http://modules.processwire.com/modules/front-end-edit-lightbox/ http://modules.processwire.com/modules/fredi/ https://processwire.com/blog/posts/front-end-editing-now-in-processwire-3.0-alpha-4/#now-all-fields-can-be-front-end-editable and also, Tracy comes with a "User Bar" which you can skin that links to the backend to edit the current page: https://processwire.com/talk/topic/12208-tracy-debugger/?do=findComment&comment=127824
  40. 3 points
    Now solved!!! The issue turned out to be one page field within a repeater. I'd set 'Template of selectable page(s)' to 'blog-post' and then set 'sort=-blog_date' in the 'Custom Selector to find selectable pages' field thinking the two selectors would combine. Turns out they don't, at least not in this way. All pages, repeaters and other admin sub pages were selectable within this field. The site has hundreds of pages, many with a large number of repeaters in so every time the page admin was loaded / saved it read all of them. Combining the required filters with only the statement 'page-template=blog_post,sort-=blog_date' for this page field did the trick and the admin for this template (and saving pages with this template) now works really quickly. Phew!
  41. 3 points
    hi roland and welcome to the forum, i read your other posts and i also see two options: 1) if you WANT to learn and are not afraid of writing some code you'll always find someone here that is willing to help 2) if you want a quick solution and stay in your (i quote you here and mean it bad in no way) "wordpress click click and boom ready" - world I'm sure you find a developer in the job-board that can help you
  42. 3 points
    I think a comprehensive doc would help greatly with new users or people on the fence. I know this has been discussed to death, but one place for the api/cheatsheet/tutorials with snippets/starting points would give first time users a confidence boost. I feel like I spend hours (if my project is large) googling and jumping between the references. It can be a bit disheartening at time. With all that being said, it doesn't seem to be "as bad" as when I was first starting out as I now have a better grasp on functions/the flow of PW. I have started moving away from granting access to the backend for in house projects, and instead, building "backends" on top of PW for them to use. I found it easier to give them only what they need to see than to have them getting scared of the page tree. I understand that PW is pretty much open ended and is only limited by your imagination, but maybe (dare I say) a template with the barebones for a dashboard/backend (perhaps with some ajax) built on top of PW could be helpful as well for new users. I know I still struggle with working ajax into projects and making something flashy, and examples always help (like live page listing refreshes etc). Understandably, this couldn't be a one size fits all, but it would be a great jumping off point for the newly initiated and make it more comfortable when granting access to the client or whomever the project is intended (Only intended if that workflow suites the project I know). The backend isn't such a scary place, but to whomever doesn't need all of the tree, could be nice. Well, I will end my ramblings, but thought I would throw my 2 cents out there.
  43. 3 points
    @psy - That's on my wishlist too ;-) Yes, I'll definitely implement this.
  44. 3 points
    I think a theme refresh for the admin would make a big difference. Problem I have is I don't know how I'm gonna convince clients that PW is a better choice than WP. As in, off the top of my head: 1) They know WP, everyone talks about it, their mum told them it's amazing! 2) Themes. 3) When you leave, who's gonna take over their PW site long term? 4) They want extra functionality, you can't do it for whatever reason, who can? 5) I like the simplicity of the hierarchical tree in PW. So far, my clients have been a little confused because of hidden/unpublished pages. They think everything in the tree is on the site to view. In fairness, I may have missed a setting that makes these actually hidden from clients. For example, one page that needed to be in the tree, but also hidden (to stop it being in the main menu) was a settings template. Client needed access to it, but it had to remain hidden. 6) Loads of plugins (whether good or bad, the client knows they're available). And they haven't looked into how they are coded, and why would they? They think they can simply install it and get going (although the truth differs somewhat). 7) Images/docs uploaded per page, not centrally. I've never liked this so much, however there is a paid module for media. If there is a file download on two different pages, this is awkward for the user. They can't just open 'all docs' or something and just sling it in. 8) They think WP is free, as in, downtime after being hacked, decent plugins are paid, you need plugins to do things a proper CMS just has as standard... not so free really. Now I've really liked PW from the get go, but in reality, I can't see how I can avoid learning WP too. Literally all the web design jobs round here list the same requirements, HTML, PHP, CSS, JS/jQuery, Wordpress. I've spent a fair bit of time with PW and this really irks me. --EDIT-- So I just looked up how to make some basic custom fields, post types and custom menus in WP as a refresher. It made me sad. And made me think twice about going down that road.
  45. 3 points
    Do not forget that WordPress is click-and-play and can be easily pimped by googling around the web and pasting some hooks into functions.php. You can't beat that! WordPress is not even a CMS, by the way it is a blog engine with a nice GUI.
  46. 3 points
    @bernhard, I've found a way. Hooking ProcessPageEdit::buildForm works wire()->addHookAfter('ProcessPageEdit::buildForm', function (HookEvent $e) { /** @var ProcessPageEdit $edit */ $templates = ['post', 'basic']; $edit = $e->object; $page = $edit->getPage(); if (!in_array($page->template->name, $templates)) return; /** @var InputfieldForm $form */ $form = $e->return; /** @var InputfieldImage $imageField */ $imageField = $form->children->findOne('name=images'); if (!$imageField) return; $imageField->maxFiles = 1; }); When I try to add more images, field just replaces the first one, not allowing more than one. If there were multiple images before, they disappear after page save, only the first one remains.
  47. 2 points
    Hello @bernhard, it seems like there is a global limit for attachments of 50 MB per user. You can see your space under Profile => My Attachments. For example I have currently 40 MB left. Maybe the limit could be set higher by @Pete or maybe it is the default of IP.board. I am not sure. Regards, Andreas
  48. 2 points
    It looks to me like you are running 3.0.62 (or thereabouts) as line 374 of that file looks like: } else if(strpos($type->className(), 'FieldtypeRepeater') !== false) { I would suggest upgrading to the latest dev and see if that fixes it. The new version uses this instead: } else if(wireInstanceOf($type, 'FieldtypeRepeater')) { Otherwise, we'll need to debug $field (type and name) to see what field is causing it to hang up.
  49. 2 points
    I've just merged the changes of @Macrura.
  50. 2 points
    Wishlist/request... would love to see on a per page/template basis a sitemap priority field. When no priority is specified, Google goes 'top page - 100%', 'sub page - 80%', 'sub-sub-page - 60%'. In reality however, the 'sub-page' is often the parent page in the menu. The 'sub-sub-page' has the guts & glory that you want indexed with a high priority. Google doesn't guarantee but says it will give a sub-sub-page with a priority eg of 80% a higher priority than it's root parent with a priority of 60%. https://www.sitemaps.org/protocol.html