Jump to content

Susticle

Members
  • Posts

    18
  • Joined

  • Last visited

Everything posted by Susticle

  1. Wow. I found the thread you noticed and I've tried several things there. Nothing worked. Now I tried again and it works like a charm. Thank you very much!
  2. Hi all, I have a similar question as asked in this old thread: Case: I'm editing a page called "podcast". Children have the template "episode". Now I created a manually sortable list of featured episodes. This works quite nice. Input field type is "Page Auto Complete", filtered for template "episode". When searching for an episode to select, all episodes are searched. I would like to only search for episodes of the podcast I'm currently editing, so only for childs of the currently edited page. I found several threads about similar questions, some referring to "Custom php code". But this is not offered in the UI. Does anybody have a hint, maybe for a selector string? Sorry if this is a silly question. Thanks!
  3. For the database and all tables it's "utf8_general_ci". One exception which doesn't matter, I think: The table "field_pass" has "ascii_general_ci".
  4. Thanks for your answer. This statement was already in there. There is no change whether it's there or not.
  5. Hello, I got a new development machine and installed a new XAMPP version. After setting up a working ProcessWire installation I get this error on page save: ProcessWire: ProcessPageEdit: SQLSTATE[42000]: Syntax error or access violation: 1139 Got error 'invalid UTF-8 string at offset 26' from regexp I cleared the cache, setup MariaDB for UTF-8, but the problem is still there. Do you have any suggestions? Thank you! Edit: I found out that the problem happens in a self written module. There is the following statement: foreach($arr_keywords as $str_keyword) { $arr_selectors[] = 'fieldname~='.wire('sanitizer')->selectorValue($str_keyword); } If there is a UTF-8 char in $str_keyword the error occurs. Changing the operator does help. But I would like to learn what I'm doing wrong there. Thank you!
  6. Right. I should have been more precise there. Sorry. I had no doubts that this way might be the problem but I was wring. I filled the input fields and thought that this should work. Your simple answer solved my problem. Thank you very much!
  7. Thanks for your reply! Hooking before "Pages::save" shows exactly the same behavior. I saw the module written by @ryan but our data structure is different and I have an own library to get the coordinates. It works quite well and matches all the needs I had and have for several projects. I would like to learn what I am doing wrong. Most likely there will be other cases I could need this knowledge about filling required fields and save without errors. :-)
  8. Hello, I have a template with various fields to input address data. These inputs are used in a hook to do geocoding via a Google API. Also there are two required fields, for latitude and longitude. When I add data in the page editor of Processwire and save, my module fills these fields with data given by Google. This works quite well. My problem is: Processwire says that required values are missing but displays the correct values in the fields. If I do a second save, everything is fine. This is the hook I used: public function init() { $this->pages->addHookBefore('ProcessPageEdit::processInput', $this, 'doGeocoding'); } Note: I also tried "addHookAfter", no change. So everything is fine but an error is shown. Do you have an hints? Thank you!
  9. Thank you! I tried OR groups but didn't get them together to get the desired result. In the meantime I found out that the cause of the problem seems to be the Multi-dot selector. Not just for the OR '|' fields but also for my approach with the array. The parts of the array are working with AND logic until I add the part with the Multi-dot selector. So I did a little workaround: There are two searches now. The first one does an OR search in facility_jobs.facility_job.job_title with all given words. The resulting list of IDs is now a filter for the selector array instead of the Multi-dot selector. This seems to work quite well now. Maybe this can be done with one request using sub-selectors. I will look into this later.
  10. Thanks for your answer. This was the first way I tried it. But it results in an error message:
  11. Hello, there is (simplified): a template "job" field "job_title" a template "facility" field "facility_title" repeater "facility_jobs" field "facility_job_title" field "facility_job_description" field "facility_job" => pagereference to pages using the template "job" The facility template has a repeater to list jobs with an own name and description for this facility. In this repeater there is also a page reference to the template job. Everything is fine so far and everything works. But I don't get a search solved as I want. I need a result if *every* given word to search for matches facility_title OR facility_jobs.facility_job_title OR facility_jobs.facility_job.job_title. So template=facility AND (word1%=facility_title OR word1%=facility_jobs.facility_job_title OR word1%=facility_jobs.facility_job.job_title) AND (word2%=facility_title OR word2%=facility_jobs.facility_job_title OR word2%=facility_jobs.facility_job.job_title) AND (word3%=facility_title OR word3%=facility_jobs.facility_job_title OR word3%=facility_jobs.facility_job.job_title) I need this in one big selector because I do manual changes on the generated sql statement later. I created a selector array: foreach($arr_words as $i_number => $str_word) { $arr_selector[] = array( 'template' => 'facility', 'field' => 'title', 'operator' => '%=', 'value' => $str_word, 'group' => 'group'.$i_number ); $arr_selector[] = array( 'template' => 'facility', 'field' => 'facility_jobs.facility_job_title', 'operator' => '%=', 'value' => $str_word, 'group' => 'group'.$i_number ); $arr_selector[] = array( 'template' => 'facility', 'field' => 'facility_jobs.facility_job.job_title', 'operator' => '%=', 'value' => $str_word, 'group' => 'group'.$i_number ); } Sadly this doesn't work. It creates an OR-result. I need group1 AND groupX, but I get group1 OR groupX. I tried lots of stuff, but don't get it solved. Because of later changes to the sql statements, performance reasons, pagination I only want to search once. Any help is appreciated. Thank you! :-)
  12. Thanks for the answers. After discussing this we changed some things, now the way described above is appropriate.
  13. Hi, I wrote a little module which determines the value for an read-only inputfield depending on two other required text fields. If the necessary value cannot be found, saving should be prohibited but the entered values should stay in there. I used the hook "ProcessPageEdit::processInput" as described here and almost everything works fine. But there is one thing: The values are saved even if I detected an error. Is there a way to prevent this? I tried the hook "saveReady" but then the given values are lost in case of errors. Thanks!
  14. I was wrong in my previous post, sorry. The cookie I saw was not set by Processwire. So the code found in this post works for me.
  15. I can confirm this for version 3.0.98. It does something. If set to false, I cannot use the backend. But at the frontend the cookies are still set. I was wrong. It works nicely. The cookie I saw was not set by Processwire. Sorry.
  16. Hello everybody, I'm doing websites with Processwire for some time now. Now there is the first time I need to setup a hook. I created a module, that was no problem. I added a hook: In checkMethod I can check for errors and give out an error message with $this->error. With event->replace in case of errors I can prevent saving the wrong data. Everything's fine. But still I get the message that the page has been saved. So I think I did something wrong. What's the correct way to add a hook that checks the data, gives out an error message and prevents the page from being saved? Thanks, Lars
×
×
  • Create New...