Wow, that was fast! Thanks so much for the responses, you two!
Those two ideas didn't quite get it working yet...
Adding the lines
$base_city = isset( $city ) ? $city : "";
$city_tv = $modx->getTemplateVarOutput( array( $base_city ) );
$city = $city_tv[$base_city];
...to the PHP instead of
...returns an SQL syntax error. So, I think the plugin is finicky.
I did try setting the $city directly in the PHP, leaving the TV empty, and it worked...but only when I did it as
$city = urlencode('Stone Mountain');
So, I changed the TV definition via the field for cityTV at the bottom of the Resource Page to the part between the = and the ;
urlencode('Stone Mountain')
But it still isn't working. I tried calling the snippet from the content in the suggested ways, but the most successful is:
[!reviews?&city=`[*cityTV*]`!]
Using Susan's method in the PHP of the snippet:
$city = isset($city) ? $city : '';
When I call the snippet this way, it populates the heading in the plugin with the contents of the string. For instance, it says:
Local Reviews for urlencode('Canton'), GA
So I know that the TV definition is getting passed to the plugin from the TV through the snippet now, but it's sending it as a string rather than urlencoding the contents of the ('') and then passing that to the plugin.
Feels like I'm standing in front of a tree seeing nothing but bark and groping for the leaves overhead.