Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/09/2024 in all areas

  1. If anyone sticks to using a version of PHP that old, I think they should also be okay with not upgrading modules.
    3 points
  2. There is also this free module. Didn't try it myself though.
    2 points
  3. Those retrogrades surely understand their fate and deserve no adminer updates))) But seriously we need to move the tech forward a bit also by upgrading system requirements. I think it is time to move!
    2 points
  4. I don't know if this will help you in your case, but I will take your partner example here to demonstrate my way of doing similar things. Partners wouldn't be content on its own. I see them more like data I can re-use. Therefore I need two templates: partners (parent for all partner entries - just to group the partner pages) Fields: title Template file: none partner (single partner page with all the data, content, images) Fields: title, desc, image, www, phone, email, ... Template file: none With this setup I can create a RepeaterMatrix block called partners and would add a PageReference field there that allows multiple entries. Probably AsmSelect to be able to sort those entries. Or a selector field to look up (template=partner, sort=random, limit=5) Now whereever I want to display a set of partners I add that partners block, select my partners and it's done. There could be multiple blocks for partners in RepeaterMatrix - so the layout can change easily. partnersLogo - just the logo partnersLogoLink - the logo linked to the partners website partnersLogoDesc - partner name and the description partnersCard - full card with logo, name, description, link to website With this setup I create those partner pages somewhere in the backend and reference those. Would even work in case your partners would be pages on their own. In terms of images I stopped worrying too much. There are several ways to handle images. For example: Tags. Tag images with hero, gallery, avatar, or whatever and select images based on your needs. While this works I started using multiple image fields. It's easier (for me) and I can upload optimized images for each use case. AND I can check how many partners don't have a hero image, og:image or gallery images super easy.
    2 points
  5. RockPageBuilder has the concept of "Widgets". You can turn every "Block" (similar to a repeater matrix element) into a widget with one click. Then on any other page you can add a widget block and select the original item to be displayed. This is handy for situations where you want to reuse content elements across your site, but want to manage the content at one central place. An example could be a "contact us" element or a "donate now" element where you'd maybe want to display that element on hundreds of pages but want to change the phone number or bank account only once. A RockPageBuilder block can be text but also just an image field. So having an image block, uploading an image and then turning it into a widget would make the use case that you describe possible. As always this comes with a downside. It would then not be possible to show different versions of that block. All would be 100% identical. You could build the same concept on your own with RepeaterMatrix as well. After all it's just a page reference field and an some additional logic to not render the reference directly but render the referenced source. Actually that can get quite tricky, but that's another story 😄 So as always in ProcessWire it's up to you how you do what you need and it depends on the exact use case what is the best solution. There is no one-size-fits-all solution for what you describe and I think as @wbmnfktr mentioned uploading images multiple times might be the most native solution and is often really not bad and comes with other benefits.
    1 point
  6. LocomotiveCMS is also similar to ProcessWire. But I only have little experience with it. What turned me off was the need for Ruby and long responding time to questions.
    1 point
  7. Thx, I've updated the first post and the thread title!
    1 point
  8. Hi @netcarver thx for helping to improve RockFrontend 🙂 Done in the latest commit on the dev branch 🙂 This pops up as soon as you add {alfred(...)} somewhere in your markup and the module is not installed. I've also added a note in the docs.
    1 point
  9. As it is all urls and html content at the end the answer is yes to all of those questions. The difference is that you don't get a unique page object for a urlSegment as you do for a regular page. The urlSegment can show data from some other page though (as you mentioned). You need to code all this. And there might be only a little or a lot of code. You need to start solving tasks one by one to find out all the answers. I do not see any difference where to test it at. Surely, most of the time it is done in some sort of a test env. Locally is totally fine. But maybe there is some sort of a limitation at your external data provider. If so, elaborate on this and we will answer in more detail.
    1 point
  10. Hi @imandreas Yes, I changed this in _init.php and Alfred now runs as expected. My point is that I think this should be included automatically within the RockFrontend site profile, or be in the RockFrontend documentation for Alfred. Or perhaps the code for Alfred could pop up a JS alert box indicating the need to load JQuery - which would save having to look at the console. $rf->scripts() // load uikit ->add('/site/templates/uikit/dist/js/uikit.min.js', 'defer') // load custom javascript of this project ->add('/site/templates/scripts/main.js', 'defer') // load jQuery from /wire to allow ALFRED testing ->add('/wire/modules/Jquery/JqueryCore/JqueryCore.js', 'defer') // <<< Added // minify on production ->minify($config->debug ? false : true); This is just to get things running for testing - would need to conditionally include it only if alfred is needed.
    1 point
  11. We made like this, in the header PHP template we checked, if the user is able to edit the page if ( wire('page')->template == "user-item-template" and (wire('user')->hasRole('frontendeditor') ) ) { echo "<!-- skip jquery -->"; } elseif ( wire('page')->template == "user-content-template" and (wire('user')->hasRole('frontendeditor') ) ) { echo "<!-- skip jquery -->"; } else { ?> <script src="<?php echo $config->urls->templates;?>js/jquery-3.7.0.min.js"></script> <? } Then it was possible to call the alfred: <div class="btn btn_default" <?= alfred($item, "title,text,content") ?>> <i class="fa-solid fa-pen-to-square"></i> Edit </div> It was opening the edit mode in a modal view with some administration header stuff.
    1 point
  12. We use various versions of this module on a lot of sites and I also haven't come across this. Do you have the actual error message?
    1 point
  13. I have used ProcessWireUpgrade for years over a decade without any issues. I do have to admit that I can work at least annually on most of the sites I run. Only once did I have any problems with it, when UIKit became part of the core and I had to update a website that I built in 2012. That's over a decade ago! That was the only instance where I had to upgrade PW manually, for which I followed this process which wasn't all too difficult. Basically came down to renaming some files so I could revert back in case I'd screw up. Aside from that it basically came down to uploading a new wire folder and refreshing the backend. Quite simple.
    1 point
  14. I too like to organize everything as if templates are classes and pages are instances, and do things as OOP / DRY as possible. The ArtistProfile (template) could have page reference field in which one Artist (page instance) can be selected. The profile then encapsulates the artist. In order to make grabbing the image easier later down the line, I like to use Page Classes (these are "on" by default these days, I believe). I would add methods to the PageArtistProfile (page class) that returns field values from the Artist it encapsulates. In the ArtistProfile template, I could then do stuff like: $page->getArtistPortrait(); You can off course add arguments to these methods should you so desire. Same with the partners. I would just make a big "box" of Partner pages. I would probably make a Partners (plural) page under which to collect them all, so I have "one source of truth". In order to subsequently use them on other pages, I would just use a Repeater field with a Page Reference field that filters out only Partners. That way an admin can put them in any order they like as Partners are now also encapsulated in the ArtistProfile, just in a plural form. In my opinion Media Managers tend to be a bit archaic, I prefer to treat media as if they were member values of class instances.
    1 point
  15. I developed my first websites using SilverStripe. I did like it, but if a site was complex, upgrading to a new main version was not straightforward at all, and one had to thoroughly test everything to make sure all was good. I am glad I found ProcessWire afterward.
    1 point
  16. Hi @fruid - sorry but I don't know what error you are getting, but also, that line doesn't exist anywhere in my fork, let alone on line 385 :) https://github.com/adrianbj/MarkupSEO/blob/master/MarkupSEO.module
    1 point
  17. I remember giving Silverstripe (https://www.silverstripe.org/) a try, way before I knew ProcessWire. I remember people really liking and working with it. I looks and feels similar on the backend, yet API-/PHP-side was and is quite different.
    1 point
  18. Interesting topic and also interesting to compare the various CMSs at https://openalternative.co/categories/cms. Unfortunately it is not possible at-a-glance to see what is a pure CMS and what is more of a framework. The initial attraction of ProcessWire to me was that it combines the ease of use / UI of a CMS with the power and flexibility of a framework. This means that you can build a fully functional custom app but still enable non-technical editors to access the content they need. Which of the “ProcessWire-like” CMSs do that?
    1 point
  19. Thanks @szabesz - I did take a look at that and I am hoping that 3.5 years later those 4 devs have now ditched 5.x.
    1 point
  20. https://weekly.pw/polls/ Which PHP version are you hosting your ProcessWire sites on? (December 2020) PHP 5.6 or anything older than that (3.1%, 4)
    1 point
  21. Nice as in... creative, impressive, stunning, unexpected. I really like how creative those bad guys are sometimes. These people would earn good money in QA - ok, probably even better when doing their bad stuff. Still I am more often impressed by how some people can think and how simple some things are. Similar to dark patterns and deceptive design. Not that nice to use those, but still clever. Oh... I probably should. Will look it up. Could be totally my thing.
    1 point
  22. @Entil`zhaand @wbmnfktr Thanks, confirmed that was the missing piece. Thanks for the details and much appreciated.
    1 point
  23. Yes, that's right - it's all included in the original email. Ideally yes, but it's now possible for what the first recipient sees to be totally benign, just requesting the message be forwarded to another decision maker in your organisation. Once the forward happens, the message the 2nd recipient sees can be totally different to what the first recipient saw. So now the content of the forwarded message needs to be validated - not just a quick check that the first recipient actually forwarded a message to the 2nd recipient. If that's already part of the standard-operating-procedure (SOP) in your organisation, then I think you are OK. If that's not the case, then the SOP needs to be updated so validation of the forwarded content actually happens.
    1 point
  24. Ran into the exact same problem a few minutes ago. Verified the [home] of composer with this: composer config --list --global And finally added it to my $PATH in .bashrc export PATH="$PATH:~/.config/composer/vendor/bin"
    1 point
  25. @BrendonKoz Topic and forum links added to the activity list. Please reload your page to see them. I still need to add detection for the links to new topics and replies - but that will be another day, as will looking at the update date on PWGeeks.
    1 point
  26. Set a placeholder in your text, and use the function wirePopulateStringTags() to output it, filled or empty. https://processwire.com/api/ref/functions/wire-populate-string-tags/
    1 point
  27. You have a field on a template which shows the default text. Than on page 1 and 2 you are fine with the default text, but for page 3 you change it to whatever you want via backend admin. Hence one field with default text and one single template, which is used by three pages in my example. The default text can be overwritten on specific pages and kept unchanged on the other pages.
    1 point
  28. For me personally I see RockFrontend as a tool for development. Not a frontend framework. The main reasons why I am using RockFrontend are: - Auto Refresh - Make use of the rfGrow Feature for fluid font sizes & Handling Assets: - Auto compile LESS to CSS - Minify CSS and JS Files I know that there are already some JS-Snippets included (like rf-scrollclass) but I it's too tempting to start in including more and more Frontend Framework features. I personally use only a fraction of what RockFrontend offers and it's hard keeping track because new features arrive continuously 🙂 If more and more frontend framework features will be included at some point in the future you have to decide wether RockFrontend will evolve into it's own frontend framework, shipping scripts and styles for everyday usages.
    1 point
×
×
  • Create New...