Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/13/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!
    12 points
  2. The 2018 Guide to Building Secure PHP Software
    6 points
  3. 5 points
  4. It's a fantastic way to give editors a way to control page content without mangling things into an RTE. Also, if you happen to have any sites around where you have used PageTable fields for this and feel like an upgrade to RepeaterMatrix, take a look at the one click converter included in AdminActions.
    4 points
  5. @bernhard - the problem with the wiki is that you can't do a PR, which is why I went with Github pages (as discussed in the Tracy thread). The problem with Guthub pages is that don't support custom jekyll templates so you can't have a sidebar, which is really annoying. I could code up a page from scratch, but then we're getting into more work again. Honestly I am thinking about just putting all the docs in the ReadMe - that way they would also be available via @netcarver's module release notes. I would store the screenshot images in the /docs/ folder because I have that excluded via .gitattributes so the download would still be light, but the ReadMe within PW would looks really nice. Also, really easy to accept PRs for changes to the ReadMe file.
    3 points
  6. Absolutely - the best way to learn something is when you have to teach it to someone else!
    3 points
  7. Ok guys, I got some REALLY nice results today @dragan sorry, I was unclear in my previous post... I had to leave to a christmas party So here are some explanations and the new results: Table with 10.000 rows without cache: 400ms (see the screenshot) Table with 10.000 rows with cache: 200ms The key was to get the data directly from the database. Of course I knew before that this possibility exists, but I didn't know how to solve the problem of multilanguage and returning complex data (like $page->parent->title for one column) and still keep the setup of a table simple and straightforward. Now I found a great way and I'm really eager to start working on this What I meant by "stay on the client side" was, that I want all the data get transferred to the client and then rendered by datatables. The other option would be to use ajax pagination and load only junks of the data to the client. But having all the data on the client is a huge benefit for manipulating, filtering, sorting, charting etc.; and you where right about my "cache" wording: I'm talking about a cached string holding all the data for the datatable. So if the cache exists it just loads the string - if not it creates the string from the database and then loads the data into the datatables. Any wishes/ideas for features that I should think of when developing the next version of the module? ...see the feature list in the first post
    3 points
  8. 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.
    3 points
  9. Same here, if someone tells the recommended format for version numbering I'll stick to that in my modules.
    2 points
  10. Try the purify() sanitizer. Also, in the Tracy Console, check out the testAll() sanitizer - very handy! d($sanitizer->testAll($str)):
    2 points
  11. RIght, I see what you mean about the format. Hmm. Let me have a ponder about this - I'm not sure I want to support every possible format of changelog, yet if I simplify the regex too much, we may end up with false markup insertions. Anyway, it's not a particularly big problem on the galactic scale of things
    2 points
  12. Hi @adrian to be fair, I haven't really sat down and tried to learn it properly. When I do this, I could always document it and use what I learned for a small tutorial for beginners. I'm seeing most things I do in this way at the moment and I've found that documenting stuff really increases the solidness of what I've learnt, it sticks, no forgetting it two weeks later. Right now I'm constructing a tut about URL segments. However, because the page tree most of the time matches the natural URLs for a site, I'm finding it tricky to even find a use case!
    2 points
  13. Thanks everyone for comments and likes. In the beginning of a long road it's important)) I understand But thanks for looking through the pages with non-understandable content))
    2 points
  14. Great project, and a very interesting example of what can be done with a platform that lets you do anything
    2 points
  15. Nah I think it had something to do with the allowed domains in config. I only had 'supertiny.agency' and not 'www.supertiny.agency'. Google webmasters forced me to add the www version, I didn't update config to allow it too, and there must have been a mixup of some kind with open sessions. Don't know how it got the /2018, but after closing and opening everything again it seems to have fixed itself.
    2 points
  16. Facepalm! How long have I been around here for? I didn't know Repeater Matrix allows different types of repeater items in the same repeater! Thanks @Ivan Gretsky!
    2 points
  17. @Ivan Gretsky thanks for the Repeater Matrix. This was the solution!! Works amazingly. Everyone, thanks for the help!
    2 points
  18. Nice writeup. You could use Page Image Manipulator to convert PNG to JPGs by the way: https://modules.processwire.com/modules/page-image-manipulator/
    2 points
  19. 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.
    2 points
  20. 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
    2 points
  21. 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
  22. 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.
    2 points
  23. @horst There's a pull request on your module that should update the formatting of the Changelog to allow it to be parsed by the existing code in my module. I've also fixed a couple of issues with the Markdown in the readme file as well. I hope this helps. As long as the changelog markdown is of the following format, markers should be correctly inserted... # Changelog // this line is optional - not needed, but if it is present it is sliced off and presented left justified above the versions. ## {version string} {optional information, usually the release date} // H2 - github will style this with a bottom border - Change 1 - Change 2 - or - ### {version string} {optional information, usually the release date} // H3 - github will style this without a bottom border - Change 1 - Change 2 @tpr There was a bug in the way I was comparing versions. You should be able to stick with whatever formatting you prefer. That said, I think there is more flexibility with string versioning than using integers. With string versioning you should be able to have deep version if you'd like - "0.7.8.1" or "1.5.2dev" are all possible. I'll be moving my modules over to string versions as and when I update them from now on.
    1 point
  24. @adrian I'll see what I can do over the weekend to try and get things working for TOCs in the readme files. Release Notes displays any files that start with "readme" - so you can split different topics into different readme files if that helps.
    1 point
  25. Hi @tcrocks, I edited your post to remove the link. It's our policy to not let first posters link to urls not related to ProcessWire. @Alex is asking this question here in the forum because he's looking for an answer from someone that already used these tools alongside with ProcessWire, and I suspect you haven't. We'll gladly put your link back there if you prove me wrong.
    1 point
  26. Hi @szabesz thanks for the example. What would be wrong with 'product-categories/body-care' and 'skin-concerns/body-care'? Body care is the same only in name, they have different parents. Nice site btw
    1 point
  27. Im not fixed with this format. I can change to the more common format if that helps out.
    1 point
  28. There you go: https://www.szepelet.com/products/ There are two parent categories: product-categories and skin-concerns but the tree is: - products - categories (not this one nor children are frontend accessible directly) - product-categories - cat 1 - cat 2 - skin-concerns - cat 1 - cat 2 I did not want to do product-categories/body-care because there would also be skin-concerns/body-care but those two body-care categories are not the same, even though they are called the same (client's request...). So I explode and implode parent_child in order to create these "combo categories" on the fly by using URL segments. But this is just one example, any kind of tags an categories are good candidates for URL segments.
    1 point
  29. That setting doesn't affect Tracy's behavior, but if Tracy isn't working it will provide info that you wouldn't have otherwise. Let me know how you go with reinstalling, or looking at those bullet points.
    1 point
  30. a limit per time or by number of posts would be great. it's totally understandable that not every user needs 100mb from the beginning. it would even make sense to have a low limit at first imho
    1 point
  31. @ryanC Do you have PW's debug mode on? Any php errors being displayed or logged? Any errors on the dev console's Network tab regarding Tracy files not being loaded? Any issues with file permissions on the files within the Tracy folder after moving to new site? Any files missing from the Tracy folder? Can you replace with a fresh set from Github?
    1 point
  32. Sadly a lot of the new features can't be turned off, including this one, but we have to keep upgrading to stay current with security fixes. Not sure why that was forced - it's not now so you can change it
    1 point
  33. Hi guys Sorry - been super busy lately and not checking in often at all. The limit is set at 100mb per user - I'll ask Ryan if he's happy to increase it as he's the one paying for the server.
    1 point
  34. you need the entities only for frontend OUTPUT when you don't want the string to be interpreted as HTML
    1 point
  35. Yep, it wasn't. Please could you try 0.10.3 - I think it should be OK now.
    1 point
  36. There was some confusion as to what I asked and what some of you thought I asked. I was asking how to add the "Add new" menu items that should appear underneath "Tree" under "Pages. I was not asking how to add a template to the "Add new" menu located on the Processwire admin panel "Pages" page. However I restarted my computer and the problem is now solved. It must have been something to do with sessions or cookies or something. Well it definitely wasn't the cache.
    1 point
  37. Hi SamC - sorry you find it so confusing. I would love to revamp the "docs" in that blog post into a proper set of docs, but I just don't have the time. If you come across things you don't understand, please ask in the Tracy support thread. It has a huge number of tools, but the key things are the automatic reporting of errors, the dumps panel using bd() calls, and the Console panel. If those are all you get familiar with, that will be of great help.
    1 point
  38. The Benefit of Framework is standardized way of working take for example we use Processwire I know if i need to make a DB call i'd use the Processwire DB Class, that already saves us the stress of trying to understand each other's code since there's already a standard and way, now imagine you were to manage a non-framework project you'd find yourself trying to understand the way it works and also how it works. That's way framework come in, and also best practices also
    1 point
  39. Hi regardless remember I come from a Third world country,small customers cannot simply afford employing developer of other languages and PHP is quite affordable so far PHP has a market, PHP is still viable and in demand, I was just approaching it on the basis that other compiled language would outperform PHP doesn't mean PHP is irrelevant also I don't have any preference for any language I pick whatever works but i must admit PHP is the only platform that's faster for me to bootstrap and come up with something within a short time. To be frank most companies as long as you know PHP to a certain level and you are willing to learn, companies would employ you, there was a time I wasn't familiar with frameworks till I worked for a company and was given a project, I was given a PHP Book on Advanced PHP Development, However the fastest way to pick up PHP is to look up PHP the Right Way. I would have loved to recommend Symfony Framework, I work for an enterprise organization and we mostly develop in almost any language except PHP but mostly Java Spring Framework and Symfony feels closer to that, Symfony gives so much flexibility and freedom and uses best practice, unlike Laravel, I have issues with the abuse of Static class and some Classes suffer from what I call "God Object", The Eloquent ORM irks me out it has too much logic compared to Doctrine way's of handling data. Here is another good resource for PHP knpuniversity.com, Just take it one day at a time. Exactly
    1 point
  40. Patreon is an even bigger offender: https://worldvectorlogo.com/logo/patreon How dare they! But they have a new logo now: https://www.patreon.com/brand/guidelines Ryan must have filed a major lawsuit.
    1 point
  41. Thanks, it was a .text() vs .html() issue, module updated 1.7.0.
    1 point
  42. 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
    1 point
  43. Once again another great use for a brilliant module! I am sure we haven't yet touched the surface of what can be done with it
    1 point
  44. 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
  45. 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
  46. I'll have a think about this one - thanks for the idea. I have implemented this in the latest version - please take a look and let me know what you think.
    1 point
  47. Love love love your blog module. I have used it multiple times on sites I have built for clients. Recently ran into a weird issue. I installed your latest version of your blog module on latest processwire. When I got to save the settings in the blog quick settings tab, they dont save. The fields reload blank. Any idea?
    1 point
  48. i'm working on something in this direction i have to polish up a lot though. don't know when i find time...
    1 point
  49. As it happens I was just last night tinkering around with a module for this: info here.
    1 point
×
×
  • Create New...