Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/12/2017 in all areas

  1. Hi! My name is Vadim and it's my first site (http://asvetnik.by/), made on Processwire. The site was created for a non-profit organisation, based in Belarus, and it's main aim is to help children and grown-ups learn Belarusian language. Three versions of main page (desktop, tablet and mobile): What was created: Lesson pages with tasks and vocabulary: Vocabulary pages for single words: Quiz pages: And a bunch of other pages, like news and text pages and so on. Used modules: Croppable Image 3 ( @horst, you are my hero, superhero! your module made my work much faster and, what is more important, more safe to be used by 20-25 editors, most of whom can't (or, I'm sure, just don't bother to) remember what dimension must be pictures for main and inner pages ProFields: Repeater Matrix (to create simple, but yet powerful lesson LEGO-like constructor) ProFields: Textareas (for reasonably huge number of dictionary-related fields) ProCache (obviously, for speed) Comment (thanks @ryan for this modules and your help!) For example, here is the dictionary page enhanced by ProFields: Textareas: All technical information about a single word is stored in just one DB-row. No extra fields, no extra connections to the datebase! ProFields also helped me to easily create a simple, but yet powerful JSON-based live search through the dictionary: And this search (blame me, but for now it works properly only on desktop) was an instant success among the users (this library was used - http://easyautocomplete.com/). ProFields: Repeater Matrix was used to give teachers a possibility to 'build' lesson from different content blocks, to give them freedom of action and to make it easy to add new content blocks based on their request in future. Here is a small inside from admin, a typical lesson looks something like this: The best advert for ProFields: Repeater Matrix would be one of the teachers' note left for me: "It's like LEGO, I've got a bunch of building blocks and it's up to me how the lesson would look like". Thanks, @ryan, for this. What next. Site is in active beta now, it easily cope with 100-120 parallel connections and with 400-450 at picks. I know, that there are some mistakes in html and css, and they would be resolved in the next update. I'm trying to convince people to use jpgs instead of pngs for main page graphics, but not sure, that it is possible. For my own headache I've done all the graphics for the site (thank Favicon) and now teachers love 'ideal' pngs so much that nasty 'blured' jpgs drive them mad)) P.S. It's pity, but there is no studios in Belarus who are actively work with Processwire (and Wordpress for me it's something brrr after simple beauty and stability of Processwire), so if your are looking for a hard-working and eager to learn junior in your team - feel free to contact me in PM. Thanks for your attention!
    8 points
  2. Do you feel like sharing your version at some point? Others might find it useful also!
    4 points
  3. Turns out it wasn't that hard after all! I "reworked" Somas AutoSave to my needs and, to my own surprise, it works fine. Have to test it though on more complex page structures and fieldtypes. After three years "living" with PW I am still amazed how easy some things are. Even for me.
    4 points
  4. If I understood correctly, you are trying to get some kind of a content builder. So your client can add a section with copy, then a section with a copy and an image and so on. I suggest you use Repeater Matrix for that. If you cannot afford the subscription, use Page Table from the core. But... just buy Repeater Matrix) There are other ways, but this one's the best.
    4 points
  5. Hello fellow ProcessWarriors. https://supertiny.agency Just a minute ago I've launched a new instalment of the SuperTINY website. It's hard to believe the first version is almost 2 years old now. So here are some highlights on this one: Powered by v3.0.84, which is delightful; Https and way more SEO conscious; Added Portuguese language; No frontend framework, all hand-made, avoiding even the slideshow plugin I normally use and trimming down libraries to the minimum; New blog, where we'll regularly (hopefully) post not so technical stuff directed at the companies the hire people like us; Modular content in the portfolio and blog articles, using the repeater + type options approach I've mentioned in other threads; Other than that, a really simple installation, with AIOM+, MarkupSEO, MarkupSitemapXML, Imagick, and that's about it. In due time I'll re-release the old version in an archive so I can later pour myself a scotch and remember the old days.
    4 points
  6. You got me thinking. I do work as a single developer, but increasingly I'm finding I want to deploy solutions I've developed for one project to another, and just copying and pasting via the admin isn't ideal. I was having a look at Silverstripe recently, as I have a possible project where Processwire, though I'm sure can do the job, might meet some resistance, whereas Silverstripe will almost certainly be accepted as it's mandated as the CMS of choice by government here (NZ). What struck me is that you can do far more with Processwire with less coding, but in some cases defining data structures via coding rather than via an admin UI may be more appropriate for sharing code between projects or in the case of a team between team members. Processwire is perfectly capable of doing this as the admin UI is just a layer on top of the API, so there's no reason why fields and templates can't be defined programmatically in modules that are subject to version control. I notice that some of the existing modules actually consist of several dependant sub-modules, bundled in a common folder, so it would be easy to set up something like this with git version control. Silverstripe automatically rebuilds database schema by using a /build URL, however it doesn't remove unneeded fields or tables after a schema change, whereas the Processwire API makes it fairly easy to both add and remove fields via a module. Processwire will detect changes to a module version, and run any update process automatically, so even though it bypasses the ease of use of the admin UI, developing your database schema programmatically in modules might ease collaborative development.
    3 points
  7. Well... there it is: https://github.com/Klenkes/AjaxSave At the moment the only configurable setting is the button text. I tested with all kinds of configurations and found no problems except admin theme UiKit shows the message box twice for a second. I'm sure the module could use a "cleaning" hand from a Pro
    3 points
  8. got some very good news on this (it feels like christmas for myself, because this made me some headache over the last months and the solution is quite simple and solves a lot of problems). I did some performance tests on a table with more than 10.000 rows and got the following results here on my local test environment (laragon + i7 @ 2ghz). rendering the table with javascript test-data works instantly (using deferrender option, did not try without) rendering the table with data coming from pw pages and 5 different fields takes around 16s single-language setup without caching takes around 5s to load multi-language setup without caching around 8s with markup cache enabled 180ms the screenshot shows a multi language table with 10.000 rows and 12 fields that loaded in 9,1s when building the cache. thats some really nice results, because it will make the setup even easier and it will even work with multilanguage wich I didn't know how to tackle before. my goal always was to stay on the client side, because there you have all the power of datatables: you have a powerful API to filter, sort etc the table and this plays perfectly well together with other clientside libraries like chart.js; my testcase showed that the search and sorting was also very snappy so I think it's definitely doable! It will be the first project after my master thesis and I may have something ready around 03/2018 I don't think that's a proper way to do this. I think there are only the 2 options: Release it for free (donations are always possible and welcome of course) without any support, documentation etc. or release it as pro module and provide proper support and docs. maybe @kongondo or @apeisa can share some of their experiences with us (or at least with me in a PM)?
    3 points
  9. @dragan you should be able to update the module to 1.1.7 and run the job from LazyCron.
    3 points
  10. Thanks @szabesz! - About the links, Its actually updated in the next version - ProcessDuplicator will have a "clear logs" button and a "downloads logs" button as the logging mechanism has changed a bit in the new version @dragan there is nothing wrong, I just made a mistake. give me two minutes
    3 points
  11. Hi @Klenkes I have never tried this module, but from the description, it looks like, partially, what you are looking for. https://github.com/somatonic/AutoSave
    3 points
  12. Best not to give users access to fields that they are not trusted to manage. So if only certain roles should be allowed to edit a field (for a files field editing means adding or deleting files) then set up access permissions for that field. I'm not sure it makes sense to allow users to upload files to a field but not delete them. Otherwise how do they correct their own mistakes if they accidentally upload a file to the wrong field or on the wrong page? But if you're sure you want to do this you could use the following hook in /site/ready.php: $wire->addHookBefore('Pagefiles::delete', function(HookEvent $event) { // The item about to be deleted $item = $event->arguments(0); // Only for ProcessPageEdit if($this->process != 'ProcessPageEdit') return; $page = $this->process->getPage(); $field = $item->pagefiles->field; // Now optionally use $page and $field to limit the below to particular pages, templates, fields if($this->user->hasRole('YOUR_ROLE')) { // Prevent the normal delete() method $event->replace = true; // Show the user an error message $this->error('Sorry, you are not allowed to delete files.'); } }); I don't recommend it because it will be slow and potentially result in a lot of sent mail, but the following example is a proof-of-concept for sending an email notification of deleted files. $wire->addHookBefore('Pagefiles::delete', function(HookEvent $event) { // The item about to be deleted $item = $event->arguments(0); // Only for ProcessPageEdit if($this->process != 'ProcessPageEdit') return; $page = $this->process->getPage(); $field = $item->pagefiles->field; // Now optionally use $page and $field to limit the below to particular pages, templates, fields if($this->user->hasRole('YOUR_ROLE')) { // Send email notification $m = $this->mail->new(); $m->to('someone@domain.com') ->from('someone@domain.com') ->subject('File deleted') ->body("File '{$item->basename}' was deleted by '{$this->user->name}' from field '{$field->name}' on page {$page->httpUrl}.") ->send(); } });
    3 points
  13. The more I work on projects that have lots of fields, lets say on a produkt page, I miss an "Apply" button that saves silently in the background without reloading the page. Imagine your fields are organized in fieldsets, and for a good overview they are set collapsed. Each time you save your page you start new by scrolling down, look for your fieldset, open your fieldset, look for your field, and place the cursor again where you left off. Example: Unless there already is a feature like that and I missed it this is my feature request.
    2 points
  14. https://www.google.ca/search?q=p+logo&source=lnms&tbm=isch&sa=X&ved=0ahUKEwif9PSKrIXYAhUZ0IMKHZ-3AZoQ_AUICigB&biw=1680&bih=930 There are so many similar looking "P" logos - what can you do
    2 points
  15. You can turn Repeater into a kind of poor man's Repeater Matrix by adding all the fields you need to the Repeater, then adding a Page Reference field at the top to select the type of item. Use inputfield dependencies to show/hide inputfields according to what type is selected.
    2 points
  16. Budget is not the problem, I love Ryans ProModules! But I never had the need for ProDrafts with all its fancy features and just for an apply button? But it would be worth it. Just to peek into it and see how it is done.
    2 points
  17. One more module I forgot but I also use @teppo's ProcessChangelog module along with Activity Log: http://modules.processwire.com/modules/process-changelog/ I keep an eye on the RSS feed so that I get notified when someone makes changes. Quite handy too.
    2 points
  18. @flydev Here come my findings: I installed Duplicator on my shared hosting account and also on a VPS and there are no timeout issues but I have noticed the following: - Package Manager's Support button is not liked to https://processwire.com/talk/topic/15345-duplicator-backup-and-move-sites/ - Similarly, lots of module developers also link to the support forum thread and the Module Directory page in the modules's More Information block. Currently it links to https://processwire.com which is not too useful - Package Manager has two buttons: Settings, Support. What about a "Clear Log" button as well? It would clear the Duplicator log file. - until DropBox support is back once more, you might want to update the first post of this thread where it says "Implemented" I use the built in cron.php and it works for me.
    2 points
  19. What could go wrong, if I tried Duplicator already on two PW installs (both 3.0.81 or thereabouts), both on a Windows machine (local) + remote (*nix), but nothing happens? I chose the default settings + LazyCron. Checked the error logs also - nothing.
    2 points
  20. This is no different from using a CMS like WordPress or Drupal given their architecture. I'd recommend looking at the approach of Roots.io. More specifically reading their Twelve-Factor WordPress App series and adapting it accordingly with your preferred set of tools: https://roots.io/twelve-factor-wordpress/ #6 addresses file uploads: https://roots.io/twelve-factor-06-processes/ Relevant module: Hope this helps!
    2 points
  21. Quick update: there's now a 2.0 branch and 2.0 milestone for this module at GitHub. For the time being the 2.0 branch is identical with master branch, but it's a start. I'm going to get another project I've been working on out there today, and after that I should have some time to work on VersionControl 2.0
    2 points
  22. This module is improved and extended successor to Version Control For Text Fields. It handles everything it's predecessor did -- providing basic version control features for page content -- and quite a bit more. Download or clone from GitHub: https://github.com/teppokoivula/VersionControl. This module requires ProcessWire 2.4.1 or later, mostly because of the file features, which require certain Pagefile and Pageimage methods to be hookable. There's no sensible way around this limitation; for those stuck with < 2.4.1, Version Control For Text Fields will remain a viable option. What does it do? While editing pages, fields with old revisions available show up with a new icon in their header bars. By hovering that icon you get a list of available revisions and by clicking any one of those the value of that particular field is reverted to that revision. No changes are made to page until you choose a revision and save the page, which means that you can keep switching between revisions to get an idea what's really changed without inadvertently causing any content to change. The module also adds a History tab to page edit. This tab opens a view to the history of current page in the form of "revisions" -- each of which is a group of changes to page fields processed during one page save (similar to revisions in various source control applications). There are three actions you can perform on these revisions: adding comments, live previewing what the page might've looked in that revision and restoring the page to specific revision. One specific feature that has been a big thing for me personally is support for file (and image) fields, as the original version control module felt rather incomplete without it. I'm hoping to take this a lot further performance, stability and feature wise, but as it stands right now, it's already included here and should be fully functional. Watch the video preview here I prepared a little screencast outlining most of this: http://youtu.be/AkEt3W7meic. Considering that it was my first screencast ever, I'd like to think that it wasn't that bad.. but I might give it another shot at some point, this time planning a bit before hitting "record" Upgrading from Version Control For Text Fields For those already using Version Control For Text Fields, I've added something extra. If you upgrade that module to it's latest version, you should see a new checkbox in it's settings screen saying "Don't drop tables during uninstall". If you check this, uninstall the module and then remove it's files (this is required in order to install Version Control), your old data should be automagically imported to Version Control. Import has only been tested with limited amounts of demo data. Proper tests are yet to come, so please be careful with this feature! Update, 21.6.2015: as of today, this module is no longer in beta. While all the regular warnings still apply (making changes, including installing any new modules, on a production site should always be considered risky) Version Control has gone through pretty extensive testing, and should be as stable as any other module out there.
    1 point
  23. Today i gave an -mostly wordpress- agency access to the backend for writing news, editing seo settings etc. First thing from them was: Is that a cms or pinterest? I didn't recognized it until then
    1 point
  24. Hi @adrian on mobile at the moment, I will look into these reports as soon as possible - which will probably be tomorrow evening. Thanks!
    1 point
  25. No worries - it's changed in the latest version. Thanks for the feedback!
    1 point
  26. Nice. I like the bold graphics. And good use of animated cat pictures at the end of the quiz I'm looking forward to using ProField Textareas myself.
    1 point
  27. Thanks, I like it. Perhaps the template link attracts the attention too much, I would go with something like this - but of course I can live with the current one too
    1 point
  28. Cool, thanks for this! A couple of little issues I noticed after a quick try-out: 1. You have undefined variables $buttontext and $href in addAjaxSaveButton(). 2. It would be good to set a default value for the button text, both in the module config inputfield and in a construct() method, in case a user does not save the module config after installation or a user saves the config inputfield in an empty state. Other thoughts: 1. I see the module submits the form to a separate Process module. Seems like it should be possible to instead do an AJAX submission to the "action" url of the form in ProcessPageEdit, but maybe there is a good reason not to do it this way. 2. It would be cool if the module could handle/show errors in the submission - e.g. empty required fields or other inputfield errors.
    1 point
  29. if that can reassure you, what you are experiencing here is normal and it has to do with php session locking mechanism. To be sure, you can do a simple test : - open the browser with a private "incognito" window and navigate to your website - open a normal tab window and start manually a duplicator job - then while the job is running, navigate your website with the incognito mode window You will see that you won't have issues and the navigation on the website is normal. Will test deeper LazyCron tomorrow. let me know if anything went wrong with the above
    1 point
  30. Repeaters can scale up much better in recent versions of PW, so long as you set your repeater items to collapsed by default and use the AJAX-loading option. I suggest creating a page structure where you have a dedicated parent and template for each of Movies, Television and Theatre and all of the items for each category go under these parents. Movies Apocalypse Now Magnolia ... Television Six Feet Under Twin Peaks ... Theatre Waiting for Godot Uncle Vanya ... Then you create a Page Reference field "Roles" using the Page Autocomplete inputfield and add it to your actor template. You can easily divide the roles by category when you output the roles in your template file. You might like to try the Connect Page Fields module too - I even used the example of actors in the readme. For the awards field, I think I would stick to a repeater. Each repeater could consist of just a text field for entering the award name, or if there are certain awards that are given out each year you could use a Page Reference field to select the award and an integer field to enter the year.
    1 point
  31. Hello and welcome to the forum. I'm not sure I understood your question. You have a database, or database-tables unrelated to PW, that you want to somehow query and then display inside PW? Please re-phrase your question, so we can give you more infos + tips.
    1 point
  32. @flydev I have installed 1.1.7 now. Not sure yet if it works (set to lazyCron, every hour). Meanwhile, I installed GoogleDrive SDK via Composer. After reloading the module config page, I can't click on GoogleDrive option. Where do I put the vendor folder from Composer? And why is https://github.com/flydev-fr/duplicator-google-drive an error 404 page?
    1 point
  33. Wow, very nice!
    1 point
  34. If your project's budget permits: https://www.youtube.com/watch?v=Bohhf3aK8gU Unfortunately, I do not have ProDrafts (yet) but it seems to save with AJAX (and not just when AutoSaving) so you might wan to investigate how it actually works.
    1 point
  35. Hi @szabesz, thanks for pointing out. Definitely will have a look at this module. Seems to be a more practicable way, like @Robin S wrote.
    1 point
  36. @androbey May be you can use this or learn from it source code: @renobird's Activity Log module https://processwire.com/talk/topic/9838-module-activity-log/ Even though I use it on one site, I have not had much time to checkout this module properly so I only use its basic features and it appears to me that changes made to image fields are not logged but it could be possible to extend it. Also, this module keeps generating PHP warnings when a non-superuser is the one to make changes but seems to work otherwise, even on ProcessWire 3.x too. (I did not have the time to check why I have the warnings...)
    1 point
  37. FYI ForkLift 3 Winter Sale This is the season of gifting, so we've decided to surprise you with a huge winter sale as a thank you for such a great year with ForkLift 3. All licenses are 50% off for a limited time. http://binarynights.com/forklift/store
    1 point
  38. Hi dst81 and welcome to the forum I think you are spot on with this. Ryan built PW mostly because he was not satisfied with other systems for his own work. This has some benefits (we all know why we love it), but i think you just found one drawback, because as far as I know Ryan mostly works on his own and so maybe collaboration with other devs was and is not the highest priority. Maybe it's similar to the situation that Wordpress can be bend to a CMS, and maybe Processwire can also be bend to a team/staging/dev workflow? I have to admit, though, that I'm also a single dev working mostly on my own or with a partner for the frontend (where a hacky ftp setup is sufficient for the time). So I have no experience how it could/would professionaly be done... So I'm just thinking loud here and that's no way ment to be an expert satement But nevertheless there is the Migrations Module that you should definitely have a look at! https://processwire.com/blog/posts/introduction-migrations-module/ Would be very interested to hear your results and see which road you took Good luck.
    1 point
  39. I know. But unfortunately it's just an ordinary save action and the page is reloaded with scroll to the top of the page and all fields closed again
    1 point
  40. The attached version of TD doesn't offer anything extra compared to the built-in admin search so I don't regard it too useful - of course on the frontend side it could be handy. In this case it would be great having a non-panel version of it, only a small input line in the TD bar, with results appearing above it, growing upwards. Probably this is harder to implement, just an idea. See the attached image how I imagined the ajax-loaded page title (plus the template name used). It should be one line only, cropped if too long, with a small font size. Also its placeholder space should be there all the time to avoid jumping when typing.
    1 point
  41. Hi, Just an idea, you could create a new role, e.g. "cron-role" and assign to this role the permission "page-view". Then you add a new user, e.g. "cron-user" and assign to this new user the new role "cron-role". Now you add the role "cron-role" to the template you want to access the email field via "Template > Access". And in your bootstrapped script, you could write something like: <?php namespace ProcessWire; include_once ('/path/to/pw/index.php'); $cronuser = wire('users')->get('cron-user'); // get the user "cron-user" if($cronuser instanceof User) wire('users')->setCurrentUser($cronuser); // if found, set the current user to "cron-user" else die('bad user'); // not sure about the die() call but whatever its an example if($cronuser->hasRole("cron-role")) { // check if the role is assigned echo wire('pages')->get('/mysekretpage/')->sekretemailfield; // get the sekret field } else { echo 'access denied'; }
    1 point
  42. Good ! and for the GoDaddy host then, you have to upgrade PHP through CPanel to at least PHP 5.6 and "maybe" it will work I say maybe because as crappy shared host, you will may encounter timeout issue there. If you upgrade your host and test Duplicator on it, let me know if you managed to build a package successfully. Thanks!
    1 point
  43. Don't forget about us non-webGL folks! Otherwise a blank page is definitely a sign of a very tiny agency
    1 point
  44. I haven't try this feature so far but the first idea that came to me was to have some kind of info about the page even without clicking on the buttons. How about an ajax loaded line showing the page title as you type, in the bottom of the panel? I think that would make the panel more versatile but of course it's only a nice-to-have kind of request
    1 point
  45. @erikvanberkum - turns out @lpa had the same issue so I have added a workaround to handle that bug in the older version of PW.
    1 point
  46. I have read some good posts here that make a lot of sense to leave pw with it's api, php and jquery. It was then the main reason why so many moved from evo to processwire. The forum was vibrant and newbies came in every week for the no nonsense, making so much sense functionality of processwire. To me it is always the same story: people just can't leave their hands from something that is working perfectly good. It just has to be stuffed, cranked, pimped or changed in some way or another. Oh "it is evolution" I hear you say "we have to go with the latest stuff that is going around". We'll why not change the use of php for ruby on rails then, that would be something cool, right ? Not ! Please don't crank the core and leave the back end with jquery. Instead we should put our energy in processwire marketing it's - no nonsense, making so much sense functionality.
    1 point
  47. A little information for the observers here: The feature to view a secret file beside the forced download is now available in version 1.0.3. Thanks @Macrura! I introduced an additional setting on field level to toggle the "View" possibility. Cheers
    1 point
  48. For a repeater field named "image_tags" in the "home" template, setting the tags list for an images field named "images"... // Save repeater titles to images tags list $pages->addHookAfter('saveReady', function(HookEvent $event) { $page = $event->arguments(0); // For the home template if($page->template == 'home') { // Get a string of tags from the repeater item titles $tags = $page->image_tags->implode(' ', 'title'); // Get the images field $images_field = $this->fields->images; // Set the list of allowed tags $images_field->tagsList = $tags; // Save the field $images_field->save(); } }); The titles of the repeater items will need to abide by the rules for image tags, so no spaces allowed.
    1 point
  49. I usually go for a modular layout. You take a repeater, and add all the fields you'll need for all types of content block: body, title, images, etc. You add another field called type, make it an options field, and get in there all the types of block you need. Text, image gallery, video... whatever. Then you customise each field's visibility to appear only when type=1, for example. That will allow the admin to freely add a chunk of text, then a gallery, then more text... No weird tags to remember, simple and straightforward. On the frontend, you make include files for each type (remember the options field) to keep it neat and tidy, foreach the repeater, and include() the correct block template file according to the value of the type field. Generate away.
    1 point
  50. Here comes a small Christmas Present Go to setup > templates or setup > fields and find 2 important (or exportant) buttons below the list in the right corner to go here:
    1 point
×
×
  • Create New...