Jump to content

Robin S

Members
  • Posts

    5,039
  • Joined

  • Days Won

    340

Everything posted by Robin S

  1. @dweeda, it would probably be better to put your code into a template file. Then instead of redirecting to the PHP file you redirect to some page URL that uses the template file. That way you can use the $user and $session variables as expected.
  2. @Margie, it's likely that the error you're seeing is due to interference by the mod_security Apache module. Ask your host to disable mod_security and it should resolve your issue.
  3. I would say that anyone already using the module on older websites is probably happy enough with the existing functionality and should stick with v0.0.2. PW will show a warning for anyone trying to upgrade that does not meet the minimum version dependency. Not sure if the Upgrades module will actually refuse to upgrade in such a situation (I don't have an easy way to check) but you could include an additional warning advising to revert to v0.0.2: /** * Upgrade */ public function ___upgrade($fromVersion, $toVersion) { // Upgrade from < v0.0.3 if($fromVersion < 3) { if($this->config->version < '3.0.61') { throw new WireException("The minimum required ProcessWire version is 3.0.61. Please revert to Selectize Image Tags v0.0.2"); } } }
  4. The demo site uses Lister Pro (it's debatable whether pro modules should be used in the demo site but that's another discussion) but you can achieve something similar by using a bookmark for the basic core Lister. Visit the "Find" lister and set up the filters and columns how you like to show the skyscrapers or whatever your pages are about. Then save that configuration as a bookmark on the Bookmarks tab. The bookmark appears as a child menu item of the Find section, but as @tpr suggests you can include a link to the bookmark in the main Pages menu using the NavItems feature in AdminOnSteroids.
  5. Hi @Macrura, I made a pull request for SelectizeImageTags with fixes for AJAX-loaded fields, repeaters, and for new image uploads. For AJAX-loaded fields and repeaters it was necessary to hook the relatively new renderReadyHook() instead of render(). So as a result the minimum required PW version is 3.0.61. If that is a concern there is a completely different approach possible that could support older versions but it has its own shortcomings. Happy to discuss if you like. I forgot to include the change mentioned above: Maybe you could make that change too. And when you get a chance could you look at applying similar changes to InputfieldSelectize so that will support AJAX-loading/repeaters also? Thanks.
  6. @bernhard, this looks like a really useful module, thanks for making it. When using FieldtypeHandsontable values as part of a $pages->find() selector, is it possible to search for values in particular column or row, or in a specific column/row combination? Like in the "row headers" example in the first post, is it possible to match pages where "Juni 2018 = 60"?
  7. Surely you don't want/need all 10000 items in the table at once. You could emulate the way that Lister works. A paginated table where the filter/sort options use AJAX requests and then PW selectors on the server side.
  8. Functional fields sound awesome! Seeing as both of these may be used as the first argument... __text('Subscribe') // intended to be some default text __text('subscribe') // intended to be the name previously given to some different text ...is it right that you would have to be careful when giving a name to text to make sure it is not a string that might be used as default text, now or in the future? Like, maybe you would want to prefix the name with something that is unlikely to be used as default text. And in the example above, would those two be identified as separate text items - i.e. is the name case-sensitive?
  9. Thanks for letting me know. I have updated the module to set a minimum version requirement for FieldtypeRepeaterMatrix.
  10. Markup CKEditor (for Form Builder) An inputfield for displaying markup editable via CKEditor. The module is intended for use with the Form Builder module. Allows blocks of static text to be included within a form, which can be edited in the form settings using CKEditor. Screenshots Usage Install the Markup CKEditor module. In the Form Builder module settings, add "MarkupCKEditor" to "Inputfield types to use with FormBuilder". In your form settings, add a new field of type "Markup CKEditor". Enter the text you want to show in this field using "Markup Text" on the "Details" tab. Configuration In the module config you can set items for the CKEditor toolbar that will apply to all Markup CKEditor fields. If you want to insert images in your markup field then add "Image" to the toolbar items to enable the standard CKEditor image plugin. The ProcessWire image plugin is not usable because in a FormBuilder form there is no page to store images in. Advanced There is a InputfieldMarkupCKEditor::ckeReady hookable method for users who want to do advanced customisation of the CKEditor inputfield. It receives three arguments: The InputfieldCKEditor object The form as a FormBuilderForm object The field as a FormBuilderField object Example $wire->addHookAfter('InputfieldMarkupCKEditor::ckeReady', function(HookEvent $event) { /** @var InputfieldCKEditor $cke */ $cke = $event->arguments(0); /** @var FormBuilderForm */ $form = $event->arguments(1); /** @var FormBuilderField $field */ $field = $event->arguments(2); if($form->name === 'test_form' && $field->name === 'my_cke_markup_field') { $cke->contentsCss = '/site/templates/MarkupCKEditor/contents.css'; $cke->stylesSet = 'ckstyles:/site/templates/MarkupCKEditor/ckstyles.js'; } }); http://modules.processwire.com/modules/inputfield-markup-ckeditor/ https://github.com/Toutouwai/InputfieldMarkupCKEditor
  11. Thanks @Roope! The hook didn't work within the page template (maybe too late there) but did work in /site/ready.php
  12. @bernhard, for module AJAX calls I have used a replace hook on ProcessModule::executeEdit. In my JS I send an AJAX request to the module's config page, and in the hook I check that the request is coming via AJAX and has the required GET/POST variable(s) and if so I use $event->replace = true and return my response.
  13. @cjx2240, sorry to hear that. Can you give some more information please... Is the "who_we_are" field a Repeater Matrix field? Do you have the latest version of Repeater Matrix installed - v0.0.4? Do you have debug mode enabled in /site/config.php? If not please enable and let me know if you see any error messages when you try and edit the field. If you don't see any error messages still, please install Tracy Debugger, tick the "Backend" option for "Show Debug Bar", and check for errors when you try and edit the field, as in the screenshot below: Thanks.
  14. It's a bug: https://github.com/processwire/processwire-issues/issues/302
  15. Thanks, this works well. Short and sweet so will go with this. It does work, thanks. Although in my case I don't want to change the sort order beyond moving portrait images to the end so modified it to: foreach($page->listing_images as $image) { if($image->height() > $image->width()) { $image->aspect = 2; } else { $image->aspect = 1; } } $page->listing_images->sort('aspect');
  16. Here is an example - change the template name to suit. Assumes three integer fields: quantity, unit_price, order_total. In /site/ready.php... $pages->addHookAfter('saveReady', function(HookEvent $event) { $page = $event->arguments(0); if($page->template->name !== 'your_template_name') return; if($page->quantity && $page->unit_price) { $page->order_total = $page->quantity * $page->unit_price; } });
  17. You can create a new integer field, add it to your template, and update the value based on other values in the page with a hook to Pages::saveReady. No need for a new fieldtype I think because it would have to use a hook like this anyway, because by themselves fields don't know anything about other fields that might be in the same template.
  18. Hi @Roope, Love this module - it's used in all my sites. Is it possible to disable the module on some pages via a hook? I need to disable the obfuscation when a particular GET variable is present.
  19. I want to reorder my Pageimages array so that portrait-format images are placed last. Currently I'm removing portrait-format images and then adding them back. $listing_images = $page->listing_images; foreach($listing_images as $listing_image) { /* @var Pageimage $listing_image */ if($listing_image->height() > $listing_image->width()) { $listing_images->remove($listing_image); $listing_images->add($listing_image); } } This works, but just wondering if there is some better WireArray method I could use that works like "move this item to the end of the array".
  20. Rather than edit the DB for an existing field, you could make a simple fieldtype module that extends FieldtypeTextarea: <?php class FieldtypeLongTextarea extends FieldtypeTextarea { /** * Module information */ public static function getModuleInfo() { return array( 'title' => 'Long Textarea', 'version' => 1, 'summary' => 'Field that stores multiple lines of text in a MySQL LONGTEXT column type.', ); } /** * Get database schema used by the Field * * @param Field $field * @return array * */ public function getDatabaseSchema(Field $field) { $schema = parent::getDatabaseSchema($field); $schema['data'] = 'longtext NOT NULL'; $schema['keys']['data'] = 'FULLTEXT KEY data (data)'; return $schema; } }
  21. Welcome @fabjeck, Having different markup for different templates is what the markup regions feature is all about. First, make sure you are up-to-speed with markup regions by reading the related blog posts: https://processwire.com/blog/posts/processwire-3.0.49-introduces-a-new-template-file-strategy/ https://processwire.com/blog/posts/processwire-3.0.50-core-updates/ https://processwire.com/blog/posts/processwire-3.0.62-and-more-on-markup-regions/ Regarding the #content markup in _main.php and your "normal" template file (let's say it is called "basic-page.php") there are two approaches - either is fine; it's just whatever you find easier to manage. Note that I am only showing a portion of _main.php below - this file needs to include complete HTML page markup: doctype, <head>, <body>, etc. Approach 1: put your normal #content markup in _main.php and leave basic-page.php empty of markup. _main.php <div id="content"> <!-- Your normal markup here --> <h1><?= $page->title ?></h1> <!-- etc --> </div> basic-page.php - no markup Approach 2: put an empty #content region in _main.php and put your normal markup in basic-page.php _main.php <div id="content"></div> basic-page.php <div id="content"> <!-- Your normal markup here --> <h1><?= $page->title ?></h1> <!-- etc --> </div> And in either approach, your home.php is the same: <div id="content"> <!-- Your home markup here --> <section> <div class="slider"> <!-- Find and output some news pages using a selector --> </div> </section> <section> <div class="news"> <!-- Find and output some news pages using a different selector --> </div> </section> </div>
  22. Maybe a Javascript error - anything showing in your dev tools console?
  23. Then they are not a company that deserves your money. Time to vote with your wallet and move to a new host.
  24. Hi @adrian, everything is working as expected thanks - just took me a moment to connect the dots that no Tracy debug bar = no Tracy methods available (which makes sense). Great to have you back around here!
  25. Welcome @obesegiraffe, Not sure that this could be the cause of the problem, but the way you are checking if the Options field is populated looks a bit unusual to me. Does it make a difference if you use count() instead? <?php if(count($page->percent_leased)){ ?> <h2><?=$page->percent_leased->title?>% Leased</h2> <?php } ?> The database table looks like what you get if your Options field is set to one of the "Multiple values" inputfields. If you have changed the input type from Multiple to Single at some point then you would need to save each of the pages in admin that had any multiple values saved for it in order to trigger the value to update.
×
×
  • Create New...