Jump to content

nurkka

Members
  • Posts

    37
  • Joined

  • Last visited

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

1,819 profile views

nurkka's Achievements

Jr. Member

Jr. Member (3/6)

12

Reputation

  1. Hi @kongondo, today I tried to upgrade a ProcessWire website from PW 3.0.210 to 3.0.229. After that, when trying to access pages in the backend, which contain MediaManager fields, the following error occured: ProcessWire\WireException Item 'type' set to ProcessWire\Pagefiles is not an allowed type search File: /html/website/wire/core/WireArray.php:458 448: * 449: * @param int|string $key Key of item to set. 450: * @param int|string|array|object|Wire $value Item value to set. 451: * @throws WireException If given an item not compatible with this WireArray. 452: * @return $this 453: * 454: */ 455: public function set($key, $value) { 456: 457: if(!$this->isValidItem($value)) { 458: throw new WireException("Item '$key' set to " . get_class($this) . " is not an allowed type"); 459: } 460: if(!$this->isValidKey($key)) { 461: throw new WireException("Key '$key' is not an allowed key for " . get_class($this)); 462: } To verify that this error was caused by Media Manager, I renamed the directory "MediaManager" in the modules folder. Then, the error disappeared. I had to downgrade ProcessWire for now, but the website has to be updated sooner or later, as other modules and parts of the site depend on it. Do you have any hints what I can do to avoid this error or is there a bugfix release of MediaManager?
  2. @bernhard Thanks again for your help! I finally managed to also get SSH keys to work under Windows with WSL2 and with DDEV installed in Windows, so that now I am able to use RockShell how it's meant to be 🙂 The key point, why I struggled with the ssh keys was, because I had put the key files in the ~/.ssh folder on the WSL2-Linux installation. But as I am using the Windows version of DDEV and using the command line from the windows side, the ssh keys must be placed in C:\Users\YourNameHere\.ssh After that, one can simply use this command, which will copy the ssh keys into one's web container: ddev auth ssh Then one can use e.g. the following RockShell command like so: ddev php RockShell/rock db:pull * * * * * And here is how to add a shell function under Windows, when using PowerShell 5: # test, if the PowerShell profile, where you can store custom shell functions, already exists Test-Path $PROFILE # if not, create the PowerShell profile New-Item -path $PROFILE -type file -force # Open the profile file with an editor. it's located here: # Path: C:\Users\YourNameHere\Documents\WindowsPowerShell # Name: Microsoft.PowerShell_profile.ps1 # Add the shell function to the profile file: function rockshell { param( [string]$Command ) ddev exec php RockShell/rock $Command } After that, save the file, restart PowerShell, and now it is possible to use RockShell like so: rockshell db:pull Many thanks @bernhard for creating RockShell, and for your help!
  3. @bernhard @dotnetic Thanks for your replies! In my current project I followed your advice and now work with a local ddev, a staging server and a live server. Currently I still have no automated scripts yet, but working with the command line (wsl2, ddev and ssh) works really good. Also, I mostly got rid of large ftp uploads, using rsync. Working with that tools feels better every day 🙂 But when trying to copy the local ddev website to the staging server, I got stuck. I exported the database with ddev php RockShell/rock db:dump, uploaded it via rsync. connected via SSH and tried php RockShell/rock db:restore on the server. But as the ProcessWire database tables were not present at this point yet, RockShell/rock returned an error message. So I had to fall back to Adminer to import the SQL file. What would be the right way to copy a locally developed website to a staging server with RockShell?
  4. I have also tried RockMigrations, but I still don't use it as standard. I'll take another look at RockMigrations, thank you very much! Do I understand you correctly that when further developing a website that is already live, only templates, fields and modules can be updated? For example, when I create a new page type, I not only create a new template and new fields, but also one or more pages and fill their fields with content. Can this newly created content also be transferred to the production environment with RockMigrations? If so, that would mean that you have to create not only the new fields, but also all the new content in php code, and not via the ProcessWire backend, right?
  5. Firstly, many thanks for the brilliant input regarding DDEV. I'm finally using DDEV for local development and it's really super fast. My latest project is now 100% finished locally and I saved a lot of waiting time. @bernhard I understood from your posts that you have a staging version and a production version of your projects on the remote server. - What is the benefit of a remote staging version for a single developer? Wouldn't it be easier to omit the staging server? - What I still can't deal with is the following problem: If I put the website live now, my customer and their team will start editing content, creating pages, etc. in the ProcessWire backend. In addition, there will be contact form entries and blog comments from end users, i.e. ultimately user-generated content, which will also end up in the ProcessWire database. The website is to be continuously developed, i.e. I will be adding fields, modules and templates over the coming weeks and months. I understood, you would clone the database to local and continue working on the website locally, and later copy everything back to remote. But then I would overwrite the changes my client and the users have made in the meantime. How do you deal with this problem? Are you developing the site locally, and once deployed to production, do you work on the remote server? I tried to connect to a server database remotely, and it is super slow. Before DDEV, I had the classic setup with uploading every change to the remote server via FTP and refreshing the browser manually. I do not really want to go back to that ... Appreciating any help ... !
  6. Does anyone know how one can add a style to the TinyMCE styles dropdown, which applies a css class to several HTML-Elements at once? I managed to do it with JSON like so in the "Default setting overrides JSON text" field: { "style_formats": [ { "title": "Styles", "items": [ { "title": "Center", "selector": "p,h1,h2,h3,h4,h5,h6", "classes": "text-center" } ] } ] } But how is the syntax for achieving the same within the field "Custom style formats CSS"? Or is this simply not possible (yet)?
  7. I noticed that, in my case, I cannot have more than one CKEditor field with mystyles.js on the same template, except within repeaters or repeater matrix fields. The solution was to configure mystyles.js only for the first textarea CKEditor field and to use the feature "Inherit settings from another CKE field" for the others. Then the custom styles work as expected.
  8. Hi kongondo, I just watched the video and it looks very good! I already sent some suggestions a while ago, but I wanted to repeat an important one: I have some projects where the clients have lots of PDFs with very long detailed technical names. I assume the PDFs won't have thumbnails in Media Manager, so it would be very good if one could switch the view to a really compact list view, where the filenames would not be cropped. Perhaps in this list view also some other meta data could be shown, like filesize etc. Also I would add that the filenames or image titles as shown in the video are cropped in a way it makes them nearly unreadable. So I am wondering if you could consider an option to not crop those titles or filenames at all?
  9. Hi @kongondo It would be nice to have a full text search, which would always be visible. If this is not possible, it would be nice, if the filter would be always open, so one can start typing immediately and previously set filter values would be visible right away. Also a more compact view for pdf documents would be great, because the current grid and list view both require a lot of space if one has some hundred pdfs in the library. In a past project I added the pdf filenames to the grid view by modifiying some javascript files, to have a more compact view with the filenames visible. Perhaps, pdf icons could be a lot smaller or omitted at all in the document view. The UI elements could be smaller and information like how many times an image was used, filesize, etc. could be hidden and made visible with a toggle button, so everything would take up less space and more image and document items would fit on the screen.
  10. Hi @kongondo First of all thank you for the awesome plugin! It would be really awesome if the selection would run through an interface with a folder structure. And it would be perfect if one could define per template in which folder the selection would start. An example: Assuming we have a folder "Employee photos" and a folder "Customers" (or a lot more folders and subfolders 😉 ), then it would be perfect if one could give the input field the information that the image selection on employee detail pages starts in the folder "Employee photos". That would be much easier for the clients/editors to work with. And without a folder structure, it would be great if one could define per template with which category or tag the input field starts, i.e. to have a ore-defined filter setting per template.
  11. Hi everybody, in another post some weeks ago @ryan mentioned that the language-alternate fields were deprecated and that he doesn't expect many will ever use them. As I am using language-alternate fields for image-fields and url-fields, I wonder if there is any other, non-deprecated solution? Thanks and best regards
  12. You could use the redirects plugin: https://processwire.com/modules/process-redirects/ It also allows to import the redirects as comma separated list, where each line contains one redirect.
  13. Hi everybody, is it possible to hide a page in the default language of a multilanguage website? The page’s settings tab doesn't seem to allow it, because there is no checkbox next to the default language’s url and it can’t be left empty. For the time being I implemented a checkbox "hide in default language", and if checked, the page outputs a wire404(); But is there any native way to do it? Thanks and best regards
  14. Hi everybody, some time ago I implemented a blog in ProcessWire with the comments function. The comments have avatar images which were displayed based on the commentators email address. To manage the avatar images and some other data, I added custom fields to the user template. This used to work perfectly, but today I noticed that the avatar images were missing. $user = users()->find("email=mail@example.com"); echo $user->first()->get('name'); // works perfectly echo $user->first()->get('user_display_image'); // doesn't work anymore UPDATE: I just found out, how to get the field value again. One has to check the option »Make field value accessible from API even if not viewable«. Screenshot: I assume, the functionality must have been changed sometime between 2019 and 2021. With the above setting it works again.
  15. Thanks BitPoet, the following code worked: function custom_debug_if () { return true; // simply for test reasons } $config->debugIf = 'ProcessWire\\custom_debug_if'; Using if(wireIsCallable($debugIf)) instead of if(is_callable($debugIf)) in ProcessWire.php made no difference. Thanks again and best regards!
×
×
  • Create New...