{"id":558,"date":"2010-04-19T11:51:56","date_gmt":"2010-04-19T06:21:56","guid":{"rendered":"https:\/\/tothenewco.pro\/blog\/?p=558"},"modified":"2016-12-19T15:29:12","modified_gmt":"2016-12-19T09:59:12","slug":"test-link","status":"publish","type":"post","link":"https:\/\/tothenewco.pro\/blog\/test-link\/","title":{"rendered":"Test Link"},"content":{"rendered":"<p><strong>(based on Tom\u00e1s Lin\u2019s truthlink)<\/strong><\/p>\n<p>This is useful when one requires link on certain condition.<br \/>\nInstead of first using condition tag and then tag for link these can be combined into one using taglib.<\/p>\n<pre lang=\"groovy\">\r\n<g:if test=${condition> \r\n    <g:link controller:'controllerName' action:'actionName'> \r\n\ttext \r\n    <\/g:link> \r\n<g:if>\r\n<\/pre>\n<p>or<\/p>\n<pre lang=\"groovy\">\r\n<g:if test=${condition}>   \r\n   <a href=\"#\" class=\"abc\" style=\"color:#90B8FF;\"> \r\n     Text \r\n   <\/a> \r\n<g:if>\r\n<\/pre>\n<p>Other way of doing this is by using taglib.<\/p>\n<pre lang=\"groovy\">\r\nclass AbcTagLib {\r\nnamespaces \"abc\";\r\n\r\n    def testLink = {attrs, body ->\r\n        String attributes = ''\r\n        if (attrs['test']) {\r\n            attrs.remove('test')\r\n           if (attrs.keySet().contains(\"action\") || attrs.keySet().contains(\"controller\")) {\r\n                out << g.link(attrs, body)\r\n            } else {\r\n                attributes = \"${attrs.collect {k, v -> \" $k=\\\"$v\\\"\" }.join('')}>\"\r\n                out << \"<a \" + attributes + body() + \"<\/a>\"\r\n            }\r\n\r\n        } else {\r\n            out << body()\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>Now since the Tag is created condition test and and link can be combined into one<\/p>\n<pre lang=\"groovy\">\r\n<abc:testLink test=\"${condition}\" controller:'controllerName' action:'actionName'>\r\ntext                                        \r\n<\/abc:testLink>\r\n<\/pre>\n<p>or<\/p>\n<pre lang=\"groovy\">\r\n<abc:testLink test=${condition} href=\"#\" class=\"abc\" style=\"color:#90B8FF;\"> \r\n     Text \r\n<\/abc:testLink>\r\n<\/pre>\n<p>_____________________<br \/>\nHitesh Bhatia<br \/>\nhitesh@intelligrape.com<br \/>\n_____________________<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(based on Tom\u00e1s Lin\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces &#8220;abc&#8221;; def testLink = {attrs, [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":5,"footnotes":""},"categories":[7],"tags":[4840,213],"class_list":["post-558","post","type-post","status-publish","format-standard","hentry","category-grails","tag-grails","tag-grails-taglib"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"(based on Tom\u00e1s Lin\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces &quot;abc&quot;; def testLink = {attrs,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Hitesh Bhatia\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/tothenewco.pro\/blog\/test-link\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Test Link | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"(based on Tom\u00e1s Lin\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces &quot;abc&quot;; def testLink = {attrs,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/tothenewco.pro\/blog\/test-link\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Test Link | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"(based on Tom\u00e1s Lin\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces &quot;abc&quot;; def testLink = {attrs,\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#article\",\"name\":\"Test Link | TO THE NEW Blog\",\"headline\":\"Test Link\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/hitesh\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2010-04-19T11:51:56+05:30\",\"dateModified\":\"2016-12-19T15:29:12+05:30\",\"inLanguage\":\"en-US\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#webpage\"},\"articleSection\":\"Grails, Grails, grails taglib\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#listItem\",\"name\":\"Test Link\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#listItem\",\"position\":3,\"name\":\"Test Link\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/hitesh\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/hitesh\\\/\",\"name\":\"Hitesh Bhatia\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/480688fa251da2d21002803e0b349c1fe911842715b972676a1aa3cb12808e58?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Hitesh Bhatia\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/\",\"name\":\"Test Link | TO THE NEW Blog\",\"description\":\"(based on Tom\\u00e1s Lin\\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces \\\"abc\\\"; def testLink = {attrs,\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/test-link\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/hitesh\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/hitesh\\\/#author\"},\"datePublished\":\"2010-04-19T11:51:56+05:30\",\"dateModified\":\"2016-12-19T15:29:12+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Test Link | TO THE NEW Blog","description":"(based on Tom\u00e1s Lin\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces \"abc\"; def testLink = {attrs,","canonical_url":"https:\/\/tothenewco.pro\/blog\/test-link\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#article","name":"Test Link | TO THE NEW Blog","headline":"Test Link","author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/hitesh\/#author"},"publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"},"datePublished":"2010-04-19T11:51:56+05:30","dateModified":"2016-12-19T15:29:12+05:30","inLanguage":"en-US","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#webpage"},"isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#webpage"},"articleSection":"Grails, Grails, grails taglib"},{"@type":"BreadcrumbList","@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/tothenewco.pro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/tothenewco.pro\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#listItem","name":"Test Link"},"previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#listItem","position":3,"name":"Test Link","previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/tothenewco.pro\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/tothenewco.pro\/blog\/"},{"@type":"Person","@id":"https:\/\/tothenewco.pro\/blog\/author\/hitesh\/#author","url":"https:\/\/tothenewco.pro\/blog\/author\/hitesh\/","name":"Hitesh Bhatia","image":{"@type":"ImageObject","@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/480688fa251da2d21002803e0b349c1fe911842715b972676a1aa3cb12808e58?s=96&d=mm&r=g","width":96,"height":96,"caption":"Hitesh Bhatia"}},{"@type":"WebPage","@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#webpage","url":"https:\/\/tothenewco.pro\/blog\/test-link\/","name":"Test Link | TO THE NEW Blog","description":"(based on Tom\u00e1s Lin\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces \"abc\"; def testLink = {attrs,","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/tothenewco.pro\/blog\/test-link\/#breadcrumblist"},"author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/hitesh\/#author"},"creator":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/hitesh\/#author"},"datePublished":"2010-04-19T11:51:56+05:30","dateModified":"2016-12-19T15:29:12+05:30"},{"@type":"WebSite","@id":"https:\/\/tothenewco.pro\/blog\/#website","url":"https:\/\/tothenewco.pro\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Test Link | TO THE NEW Blog","og:description":"(based on Tom\u00e1s Lin\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces &quot;abc&quot;; def testLink = {attrs,","og:url":"https:\/\/tothenewco.pro\/blog\/test-link\/","og:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Test Link | TO THE NEW Blog","twitter:description":"(based on Tom\u00e1s Lin\u2019s truthlink) This is useful when one requires link on certain condition. Instead of first using condition tag and then tag for link these can be combined into one using taglib. text or Text Other way of doing this is by using taglib. class AbcTagLib { namespaces &quot;abc&quot;; def testLink = {attrs,","twitter:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"558","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-29 15:32:46","updated":"2024-02-29 09:26:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tTest Link\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/tothenewco.pro\/blog"},{"label":"Grails","link":"https:\/\/tothenewco.pro\/blog\/category\/grails\/"},{"label":"Test Link","link":"https:\/\/tothenewco.pro\/blog\/test-link\/"}],"_links":{"self":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/comments?post=558"}],"version-history":[{"count":0,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/558\/revisions"}],"wp:attachment":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/media?parent=558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/categories?post=558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/tags?post=558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}