Reputation Activity
-
TSP got a reaction from Martin A. in Move logic of moderation tools etc. away from templatesI discussed this briefly with @Daniel F and @Martin A. a week ago, but I'm creating this topic to make sure it's not forgotten and it can hopefully be added to some todo-list for a future version.
I realize there might be good reason for why you've done something like you've done, but in that case I would happy to hear about the reasoning and maybe get some discussion on it.
Example 1: Badges
This is part of your template code in forums/front/topics/post.phtml:
<div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> {{if ! $comment->isFirst() and $comment->author()->member_id AND $comment->author()->member_id == $item->author()->member_id}} <li><strong class="ipsBadge ipsBadge_large ipsComment_authorBadge">{lang="author"}</strong></li> {{endif}} {{if $comment->author()->hasHighlightedReplies()}} <li><strong class='ipsBadge ipsBadge_large ipsBadge_highlightedGroup'>{expression="\IPS\Member\Group::load( $comment->author()->member_group_id )->name" raw="true"}</strong></li> {{endif}} {{if ( $comment->item()->isSolved() and $comment->item()->mapped('solved_comment_id') == $comment->pid )}} <li><strong class='ipsBadge ipsBadge_large ipsBadge_positive ipsBadge_reverse'><i class='fa fa-check'></i> {lang="this_is_a_solved_post"}</strong></li> {{endif}} {{if $comment->isFeatured()}} <li><strong class='ipsBadge ipsBadge_large ipsBadge_popular'>{lang="this_is_a_featured_post"}</strong></li> {{endif}} {{if ( settings.reputation_enabled and settings.reputation_highlight and $comment->reactionCount() >= settings.reputation_highlight ) }} <li><strong class='ipsBadge ipsBadge_large ipsBadge_popular'>{lang="this_is_a_popular_post"}</strong></li> {{endif}} </ul> </div> I have a plugin where I want to remove the "Author"-badge in some circumstances. In order to do this, I have to choose the following hook point and do a replace: div[data-controller='core.front.core.comment'] div.ipsComment_badges > ul > li > strong.ipsComment_authorBadge
The problem here is that the element I really would want to target is the li-element, but I can't. The consequence is that I leave an empty li-element behind and this creates extra spacing in the theme (which may or not be visible depending on whether there's another badge next to it)
My solution to this is:
public function post( $item, $comment, $editorName, $app, $type, $class='' ) { $return = parent::post( $item, $comment, $editorName, $app, $type, $class ); return str_replace( "<li>\n<!-- Post anonymously: removed author-badge -->\n</li>", '<!-- Post anonymously: removed author-badge and empty li-tag -->', $return ); } But this will more likely be something that will cause issues on an upgrade.
It would be better if there was a getBadges()-function that would provide the badges and I could override.
Example 2: Ellipsis menu and/or moderation tools:
You also have an awful lot of logic in your templates that has to do with moderation tools. Look at all this stuff, from the same template:
<ul id='elControls_{$comment->$idField}_menu' class='ipsMenu ipsMenu_narrow ipsHide'> {{if $comment->canReportOrRevoke() === TRUE}} <li class='ipsMenu_item'><a href='{$comment->url('report')}' data-ipsDialog data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-ipsDialog-flashMessage='{lang="report_submit_success"}' data-ipsDialog-title="{lang="report_post"}" data-action='reportComment' title='{lang="report_content"}'>{lang="report"}</a></li> {{endif}} {{if $comment->mapped('first') }} <li class='ipsMenu_item'><a href='{$comment->item()->url()}' title='{lang="share_this_post"}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elSharePost_{$comment->$idField}_menu' data-ipsDialog-title="{lang="share_this_post"}" d='elSharePost_{$comment->$idField}' data-role='shareComment'>{lang="share"}</a></li> {{else}} <li class='ipsMenu_item'><a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) )}' title='{lang="share_this_post"}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elSharePost_{$comment->$idField}_menu' data-ipsDialog-title="{lang="share_this_post"}" id='elSharePost_{$comment->$idField}' data-role='shareComment'>{lang="share"}</a></li> {{endif}} {{if $comment->canEdit() || ( !$comment->mapped('first') and ( $comment->canPromoteToSocialMedia() || $comment->item()->canSolve() || $comment->canDelete() || $comment->canHide() || $comment->canUnhide() || $comment->canSplit() || $item->canFeatureComment() || $item->canUnfeatureComment() || ( $comment->hidden() == -2 AND \IPS\Member::loggedIn()->modPermission('can_manage_deleted_content') ) ) )}} <li class='ipsMenu_sep'><hr></li> {{endif}} {{if $comment->canEdit()}} {{if $comment->mapped('first') and $comment->item()->canEdit()}} <li class='ipsMenu_item'><a href='{$comment->item()->url()->setQueryString( 'do', 'edit' )}'>{lang="edit"}</a></li> {{else}} <li class='ipsMenu_item'><a href='{$comment->url('edit')}' data-action='editComment'>{lang="edit"}</a></li> {{endif}} {{endif}} {{if $comment->hidden() == -2 AND \IPS\Member::loggedIn()->modPermission('can_manage_deleted_content')}} <li class='ipsMenu_item'><a href='{$comment->url('restore')->csrf()}' data-confirm data-confirmSubMessage='{lang="restore_as_visible_desc"}'>{lang="restore_as_visible"}</a></li> <li class='ipsMenu_item'><a href='{$comment->url('restore')->csrf()->setQueryString( 'restoreAsHidden', 1 )}' data-confirm data-confirmSubMessage='{lang="restore_as_hidden_desc"}'>{lang="restore_as_hidden"}</a></li> <li class='ipsMenu_item'><a href='{$comment->url('delete')->csrf()->setQueryString( 'immediately', 1 )}' data-confirm data-confirmSubMessage='{lang="delete_immediately_desc"}'>{lang="delete_immediately"}</a></li> {{else}} {{if $comment instanceof \IPS\Content\Hideable}} {{if !$comment->hidden() and $comment->canHide()}} <li class='ipsMenu_item'><a href='{$comment->url('hide')->csrf()}' data-ipsDialog data-ipsDialog-title="{lang="hide"}">{lang="hide"}</a></li> {{elseif $comment->hidden() and $comment->canUnhide()}} <li class='ipsMenu_item'><a href='{$comment->url('unhide')->csrf()}'>{lang="unhide"}</a></li> {{endif}} {{endif}} {{if $comment->canSplit()}} <li class='ipsMenu_item'><a href='{$comment->url('split')}' data-action='splitComment' data-ipsDialog data-ipsDialog-title="{lang="split_to_new" sprintf="\IPS\Member::loggedIn()->language()->addToStack( $item::$title )"}">{lang="split"}</a></li> {{endif}} {{if $comment->canDelete()}} <li class='ipsMenu_item'><a href='{$comment->url('delete')->csrf()->setPage('page',\IPS\Request::i()->page)}' data-action='deleteComment' data-updateOnDelete="#commentCount">{lang="delete"}</a></li> {{endif}} {{if $comment->isFeatured() AND $item->canUnfeatureComment()}} <li class='ipsMenu_item'><a href='{$comment->url('unfeature')->csrf()->setPage('page',\IPS\Request::i()->page)}' data-action="unrecommendComment">{lang="unrecommend_content"}</a></li> {{endif}} {{if !$comment->isFeatured() AND $item->canFeatureComment()}} <li class='ipsMenu_item'><a href='{$comment->url('feature')->csrf()->setPage('page',\IPS\Request::i()->page)}' data-ipsDialog data-ipsDialog-title='{lang="recommend_post"}' data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-action="recommendComment">{lang="recommend_content"}</a></li> {{endif}} {{if ( ! $comment->mapped('first') and $comment->canPromoteToSocialMedia() )}} <li class='ipsMenu_item'>{template="promoteLink" app="core" group="global" params="$comment"}</li> {{endif}} {{endif}} </ul> In my opinion a lot of this logic should rather come from new and more sentralized functions like: $comment->getModeratorOptions() or something that would return a list of prepared <a>-elements or an array or object with the necessary components to also set things like 'data-ipsDialog' etc. for some items.
-
TSP got a reaction from teraßyte in Move logic of moderation tools etc. away from templatesI discussed this briefly with @Daniel F and @Martin A. a week ago, but I'm creating this topic to make sure it's not forgotten and it can hopefully be added to some todo-list for a future version.
I realize there might be good reason for why you've done something like you've done, but in that case I would happy to hear about the reasoning and maybe get some discussion on it.
Example 1: Badges
This is part of your template code in forums/front/topics/post.phtml:
<div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> {{if ! $comment->isFirst() and $comment->author()->member_id AND $comment->author()->member_id == $item->author()->member_id}} <li><strong class="ipsBadge ipsBadge_large ipsComment_authorBadge">{lang="author"}</strong></li> {{endif}} {{if $comment->author()->hasHighlightedReplies()}} <li><strong class='ipsBadge ipsBadge_large ipsBadge_highlightedGroup'>{expression="\IPS\Member\Group::load( $comment->author()->member_group_id )->name" raw="true"}</strong></li> {{endif}} {{if ( $comment->item()->isSolved() and $comment->item()->mapped('solved_comment_id') == $comment->pid )}} <li><strong class='ipsBadge ipsBadge_large ipsBadge_positive ipsBadge_reverse'><i class='fa fa-check'></i> {lang="this_is_a_solved_post"}</strong></li> {{endif}} {{if $comment->isFeatured()}} <li><strong class='ipsBadge ipsBadge_large ipsBadge_popular'>{lang="this_is_a_featured_post"}</strong></li> {{endif}} {{if ( settings.reputation_enabled and settings.reputation_highlight and $comment->reactionCount() >= settings.reputation_highlight ) }} <li><strong class='ipsBadge ipsBadge_large ipsBadge_popular'>{lang="this_is_a_popular_post"}</strong></li> {{endif}} </ul> </div> I have a plugin where I want to remove the "Author"-badge in some circumstances. In order to do this, I have to choose the following hook point and do a replace: div[data-controller='core.front.core.comment'] div.ipsComment_badges > ul > li > strong.ipsComment_authorBadge
The problem here is that the element I really would want to target is the li-element, but I can't. The consequence is that I leave an empty li-element behind and this creates extra spacing in the theme (which may or not be visible depending on whether there's another badge next to it)
My solution to this is:
public function post( $item, $comment, $editorName, $app, $type, $class='' ) { $return = parent::post( $item, $comment, $editorName, $app, $type, $class ); return str_replace( "<li>\n<!-- Post anonymously: removed author-badge -->\n</li>", '<!-- Post anonymously: removed author-badge and empty li-tag -->', $return ); } But this will more likely be something that will cause issues on an upgrade.
It would be better if there was a getBadges()-function that would provide the badges and I could override.
Example 2: Ellipsis menu and/or moderation tools:
You also have an awful lot of logic in your templates that has to do with moderation tools. Look at all this stuff, from the same template:
<ul id='elControls_{$comment->$idField}_menu' class='ipsMenu ipsMenu_narrow ipsHide'> {{if $comment->canReportOrRevoke() === TRUE}} <li class='ipsMenu_item'><a href='{$comment->url('report')}' data-ipsDialog data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-ipsDialog-flashMessage='{lang="report_submit_success"}' data-ipsDialog-title="{lang="report_post"}" data-action='reportComment' title='{lang="report_content"}'>{lang="report"}</a></li> {{endif}} {{if $comment->mapped('first') }} <li class='ipsMenu_item'><a href='{$comment->item()->url()}' title='{lang="share_this_post"}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elSharePost_{$comment->$idField}_menu' data-ipsDialog-title="{lang="share_this_post"}" d='elSharePost_{$comment->$idField}' data-role='shareComment'>{lang="share"}</a></li> {{else}} <li class='ipsMenu_item'><a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) )}' title='{lang="share_this_post"}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elSharePost_{$comment->$idField}_menu' data-ipsDialog-title="{lang="share_this_post"}" id='elSharePost_{$comment->$idField}' data-role='shareComment'>{lang="share"}</a></li> {{endif}} {{if $comment->canEdit() || ( !$comment->mapped('first') and ( $comment->canPromoteToSocialMedia() || $comment->item()->canSolve() || $comment->canDelete() || $comment->canHide() || $comment->canUnhide() || $comment->canSplit() || $item->canFeatureComment() || $item->canUnfeatureComment() || ( $comment->hidden() == -2 AND \IPS\Member::loggedIn()->modPermission('can_manage_deleted_content') ) ) )}} <li class='ipsMenu_sep'><hr></li> {{endif}} {{if $comment->canEdit()}} {{if $comment->mapped('first') and $comment->item()->canEdit()}} <li class='ipsMenu_item'><a href='{$comment->item()->url()->setQueryString( 'do', 'edit' )}'>{lang="edit"}</a></li> {{else}} <li class='ipsMenu_item'><a href='{$comment->url('edit')}' data-action='editComment'>{lang="edit"}</a></li> {{endif}} {{endif}} {{if $comment->hidden() == -2 AND \IPS\Member::loggedIn()->modPermission('can_manage_deleted_content')}} <li class='ipsMenu_item'><a href='{$comment->url('restore')->csrf()}' data-confirm data-confirmSubMessage='{lang="restore_as_visible_desc"}'>{lang="restore_as_visible"}</a></li> <li class='ipsMenu_item'><a href='{$comment->url('restore')->csrf()->setQueryString( 'restoreAsHidden', 1 )}' data-confirm data-confirmSubMessage='{lang="restore_as_hidden_desc"}'>{lang="restore_as_hidden"}</a></li> <li class='ipsMenu_item'><a href='{$comment->url('delete')->csrf()->setQueryString( 'immediately', 1 )}' data-confirm data-confirmSubMessage='{lang="delete_immediately_desc"}'>{lang="delete_immediately"}</a></li> {{else}} {{if $comment instanceof \IPS\Content\Hideable}} {{if !$comment->hidden() and $comment->canHide()}} <li class='ipsMenu_item'><a href='{$comment->url('hide')->csrf()}' data-ipsDialog data-ipsDialog-title="{lang="hide"}">{lang="hide"}</a></li> {{elseif $comment->hidden() and $comment->canUnhide()}} <li class='ipsMenu_item'><a href='{$comment->url('unhide')->csrf()}'>{lang="unhide"}</a></li> {{endif}} {{endif}} {{if $comment->canSplit()}} <li class='ipsMenu_item'><a href='{$comment->url('split')}' data-action='splitComment' data-ipsDialog data-ipsDialog-title="{lang="split_to_new" sprintf="\IPS\Member::loggedIn()->language()->addToStack( $item::$title )"}">{lang="split"}</a></li> {{endif}} {{if $comment->canDelete()}} <li class='ipsMenu_item'><a href='{$comment->url('delete')->csrf()->setPage('page',\IPS\Request::i()->page)}' data-action='deleteComment' data-updateOnDelete="#commentCount">{lang="delete"}</a></li> {{endif}} {{if $comment->isFeatured() AND $item->canUnfeatureComment()}} <li class='ipsMenu_item'><a href='{$comment->url('unfeature')->csrf()->setPage('page',\IPS\Request::i()->page)}' data-action="unrecommendComment">{lang="unrecommend_content"}</a></li> {{endif}} {{if !$comment->isFeatured() AND $item->canFeatureComment()}} <li class='ipsMenu_item'><a href='{$comment->url('feature')->csrf()->setPage('page',\IPS\Request::i()->page)}' data-ipsDialog data-ipsDialog-title='{lang="recommend_post"}' data-ipsDialog-remoteSubmit data-ipsDialog-size='medium' data-action="recommendComment">{lang="recommend_content"}</a></li> {{endif}} {{if ( ! $comment->mapped('first') and $comment->canPromoteToSocialMedia() )}} <li class='ipsMenu_item'>{template="promoteLink" app="core" group="global" params="$comment"}</li> {{endif}} {{endif}} </ul> In my opinion a lot of this logic should rather come from new and more sentralized functions like: $comment->getModeratorOptions() or something that would return a list of prepared <a>-elements or an array or object with the necessary components to also set things like 'data-ipsDialog' etc. for some items.
-
TSP got a reaction from Whiskey Bizness in Should be possible to move topics from search result setWhy is this not possible already? We can merge topics, close them, sticky them, delete them - but there is no way to choose topics from a result set when searching and move them to another category. There really should be a way to do this from a result set that contains topics.
It would really speed up the process of moving topics when new forums are created.
-
TSP reacted to Colonel_mortis in Upgrader no-JS fallback is really annoyingIf one request times out in the JS upgrader, it falls back to the considerably slower HTML-based upgrader. Could there not be some logic to retry the request a couple of times, ideally with a bit of backoff (if it's an nginx or transport layer error it's probably a timeout, and retrying will then hit the case where the task is already done), rather than making the upgrade experience suck? At worst, the HTML upgrader shouldn't have delays between redirects - as soon as the response comes back it is ready to receive another request.
It's reasonably easy to work around by just deleting the mr parameter from the URL, but that relies on me paying attention to the upgrader.
-
TSP reacted to Matt in Links in forum descriptions pointing to old domainThat's a @Charles thing. I'm not allowed near servers, right @TSP?
-
TSP got a reaction from bfarber in Mobile menu should include your member nameSomeone deserves a raise!
I'm working on an upgrade to 4.5 now where I'm updating a custom theme, and as a result I saw that this bit of feedback has finally been resolved 😄
Sorry for the bump, but I had a slight squeal of joy as I saw this, as it has been one of those annoying little pet peeves I've had with the default theme for some years now.
-
TSP got a reaction from Rikki in Mobile menu should include your member nameSomeone deserves a raise!
I'm working on an upgrade to 4.5 now where I'm updating a custom theme, and as a result I saw that this bit of feedback has finally been resolved 😄
Sorry for the bump, but I had a slight squeal of joy as I saw this, as it has been one of those annoying little pet peeves I've had with the default theme for some years now.
-
TSP got a reaction from SC36DC in Mobile menu should include your member nameSomeone deserves a raise!
I'm working on an upgrade to 4.5 now where I'm updating a custom theme, and as a result I saw that this bit of feedback has finally been resolved 😄
Sorry for the bump, but I had a slight squeal of joy as I saw this, as it has been one of those annoying little pet peeves I've had with the default theme for some years now.
-
TSP got a reaction from WP V0RT3X in Mobile menu should include your member nameSomeone deserves a raise!
I'm working on an upgrade to 4.5 now where I'm updating a custom theme, and as a result I saw that this bit of feedback has finally been resolved 😄
Sorry for the bump, but I had a slight squeal of joy as I saw this, as it has been one of those annoying little pet peeves I've had with the default theme for some years now.
-
TSP got a reaction from Daniel F in Mobile menu should include your member nameSomeone deserves a raise!
I'm working on an upgrade to 4.5 now where I'm updating a custom theme, and as a result I saw that this bit of feedback has finally been resolved 😄
Sorry for the bump, but I had a slight squeal of joy as I saw this, as it has been one of those annoying little pet peeves I've had with the default theme for some years now.
-
TSP got a reaction from optrexnz in Mobile menu should include your member nameSomeone deserves a raise!
I'm working on an upgrade to 4.5 now where I'm updating a custom theme, and as a result I saw that this bit of feedback has finally been resolved 😄
Sorry for the bump, but I had a slight squeal of joy as I saw this, as it has been one of those annoying little pet peeves I've had with the default theme for some years now.
-
TSP reacted to bfarber in Using $form->addHeader(); in widget configurationThanks I've posted an internal bug report to get this checked.
-
TSP reacted to Colonel_mortis in Why is XRegexp included?XRegExp is 135KB when minified as part of root_library.js (that whole bundle is only 383KB, so it's a significant chunk), but it's only used in two places:
In ipsautolink/plugin.js, it's just used to evaluate a native JS regex, which I believe is totally unnecessary (use this.urlRegex.test(text) instead!) In ips.search.results.js, where it's just used to replace using a native JS regex (use $(this).text().replace(new RegExp(...), '...') instead, as you do for each subsequent replacement in that chain) (while you're at it, why does that code replace with HTML, HTML escape everything, then selectively unescape the content you just added?!) Removing those two places that don't, to my understanding, utilise the library in any meaningful way would allow you to slim down the site by a not-insignificant amount, and make certain people happy.
-
TSP reacted to bfarber in Add support for MYSQLI_CLIENT_COMPRESSAnother feedback topic recently mentioned supporting SSL for the MySQL database server.
What if we did something like
/* Connect */ parent::real_connect( $sqlCredentials['host'], $sqlCredentials['username'], $sqlCredentials['password'], $sqlCredentials['database'], $sqlCredentials['port'], $sqlCredentials['socket'], $this->_getFlags() );
and then the _getFlags() method returned nothing by default, but a plugin could add a hook to set other flags?
-
TSP got a reaction from Asprin in Post Anonymously in ForumsHello,
I haven't had time to update or test this on 4.5 yet. I don't know when either unfortunately
-
TSP got a reaction from John T Davis in Post Anonymously in ForumsHello,
I haven't had time to update or test this on 4.5 yet. I don't know when either unfortunately
-
TSP got a reaction from CoffeeCake in Should be possible to move topics from search result setWhy is this not possible already? We can merge topics, close them, sticky them, delete them - but there is no way to choose topics from a result set when searching and move them to another category. There really should be a way to do this from a result set that contains topics.
It would really speed up the process of moving topics when new forums are created.
-
I think it would be interesting to hear if there are any details you could share about what's been done in the background? What are some of these new processes etc. that have made things become better? I'm just genuinely curious, if there are any details/improvements you could talk about.
Anyway, welcome to the community forums as well, Olivia!
-
TSP reacted to Lindy in Fix "share by email" featureWe will be releasing a patch or update soon that disables the email feature altogether. In 4.5, the email share function utilizes the sender's own mail client (mailto - for you nerdy types) and does not pass through the software.
-
TSP got a reaction from Kjell Iver Johansen in IPS 4: Norwegian Translation (Norsk, bokmål)En ny versjon er nå tilgjengelig.
-
TSP got a reaction from Hans_F in IPS 4: Norwegian Translation (Norsk, bokmål)http://community.invisionpower.com/files/file/7383-norwegian-norsk-bokmål-for-blog-calendar-and-forums/ (You will have to wait until it's been approved)
This is the Norwegian translation of IPS 4, the remainder of this text will be in Norwegian.
Dette er den norske språkpakken for Invision Power Suite 4. Oversettelsen er gjort til bokmål.
Disse applikasjonene er oversatt:
System / Core Forum - IP.Forums Blogger - IP.Blog Kalender - IP.Calendar Galleri - IP.Gallery Nedlastninger - IP.Downloads
Jeg blir veldig takknemlig for tips til små og store ting som bør endres. Språkpakken er ikke testet eller brukt i et reelt miljø og er gjort uten kontekst. Det kan derfor hende at enkelte ord eller fraser kan misforstås, være for kompliserte eller ikke passe inn i konteksten akkurat nå.
Det å oversette alt sammen tar svært mye tid (da mener jeg myyyyyeee tid) og er til tider svært krevende og monotont arbeid. Jeg ber dere derfor være forståelsesfulle hvis dere finner ting dere mener burde vært oversatt på en annen måte, høres helt feil ut, er ukonsekvent osv. Det kan godt være jeg er helt enig med dere, men det kan være vanskelig å vite før det blir påpekt.
Jeg blir spesielt glad hvis du har forslag til hvordan enkelte tekster kan forenkles, det er mange ganger jeg har oversatt en frase eller ord hvor jeg har tenkt "Dette ordet eller setningen trenger vel ikke så være lang eller bestå av så mange delord?", men det finner man liksom først ut etter man har brukt det.
Jeg planlegger å oversette andre applikasjoner etterhvert. God fornøyelse!
-
TSP reacted to sadams101 in First byte - analysisI've had constant TTFB issues with IPB4 which I've never been able to solve using any caching method, and I've tried them all. Although I am not a coder, I have suspected that there is a delay somewhere in how your code loads, and this delay can be replicated on other boards I've tested. I certainly hope you can look into this further, given the huge effect it has on everyone who uses the software.
-
TSP got a reaction from Sonya* in Post Anonymously in ForumsTheoretically, if you knew all the information that makes up the anonymous identifier code, someone could try to generate an md5-hash from this information for each member to get an exact match on the code, and thus reveal the identity.
Although I view it as unlikely, the unique key setting is available so you could add in a string that you choose, so it's much less likely that someone will guess all the information that the md5-code is made up of.
In order to remove the code from the post itself atm, you could change the language string anon_poster_hash in your default language pack. You can search for "Anonymous poster hash" within the language pack translate screen to find it. Replace it with
I currently don't have a way to remove this from the guest name when you don't have a user configured, but you could connect it to a user account named "Guest" or whatever you choose, and then it will use that account name.
I can provide a way to disable this in a later update, I thought it was possible to deselect all for the md5-setting, but that doesn't work, so I'll fix that.
-
TSP got a reaction from AlexJ in Here we go again...While we are looking at this code. Why don't you just use isset instead of in_array? Seems to me it would be lighter in terms of performance.
Simply: if (isset($this->words[$k]))
instead of: if (\in_array($k, array_keys($this->words)))
Or am I missing some reason you use this approach, which to me seems like more overhead?
I found a blog post on this: http://maettig.com/1397246220
And some stackoverflow answers https://stackoverflow.com/questions/13483219/what-is-faster-in-array-or-isset
I haven't looked any closer into this code, than just watching the video, but if $this->words contains all the language strings, then I would expect some performance improvement by changing to use isset or array_key_exists (if you need to account for that the value could be null).
-
TSP got a reaction from Metor in Post Anonymously in ForumsYou can circumvent the issue by creating a dummy account and choosing that account for the setting "Posts appear as posted by".
Once again sorry for the inconvenience. I've just started looking closer into the issue.