Jump to content

modifiedcontent

Members
  • Posts

    279
  • Joined

  • Last visited

Everything posted by modifiedcontent

  1. A few more points to watch out for. You need to copy the Authentication Salt in config.php to be able to use your login from the old database: /** * Installer: User Authentication Salt * * Must be retained if you migrate your site from one server to another * */ Installed modules and customizations can also mess up things. After simply uploading my backed-up /site folder into the new installation, I got a scary fatal server error. To step back I restored the /site folder of the fresh installation. I had replaced the fresh install database with my original backed-up database. That worked fine. I see all my old content and templates etc. in the admin area. Next I have uploaded all modules from the backed-up /site/modules to the new installation /site/modules. In the back-end I have clicked Refresh in Modules. It finds the modules and installs them. You may have to repeat Refresh a few times. I still keep getting this error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'field_headshot.filedata' in 'field list' After uploading the rest of the backed-up /site folder, everything else seems to work fine.
  2. Cool! Looking forward to trying this. Thanks gebeer
  3. Another dumb question; what am I supposed to do with the following in config.php: I have tried uncommenting '@var Config $config', but that breaks stuff. And what is '@var bool'?
  4. Is there no quick way in Processwire to just clear all caches in one go? I keep running into caching problems and then have to turn on/off caching per templates. I have also read that you can delete the contents of the cache folder, but think it broke my site the last time I tried that. I am now troubleshooting another issue that may or may not have anything to do with caching. It would just be nice if I could just eliminate that as a cause, but wouldn't even know which template/cache to try to clear.
  5. Excellent. Thanks rick and wbmnfktr. I'll do this in the coming weeks and will report back.
  6. What is currently the best way to move a Processwire site to a new server? I have to upgrade my VPS, from CentOS 6 to CentOS 8. I have several relatively complicated Processwire websites. I am currently downloading all the files via FTP. I will export databases next. I guess I'll use Export Site Profile. Or had that been replaced by something else? New modules that I missed? Or will the FTP'ed files + exported database be enough? Just copy them 1-on-1 to the new server and it will all work? What can go wrong? What are the pitfalls to watch out for?
  7. Thanks wbmnfktr, I had seen that one. That page gives a lot of general, very useful background info on the how and why of permissions, but I was looking for a quick overview/cheatsheet with recommended settings for each processwire directory/file.
  8. Is there an overview/cheatsheet anywhere with recommended permissions for each folder and file? I know permissions are set at installation, but I probably messed things up a bit in a server upgrade or PHP 7.3 has different requirements. I now keep running into permission issues.
  9. Answering my own question: I got directory/files ownership/permission screwed up on /site/assets/cache. Or PHP7.3 handles those differently? /cache and /modules should be writable. I had both on 755, but guess ownership was wrong. Doing this via ssh fixed it: chown -R myserveruser site/assets/cache chown -R myserveruser site/modules chmod -R a+w site/assets/cache chmod -R a+w site/modules Are there other folders/files I should double-check?
  10. I had upgraded my Apache configuration to include PHP7.2 and PHP7.3 for a Laravel-based script on the same server. Somehow it/I messed up a previously fine Processwire site, in a very confusing way. The site still looks fine, but editing template files has no effect whatsoever. It is stuck on some kind of cached version. I have already disabled PHP7's OPcache, cleared browser caches, etc, with no effect. The pages now apparently come from PW's assets/cache/FileCompiler folder, even though I never enabled template caching for this site. I have tried adding "namespace ProcessWire;" to the top of the homepage template file, but then I get this fatal error: My functions.php file pulls data in from another Processwire installation on the same VPS with the following line: $othersitedata = new ProcessWire('/home/myaccount/public_html/myothersite/site/', 'https://myothersite.com/'); That apparently still works fine; the site still displays data from the other installation, but via the "cached" template that I am now unable to change. I don't know where to start with this mess. Does any of this sound familiar to anyone? Any pointers in the right direction would be much appreciated. Edit: Adding "$config->templateCompile = false;" to config.php results in the same fatal error as above.
  11. Is there a way to allow the front-end editing feature for a role, without also giving that role access to the admin area/control panel?
  12. Why doesn't this work? $members = $pages->find("template=user"); foreach($members as $bogus) { // don't use $user if ( $bogus->firstname === $bogus->lastname ) { $bogus->delete(); } } I get this error: If I echo $bogus->fullname, I get a nice list of spam accounts where the first and last name are the same. There has to be a way to let PW allow me to delete them. I have also tried $users->delete( $bogus ) and $users->delete( $bogus, true ) and a few other variations, but keep getting the same error message. Line 1017 is this: if(!$this->isDeleteable($page)) throw new WireException What makes a page not deletable? Any ideas? I have a similar bit that deletes user accounts with numbers in the name fields: $members = $pages->find("template=user"); foreach($members as $bogus) { if ( preg_match('/[><\-0-9]/', $bogus->name ) ) { $users->delete( $bogus ); } } That one works fine. What am I getting wrong with the other one? Edit: I think I figured it out. $firstname === $lastname would also be TRUE for two empty fields, so I guess PW has wisely made that not deleteable somewhere. So you have to check first if either field is set at all. The following seems to work: $members = $pages->find("template=user"); foreach($members as $bogus) { // don't use $user if ( $bogus->firstname && $bogus->firstname === $bogus->lastname ) { $users->delete( $bogus ); } } Or still wrong?
  13. To me the beauty of Processwire is that it makes no assumptions how you use it. This module breaks with that logic a bit, probably unnecessarily. I have started editing the css. That is no big deal. I'll look into how to use this field as input for the map marker modules, make them work together. btw, I hope your health problems are under control. Either way, take care.
  14. I need some kind of address field type to store street addresses for events - the map marker modules produce unusable garbage addresses... This module looks solid and probably does what I need for my case. Why does the module assume it will be used for postal mailings? Is that really necessary? Couldn't the UX be a bit more usage agnostic and use the regular admin fonts etc.?
  15. The 'address' field is supposed to output the address you entered. echo $page->map->address; // outputs the address you entered But it actually outputs whatever the map thinks is at that lat-long, with a lot of unnecessary details added, something like this: The address search also insists Water Street is in lower Manhattan when I mean Water Street in Brooklyn. Brooklyn becomes Kings County in map->address; nobody calls it that! You can force the map to select the right location by dragging the pointer. Now the address is: Which is hilarious and completely useless. Is there a way to keep/store the actual "address you entered"? Or else a way to format that map->address into something usable?
  16. This module is great, essential. Unfortunately I can't yet get it to work on my front end. The map doesn't show up due to a javascript/jquery conflict. The module outputs regular jquery script starting with $(function() { ... If I manually add the following alternative to the footer it works fine, the map shows up in all its CartoDB glory: How can I get the module to do the same? Or get around this problem some other way? Edit: I have replaced the following line in MarkupLeafletMap.module: $inlineScript = "<script type='text/javascript'>\n$(function() {\n" . with this: $inlineScript = "<script type='text/javascript'>\nvar jMap = jQuery.noConflict();\njMap(function() {\n" . Now the module works as expected. Could you make that part of the module for next updates? With jLeaflet instead of the more generic jMap. Or is there a good reason not to do it like this or a more cleverer way to avoid jquery conflicts?
  17. Thank you so much adrian. I had been using your Admin Actions module for other things. Super useful. I should have thought of trying that sooner. I have first applied 'Copy Content to Other Field', then used 'Delete Unused Fields'. Both no problems. More clean-up work to do before I can declare victory. I would be pleasantly surprised if the data really is still there, but at least the old fieldtype is gone. Will report back...
  18. I was trying to uninstall the FieldtypeMapMarker module, that is connected with the problematic Google Maps API that has raised their prices and produces errors. I want to replace it with Leaflet Map Marker. I uninstalled parts in the wrong order, hoping I could keep my address data. The module's uninstall is disabled, because the 'module is a Fieldtype currently in use by one or more fields'. But admin for the field in question now produces this error: Fatal Error: Uncaught Error: Call to a member function set() on null in /home/.../site/modules/FieldtypeMapMarker/FieldtypeMapMarker.module:54 Stack trace: Reuploading/reinstalling the FieldtypeMapMarker module didn't fix access to the fieldtype admin. I have tried uninstalling via the API, but don't understand how that works. I have tried putting this in a template file: $modules->uninstall("FieldtypeMapMarker"); That didn't do anything. I guess I have to put this in a function or "hook" it somewhere? I have no clue. Or would this method still perform the same check if I am allowed to uninstall? How can I nuke FieldtypeMapMarker without doing more damage? Is deleting rows in mysql really the best option? Is there a somewhat clean way to force uninstall and/or replace FieldtypeMapMarker with the Leaflet alternative?
  19. I have "solved" the issue by using window.location.origin as the ajax url. My ajax call now looks something like this: Leaving url out - using "self" as url - produces the error described above for urls based on titles starting with quotes. I wasn't able to figure out what/where/how to escape something to prevent that error. Bypassing problematic urls by using window.location.origin solves the problem. Or is there a better solution?
  20. I have this same error after updating to the latest version of PW: I haven't explored further yet, working on other things, will get to this eventually. Any news what causes this?
  21. I have Ajax search that works fine in most of my site, except on pages with single quotes/apostrophes in the title. I get this error in the log: Exception: Unknown Selector operator: '=&' -- was your selector value properly escaped? The error log gives this clue: ... wire/core/Selectors.php(460): ProcessWire\Selectors->create('title', '=&', '#039;IoT is gro...') #1 ... &#039 is a single quote. " 'IoT is gro...' " is the start of the title of the page this search is on; the URL of that page includes ".../iot-is-gro ..." But that title is not the search term. I have double-checked if I have escaped the search terms correctly and if I have used correct single and double quotes in my Ajax and search code. Again, search works fine in most of the site. How does that title end up as a "selector value" anywhere? How does the title of the page that this search is on interfere with the selector operator? I can't figure it out. Could this be a bug? I have tried/explored just about everything else.
  22. This is a self-contained basic example of how to use $config->ajax: Anyone can put this little demo in a template file and it works. Hopefully it helps other people who don't know Javascript or/and PHP well to understand how to work with Ajax in PW. Something like this is all I needed. Getting the variable(s) ($_GET) and doing something with it - in this basic example just echo it - can also be done in a separate php file in your templates folder that you can include after if($config->ajax) Here is a better example - mainly for my own reference...:
  23. Yes, of course. I don't know Javascript. I have one bit of Ajax working in my PW site, but now want to step back and try to better understand how this stuff actually works. All examples help. Thanks kongondo. Edit: Btw, I have the same problem with kongondo's latest example as with every other example of this; it only gives one part and assumes that the rest is obvious. kongondo's example is mostly generic PW PHP that has nothing to do with Ajax. The example says an 'author' var was sent by the Ajax call, but doesn't explain how - which is precisely what I am trying to wrap my head around. I am looking for an example that shows me how it all works together. Here is a self-contained basic demo:
  24. Thanks @bernhard, but this example assumes you use the default profile. I don't, so there is way too much unnecessary distracting stuff going on. I think this example only shows how you can fetch one line of text via an ajax call. Typically you'd want to send the call with parameters/variables (?) to a php script that does something with the vars and then returns something. I am looking for basic examples of that entire process. I'll keep working on my example(s) above.
×
×
  • Create New...