Plugin Directory

Changeset 3337229


Ignore:
Timestamp:
07/31/2025 11:29:26 AM (8 months ago)
Author:
aegkr
Message:

Tested up to 6.8.2

Location:
entire-blocks/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • entire-blocks/trunk/build/block.json

    r2741301 r3337229  
    7171  },
    7272  "supports": {
    73     "html": false
     73    "html": false,
     74    "color": false
    7475  },
    7576  "textdomain": "entire-block",
  • entire-blocks/trunk/build/index.asset.php

    r2741301 r3337229  
    1 <?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '0c1346ade5d9ef2aa3dfad5df67750f7');
     1<?php return array('dependencies' => array('react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n'), 'version' => '35e4182ab0c6c0266363');
  • entire-blocks/trunk/build/index.js

    r2741301 r3337229  
    1 !function(){"use strict";var e,t={8:function(e,t,n){var o=window.wp.blocks;function l(){return l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},l.apply(this,arguments)}var r=window.wp.element,i=window.wp.i18n,a=window.wp.components,s=window.React,c=window.wp.apiFetch,u=n.n(c),p=window.wp.blockEditor,d=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"create-block/entire-blocks","version":"0.1.0","title":"Entire - WordPress Gutenberg Blocks","category":"design","icon":"admin-post","description":"Entire - WordPress Gutenberg Blocks plugin for creating fully customized News, Magazines, Websites, Personal Blogs, Travel Blogs, Fashion Blogs, Viral News, Food Reviews, Recipes Blogs, etc.","attributes":{"title":{"type":"string","default":"Blogs"},"description":{"type":"string","default":"Blog description"},"showBlog":{"type":"boolean","default":true},"displayThumbnails":{"type":"boolean","default":true},"blogColumns":{"type":"integer","default":2},"noOfPost":{"type":"integer","default":0},"alignment":{"type":"string","default":"none"},"backgroundColor":{"type":"string","default":"#ff0000"},"titleColorList":{"type":"string","default":"inherit"},"descriptionColorList":{"type":"string","default":"inherit"},"readMoreText":{"type":"string","default":"Read More >>"},"readMoreColor":{"type":"string","default":"inherit"},"paginationType":{"type":"string","default":"load"},"paginationColor":{"type":"string","default":"inherit"},"paginationBackgroundColor":{"type":"string","default":"inherit"}},"supports":{"html":false},"textdomain":"entire-block","editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css"}');const{name:g}=d;(0,o.registerBlockType)(g,{example:{attributes:{}},edit:function(e){const{attributes:t,setAttributes:n,isSelected:o}=e,[c,d]=(0,s.useState)(""),[g,m]=(0,s.useState)(t.showBlog),[C,h]=(0,s.useState)(t.displayThumbnails);(0,s.useEffect)((()=>{!async function(){const e=await u()({path:`/getPosts/v1/getHTML?showBlog=${t.showBlog}&displayThumbnails=${t.displayThumbnails}&noOfPost=${t.noOfPost}&blogColumns=${t.blogColumns}&titleColorList=${encodeURIComponent(t.titleColorList)}&descriptionColorList=${encodeURIComponent(t.descriptionColorList)}&readMoreText=${t.readMoreText}&readMoreColor=${encodeURIComponent(t.readMoreColor)}&paginationType=${t.paginationType}&paginationColor=${encodeURIComponent(t.paginationColor)}&paginationBackgroundColor=${encodeURIComponent(t.paginationBackgroundColor)}`,method:"GET"});d(e)}()}),[t.showBlog,t.displayThumbnails,t.noOfPost,t.blogColumns,t.titleColorList,t.descriptionColorList,t.readMoreText,t.readMoreColor,t.paginationType,t.paginationColor,t.paginationBackgroundColor]);const b=(0,p.useBlockProps)();return(0,r.createElement)("div",b,o&&(0,r.createElement)(p.InspectorControls,{style:{marginBottom:"40px"}},(0,r.createElement)(a.Panel,{header:"Blog Styles"},(0,r.createElement)(a.PanelBody,{title:"Blog Settings",initialOpen:!0},(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.ToggleControl,{label:(0,i.__)("Show Blog On Page","entire-blocks"),help:g?(0,i.__)("Show Blog.","entire-blocks"):(0,i.__)("Hide Blog.","entire-blocks"),checked:g,onChange:e=>{n({showBlog:!0===e}),m(e)}})),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.ToggleControl,{label:(0,i.__)("Show Thumbnail","entire-blocks"),help:C?(0,i.__)("Show Thumbnail","entire-blocks"):(0,i.__)("Hide Thumbnail.","entire-blocks"),checked:C,onChange:e=>{h(e),n({displayThumbnails:!0===e})}})),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.RangeControl,{label:(0,i.__)("No. of Posts","entire-blocks"),value:t.noOfPost,onChange:e=>n({noOfPost:e}),min:-1,max:20,step:1})),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.RangeControl,{label:(0,i.__)("No. of columns...","entire-blocks"),value:t.blogColumns,onChange:e=>{n({blogColumns:e})},min:1,max:4,step:1})),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.TextControl,{label:(0,i.__)("Read More Text...","entire-blocks"),value:t.readMoreText,onChange:e=>n({readMoreText:e})}))),(0,r.createElement)(a.PanelBody,{title:"Color",initialOpen:!1},(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("p",null,(0,r.createElement)("strong",null,(0,i.__)("Title Color","entire-blocks")),(0,r.createElement)(a.ColorPalette,{label:(0,i.__)("List Title Color","entire-blocks"),value:t.titleColorList,onChange:e=>{n({titleColorList:void 0===e?"inherit":e})}}))),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("p",null,(0,r.createElement)("strong",null,(0,i.__)("Description Color","entire-blocks")),(0,r.createElement)(a.ColorPalette,{value:t.descriptionColorList,onChange:e=>{n({descriptionColorList:void 0===e?"inherit":e})}}))),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("p",null,(0,r.createElement)("strong",null,(0,i.__)("Read More Color","entire-blocks")),(0,r.createElement)(a.ColorPalette,{label:(0,i.__)("List Title Color","entire-blocks"),value:t.readMoreColor,onChange:e=>{n({readMoreColor:void 0===e?"inherit":e})}})))),(0,r.createElement)(a.PanelBody,{title:"Pagination",initialOpen:!1},(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("p",null,(0,r.createElement)("strong",null,(0,i.__)("Text Color","entire-blocks")),(0,r.createElement)(a.ColorPalette,{value:t.paginationColor,onChange:e=>{n({paginationColor:void 0===e?"inherit":e})}}))),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("p",null,(0,r.createElement)("strong",null,"Background Color"),(0,r.createElement)(a.ColorPalette,{label:(0,i.__)("Background Color","entire-blocks"),value:t.paginationBackgroundColor,onChange:e=>{n({paginationBackgroundColor:void 0===e?"inherit":e})}})))))),(0,r.createElement)(p.BlockControls,null,(0,r.createElement)(p.AlignmentToolbar,{value:t.alignment,onChange:e=>n({alignment:e})})),(0,r.createElement)("div",{style:{textAlign:t.alignment}},(0,r.createElement)(p.RichText,l({},b,{tagName:"h2",value:t.title,onChange:e=>n({title:e}),placeholder:(0,i.__)("Section Title...","entire-blocks")})),(0,r.createElement)(p.RichText,l({},b,{tagName:"p",value:t.description,onChange:e=>n({description:e}),placeholder:(0,i.__)("Section Description...","entire-blocks")}))),(0,r.createElement)(a.Disabled,null,(0,r.createElement)("div",{dangerouslySetInnerHTML:{__html:c}})))},save:()=>null})}},n={};function o(e){var l=n[e];if(void 0!==l)return l.exports;var r=n[e]={exports:{}};return t[e](r,r.exports,o),r.exports}o.m=t,e=[],o.O=function(t,n,l,r){if(!n){var i=1/0;for(u=0;u<e.length;u++){n=e[u][0],l=e[u][1],r=e[u][2];for(var a=!0,s=0;s<n.length;s++)(!1&r||i>=r)&&Object.keys(o.O).every((function(e){return o.O[e](n[s])}))?n.splice(s--,1):(a=!1,r<i&&(i=r));if(a){e.splice(u--,1);var c=l();void 0!==c&&(t=c)}}return t}r=r||0;for(var u=e.length;u>0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[n,l,r]},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={826:0,431:0};o.O.j=function(t){return 0===e[t]};var t=function(t,n){var l,r,i=n[0],a=n[1],s=n[2],c=0;if(i.some((function(t){return 0!==e[t]}))){for(l in a)o.o(a,l)&&(o.m[l]=a[l]);if(s)var u=s(o)}for(t&&t(n);c<i.length;c++)r=i[c],o.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return o.O(u)},n=self.webpackChunkentire_blocks=self.webpackChunkentire_blocks||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var l=o.O(void 0,[431],(function(){return o(8)}));l=o.O(l)}();
     1(()=>{"use strict";var e,o={3:(e,o,n)=>{const l=window.wp.blocks,t=window.wp.i18n,i=window.wp.components,r=window.React,s=window.wp.apiFetch;var a=n.n(s);const c=window.wp.blockEditor,d=window.ReactJSXRuntime,h=JSON.parse('{"UU":"create-block/entire-blocks"}'),{UU:g}=h;(0,l.registerBlockType)(g,{example:{attributes:{}},edit:function(e){const{attributes:o,setAttributes:n,isSelected:l}=e,[s,h]=(0,r.useState)(""),[g,p]=(0,r.useState)(o.showBlog),[C,u]=(0,r.useState)(o.displayThumbnails);(0,r.useEffect)(()=>{!async function(){const e=await a()({path:`/getPosts/v1/getHTML?showBlog=${o.showBlog}&displayThumbnails=${o.displayThumbnails}&noOfPost=${o.noOfPost}&blogColumns=${o.blogColumns}&titleColorList=${encodeURIComponent(o.titleColorList)}&descriptionColorList=${encodeURIComponent(o.descriptionColorList)}&readMoreText=${o.readMoreText}&readMoreColor=${encodeURIComponent(o.readMoreColor)}&paginationType=${o.paginationType}&paginationColor=${encodeURIComponent(o.paginationColor)}&paginationBackgroundColor=${encodeURIComponent(o.paginationBackgroundColor)}`,method:"GET"});h(e)}()},[o.showBlog,o.displayThumbnails,o.noOfPost,o.blogColumns,o.titleColorList,o.descriptionColorList,o.readMoreText,o.readMoreColor,o.paginationType,o.paginationColor,o.paginationBackgroundColor]);const x=(0,c.useBlockProps)();return(0,d.jsxs)("div",{...x,children:[l&&(0,d.jsx)(c.InspectorControls,{style:{marginBottom:"40px"},children:(0,d.jsxs)(i.Panel,{header:"Blog Styles",children:[(0,d.jsxs)(i.PanelBody,{title:"Blog Settings",initialOpen:!0,children:[(0,d.jsx)(i.PanelRow,{children:(0,d.jsx)(i.ToggleControl,{label:(0,t.__)("Show Blog On Page","entire-blocks"),help:g?(0,t.__)("Show Blog.","entire-blocks"):(0,t.__)("Hide Blog.","entire-blocks"),checked:g,onChange:e=>{n({showBlog:!0===e}),p(e)}})}),(0,d.jsx)(i.PanelRow,{children:(0,d.jsx)(i.ToggleControl,{label:(0,t.__)("Show Thumbnail","entire-blocks"),help:C?(0,t.__)("Show Thumbnail","entire-blocks"):(0,t.__)("Hide Thumbnail.","entire-blocks"),checked:C,onChange:e=>{u(e),n({displayThumbnails:!0===e})}})}),(0,d.jsx)(i.PanelRow,{children:(0,d.jsx)(i.RangeControl,{label:(0,t.__)("No. of Posts","entire-blocks"),value:o.noOfPost,onChange:e=>n({noOfPost:e}),min:-1,max:20,step:1})}),(0,d.jsx)(i.PanelRow,{children:(0,d.jsx)(i.RangeControl,{label:(0,t.__)("No. of columns...","entire-blocks"),value:o.blogColumns,onChange:e=>{n({blogColumns:e})},min:1,max:4,step:1})}),(0,d.jsx)(i.PanelRow,{children:(0,d.jsx)(i.TextControl,{label:(0,t.__)("Read More Text...","entire-blocks"),value:o.readMoreText,onChange:e=>n({readMoreText:e})})})]}),(0,d.jsxs)(i.PanelBody,{title:"Color",initialOpen:!1,children:[(0,d.jsx)(i.PanelRow,{children:(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:(0,t.__)("Title Color","entire-blocks")}),(0,d.jsx)(i.ColorPalette,{label:(0,t.__)("List Title Color","entire-blocks"),value:o.titleColorList,onChange:e=>{n({titleColorList:void 0===e?"inherit":e})}})]})}),(0,d.jsx)(i.PanelRow,{children:(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:(0,t.__)("Description Color","entire-blocks")}),(0,d.jsx)(i.ColorPalette,{value:o.descriptionColorList,onChange:e=>{n({descriptionColorList:void 0===e?"inherit":e})}})]})}),(0,d.jsx)(i.PanelRow,{children:(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:(0,t.__)("Read More Color","entire-blocks")}),(0,d.jsx)(i.ColorPalette,{label:(0,t.__)("List Title Color","entire-blocks"),value:o.readMoreColor,onChange:e=>{n({readMoreColor:void 0===e?"inherit":e})}})]})})]}),(0,d.jsxs)(i.PanelBody,{title:"Pagination",initialOpen:!1,children:[(0,d.jsx)(i.PanelRow,{children:(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:(0,t.__)("Text Color","entire-blocks")}),(0,d.jsx)(i.ColorPalette,{value:o.paginationColor,onChange:e=>{n({paginationColor:void 0===e?"inherit":e})}})]})}),(0,d.jsx)(i.PanelRow,{children:(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:"Background Color"}),(0,d.jsx)(i.ColorPalette,{label:(0,t.__)("Background Color","entire-blocks"),value:o.paginationBackgroundColor,onChange:e=>{n({paginationBackgroundColor:void 0===e?"inherit":e})}})]})})]})]})}),(0,d.jsx)(c.BlockControls,{children:(0,d.jsx)(c.AlignmentToolbar,{value:o.alignment,onChange:e=>n({alignment:e})})}),(0,d.jsxs)("div",{style:{textAlign:o.alignment},children:[(0,d.jsx)(c.RichText,{...x,tagName:"h2",value:o.title,onChange:e=>n({title:e}),placeholder:(0,t.__)("Section Title...","entire-blocks")}),(0,d.jsx)(c.RichText,{...x,tagName:"p",value:o.description,onChange:e=>n({description:e}),placeholder:(0,t.__)("Section Description...","entire-blocks")})]}),(0,d.jsx)(i.Disabled,{children:(0,d.jsx)("div",{dangerouslySetInnerHTML:{__html:s}})})]})},save:()=>null})}},n={};function l(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return o[e](i,i.exports,l),i.exports}l.m=o,e=[],l.O=(o,n,t,i)=>{if(!n){var r=1/0;for(d=0;d<e.length;d++){for(var[n,t,i]=e[d],s=!0,a=0;a<n.length;a++)(!1&i||r>=i)&&Object.keys(l.O).every(e=>l.O[e](n[a]))?n.splice(a--,1):(s=!1,i<r&&(r=i));if(s){e.splice(d--,1);var c=t();void 0!==c&&(o=c)}}return o}i=i||0;for(var d=e.length;d>0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[n,t,i]},l.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return l.d(o,{a:o}),o},l.d=(e,o)=>{for(var n in o)l.o(o,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})},l.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),(()=>{var e={57:0,350:0};l.O.j=o=>0===e[o];var o=(o,n)=>{var t,i,[r,s,a]=n,c=0;if(r.some(o=>0!==e[o])){for(t in s)l.o(s,t)&&(l.m[t]=s[t]);if(a)var d=a(l)}for(o&&o(n);c<r.length;c++)i=r[c],l.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return l.O(d)},n=globalThis.webpackChunkentire_blocks=globalThis.webpackChunkentire_blocks||[];n.forEach(o.bind(null,0)),n.push=o.bind(null,n.push.bind(n))})();var t=l.O(void 0,[350],()=>l(3));t=l.O(t)})();
  • entire-blocks/trunk/entire-blocks.php

    r2741301 r3337229  
    11<?php
    22/**
    3  * Plugin Name:       Entire Blocks 
     3 * Plugin Name:       Entire Blocks
    44 * Description:       Entire - WordPress Gutenberg Blocks plugin for creating amazing WordPress page with grid layout latest posts. It has color options to make it professional.
    5  * Version:           1.0.0
     5 * Version:           1.0.1
    66 * Author:            Birendra Maharjan
    7  * Requires at least: 5.8
    8  * Requires PHP:      7.0
     7 * Requires at least: 6.3
     8 * Requires PHP:      7.4
    99 * License:           GPL-2.0-or-later
    1010 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
     
    3838
    3939            add_action( 'rest_api_init', array( $this, 'entire_get_post_data' ) );
    40 
    41             add_action( "wp_ajax_load_ajax_archive_list", array( $this, "load_ajax_archive_list" ) );
    42             add_action( "wp_ajax_nopriv_load_ajax_archive_list", array( $this, "load_ajax_archive_list" ) );
    43 
    4440        }
    4541
  • entire-blocks/trunk/inc/entire-generate-post-html.php

    r2741301 r3337229  
    22function entire_generate_post_html( $data ) {
    33    ob_start();
     4
    45
    56    $noOfPost    = intval( $data['noOfPost'] );
     
    1819    ?>
    1920    <style>
    20        .entire-blocks-section-title {
     21        .entire-blocks-section-title {
    2122            text-align: <?php echo esc_attr($data['alignment']); ?>
    2223        }
     24
    2325        .entire-blocks-section .list-item-wrap .list-item {
    2426            flex: 0 0 <?php echo esc_attr(100 / $blogColumns); ?>%;
    2527            /*max-width: < ?php echo esc_attr(100 / $blogColumns); ?>%;*/
    2628        }
     29
    2730        .entire-blocks-section .list-item-desc a {
    2831            color: <?php echo esc_attr($data['titleColorList']); ?>
    2932        }
     33
    3034        .entire-blocks-section .list-item-desc p {
    3135            color: <?php echo esc_attr($data['descriptionColorList']); ?>
    3236        }
     37
    3338        .entire-blocks-section .btn-wrap a {
    3439            color: <?php echo esc_attr($data['readMoreColor']); ?>
     
    5257                    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    5358                        <div class="list-item" id="post-<?php the_ID(); ?>">
    54                             <div class="entire-blocks-card entire-blocks-box-shadow">
     59                            <div class="entire-blocks-card entire-blocks-box-shadow">
    5560                                <?php if ( has_post_thumbnail() && $data['displayThumbnails'] == 'true' ): ?>
    5661                                    <div class="list-item-img">
  • entire-blocks/trunk/readme.txt

    r2741301 r3337229  
    22Contributors:      aegkr, kafleg
    33Tags:              block, gutenberg, post-grid
    4 Tested up to:      6.0
    5 Stable tag:        1.0.0
     4Tested up to:      6.8.2
     5Stable tag:        1.0.1
    66License:           GPL-2.0-or-later
    77License URI:       https://www.gnu.org/licenses/gpl-2.0.html
    88
    9 Entire Blocks is a new Gutenberg blocks to show the latest post in the WordPress page and post. It has color option, column settings, and more. 
     9Entire Blocks is a new Gutenberg blocks to show the latest post in the WordPress page and post. It has color option, column settings, and more.
    1010
    1111== Description ==
    12 Entire Blocks is a new Gutenberg blocks to show the latest post in the WordPress page and post. It has color option, column settings, and more. 
     12Entire Blocks is a new Gutenberg blocks to show the latest post in the WordPress page and post. It has color option, column settings, and more.
    1313
    1414
     
    20201. Visit 'Plugins > Add New'
    21212. Search for Entire Blocks
    22 3. Activate Entire Blocks plugin from your Plugins page. 
     223. Activate Entire Blocks plugin from your Plugins page.
    23234. Go to the Page and find Entire Blocks block.
    24245. Add in your page or post.
     
    28281. Download entire-blocks.
    29292. Upload the 'entire-blocks' directory to your '/wp-content/plugins/' directory, using your favorite method (ftp, sftp, scp, etc...)
    30 3. Activate Entire Blocks from your Plugins page. 
     303. Activate Entire Blocks from your Plugins page.
    3131
    3232
    3333== Frequently Asked Questions ==
    34 1. Where I can see the Settings? 
    35 Go to the WordPress Gutenberg page editor and find the blocks. 
     341. Where I can see the Settings?
     35Go to the WordPress Gutenberg page editor and find the blocks.
    3636
    3737== Changelog ==
    3838
     39= 1.0.1 2025-07-31 =
     40* Update packages
     41
    3942= 1.0.0 =
    4043* Submitted on .org
  • entire-blocks/trunk/src/block.json

    r2801118 r3337229  
    7575  },
    7676  "textdomain": "entire-block",
    77   "viewScript": "file:./main.js",
    7877  "editorScript": "file:./index.js",
    7978  "editorStyle": "file:./index.css",
  • entire-blocks/trunk/src/edit.js

    r2801118 r3337229  
    165165                        </PanelBody>
    166166                        <PanelBody title="Pagination" initialOpen={false}>
    167                             <PanelRow>
    168                                 <SelectControl
    169                                     label="Pagination Type"
    170                                     value={attributes.paginationType}
    171                                     options={[
    172                                         { label: __('Number', 'entire-blocks'), value: 'number' },
    173                                         { label: __('Ajax', 'entire-blocks'), value: 'ajax' },
    174                                         { label: __('Load More', 'entire-blocks'), value: 'load' },
    175                                     ]}
    176                                     onChange={(val) => setAttributes({ paginationType: val })}
    177                                 />
    178                             </PanelRow>
    179167                            <PanelRow>
    180168                                <p>
Note: See TracChangeset for help on using the changeset viewer.