Changeset 3411118
- Timestamp:
- 12/04/2025 03:21:48 PM (3 months ago)
- Location:
- answer-engine-optimization
- Files:
-
- 18 added
- 8 deleted
- 10 edited
-
tags/1.0.0/answer-engine-optimization.php (modified) (2 diffs)
-
tags/1.0.0/assets/css/aeo-admin.css (modified) (8 diffs)
-
tags/1.0.0/assets/css/aeo-frontend.css (added)
-
tags/1.0.0/assets/js/aeo-admin.js (modified) (2 diffs)
-
tags/1.0.0/assets/js/aeo-questions.js (modified) (2 diffs)
-
tags/1.0.0/includes/admin (added)
-
tags/1.0.0/includes/admin/class-aeo-admin.php (added)
-
tags/1.0.0/includes/admin/class-aeo-meta-box.php (added)
-
tags/1.0.0/includes/admin/class-aeo-questions.php (added)
-
tags/1.0.0/includes/class-aeo-admin.php (deleted)
-
tags/1.0.0/includes/class-aeo-frontend.php (deleted)
-
tags/1.0.0/includes/class-aeo-questions.php (deleted)
-
tags/1.0.0/includes/class-aeo-schema.php (deleted)
-
tags/1.0.0/includes/class-answer-engine-optimization.php (added)
-
tags/1.0.0/includes/frontend (added)
-
tags/1.0.0/includes/frontend/class-aeo-frontend.php (added)
-
tags/1.0.0/includes/frontend/class-aeo-schema.php (added)
-
tags/1.0.0/readme.txt (modified) (2 diffs)
-
trunk/answer-engine-optimization.php (modified) (2 diffs)
-
trunk/assets/css/aeo-admin.css (modified) (8 diffs)
-
trunk/assets/css/aeo-frontend.css (added)
-
trunk/assets/js/aeo-admin.js (modified) (2 diffs)
-
trunk/assets/js/aeo-questions.js (modified) (2 diffs)
-
trunk/includes/admin (added)
-
trunk/includes/admin/class-aeo-admin.php (added)
-
trunk/includes/admin/class-aeo-meta-box.php (added)
-
trunk/includes/admin/class-aeo-questions.php (added)
-
trunk/includes/class-aeo-admin.php (deleted)
-
trunk/includes/class-aeo-frontend.php (deleted)
-
trunk/includes/class-aeo-questions.php (deleted)
-
trunk/includes/class-aeo-schema.php (deleted)
-
trunk/includes/class-answer-engine-optimization.php (added)
-
trunk/includes/frontend (added)
-
trunk/includes/frontend/class-aeo-frontend.php (added)
-
trunk/includes/frontend/class-aeo-schema.php (added)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
answer-engine-optimization/tags/1.0.0/answer-engine-optimization.php
r3295060 r3411118 2 2 /** 3 3 * Plugin Name: Answer Engine Optimization 4 * Plugin URI: https://tarikul. blog/uncategorized/answer-engine-optimization/4 * Plugin URI: https://tarikul.top/plugins/answer-engine-optimization/ 5 5 * Description: Optimize your content for answer engines and featured snippets. 6 6 * Version: 1.0.0 … … 8 8 * Requires PHP: 7.2 9 9 * Author: Tarikul Islam Riko 10 * Author URI: https://tarikul. blog/10 * Author URI: https://tarikul.top/ 11 11 * License: GPL v2 or later 12 12 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt 13 13 * Text Domain: answer-engine-optimization 14 * Domain Path: /languages 14 15 */ 15 16 16 // If this file is called directly, abort. 17 if (!defined('WPINC')) { 18 die; 19 } 17 defined( 'ABSPATH' ) || exit; 20 18 21 // Define plugin constants 22 define('AEO_VERSION', '1.0.0'); 23 define('AEO_PLUGIN_DIR', plugin_dir_path(__FILE__)); 24 define('AEO_PLUGIN_URL', plugin_dir_url(__FILE__)); 19 require_once __DIR__ . '/includes/class-answer-engine-optimization.php'; 25 20 26 // Include the main plugin classes 27 require_once AEO_PLUGIN_DIR . 'includes/class-aeo-admin.php'; 28 require_once AEO_PLUGIN_DIR . 'includes/class-aeo-frontend.php'; 29 require_once AEO_PLUGIN_DIR . 'includes/class-aeo-questions.php'; 30 require_once AEO_PLUGIN_DIR . 'includes/class-aeo-schema.php'; 31 32 // Initialize the plugin 21 /** 22 * Initializing Plugin. 23 * 24 * @since 1.0.0 25 * @retun Object Plugin object. 26 */ 33 27 function aeo_init() { 34 $admin = new AEO_Admin(); 35 $frontend = new AEO_Frontend(); 36 $questions = new AEO_Questions(); 37 $schema = new AEO_Schema(); 38 39 // Register activation/deactivation hooks 40 register_activation_hook(__FILE__, array($admin, 'activate')); 41 register_deactivation_hook(__FILE__, array($admin, 'deactivate')); 28 return Answer_Engine_Optimization::get_instance(__FILE__); 42 29 } 43 30 add_action('plugins_loaded', 'aeo_init'); -
answer-engine-optimization/tags/1.0.0/assets/css/aeo-admin.css
r3295060 r3411118 11 11 } 12 12 13 .aeo-field:last-child { 14 margin-bottom: 0; 15 } 16 13 17 .aeo-field label { 14 18 display: block; 15 19 margin-bottom: 5px; 16 20 font-weight: 600; 21 font-size: 14px; 17 22 } 18 23 … … 21 26 font-style: italic; 22 27 margin-top: 5px; 28 font-size: 13px; 29 } 30 31 .aeo-field input[type="text"], 32 .aeo-field textarea { 33 width: 100%; 23 34 } 24 35 … … 26 37 .aeo-faq-item { 27 38 margin-bottom: 15px; 28 padding: 1 0px;39 padding: 15px; 29 40 background: #fff; 30 41 border: 1px solid #e5e5e5; 42 border-radius: 3px; 31 43 box-shadow: 0 1px 1px rgba(0,0,0,0.04); 32 44 } … … 35 47 .aeo-faq-item textarea { 36 48 margin-bottom: 8px; 49 } 50 51 .aeo-faq-item input[type="text"] { 52 font-weight: 600; 37 53 } 38 54 … … 41 57 color: white; 42 58 border-color: #dc3232; 43 } 44 45 .aeo-remove-faq:hover { 59 margin-top: 5px; 60 } 61 62 .aeo-remove-faq:hover, 63 .aeo-remove-faq:focus { 46 64 background: #a00; 47 65 border-color: #a00; 48 66 color: white; 67 } 68 69 #aeo-add-faq { 70 margin-right: 10px; 49 71 } 50 72 … … 58 80 width: 100%; 59 81 height: 100%; 60 background-color: rgba(0,0,0,0.4); 82 background-color: rgba(0,0,0,0.5); 83 overflow: auto; 61 84 } 62 85 63 86 .aeo-modal-content { 64 87 background-color: #fefefe; 65 margin: 5% auto; 88 margin: 50px auto; 89 padding: 0; 90 border: 1px solid #888; 91 width: 90%; 92 max-width: 700px; 93 box-shadow: 0 4px 20px rgba(0,0,0,0.3); 94 border-radius: 3px; 95 animation: slideIn 0.3s ease-out; 96 } 97 98 @keyframes slideIn { 99 from { 100 transform: translateY(-50px); 101 opacity: 0; 102 } 103 to { 104 transform: translateY(0); 105 opacity: 1; 106 } 107 } 108 109 .aeo-modal-header { 66 110 padding: 20px; 67 border: 1px solid #888;68 width: 80%;69 max-width: 800px;70 box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);71 }72 73 .aeo-modal-header {74 padding: 10px 0;75 111 border-bottom: 1px solid #ddd; 76 margin-bottom: 15px; 112 background: #f9f9f9; 113 position: relative; 77 114 } 78 115 … … 81 118 padding: 0; 82 119 font-size: 20px; 120 line-height: 1.4; 83 121 } 84 122 85 123 .aeo-modal-close { 86 color: #aaa; 87 float: right; 124 position: absolute; 125 right: 15px; 126 top: 15px; 127 color: #666; 88 128 font-size: 28px; 89 129 font-weight: bold; 90 130 cursor: pointer; 91 } 92 93 .aeo-modal-close:hover { 94 color: black; 131 line-height: 1; 132 transition: color 0.2s; 133 } 134 135 .aeo-modal-close:hover, 136 .aeo-modal-close:focus { 137 color: #000; 95 138 } 96 139 97 140 .aeo-modal-body { 98 padding: 10px 0; 99 margin-bottom: 15px; 141 padding: 20px; 142 max-height: 400px; 143 overflow-y: auto; 144 } 145 146 .aeo-modal-body > p:first-child { 147 margin-top: 0; 100 148 } 101 149 102 150 .aeo-modal-footer { 103 padding: 1 0px 0;151 padding: 15px 20px; 104 152 border-top: 1px solid #ddd; 105 153 text-align: right; 154 background: #f9f9f9; 155 } 156 157 .aeo-modal-footer .button { 158 margin-left: 10px; 106 159 } 107 160 108 161 /* Questions list */ 162 #aeo-questions-list { 163 margin: 15px 0; 164 padding: 0; 165 } 166 109 167 .aeo-question-item { 110 padding: 8px 0;168 padding: 10px; 111 169 border-bottom: 1px solid #eee; 170 transition: background-color 0.2s; 171 } 172 173 .aeo-question-item:hover { 174 background-color: #f9f9f9; 112 175 } 113 176 … … 118 181 .aeo-question-item label { 119 182 display: flex; 120 align-items: center;183 align-items: flex-start; 121 184 cursor: pointer; 185 margin: 0; 186 font-weight: normal; 122 187 } 123 188 124 189 .aeo-question-item input[type="checkbox"] { 125 190 margin-right: 10px; 191 margin-top: 2px; 192 flex-shrink: 0; 193 } 194 195 #aeo-generate-questions { 196 margin-top: 15px; 197 } 198 199 #aeo-generate-questions:disabled { 200 opacity: 0.6; 201 cursor: not-allowed; 126 202 } 127 203 128 204 /* Settings page */ 129 205 .settings_page_answer-engine-optimization textarea { 130 width: 100%; 131 max-width: 600px; 206 font-family: monospace; 132 207 } 133 208 134 209 .aeo-example-questions { 135 margin-left: 10px; 136 } 210 margin-top: 5px; 211 } 212 213 /* Responsive */ 214 @media screen and (max-width: 782px) { 215 .aeo-modal-content { 216 width: 95%; 217 margin: 20px auto; 218 } 219 220 .aeo-modal-body { 221 max-height: 300px; 222 } 223 224 .aeo-faq-item { 225 padding: 10px; 226 } 227 } -
answer-engine-optimization/tags/1.0.0/assets/js/aeo-admin.js
r3295060 r3411118 4 4 var faqItem = ` 5 5 <div class="aeo-faq-item"> 6 <input type="text" name="aeo_faq_question[]" placeholder=" <?php _e('Question', 'answer-engine-optimization'); ?>" class="widefat">7 <textarea name="aeo_faq_answer[]" rows="2" placeholder=" <?php _e('Answer', 'answer-engine-optimization'); ?>" class="widefat"></textarea>8 <button type="button" class="button aeo-remove-faq"> <?php _e('Remove', 'answer-engine-optimization'); ?></button>6 <input type="text" name="aeo_faq_question[]" placeholder="Question" class="widefat"> 7 <textarea name="aeo_faq_answer[]" rows="2" placeholder="Answer" class="widefat"></textarea> 8 <button type="button" class="button aeo-remove-faq">Remove</button> 9 9 </div> 10 10 `; … … 111 111 <input type="text" name="aeo_faq_question[]" value="${question}" class="widefat"> 112 112 <textarea name="aeo_faq_answer[]" rows="2" class="widefat"></textarea> 113 <button type="button" class="button aeo-remove-faq"> <?php _e('Remove', 'answer-engine-optimization'); ?></button>113 <button type="button" class="button aeo-remove-faq">Remove</button> 114 114 </div> 115 115 `; -
answer-engine-optimization/tags/1.0.0/assets/js/aeo-questions.js
r3295060 r3411118 57 57 complete: function() { 58 58 $('#aeo-generate-questions').prop('disabled', false) 59 .text(' <?php _e("Generate More Questions", "answer-engine-optimization"); ?>');59 .text('Generate More Questions'); 60 60 } 61 61 }); … … 90 90 <input type="text" name="aeo_faq_question[]" value="${question}" class="widefat"> 91 91 <textarea name="aeo_faq_answer[]" rows="2" class="widefat"></textarea> 92 <button type="button" class="button aeo-remove-faq"> <?php _e('Remove', 'answer-engine-optimization'); ?></button>92 <button type="button" class="button aeo-remove-faq">Remove</button> 93 93 </div> 94 94 `; -
answer-engine-optimization/tags/1.0.0/readme.txt
r3322708 r3411118 1 1 === Answer Engine Optimization === 2 2 Contributors: riko910 3 Tags: seo, optimization, answer engine optimization, voice search, aeo3 Tags: seo, optimization, answer engine, featured snippets, voice search, schema markup 4 4 Requires at least: 6.5 5 Tested up to: 6. 85 Tested up to: 6.9 6 6 Requires PHP: 7.2 7 7 Stable tag: 1.0.0 … … 79 79 == Additional Information == 80 80 81 For support, visit [https://tarikul. blog](https://tarikul.blog) or contact via [support@tarikul.blog](mailto:support@tarikul.blog).81 For support, visit [https://tarikul.top](https://tarikul.top) or contact via [hello@tarikul.top](mailto:hello@tarikul.top). 82 82 83 83 == Credits == -
answer-engine-optimization/trunk/answer-engine-optimization.php
r3295060 r3411118 2 2 /** 3 3 * Plugin Name: Answer Engine Optimization 4 * Plugin URI: https://tarikul. blog/uncategorized/answer-engine-optimization/4 * Plugin URI: https://tarikul.top/plugins/answer-engine-optimization/ 5 5 * Description: Optimize your content for answer engines and featured snippets. 6 6 * Version: 1.0.0 … … 8 8 * Requires PHP: 7.2 9 9 * Author: Tarikul Islam Riko 10 * Author URI: https://tarikul. blog/10 * Author URI: https://tarikul.top/ 11 11 * License: GPL v2 or later 12 12 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt 13 13 * Text Domain: answer-engine-optimization 14 * Domain Path: /languages 14 15 */ 15 16 16 // If this file is called directly, abort. 17 if (!defined('WPINC')) { 18 die; 19 } 17 defined( 'ABSPATH' ) || exit; 20 18 21 // Define plugin constants 22 define('AEO_VERSION', '1.0.0'); 23 define('AEO_PLUGIN_DIR', plugin_dir_path(__FILE__)); 24 define('AEO_PLUGIN_URL', plugin_dir_url(__FILE__)); 19 require_once __DIR__ . '/includes/class-answer-engine-optimization.php'; 25 20 26 // Include the main plugin classes 27 require_once AEO_PLUGIN_DIR . 'includes/class-aeo-admin.php'; 28 require_once AEO_PLUGIN_DIR . 'includes/class-aeo-frontend.php'; 29 require_once AEO_PLUGIN_DIR . 'includes/class-aeo-questions.php'; 30 require_once AEO_PLUGIN_DIR . 'includes/class-aeo-schema.php'; 31 32 // Initialize the plugin 21 /** 22 * Initializing Plugin. 23 * 24 * @since 1.0.0 25 * @retun Object Plugin object. 26 */ 33 27 function aeo_init() { 34 $admin = new AEO_Admin(); 35 $frontend = new AEO_Frontend(); 36 $questions = new AEO_Questions(); 37 $schema = new AEO_Schema(); 38 39 // Register activation/deactivation hooks 40 register_activation_hook(__FILE__, array($admin, 'activate')); 41 register_deactivation_hook(__FILE__, array($admin, 'deactivate')); 28 return Answer_Engine_Optimization::get_instance(__FILE__); 42 29 } 43 30 add_action('plugins_loaded', 'aeo_init'); -
answer-engine-optimization/trunk/assets/css/aeo-admin.css
r3295060 r3411118 11 11 } 12 12 13 .aeo-field:last-child { 14 margin-bottom: 0; 15 } 16 13 17 .aeo-field label { 14 18 display: block; 15 19 margin-bottom: 5px; 16 20 font-weight: 600; 21 font-size: 14px; 17 22 } 18 23 … … 21 26 font-style: italic; 22 27 margin-top: 5px; 28 font-size: 13px; 29 } 30 31 .aeo-field input[type="text"], 32 .aeo-field textarea { 33 width: 100%; 23 34 } 24 35 … … 26 37 .aeo-faq-item { 27 38 margin-bottom: 15px; 28 padding: 1 0px;39 padding: 15px; 29 40 background: #fff; 30 41 border: 1px solid #e5e5e5; 42 border-radius: 3px; 31 43 box-shadow: 0 1px 1px rgba(0,0,0,0.04); 32 44 } … … 35 47 .aeo-faq-item textarea { 36 48 margin-bottom: 8px; 49 } 50 51 .aeo-faq-item input[type="text"] { 52 font-weight: 600; 37 53 } 38 54 … … 41 57 color: white; 42 58 border-color: #dc3232; 43 } 44 45 .aeo-remove-faq:hover { 59 margin-top: 5px; 60 } 61 62 .aeo-remove-faq:hover, 63 .aeo-remove-faq:focus { 46 64 background: #a00; 47 65 border-color: #a00; 48 66 color: white; 67 } 68 69 #aeo-add-faq { 70 margin-right: 10px; 49 71 } 50 72 … … 58 80 width: 100%; 59 81 height: 100%; 60 background-color: rgba(0,0,0,0.4); 82 background-color: rgba(0,0,0,0.5); 83 overflow: auto; 61 84 } 62 85 63 86 .aeo-modal-content { 64 87 background-color: #fefefe; 65 margin: 5% auto; 88 margin: 50px auto; 89 padding: 0; 90 border: 1px solid #888; 91 width: 90%; 92 max-width: 700px; 93 box-shadow: 0 4px 20px rgba(0,0,0,0.3); 94 border-radius: 3px; 95 animation: slideIn 0.3s ease-out; 96 } 97 98 @keyframes slideIn { 99 from { 100 transform: translateY(-50px); 101 opacity: 0; 102 } 103 to { 104 transform: translateY(0); 105 opacity: 1; 106 } 107 } 108 109 .aeo-modal-header { 66 110 padding: 20px; 67 border: 1px solid #888;68 width: 80%;69 max-width: 800px;70 box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);71 }72 73 .aeo-modal-header {74 padding: 10px 0;75 111 border-bottom: 1px solid #ddd; 76 margin-bottom: 15px; 112 background: #f9f9f9; 113 position: relative; 77 114 } 78 115 … … 81 118 padding: 0; 82 119 font-size: 20px; 120 line-height: 1.4; 83 121 } 84 122 85 123 .aeo-modal-close { 86 color: #aaa; 87 float: right; 124 position: absolute; 125 right: 15px; 126 top: 15px; 127 color: #666; 88 128 font-size: 28px; 89 129 font-weight: bold; 90 130 cursor: pointer; 91 } 92 93 .aeo-modal-close:hover { 94 color: black; 131 line-height: 1; 132 transition: color 0.2s; 133 } 134 135 .aeo-modal-close:hover, 136 .aeo-modal-close:focus { 137 color: #000; 95 138 } 96 139 97 140 .aeo-modal-body { 98 padding: 10px 0; 99 margin-bottom: 15px; 141 padding: 20px; 142 max-height: 400px; 143 overflow-y: auto; 144 } 145 146 .aeo-modal-body > p:first-child { 147 margin-top: 0; 100 148 } 101 149 102 150 .aeo-modal-footer { 103 padding: 1 0px 0;151 padding: 15px 20px; 104 152 border-top: 1px solid #ddd; 105 153 text-align: right; 154 background: #f9f9f9; 155 } 156 157 .aeo-modal-footer .button { 158 margin-left: 10px; 106 159 } 107 160 108 161 /* Questions list */ 162 #aeo-questions-list { 163 margin: 15px 0; 164 padding: 0; 165 } 166 109 167 .aeo-question-item { 110 padding: 8px 0;168 padding: 10px; 111 169 border-bottom: 1px solid #eee; 170 transition: background-color 0.2s; 171 } 172 173 .aeo-question-item:hover { 174 background-color: #f9f9f9; 112 175 } 113 176 … … 118 181 .aeo-question-item label { 119 182 display: flex; 120 align-items: center;183 align-items: flex-start; 121 184 cursor: pointer; 185 margin: 0; 186 font-weight: normal; 122 187 } 123 188 124 189 .aeo-question-item input[type="checkbox"] { 125 190 margin-right: 10px; 191 margin-top: 2px; 192 flex-shrink: 0; 193 } 194 195 #aeo-generate-questions { 196 margin-top: 15px; 197 } 198 199 #aeo-generate-questions:disabled { 200 opacity: 0.6; 201 cursor: not-allowed; 126 202 } 127 203 128 204 /* Settings page */ 129 205 .settings_page_answer-engine-optimization textarea { 130 width: 100%; 131 max-width: 600px; 206 font-family: monospace; 132 207 } 133 208 134 209 .aeo-example-questions { 135 margin-left: 10px; 136 } 210 margin-top: 5px; 211 } 212 213 /* Responsive */ 214 @media screen and (max-width: 782px) { 215 .aeo-modal-content { 216 width: 95%; 217 margin: 20px auto; 218 } 219 220 .aeo-modal-body { 221 max-height: 300px; 222 } 223 224 .aeo-faq-item { 225 padding: 10px; 226 } 227 } -
answer-engine-optimization/trunk/assets/js/aeo-admin.js
r3295060 r3411118 4 4 var faqItem = ` 5 5 <div class="aeo-faq-item"> 6 <input type="text" name="aeo_faq_question[]" placeholder=" <?php _e('Question', 'answer-engine-optimization'); ?>" class="widefat">7 <textarea name="aeo_faq_answer[]" rows="2" placeholder=" <?php _e('Answer', 'answer-engine-optimization'); ?>" class="widefat"></textarea>8 <button type="button" class="button aeo-remove-faq"> <?php _e('Remove', 'answer-engine-optimization'); ?></button>6 <input type="text" name="aeo_faq_question[]" placeholder="Question" class="widefat"> 7 <textarea name="aeo_faq_answer[]" rows="2" placeholder="Answer" class="widefat"></textarea> 8 <button type="button" class="button aeo-remove-faq">Remove</button> 9 9 </div> 10 10 `; … … 111 111 <input type="text" name="aeo_faq_question[]" value="${question}" class="widefat"> 112 112 <textarea name="aeo_faq_answer[]" rows="2" class="widefat"></textarea> 113 <button type="button" class="button aeo-remove-faq"> <?php _e('Remove', 'answer-engine-optimization'); ?></button>113 <button type="button" class="button aeo-remove-faq">Remove</button> 114 114 </div> 115 115 `; -
answer-engine-optimization/trunk/assets/js/aeo-questions.js
r3295060 r3411118 57 57 complete: function() { 58 58 $('#aeo-generate-questions').prop('disabled', false) 59 .text(' <?php _e("Generate More Questions", "answer-engine-optimization"); ?>');59 .text('Generate More Questions'); 60 60 } 61 61 }); … … 90 90 <input type="text" name="aeo_faq_question[]" value="${question}" class="widefat"> 91 91 <textarea name="aeo_faq_answer[]" rows="2" class="widefat"></textarea> 92 <button type="button" class="button aeo-remove-faq"> <?php _e('Remove', 'answer-engine-optimization'); ?></button>92 <button type="button" class="button aeo-remove-faq">Remove</button> 93 93 </div> 94 94 `; -
answer-engine-optimization/trunk/readme.txt
r3322708 r3411118 1 1 === Answer Engine Optimization === 2 2 Contributors: riko910 3 Tags: seo, optimization, answer engine optimization, voice search, aeo3 Tags: seo, optimization, answer engine, featured snippets, voice search, schema markup 4 4 Requires at least: 6.5 5 Tested up to: 6. 85 Tested up to: 6.9 6 6 Requires PHP: 7.2 7 7 Stable tag: 1.0.0 … … 79 79 == Additional Information == 80 80 81 For support, visit [https://tarikul. blog](https://tarikul.blog) or contact via [support@tarikul.blog](mailto:support@tarikul.blog).81 For support, visit [https://tarikul.top](https://tarikul.top) or contact via [hello@tarikul.top](mailto:hello@tarikul.top). 82 82 83 83 == Credits ==
Note: See TracChangeset
for help on using the changeset viewer.