-
Posts
125 -
Joined
-
Last visited
-
Days Won
1
Everything posted by Clarity
-
Hello, @kongondo! I use the module in this way: I'm creating a site with possibility of creating blank menu without items. On these lines I'm trying to get menu items: $menuBuilder = $this->modules->get('MarkupMenuBuilder'); $this->menuItems = $menuBuilder->getMenuItems($id); Then I get an error: "No menu items found! Confirm that such a menu exists and that it has menu items." if items are not present. This is caused by the line 1366: https://github.com/kongondo/MenuBuilder/blob/main/MarkupMenuBuilder.module#L1366 I tried to fix it manually using the fact that the menu is a page and menu items are being stored in menu_items variable: $menuBuilder = $this->modules->get('MarkupMenuBuilder'); $menu = $this->pages->get($id); if($menu->menu_items) { $this->menuItems = $menuBuilder->getMenuItems($id); } else { return; } However, it seems to be only a workaround. Am I using module correctly? If no, how can I use it to avoid such an error without adding items? If it is not possible, I suggest the following fix: Here https://github.com/kongondo/MenuBuilder/blob/main/MarkupMenuBuilder.module#L1366 return can be replaced from $this->throwError() to [] or array(). I created a new issue here: https://github.com/kongondo/MenuBuilder/issues/50. Can you please see this issue?
-
Creating columns in database with FieldtypeCombo
Clarity replied to Clarity's topic in RockMigrations
Thank you, it indeed works! -
Hello! I would like to report an issue I noticed. I migrated a FieldtypeCombo field using the RockMigrations module. The field was transferred with the warning: FieldtypeCombo: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'field_global_settings_combo.i3' in 'field list'. To figure out this error, I exported this FieldtypeCombo field and compared the database state in both cases. After a normal export, the database looks like this: After migrating using RockMigrations, the database looks like this: As you can see, the database is missing columns "i3", "i4", "i5", "i6". Can you please tell me how it is possible to create them?
-
Automate Repeater Matrix types creation with RockMigrations
Clarity replied to Ivan Gretsky's topic in RockMigrations
Hello! I still have a problem related to creation of repeater matrix types. There is a function: public function createRepeaterMatrixField(string $name, array $options, bool $wipe = false) { $items = array_key_exists('matrixItems', $options) ? $options['matrixItems'] : null; if ($items) unset($options['matrixItems']); // var_dump($items); // create field $field = $this->createField($name, 'FieldtypeRepeaterMatrix', $options); // populate matrix items if ($field && wireInstanceOf($field, 'RepeaterMatrixField')) { $this->setMatrixItems($field, $items, $wipe); } return $field; } $field variable is supposed to be RepeaterMatrixField, but it's only a Field. What I'm doing wrong? I use the code from the documentation from https://github.com/baumrock/RockMigrations/tree/dev#repeatermatrix-field. Can you please tell me why it's Field and not RepeaterMatrixField? Edit 1: I think it's field because $this->createField returns Field but not RepeaterMatrixField. Edit 2: If I use setMatrixItems, then items are being added in the second run. -
How to delete a template from database via API?
Clarity replied to Clarity's topic in API & Templates
Found it: https://processwire.com/api/ref/templates/delete/. For example, wire()->templates->delete(wire()->templates->get('basic-page')); -
Hello everyone! Can you please tell me how to delete a template from database via API?
-
Thank you very much!
-
Thank you, it indeed works. Thank you, but the select option values are still being stored as a string and $integer is already an int and doesn't need conversion.
-
Hello everyone! I have SelectOptions field which is supposed to contain integer values for the purpose of using them in selector and compare with other integer values like this: $pages->find('select_options.value>' . $integer) For example, I have SelectOptions like this: 1=5|title1 2=20|title2 3=40|title3 4=60|title4 5=85|title5 So I get that values are being strings and I can't compare them with some other value. Can you please tell me how to handle it if it is possible with SelectOptions?
-
How to sort pages by specific template names preserving pagination?
Clarity replied to Clarity's topic in API & Templates
Thank you, it indeed works! -
Hello everyone! I have a paginated PageArray and I need to sort the results first by template1, then by template2 and template3 (in any order inside 2 and 3). Then by other templates by any order. Can you please tell me how to do it? The solution might look something like: $pages->find('sort=(template=template1,template=template2|template3),...');
-
How to recursively close sub-pages in page tree?
Clarity replied to Clarity's topic in General Support
Also, the behavior in both Chrome and Firefox: - First click reduces tree only to immediate children of home. - Second click reduces tree only to home page. But third click differs: it expands tree to immediate children in Chrome and to full previously open tree in Firefox. -
How to recursively close sub-pages in page tree?
Clarity replied to Clarity's topic in General Support
@wbmnfktr, thank you, it indeed works. -
Hello everyone! In VS Code (or maybe in other IDE) by default Alt+Click on folder recursively closes tree of sub-folders if you open too many sub-folders and want to close them simultaneously. I've checked ProcessPageList.js, function clickChild(e) but haven't found a code which allows to do it for some shortcut. Can you please tell me if it is possible anyways?
-
Hello everyone! Recently I needed to construct a table using divs only: HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Border</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="cards"> <div class="cards__item"></div> <div class="cards__item"></div> <div class="cards__item"></div> <div class="cards__item"></div> <div class="cards__item"></div> <div class="cards__item"></div> <div class="cards__item"></div> <div class="cards__item"></div> </div> </body> </html> CSS: .cards { display: flex; width: 150px; flex-wrap: wrap; } .cards__item { border: 1px solid black; flex: 0 1 32%; width: 50px; height: 50px; } The problem which I ran into is that borders are being doubled: Then I wrote to CSS the margin: .cards__item { border: 1px solid black; margin: -1px -1px 0 0; flex: 0 1 32%; width: 50px; height: 50px; } Now the double borders disappear: However, the issue in this solution is that there is a small (1px) margin to the right of table. Can you please tell me how I can do something better for this?
-
@gebeer, thank you for improving my scripts. I've updated them. Also my previous version of this script finds pages in repeaters which is not an intended behavior.
-
@bernhard, yes, of course. I've added screenshots.