Loading …

Change Log

Version 0.3.3


  • Added feed-activity stat for admins.
  • Created a proper repository for statistical queries.
  • Communicated user role privileges more transparently.
  • Overhauled feedback system to properly support multi-bubbles (potentially of different types).
  • Bugfix: requesting a new email-change after having used an annullation hashed link has faultily tried to validate hashed link.
  • Added notice for admins when maintenance mode is active.
  • Added alt attribute to all images.
  • Bugfix: admins couldn't see real-name and user-name combo on user profiles.
  • Added "post by admin logged in as another user" marker when editing conversations and comments that didn't have one yet.
  • Added rudimentary script execution time monitoring and benchmarking tool.
  • Users can mark all unread notifications as read.
  • Increased click and hover area of notification mark-as-read toggler.
  • Updated pagination to be even more reusable.
  • Added pagination to notification popup (when too many).
  • Transitioned from offset pagination to keyset pagination.
  • Added pagination by letters where it makes sense.
  • Added pagination information (page, letter) more uniformly to document title.
  • Overhauled word extraction in CaseTools to also identify numerics as words (i.e. "2020").
  • Changed URL structure of announcements.
  • Bugfix: detection of medium-bad crawler bots was faulty.
  • Added accordion module.
  • Implemented accordion module on change-log page.
  • Bugfix: reaction messages might have gotten involuntarily split up and scattered on pages with more than one feedback instance (custom feedback).
  • Bugfix: left-open mobile-menu after resize-window tried to collapse and briefly animated into a thin slit.
  • Bugfix: dev environment had horrendous loading times.
  • Bugfix: users could set some mandatory fields to empty string; i.e. first-name.

Version 0.3.2


  • Made anonymous-user profile visitable but properly limited some interactions.
  • For security reasons, admins logged in as another user cannot change the password or email anymore.
  • Bugfix: resending mail for newsletter-subscription did not update hash info.
  • Implemented uniform canonical-URL redirection for user profile and sub pages, Pages, Brands and Aggregates.
  • Added open-graph meta tags.
  • Added autogenerated XML sitemap.
  • Bugfix: cronjob for auto-sending mail to new-recipient of email-change request used wrong time threshold.
  • Added time reference page.
  • Added prevention measures for unicode graphemes.
  • Enhanced FormRequest class with configurable source.
  • Bugfix: confirm email-change form does not validate correctly when new-email and repeat-email are identical except in case.
  • Replaced hardcoded placeholders for languages dropdown in account-settings with a more dynamically constructed version.
  • Added: users can download their account data (what has been migrated so far).
  • Enhanced checkbox-lists to support certain hotkey+click combinations.
  • Bugfix: flipswitch module didn't reset on-form-reset.
  • Bugfix: autocomplete module faultily reported a forged request.
  • Bugfix: users could delete their own autogenerated conversations.
  • Enhanced cleanup-files cronjob to also support subdirectories.
  • Bugfix: the admin login-as feature didn't expire the session as advertised.
  • Blocked crawlers from crawling more than they are allowed to.
  • Finished conversation-title for CSS responsivity.

Version 0.3.1


  • Bugfix: inconsistent hash field lengths in tables.
  • Integrated custom-feedback design in error-documents.
  • Bugfix: did not log errors in cronjobs and CLI scripts.
  • Centralized custom log files for cronjobs and CLI scripts.
  • Logged-out users can change their email address.
  • For security reasons, logged-in users cannot simply change their email address in [ Account › Settings ] anymore.
  • Bugfix: banned users could change their password.
  • Bugfix: short-URLs got caught up in too-many-redirects.
  • Bugfix: notifier dot-badge wasn't removed after final mark-notification-as-read in mobile view.
  • Bugfix: cache-busting data of user-avatars weren't properly loaded.

Version 0.3.0


  • Bugfix: adjustments to send-newsletter script for future testing.
  • Added mail 2020-07 as static announcement page.
  • Bugfix: deleted conversations and comments previewed the actual text instead of the deleted-marker in notifications (it still does so where it makes sense, i.e. "moderator deleted your comment").
  • Added first batch of stats to admin dashboard.
  • Added statement about Pape's legacy; to logged-out front-page and as standalone page.

Version 0.2.12


  • (First) Deployment to {PRODUCTION}.
  • Bugfix: admins could not reset their password and therefore could not login for that first time where they have to reset their password.
  • Bugfix: faulty protocol detection.
  • Bugfix: blocking of bad bots and crawlers caused 500 errors and bad errors in log files due to misconfiguration.
  • Bugfix: error-documents not accessible during maintenance mode.
  • Bugfix: short-URL detection uses outdated table name.
  • Bugfix: error messages on error-documents not loading properly during maintenance mode.
  • Deactivated SHD.

Version 0.2.11


  • Applied proper mail design to all mails.

Version 0.2.10


  • Bugfix: Firefox didn't display the mini-login form as intended.
  • Bugfix: Firefox didn't dispaly flipswitch elements as intended.
  • Bugfix: users could not load their notifications when on an error page.
  • Slightly tweaked CSS here and there.
  • Added ability to give individual nav-tabs custom classes for their responsive counterparts.
  • Bugfix: suboptimally implemented detection of endless-scrolling-finish forced users to scroll up and down in order to trigger a second, unnecessary load-request.
  • Bugfix: when feed-pages ended on a joined-type conversation, endless-scrolling would load a wrong list range that resulted in a never-ending feed.
  • Bugfix, finally(!): session often ended after 24 minutes of idle time; misconfigured garbage collection / bad defaults.
  • (internal) Redesigned session management.
  • (internal) Added security measures to prevent identity theft for logged-in users.
  • Code optimization: avoided unnecessary AJAX request for endless-scrolling on a short feed.
  • Implemented Google ReCaptcha.
  • (internal) Added measures to attempt to block traffic from unwanted crawlers and bots.
  • Added "post by admin logged in as another user" marker for conversations and comments, where applicable.
  • Implemented spoiler shortcode interpretation.
  • Giving and taking away a user-role emits a notification to the affected user (unless self).
  • Prevented using login-as for yourself.

Version 0.2.9


  • Slightly modified the Pape memoriam image, and added a portrait-format version for smaller screens.
  • Bugfix: newsletters tried to load images from password-protected dev-server.
  • Admins can create newsletters.
  • Admins can delete newsletters.
  • Admins can send the static first newsletter.
  • Popover (context-menu) togglers now show tooltip w/o click.
  • (internal) Added routine to extract media breakpoints from the stylesheets to PHP.
  • (internal) Converted en_US-static into potentially versioned locale-dynamic privacy-policy and terms-and-condition pages.
  • Users can subscribe to the newsletter (double opt-in) under [ Account › Settings ].
  • Users can unsubscribe from the newsletter.
  • Added scroll-to-top jumper.
  • Bugfix: logging in during maintenance mode – pass for admins, block w/ feedback for others – was not working cleanly.
  • Bugfix: maintenance mode has been ignored for many AJAX requests until next page reload.
  • Made a handful of pages accessible even during maintenance (like privacy-policy).
  • Migration of multi-identity data (i.e. users posting conversations and comments as Brands).
  • Display multi-identity conversation-starters as Brands.
  • Display multi-identity commenters as Brands.
  • Admins and comment-moderators can see multi-identities exposed in tooltips.
  • Bugfix: furtive "undefined property" warning about the edit-conversation and -comment forms in public source code.
  • Added cookie-notice popup (which makes the session lifetime bug now all the more raging). The cookie policy is now based on "proof of cookie consent".
  • (internal) Stability: removed faulty object cloning.
  • Updated privacy-policy.
  • Updated imprint.
  • Updated terms-and-conditions.
  • (internal) Security: added session-hijack check.
  • Prevented use of cookies until consent was given (in situations where logged-in-ness isn't required).



  • Hotfix: crawlers detect 403 errors on the logged-out-front-page.

Version 0.2.8


  • Made change log accessible by anybody (see footer menu).
  • Migration of notifications.
  • Display loaded notifications.
  • Liking a conversation or comment emits a notification to the author.
  • Deleting a comment emits a notification to the commenter.
  • Deleting a conversation emits a notification to the conversation starter.
  • Starting a conversation on a user-profile or toplist emits a notification to the profile-owner.
  • Mentioning a user (by manually typing the thing) when starting a conversation or commenting emits a mentioned-type notification.
  • Mentioning a previously unmentioned user when editing a conversation or comment emits a mentioned-type notification.
  • Rejecting a friend request emits a notification.
  • User can mark notifications as read and unread.
  • Made areas that are under construction inaccessible for non-admins.
  • Bugfix: users could like/unlike deleted conversations and comments.
  • Bugfix: users could not edit freshly posted conversations and comments until the next page-load.
  • (internal) Added multibyte support in PHP functions on strings (where it makes sense).
  • (internal) Added cron job / scheduled task to daily remove old notifications.
  • (internal) Changed it to load the mere amount of pending friend requests, instead of fully loading the user instances on each page-load.
  • Enabled mini-search (stupid-search) for lists / aggregates.
  • Deactivated user registration (for a few first months).
  • Added manage-newsletters area for admins.
  • Admin can send simple, semi-hard-coded first mail to self and admin-address (mail body is work in progress).
  • (internal) Enabled loading of a conversation's edit-history. (Preparation for a future feature)
  • (internal) Added anti-CSRF measures.
  • Bugfix: active maintenance mode has let users log in, but caused a 500 error.
  • Bugfix: users (technically, only admins) could send friend requests and follow banned users.

Version 0.2.7


  • (internal) Changed database credentials.
  • Migration of user-edits of conversations and comments.
  • Fixed wrong order of user-edits of conversations and comments.
  • With the order of user-edits now fixed, restored the most current text to be displayed.
  • Users can edit conversations and comments.
  • Added URL-to-HTML conversion in conversations and comments.
  • Added new conversation type "{user} joined Favslist".
  • Made registration trigger autogeneration of new Registration-type conversation.
  • Added home / front-page feed.
  • Added behind-the-scenes insight to programmers at work.

Version 0.2.6


  • Skeletal migration of Brands (and Fan Pages … same thing).
  • Reactivated Brand-detail controller.
  • Added feed to Brands.
  • Users can start conversations on Brands.
  • Users can mini-search for Brands.
  • Finalized responsive CSS of advanced start-conversation form.
  • Optimized SVG icons.
  • Added some further icons: encircled-question, favs (mini-logo), chain (links), arrow (ranking), equal, rss (?), bars-down (Brands filter), encircled-arrow (news).
  • Added ability to colorize svg icons.
  • Implemented magnifying-glass icon in mini-search form.
  • Tested a different migration sample set, of 50k older conversations and comments. Including necessary bugfixes.
  • Migration of all conversations and comments.
  • Split unreasonably long Rating-lists (i.e. "Cool Guy v0.1a rated Genki Rockets II: No Border Be... and 179 more pages"; conversation 1085716).
  • Split unreasonably long Ranking-lists.
  • Added toplist and finalized Ranking-type conversations.
  • Migration (and restoration of most) of the broken Ranking-type conversations.
  • Bugfix: users couldn't search for three-letter words.
  • Added tooltip-popovers (popovers that look like tooltips but have a slimscroll-bar) so as to cope w/ long lists; like "comment liked by 44 users" (conversation 5988).

Version 0.2.5


  • (internal) Optimized slow loading of conversations.
  • Logged-in users can start conversations on user-profiles (if the profile-owner's privacy preference allows it).
  • Changed it so that users have the right to delete their own conversations.
  • Added feed to Aggregates.
  • Logged-in users can start conversations on Aggregates.
  • Built controller for viewing a single user Toplist (with placeholders for actual Toplist content).
  • Added feed to Toplists.
  • Logged-in users can start conversations on Toplists (if the profile-owner's privacy preference allows it).
  • Built controllers for profile toplists and my-toplists areas.
  • Enabled l10n-dependent, dynamic language rules for genitive constructions (i.e. apostrophe magic like "Husky's Current Fav Five" but "Gries' Current Fav Five").
  • Logged-in users can start SimpleText-conversations on Pages.
  • Added responsive CSS to complex Page-detail feed (smartphone / tablet screens).
  • Added some icons: speech-bubble, magnifying-glass.

Version 0.2.4


  • Implemented pagination in user-profile feed. Now users can load more conversations via pagination.
  • (internal) Added non-core user preferences.
  • Users can set new preference "feeds use pagination-or-endless-scrolling" in account-settings. (Default is pagination)
  • Added flipswitch form-element.
  • Users can load more conversations via endless-scrolling.
  • Added thumb icon.
  • Fixed escaping of [' " \] chars in conversations and comments.
  • Bugfix: text sanitization of conversations and comments messed up all texts containing "<" or ">".
  • (internal) Structurally cleaned up icon management.
  • Added some icons: endless-scrolling-finish.

Version 0.2.3


  • (internal) Developed prototype solution for conversation-references to toplists.
  • Tweaked conversation-title for SimpleText-type conversations with the "about triangle".
  • Migration of conversation-references of Toplists (of sample set).
  • Deleted comments are marked as deleted.
  • User can delete own comment (but they won't be allowed to delete their own conversation).
  • Moderator can delete any comment.
  • Made feed context-menu dynamic in having or not having unrelated menu-items.
  • Moderator can restore any deleted comment.
  • Migration of previously (in OldDB) deleted comments (of sample set).
  • Deleted conversations are marked as deleted, and only accessible by comment-moderators.
  • (internal) Sanitized comment and conversation texts during migration.
  • Moderator can delete any conversation.
  • Moderator can restore any deleted conversation.
  • Migration of previously (in OldDB) deleted conversations (of sample set).

Version 0.2.2


  • Hotfix: user cannot reset (logged out) or change (logged in) password.

Version 0.2.1


  • Migration of all conversation-references of Pages (not just opinions) (of sample set).
  • Load and display conversation-references in Page feed.
  • Display Page in conversation-title (all remaining types).
  • Migration of all conversation-reference of users (of sample set).
  • Display user feed with loaded conversations.
  • Migration of all conversation-reference of aggregates (of sample set).
  • Users can add comments to existing conversations.
  • Added temporary "Report Bugs" mailto-link.
  • Bugfix: adjoined-sidebar vs. footer z-index.
  • Bugfix: mini-search spinner doesn't reset properly when resetting search.
  • Bugfix: account-settings nav-tabs-responsive options have empty texts.
  • Users can load all comments of a conversation.
  • Added automatic redirect to conversation-detail if load-all-comments was clicked but comments-list is too long.
  • Made add-comment in a user-profile context respect the user's privacy preferences.
  • (internal) Bugfix: down-migration of relationship_data table is causing issues.

Version 0.2.0


  • Migration of ListTemplates (less than skeleton … DNA).
  • Migration of sample set of conversations and its comments.
  • Display conversation-detail, including comments list.
  • Display elapsed time in human-readable, localized form (i.e. "3 weeks ago", "vor 20 Minuten").
  • Migration of user-Likes for conversations and comments (of sample set).
  • Display user-likes of conversations and comments, respecting their name-privacy setting.
  • User can Like and Unlike conversations and comments (new Like events).
  • Display conversation-title in conversation-detail (i.e. "Papissama wrote his opinion about Ghostbusters").
  • Migration of conversation-references for opinions (of sample set).
  • Added feed to Pages; only shows opinions so far.
  • Added a check to potentially adjust a Page-URL redirectingly if it's not the same as from the DB.
  • Migration (and restoration of most) of the broken Rating-type conversations (of sample set).

Version 0.1.4


  • Migration of language-system-independent "alternative-title" Page-aliases.
  • Added Page-aliases to edit-Page (readonly field) and Page-detail pages.
  • Migration of Page-tags.
  • Added Page-tags to edit-Page page in readonly field.
  • "Search related video games" modal in edit-Page now shows search results.
  • Tweaked relevancy of searches: exact matches get highest priority.
  • Added revision / Page history to the edit-Page moderation tab.
  • Added checkbox-list for edit-Page's music-album genres and book genres (but uses static data).
  • Migration of book-author relationships.
  • Showed list of authors in Page-detail and edit-Page views for book-Pages; and vice versa: showed list of books in Page-detail and edit-Page views for author-Pages.
  • Migration of album-song relationships, including relationship-attributes (track, disc).
  • Showed tracklist in music-album page; "detail" and "edit" views.
  • Showed music-albums in song page; only "detail" view.
  • (internal) Added class inheritance to Pages.
  • Bugfix malfunction: emit 401 if session has expired.
  • Added a spinner icon in mini-search.
  • Added an autocomplete feature in music-album's (too long) genre list for edit-Page.
  • (internal) Streamlined migration of any relationship, for faster future migrations.
  • (internal) Optimized path retrieval for faster performance.
  • Modified footer.
  • Migration of movie-actor relationships.
  • Showed actors in movie page; only "detail" view.
  • Showed movies in actors page; only "detail" view.

Version 0.1.3


  • Migration of approval and rejection info of Page-creations.
  • Bugfix: modified mini-search so that, e.g. "Pape Badiane" properly finds the user Papissama, instead of failing to find that whole string in first-name or last-name.
  • Modified mini-search so that banned users and deleted Pages are excluded from the results.
  • Banned users are marked "(banned)" in a user's friend/follower lists.
  • Added restriction to only let Page-moderators access deleted Pages.
  • Added list of current, removable categories in edit-Page page.
  • Added functional add-category modal to edit-Page page.
  • Added non-functional search-video-game modal to edit-Page page.
  • Added checkbox-list for edit-Page's food genres and fictional-character media (but uses static data).
  • Made edit-Page page load only the necessary tabs and form-parts dynamically (showcase examples: Food and Fictional-Character categories).
  • Made pages-list pagination actually usable; shows all reachable pages.
  • Added previous / next / jump features to pages-list pagination.
  • Implemented pagination in list of unreviewed Page-creations.
  • Dismissable popups and menus (except for alerts) can be closed by clicking outside.

Version 0.1.2


  • Added a mockup for the edit-Page page.
  • Migration of Page-videos, including correction of faulty data.
  • Added individual embedding of Page-videos; as well as video-wall.
  • Added video shortcodes.

Version 0.1.1


  • Migration of Page category tree and categorization data.
  • Page category is displayed everywhere and replaces placeholders.
  • Display category tree in manage-categories for admins.
  • Admin can add categories.
  • Admin can edit categories.
  • Admin can delete categories.
  • Admin can move categories.
  • User can select category from dropdown in pages-list.
  • Replaced placeholder pagination with a functioning one.
  • Implemented vertically tabbed tertiary menu.
  • Expanded admin-area to team-area, in order to handle other user-groups than admins.
  • Rebuilt grouped secondary menu to be dynamic.

Version 0.1.0


  • Migration of Pages (skeleton).
  • Users can view base data on responsive Page-detail page.
  • Users can mini-search for Pages.
  • Users can see a first list of Pages (the most recent 100) as a wide-tile list with implied (but yet non-functional) pagination.
  • Users can pick a time format in account-settings which affects all times that are displayed as a fixed date.

Version 0.0.10


  • Implemented sidebar.
  • Users can use mini-search; search for users.

Version 0.0.9


  • (internal) Globally renamed all class methods from snake-case to camel-case.

Version 0.0.8


  • (internal) Split off parts of the Model classes into ModelRepository classes.
  • (internal) Fixed faulty DB data (like badly escaped "O\'Reilly") during migration.
  • Migration of usernames.
  • Migration of user images.
    • Rescaled.
    • Cropped.
    • Fixed MIME-type.
    • W/ thumbnails.
  • Users can change intricate privacy preferences in account-settings:
    • Disallow (new) Friends.
    • Disallow (new) Followers.
    • Disallow profile visibility to unregistered users.
    • Set who can comment (User, Friend, Follower).
    • Set who can see the username (User, Friend, Follower).
    • Set who can see the private image (User, Friend, Follower).
  • Users can change their user data (i.e. email, password, first-, last- and username) in account-settings.
  • Users can change their user image in account-settings, and crop a partial selection.
  • Users are displayed by either real name or username, depending on privacy preference.
  • Users are displayed by either public or private image, depending on privacy preference.
  • (internal) Cron job / scheduled task daily cleans up tmp-upload dir.

Note: Unfortunately, some users have duplicate images for private and public images because the old system used a troublesome logic, and it couldn't be figured out how to programmatically detect duplicates. But users can easily remove the duplicate themselves in their account-settings.

Version 0.0.7


  • Session management: logged-in user is stored in session. (No more fake-logins!)
  • Existing users can log in.
  • Existing users can reset their password if logged out.
  • Existing users must reset their password (for security reasons).
  • Only logged-in users can access exclusive logged-in area.
  • Only admins can access exclusive admin-area.
  • Banned users cannot log in.
  • New users can register (double opt-in). Confirmation links can:
    • be confirmed
    • be annulled
    • expire
  • Mails will be sent to the users upon registration and password-reset.
  • Admins can log in as other users.
  • Admins can ban and unban users.
  • Admins can enable / disable the maintenance mode.
  • Header displays notifier badge w/ actual amount of pending friend-requests.
  • QueryBuilder uses CakePHP's query tools.

Version 0.0.6


  • Site has two responsive headers: for logged-out and logged-in users.
  • Site has primary menu.
  • Site is traversable. (No more placeholder pages)
  • Site properly uses Bootstrap, has some fundamental CSS; including the distinctive Noodle font.
  • Site uses its first user avatar.
  • There are mockup designs for coming features and page elements (like the activity feed).
  • Dedicated login page has a form and controller.
  • Allowed-actions are moved from nodes to controllers.

Version 0.0.5


  • Site has a "build".
  • Site has a cache.
  • L10n is automated and cached.

Version 0.0.4


Using fake-logins:

  • Site has hotkeys via Mousetrap.
  • Site uses an actual MVC structure.
  • Site replaced BetterDBModel w/ SimpleModel.
  • Site can redirect w/ ease.
  • Controllers can use a multi-purpose QueryBuilder.
  • New migration w/ Phinx replaced custom migration.
  • Migration of Friends and Follower data.
  • Migration of user VIP, IP, session data.
  • Users have a more meaningful privacy setting.
  • Users can send friend requests.
  • Users can cancel sent friend requests.
  • Users can confirm recieved friend requests.
  • Users can reject recieved friend requests.
  • Users can follow users.
  • Users can unfollow users.
  • Users can manage friends and followers.
  • User class uses lazy-loading … for a brief time.
  • Users can change their privacy and gender data in account-settings.
  • Profile visitors can see list of friends and followers.
  • Mutual friend requests are auto-confirmed.
  • Migration files have phpdoc documentation.
  • More tenacious i18n.
  • Admins can assign users to user groups (AJAX forms).
  • Mysqli queries auto-close.
  • Replaced individual form alerts w/ one single global alert system.

Version 0.0.3


  • Re-established legacy URL structure.
  • Detect short-URLs.
  • Site has placeholder pages for all possible pages.
  • Site has error-documents.
  • Site throws custom exceptions.
  • Site uses phpdoc documentation.
  • Site deploys w/ Bitbucket Pipelines.
  • Migration of users, linked-accounts, Happening-Now slides data.

Version 0.0.2


  • BetterDBModel represents DB tables.
  • BetterDBModel allows many-to-many, one-to-many, one-to-one relationships.
  • Site uses namespaces.
  • Site uses composer.
  • Site has a toolbox, i.e. for case-conversion.
  • Migration of newsticker-announcements data.
  • Further development of custom migration.

Version 0.0.1


  • Site has a repository and project structure.
  • Site has a DBSuite.
  • Site allows translation of strings.
  • Development of custom migration.

  • image/svg+xml
    Alex Mauer
  • image/svg+xml
  • image/svg+xml

Grab an exclusive look behind the scenes to see our diligent programmers hard at work.