Jump to content


Popular Content

Showing content with the highest reputation on 09/10/2018 in all areas

  1. 5 points
    In fact, these modules are very similar. That's why I did not publish my module in the Processwire module directory. small differences: I use the builtin InputfieldMarkup I don't use eval() No need to create a new field if used in another template. Simply overwrite the output template based. The basic usecase is to set the markup field and template/field based. Via string tags all pagefield values and other page properties are accessible. Any textformatter can be applied. Full Language support. For more complex calculations the output is hookable and the full PW API can be used to create the output, not only $page or $pages. Example: A page (A) has been assigned to another page (B) via a page field. I want to show some informations about (B) inside (A)
  2. 3 points
    I just added a request this morning - such a handy feature.
  3. 2 points
    I guess... we all love and use 3rd party scripts, tools, services and modules for our ProcessWire projects. From image galleries to contact forms and newsletter subscription services lot's of things are already there and ready for use. So I am looking for your most common used and trusted scripts, tools, services and modules. You may ask yourself why I want to know this and before hiding everything behind curtains here is the answer: I plan to create a collection of ready to use ProcessWire snippets for common and often used scripts, tools, services and modules. Therefore I'd like to know what you use for your projects so I can create those ready-to-use snippets. I already have a broad collection of snippets I use everytime but I think there could be much much more. For example: I like to use Owl Carousel 2 and Slick slider for image galleries and/or sliders and Mailchimp as a newsletter subscription service. The main goal is that I want to provide working solutions and answers for ProcessWire starters. More and more questions in the forums are 3rd party related (How do I use this gallery script in PW? or How does this service could be used in PW?) and for those I want to create a copy&paste / ready-to-use collection of snippets. So... I ask you to tell me your most used scripts, tools, services and modules. Feel free to share your trusted 3rd party options with me. P.S.: I don't ask you for your snippets and solutions as they are your business secret and someone already paid you for it. But... if you want to share your scripts with me and the public you are more than welcome. P.S. 2: Modules will be part of this collection Things, thoughts and details about my project so far: Idea: born Domain: registered Hosting: paid / sponsored Scripts: in progress Tools: in progress Services: in progress Modules: in progress Free, premium, freemium: free (no ads, no tracking, no affiliate links) Authors: you & me (full credits given to you) Ideas, thoughts, questions, answers? Let me know!
  4. 2 points
    I definitely understand the line one has to draw when making assumptions for the user, but it seems that in some instances you do make those assumptions already -- which is why those properties of the object feel really inconsistent and confusing. I think that issue is driving some of the posts in this thread that ask about those properties and why they don't seem to output what we expect. Depending on whether it's a one time event, an all day event, or a recurring event, they behave a bit differently or in unexpected ways. It's almost that I would prefer you to make a consistent assumption, but provide the tools to make an alternative output for myself. Right now it seems that the implementation relies much more heavily on simply understanding what I need to do to get the simple output that I expected to get. It's not an easy question to answer, but I hope you have an understanding of where I (and others?) see the confusion. The admin field, screens, and some of the tools you provide are very slick... but the object for custom output is harder to figure out, or simply not that useful depending on the nature of recurrence (or not). Thanks!
  5. 2 points
    Hi all, I've had a request from a client (that I built a multi language PW site for) to change the text colours in the language tabs when they are not completed. Essentially they were having difficulty detecting which languages had content and which didn't when scanning the page in admin. Now I know this means changing Admin template files which I hate doing but the client was insistent. Looking through I found this in the module CSS and changed the colour for empty content to red thus: wire/modules/LanguageSupport/LanguageTabs.css - line 61 .langTabEmpty a { opacity: 0.7; font-weight: normal !important; color: #ff0000 !important; /* I changed the colour here */ } Now we get this when editing, the red indicating no translated text has been added: I think is a better UX. However, when adding alt text to images in an image field the same CSS colour change doesn't apply. Looking at the CSS the .langTabEmpty class isn't added to these tabs on the image field. Could this be considered as an improvement at next module upgrade time please? Thanks as always!
  6. 2 points
    Since php 5.4.0 short tags are always enabled, so that's not really a problem anymore, and really in template-files using them just removes a lot of unnecessary extra syntax. Just don't use them anywhere else.
  7. 2 points
    We also have: $files->render() these days.
  8. 1 point
    Hi all, I have posted this in the VIP support forum of Padloper as well. Some of you do not have access to that board so posting here as well. Hopefully it doesn't count as spamming🙂! In June 2018, Antti announced that he was looking for a new product owner for Padloper. Sometime after, I had a fruitful discussion with him about my vision for the project if I was to take over. We agreed that commitment, motivation and a concrete plan were all important ingredients for the continued success of Padloper. I would like to officially announce that I am now the product owner and lead developer of Padloper. For those who may not know, I am the author and maintainer of several ProcessWire modules, both free and commercial. I am also a moderator in the ProcessWire forums. I would like to share with you a number of things regarding what’s going to happen next. This will be a long read. First, I would like to thank Antti for developing a great product. A lot of man-hours, dedication, passion and love has gone into making Padloper what it is today. Secondly, I would like to thank all users of Padloper. A great product is nothing without active users utilising it, putting it to the test, reporting bugs (even offering possible solutions) and proposing new features. So, thank you for helping make Padloper great! Support Thousands of hours have gone into developing Padloper. Although the code is well-written and easy to follow, Padloper is a big application with many moving parts. As such, it will take some time before I can fully grasp its inner workings. To make this transition as smooth as possible, Antti will help me with support for Padloper for some time. Currently, Padloper has a dedicated support forum. This is an arrangement between Ryan and Antti. The support forum works great as it allows the opening of multiple support threads to cover different issues. I have yet to speak to Ryan whether this arrangement can continue. However, given that I have other pro modules that I support in the open forums, it is unlikely that I will be requesting Ryan to let Padloper’s dedicated forum carry forth. A dedicated forum for one of my pro modules and open forums for my other pro modules will lead to confusion and questions from users of those other modules. Hence, Padloper support in the forums will move to the open forums. The disadvantage here is obviously the fact that support will be offered in one single (and maybe massive) support thread. To get around a ‘single thread support forum’, I am thinking of developing a simple online support queue system for all my modules. Meanwhile, support will continue in a new single thread and via email. Roadmap This list is neither exhaustive nor cast in stone. Its aim is to give an overview of my plans for Padloper. · Padloper 2 – a new major release · New backend for Padloper · Optional pro frontend module for Padloper · Documentation · New payment modules Let’s talk a bit about this list. Padloper 2 Release Padloper 2 will be a major release that incorporates a new, central backend shop for Padloper. This will be a new process module that pulls from the existing parts of Padloper (data models, etc) into one interface (more on this below). This version will also be extensible in the frontend, allowing for the plugging in of a new, optional, commercial frontend shop (full featured shop profile). Padloper 2 will not support the current ‘any page can be a product’ paradigm. Technically, products will still be pages. However, all products will utilise the same Padloper template. These will be invisible to the shop users themselves (e.g., hidden in admin tree). Only superusers will have full control of the Padloper system stuff. Support The current Padloper will continue to be supported until the new Padloper 2 is released. New features will be included in Padloper 2 only. Once Padloper 2 is released, legacy Padloper will only receive security fixes. All other support will cease. Upgrade There will be no upgrade path from the current Padloper to Padloper 2. Although their underlying architecture is the same, making sure that everything works in different setups and environments will be time consuming. However, for those who really need to migrate, if time allows and for an agreed fee, I could develop a custom script for the migration. Backend A new backend interface will be the major visual difference between the existing Padloper and Padloper 2. It goes beyond visual differences though. The new backend will be the single gateway for managing all shop-related features, both current and new ones. The backend will unify and include: · Easily add shop products. · Ability to add as little or as many custom fields to products as required (title, SKU, price, discount field, image/photo, description, categories, tags, etc). · Discounts manager (including auto start/expire discount codes). · Customers manager. · Invoices manager. · Taxes management. · Payment gateways manager. · Improved digital products management. · Stock management. · Manual order creation. · Graphical sales report. · Customer support. · Access-controlled shop editors/staff. · Dashboard for shop metrics. · Shop settings. · Product variations. · Import/export products as CSV or JSON. · Products search/filter. · Etc. Users will be able to turn off backend features that they do not need. This will enable a more streamlined experience for users. I plan to release Padloper 2 within 4 - 6 months, hopefully sooner. This is a major undertaking, hence the timescale. Please note that the first release of Padloper 2 will not include all of the above planned features. The idea is to build incrementally, adding new features in minor updates, focusing on stability, usability and security. Frontend Past requests have included the development of a full featured frontend shop. This is planned for Padloper 2. However, this will be an optional pro module priced separately from Padloper itself. The ability to build own frontend shops using Padloper API will still continue. For those who want a plug-n-play solution, this frontend shop will come in handy. The frontend shop profile will feature an ajax-powered shopping cart and a customisable ready-to-go theme. Pricing Model There are no plans to change the current prices of the 3 Padloper licences (Single, Developer and Agency). However, in order to continue to provide Padloper as a stable product with great features, it is also important that it remains a competitive and financially sustainable project. In order for this to happen and to also bring Padloper in line with my existing pro modules, the pricing model itself has to change. Starting from Padloper 2, the pricing model will shift to an ‘annual subscription’ model rather than the current ‘lifetime licence model’. I am fully aware that there are different opinions for and against annual subscriptions. However, I believe that this model is the most equitable approach that suits both the developer and the clients. The annual subscription will allow users (licence holders) to get 12 months of free VIP support for Padloper as well as future updates available within that time period. After the 12 months, users will be able to renew (online) their subscription at a discounted cost (worked as a fraction of the full purchase price) for a further 12 months (perpetually). Users will be able to continue to use Padloper for life even if they don’t renew their subscriptions. Upgrading current licences to Padloper 2 will be a paid upgrade. Current users of Padloper will get an attractive discount. This will be a time-limited offer (maybe a couple of months) that will start with the release of Padloper 2. New customers will pay the full price for Padloper 2. I hope the planned features are reason enough for you to consider upgrading to Padloper 2. Payment Modules I will be taking over as the maintainer and lead developer of the existing payment gateways (Payment base class, PayPal and Stripe). New payment modules are also planned. Payment modules will continue to be free. However, only ProcessWire 3+ support will be provided going forward. Padloper Domain and Future Downloads I have also taken charge of the Padloper domain. Within the next 12 months, purchase and download of Padloper will shift to processwireshop.pw. Please note that this is not the official shop for ProcessWire! It just bears a name that reflects its product offerings 😊. Eventually, traffic to padloper.pw will redirect to processwireshop.pw. Feedback I would love to hear your thoughts about the upcoming changes and any feature requests you might have for Padloper 2. Whilst I cannot guarantee that any request will be implemented, I can promise that I will thoughtfully consider all feedback. Thanks for reading and thank you for supporting Padloper! kongondo
  9. 1 point
    Hello for all, ConfigurationForm fieldtype module is one my experiment from 2016. Main target to build this module was to store multiple setup and configuration values in just 1 field and avoid to use 1 db table to store just single "number of items on page", or another db table to store "layout type" etc. Thanks to JSON formatted storage this module can help you to reduce number of PW native fields in project, save DB space, and reduce number of queries at front-end. Install and setup: Download (at the bottom ), unzip and install like any other PW module (site/modules/...). Create some filed using this type of field (ConfigurationForm Fieldtype) Go to field setup Input tab and drag some subfields to container area (demo). Set "Name" and other params for subfields Save and place field to templates ("Action tab") How to use it: In my case, I use it to store setup and configurations values, but also for contact details, small content blocks... (eg. "widgets"). Basic usage example: ConfigForm fieldtype "setup" has subfields: "limit", type select, option values: 5, 10, 15, 20 "sort", type select, option values: "-date", "date", "-sort", "sort" // get page children (items) $limit = isset($page->setup->limit) ? $page->setup->limit : 10; $sort = isset($page->setup->sort) ? $page->setup->sort : '-sort'; $items = $page->children("limit=$limit, sort=$sort"); Screenshots: Notes: Provide option to search inside subfields Provide multilanguage inputs for text and textarea field types Provide option for different field layout per-template basis Do not place/use field type "Button" or "File input" because it won't works. Please read README file for more details and examples Module use JSON format to store values. Text and textarea field types are multilanguage compatible, but please note that main target for this module was to store setup values and small content blocks and save DB space. Search part inside JSON is still a relatively new in MySQL (>=5.77) and that's on you how and for what to use this module. Thanks: Initial point for this fieldtype was jQuery plugin FormBuiled and thanks to Kevin Chappel for this plugin. In field type "link" I use javascript part from @marcostoll module and thanks to him for that part. Download: FieldtypeConfigForm.zip Edit: 14. August 2018. please delete/uninstall previously downloaded zip Regards.
  10. 1 point
    I would like to just show my appreciation to ProcessWire and all the guys that have put work in to make it what it is now. I have use many, many CMS's in my time. Statamic, Drupal, WordPress, ConcreteCMS, CraftCMS etc... And they all have their strengths and weaknesses. But I can honestly say, ProcessWire is by FAR the best Content Management System I've ever, EVER used. I can honestly say the only weakness ProcessWire is the lack on eCommerce. But, that isn't even a weakness of ProcessWire. The tools are there for us to create an eCommerce system. I'm a front-end developer but with ProcessWire it empowers me to realise anything. Honestly, when one of the designers asks "Can we do this?" it feels so great to say YES! I, with very little backend experience built a real-estate system that completely runs on ProcessWire pulling in from an external feed (Vebra) and I did it with ease! I just wanted to say thank you, thank you for creating a framework in which, people like myself, who love front-end but find back-end daunting can pick it up and literally do anything with EASE. ProcessWire gives me so much confidence and makes me feel so good about myself. I've recently been working on an WooCommerce website, and I can't tell you how much I've been missing ProcessWire. Thank you @ryan for making a system that is so simple, even simpletons like myself can dream big. Lots of love, Tom Edit: Interestingly I feel like it would be easier to build an eCommerce system using ProcessWire than it would trying to completely reskin WooCommerce, like seriously, WooCommerce stop injecting markup and putting them in core functions.
  11. 1 point
    MarkInPageTree New module which does what it says in the title. It adds an icon to a page on the page tree if -> a specific field is true and / or is a specified template. For example I'm using it to add an icon to any page that has a checked (checkbox) exclusive field. This helps with admin clarity as you can see instantly which pages of the same template have differing content (i.e. are exclusive or not). https://github.com/benbyford/MarkInPageTree
  12. 1 point
    @diogo, a late take on your HannaCode into one that returns a series of thumbnails, possibly limited from N to N+J, for the current or another page, in a <div> to be used with a lightbox of a kind (ready for MagnificPopup). Here is the code for reference: !HannaCode:gallery:eyJuYW1lIjoiZ2FsbGVyeSIsInR5cGUiOiIyIiwiY29kZSI6IlwvKmhjX2F0dHJcbnA9XCIwXCJcbm49XCIwXCJcbmk9XCIwXCJcbmhjX2F0dHIqXC9cblwvXC8gQmFzZWQgb24gdGhpcyBwb3N0OiBodHRwczpcL1wvcHJvY2Vzc3dpcmUuY29tXC90YWxrXC90b3BpY1wvMTE4Mi1tb2R1bGUtaW1hZ2UtdGFnc1wvP2RvPWZpbmRDb21tZW50JmNvbW1lbnQ9NDAwMTVcblxuJG15UGFnZSAgICAgPSAkcCA/ICRwYWdlcy0+Z2V0KCRwKSA6ICRwYWdlO1xuJGZpZWxkTmFtZSAgPSAkbXlQYWdlLT5maWVsZHMtPmdldCgndHlwZT1GaWVsZHR5cGVJbWFnZScpO1xuJG15RmllbGQgICAgPSAkbXlQYWdlLT4kZmllbGROYW1lO1xuXG4kaW5kZXggICAgICA9ICRuIC0gMTtcbiRpbWFnZXMgICAgID0gJyc7XG5cbmlmKCRteUZpZWxkIGluc3RhbmNlb2YgUGFnZWltYWdlcyl7XG4gICAgaWYoJG4gJiYgJGkpe1xuICAgICAgICBcL1wvIElmICRuIGFuZCAkaSBkZWZpbmVkLCBpdGVyYXRlIGZyb20gJG4gZm9yICRpIHRpbWVzIGFuZCByZXR1cm4gdGhlc2UgKHdpdGggYSBsaWdodGJveC1saWtlIGdhbGxlcnkgaW4gbWluZClcbiAgICAgICAgZm9yICgkaiA9ICRpbmRleDsgJGogPD0gKCRpbmRleCArICRpIC0xKTsgJGorKykge1xuICAgICAgICAgICAgJGltYWdlID0gJG15RmllbGQtPmVxKCRqKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKCAhKCRpbWFnZSBpbnN0YW5jZW9mIFBhZ2VJbWFnZSkgKSBjb250aW51ZTtcbiAgICAgICAgICAgIFxuXHRcdCAgICAkdGh1bWIgPSAkaW1hZ2UtPnNpemUoMjIwLDE0Nyk7XG5cdFx0ICAgICRsYXJnZSA9ICRpbWFnZS0+d2lkdGgoMTAwMCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIFwvXC8gc2FtZSBhcyBpbiBfZnVuYy5waHAgPiByZW5kZXJBdHRhY2hlZEltYWdlcygpIDogXG4gICAgICAgICAgICAkaW1hZ2UgPSBcIjxkaXYgY2xhc3M9J2NvbHVtbiBwb3B1cC1nYWxsZXJ5LWl0ZW0nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9J3skbGFyZ2UtPnVybH0nIGNsYXNzPSdhbGlnbl9sZWZ0JyB0aXRsZT0neyRsYXJnZS0+ZGVzY3JpcHRpb259Jz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9J3skdGh1bWItPnVybH0nIGFsdD0neyRpbWFnZS0+ZGVzY3JpcHRpb259Jz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSd0ZXh0LWNlbnRlcic+eyRpbWFnZS0+ZGVzY3JpcHRpb259PFwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxcL2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8XC9kaXY+XCI7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICRpbWFnZXMgLj0gJGltYWdlO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxufSBlbHNlIHtcbiAgICAkaW1hZ2VzID0gXCJcIjtcbn1cblxuaWYgKCRpbWFnZXMpICRnYWxsZXJ5ID0gXCI8ZGl2IGNsYXNzPSdwb3B1cC1nYWxsZXJ5IHJvdyBtZWRpdW0tdXAtMyBzbWFsbC11cC0yJz5cIi4kaW1hZ2VzLlwiPFwvZGl2PlxcbjxkaXYgc3R5bGU9J2NsZWFyOmJvdGg7Jz48XC9kaXY+XFxuXCI7XG5lY2hvICRnYWxsZXJ5OyJ9/!HannaCode Thank you for the inspiration!
  13. 1 point
    If your module is namespaced on top of your .module file <?php namespace ProcessWire; you can use in your functions $this->log // or $this->pages
  14. 1 point
    That did the trick, psy. Thank you for your help.
  15. 1 point
    Thanks mr-fan and Adrian. In case it's useful for someone, here is how I solved the problem. In fact I did not use Hanna Code in the end but some regex stuff, together with Adrians AdminActions Module (great work btw). I think this way you can convert any type of wordpress shortcuts to cleaner Hanna Code, get rid of not needed attributes or convert shortcuts to HTML. Example: I wanted to convert this: [av_image src='https://www.domain.de/link/to/image.jpg' attachment_size='large' align='center' lot_more='attributes'][/av_image] to a regular img tag. So I used a regular expression like this one: /\[av_image.*src='([^']*)([^\]]*)\]\[/av_image\]/ to match my shortcodes via the search and replace Action in AdminActions Module and replaced it with something like that: <img src="$1"> Which leads to an ordinary image Tag. $1 stands for the first group which is the src attribute. With variations of this you can convert nearly everything. But if you're not familiar with regex (like me) it can be very tricky. Database restore feature of AdminActions Module saved me some times 😉 For testing and learning I used this tool which helped me a lot in creating the regex Expressions: https://www.phpliveregex.com/
  16. 1 point
    Thank you, made it work using So far so good. 😉 Thank you R
  17. 1 point
    Hola, si quieres ayuda, tienes que saber que en este foro se habla ingles 😉 Intenta lo que sigue. ----------------------------- First install the module TracyDebugger. Then in the root folder of the website, create a file trash.php and write the following code inside this file : <?php namespace ProcessWire; include_once('./index.php'); set_error_handler(function($severity, $message, $file, $line) { if (error_reporting() & $severity) { throw new \ErrorException($message, 0, $severity, $file, $line); } }); wire('pages')->emptyTrash(); then navigate to http://yourwebsite.com/trash.php and check the logs.
  18. 1 point
  19. 1 point
    Of course. Silly me 🙂. Thanks @adrian
  20. 1 point
    Both valid. PW comes with Fontawesome in the default admin so thats why its the deafult far icons. If you want to purchase new icons versions and replaces the files in your copy then that shoul work. Will definitely change the description.
  21. 1 point
    Hello @Hurme, if your string tranlastion is in a template file, it should work like this. If your string is in a included or prepended file (f. e. _main.php), this doesn't work in my experience. For this you could use text domains inside your string translations. I used to have a single included file (translations.php) in which I collected all string translations and used a text domain to point all string translations to this included file: Anywhere: echo __("This will be translated", "/site/templates/includes/translations.php"); In translations.php __("This will be translated"); You could save the text domain into a variable so you don't have to write the whole path every time. Nowadays I'm thinking about using the ProModule Functional Fields for string translations only, because it gives you more freedom. For example if the original string translation needs to be changed, you have to edit it in your template and enter the translations again in the back-end, because they have lost the connection. With Functional Fields a editor can edit the translations and the original string without losing the connection. If you have the ProFields, it is worth checking out Functional Fields. 😉 You have to add those files with string translations manually via the "Translate files" button. You should see there every file with string translations, either in the "site" or "wire" folder. Regards, Andreas
  22. 1 point
    @prestoav what netcarver suggested, please open a github issue because the .langTabEmpty class is missing from image description list items which makes it impossible to style the way you need.
  23. 1 point
    Hi @Roych, How are you building the mobile menu? Is it a separate menu or built on the fly? The usual way to tackle this is to use the Menu Builder's getMenuItems() method to return menu items either as an object or an array which you can traverse using a recursive function to build your menu with your markup and logic as you see fit. Please have a look at this post for examples (including 3 recursive functions you can edit to suit your needs). The functions (somewhat modified) can also be found in this gist. Give us a shout if you run into issues.
  24. 1 point
  25. 1 point
    Agreed. In template files I personally prefer <?php foreach (): ?> ... <?php endforeach; ?> (and similar syntax for if...endif etc.) and for output the short echo syntax (<?= $some_var ?>) makes sense, but I'd also advice against using short opening tags (<? ... ?>). Although it remains a part of PHP syntax, there's no guarantee that it's always going to be enabled, and it's commonly frowned upon by PHP devs 🙂
  26. 1 point
    Thanks @Mont for your interesting observation. While what you say is one way to interpret it, the U with the dot has a spiritual significance.
  27. 1 point
    Thanks for all your answers!!! This was really fast and seems like a very active community! I'm sure the code snippet by @szabesz and the fieldtype by @kixe will work as well and are definitely more lightweight. I went with the RuntimeMarkup fieldtype suggested by @elabx as it was the fastest and easiest one to apply. Here is my php snippet for the runtime field: return " <a id='custom-action-button' href='#' onclick='copyUrlToClipboard(event);'>Copy URL to clipboard</a> <input type='text' value='" . $page->httpUrl() . "' id='target-page-url'> <p id='action-executed-hint'>Successfully copied URL to clipboard!</p> <style> #custom-action-button { color: #FFF; background: #93BF0D; font-weight: bold; padding: 0.6em 1.1em; font-size: 1em !important; border-radius: 5px; } #custom-action-button:hover { color: #FFF; background-color: #DB1174; } #custom-action-button:active { color: #FFF; background-color: #860A47; } #custom-action-button:visited { color: #FFF; } #target-page-url { position: absolute; left: -9999px; top: -9999px; opacity: 0; pointer-events: none; } #action-executed-hint { display: none; } #action-executed-hint.show { display: inline; } </style> <script> function copyUrlToClipboard(event) { event.preventDefault(); var urlText = document.getElementById('target-page-url'); urlText.select(); document.execCommand('copy'); var hint = document.getElementById('action-executed-hint'); hint.className += ' show'; } </script> "; It creates an a-tag which is styled like a backend button. Hope its useful for someone else!
  • Create New...