lflier
Forum Replies Created
-
Forum: Plugins
In reply to: [Theme My Login] Errors after WP 5.2 UpgradeThanks for your good communication.
Looks like it’s not just TML. WordPress 5.2 seems to be breaking multiple plugins, and good ones, too. I just spent an hour trying to figure out what was going on with TML and another hour trying to figure out what happened with one of my Ninja Forms plugins.
I’m not used to this many things breaking on a WordPress update. Was there something different this time?
- This reply was modified 5 years, 10 months ago by lflier.
Forum: Plugins
In reply to: [ACF Code Field] Resize handle and window heightGot the update and the plugin is now working in flexible fields. The WordPress editor window looks better, too. Still no resize, though. And when you open a collapsed field after you’ve saved the page, nothing appears in the code window. You have to click on it. And then, when you do, it’s often hard to select text, especially between <h3> tags. The text-selection bug doesn’t seem to be theme-dependent. I’ve duplicated it with Molokai and Pastel on Dark. Cutting and repasting brings everything back to normal it but that’s a workaround. Sorry to be so fussy. Just trying to help you improve the plugin. ??
Forum: Plugins
In reply to: [WP Server Health Stats] Server stats plugin uses 50% CPUI’m having the same problem here, with a MAMP 3.5 development site on El Capitan.
Forum: Plugins
In reply to: [Plugin Organizer] Not working? Make sure the Menu URL matches the Filter URLThanks! I’m not faulting the plugin, though — just pointing out a possible place for confusion.
But since your updating, I did have a couple of small suggestions for you in my review.
Great plugin, great support!
Forum: Reviews
In reply to: [Quotes Collection] Nice Interface and Lots of OptionsOOPS! Please disregard the above fix — it will mess up the “author” and “source” attributes. There is no bug; just a feature that doesn’t exist in the plugin.
It is possible to add the feature, however. See my post in the support forum for code that adds “show_author” and “show_source” attributes to the shortcode.
Sorry, disregard the above. I know just enough PHP to be dangerous. Hiding the author is not a feature of the shortcode; it is only supported for the template function. Do not do what I just suggested; it will cause the “author” and “source” attributes to fail.
But here is some code that is working for me. It adds three new attributes to the shortcode function of the plugin: “show_author”, “show_source”, and “show_blockquote”. Set them to “1” for on and “0” for off. For example the shortcode “[quotcoll orderby=”random” tags=”tagline” limit=1 show_author=0 show_source=0 show_blockquote=0]” displays a single random quote with the tag “tagline” and does not show the author, source, or blockquote HTML tag.
To make this work, replace the first two functions in quotes-collection-shortcodes.php as follows:
function quotescollection_shortcode_output_format($quotes, $options) { $display = ""; foreach($quotes as $quote_data) { //* Show blockquote if($options['show_blockquote']) $display .= "<blockquote class=\"quotescollection\" id=\"quote-".$quote_data['quote_id']."\">"; $quote_data = quotescollection_txtfmt($quote_data); $display .= "<p><q>".$quote_data['quote']."</q>"; //* Show author and source $cite = ""; if($options['show_author'] && $quote_data['author']) $cite = '<span class="quotescollection_author">'. $quote_data['author'] .'</span>'; if($options['show_source'] && $quote_data['source']) { if($cite) $cite .= ", "; $cite .= '<span class="quotescollection_source">'. $quote_data['source'] .'</span>'; } if($cite) $cite = " <cite>—?{$cite}</cite>"; $display .= $cite."</p>"; if($options['show_blockquote']) $display .= "</blockquote>\n"; } return apply_filters( 'quotescollection_shortcode_output_format', $display ); } function quotescollection_shortcodes($atts = array()) { extract( shortcode_atts( array( 'limit' => 0, 'id' => 0, 'author' => '', 'source' => '', 'tags' => '', 'orderby' => 'quote_id', 'order' => 'ASC', 'paging' => false, 'limit_per_page' => 10, 'show_author' => 1, 'show_source' => 1, 'show_blockquote' => 1 ), $atts ) ); //* Show author, source, and blockquote $options = array( 'show_author' => $show_author, 'show_source' => $show_source, 'show_blockquote' => $show_blockquote ); $condition = " WHERE public = 'yes'"; if(isset($quote_id) && is_numeric($quote_id)) $id = $quote_id; if($id && is_numeric($id)) { $condition .= " AND quote_id = ".$id; if ($quote = quotescollection_get_quotes($condition)) return quotescollection_shortcode_output_format($quote); else return ""; } if($author) $condition .= " AND author = '".$author."'"; if($source) $condition .= " AND source = '".$source."'"; if ($tags) { $tags = html_entity_decode($tags); if(!$tags) break; $taglist = explode(',', $tags); $tags_condition = ""; foreach($taglist as $tag) { $tag = trim($tag); if($tags_condition) $tags_condition .= " OR "; $tags_condition .= "tags = '{$tag}' OR tags LIKE '{$tag},%' OR tags LIKE '%,{$tag},%' OR tags LIKE '%,{$tag}'"; } if($tags_condition) $condition .= " AND ".$tags_condition; } if($orderby == 'id' || !$orderby) $orderby = 'quote_id'; else if ($orderby == 'date_added') $orderby = 'time_added'; else if($orderby == 'random' || $orderby == 'rand') { $orderby = 'RAND(UNIX_TIMESTAMP(NOW()))'; $order = ''; $paging = false; }; $order = strtoupper($order); if($order && $order != 'DESC') $order = 'ASC'; $condition .= " ORDER BY {$orderby} {$order}"; if($paging == true || $paging == 1) { $num_quotes = quotescollection_count($condition); $total_pages = ceil($num_quotes / $limit_per_page); if(!isset($_GET['quotes_page']) || !$_GET['quotes_page'] || !is_numeric($_GET['quotes_page'])) $page = 1; else $page = $_GET['quotes_page']; if($page > $total_pages) $page = $total_pages; if($page_nav = quotescollection_pagenav($total_pages, $page, 0, 'quotes_page')) $page_nav = '<div class="quotescollection_pagenav">'.$page_nav.'</div>'; $start = ($page - 1) * $limit_per_page; $condition .= " LIMIT {$start}, {$limit_per_page}"; // return $condition; if($quotes = quotescollection_get_quotes($condition)) return $page_nav.quotescollection_shortcode_output_format($quotes, $options).$page_nav; else return ""; } else if($limit && is_numeric($limit)) $condition .= " LIMIT ".$limit; // return $condition; if($quotes = quotescollection_get_quotes($condition)) return quotescollection_shortcode_output_format($quotes, $options); else return ""; }
That should do the trick.
Forum: Reviews
In reply to: [Quotes Collection] Nice Interface and Lots of OptionsFound a bug in the shortcode — the show_author=0 and show_source=0 attributes don’t work. The shortcode displays the author and source regardless.
The problem is with the inconsistent use of variable names in the code — one function uses “$author” and “$source” and another function uses “$show_author” and “$show_source.”
Here’s how to fix it…
1. Open the quotes-collection-shortcodes.php file in a text editor.
2. In lines 21-22 and 43-46 change every instance of “$author” to “$show_author” and every instance of “$source” to “$show_source”. There should be three instances of each.After that, it should work as expected.
Forum: Reviews
In reply to: [Email Login] Works great with S2MemberGood to know. Thank you!
Agreed. Love the plugin and the support. Puzzled by the decision to abandon the old and much more extensive support forum.
Forum: Plugins
In reply to: S2member with mailchimp – double opt in registrationGood questions!
The best information I have been able to locate for this is in an older support forum for S2 Member:
The question that was asked is the same: How can S2 Member ensure that a person has subscribed to an email list before access is granted to the website?
The answer given is:
(1) Automatically subscribe the user to the email list through an S2 Member hack (in the thread). This disables the MailChimp confirmation email and places the user directly onto the list.
(2) Maintain the double opt-in required by MailChimp for their lists (which is also good practice, generally) by having S2 Member send a confirmation email with a temporary password to the user. The user must then login to the site using the password that was emailed. As long as the site has this (or some other form of) double opt-in, then MailChimp permits the hack above which causes their list double opt-in to be disabled.
(3) It is also possible to configure a required checkbox in S2 Member, which states that the user agrees to receive email from your site. (This seems like a good idea, both from a transparency standpoint, and also to remind your new user to expect email from you.)Step #1 above guarantees that the user is subscribed to your list before they can access your site. But I’m not sure that it really qualifies as double opt-in. It appears as though a user would be automatically subscribed to your list even if they never opened the confirmation email sent by S2 member.
Perhaps it would be wise, then, for the first email in your autoresponder sequence to remind the user what they signed up for, and how to login.
I am currently researching this same issue for my own site and this is the best information I have been able to find so far. But perhaps the S2 Member support team will respond with more up-to-date information. As a purchaser of the “Pro” form of the plugin, I have found them to be very helpful.
Forum: Plugins
In reply to: [Breadcrumbs Everywhere] Breadcrumbs Everywhere with Genesis and BP 1.8.1My second challenge was modifying the plugin to get the breadcrumbs to display on my Member and Activity pages. When I installed the plugin on a clean install of BuddyPress using the stock BP theme, the breadcrumbs showed up everywhere they were supposed to. But in my theme, they did not appear on the Member and Activity pages; only on the user pages.
Modifying the plugin with the code below did the trick:
if ( bp_is_user() && !bp_is_register_page() ) { echo $startpages . " $divider " . '<a href="' . $homeurl . '/' . $page1 . '/">' . ucwords($page1) . '</a>' . " $divider " . '<a href="' . $bp->displayed_user->domain . '">' . ucwords($bp->displayed_user->fullname) . '</a>' . " $divider " . ucwords($bp->current_component) . ""; } elseif (bp_is_current_component ( 'activity' ) || bp_is_current_component ( 'members' ) ){ echo $startpages . " $divider " . get_the_title() . ""; }
Thanks for the reply!
This is a brand new installation so my original BP was 1.8.1. Forgot to mention that I am also using the StudioPress Minimum Pro theme.
While I was waiting, and per your reply to “What does this plugin do specifically?”, I went ahead and customized the CSS for BuddyPress without the GenesisConnect plugin. Everything seems to be working now. So I guess if it’s not broken I won’t fix it ;-).
Thanks again!
I’m testing BuddyPress 1.8.1 with WordPress 1.6.1 using version 1.2.1 of the plugin. It is my experience that the plugin breaks the BuddyPress function that allows users to edit their own profile field visibilities. The edit link that normally appears immediately below each field on the user’s profile edit page does not appear when the plugin is activated.
Are you near to a solution for this? Alternatively, can you point to the area in the code for the plugin where I might try to hack my own solution?
Thank you.
I figured it out. In order for Chrome’s element inspector to display the CSS for the active tab, the mouse can’t still be hovering over it, otherwise it gives the hover state. So I didn’t notice last night that the there was an outline set for the tab in the active state. (I guess that’s what sleep is for.)
I traced this property back to the “Baseline normalize” section of the CSS code for my theme (StudioPress Minimum Pro), which is just one long string of CSS. In this string there is a property for the “a:focus” tag that sets the outline to “thin dotted.”
a:focus{outline:thin dotted}a:active,a:hover{outline:0}
So the CSS I want for the widget is:
.ui-tabs ul.ui-tabs-nav li a:hover, .ui-tabs ul.ui-tabs-nav li.ui-tabs-active a { background-color: #f5f5f5; color: #333; outline: none;
CSS outlines go outside the border, so changing the border property doesn’t affect them.
I’m not entirely sure why a baseline CSS would want an outline but there you go. Mystery solved.
The problem is that the hover state shows a light grey background but the active state is just like the unselected tabs. We want the the active state to be like the hover state.
It’s clear that the CSS is intended to make make the active state like the hover state, but on my site this doesn’t work. The active state fails to select a class in the output for which the background-color property can be set.
I got this working last night by changing the CSS code for the active state of the tab:
The original code is:
.ui-tabs ul.ui-tabs-nav li a:hover, .ui-tabs ul.ui-tabs-nav li.ui-tabs-selected a { background-color: #f5f5f5; color: #333;
But “.ui-tabs-selected” doesn’t seem to point to any CSS class in the widget output. By inspecting the plugin on the rendered page I was able to identify the class “.ui-tabs-active”, which does work. My working CSS code is now:
.ui-tabs ul.ui-tabs-nav li a:hover, .ui-tabs ul.ui-tabs-nav li.ui-tabs-active a { background-color: #f5f5f5; color: #333;
But I have one further question. The selected tab shows a dotted border around it. This is distracting and superfluous, since the widget now shows the selected tab by the color of the background. A border around the tab is overkill and is inconsistent with the rest of my site design. I tried to undo the border through CSS but failed:
.ui-tabs ul.ui-tabs-nav li a:hover, .ui-tabs ul.ui-tabs-nav li.ui-tabs-active a { background-color: #f5f5f5; color: #333; border: none;
Setting the border property to “none” does not work. I still get the border. Any ideas for how to remove it?