Jump to content

Kiwi Chris

Members
  • Posts

    266
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Kiwi Chris

  1. Further to this, I've posted a feature request to Github, for a new method getColumns in WireDatabasePDO class, as this would enable:

    $database->getColumns($table) which would be helpful for getting a list of custom table fields and their types.

    there's already a getTables method and tableExists method, also a columnExists method, but currently no getColumns.

    I might be able to have a go at building a module myself to map custom table columns to inputfields, and of course I could write a method myself, but if other people are accessing custom tables, it would seem to make sense to have a getColumns method in the core. 

    Copying the columnExists method, removing the WHERE condition and returning an array of the results rather than a boolean is probably all that's needed to implement a getColumns method.

    • Like 1
  2. I resolved the problem in a bit of an odd way. The 'deprectated' version of the module that I was using mostly worked, except links to site admin somehow ended up broken.

    Soma's module didn't work at all. I was able to patch together some bits from the newer module to ignore admin urls, and that got the older module working again fine on my site(s).

    It got it working for 3.0.184 but I can confirm it broke again with 3.0.189.

    • Like 1
  3. Is anyone else having issues with the @Soma version of this module (or the original for that matter) on the latest ProcessWire build? (3.0.189).

    I had a ProccessWire install that was working fine with the original module on 3.0.146, but on upgrading it broke.

    I've tried downgrading to 3.0.184 and upgraded to the more recent multisite module, but multisite still seems broken.

    The home URL works, and menu links for sub-pages are generated, but clicking on any of them returns the 404 page, and entering any domain other than the 'main' domain goes to the home page of the main domain.

     

     

     

  4. If you're trying to duplicate a site, and don't have access to mySQL, then there are couple of modules that may be helpful.

    https://processwire.com/modules/process-database-backups/

    This one can be helpful if you have an existing ProcessWire installation that's working, but need to restore data from a backup.

    https://processwire.com/modules/process-export-profile/

    This one is useful if you're starting a completely new install of ProcessWire and you want to recreate an existing site structure during the install process. This will include templates, site modules, and page structure. You need to copy the exported profile to the new site profiles directory before you install, so that it allows you to select the profile during the install process. This will recreate the database structure.

    You will need to be able to set up a blank mySQL (or MariaDB) database and assign a database user with full access to it.

    There are other migration modules if you have a development site and a live site, and you only want to transfer changes.

    • Like 2
  5. On 10/23/2021 at 1:02 AM, Ross said:

    I am starting to study programming and css.

    This motivates me to learn. Thanks for your tips.

    If your CSS skills are limited you could use a CSS framework to get you up and going more quickly.

    ProcessWire itself uses UIKit for the backend admin UI.

    https://getuikit.com/

    Bootstrap is another fairly popular CSS framework

    https://getbootstrap.com/

    The down side of CSS frameworks is that they include a lot of CSS that your site probably won't use, and this can slow your site down, so eventually, writing your own responsive CSS will provide you with better performance, but if you need a fairly quick solution to make the website responsive where someone's already made and tested the CSS, the using a CSS framework can be helpful.

    • Like 1
    • Thanks 1
  6. I've been using Bootstrap since 3.x compiling my own customised version from less with 3.x and then SCSS with 4.x  I'm yet to jump to 5.x

    I've taken a look at Tailwind a couple of times, and the good thing is it seems to produce very small CSS, but the process of getting set up to compile a minimised version seems to be more complex and requires more tools than with Bootstrap. That's a one off I guess, and once you're set up then presumably it's straightforward.

    I do like Bootstrap's components. I'm a developer, not a designer, and when a client asks me "What can you make my website look like?" it's really handy to be able to say, "Here are a set of components you can pick from. I can change the colour, size and position any way you like."

    That's way easier than trying to explain the intricacies of CSS and that technically, I could probably make their website look like just about anything from dog's vomit to the crown jewels.

     

    • Like 2
  7. ProcessWire is an excellent framework for building just about anything, with great tools for permissions, input fields, and creating data structures.

    With the Combo and Table profields, it's possible to handle just about any data.

    These fieldtypes show the potential of ProcessWire to handle SQL tables in a more 'traditional' SQL table format, which leads to one area I wonder might have potential for a new feature.

    In addition to ProcessWire, I also do some work with ASP.Net Core, and one of the nice features it has is the ability to work with existing SQL databases, so that you can either build your models in the framework, or use existing SQL Tables.

    While working with any SQL data is possible in ProcessWire, it's a lot more hands on, with less built-in support.

    InputFields and FieldTypes are separate, and there's no reason why an inputField can't be used for data input for any kind of data, and indeed there are some modules that use inputFields to edit custom table data.

    What would be an amazingly useful addition to ProcessWire would be a module that allows mapping of inputFields to fields in an arbitrary SQL table without modifying the structure of the table itself.

    This is something the open source Directus project does by using metadata tables to store data about to display input for existing SQL tables, without touching their structure, but documentation isn't great for that project.

    I think ProcessWire has all the plumbing in place to enable this kind of functionality, and the Combo fieldtype gets pretty close, but still requires the combo table records to be associated with a ProcessWire page.

    Obviously, existing SQL tables won't automatically map to pages, which means directly accessing them on the front-end via URL automatically isn't possible, but often this isn't required as they may be for backend use only, or for consumption within a ProcessWire page. The recent support for URL/Path hooks though, means that if there is a need to directly access existing SQL on the front end via URL, it should be possible to create a hook to do so.

    I think adding the ability to create backend data entry for existing SQL tables would fully complete the ProcessWire philosophy of getting out of your way and not making assumptions about your content.

    It's currently already best of class in terms of doing this regard to front end presentation, but it's still a bit opinionated about data structures at the back end. This is absolutely fine if you're building a web app from scratch, and works really well in most cases, but there are times where being able to quickly incorporate existing data structures would be useful.

    To be clear, this isn't a replacement for the existing pages model, as that would be a huge and unecessary task to completely re-engineer ProcessWire, but rather an enhancement that can sit alongside all the good stuff that's already in ProcessWire so that it's possible to get ProcessWire to handle existing SQL data tables on the backend as neatly as it already does with its own data.

     

     

    • Like 6
  8. Nice photos. Do you have any issues with image theft posting relatively hi-res images without watermarks?

    I have quite a lot of photos on one of my personal websites, but they are scaled down and watermarked, and even then, I've found some of them pop up on other people's websites without anyone asking permission. 

    I inherited a camera club website made with Concrete, and the performance was terrible, and the editing process was horribly easy to mess up even if you mostly knew what you were doing.

    ProcessWire has nice image handling capabilities.

    • Like 1
  9. I think I've located the culprits. Debug mode and Request info panels both seem to trigger the behaviour. I disabled all panels, and then started enabling them one at a time.

    With either of these panels enabled I get the behaviour, but otherwise things work as expected. 

    Just testing on the other site. Results seem a bit different, in this case Tracy Logs also triggered the behaviour.

  10. Thanks @Robin S In the JS browser console, I get an error relating to a service worker I have registered for the site, so that might have something to do with it.

    Quote

    Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'WorkerGlobalScope': Cannot construct a Request with a Request object that has already been used.

    Strangely, both modules were working just now, but I logged out and back in and they both stopped working again.

    The upgrades module never gets past the continue button to load the latest versions of modules, and Lister Pro does nothing when clicking on pages.

    Disabling Tracy from the Tracy bar at the bottom of the screen without logging out, they both work as expected again.

    I don't actually want or need the service worker running when on the site admin, so I'll see if I can change its scope so it's only associated with the public part of the site and see if that makes any different.

     

  11. I'm not sure about using pagination in other situations, but with Lister Pro, it breaks when Tracy Debugger is enabled. Disabling Tracy Debugger causes pagination to work again with Lister Pro.

    I haven't tested with other scenarios, but if you have Tracy Debugger installed and enabled, and everything else with your pagination seems to be set up correctly, it might be worth disabling Tracy to see if that makes a difference.

    • Like 1
  12. This module works well, but with Lister Pro and inline editing within the Lister Pro table, even with the check box to update on save for this module, file names aren't renamed, although opening via a full edit and saving does work.

    I suspect the issue might be the way Lister Pro works,  but if it's possible to get this module to work with inline editing mode in Lister Pro it would be handy.

  13. This sounds like an SNI problem, although Windows 7 should support SNI.

    https://www.kinamo.be/en/support/faq/which-browsers-support-server-name-indication-sni

    The other possibility could be root certificates that aren't recognised by Windows 7, or TLS/SSL versions supported by the server.

    A lot of servers have retired older versions of TLS because they're insecure, and by default Windows 7 doesn't support newer versions.

    https://www.zdnet.com/article/nsa-urges-system-administrators-to-replace-obsolete-tls-protocols/

    If this is the case, changing the CMS won't resolve the problem, as the problem is an issue between the server and Windows 7 not the CMS.

    This might help you:

    https://help.runbox.com/enabling-tls-1-2-on-windows-7/

    If enabling TLS 1.2 on Windows 7 makes the website work with Windows 7, then you have the answer to what is causing the problem.

    Unfortunately you can't be sure that anyone running Windows 7 has enabled TLS 1.2, and if the server has disabled older versions for security, it's unlikely to be able to get insecure versions of TLS enabled again, as it puts the server at risk.

    It's over a year now since Windows 7 reached end of life, so anyone still using it on the internet is taking big risks with their security. 

     

    • Like 2
  14. I wanted to do something a little different but the code for this module helped me figure out how to achieve it. I had an existing page with a page reference field with a value that I wanted as the default value for the same page reference field when used on another template, ie I wanted to be able to allow admin but non-super users set a default themselves on a site settings page that they could change periodically.

    I ended up doing it as a hook in ready.php, but I guess with some more work it could be made into a module. It would need to allow selection of both source template and field, and templates the default should apply to (to avoid circular references of the field to itself).

    /**
     * Check for default value and populate when appropriate
     */
    $wire->addHookBefore('InputfieldPage::render', function(HookEvent $event) {
    		/** @var InputfieldPage $if */
    		$if = $event->object;
    		$inputfield = $if->getInputfield();
    		//$default_value = $this->getDefaultValue($inputfield);
    		if (!($if->hasPage->template == 'ProductionRole' && $if->hasField->name == 'pageShow'))
    				return;
    		$default_value = $event->pages->get('name=settings')->pageShow;
    		if (!$if->required || !$default_value || !$if->isEmpty())
    				return;
    		$inputfield->value = $default_value;
    });

     

  15. 1 hour ago, ryan said:

    Next week I also get my 2nd shot of covid vaccine, and I'm told it may slow me down a bit for a day, but will be well worth it. I had a day of tiredness from the 1st shot, but it was greatly outweighed by feelings of gratitude and reduction of worry. I highly recommend it as soon as you can get it, if you haven't already.

    As everyone working in IT should know, it's important to use effective antivirus systems. ?

     

    • Like 1
    • Haha 1
  16. 11 hours ago, MarkE said:

     As well as straight CMS, I have now built two quite complex apps - a club management system and a self-catering cottage management system. PW has been a great tool for the job.

     

    As a matter of curiosity, any specific type of club? I've built or am in the process of building two, for quite different types of clubs with different requirements. One I'm getting paid for, the other more complex one I'm not, as one of the joys of serving on the club committee, and being the only member of the club with the capability to maintain and develop the club website. 

    I suspect there are some base requirements for any kind of club, eg, track members, manage subs, handle newsletters, and maybe have a club website and blog but then beyond that there may be unique features depending on what the club does.

  17. On 4/3/2021 at 9:44 PM, bernhard said:

    Most of PW users are tech-savvy, so I guess they WANT to have the control over their infrastructure (or choose any of the cheap hosting providers out there...). Installing PW is no problem for them.

    On the other hand people that dont want to handle any technical aspects (like hosting or installing PW) are likely more happy with one of the plug&play CMSs?!

    I'm in the former category - to now, but a couple of projects have got me thinking how the second option might be useful to me as well.

    I've built a couple of sites (or I'd prefer to call the apps) on top of ProcessWire that have potentially a much wider market than just the clients I've built them for, however I'm just a single developer and having to manage hosting, billing, deployment, won't scale well the way I'm currently working, and although if I take the time I should be able to automate nearly everything, there's also the issue of discoverability, whereas if there were an option where people could people just click to sign up and choose an app of their choice with installation and billing all taken care of I think there could be a use case.

    At least, I think the modules directory needs to support commercial modules from any developer, and also at install time, I think the choice of site profiles should be able to query the modules website and offer paid or free profiles other than just those bundled with ProcessWire. Obviously ProcessWire should get a percentage of any sales, just like big app stores.

    • Like 4
  18. 13 hours ago, bernhard said:

    That did not work in 2014 - maybe it works in 2021 - wow, time flys ? https://processwire.com/talk/topic/7400-instant-processwire-dev-hosting-lightningpw/

    Interesting. I wonder why it didn't work?

    With Umbraco, the hosting comes under Umbraco.com so it's associated with the project rather than a third party independent offering. I'm not sure if that has anything to do with it?

    Another open source project that has a similar model is Directus, and of course WordPress does the same.

    First party support for instant, managed hosting is more likely to inspire confidence than yet another third party that may or may not continue to be around.

    WordPress offering first party hosting doesn't stop plenty of third party hosting, but it does mean plenty of people get to experience WordPress without needing to install anything.

    Because ProcessWire has a completely different model to WordPress and is more suited to building custom apps, what might be nice is to have a selection of certified ProcessWire apps for different purposes that users can host.

    I'd certainly be happy with an official 'app store' model where ProcessWire gets to take a cut that helps support the project in return for offering global exposure and handles billing. I have a few projects for clients I've been working on that I can see will have wider appeal, and they're not really modules as such but more complete sites, and I've been thinking about how to look at distribution.

    Umbraco sets the bar high in this regard, requiring quite an expensive fee to cover review of any paid modules and I guess profiles, presumably to ensure that the store doesn't get filled up with low quality contributions. I think some sort of fee to cover review of paid modules and profiles would be reasonable, but maybe not as steep as Umbraco.

  19. On 3/2/2021 at 11:38 AM, StanLindsey said:

    What we need is really easy ways to contribute and build motivation towards contributions. 

    I hear what you're saying. I wonder whether it's worth having a look at something like how Umbraco (https://our.umbraco.com/) is structured.

    It's built on ASP.Net rather than PHP, but next to ProcessWire it would probably be my next most preferred CMS because you can do pretty much anything with it, and a lot of concepts are similar, although I still think ProcessWire overall is easier to work with, looking objectively I think maybe Umbraco has a community and business model that might be worth looking at, as some of what they do might work with ProcessWire.

    One of the things they do is offer preconfigured hosting with Umbraco installed and maintained, and I wonder if that might be something that could be a source of funds for ProcessWire, and also a way around the idea that ProcessWire is developer focused and not so much for end users.

    Have a few professional site profiles, and the option for quick deployment and hosting taken care of, and it might be easier to get more people onboard with ProcessWire.

    I want ProcessWire to thrive, as I enjoy working with it, but clients ask me what happens if something happens to me, so I need to know that it continues to support an active community so that I can reassure clients that there are plenty of people who can support them if for any reason I cease being able to. 

    • Like 2
×
×
  • Create New...