Jump to content

JayGee

Members
  • Posts

    258
  • Joined

  • Last visited

Posts posted by JayGee

  1. On 1/25/2022 at 3:17 PM, Pete said:

    I still use it. I do have one workflow thing I do where I add a "keyword list" textarea field below the keywords as the SEO tool we use to generate lists of keywords for subjects spits them out one per line, so we copy and paste that into that textarea and on save I turn it into a CSV string and put it in the proper keywords field. Sounds a bit lazy but one site had hundreds of articles.

    I may also need to build a Y0ast-like page score module at some point soon too, though I think those things can be misleading as much as they can be helpful.

    We also use the Keyword field more as a reminder of keywords we're targeting a particular page at - especially as most search engines ignore this data anyway.

    • Like 2
  2. 1 hour ago, adrian said:

    Thanks @Guy Incognito I have merged your PR.

    I have switched to using SeoMaestro, but to be honest I am not particularly happy with either of these modules - both have their issues for my way of working / thinking. It will be interesting to see what RockSEO brings to the table.

    Thanks ?.

    I will check out RockSEO. The thing that has kept us on MarkupSEO to date is the simplicity for implementation and also for clients. Combined with the changes you’ve made previously it’s pretty effective at doing what it needs to.

    I’ll have a think if there’s anything else that can be done to improve it further.

    • Like 1
  3. Hi all,
    Not sure if if everyone has jumped to SeoMaestro these days but I'm still fond of MarkupSeo and it's still live in many of our sites so I've made a few small but important tweaks based on real world usage. @adrian I've just made a pull request with these changes to your fixes branch in case others find these changes useful:

    Stopped canonical links from being able to inherit from parent pages:
    Inherited canonical links could cause problems with search engine indexing whereby you're inadvertently telling Google your new page is the same as another purely because you (or a client) missed the canonical field.

    So I think it is better for the default to be current page URL if the field is left blank rather than inherit the parent.

    Implemented handling of relative URLs in the canonical field:
    You can now use relative URLs in the canonical field for internal links. They will still render on the front end as SEO-friendly absolute URLs, but this way it is easier if you use different domains for testing or if you need to change the site domain.

    (https://github.com/mrjcgoodwin/MarkupSEO/tree/various-fixes-enhancements)

    • Like 2
  4. @Krlos I agree with @bernhard - more detail is required on your constraints to really advise.

    However we've built a number of data-driven sites using PW in this way and I would say putting all pages of a specific type under one parent is my preferred approach vs nesting in multiple sub-folders. It's also more like a regular database table). You can then just use selectors to filter the output and it makes more sense if you have entities that might apply to multiple parents. E.g. a staff member that works at multiple locations.

    For those maintaining the site/data you can make it easy on them by configuring the 'family' tab for each template. So for instance, only a 'hotel' can be added as a child of 'hotels'. When an editor wants to add a new hotel they can't then accidentally use the wrong template, or put it in the wrong place. Finding an existing hotel to edit is as simple as tapping the name into the default PW search box.

    • Like 1
  5. On 1/9/2022 at 2:36 PM, rjgamer said:

    Can I change the output of each input field for Bootstrap oriented stylings? And can I output the sent data in the frontend?.

    Yes - Formbuilder has the option to output each form in adherence with a number of popular frontend frameworks - bootstrap included (see screengrab below). There's also a number of embedding options which include the option to completely customise/control the code output so you should be covered from this angle too.

    Out of curiosity, what are the shortcomings of the default comments you are looking to overcoming. If it's just styling/presentation couldn't you just modify the markup for this instead?

    Screenshot 2022-01-21 at 21.22.34.png

  6. I'm in the process using PW multisite configuration to centralise a family of sites that will be identical aside from content.

    I'm trying to create a shared folder for the main site templates and modules. It's all working fine so far but I can't get ProFields Repeater Matrix to play nice. I have my paths set up as follows in config:

    $config->paths->templates = $config->paths->root . 'shared/templates/';
    $config->urls->templates = $config->urls->root . 'shared/templates/';
    
    $config->paths->fieldTemplates = $config->paths->root . 'shared/templates/fields';
    $config->urls->fieldTemplates = $config->urls->root . 'shared/templates/fields';
    
    $config->paths->siteModules = $config->paths->root . 'shared/modules/';
    $config->urls->siteModules = $config->urls->root . 'shared/modules/';

    But the repeater matrix doesn't seem to be picking up the customer templates located in /shared/templates/fields

    In the template I have the usual:

    echo $page->render('page_blocks'); ?>

    But all I'm getting is a bullet point list of matrix block ID's. It's not rendering using the templates.

    I can force the path of page->render to use the shared folder ($config->paths->fieldTemplates.'/page_blocks.php), but then it just outputs a blank page - as if it's not finding the sub templates.

     

    Any ideas? ?

  7. 1 hour ago, heldercervantes said:

    I have to get a good grasp of what people might search for there. It's a quite specific service, so you either want to report, submit, or request stuff. Shouldn't be too hard to come up with a list of synonyms and associate that with actions. Then do the same for the various things you can report, submit or request. When a user doesn't find it, log what they searched and review that log from time to time to help fine-tune the keywords and conversation scripts.

    Of course, knowing my fellow coutrypeople, I can expect instead of "I want to {request} the {document_x}, please", someone will write "My son is going to college and in the registration process he needs a document that says I don't owe the state anything". 

    And on that basis you can signpost people too. So before you allow free type they might have to indicate an initial route by clicking a button - e.g. Do you want a) Report a problem b) Pay a bill etc etc....

    "Now tell us which service you want to pay a bill for"...(free type and match).

    Might help limit the terms they throw at it.

    • Like 1
  8. I'm trying to build a search selector that includes a checkbox multiple option field (clinicdetails_specialisms). The whole selector works fine if I don't include the checkbox field. With it included I get errors like "Error: Exception: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters (in wire/core/PageFinder.php line 627)".

    This is the selector as it currently stands.

    subscription_status=active,(template=user,clinicdetails_description|clinicdetails_short_description|clinicdetails_clinic_name|clinicdetails_first_name|clinicdetails_last_name*=$query),(clinicdetails_specialisms.title=$query)

    I've also tried setting the specialisms field in one string rather than groups and have also tried with/without the '.title' property.

    Oddly the selector works if specialisms is the only field being searched. It seems to fail when mixed with other selectors.

    Can anyone advise what stupid mistake I'm making!

  9. Could you perhaps solve this by populating your page’s open graph (OG) tags with specific URLs rather then letting them auto populate from the actual link and then using URL segments or parameters to differentiate between real/spider visitors.

    I think by populating OG tags it will tell fb where to pull the thumbnail, description etc from even if the human visitor has to go through the verification gateway first.

  10. We have a client's Processwire site where the Pageimage::size() method has stopped working. It's creating small white PNGs in the assets folder instead of the resized image as usual.

    Their hosting was recently upgraded and switched to PHP 7.4 and I'm wondering if a they've removed a PHP package or changed a server config to cause this.
    Does anyone know if the image resizing functionality requires specific PHP modules I need to check for?

    I've checked the folder permissions on the server - this all looks fine.

    TIA,
    J

  11. Yes 100%. I built and run a client-specific CRM/membership system for an arts organisation using Processwire. It started out relatively simple and has grown, but allowed us to build exactly what was needed and cut-out the over-complication of the many off the shelf systems they had already tried.

    Without PW's baked-in features development of this system would have taken an immeasurable amount of time longer.

    • Like 5
  12. 35 minutes ago, DV-JF said:

    Hey @Guy Incognito, hey all

    I've struggled with the same error message, but found a solution: Make sure that you've enabled both API's the "Maps JavaScript API" & the "Geocoding API" .

    1524705482_2021-08-2018_15_43.jpg.933fca2454ecd22e3395d78e9f2f2fca.jpg

    Also make sure to add the wildcards in the restriction settings like so:

    https://example.com/*
    https://www.example.com/*
    http://example.com/*
    http://www.example.com/*

    Hope this'll help a little bit. Greets!

    Hi @DV-JF - I'm pretty sure I do have both these enabled but I will check thanks. I have found that IP restriction works fine for my requirements though after all - turns out that my server was reporting an IPv6 IP and not the IPv4 I had set in the restrictions. ? So back up and running for now ?

  13. 4 hours ago, Guy Incognito said:

    I'm just using this module for the first time in a while and finding similar behaviour (Google Cloud has change a lot since I last used this module).

    I haven't tested the scenarios as thoroughly as @TheMick however I can confirm that everything works without the API key restriction, however restricting it by IP or Http referrer in GC dashboard generates a 'Error geocoding address' response and the lat/long fields don't populate.

    I looked into this further. I tweaked the module to dump out the response from Google API and it confirms that indeed referrer restricted API keys won't work with the Geocode API.

    Array ( [error_message] => API keys with referer restrictions cannot be used with this API. [results] => Array ( ) [status] => REQUEST_DENIED )

     

  14. On 3/15/2021 at 2:12 PM, TheMick said:

    Google allows to restrict API keys, but you can only restrict to URLs (useful for showing maps) or IP-addresses (useful for geocoding with PHP). I tested the inputfield using API keys with one of the restrictions each and one with no restrictions. The (expected) result:

    • key restricted only to URL: Map in the inputfield works, geocoding with hitting enter (not clicking outside the field before) works
    • key restricted to IP: Map does not work, but server-side geocoding (with PHP on save) works
    • key with no restrictions (not recommended!): everything works

    So I think, there should be two fields for the configuration in the module: one for a server-side key and one for a frontend key (also used fro the inputfiled map). Or do I get something wrong?

    Something else I noticed: In InputfieldMapMarker.module on line 79 and in MarkupGoogleMap.module on line 161 I think the domain should be googleapis.com instead of google.com

    I'm just using this module for the first time in a while and finding similar behaviour (Google Cloud has change a lot since I last used this module).

    I haven't tested the scenarios as thoroughly as @TheMick however I can confirm that everything works without the API key restriction, however restricting it by IP or Http referrer in GC dashboard generates a 'Error geocoding address' response and the lat/long fields don't populate.

×
×
  • Create New...