Revision 274
Added by ryan almost 20 years ago
| tags/2.6.1/CHANGELOG | ||
|---|---|---|
| 1 | Change Log | |
| 2 | =============================================================================== | |
| 3 | Please note: This change log may not be accurate | |
| 4 |  | |
| 5 | $Id$ | |
| 6 |  | |
| 7 | Legend: | |
| 8 | + = Added | |
| 9 | - = Removed | |
| 10 | # = Bugfix | |
| 11 | ! = Update/Change | |
| 12 |  | |
| 13 | ------------------------------------- 2.6.1 ------------------------------------- | |
| 14 | 12-Dec-2005 Ryan Djurovich | |
| 15 | # Fixed security vulnerability in class.login.php | |
| 16 | # Fixed typo in EN language file | |
| 17 | # Fixed captcha problems (when feature is disabled) in form module and sign-up | |
| 18 | ! Added charset encoding to admin templates | |
| 19 | ! Added extra code to check for selection of addon upon uninstalling | |
| 20 | # Fixed bugs in RSS news feeder | |
| 21 | # Fixed bug with PAGE_DESCRIPTION not being set on any page | |
| 22 |  | |
| 23 | ------------------------------------- 2.6.0 ------------------------------------- | |
| 24 | 28-Nov-2005 Ryan Djurovich | |
| 25 | + Added default charset option to (advanced) settings | |
| 26 | # Form module email fields now have email address validation | |
| 27 | # Fixed spacing in form submissions | |
| 28 | 27-Nov-2005 Ryan Djurovich | |
| 29 | + Added captcha verification to sign-up form | |
| 30 | + Added Captcha to News module | |
| 31 | 24-Nov-2005 Stefan Braunewell | |
| 32 | ! Applied aportale's patch to use label instead of javascript toggle code | |
| 33 | 20-Nov-2005 Ryan Djurovich | |
| 34 | ! News mod now hides read more link if no need for it (see ticket #56) | |
| 35 | + Added support for mailto: links in the menu link mod | |
| 36 | # Added direct-access redirection on some files (see ticket #37) | |
| 37 | + Added extra characters to convert.php (see ticket #64) | |
| 38 | # Fixed ticket #65 (last_reset check in account/forgot_form.php) | |
| 39 | 29-Sep-2005 Ryan Djurovich | |
| 40 | ! Cleaned up form buttons in Settings | |
| 41 | ! Moved some options into Advanced Settings | |
| 42 | # Semi-disabled "separate" page trash option | |
| 43 | + Created a backup module/tool for backing-up the database | |
| 44 | (thanks to John (pcwacht) for the original code) | |
| 45 | + Created new "blank template", which can be used in case where you don't | |
| 46 | want anything wrapping page-content. | |
| 47 | 19-Sep-2005 Ryan Djurovich | |
| 48 | + Added _license field for all add-ons to specify a license | |
| 49 | ! Renamed _designed_for variables (for all addons) to _platform | |
| 50 | + Created addons table for faster internal referencing of installed addons | |
| 51 | ! Fixed some links, including the "Help" button in Admin | |
| 52 | # Used nl2br to display body correctly when viewing form-submissions | |
| 53 | 15-Sep-2005 Stefan Braunewell | |
| 54 | + Added table module with columns 'name','type' and 'directory' as an | |
| 55 | index. | |
| 56 | + Added entry to settings table 'wb_version' which holds the version | |
| 57 | number and can be utilized in future upgrade scripts. | |
| 58 | ! Added upgrade functionality also for templates and languages. | |
| 59 | #/! Template/modules installation now respects paths. | |
| 60 | ! Moved updates from config.php to database. | |
| 61 | Created initialize.php (required by config.php) to read settings. | |
| 62 | 11-Sep-2005 Stefan Braunewell | |
| 63 | ! HTMLArea is now a module instead of a core component. Files moved | |
| 64 | from "include" to "modules". | |
| 65 | + Implemented Installation of modules on top of an older version. This is | |
| 66 | done via checking $module_version. Instead of install.php, upgrade.php | |
| 67 | is then called if it exists in the module package. | |
| 68 | For module developers: $module_version and $new_module_version are | |
| 69 | accessible in upgrade.php to find out what upgrade steps need to be taken. | |
| 70 | ! Changed column names in mod_news_posts from short,long to content_short, | |
| 71 | content_long. | |
| 72 | 09-Sep-2005 Stefan Braunewell | |
| 73 | + Added new advanced setting "Rename Files On Upload". File extensions can be | |
| 74 | given so that respective files will have a ".txt" appended on media upload. | |
| 75 | # Fixed "None found" message bug when user has no top level page edit | |
| 76 | rights. | |
| 77 | # Fixed missing parent option 'none' - ticket #12 - and a minor scope bug. | |
| 78 | + Added breadcrumbs code. Call using $wb->breadcrumbs(). | |
| 79 | + Added utf-8 character encoding meta tag into all stock templates. | |
| 80 | # Fixed bug when changing a page's parent | |
| 81 | ! Changed the way blocks are treated. Added new frontend class attribute | |
| 82 | default_block_content that controls what is shown on pages such as | |
| 83 | search, login, etc. (Ticket #16) | |
| 84 | + Added support for WYSIWYG editor modules (wysiwygmod) | |
| 85 | + When trying to access a registered page, user is automatically redirected | |
| 86 | there on successful login. | |
| 87 | # Fixed various issues with system search (mainly related to stripslashes() | |
| 88 | # Removed stripslashes() in many places in the code. Added check for | |
| 89 | magic_quotes_gpc to new wb class method add_slashes(). Now database contest | |
| 90 | is independent of magic_quotes setting.. | |
| 91 | 05-Sep-2005 Stefan Braunewell | |
| 92 | # Fixed bug concerning direct access of preferences page. | |
| 93 | # Reworked page visibility and menu item visibility code (frontend login | |
| 94 | problem). | |
| 95 | # Pages in link list in htmlarea popup are now correctly ordered. | |
| 96 | # Fixed bug where group with existing name can be added. | |
| 97 | 04-Sep-2005 Ryan Djurovich | |
| 98 | + Added and RSS newsfeed script to the News module | |
| 99 | 04-Sep-2005 Stefan Braunewell | |
| 100 | ! Rewrote menu function. Parameters are now given as attributes to frontend class. | |
| 101 | # Fixed some occurrences of potential direct access path disclosure | |
| 102 | # Added directory check to browse.php to prevent xss exploit by trusted users. | |
| 103 | ! Updated code to reflect move to Subversion repository system. | |
| 104 | 27-Aug-2005 Stefan Braunewell | |
| 105 | # Fixed bugs 4,5,6,8,9 in bug tracker | |
| 106 | ! Removed 'USER_LANGUAGE' and 'GET_LANGUAGE' constants. | |
| 107 | A GET['lang'] now sets the session language variable. | |
| 108 | 26-Aug-2005 Stefan Braunewell | |
| 109 | ! Moved redundant code into the new class functions. Created | |
| 110 | 'compatibility.php' for backward compatibility with | |
| 111 | modules and templates. Variables and functions can still be accessed | |
| 112 | in the old way. | |
| 113 | !/+ Reorganized core frontend files, added new base class 'wb' from | |
| 114 | which 'admin' and the new 'frontend' class inherit. Moved all frontend | |
| 115 | function into new class. Completely rewrote core index.php. | |
| 116 | Now all variables and functions that are available to templates and | |
| 117 | modules are attributes and methods of the frontend and the wb classes | |
| 118 | ------------------------------------- 2.5.2 ------------------------------------- | |
| 119 | 23-Jun-2005 Ryan Djurovich | |
| 120 | ! create_access_file now creates all parent directories if needed | |
| 121 | # Fixed bug when moving page with subpages to another level | |
| 122 | # Fixed bug when saving "Settings" (in Admin) on Windows/IIS | |
| 123 | # Fixed bug where query was not setting error correctly in class.database.php | |
| 124 | 22-Jun-2005 Ryan Djurovich | |
| 125 | # Fixed bug where template permissions were not saved when a adding group | |
| 126 | 21-Jun-2005 Ryan Djurovich | |
| 127 | # Added htmlspecialchars for modifying WYSIWYG, news, etc. modules (Bug #78) | |
| 128 | # Fixed language problems in some area's of Admin. (Bug #70) | |
| 129 | # Added a space in website/page keywords (Bug #69) | |
| 130 | # Fixed bugs on settings2.php (Bug #52) | |
| 131 | ! Links inserted with HTMLArea now use [wblink--PAGE_ID--] instead of raw URL | |
| 132 | 13-Jun-2005 Ryan Djurovich | |
| 133 | # Fixed bug (#88) with news module | |
| 134 | ! Title of Administration login page now taken from language file (Bug #72) | |
| 135 | # Fixed redirection admin/home to admin/start on admin/index.php | |
| 136 | # Fixed bug with forgotten password page in admin (Bug #81) | |
| 137 | 25-Apr-2005 Ryan Djurovich | |
| 138 | # Fixed numerous bugs with module uninstallation | |
| 139 | # Fixed bug when uploading files in Administration -> Media | |
| 140 | ! Installer no-longer requires you to accept the GNU GPL | |
| 141 | ------------------------------------- 2.5.1 ------------------------------------- | |
| 142 | 16-Apr-2005 Ryan Djurovich | |
| 143 | # Fixed two bugs with account login/logout | |
| 144 | ------------------------------------- 2.5.1 ------------------------------------- | |
| 145 | 15-Apr-2005 Ryan Djurovich | |
| 146 | # Fixed bug where non-english characters can get used in page filenames. Many | |
| 147 | measuers have been added (including a new file: wb/framework/convert.php), | |
| 148 | to prevent any possible errors that can occur in page filenames. | |
| 149 | # Fixed invalid meta tags in stock templates (meta tags were not closed) | |
| 150 | # Removed lines 401, 402, and 425 of wb/index.php - not needed | |
| 151 | # Fixed bug where search and account pages are shown in every block | |
| 152 | that is in a template | |
| 153 | # Fixed numerous bugs with media home directories feature | |
| 154 | 10-Apr-2005 Ryan Djurovich | |
| 155 | # Fixed bugs in account/login.php and logout.php where users | |
| 156 | gets redirected to /pages | |
| 157 | ------------------------------------- 2.5.0 ------------------------------------- | |
| 158 | 08-Apr-2005 Ryan Djurovich | |
| 159 | - Removed section language feature | |
| 160 | + Added page language feature (replaces need for sections language feature) | |
| 161 | # Fixed bug where pages using menu_link module can have the URL changed | |
| 162 | - Page directory no longer stored in link field in pages table, it is now added | |
| 163 | when the page_link function is called - this makes changing the pages | |
| 164 | directory much easier and quicker | |
| 165 | ! Pages with visibility of "none" are now no longer directly accessable | |
| 166 | + Added new visibility setting "hidden", acts exactly like none did previously | |
| 167 | ! Template info file can now specify number of menu's available and relative names | |
| 168 | ! Template info file can now specify number of blocks's available and relative names | |
| 169 | ------------------------------------- 2.4.3 ------------------------------------- | |
| 170 | 07-Apr-2005 Ryan Djurovich | |
| 171 | # page_filename function has been rewritten using str_replace | |
| 172 | function, which should be faster and will allow characters | |
| 173 | from other languages into filenames | |
| 174 | ! Created new media_filename function, which is now used | |
| 175 | by all media functions (create,upload,rename) to determine | |
| 176 | which characters should be removed from a desired filename | |
| 177 | + New button in Administration page list to view specific page | |
| 178 | # Updated the page_link function to now be compatible with menu link | |
| 179 | module when setting pages directory to root | |
| 180 | # Fixed bugs in search when using "Any Words" option | |
| 181 | # Fixed bug with news module when pages directory set to root | |
| 182 | ! Changed URL of documentation website on Administration Start page | |
| 183 | ------------------------------------- 2.4.2 ------------------------------------- | |
| 184 | 05-Apr-2005 Ryan Djurovich | |
| 185 | # Fixed bug where file could be renamed to nothing in Media | |
| 186 | ! Optimised Media create folder, upload file, and rename functions | |
| 187 | # Fixed bug where stripslashes not run on news post titles in admin | |
| 188 | 05-Apr-2005 Stefan Braunewell | |
| 189 | # Fixed bug concerning usage of the private_sql variable | |
| 190 | # Fixed bug conerning sub-pages being displayed in menus incorrectly | |
| 191 | ------------------------------------- 2.4.1 ------------------------------------- | |
| 192 | 04-Apr-2005 Ryan Djurovich | |
| 193 | ! Pages with visibility of "none" are again directly accessable | |
| 194 | # Fixed bugs regarding renaming files and directories in Media section | |
| 195 | ! When home folders disabled, all folders now visible in Media section | |
| 196 | ------------------------------------- 2.4.0 ------------------------------------- | |
| 197 | 03-Apr-2005 Ryan Djurovich | |
| 198 | - Removed recently added visibility setting of "heading", and relative config vars | |
| 199 | + Added new "menu" field to pages table, and new setting "multiple menus" | |
| 200 | which replaces the need for the menu headings feature | |
| 201 | + Added links to top of groups and users sections, linking to each other | |
| 202 | ! Change menu width in "Round" template to 170px (was 150px) | |
| 203 | # Change page "are you sure" deletion message to mention that it will delete | |
| 204 | all sub-pages as well | |
| 205 | # Fixed many bugs with news module when viewing posts by group | |
| 206 | ! Pages with visibility of "none" are now no longer directly accessable | |
| 207 | 02-Apr-2005 Ryan Djurovich | |
| 208 | - Removed need to specify DB_URL when calling database class | |
| 209 | # Stopped fields without a type specified from being shown in form mod | |
| 210 | # Changed '/media' to MEDIA_DIRECTORY on HTMLArea popup windows | |
| 211 | for insert link and insert image | |
| 212 | + Added setting which allows you to specify the default WYSIWYG style | |
| 213 | + Added "Server Email" option, to specify what is used in "From" field when | |
| 214 | sending emails using the PHP mail function. Default is admins email address. | |
| 215 | # Search now excludes pages which have a visibility of none or heading | |
| 216 | ! Pages are now given modified_when and modified_by when added | |
| 217 | 01-Apr-2005 Ryan Djurovich | |
| 218 | + Added option to News module to specify how many posts should be listed | |
| 219 | per page (by default it is set to unlimited, which functions like previous version) | |
| 220 | # Added stripslashes when display page titles in search | |
| 221 | + Page descriptions and last updated date now shown in search by default | |
| 222 | 30-Mar-2005 Ryan Djurovich | |
| 223 | + Added new feature for Media home folders, where a folder can be specified | |
| 224 | for a specific user or group of users only | |
| 225 | ! Changed URL of Help button to http://www.websitebaker.org/docs/ | |
| 226 | + Added new feature for "Page Trash" - two modes available: inline and separate | |
| 227 | ! When pages are deleted, all sub-pages are now deleted (instead of being moved | |
| 228 | up a level) | |
| 229 | 29-Mar-2005 Ryan Djurovich | |
| 230 | - Removed Database Settings from Administration Settings (options will not be | |
| 231 | available in 3.x, so trying to match interface with WB 3.x plans | |
| 232 | ! Changed the name of Path Settings to Filesystem Settings in Administration | |
| 233 | Settings, and removed ability to change path/url options - matching interface | |
| 234 | plans for WB 3.x | |
| 235 | + Added same options for OS and file permissions as installer to Settings | |
| 236 | ! Sessions now named with APP_NAME.'_session_id' (e.g. default is wb_session_id) | |
| 237 | 28-Mar-2005 Ryan Djurovich | |
| 238 | + New functions available to templates to simplify creation of them. This aims | |
| 239 | to "future-proof" templates for WB 3.x plans. | |
| 240 | ! Default templates updated to support some of the new functions | |
| 241 | + Added field to pages table "page_trail" which stores a list of the pages | |
| 242 | parents. This field was needed by the new page_menu function | |
| 243 | + Added option for page visibility "heading" to enabled support for multiple | |
| 244 | menu's. Also, this helps to "future-proof" templates for WB 3.x plans | |
| 245 | + Added option for page visibility "registered", which acts a little like | |
| 246 | private, but is still shown in the menu (although users need to log in to view | |
| 247 | the pages content) | |
| 248 | + Form module submissions now saved to database, and feature now added to | |
| 249 | limit number of submissions per hour to prevent spamming | |
| 250 | + New field for Form module: email. Allows you to specify their email in | |
| 251 | "from" field on module settings. | |
| 252 | # Fixed bug when displaying comments in News module (WB Bug #14) | |
| 253 | + New "under contruction" message if no pages exist | |
| 254 | ! Cleaned-up wb/index.php | |
| 255 | 27-Mar-2005 Ryan Djurovich | |
| 256 | + Created advanced mkdir and chmod functions | |
| 257 | # Fixed bug in media where wrong file/folder is deleted | |
| 258 | + Complete overhall of installer - now only one step! It has been greatly | |
| 259 | simplified in many ways, has much better validation, reports error much more | |
| 260 | nicely, and automatically logs the user into the Administrations | |
| 261 | + Must now specify OS type - allows for customizable file permission settings | |
| 262 | + Sections can now have a language code assigned to them | |
| 263 | + Sections can now have a block name/id assigned to them | |
| 264 | ! Home section of Administration renamed to Start, to save confusion with saying | |
| 265 | Homepage (because this term could either mean the main website or Home section | |
| 266 | in Administration). Also, this aims to unify the interface with WB 3.x plans | |
| 267 | ! Moved Users and Groups sections under Access section. This aims to unify the | |
| 268 | interface with WB 3.x plans, which help to unclutter the menu | |
| 269 | ! Interface for Settings section has been imporved for usability purposes | |
| 270 | # Fixed HTMLArea where no scrollbar for "insert link" and "insert image" dialogs | |
| 271 | by placing media list inside an iframe | |
| 272 | # Fixed stripslashes problem for viewing news comments | |
| 273 | ! Added code from Formesque module (an advanced version of the original Form | |
| 274 | module, modified by Rudolph Lartey from www.carbonect.com), and made further | |
| 275 | interface improvements for select box/checkbox group/radio group options. | |
| 276 | # Possibly fixed bugs where an S appears before file and dir modes | |
| 277 | # Fixed bug where users can be added with same emails (in Administration) | |
| 278 | - Removed support for PEAR, as it was deemed an unnecessary addition which only | |
| 279 | makes code more bulky, and removing it will decrease package size a lot | |
| 280 | + New "homepage redirect" option so first page is included and not redirected to | |
| 281 | # Fixed text not being shown when module uninstalled | |
| 282 | ! Imporved interface for basic group permissions | |
| 283 | 26-Mar-2005 Stefan Braunewell | |
| 284 | # Fixed bug with front-end logins | |
| 285 | # Fixed bug when saving intro page | |
| 286 | + Added check on sign-up if e-mail exists (thanks to P. Melief) | |
| 287 | # Fixed bugs concerning moving/deleting pages | |
| 288 | # Fixed list of parents in page settings | |
| 289 | # Fixed mkdir without mode parameter | |
| 290 | # Added a check on install to ensure PHP 4.1.x compatibility (thanks to Wanderer) | |
| 291 | + Added support for PAGES_DIRECTORY set to root | |
| 292 | + Search form now supports quotes (thanks to Manafta) | |
| 293 | # Fixed page section ordering | |
| 294 | # News items are displayed with name of poster instead of "Unknown" | |
| 295 | # Deletion confirmation popup window in media section now shows correct file name | |
| 296 | ------------------------------------- 2.3.1 ------------------------------------- | |
| 297 | 03-Fed-2005 Ryan Djurovich | |
| 298 | + Now there is two types of "filesystem modes", one for directories and one | |
| 299 | for files. Having different settings is very common for most servers, so | |
| 300 | this addition should fix many problems people had with 2.3.0. | |
| 301 | - Removed filesystem mode options from installation | |
| 302 | ! Removed duplicate text on installation step 3 for timezone | |
| 303 | ! All "access files" for the news module now stored in pages/posts instead | |
| 304 | of a sub-dir relative to the page (this fixes many bugs) | |
| 305 | # Fixed major bugs when deleting pages with sub-pages | |
| 306 | ! Removed the restrictions that prevent a user for changing a pages level | |
| 307 | # Fixed bug with "toggle" plus/minus in IE for pages list | |
| 308 | # Fixed some bugs where /pages was not replaced with PAGES_DIRECTORY constant | |
| 309 | ------------------------------------- 2.3.0 ------------------------------------- | |
| 310 | 26-Jan-2005 Ryan Djurovich | |
| 311 | # Fixed bug in framework/functions.php that made root parent always equal 8 | |
| 312 | # Added missing braces in lines 182 and 208 of admin/pages/settings2.php | |
| 313 | # Fixed SQL-query on line 172, placing a / after $old_link | |
| 314 | # Added eregi checks for PAGES_DIRECTORY on lines 140 and 150 of | |
| 315 | admin/pages/settings2.php | |
| 316 | # Added ordering cleaning to delete_post.php on line 53 for news module | |
| 317 | ! GMT option is selected for "Default Timezone" in the installer, instead | |
| 318 | of the old "Please select" message (which had the same value as GMT) | |
| 319 | 28-Jan-2005 Ryan Djurovich | |
| 320 | ! Ability to specify the chmod number when WB uploads files, etc. | |
| 321 | ! Modified file headers (copyright/license notice) so they now look almost the | |
| 322 | same, independant of font. Also, it now covers copyright for 2005. | |
| 323 | 30-Jan-2005 Ryan Djurovich | |
| 324 | # Added code on wb/admin/pages/delete.php to remove sections from the sections | |
| 325 | table when a page is deleted. | |
| 326 | + New 'Smart Login' prevents users from using external password managers, | |
| 327 | and can be set to remember the users password using cookies. | |
| 328 | ! SourceForge CVS module now called websitebaker2 (instead of just | |
| 329 | websitebaker). Also, all file versions have been reset. | |
| 330 | 01-Fed-2005 Ryan Djurovich | |
| 331 | ! Added code to prevent from changing a pages level (it simply disables | |
| 332 | the select box), to prevent many possible bugs. | |
| 333 | ------------------------------------- 2.2.4 ------------------------------------- | |
| 334 | 23-Dec-2004 Ryan Djurovich | |
| 335 | ! Change 'EXACT_PHRASE' to 'EXACT_MATCH' on line 261 of wb/languages/EN.php | |
| 336 | # Fixed multi-language support in search | |
| 337 | + Added more detailed options to list of PHP error reporting level's | |
| 338 | - Removed ability to change language and PHP error reporting level | |
| 339 | on installation to make things easier for newbie's | |
| 340 | + Ability to select custom spacer for page filename's | |
| 341 | ! Changed the way a language code is found on language installation | |
| 342 | + Added template permissions to groups | |
| 343 | # Fixed bug when trying to change email from Preferences (admin and frontend) | |
| 344 | # Fixed bug with auto-selection of "System Default" for Preferences | |
| 345 | ! News module now use's WYSIWYG for modifying news posts | |
| 346 | + Ability to specify both the pages and media target directories | |
| 347 | ------------------------------------ 2.2.3-c ------------------------------------ | |
| 348 | 22-Dec-2004 Ryan Djurovich | |
| 349 | # Fixed problem with DB password being reset if Settings saved in basic mode | |
| 350 | ------------------------------------ 2.2.3-b ------------------------------------ | |
| 351 | 21-Dec-2004 Ryan Djurovich | |
| 352 | # Fixed minor bug on admin templates section | |
| 353 | # Fixed bug on rename.php and rename2.php in admin media section | |
| 354 | ------------------------------------- 2.2.3 ------------------------------------- | |
| 355 | 20-Dec-2004 Ryan Djurovich | |
| 356 | + Added WB release version in Administration (top right corner) | |
| 357 | ! New option to prevent users from adding level 0 pages | |
| 358 | # Fixed bug when deleting post's in News module | |
| 359 | + Added new field in pages table for "root" parent (level 0 parent), for | |
| 360 | extra flexability in creating templates | |
| 361 | ! Round template now supports unlimited page levels | |
| 362 | ------------------------------------- 2.2.2 ------------------------------------- | |
| 363 | 18-Dec-2004 Ryan Djurovich | |
| 364 | + New option under Search Settings for selecting custom template for search | |
| 365 | + New option when changing page settings to set the target | |
| 366 | # Fixed error when saving a user after editing | |
| 367 | ! Users can now modify sub-page if they dont have permissions on the parent | |
| 368 | ------------------------------------- 2.2.1 ------------------------------------- | |
| 369 | 15-Dec-2004 Ryan Djurovich | |
| 370 | # Fixed bug when changing password on preferences form (front-end) | |
| 371 | # Fixed bug when retrieving user details (administration) | |
| 372 | # Added check to see if module, template, or language is in use when deleting | |
| 373 | # Fixed up email that is sent to user from a submitted form | |
| 374 | # Fixed major problem with module permissions which stopped it from working | |
| 375 | ------------------------------------- 2.2.0 ------------------------------------- | |
| 376 | 14-Dec-2004 (Correct date[s] unkown) Ryan Djurovich | |
| 377 | + Multiple-level page support | |
| 378 | + Multiple section's for pages (including interface) | |
| 379 | ! Removed text created using two words on all areas | |
| 380 | 	(e.g. {Intro} {PAGE} is now {INTRO_PAGE})
 | |
| 381 | this is for better language support | |
| 382 | + Added Languages section | |
| 383 | ! Moved Templates and Modules under Add-ons section | |
| 384 | ! Changed name of "Default" template to "Round" | |
| 385 | + Added "All CSS" template | |
| 386 | + Added "Jump" | |
| 387 | + Added | |
| 388 | ! Modified "Box" template to support multiple page levels | |
| 389 | + Added "Menu Link" module | |
| 390 | + Added "News" module | |
| 391 | + Added "Code" module | |
| 392 | + Added "Form" module | |
| 393 | + Added "Wrapper" module | |
| 394 | ! Changed name of "Normal Page" module to "WYSIWYG" | |
| 395 | + Created new admin wrapper script to ease module develpment | |
| 396 | + Media now automatically creates index.php file for every | |
| 397 | sub-folder made (for security purposes) | |
| 398 | ! Change "Help" link in Administration menu so it now directs | |
| 399 | to the the new Website Baker documentation website found at: | |
| 400 | http://www.websitebaker.org/documentation | |
| 401 | ! Password is now required to change email in preferences | |
| 402 | + User can now select custom Language and Date & Time Formats | |
| 403 | + Added search functionality, with three different "methods": | |
| 404 | 1. Using all words 2. Using any words 3. Exact match | |
| 405 | + Added native MySQL database support | |
| 0 | 406 | |
| tags/2.6.1/wb/modules/news/rss.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | // $Id$ | |
| 4 |  | |
| 5 | /* | |
| 6 |  | |
| 7 | Website Baker Project <http://www.websitebaker.org/> | |
| 8 | Copyright (C) 2004-2005, Ryan Djurovich | |
| 9 |  | |
| 10 | Website Baker is free software; you can redistribute it and/or modify | |
| 11 | it under the terms of the GNU General Public License as published by | |
| 12 | the Free Software Foundation; either version 2 of the License, or | |
| 13 | (at your option) any later version. | |
| 14 |  | |
| 15 | Website Baker is distributed in the hope that it will be useful, | |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | GNU General Public License for more details. | |
| 19 |  | |
| 20 | You should have received a copy of the GNU General Public License | |
| 21 | along with Website Baker; if not, write to the Free Software | |
| 22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 23 |  | |
| 24 | */ | |
| 25 |  | |
| 26 | // Check that GET values have been supplied | |
| 27 | if(isset($_GET['page_id']) AND is_numeric($_GET['page_id'])) {
 | |
| 28 | $page_id = $_GET['page_id']; | |
| 29 | 	define('PAGE_ID', $page_id);
 | |
| 30 | } else {
 | |
| 31 | 	header('Location: '.WB_URL);
 | |
| 32 | } | |
| 33 | if(isset($_GET['group_id']) AND is_numeric($_GET['group_id'])) {
 | |
| 34 | $group_id = $_GET['group_id']; | |
| 35 | 	define('GROUP_ID', $group_id);
 | |
| 36 | } | |
| 37 |  | |
| 38 | // Include WB files | |
| 39 | require_once('../../config.php');
 | |
| 40 | require_once(WB_PATH.'/framework/class.frontend.php'); | |
| 41 | $database = new database(); | |
| 42 | $wb = new frontend(); | |
| 43 | $wb->page_id = $page_id; | |
| 44 | $wb->get_page_details(); | |
| 45 | $wb->get_website_settings(); | |
| 46 |  | |
| 47 | // Sending XML header | |
| 48 | header("Content-type: text/xml");
 | |
| 49 |  | |
| 50 | // Header info | |
| 51 | // Required by CSS 2.0 | |
| 52 |  | |
| 53 | echo "<rss version='2.0'>"; | |
| 54 | echo "<channel>"; | |
| 55 | echo "<title>".PAGE_TITLE."</title>"; | |
| 56 | echo "<link>".WB_URL."</link>"; | |
| 57 | echo "<description>".PAGE_DESCRIPTION."</description>"; | |
| 58 |  | |
| 59 | // Optional header info | |
| 60 | echo "<language>".DEFAULT_LANGUAGE."</language>"; | |
| 61 | echo "<copyright>".WB_URL."</copyright>"; | |
| 62 | echo "<managingEditor>".SERVER_EMAIL."</managingEditor>"; | |
| 63 | echo "<webMaster>".SERVER_EMAIL."</webMaster>"; | |
| 64 | echo "<category>".WEBSITE_TITLE."</category>"; | |
| 65 | echo "<generator>Website Baker Content Management System</generator>"; | |
| 66 |  | |
| 67 | // Get news items from database | |
| 68 |  | |
| 69 | //Query | |
| 70 | if(isset($group_id)) {
 | |
| 71 | $query = "SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE group_id=".$group_id." AND page_id = ".$page_id." AND active=1 ORDER BY posted_when DESC"; | |
| 72 | } else {
 | |
| 73 | $query = "SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE page_id=".$page_id." AND active=1 ORDER BY posted_when DESC"; | |
| 74 | } | |
| 75 | $result = $database->query($query); | |
| 76 |  | |
| 77 | //Generating the news items | |
| 78 | while($item = $result->fetchRow($result)){
 | |
| 79 |  | |
| 80 | echo "<item>"; | |
| 81 | echo "<title>".$item["title"]."</title>"; | |
| 82 | // Stripping HTML Tags for text-only visibility | |
| 83 | echo "<description>".strip_tags($item["content_short"])."</description>"; | |
| 84 | echo "<link>".WB_URL."/pages".$item["link"].PAGE_EXTENSION."</link>"; | |
| 85 | /* Add further (non required) information here like ie. | |
| 86 | echo "<author>".$item["posted_by"]."</author>"); | |
| 87 | etc. | |
| 88 | */ | |
| 89 | echo "</item>"; | |
| 90 |  | |
| 91 | } | |
| 92 |  | |
| 93 | // Writing footer information | |
| 94 | echo "</channel>"; | |
| 95 | echo "</rss>"; | |
| 96 |  | |
| 97 | ?> | |
| 0 | 98 | |
| tags/2.6.1/wb/modules/news/comment_page.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | // $Id$ | |
| 4 |  | |
| 5 | /* | |
| 6 |  | |
| 7 | Website Baker Project <http://www.websitebaker.org/> | |
| 8 | Copyright (C) 2004-2005, Ryan Djurovich | |
| 9 |  | |
| 10 | Website Baker is free software; you can redistribute it and/or modify | |
| 11 | it under the terms of the GNU General Public License as published by | |
| 12 | the Free Software Foundation; either version 2 of the License, or | |
| 13 | (at your option) any later version. | |
| 14 |  | |
| 15 | Website Baker is distributed in the hope that it will be useful, | |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | GNU General Public License for more details. | |
| 19 |  | |
| 20 | You should have received a copy of the GNU General Public License | |
| 21 | along with Website Baker; if not, write to the Free Software | |
| 22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 23 |  | |
| 24 | */ | |
| 25 |  | |
| 26 | // Make sure page cannot be accessed directly | |
| 27 | if(!defined('WB_URL')) { header('Location: ../index.php'); }
 | |
| 28 |  | |
| 29 | // Get comments page template details from db | |
| 30 | $query_settings = $database->query("SELECT comments_page,use_captcha FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '".SECTION_ID."'");
 | |
| 31 | if($query_settings->numRows() == 0) {
 | |
| 32 | 	header('Location: '.WB_URL.'/pages/');
 | |
| 33 | } else {
 | |
| 34 | $settings = $query_settings->fetchRow(); | |
| 35 | // Print comments page | |
| 36 | 	echo str_replace('[POST_TITLE]', POST_TITLE, ($settings['comments_page']));
 | |
| 37 | ?> | |
| 38 | <form name="comment" action="<?php echo WB_URL.'/modules/news/submit_comment.php?page_id='.PAGE_ID.'§ion_id='.SECTION_ID.'&post_id='.POST_ID; ?>" method="post"> | |
| 39 | <?php echo $TEXT['TITLE']; ?>: | |
| 40 | <br /> | |
| 41 | 	<input type="text" name="title" maxlength="255" style="width: 90%;"<?php if(isset($_SESSION['comment_title'])) { echo ' value="'.$_SESSION['comment_title'].'"'; unset($_SESSION['comment_title']); } ?> />
 | |
| 42 | <br /><br /> | |
| 43 | <?php echo $TEXT['COMMENT']; ?>: | |
| 44 | <br /> | |
| 45 | 	<textarea name="comment" style="width: 90%; height: 150px;"><?php if(isset($_SESSION['comment_body'])) { echo $_SESSION['comment_body']; unset($_SESSION['comment_body']); } ?></textarea>
 | |
| 46 | <br /><br /> | |
| 47 | <?php | |
| 48 | 	if(isset($_SESSION['captcha_error'])) {
 | |
| 49 | echo '<font color="#FF0000">'.$_SESSION['captcha_error'].'</font><br />'; | |
| 50 | unset($_SESSION['captcha_error']); | |
| 51 | } | |
| 52 | // Captcha | |
| 53 | 	if($settings['use_captcha']) {
 | |
| 54 | $_SESSION['captcha'] = ''; | |
| 55 | 	for($i = 0; $i < 5; $i++) {
 | |
| 56 | $_SESSION['captcha'] .= rand(0,9); | |
| 57 | } | |
| 58 | ?> | |
| 59 | <table cellpadding="2" cellspacing="0" border="0"> | |
| 60 | <tr> | |
| 61 | <td><?php echo $TEXT['VERIFICATION']; ?>:</td> | |
| 62 | <td><img src="<?php echo WB_URL; ?>/include/captcha.php" alt="Captcha" /></td> | |
| 63 | <td><input type="text" name="captcha" maxlength="5" /></td> | |
| 64 | </tr></table> | |
| 65 | <br /> | |
| 66 | <?php | |
| 67 | } | |
| 68 | ?> | |
| 69 | <input type="submit" name="submit" value="<?php echo $TEXT['ADD']; ?> <?php echo $TEXT['COMMENT']; ?>" /> | |
| 70 | </form> | |
| 71 | <?php | |
| 72 | } | |
| 73 |  | |
| 74 | ?> | |
| 0 | 75 | |
| tags/2.6.1/wb/modules/news/install.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | // $Id$ | |
| 4 |  | |
| 5 | /* | |
| 6 |  | |
| 7 | Website Baker Project <http://www.websitebaker.org/> | |
| 8 | Copyright (C) 2004-2005, Ryan Djurovich | |
| 9 |  | |
| 10 | Website Baker is free software; you can redistribute it and/or modify | |
| 11 | it under the terms of the GNU General Public License as published by | |
| 12 | the Free Software Foundation; either version 2 of the License, or | |
| 13 | (at your option) any later version. | |
| 14 |  | |
| 15 | Website Baker is distributed in the hope that it will be useful, | |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | GNU General Public License for more details. | |
| 19 |  | |
| 20 | You should have received a copy of the GNU General Public License | |
| 21 | along with Website Baker; if not, write to the Free Software | |
| 22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 23 |  | |
| 24 | */ | |
| 25 |  | |
| 26 | if(defined('WB_URL')) {
 | |
| 27 |  | |
| 28 | 	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_posts`");
 | |
| 29 | $mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_posts` ( ' | |
| 30 | . '`post_id` INT NOT NULL AUTO_INCREMENT,' | |
| 31 | . '`section_id` INT NOT NULL,' | |
| 32 | . '`page_id` INT NOT NULL,' | |
| 33 | . '`group_id` INT NOT NULL,' | |
| 34 | . '`active` INT NOT NULL,' | |
| 35 | . '`position` INT NOT NULL,' | |
| 36 | . '`title` VARCHAR(255) NOT NULL,' | |
| 37 | . '`link` TEXT NOT NULL,' | |
| 38 | . '`content_short` TEXT NOT NULL,' | |
| 39 | . '`content_long` TEXT NOT NULL,' | |
| 40 | . '`commenting` VARCHAR(7) NOT NULL,' | |
| 41 | . '`posted_when` INT NOT NULL ,' | |
| 42 | . '`posted_by` INT NOT NULL ,' | |
| 43 | . 'PRIMARY KEY (post_id)' | |
| 44 | . ' )'; | |
| 45 | $database->query($mod_news); | |
| 46 |  | |
| 47 | 	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_groups`");
 | |
| 48 | $mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_groups` ( ' | |
| 49 | . '`group_id` INT NOT NULL AUTO_INCREMENT,' | |
| 50 | . '`section_id` INT NOT NULL,' | |
| 51 | . '`page_id` INT NOT NULL,' | |
| 52 | . '`active` INT NOT NULL,' | |
| 53 | . '`position` INT NOT NULL,' | |
| 54 | . '`title` VARCHAR(255) NOT NULL,' | |
| 55 | . 'PRIMARY KEY (group_id)' | |
| 56 | . ' )'; | |
| 57 | $database->query($mod_news); | |
| 58 |  | |
| 59 | 	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_comments`");
 | |
| 60 | $mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_comments` ( ' | |
| 61 | . '`comment_id` INT NOT NULL AUTO_INCREMENT,' | |
| 62 | . '`section_id` INT NOT NULL,' | |
| 63 | . '`page_id` INT NOT NULL,' | |
| 64 | . '`post_id` INT NOT NULL,' | |
| 65 | . '`title` VARCHAR(255) NOT NULL,' | |
| 66 | . '`comment` TEXT NOT NULL,' | |
| 67 | . '`commented_when` INT NOT NULL ,' | |
| 68 | . '`commented_by` INT NOT NULL ,' | |
| 69 | . 'PRIMARY KEY (comment_id)' | |
| 70 | . ' )'; | |
| 71 | $database->query($mod_news); | |
| 72 |  | |
| 73 | 	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_settings`");
 | |
| 74 | $mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_settings` ( ' | |
| 75 | . '`section_id` INT NOT NULL,' | |
| 76 | . '`page_id` INT NOT NULL,' | |
| 77 | . '`header` TEXT NOT NULL,' | |
| 78 | . '`post_loop` TEXT NOT NULL,' | |
| 79 | . '`footer` TEXT NOT NULL,' | |
| 80 | . '`posts_per_page` INT NOT NULL,' | |
| 81 | . '`post_header` TEXT NOT NULL,' | |
| 82 | . '`post_footer` TEXT NOT NULL,' | |
| 83 | . '`comments_header` TEXT NOT NULL,' | |
| 84 | . '`comments_loop` TEXT NOT NULL,' | |
| 85 | . '`comments_footer` TEXT NOT NULL,' | |
| 86 | . '`comments_page` TEXT NOT NULL,' | |
| 87 | . '`commenting` VARCHAR(7) NOT NULL,' | |
| 88 | . '`resize` INT NOT NULL,' | |
| 89 | . ' `use_captcha` INT NOT NULL,' | |
| 90 | . 'PRIMARY KEY (section_id)' | |
| 91 | . ' )'; | |
| 92 | $database->query($mod_news); | |
| 93 |  | |
| 94 | // Insert info into the search table | |
| 95 | // Module query info | |
| 96 | $field_info = array(); | |
| 97 | $field_info['page_id'] = 'page_id'; | |
| 98 | $field_info['title'] = 'page_title'; | |
| 99 | $field_info['link'] = 'link'; | |
| 100 | $field_info['description'] = 'description'; | |
| 101 | $field_info['modified_when'] = 'modified_when'; | |
| 102 | $field_info['modified_by'] = 'modified_by'; | |
| 103 | $field_info = serialize($field_info); | |
| 104 | 	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('module', 'news', '$field_info')");
 | |
| 105 | // Query start | |
| 106 | $query_start_code = "SELECT [TP]pages.page_id, [TP]pages.page_title, [TP]pages.link, [TP]pages.description, [TP]pages.modified_when, [TP]pages.modified_by FROM [TP]mod_news_posts, [TP]mod_news_groups, [TP]mod_news_comments, [TP]mod_news_settings, [TP]pages WHERE "; | |
| 107 | 	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_start', '$query_start_code', 'news')");
 | |
| 108 | // Query body | |
| 109 | $query_body_code = " | |
| 110 | [TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.title LIKE \'%[STRING]%\' | |
| 111 | OR [TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.content_short LIKE \'%[STRING]%\' | |
| 112 | OR [TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.content_long LIKE \'%[STRING]%\' | |
| 113 | OR [TP]pages.page_id = [TP]mod_news_comments.page_id AND [TP]mod_news_comments.title LIKE \'%[STRING]%\' | |
| 114 | OR [TP]pages.page_id = [TP]mod_news_comments.page_id AND [TP]mod_news_comments.comment LIKE \'%[STRING]%\' | |
| 115 | OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.header LIKE \'%[STRING]%\' | |
| 116 | OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.footer LIKE \'%[STRING]%\' | |
| 117 | OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.post_header LIKE \'%[STRING]%\' | |
| 118 | OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.post_footer LIKE \'%[STRING]%\' | |
| 119 | OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.comments_header LIKE \'%[STRING]%\' | |
| 120 | OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.comments_footer LIKE \'%[STRING]%\' | |
| 121 | OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.comments_footer LIKE \'%[STRING]%\'"; | |
| 122 | 	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_body', '$query_body_code', 'news')");
 | |
| 123 | // Query end | |
| 124 | $query_end_code = ""; | |
| 125 | 	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_end', '$query_end_code', 'news')");
 | |
| 126 |  | |
| 127 | // Insert blank row (there needs to be at least on row for the search to work) | |
| 128 | 	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_posts (section_id,page_id) VALUES ('0', '0')");
 | |
| 129 | 	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_groups (section_id,page_id) VALUES ('0', '0')");
 | |
| 130 | 	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_comments (section_id,page_id) VALUES ('0', '0')");
 | |
| 131 | 	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_settings (section_id,page_id) VALUES ('0', '0')");
 | |
| 132 |  | |
| 133 | // Make news post access files dir | |
| 134 | make_dir(WB_PATH.PAGES_DIRECTORY.'/posts/'); + | |
| 135 | } | |
| 136 |  | |
| 137 | ?> | |
| 0 | 138 | |
| tags/2.6.1/wb/modules/news/modify_settings.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | // $Id$ | |
| 4 |  | |
| 5 | /* | |
| 6 |  | |
| 7 | Website Baker Project <http://www.websitebaker.org/> | |
| 8 | Copyright (C) 2004-2005, Ryan Djurovich | |
| 9 |  | |
| 10 | Website Baker is free software; you can redistribute it and/or modify | |
| 11 | it under the terms of the GNU General Public License as published by | |
| 12 | the Free Software Foundation; either version 2 of the License, or | |
| 13 | (at your option) any later version. | |
| 14 |  | |
| 15 | Website Baker is distributed in the hope that it will be useful, | |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | GNU General Public License for more details. | |
| 19 |  | |
| 20 | You should have received a copy of the GNU General Public License | |
| 21 | along with Website Baker; if not, write to the Free Software | |
| 22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 23 |  | |
| 24 | */ | |
| 25 |  | |
| 26 | require('../../config.php');
 | |
| 27 |  | |
| 28 | // Include WB admin wrapper script | |
| 29 | require(WB_PATH.'/modules/admin.php'); | |
| 30 |  | |
| 31 | // Get header and footer | |
| 32 | $query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
 | |
| 33 | $fetch_content = $query_content->fetchRow(); | |
| 34 |  | |
| 35 | // Set raw html <'s and >'s to be replace by friendly html code | |
| 36 | $raw = array('<', '>');
 | |
| 37 | $friendly = array('<', '>');
 | |
| 38 |  | |
| 39 | ?> | |
| 40 |  | |
| 41 | <style type="text/css"> | |
| 42 | .setting_name {
 | |
| 43 | vertical-align: top; | |
| 44 | } | |
| 45 | </style> | |
| 46 |  | |
| 47 | <form name="modify" action="<?php echo WB_URL; ?>/modules/news/save_settings.php" method="post" style="margin: 0;"> | |
| 48 |  | |
| 49 | <input type="hidden" name="section_id" value="<?php echo $section_id; ?>"> | |
| 50 | <input type="hidden" name="page_id" value="<?php echo $page_id; ?>"> | |
| 51 |  | |
| 52 | <table cellpadding="2" cellspacing="0" border="0" width="100%"> | |
| 53 | <tr> | |
| 54 | <td class="setting_name" width="100"><?php echo $TEXT['HEADER']; ?>:</td> | |
| 55 | <td class="setting_name"> | |
| 56 | <textarea name="header" style="width: 100%; height: 80px;"><?php echo ($fetch_content['header']); ?></textarea> | |
| 57 | </td> | |
| 58 | </tr> | |
| 59 | <tr> | |
| 60 | <td class="setting_name"><?php echo $TEXT['POST'].' '.$TEXT['LOOP']; ?>:</td> | |
| 61 | <td class="setting_name"> | |
| 62 | <textarea name="post_loop" style="width: 100%; height: 60px;"><?php echo ($fetch_content['post_loop']); ?></textarea> | |
| 63 | </td> | |
| 64 | </tr> | |
| 65 | <tr> | |
| 66 | <td class="setting_name"><?php echo $TEXT['FOOTER']; ?>:</td> | |
| 67 | <td class="setting_name"> | |
| 68 | <textarea name="footer" style="width: 100%; height: 80px;"><?php echo str_replace($raw, $friendly, ($fetch_content['footer'])); ?></textarea> | |
| 69 | </td> | |
| 70 | </tr> | |
| 71 | <tr> | |
| 72 | <td class="setting_name"><?php echo $TEXT['POST_HEADER']; ?>:</td> | |
| 73 | <td class="setting_name"> | |
| 74 | <textarea name="post_header" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['post_header'])); ?></textarea> | |
| 75 | </td> | |
| 76 | </tr> | |
| 77 | <tr> | |
| 78 | <td class="setting_name"><?php echo $TEXT['POST_FOOTER']; ?>:</td> | |
| 79 | <td class="setting_name"> | |
| 80 | <textarea name="post_footer" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['post_footer'])); ?></textarea> | |
| 81 | </td> | |
| 82 | </tr> | |
| 83 | <tr> | |
| 84 | <td class="setting_name"><?php echo $TEXT['POSTS_PER_PAGE']; ?>:</td> | |
| 85 | <td class="setting_name"> | |
| 86 | <select name="posts_per_page" style="width: 100%;"> | |
| 87 | <option value=""><?php echo $TEXT['UNLIMITED']; ?></option> | |
| 88 | <?php | |
| 89 | 			for($i = 1; $i <= 20; $i++) {
 | |
| 90 | 				if($fetch_content['posts_per_page'] == ($i*5)) { $selected = ' selected'; } else { $selected = ''; }
 | |
| 91 | echo '<option value="'.($i*5).'"'.$selected.'>'.($i*5).'</option>'; | |
| 92 | } | |
| 93 | ?> | |
| 94 | </select> | |
| 95 | </td> | |
| 96 | </tr> | |
| 97 | <tr> | |
| 98 | <td><?php echo $TEXT['COMMENTING']; ?>:</td> | |
| 99 | <td> | |
| 100 | <select name="commenting" style="width: 100%;"> | |
| 101 | <option value="none"><?php echo $TEXT['DISABLED']; ?></option> | |
| 102 | 			<option value="public" <?php if($fetch_content['commenting'] == 'public') { echo 'selected'; } ?>><?php echo $TEXT['PUBLIC']; ?></option>
 | |
| 103 | 			<option value="private" <?php if($fetch_content['commenting'] == 'private') { echo 'selected'; } ?>><?php echo $TEXT['PRIVATE']; ?></option>
 | |
| 104 | </select> | |
| 105 | </td> | |
| 106 | </tr> | |
| 107 | <?php if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) { /* Make's sure GD library is installed */ ?>
 | |
| 108 | <tr> | |
| 109 | <td class="setting_name"><?php echo $TEXT['CAPTCHA_VERIFICATION']; ?>:</td> | |
| 110 | <td> | |
| 111 | 		<input type="radio" name="use_captcha" id="use_captcha_true" value="1"<?php if($fetch_content['use_captcha'] == true) { echo ' checked'; } ?> />
 | |
| 112 | <label for="use_captcha_true"><?php echo $TEXT['ENABLED']; ?></label> | |
| 113 | 		<input type="radio" name="use_captcha" id="use_captcha_false" value="0"<?php if($fetch_content['use_captcha'] == false) { echo ' checked'; } ?> />
 | |
| 114 | <label for="use_captcha_false"><?php echo $TEXT['DISABLED']; ?></label> | |
| 115 | </td> | |
| 116 | </tr> | |
| 117 | <tr> | |
| 118 | <td> | |
| 119 | <?php echo $TEXT['RESIZE_IMAGE_TO']; ?>: | |
| 120 | </td> | |
| 121 | <td> | |
| 122 | <select name="resize" style="width: 100%;"> | |
| 123 | <option value=""><?php echo $TEXT['NONE']; ?></option> | |
| 124 | <?php | |
| 125 | $SIZES['50'] = '50x50px'; | |
| 126 | $SIZES['75'] = '75x75px'; | |
| 127 | $SIZES['100'] = '100x100px'; | |
| 128 | $SIZES['125'] = '125x125px'; | |
| 129 | $SIZES['150'] = '150x150px'; | |
| 130 | 			foreach($SIZES AS $size => $size_name) {
 | |
| 131 | 				if($fetch_content['resize'] == $size) { $selected = ' selected'; } else { $selected = ''; }
 | |
| 132 | echo '<option value="'.$size.'"'.$selected.'>'.$size_name.'</option>'; | |
| 133 | } | |
| 134 | ?> | |
| 135 | </select> | |
| 136 | </td> | |
| 137 | </tr> | |
| 138 | <?php } ?> | |
| 139 | <tr> | |
| 140 | <td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['HEADER']; ?>:</td> | |
| 141 | <td class="setting_name"> | |
| 142 | <textarea name="comments_header" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['comments_header'])); ?></textarea> | |
| 143 | </td> | |
| 144 | </tr> | |
| 145 | <tr> | |
| 146 | <td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['LOOP']; ?>:</td> | |
| 147 | <td class="setting_name"> | |
| 148 | <textarea name="comments_loop" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['comments_loop'])); ?></textarea> | |
| 149 | </td> | |
| 150 | </tr> | |
| 151 | <tr> | |
| 152 | <td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['FOOTER']; ?>:</td> | |
| 153 | <td class="setting_name"> | |
| 154 | <textarea name="comments_footer" style="width: 100%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['comments_footer'])); ?></textarea> | |
| 155 | </td> | |
| 156 | </tr> | |
| 157 | <tr> | |
| 158 | <td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['PAGE']; ?>:</td> | |
| 159 | <td class="setting_name"> | |
| 160 | <textarea name="comments_page" style="width: 100%; height: 80px;"><?php echo str_replace($raw, $friendly, ($fetch_content['comments_page'])); ?></textarea> | |
| 161 | </td> | |
| 162 | </tr> | |
| 163 | </table> | |
| 164 | <table cellpadding="0" cellspacing="0" border="0" width="100%"> | |
| 165 | <tr> | |
| 166 | <td width="105"> </td> | |
| 167 | <td align="left"> | |
| 168 | <input name="save" type="submit" value="<?php echo $TEXT['SAVE'].' '.$TEXT['SETTINGS']; ?>" style="width: 200px; margin-top: 5px;"></form> | |
| 169 | </td> | |
| 170 | <td align="right"> | |
| 171 | <input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" /> | |
| 172 | </td> | |
| 173 | </tr> | |
| 174 | </table> | |
| 175 |  | |
| 176 |  | |
| 177 | <?php | |
| 178 |  | |
| 179 | // Print admin footer | |
| 180 | $admin->print_footer(); | |
| 181 |  | |
| 182 | ?> | |
| 0 | 183 | |
| tags/2.6.1/wb/modules/news/save_settings.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | // $Id$ | |
| 4 |  | |
| 5 | /* | |
| 6 |  | |
| 7 | Website Baker Project <http://www.websitebaker.org/> | |
| 8 | Copyright (C) 2004-2005, Ryan Djurovich | |
| 9 |  | |
| 10 | Website Baker is free software; you can redistribute it and/or modify | |
| 11 | it under the terms of the GNU General Public License as published by | |
| 12 | the Free Software Foundation; either version 2 of the License, or | |
| 13 | (at your option) any later version. | |
| 14 |  | |
| 15 | Website Baker is distributed in the hope that it will be useful, | |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | GNU General Public License for more details. | |
| 19 |  | |
| 20 | You should have received a copy of the GNU General Public License | |
| 21 | along with Website Baker; if not, write to the Free Software | |
| 22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 23 |  | |
| 24 | */ | |
| 25 |  | |
| 26 | require('../../config.php');
 | |
| 27 |  | |
| 28 | // Include WB admin wrapper script | |
| 29 | $update_when_modified = true; // Tells script to update when this page was last updated | |
| 30 | require(WB_PATH.'/modules/admin.php'); | |
| 31 |  | |
| 32 | // This code removes any <?php tags and adds slashes | |
| 33 | $friendly = array('<', '>', '?php');
 | |
| 34 | $raw = array('<', '>', '');
 | |
| 35 | $header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['header'])); | |
| 36 | $post_loop = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_loop'])); | |
| 37 | $footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['footer'])); | |
| 38 | $post_header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_header'])); | |
| 39 | $post_footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_footer'])); | |
| 40 | $comments_header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_header'])); | |
| 41 | $comments_loop = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_loop'])); | |
| 42 | $comments_footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_footer'])); | |
| 43 | $comments_page = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_page'])); | |
| 44 | $commenting = $_POST['commenting']; | |
| 45 | $posts_per_page = $_POST['posts_per_page']; | |
| 46 | if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) {
 | |
| 47 | $resize = $_POST['resize']; | |
| 48 | $use_captcha = $_POST['use_captcha']; | |
| 49 | } else {
 | |
| 50 | $resize = ''; | |
| 51 | $use_captcha = false; | |
| 52 | } | |
| 53 |  | |
| 54 | // Update settings | |
| 55 | $database->query("UPDATE ".TABLE_PREFIX."mod_news_settings SET header = '$header', post_loop = '$post_loop', footer = '$footer', posts_per_page = '$posts_per_page', post_header = '$post_header', post_footer = '$post_footer', comments_header = '$comments_header', comments_loop = '$comments_loop', comments_footer = '$comments_footer', comments_page = '$comments_page', commenting = '$commenting', resize = '$resize', use_captcha = '$use_captcha' WHERE section_id = '$section_id'");
 | |
| 56 |  | |
| 57 | // Check if there is a db error, otherwise say successful | |
| 58 | if($database->is_error()) {
 | |
| 59 | $admin->print_error($database->get_error(), ADMIN_URL.'/pages/modify.php?page_id='.$page_id); | |
| 60 | } else {
 | |
| 61 | $admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id); | |
| 62 | } | |
| 63 |  | |
| 64 | // Print admin footer | |
| 65 | $admin->print_footer(); | |
| 66 |  | |
| 67 | ?> | |
| 0 | 68 | |
| tags/2.6.1/wb/modules/news/submit_comment.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | // $Id$ | |
| 4 |  | |
| 5 | /* | |
| 6 |  | |
| 7 | Website Baker Project <http://www.websitebaker.org/> | |
| 8 | Copyright (C) 2004-2005, Ryan Djurovich | |
| 9 |  | |
| 10 | Website Baker is free software; you can redistribute it and/or modify | |
| 11 | it under the terms of the GNU General Public License as published by | |
| 12 | the Free Software Foundation; either version 2 of the License, or | |
| 13 | (at your option) any later version. | |
| 14 |  | |
| 15 | Website Baker is distributed in the hope that it will be useful, | |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | GNU General Public License for more details. | |
| 19 |  | |
| 20 | You should have received a copy of the GNU General Public License | |
| 21 | along with Website Baker; if not, write to the Free Software | |
| 22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 23 |  | |
| 24 | */ | |
| 25 |  | |
| 26 | // Include config file | |
| 27 | require('../../config.php');
 | |
| 28 |  | |
| 29 | require_once(WB_PATH.'/framework/class.wb.php'); | |
| 30 | $wb = new wb; | |
| 31 |  | |
| 32 | // Check if we should show the form or add a comment | |
| 33 | if(is_numeric($_GET['page_id']) AND is_numeric($_GET['section_id']) AND isset($_GET['post_id']) AND is_numeric($_GET['post_id']) AND isset($_POST['comment']) AND $_POST['comment'] != '') {
 | |
| 34 |  | |
| 35 | // Check captcha | |
| 36 | 	if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) { /* Make's sure GD library is installed */
 | |
| 37 | 		if(isset($_POST['captcha']) AND $_POST['captcha'] != ''){
 | |
| 38 | // Check for a mismatch | |
| 39 | 			if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
 | |
| 40 | $_SESSION['captcha_error'] = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA']; | |
| 41 | $_SESSION['comment_title'] = $_POST['title']; | |
| 42 | $_SESSION['comment_body'] = $_POST['comment']; | |
| 43 | 				exit(header('Location: '.WB_URL.'/modules/news/comment.php?id='.$_GET['post_id']));
 | |
| 44 | } | |
| 45 | 		} else {
 | |
| 46 | $_SESSION['captcha_error'] = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA']; | |
| 47 | $_SESSION['comment_title'] = $_POST['title']; | |
| 48 | $_SESSION['comment_body'] = $_POST['comment']; | |
| 49 | 			exit(header('Location: '.WB_URL.'/modules/news/comment.php?id='.$_GET['post_id']));
 | |
| 50 | } | |
| 51 | } | |
| 52 | 	if(isset($_SESSION['catpcha'])) { unset($_SESSION['captcha']); }
 | |
| 53 |  | |
| 54 | // Insert the comment into db | |
| 55 | $page_id = $_GET['page_id']; | |
| 56 | $section_id = $_GET['section_id']; | |
| 57 | $post_id = $_GET['post_id']; | |
| 58 | $title = $wb->add_slashes(strip_tags($_POST['title'])); | |
| 59 | $comment = $wb->add_slashes(strip_tags($_POST['comment'])); | |
| 60 | $commented_when = mktime(); | |
| 61 | 	if($wb->is_authenticated() == true) {
 | |
| 62 | $commented_by = $wb->get_user_id(); | |
| 63 | 	} else {
 | |
| 64 | $commented_by = ''; | |
| 65 | } | |
| 66 | 	$query = $database->query("INSERT INTO ".TABLE_PREFIX."mod_news_comments (section_id,page_id,post_id,title,comment,commented_when,commented_by) VALUES ('$section_id','$page_id','$post_id','$title','$comment','$commented_when','$commented_by')");
 | |
| 67 | // Get page link | |
| 68 | 	$query_page = $database->query("SELECT link FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '$post_id'");
 | |
| 69 | $page = $query_page->fetchRow(); | |
| 70 | 	header('Location: '.$wb->page_link($page['link']).'?id='.$post_id);
 | |
| 71 |  | |
| 72 | } else {
 | |
| 73 | 	header('Location: '.WB_URL.'/pages/');
 | |
| 74 | } | |
| 75 |  | |
| 76 | ?> | |
| 0 | 77 | |
| tags/2.6.1/wb/modules/news/add.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | // $Id$ | |
| 4 |  | |
| 5 | /* | |
| 6 |  | |
| 7 | Website Baker Project <http://www.websitebaker.org/> | |
| 8 | Copyright (C) 2004-2005, Ryan Djurovich | |
| 9 |  | |
| 10 | Website Baker is free software; you can redistribute it and/or modify | |
| 11 | it under the terms of the GNU General Public License as published by | |
| 12 | the Free Software Foundation; either version 2 of the License, or | |
| 13 | (at your option) any later version. | |
| 14 |  | |
| 15 | Website Baker is distributed in the hope that it will be useful, | |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | GNU General Public License for more details. | |
| 19 |  | |
| 20 | You should have received a copy of the GNU General Public License | |
| 21 | along with Website Baker; if not, write to the Free Software | |
| 22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 23 |  | |
| 24 | */ | |
| 25 |  | |
| 26 | // Must include code to stop this file being access directly | |
| 27 | if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
 | |
| 28 |  | |
| 29 | $header = '<style type=\"text/css\"> | |
| 30 | .post_title, .post_date { border-bottom: 1px solid #DDDDDD; }
 | |
| 31 | .post_title { font-weight: bold; font-size: 12px; color: #000000; }
 | |
| 32 | .post_date { text-align: right; font-weight: bold; }
 | |
| 33 | .post_short { text-align: justify; padding-bottom: 5px; }
 | |
| 34 | </style> | |
| 35 | <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">'; | |
| 36 | $post_loop = '<tr class=\"post_top\"> | |
| 37 | <td class=\"post_title\"><a href=\"[LINK]\">[TITLE]</a></td> | |
| 38 | <td class=\"post_date\">[TIME], [DATE]</td> | |
| 39 | </tr> | |
| 40 | <tr> | |
| 41 | <td class=\"post_short\" colspan=\"2\"> | |
| 42 | [SHORT] | |
| 43 | <a href=\"[LINK]\">[TEXT_READ_MORE]</a> | |
| 44 | </td> | |
| 45 | </tr>'; | |
| 46 | $footer = '</table> | |
| 47 | <table cellpadding="0" cellspacing="0" border="0" width="100%" style="display: [DISPLAY_PREVIOUS_NEXT_LINKS]"> | |
| 48 | <tr> | |
| 49 | <td width="35%" align="left">[PREVIOUS_PAGE_LINK]</td> | |
| 50 | <td width="30%" align="center">[OF]</td> | |
| 51 | <td width="35%" align="right">[NEXT_PAGE_LINK]</td> | |
| 52 | </tr> | |
| 53 | </table>'; | |
| 54 | $post_header = addslashes('<table cellpadding="0" cellspacing="0" border="0" width="100%">
 | |
| 55 | <tr> | |
| 56 | <td height="30"><h1>[TITLE]</h1></td> | |
| 57 | <td rowspan="3" style="display: [DISPLAY_IMAGE]"><img src="[GROUP_IMAGE]" alt="[GROUP_TITLE]" /></td> | |
| 58 | </tr> | |
| 59 | <tr> | |
| 60 | <td valign="top"><b>Posted by [DISPLAY_NAME] ([USERNAME]) on [DATE] at [TIME]</b></td> | |
| 61 | </tr> | |
| 62 | <tr style="display: [DISPLAY_GROUP]"> | |
| 63 | <td valign="top"><a href="[BACK]">[PAGE_TITLE]</a> >> <a href="[BACK]?g=[GROUP_ID]">[GROUP_TITLE]</a></td> | |
| 64 | </tr> | |
| 65 | </table> | |
| 66 | <p style="text-align: justify;">'); | |
| 67 | $post_footer = '</p> | |
| 68 | <a href=\"[BACK]\">Back</a>'; | |
| 69 | $comments_header = addslashes('<br /><br />
 | |
| 70 | <style type="text/css"> | |
| 71 | .comment_title { font-weight: bold; }
 | |
| 72 | .comment_text { font-weight: bold; background-color: #FDFDFD; border-bottom: 1px solid #DDDDDD; padding-bottom: 15px; }
 | |
| 73 | .comment_title, .comment_text { border-left: 1px solid #DDDDDD; }
 | |
| 74 | .comment_info { text-align: right; border-right: 1px solid #DDDDDD; }
 | |
| 75 | .comment_title, .comment_info { border-top: 1px solid #DDDDDD; background-color: #EEEEEE; }
 | |
| 76 | </style> | |
| 77 | <h2>Comments</h2> | |
| 78 | <table cellpadding="2" cellspacing="0" border="0" width="100%">'); | |
| 79 | $comments_loop = addslashes('<tr>
 | |
| 80 | <td class="comment_title">[TITLE]</td> | |
| 81 | <td class="comment_info">By [DISPLAY_NAME] on [DATE] at [TIME]</td> | |
| 82 | </tr> | |
| 83 | <tr> | |
| 84 | <td colspan="2" class="comment_text">[COMMENT]</td> | |
| 85 | </tr>'); | |
| 86 | $comments_footer = '</table> | |
| 87 | <br /><a href=\"[ADD_COMMENT_URL]\">Add Comment</a>'; | |
| 88 | $comments_page = '<h1>Comment</h1> | |
| 89 | <h2>[POST_TITLE]</h2> | |
| 90 | <br />'; | |
| 91 | $commenting = 'none'; | |
| 92 | $use_captcha = true; | |
| 93 | $database->query("INSERT INTO ".TABLE_PREFIX."mod_news_settings (section_id,page_id,header,post_loop,footer,post_header,post_footer,comments_header,comments_loop,comments_footer,comments_page,commenting,use_captcha) VALUES ('$section_id','$page_id','$header','$post_loop','$footer','$post_header','$post_footer','$comments_header','$comments_loop','$comments_footer','$comments_page','$commenting','$use_captcha')");
 | |
| 94 |  | |
| 95 | ?> | |
| 0 | 96 | |
| tags/2.6.1/wb/modules/news/view.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | // $Id$ | |
| 4 |  | |
| 5 | /* | |
| 6 |  | |
| 7 | Website Baker Project <http://www.websitebaker.org/> | |
| 8 | Copyright (C) 2004-2005, Ryan Djurovich | |
| 9 |  | |
| 10 | Website Baker is free software; you can redistribute it and/or modify | |
| 11 | it under the terms of the GNU General Public License as published by | |
| 12 | the Free Software Foundation; either version 2 of the License, or | |
| 13 | (at your option) any later version. | |
| 14 |  | |
| 15 | Website Baker is distributed in the hope that it will be useful, | |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | GNU General Public License for more details. | |
| 19 |  | |
| 20 | You should have received a copy of the GNU General Public License | |
| 21 | along with Website Baker; if not, write to the Free Software | |
| 22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 23 |  | |
| 24 | */ | |
| 25 |  | |
| 26 | // Must include code to stop this file being access directly | |
| 27 | if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
 | |
| 28 |  | |
| 29 | // Check if there is a start point defined | |
| 30 | if(isset($_GET['p']) AND is_numeric($_GET['p']) AND $_GET['p'] >= 0) {
 | |
| 31 | $position = $_GET['p']; | |
| 32 | } else {
 | |
| 33 | $position = 0; | |
| 34 | } | |
| 35 |  | |
| 36 | // Get user's username, display name, email, and id - needed for insertion into post info | |
| 37 | $users = array(); | |
| 38 | $query_users = $database->query("SELECT user_id,username,display_name,email FROM ".TABLE_PREFIX."users");
 | |
| 39 | if($query_users->numRows() > 0) {
 | |
| 40 | 	while($user = $query_users->fetchRow()) {
 | |
| 41 | // Insert user info into users array | |
| 42 | $user_id = $user['user_id']; | |
| 43 | $users[$user_id]['username'] = $user['username']; | |
| 44 | $users[$user_id]['display_name'] = $user['display_name']; | |
| 45 | $users[$user_id]['email'] = $user['email']; | |
| 46 | } | |
| 47 | } | |
| 48 |  | |
| 49 | // Get groups (title, if they are active, and their image [if one has been uploaded]) | |
| 50 | $groups[0]['title'] = ''; | |
| 51 | $groups[0]['active'] = true; | |
| 52 | $groups[0]['image'] = ''; | |
| 53 | $query_users = $database->query("SELECT group_id,title,active FROM ".TABLE_PREFIX."mod_news_groups WHERE section_id = '$section_id' ORDER BY position ASC");
 | |
| 54 | if($query_users->numRows() > 0) {
 | |
| 55 | 	while($group = $query_users->fetchRow()) {
 | |
| 56 | // Insert user info into users array | |
| 57 | $group_id = $group['group_id']; | |
| 58 | $groups[$group_id]['title'] = ($group['title']); | |
| 59 | $groups[$group_id]['active'] = $group['active']; | |
| 60 | 		if(file_exists(WB_PATH.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg')) {
 | |
| 61 | $groups[$group_id]['image'] = WB_URL.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg'; | |
| 62 | 		} else {
 | |
| 63 | $groups[$group_id]['image'] = ''; | |
| 64 | } | |
| 65 | } | |
| 66 | } | |
| 67 |  | |
| 68 | // Check if we should show the main page or a post itself | |
| 69 | if(!defined('POST_ID') OR !is_numeric(POST_ID)) {
 | |
| 70 |  | |
| 71 | // Check if we should only list posts from a certain group | |
| 72 | 	if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
 | |
| 73 | $query_extra = " AND group_id = '".$_GET['g']."'"; | |
| 74 | ?> | |
| 75 | 		<style type="text/css">.selected_group_title { font-size: 14px; text-align: center; }</style>
 | |
| 76 | <?php | |
| 77 | 	} else {
 | |
| 78 | $query_extra = ''; | |
| 79 | } | |
| 80 |  | |
| 81 | // Get settings | |
| 82 | 	$query_settings = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
 | |
| 83 | 	if($query_settings->numRows() > 0) {
 | |
| 84 | $fetch_settings = $query_settings->fetchRow(); | |
| 85 | $setting_header = ($fetch_settings['header']); | |
| 86 | $setting_post_loop = ($fetch_settings['post_loop']); | |
| 87 | $setting_footer = ($fetch_settings['footer']); | |
| 88 | $setting_posts_per_page = $fetch_settings['posts_per_page']; | |
| 89 | 	} else {
 | |
| 90 | $setting_header = ''; | |
| 91 | $setting_post_loop = ''; | |
| 92 | $setting_footer = ''; | |
| 93 | $setting_posts_per_page = ''; | |
| 94 | } | |
| 95 |  | |
| 96 | // Get total number of posts | |
| 97 | 	$query_total_num = $database->query("SELECT post_id FROM ".TABLE_PREFIX."mod_news_posts WHERE section_id = '$section_id' AND active = '1' AND title != ''$query_extra");
 | |
| 98 | $total_num = $query_total_num->numRows(); | |
| 99 |  | |
| 100 | // Work-out if we need to add limit code to sql | |
| 101 | 	if($setting_posts_per_page != 0) {
 | |
| 102 | $limit_sql = " LIMIT $position,$setting_posts_per_page"; | |
| 103 | 	} else {
 | |
| 104 | $limit_sql = ""; | |
| 105 | } | |
| 106 |  | |
| 107 | // Query posts (for this page) | |
| 108 | 	$query_posts = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE section_id = '$section_id' AND active = '1' AND title != ''$query_extra ORDER BY position DESC".$limit_sql);
 | |
| 109 | $num_posts = $query_posts->numRows(); | |
| 110 |  | |
| 111 | // Create previous and next links | |
| 112 | 	if($setting_posts_per_page != 0) {
 | |
| 113 | 		if($position > 0) {
 | |
| 114 | 			if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
 | |
| 115 | $pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'&g='.$_GET['g'].'"><< '; | |
| 116 | 			} else {
 | |
| 117 | $pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'"><< '; | |
| 118 | } | |
| 119 | $pl_append = '</a>'; | |
| 120 | $previous_link = $pl_prepend.$TEXT['PREVIOUS'].$pl_append; | |
| 121 | $previous_page_link = $pl_prepend.$TEXT['PREVIOUS_PAGE'].$pl_append; | |
| 122 | 		} else {
 | |
| 123 | $previous_link = ''; | |
| 124 | $previous_page_link = ''; | |
| 125 | } | |
| 126 | 		if($position+$setting_posts_per_page >= $total_num) {
 | |
| 127 | $next_link = ''; | |
| 128 | $next_page_link = ''; | |
| 129 | 		} else {
 | |
| 130 | 			if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
 | |
| 131 | $nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'&g='.$_GET['g'].'"> '; | |
| 132 | 			} else {
 | |
| 133 | $nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'"> '; | |
| 134 | } | |
| 135 | $nl_append = ' >></a>'; | |
| 136 | $next_link = $nl_prepend.$TEXT['NEXT'].$nl_append; | |
| 137 | $next_page_link = $nl_prepend.$TEXT['NEXT_PAGE'].$nl_append; | |
| 138 | } | |
| 139 | 		if($position+$setting_posts_per_page > $total_num) {
 | |
| 140 | $num_of = $position+$num_posts; | |
| 141 | 		} else {
 | |
| 142 | $num_of = $position+$setting_posts_per_page; | |
| 143 | } | |
| 144 | $out_of = ($position+1).'-'.$num_of.' '.strtolower($TEXT['OUT_OF']).' '.$total_num; | |
| 145 | $of = ($position+1).'-'.$num_of.' '.strtolower($TEXT['OF']).' '.$total_num; | |
| 146 | $display_previous_next_links = ''; | |
| 147 | 	} else {
 | |
| 148 | $display_previous_next_links = 'none'; | |
| 149 | } | |
| 150 |  | |
| 151 | // Print header | |
| 152 | 	if($display_previous_next_links == 'none') {
 | |
| 153 | 		echo  str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array('','','','','','', $display_previous_next_links), $setting_header);
 | |
| 154 | 	} else {
 | |
| 155 | 		echo str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array($next_page_link, $next_link, $previous_page_link, $previous_link, $out_of, $of, $display_previous_next_links), $setting_header);
 | |
| 156 | } | |
| 157 |  | |
| 158 | 	if($num_posts > 0) {
 | |
| 159 | 		if($query_extra != '') {
 | |
| 160 | ?> | |
| 161 | <div class="selected_group_title"> | |
| 162 | <?php echo '<a href="'.$_SERVER['PHP_SELF'].'">'.PAGE_TITLE.'</a> >> '.$groups[$_GET['g']]['title']; ?> | |
| 163 | </div> | |
| 164 | <?php | |
| 165 | } | |
| 166 | 		while($post = $query_posts->fetchRow()) {
 | |
| 167 | 			if(isset($groups[$post['group_id']]['active']) AND $groups[$post['group_id']]['active'] != false) { // Make sure parent group is active
 | |
| 168 | $uid = $post['posted_by']; // User who last modified the post | |
| 169 | // Workout date and time of last modified post | |
| 170 | $post_date = gmdate(DATE_FORMAT, $post['posted_when']+TIMEZONE); | |
| 171 | $post_time = gmdate(TIME_FORMAT, $post['posted_when']+TIMEZONE); | |
| 172 | // Work-out the post link | |
| 173 | $post_link = page_link($post['link']); | |
| 174 | 				if(isset($_GET['p']) AND $position > 0) {
 | |
| 175 | $post_link .= '?p='.$position; | |
| 176 | } | |
| 177 | 				if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
 | |
| 178 | 					if(isset($_GET['p']) AND $position > 0) { $post_link .= '&'; } else { $post_link .= '?'; }
 | |
| 179 | $post_link .= 'g='.$_GET['g']; | |
| 180 | } | |
| 181 | // Get group id, title, and image | |
| 182 | $group_id = $post['group_id']; | |
| 183 | $group_title = $groups[$group_id]['title']; | |
| 184 | $group_image = $groups[$group_id]['image']; | |
| 185 | 				if($group_image == '') { $display_image = 'none'; } else { $display_image = ''; }
 | |
| 186 | 				if($group_id == 0) { $display_group = 'none'; } else { $display_group = ''; }
 | |
| 187 | // Replace [wblink--PAGE_ID--] with real link | |
| 188 | $short = ($post['content_short']); | |
| 189 | $wb->preprocess($short); | |
| 190 | // Replace vars with values | |
| 191 | $post_long_len = strlen($post['content_long']); | |
| 192 | 				$vars = array('[PAGE_TITLE]', '[GROUP_ID]', '[GROUP_TITLE]', '[GROUP_IMAGE]', '[DISPLAY_GROUP]', '[DISPLAY_IMAGE]', '[TITLE]', '[SHORT]', '[LINK]', '[DATE]', '[TIME]', '[USER_ID]', '[USERNAME]', '[DISPLAY_NAME]', '[EMAIL]', '[TEXT_READ_MORE]');
 | |
| 193 | 				if(isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
 | |
| 194 | 					if($post_long_len < 9) {
 | |
| 195 | $values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, $post_link, $post_date, $post_time, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email'], ''); | |
| 196 | 					} else {
 | |
| 197 | $values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, $post_link, $post_date, $post_time, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email'], $TEXT['READ_MORE']); | |
| 198 | } | |
| 199 | 				} else {
 | |
| 200 | 					if($post_long_len < 9) {
 | |
| 201 | $values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, $post_link, $post_date, $post_time, '', '', '', '', ''); | |
| 202 | 					} else {
 | |
| 203 | $values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, $post_link, $post_date, $post_time, '', '', '', '', $TEXT['READ_MORE']); | |
| 204 | } | |
| 205 | } | |
| 206 | echo str_replace($vars, $values, $setting_post_loop); | |
| 207 | } | |
| 208 | } | |
| 209 | } | |
| 210 |  | |
| 211 | // Print footer | |
| 212 | 	if($display_previous_next_links == 'none') {
 | |
| 213 | 		echo  str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array('','','','','','', $display_previous_next_links), $setting_footer);
 | |
| 214 | 	} else {
 | |
| 215 | 		echo str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array($next_page_link, $next_link, $previous_page_link, $previous_link, $out_of, $of, $display_previous_next_links), $setting_footer);
 | |
| 216 | } | |
| 217 |  | |
| 218 | } elseif(defined('POST_ID') AND is_numeric(POST_ID)) {
 | |
| 219 |  | |
Also available in: Unified diff
Creating 2.6.1 tag