Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/22/2016 in all areas

  1. Awesome!!! https://www.smashingmagazine.com/2016/07/the-aesthetic-of-non-opinionated-content-management-a-beginners-guide-to-processwire/ Thanks Francesco!
    16 points
  2. This week the core continued to be upgraded for more Fieldtype features like pagination support. We also released a new version of ProFields Table (v14). This post also looks at a new SmashingMagazine.com tutorial and more on the 3.x release timing. https://processwire.com/blog/posts/3.0.27/
    11 points
  3. That was the best introduction/explanation of ProcessWire that I have ever read. You have an excellent grasp of how things work and know how to convey it in a very enjoyable writing style. A link to this article should be somewhere on the main ProcessWire website. Simply amazing writing!
    6 points
  4. Done: https://processwire.com/about/processwire-reviews/
    5 points
  5. Thanks, but why not on https://processwire.com/docs/tutorials/ ? It's a beginner's guide after all, with very important concepts to grasp. ProcessWire Reviews & ProcessWire Videos are sort of "hidden pages", I would expect them to be on the tutorials page, at least the Videos for sure. I keep forgetting that these pages are linked form "About".
    2 points
  6. Update to the User Dev Template functionality - it is now tied into the Template Path panel so that you can have an easy visual indicator to alert you when any user is being served an alternate template. Before I explain further, the one breaking change from yesterday is that the system now only checks for "template-****" permissions and not roles. If you want to assign to a single user, then create a new "template-****" role and give it the "template-****" permission. In this screenshot, you can see the reminder detailing why the icon is orange. Currently we are not viewing a page with an alternate template, but it is letting us know that: the "User Dev Template" option is enabled in module settings the "template-dev" permission exists the permission has been assigned to at least one user there are template files with a "-dev" suffix So if this is expected then great, but if not, then you can prevent the alternate templates from being rendered by doing one or more of the following: disabling the "User Dev Template" option removing the template-dev permission from the system remove the template-dev permission from all roles delete alternate template files with the "-dev" suffix If you are on a page that is using an alternate template due to user permissions, then you will see the PW permission cog icon: I hope this visual indicator will make this functionality easier for you to manage.
    2 points
  7. You use wire("page") If rendering a repeater field from another page, let's say echo $pages->get(1001)->render("repeater_field"); So in template/fields/repeater_field.php echo "<p>Page containing the repeater: " . $page->title . " " . $page->id . "</p>"; echo "<p>Page currently requested: " . wire("page")->title . " " . wire("page")->id . "</p>"; // render each repeater echo $value->each("<section><h2>{title}</h2>{body}</section>");
    2 points
  8. Hi @bernhard That's dependent on the two options above. I planned to build a intercooler-js module, but it's so simple to use... No need to build a wrapper around it to implement it as PW module... At the moment the module is a PW TemplateFile helper with additional css / js handling simple TemplateFile load method it hooks Page::render to add the main layout / template if it isn't an ajax call (because it should work with intercooler ajax calls ...) So maybe I build just a pw template helper (PW TemplateFile class helper, handle js / css, ...) module instead of intercooler.
    2 points
  9. "This CMS will sometimes include a meta tag within the html of each page". Kind of misinformation considering that ProcessWire will not include anything in your markup by itself, but I guess that's just some boilerplate content so no biggie. Also: congratulations to innobloom for getting listed there!
    2 points
  10. Hello, in one of my current projects, we have a test and production stage with their own ProcessWire installations, and we regularly want to migrate template/field configuration to the next stage without migrating content as well. ProcessWire supports this via the import/export functionality in the admin GUI. However we (and some others) would like to do this as part of an automated process. There seem to have been some discussion on this topic and two existing modules that get pretty near our requirements: https://github.com/mindplay-dk/SystemMigrations/blob/master/SystemMigrations.module https://github.com/LostKobrakai/Migrations However, they try to solve more then we need and for mindplay-dk's module, development seems to have discontinued. At that point I decided to build a more simple module with reduced scope that basically just makes ProcessWire's import/export automation-ready. Thanks in advance for trying this out and any feedback! About this Module CAUTION: This module is incompatible with repeater fields and ProFields. The module enables you to transfer template and field configuration from one processwire installation to another in an automated way. Changes to templates or fields are exported to the file system immediately (so they can be added to source control together with changes in the template files) The import script is designed to run from the command line (so it can be invoked from your build/deployment tool). On invocation in import mode, a DB backup is created template/field changes from the persist directory are imported into the DB In restore mode, the import script can restore any of the DB backups previously saved How to Use Make sure the module is installed in the source and destination ProcessWire environments. After installation of the module, you should check if the module's default persistDirectory configuration setting fits your requirements. The module will automatically export all fields, fieldgroups, and templates to JSON files in the directory specified by that setting. Note that the same setting is used by the import script as well, so if you change it, make sure you change it in all affected ProcessWire environments. The JSON files can be transferred to the destination ProcessWire environment. Running the import script from the command line will import template and field data in the destination ProcessWire environment. Manual Installation Caution: Beta software - do not use in a production environment without prior testing and regular back-ups. Caution: This module is incompatible with repeater fields and ProFields. In case automatic installation does not work, get the code at https://github.com/jaromic/pw-autoexport-tf/ and follow the instructions in README.md for manual installation. Manual Uninstall Delete the following files and directories from your module directory: AutoExportTemplatesAndFields/ AutoExportTemplatesAndFields.module Download Install from the module directory, clone the repository via GitHub, or download ZIP.
    1 point
  11. I've been working on a version of the core theme based on some proposals in the forums on a new processwire.com design. It's entirely derived from the default theme and inspired by ideas around a new ProcessWire look and feel. I wanted something that I'd be proud to show clients, and something that could draw developers to ProcessWire who might have been turned off by the default admin UI. This was created by working from the default theme, and developed organically over time. It's not coded in the most efficient way, but I hope it's useful for some of you. I'd love to see a cleaner look in the default theme. Ryan, if you see anything you like, please steal it! Likewise if you see anything you think could be improved, I'm all ears. -Brent AdminThemeSubtle.zip
    1 point
  12. Hi! I've been making my first modules and I've created three so far to help me learn. I would love so feedback or pull requests for improvements as I hope to write a tutorial about my work soon. In particular the third modules isn't very finished. git: https://github.com/benbyford/PW-starter-modules/ HelloUserYouSaved - adds message {your user name, page saved} in admin when a page is saved. This module shows how to implement a basic module, get and use variables, create a message in the admin RedirectAdminPages - redirect specific user role to a custom page set in the module config. This module shows how to implement module configuration, using variables saved in the admin, redirecting a user using session->redirect() HotSwapUser - Swap user on the fly in the admin or frontend of your site This module shows how users can be used in a module how to set a user permission how to install / uninstall something within your module how to create a function that can be output in the frontend of your site.
    1 point
  13. Just found http://intercoolerjs.org/ It does declarative ajax. Frontend wizardry without writing javascript. I'm impressed.
    1 point
  14. New fun little site: http://wineatsandsweets.com. Responsive. Even though this is a little site on the front-end, in the admin, we have done a lot of work to handle and process entries. ProcessWire made making the custom functionality and organizing the admin for a great user experience a breeze. Every time I make a site and do a bit of work in the admin, I am amazed that I am able to produce results that look, feel, and act as if the whole CMS was custom rolled for my clients. PW FTW! Using a few modules, Field type Star Rating Process Page Field Select Lister Pro Pro Fields Field type Range Slider I wanted to add that every-single piece of content on this site was added and produced by my client. That always amazes me. Processwire is so easy to use for my clients that I just give them the keys and they go to town working on their website(s).
    1 point
  15. Soma's code should work for your situation (it works for me), but a couple of other possibilities... Use "include=all", but this would include unpublished repeater items which may be undesirable, foreach($page->my_repeater as $repeater_item) { $next_repeater = $repeater_item->next("include=all"); if($next_repeater->id) { // do something with $next_repeater } } Use getNext() foreach($page->my_repeater as $repeater_item) { $next_repeater = $page->my_repeater->getNext($repeater_item); if($next_repeater && $next_repeater->id) { // do something with $next_repeater } }
    1 point
  16. Very good point! However, the problem is that the tutorials page template uses the user that created the article as the listed author. I don't imagine Ryan would have a problem adding Francesco as a user with tutorial editing permissions, but I don't want to assume anything there, so the reviews page is the simplest place to list for the moment. Hopefully Ryan will be happy to change this at some point. PS - the reviews page is also something that is linked to in the SM article, so it may start getting more views even though it is a little hidden.
    1 point
  17. What is $layout? Well if you use a next() , PW will search for the next repeater page and while they're hidden in /admin they're protected. You could try next("check_access=0") to get around that.
    1 point
  18. Hej, I haven't worked a lot with FormBuilder, yet, so my approach would be to stick with the API. I just dont know enough to have an opinion about FormBuilder. But also since there are not too many fields and things to consider I think it shouldn't be too complex with API forms. I guess you can easily do this on one single page, keeping the state of the transaction in the session to display the correct form. May I give you some ingredients with which I would do this instead of giving a complete solution? Also, maybe you could post your current code so we can have a look at what is going wrong/missing? I think by copying Somas forms completely in the first place and then hacking aroung you should get an idea of how those work. It is not as much as it might seem! My few ingredients: So one thing I would do: Keeping track of the current step of the transaction within the form itself: You could keep track of the transaction steps with a hidden field in the 2 forms that will be presented: $field = $this->modules->get('InputfieldHidden'); $field->attr('name+id', 'step_id'); $field->attr('value', 'whatever-step-id'); $form->append($field); And incrementing the value of that step accordingly. In the template-file for that page I would ask for that step kinda like so - the switch statement should be implemented in somas code where it says "do with the form what you like" if($input->post->submit) { $form->processInput($input->post); // drr drr drr // drr drr drr switch ($input->post->step_id) { case 'step-confirm': $form_output = render_step_confirm_form(); break; case 'step-granted': $form_output = render_download_link(); break; default: $form_output = render_step_zero_form(); break; } } The building of the form could be put in some functions like "render_step_1_form()" so it stays a bit cleaner. mh. And then of course all of your other logic. Does that help? Hope it does - cheers Steffen
    1 point
  19. NIce work Francesco! I just left a comment on the article singing praises to generate even more excitement.
    1 point
  20. Hello, i am trying to search page with multiple options like, i have one select box where i can select multiple items as <select id="tokenize" name="tokenize" multiple="multiple" class="tokenize-sample" /> i have GET form and when i submit the form i get values like search/?tokenize=abc&tokenize=xyz now in my search page $children = $pages->find("template=property, Ad_Type=".$ptype." ,Area=".$tokenize); as you can see i have passed multiple values of tokenize, how can i search page contains all values ? Thanks
    1 point
  21. Update: looks like it's SlimJet browser only, in Chrome longclicks seem OK. I got the longclick to work, now I need a similar bright idea how to get the edit link ("/edit/?id=XXX"). Perhaps I need to add all the parents' IDs to an inline JS and get it from there.
    1 point
  22. my vote goes for view: icon edit: ctrl+click only drawback of my method would be if somebody is rewriting urls somehow... maybe also on multisite environments? but at least they have the option to switch it OFF
    1 point
  23. Good idea. I can't think of any drawbacks that could happen, but maybe I'm wrong. To avoid the clutter, I would do it on ctrl+click instead any visual icon or something. What do you think about it? Plus alt+click for edit for example, that's something I have already planned.
    1 point
  24. ok thank you. what do you think of also adding the preview links also to parent items in the breadcrumb nav?
    1 point
  25. Why not take the uikit style from the <span> and add it to the <a>? .uk-pagination>.uk-active>a { background: #009dd8; color: #fff; border: 1px solid rgba(0,0,0,.2); border-bottom-color: rgba(0,0,0,.4); background-origin: border-box; background-image: -webkit-linear-gradient(top,#00b4f5,#008dc5); background-image: linear-gradient(to bottom,#00b4f5,#008dc5); text-shadow: 0 -1px 0 rgba(0,0,0,.2); }
    1 point
  26. https://whatcms.org/c/145_ProcessWire The third site (innobloom) is developed by us. The client spotted this and he is very happy now. So do I.
    1 point
  27. @RyanJ Can you elaborate a bit more on how they manage database changes you're doing on those dev environments?
    1 point
  28. I recently had the experience to spin up a WordPress website using pantheon web service. I got to say that I am truly impressed with the workflow it provides out of the box for WordPress and even Drupal. You get three environments to work in, Development, Stage and Production. The fact that you can pull back the production database into your development environment is such a useful tool. Would love to see PW as an option for them.
    1 point
  29. Example caddyfile :80 { # document root root /home/httpd/public_html # fastcgi / <PHP-HOST>:<PHP-PORT> php fastcgi / 127.0.0.1:9000 php # converted htaccess rewrites internal /forbidden rewrite { r /\. to /forbidden } rewrite { r /(COPYRIGHT|LICENSE|README|htaccess)\.txt to /forbidden } rewrite { r ^/site(-[^/]+)?/assets/(.*\.php|backups|cache|config|install|logs|sessions) to /forbidden } rewrite { r ^/site(-[^/]+)?/install to /forbidden } rewrite { r ^/(site(-[^/]+)?|wire)/(config(-dev)?|index\.config)\.php to /forbidden } rewrite { r ^/((site(-[^/]+)?|wire)/modules|wire/core)/.*\.(inc|module|php|tpl) to /forbidden } rewrite { r ^/(site(-[^/]+)?|wire)/templates(-admin)?/.*\.(inc|html?|php|tpl) to /forbidden } # GLOBAL rewrite { to {path} {path}/ /index.php?it={path}&{query} } log logs/access.log { rotate { size 50 age 7 keep 5 } } errors { log logs/error.log { size 50 age 7 keep 5 } } } You need php-fpm installed to pass php requests to. Log file path is relative to workdir (/home/httpd/). Used with Caddy 0.8.3 and 0.9beta2 behind a caddy reverseproxy.
    1 point
  30. I just wanted to share this library here: http://barbajs.org/ It's a pjax implementations specifically for handling page transitions without full page-reload as simple as possible. It's super lightweight and can literally be installed by pulling the library in, adding two classes to your pages and a single line to initialize the whole thing. I've just added this to my personal site (https://kobrakai.de/) and beyond some js refactorings – mostly so that animations are not only triggered on page loads – it was a very smooth experience to add. Also I've probably only scratched the surface on this simple site. The docs look like this could handle even more complex setups if needed.
    1 point
  31. that's why i said "just kidding"... i thought that would be enough justification for such a statement on an off-topic forum...
    1 point
  32. I was always more for action here. I remember some tank simulator on Amiga (don't remember the name), where it all started. Lately it's CoD4 & Borderlands mostly, although I'm trying out Battlefield 2: Bad Company a little
    1 point
×
×
  • Create New...