Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by cjx2240

  1. Sorry to bump an ancient ancient thread but it seemed to me a fitting way to point out that, at least for me, this issue still exists 5 years later - and this post nearly tops google for "processwire ckeditor figcaption" Does anyone have a better way around this than "add pictures at the end"? As this isn't a particularly fitting instruction for a third party. It seems to me that there's two solutions that could be done, 1 - manage the caption in the image popup, or 2 - pressing return while in the caption tag should escape the entire figure tag.
  2. Hey thanks for the idea, weirdly I set the baseUrl to a blank string, and that fixed it. I can't say I'm satisfied with understanding where things went wrong, but at least I can move forward for now!
  3. Hello Following a few guides on removing parent urls, and multilingual site setups, I have create multiple homepages for my website. For the parent language however, I've removed the parent name from the URL using the following in ready.php (mashed together from some other threads - on a side note please let me know if this is a terrible approach) wire()->addHookBefore('Page::path', function($event) { $page = $event->object; if($page->rootParent(1057)) { $event->replace = true; $parents = "/"; foreach($page->parents() as $parent) { if($parent->id != 1 && $parent->id != 1057) { $parents .= "$parent->name/"; } } $event->return = $parents.$page->name."/"; } }); There's more to it than this, but I think this is the relevant part. And it's working great everywhere, except when it comes to rendering pagination [edit: within a repeater matrix, I should mention], for which my URLs are doubling up when they render, like so: /parent/page/parent/page/page2 Any ideas how I can prevent this would be greatly appreciated.
  4. Got a bit of a weird one. I've got a date field, I've added a date in two different pages using the calendar selector. It has saved, and stored in the same format in the database. I can echo out the date no problem for both dates, it exists. However, if I use strtotime() (or wireDate()) on this date, one of them works, and one of them does not. var_dump($page->custom_date); var_dump(strtotime($page->custom_date)); 1: 2:
  5. As is so often the case from the magic of rubber duck programming, I realised that $category needs to be the page I've made. While ProcessPageExportImport probably does something clever with those paths, in my case I needed $page->categories->add($pages->get("path=$category"));
  6. How might I populate a page reference multi-select field (with options limited to pages of a specific parent) using the API? I'm doing some manual data importing and I have some categories in json like this (which came from the first-party Export/Import module) "categories": [ "/categories/dance/", "/categories/film/", "/categories/poetry/" ], The pages are all set up correctly on the source site, with the same names I've done images, repeaters etc, but I'm not clear on the syntax for populating a pagereference field. Something like $page->categories->add($category); (Where category is that path from the loop) Is what I was hoping for
  7. Can this module be used to do something like, change the allowed filetypes of a file field, or change the available options in an options (select) field?
  8. I combined dotnetic's suggestion with elabx's hook: <?php $wire->addHookAfter("InputfieldCheckbox::render",function($event){ $field = $event->object; $output = $event->return; if($field->name == "privacy_policy_accepted"){ $output = str_replace($field->entityEncode($field->checkboxLabel), $field->checkboxLabel, $output); } $event->return = $output; }); ?> Basically undoes the encoding
  9. I figured this out in the end, if anyone ever needs the answer in the future, I had to combine the first and last ideas, plus also exclude the first item from each page, and set the count one higher. There might be a better way but this is what I'm going with: if($input->pageNum < 2) { $featured = $pages->find("template=news-article")->first; $featuredId = $pinned->id; // template for first item goes here } else { $featuredId = 0; } $newsItems = $pages->find("template=news-article, id!=$featuredId, limit=11"); // 1 more than you want so you can exclude it in the template foreach($newsItems as $item) { if($item->id != $featuredId && $item != $newsItems->first()) { // template for all other items } }
  10. Hi, I'm struggling with what seems like it should be very straightforward. I want to feature the first item of my blog in a bigger more detailed template, then list ten more items and pagination. How do I exclude my first item from the results list, but still loop through and paginate through ten other results? Sounds dead simple right? I have tried several "obvious" methods to exclude the first item from the selector, which works fine, but the issue happens when you go to page two, it does not start the next page in the right place or it does not retrieve the right number of items. Things I have tried: // exclude the first item by id $newsItems = $pages->find("template=news-article, id!=$featuredId, limit=10"); // exclude with a slice $newsItems = $pages->find("template=news-article, limit=10")->slice(1); // start after item 1 (this just makes all pages start at item 1) $newsItems = $pages->find("template=news-article, start=1, limit=10"); // keep the item but don't include it in my template, this leads to the wrong count of items on page 2 foreach($newsItems as $item) { if($item != $pages->find("template=news-article")->first()) { //etc } } As an alternative solution, is it possible to have a different count on a different page? Then I can simply include the featured item in the loop but style it differently. Again I have tried the obvious (change the count of the selector if $input->pageNum > 2) but it doesn't work
  11. I've got a basic form with method="get" I use $input->get to retrieve the category, and show a list of pages based on this result. Works fine on PC, and on Mac Firefox. However on Safari and Chrome for Mac, I get nothing. If I try to var_dump($input->get), I get a white page, even if debug is enabled. It also works fine with $input->post Why does this work on one browser and not another, can anyone help please?
  12. Hi, I have quite an unusual method of selecting pages. I need to search against 3 pairs of "min" and "max" fields, and return anything that overlaps any of the ranges. The only way I can see that this is possible, is to exclude results where both fields fall outside of the ranges. This is quite hard to wrap your head around (I know, I've had a hard enough time myself) but I feel like I have the logic right. The integers used in this example are my search figures. $pages->get("parent=1042, (!comp0_min_high>200, !comp0_max_override<100), (!comp1_min_high>50, !comp1_max_override<10), (!comp2_min_high>50, !comp2_max_override<10)"); So what should happen, as far as I understand is (not A AND not B) AND (not C AND not D) AND (not E AND not F) However, using Tracy Debugger to dig into the query, it seems to use "OR" between each of those subqueries, instead of "AND". Is this my fault? I thought separating selectors by a comma was essentially "AND".
  13. On the off-chance that anyone else stumbles on this and thinks it's a solution for what they need, you should set the field to readonly, instead of disabled. Otherwise ProcessWire looks for a value, doesn't find one, and saves it as empty, meaning you'll wipe all the fields on a save.
  14. For me, it happens with any field. As soon as you set it to "Open when populated + Closed when blank + Locked (not editable)" - it vanishes from the CMS. While editable, it appears, with a 0 in it. Using HTML5 input doesn't help. The same thing happens if you set access level to view and not edit. The best thing I can think to do is leave the fields open and forcibly make them disabled with javascript or a hook instead. On a related note once I changed a textareas field to use HTML 5 input, I started getting this error on every save: InputfieldForm: Warning ('showIf' from 'Markup/HTML (Content Type)'): dependency field 'contentType' is not present in this form. - ProcessFieldEdit But my profields license expired a long time ago so I can't do much about this. Is there somewhere to report both these issues?
  15. I'm using this option on integer field types, however I have a bit of an issue In the CMS, if I set the field to "Open when populated + Closed when blank + Locked (not editable)" - the field does not appear at all - even the header - if the value is 0. As this data is managed by an import, I only want to display it in the CMS, not have it editable. The zero has saved, I can see it in the database. If it makes any difference this is a group of integer fields inside Profields:Textareas however I think they behave the same as any integer field, or at least any integer within a repeater or other group of fields. What's odd is that an empty text string doesn't have this problem on type: text. Seemingly there is some check that's happening, either when looping through the Profields:Textareas fields, or when simply checking for "Closed when blank", which is not taking the "0" as a number into account. Am I missing anything, is there something I could tweak to make this work properly?
  16. The answer was $page->tablefield->removeAll(); got there in the end 🙂
  17. Hi How can I empty, through code, a profields table field? I'm sure it's quite simple but setting it to null or an empty array/pagearray doesn't work Thanks
  18. Does anyone else think this is kind of a strange way to handle password reset? I've never seen this anywhere else. I've had a few very confused users caught out by this because they didn't read the full message, either they close the window or they open the email on a different device. Anyone changed this to work differently? This refers to ProcessForgotPassword.module if that was unclear.
  19. I hope you don't mind me giving a little constructive feedback, it's going to be a bit critical but it's just an aspect that I think is being overlooked in an otherwise excellent module. I think one thing that is holding me back from embracing this media manager (actually, we bought this in the past and then never used it -- and this is because there's no demo available) is that it really needs a little love in the styling department. Nothing fancy, but -- if we look at the screenshot above we can see just general CSS issues, alignment of the filter label top right, checkbox and sort icons are too close to the sort options, a lot of negative space between the filters and the nav, image count is too big and not aligned with pagination opposite. The spacing also between the types of media along the top is also not right when compared to how the CMS typically spaces out horizontal navigation. This is just in one screenshot, but these issues persist throughout in various places, such as notifications, upload boxes etc. Considering we have the UIKit CMS theme to base everything off, this kind of thing means that the media manager feels out of place in an otherwise quite neatly organised CMS. Now, people using this media manager for their personal projects will not care about these things, they will roll their eyes and say "why should we care, it's the back-end of the site, only functionality matters" (and in this, I must reiterate, you have done an outstanding job), however if I am building a CMS and handing it over to someone else, I need all aspects to have a consistency in quality because that is reassuring to clients.
  20. I have, now! It worked a treat. The only consideration was that my title field was also being used to populate the <title> tag so I had to be a bit smarter, retain the original text that was being replaced in Hanna Code's replacement and strip tags in the page title.
  21. Can I use Hanna Code in any field? Even a page title, or the title of a repeater? I have a site where someone wants to replace a snippet of text with an image wherever it appears, body, title, other text fields etc. - thinking this might be suitable.
  22. This must be really simple, I don't know what I'm doing wrong I'm trying to create a simple import for users, but it's not working. I want to check if they exist already, because I'll update their details if they do, and create them if they don't. Can someone tell me why this is returning true for $users->get("username") when the user definitely doesn't exist? I have tried various combos, with or without quotes, using "name=", but that shouldn't matter because it should be returning false either way.... Truthfully I think you're going to point out something really stupid/basic logic I'm missing which I'm blaming on sleep deprivation $users = wire('users'); foreach($newusers as $newuser) { if($users->get("$newuser->userid")) { echo $newuser->userid." already exists<br>"; } else { // create the user } } Edit: Why is it I frequently work these things out minutes after asking on here... 😛 The answer is that $users->get(name) returns a PageArray object regardless of whether it matches a user. You have to check if that user has an ID or such instead.
  23. Could someone point me in the right direction of where I might add new buttons alongside the page list when you log into the CMS? As in, near the "Add New" button that appears in the top right by default. I have issues with people not being able to find some links that they need to use regularly. Thanks in advance!
  24. How do I install or update a plugin such as the below? https://ckeditor.com/cke4/addon/pastefromword I have unhappy clients who want to paste a lot of content from Word
  • Create New...