[AP] Member Bars

Admin submitted a new resource:

[AP] Member Bars – Adds bar charts to the Notable Members page.

This is a small template modification addon for Xenforo 2.2 that adds bar charts to the Notable Members page.

{
“lightbox_close”: “Close”,
“lightbox_next”: “Next”,
“lightbox_previous”: “Previous”,
“lightbox_error”: “The requested content cannot be loaded. Please try again later.”,
“lightbox_start_slideshow”: “Start slideshow”,
“lightbox_stop_slideshow”: “Stop slideshow”,
“lightbox_full_screen”: “Full screen”,
“lightbox_thumbnails”: “Thumbnails”,
“lightbox_download”: “Download”,
“lightbox_share”: “Share”,
“lightbox_zoom”: “Zoom”,
“lightbox_new_window”: “New window”,
“lightbox_toggle_sidebar”: “Toggle sidebar”
}

ap_member_bars.png

Read more about this…

Read more

.

seo – Replacing the public home page with member specific content for logged in users

Context: I am designing a web application that’s geared toward members-only features. There’s no site features that would be useful to non-members, so most of the website will only be available to authenticated users. Thus, the only public pages will be things like an About Us page (with contact options), a Features/Comparisons page (promote the service relative to competitors), and of course a Home Page.

Problem: My initial thought was that the homepage index.php file, located at the website root, should load the public content for non-authenticated visitors, but should load the main application landing page for authenticated users. My main reason was for members’ ease-of-access — automatic serving of the content they’re actually trying to get to if they’re already logged in, and no need to type / remember / bookmark a more complicated address than example.com. But this got me thinking whether that would work best in the long run for issues like SEO and maintainability.

Approaches: I can think of three:

  1. All files are hosted under example.com, with no subdomains. When a visitor requests example.com/index.php, it checks for authentication, and serves up the correct HTML depending. (This is the approach I mentioned above.)
  2. Public files are hosted under www.example.com, while member-only pages are hosted under a subdomain like members.example.com. When an authenticated user attempts to access the public www.example.com/index.php, they’ll be automatically redirected to members.example.com/index.php.
  3. The same as option 2, but instead of being automatically redirected, the user will stay on the public homepage, and will need to navigate to their application landing page via the main nav. (This approach seems best if some of the public pages actually have usefulness to authenticated users, which they won’t on my site, so I’m thinking this option doesn’t make sense?)

Which of these approaches would be best in terms of SEO, being easy to code, and easy to maintain?

seo – Site Structure: Separating public pages from member pages

Context: I am designing a web application that’s geared toward members-only features. There’s no site features that would be useful to non-members, so most of the website will only be available to authenticated users. Thus, the only public pages will be things like an About Us page (with contact options), a Features/Comparisons page (promote the service relative to competitors), and of course a Home Page.

Problem: My initial thought was that the homepage index.php file, located at the website root, should load the public content for non-authenticated visitors, but should load the main application landing page for authenticated users. My main reason was for members’ ease-of-access — automatic serving of the content they’re actually trying to get to if they’re already logged in, and no need to type / remember / bookmark a more complicated address than mysite.com. But this got me thinking whether that would work best in the long run for issues like SEO and maintainability.

Approaches: I can think of three:

  1. All files are hosted under mysite.com, with no subdomains. When a visitor requests mysite.com/index.php, it checks for authentication, and serves up the correct HTML depending. (This is the approach I mentioned above.)
  2. Public files are hosted under www.mysite.com, while member-only pages are hosted under a subdomain like members.mysite.com. When an authenticated user attempts to access the public www.mysite.com/index.php, they’ll be automatically redirected to members.mysite.com/index.php.
  3. The same as option 2, but instead of being automatically redirected, the user will stay on the public homepage, and will need to navigate to their application landing page via the main nav. (This approach seems best if some of the public pages actually have usefulness to authenticated users, which they won’t on my site, so I’m thinking this option doesn’t make sense?)

Are there other options I’m not thinking of?

Questions:

  • How does each approach affect SEO, if at all?
  • Which of those approaches tends to be easiest to code for and maintain in the long run?

seo – Site Structure: Best practices for separating public pages from member pages

Context: I am designing a web application that’s geared toward members-only features. There’s no site features that would be useful to non-members, so most of the website will only be available to authenticated users. Thus, the only public pages will be things like an About Us page (with contact options), a Features/Comparisons page (promote the service relative to competitors), and of course a Home Page.

Problem: My initial thought was that the homepage index.php file, located at the website root, should load the public content for non-authenticated visitors, but should load the main application landing page for authenticated users. My main reason was for members’ ease-of-access — automatic serving of the content they’re actually trying to get to, and no need to type / remember / bookmark a more complicated address than mysite.com. But this got me thinking whether that would be best practice. I couldn’t find anything with a few Google searches, so….

Approaches: I can think of three:

  1. As mentioned above: All files are hosted under mysite.com, with no subdomains. When a visitor requests mysite.com/index.php, it checks for authentication, and serves up the correct HTML depending.
  2. Public files are hosted under www.mysite.com, while member-only pages are hosted under a subdomain like members.mysite.com. When an authenticated user attempts to access the public www.mysite.com/index.php, they’ll be automatically redirected to members.mysite.com/index.php.
  3. The same as option 2, but instead of being automatically redirected, the user will stay on the public homepage, and will need to navigate to their application landing page via the main nav. (This approach seems best if some of the public pages actually have usefulness to authenticated users, which they won’t on my site, so I’m thinking this option doesn’t make sense?)

Questions:

  • Are there other options I’m not thinking of?
  • Is there a clearly established best practice for this situation?
  • How does each approach affect SEO, if at all?
  • Which of those approaches tends to be easiest to code for and maintain in the long run?

schema.org – JSON-LD error: “Missing ‘}’ or object member name” even when parenthesis appear to be balanced

Your problem is smart quotes. You use them. JSON can’t have them. JSON has to have regular old dumb quotes. Up until line 10, you use the correct quotation marks, but then at line 10 you switch to using fancy slanted quotation marks.

The solution is to use find and replace to find the smart quotes and replace them with dumb quotes. I would also clean up the indentation. Then you end up with:

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "WebPage",
    "name": "Brand X Information for Healthcare Professionals",
    "mainEntity": {
      "@type": "Drug",
      "name": "Name",
      "activeIngredient": "Cysteamine Hydrochloride",
      "administrationRoute": "Ophthalmic",
      "drugUnit": "0.44% Cysteamine Ophthalmic Solution",
      "dosageForm": "Topical Solution",
      "manufacturer": {
        "@type": "Organization",
        "name": "Company Name"
      },
      "mechanismOfAction": "Cysteamine, the active ingredient in BrandX, is an aminothiol that depletes lysosomal cystine, preventing buildup of cystine crystals in bodily tissues. Within lysosomes, cysteamine interacts with cystine to form cysteine and cysteineu2013cysteamine mixed disulfide. These substances can pass through the lysosomal membrane and be eliminated from the cell."
    }
  }
</script>

This is usually caused by trying to edit in a word processor such as Microsoft Word, Google docs, or Libreoffice. For code, you should avoid using these programs. Find a text editor built for programmers. Such an editor won’t try to smarten your quotes for you.

schema.org – Missing ‘}’ or object member name

Your problem is smart quotes. You use them. JSON can’t have them. JSON has to have regular old dumb quotes. Up until line 10, you use the correct quotation marks, but then at line 10 you switch to using fancy slanted quotation marks.

The solution is to use find and replace to find the smart quotes and replace them with dumb quotes. I would also clean up the indentation. Then you end up with:

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "WebPage",
    "name": "Brand X Information for Healthcare Professionals",
    "mainEntity": {
      "@type": "Drug",
      "name": "Name",
      "activeIngredient": "Cysteamine Hydrochloride",
      "administrationRoute": "Ophthalmic",
      "drugUnit": "0.44% Cysteamine Ophthalmic Solution",
      "dosageForm": "Topical Solution",
      "manufacturer": {
        "@type": "Organization",
        "name": "Company Name"
      },
      "mechanismOfAction": "Cysteamine, the active ingredient in BrandX, is an aminothiol that depletes lysosomal cystine, preventing buildup of cystine crystals in bodily tissues. Within lysosomes, cysteamine interacts with cystine to form cysteine and cysteineu2013cysteamine mixed disulfide. These substances can pass through the lysosomal membrane and be eliminated from the cell."
    }
  }
</script>

This is usually caused by trying to edit in a word processor such as Microsoft Word, Google docs, or Libreoffice. For code, you should avoid using these programs. Find a programmers text editor that won’t try to smarten your quotes for you.

Check if user is a member

I use the Drupal Group module. Is there a way to check if a logged-in user is an groupmember or not when he visit the grouppage? I have some blocks that should be hidden if an user is not a member.

I can’t figure out of this is possible or not.

c++ – Cleaning up static member variable declaration and definition

I have several static variables in my dialog class that I’m declaring in the header and then defining immediately in the cpp file. They are being used in an application with 2 threads, and these particular variables are mostly shared between both threads.

  1. Main thread that runs the dialog box and manages various connections (data objects, menus, a USB device connection, and a shared memory connection)
  2. A “high priority” thread that reads USB input, runs shared memory commands, and updates one of the core data objects (a CSysLatData object).

This code is currently working with no issues, but it feels to me that it is unsafe, incorrect, or in a poor location.

Here’s the declaration of most of them from the header file:

    static std::shared_ptr<CSysLatData> m_pOperatingSLD;
    vector<std::shared_ptr<CSysLatData>> m_vpPreviousSLD;
    static constexpr const char* m_caSysLat = "SysLat";
    static constexpr const char* m_caSysLatStats = "SysLatStats";
    static DWORD                m_sysLatOwnedSlot;//UGH - I'm specifcally making the sysLatClient object thread local... but then to get a value from it I need to make a static var in this class to track it.  Seems dumb.
    static CString              m_updateString;
    static CString              m_strError;
    static CString              m_strBlack;
    static CString              m_strWhite;
    static DWORD                m_AppArraySize;

And here’s where I define them at the top of the cpp file.

//Define static variables - these should probably be done as inline or something... inlining is supposed to be available in C++17 and above, but Visual Studio throws a fit when I try to inline these.
//also, I should probably move most of them to be global variables and NOT member variables
CString CSysLat_SoftwareDlg::m_strStatus = "";
unsigned int CSysLat_SoftwareDlg::m_LoopCounterRefresh = 0;
unsigned int CSysLat_SoftwareDlg::m_loopSize = 0xFFFFFFFF;
CString CSysLat_SoftwareDlg::m_updateString = "";
CString CSysLat_SoftwareDlg::m_strError = "";
std::shared_ptr<CSysLatData> CSysLat_SoftwareDlg::m_pOperatingSLD = std::make_shared<CSysLatData>(); //does this need to be a unique_ptr?
CString CSysLat_SoftwareDlg::m_strBlack = "<C=000000><B=10,10><C>";
CString CSysLat_SoftwareDlg::m_strWhite = "<C=FFFFFF><B=10,10><C>";
DWORD CSysLat_SoftwareDlg::m_sysLatOwnedSlot = 0;
DWORD CSysLat_SoftwareDlg::m_AppArraySize = 0;

Full files if interested:
https://github.com/Skewjo/SysLat_Software/blob/master/SysLat_SoftwareDlg.h
https://github.com/Skewjo/SysLat_Software/blob/master/SysLat_SoftwareDlg.cpp

legal – Can I ask my home EU State for a duplicate licence if it has been taken by another Member State?

The logic of the system is simple: In the EU, only the state where you reside is competent for driving licenses issues. As a rule, other member states — including the one where you originally obtained your license — should refuse to issue a (duplicate) license. It’s sometimes possible to fall through the cracks depending on the kind of evidence required to establish that you are a resident but, as long as you reside in France, you should not be able to ask any other EU member state.

Planning to leave soon adds a twist to your story but doesn’t fundamentally change things. You first need to actually move and obtain all the necessary paperwork to prove you are a resident there before being allowed to apply for a license. Since you wouldn’t have a currently valid license to hand in, it might be possible to apply for a new one based on a document issued by the member states where you originally obtained your license (that’s how it works when a license is stolen). You wouldn’t necessarily need to wait for 4 months and I don’t think you would be doing anything illegal provided you are really a resident in the country where you apply (whether it’s Poland or any other in the EU).

As long as you live in France, you have to follow the French rules and therefore to apply for a French driving license. It’s mandatory after committing a driving offense to make it easier to track penalty points. That’s true even for less serious violations that do not result in any suspension. In your case, the exact rules depend on the details of the offense but it’s likely that the penalty points would last 10 years (meaning that another violation during these 10 years could result in a permanent ban on driving in France).