Ongoing Discussion Regarding Bugs, Improvements, and New Features

Home Forums Product Support Forums Ajax Search Pro for WordPress Support Ongoing Discussion Regarding Bugs, Improvements, and New Features

This topic contains 13 replies, has 2 voices, and was last updated by Michael Samson Michael Samson 3 years, 10 months ago.

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #18176
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    I haven’t heard from you in a long time and decided to see what was going on. For some reason the thread we were speaking in was closed. Do you why that happened?

    I’ve been waiting to hear back from you on a number of important issues. Since the other thread was closed I am copying below everything. Perhaps this is for the best since the other thread had become very long.

    It also turned out that my support period had expired at CodeCanyon so I just renewed that. I know how much time you put into responding to me, so paying for all this support is the least I can do. I’ve been very grateful for your help over this past year and hope you’ll continue to provide me with the same level of service.

    With that said I look forward to hearing from you!

    ~ Michael

    …..

    Hi Ernest,

    I’m sure this won’t come as a surprise to you, but my last few weeks have been insanely busy. I’ve been wanting to get to this for a while now, but I had to focus my attention elsewhere for a while. We’re working on a number of large infrastructure and engineering projects over here. Suffice to say things are very busy but we’re making a lot of progress towards our launch.

    I’ve installed the latest version of ASP and just fully tested it. You introduced some interesting new features. Most of these don’t apply to my use-case, but neat stuff none the less!

    …..

    Date Filter Bug

    I was disappointed to discover that this problem is in fact not fixed. I tested it extremely carefully to be sure about this. The original problem remains. I’m using the “Relative Date” options for the From Date and To Date fields. In the From Date field it is set to exactly one year ago.In the To Date field it is set to today’s date by entering in “0” into all the fields.

    To reiterate the problem, any posts that are posted on today’s date simply will not show up in search results. This is despite the fact the To Date field is set to include today’s date. The results only display through yesterday’s date.

    This is a really insidious problem, as it tends to cause all sorts of other search problems. It makes it very difficult for me to test ASP because none of my test results show up until the following day.

    To prove this was not corrected I disabled the To Date field, and after that the problem went away. I really hope you can get this fixed.

    …..

    Featured Image Source Size Not Working in All Situations

    I do not believe you tried to fix this yet, but I did test for it. I found this problem remained. Here are my original notes on it below:

    This is a new issue I haven’t told you about until now. We’ve been working here on customizing all of our image sizes site-wide, generating specific sizes for specific locations. For ASP we are creating a 300x375px image.

    I set the Featured Image Source Size to use this specific image, but it’s not working across the board. What I found is that it only seems to work for normal post search results. The attachment results are displaying the full image size, and tag results are strangely displaying the thumbnail (small) size. For tag results (we call them subcategories) we have created functionality for the search to display the image from the first post in the subcategory. This is working beautifully, but it is using the incorrect image size. The problem with the tag images may be on our end in our script, and I have brought it to the attention of our developers.

    …..

    Attachment (Media) Images are Not Being Automatically Added to Index Table on Post Creation

    I found this issue today while testing and paying attention to attachment search results. I have our index table set to automatically index content from any new posts on creation. This is working just fine for the posts, however, it is not indexing the attachments in those posts. I found that the attachments are only indexed if the index table itself is regenerated.

    …..

    Intermittent Bug With Number of Search Result Columns (Cards)

    I also adjusted a bit the isotopic row calculation script, I’m not sure if that changes anything.

    Unfortunately this had no effect. I do have one observation about this problem. I noticed that the thumbnail sizes only decreased if you completely closed the search field and ajax results followed by running another search on the same page. Every time you repeat that process the number of thumbnail columns increases. This does not occur if you run another search without closing the ajax results.

    …..

    The “See More Search Results” Button is Not Using Correct Font-Color Style on Mobile Devices When First Loaded

    This is a weird little issue I noticed a long time ago. It is happening in the ajax results screen on the load more button (the button to load the next set of ajax results pages). I have custom stylized this button with css. I noticed that on mobile devices those styles do not properly apply to this button when the ajax screen first loads. The font-color displays incorrectly. But as soon as you press to go to the next ajax results page the css style works properly. This is a mobile-only issue, and I do not believe it’s related to my css. It must be a JS/AJAX problem.

    …..

    Linking Attachment Search Results to Parent (Linked) Posts (Core Integration)

    Attachment to parent is not yet implemented, I postponed it to the upcoming minor/bugfix release.

    Sounds good. Please let me know when this is integrated so I can remove the custom function we added in functions.php.

    Btw, we finally got the other end of this working perfectly. All of our media items now automatically link to their parent-post pages in the media library. This is working beautifully with the function you previously provided for the search.

    …..

    Customizable Header in Settings Screen Date Filters

    I know you postponed this one. I’m just listing it here for reference.

    …..

    Spelling Error for Synonyms Button

    Just letting you know that the button/tab for the new synonyms functionality is misspelled. ?

    …..

    QUESTIONS

    A. I’m curious as to how the new synonyms functionality can be used to improve the search? What is its main purpose?

    B. In your change-log you mentioned adding lazy-load functionality. Where was this added exactly? Does it apply to the ajax results? Is it activated by default?

    …..

    Issue and Question Regarding the Search Results Caching Feature and /asp_upload/ Directory

    First the issue…

    I noticed a few weeks ago that our search results cache was no longer writing files to /uploads/asp_upload/. This used to work, and I’m not sure why it stopped.

    Now the question…

    My understanding about this feature is that it caches common search results so that those results can be reloaded again without having to access the database. If this feature was turned off it would mean that every search would run a full query as if it were the first time, obviously utilizing the database.

    We’ve run into an interesting engineering problem regarding this feature. Actually, it’s a problem common to all plugins that store dynamic data such as this in /uploads/. I mentioned earlier that we are doing a large engineering project here on our infrastructure. Part of that job has to do with segregating our static content from dynamic content. Our stack is based in AWS. A major objective of our project is to eliminate as many dynamic files as possible, as those files most be shared between all servers (it’s a load-balanced environment).

    This particular feature for the search caching stores its files in /uploads/asp_upload/. In addition there is a dynamic css file stored in this folder (style.instances.css).

    What I am trying to do is see if this information can be stored in the DB so that we can eliminate this folder completely. So long as this folder exists it must be shared between all servers, and while we can do this it is best not do for a variety of technical reasons.

    I was wondering if perhaps the search results cache could instead be stored in the database. It would still have all the benefits of a cache, but it would avoid all these files needing to be stored in /uploads/. If this information were stored in the DB it would still avoid the need to run a fresh query for a search, therefore reducing DB usage.

    I’m not as sure about the dynamic css file, but this too is a problem for the same reasons. I really need to get that over to either static file storage, or instead somehow have it store the data in the DB.

    As I said, we can keep all of this if necessary in /uploads/, but it would be far better if we didn’t need to. This is why I am asking you about it, as I think changing this to the DB would benefit all ASP users. Avoiding use of /uploads/ is always beneficial.

    I look forward to hearing your thoughts on this!

    ~ Michael

    …..

    Hi Ernest,

    Please make sure you see my post above from a few days ago first… ?

    Avatar Image Size Used for BuddyPress Activity Search Results

    I just came across something interesting that I need to ask you about. I have the setting to search in BuddyPress Activity turned on (we use BuddyPress). I started noticing that these search results were using the very small avatar size that happens to be next to the user’s activity. The problem with this is that the image is far too small, and ends up looking pixelated in search results.

    A few days ago I just took steps to ensure that all the BuddyPress avatar sizes were properly defined. I’ve defined the thumbnail size, full size, and also the default avatars.

    Is there a way we can have ASP use the full size user avatar when displaying search results for activity? BuddyPress only has two avatar image sizes; thumbnail and full size.

    The member/user search results were using the full size avatar by default, so that’s all set. But these activity results are using the thumbnail image and that looks terrible. Perhaps this can be corrected with a filter? Or even better perhaps you can fix this in core?

    One other thing I noticed…

    This isn’t a problem, but I noticed that the BuddyPress Activity search results are also returning search results for normal post comments (which are technically not BuddyPress activity). I don’t happen to mind this as I am looking at it all as member activity, but I thought you should know just in case it isn’t supposed to work that way.

    Looking forward to hearing back from you on everything.

    All my best!

    ~ Michael

    #18184
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    Please read everything above first…

    I just wanted to ask you about something I noticed a long time ago.

    Database Character Set and Collation

    Are you aware that your plugin is using a latin1_swedish character set and latin1_swedish_ci collation?

    WordPress uses a utf8mb4 character set and utf8mb4_unicode_ci collation. I’ve noticed in my database a number of plugins that are not using this, and ASP is one of them.

    I wanted to bring this to your attention just in case you didn’t know. To my knowledge it is best for databases to have a single character set and collation as opposed to a mix of them.

    ~ Michael

    #18204
    Ernest Marcinko
    Ernest Marcinko
    Keymaster

    Hi Michael,

    Sorry, I think the previous thread got closed automatically – when a support period is over, the thread remains open for a few weeks, then it is closed automatically. I am not sure however, why I didn’t get notified of your responses, I might have to check the code, I might have messed up something with the notification of ‘about to expire’ threads.

    Date Filter Bug
    I am not sure why, as it works now on my end. I have re-tested it just now, and it works: https://i.imgur.com/KTAGSXE.png
    (don’t mind the debug data on the screenshot) Basically it is a post, that I just made, then used this filter only, and it appears to work. You can see the filters there as well.
    The only possibility I can think of, is that pershaps there might be a time-zone difference between the server/browser time, hower that should be corrected by WordPress automatically, as there is a separate field, that stores the publish date by GMT time zone. I honestly don’t think I can tell without actually seeing the code.

    Featured Image Source Size Not Working in All Situations
    That is correct, the featured image size only affects the post type results. However, since attachments are actually post types as well (there is a sublte difference, but basically same database table), I think I can correct this, or at least I hope so.

    Attachment (Media) Images are Not Being Automatically Added to Index Table on Post Creation
    I noticed this as well during testing, this is going to be fixed by enabling temporary WP Cron jobs. It is for safety reasons, mainly to prevent server overload, in case the user has PDF/File content indexing activated.

    To resolve it, on the Index Table submenu, under the Advanced Options, try enabling the cron job: https://i.imgur.com/HodaCF3.png
    That should solve it for now.

    Intermittent Bug With Number of Search Result Columns (Cards)
    I will try to trigger this somehow, this information might actually help, as I know where exactly to look. I cannot replicate it though.

    The “See More Search Results” Button is Not Using Correct Font-Color Style on Mobile Devices When First Loaded
    The button content does change after the loading process, but the structure does not (should not). Can you paste that custom CSS here? I would like to test it.

    Linking Attachment Search Results to Parent (Linked) Posts (Core Integration)
    This feature is implemented, this week I am planning to release the update. It is a major release, many new features and major improvements. I had to postpone it from last week, it is too much to test properly in a short time.

    Spelling Error for Synonyms Button
    Thanks!

    QUESTIONS
    A (synonyms) – I am not sure if you read the synonyms documentation, but it may clear up a few things. In short: during the indexing, each of the defined synonyms are checked against the keyword to be indexed from the original source. If matched, then the defined synonyms (for that keyword) are included for indexing as well. Currently only the original keywords are checked – meaning that if you have synonyms defined for word ‘a’ -> ‘b’, ‘c’, then ‘a’ is not commutatively synonym for ‘b’ and ‘c’, only ‘b’ and ‘c’ are synonyms for ‘a’. This is intentional, mostly because of performance reasons, but I am hoping to resolve it later.

    B (lazy loader) – It is not enabled by default, you will find it under the compatibily options, here: https://i.imgur.com/VAOTiMh.png
    This took ages to test, and it works with the ajax results. Really hard to test, if you have a high speed internet. If the images were already cached by your browser, then it is virtually unnoticable. If you sometimes notice a very short flash of loading of the images during pagination/scrolling of long result lists, then it definitely works.

    (rest of the answers coming in my next response)

    Best,
    Ernest Marcinko

    If you like my products, don't forget to rate them on codecanyon :)


    #18226
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    I’m glad to hear from you. I was a little concerned when I didn’t receive any responses in the old thread. That explains it if you didn’t receive notifications. The thread was still open for a while and I believe it closed recently. Not to worry as I copied everything that was left in that thread here. It’s better we start with a new thread anyway as that old thread became quite long.

    …..

    Date Filter Bug

    The settings in your screenshot look correct. That is exactly how I am using this.

    There really shouldn’t be a time-zone related problem. I have WordPress set to PST and I also just checked the time on one of the servers. The server reports the current date and time properly, and uses UTC for the time.

    I need to get to the bottom of this issue. Is there anything I can look at or provide you to help?

    …..

    Featured Image Source Size Not Working in All Situations

    That is correct, the featured image size only affects the post type results. However, since attachments are actually post types as well (there is a sublte difference, but basically same database table), I think I can correct this, or at least I hope so.

    It was be great if you can get this corrected for the attachment images. All they need to do is use the image source size from the settings. This is important for us because our platform will have endless millions of attachments, and they will naturally display in search results a lot. Regarding the image size used for the tags, we are addressing this directly since we have a custom script in place for them.

    …..

    Attachment (Media) Images are Not Being Automatically Added to Index Table on Post Creation

    To resolve it, on the Index Table submenu, under the Advanced Options, try enabling the cron job: https://i.imgur.com/HodaCF3.png
    That should solve it for now.

    I have this option enabled already. 😉

    So you’re saying that you will fix this only using cron jobs? In other words, attachments will not be indexed purely on post-creation?

    …..

    Intermittent Bug With Number of Search Result Columns (Cards)

    I will try to trigger this somehow, this information might actually help, as I know where exactly to look. I cannot replicate it though.

    I doubt I’m the only person experiencing this issue. I’ve seen this happen on every device, from my PC with the large monitors, to my iPad and iPhone. It doesn’t happen constantly, but under the right circumstances it does. Please follow the steps I previously provided and see if you can reproduce it.

    …..

    The “See More Search Results” Button is Not Using Correct Font-Color Style on Mobile Devices When First Loaded

    The button content does change after the loading process, but the structure does not (should not). Can you paste that custom CSS here? I would like to test it.

    The fact the content of the button changes after loading may explain this. Perhaps the styles are simply not being applied to the content after it loads.

    I’m providing below my css used for the button, but keep in mind this is a mobile-only issue and I believe only affects the text color. You’ll see it corrects itself as soon as you look at the second ajax screen of results.

    
    div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore {
    	display: block !important;
    	position: relative !important;
    	color: #fff !important;
    	font-family: "Open Sans", Arial, Helvetica, sans-serif !important;
    	font-size: 20px !important;
    	font-weight: bold !important;
    	line-height: 20px !important;
    	text-align: center !important;
    	text-shadow: none !important;
    	margin: 20px 0 0 0 !important;
    }
    div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore a {
    	display: inline-block !important;
    	position: relative !important;
    	z-index: 100 !important;
    	overflow: hidden !important;
    	white-space: nowrap !important;
    	opacity: 1 !important;
    	left: 0 !important;
    	vertical-align: middle !important;
    	min-width: 0 !important;
    	height: auto !important;
    	background: #512400 !important;
    	background-color: #512400 !important;
    	color: #fff !important;
    	font-family: "Open Sans", Arial, Helvetica, sans-serif !important;
    	font-size: 20px !important;
    	font-weight: bold !important;
    	line-height: 20px !important;
    	letter-spacing: normal !important;
    	text-align: center !important;
    	text-decoration: none !important;
    	text-transform: capitalize !important;
    	text-overflow: ellipsis !important;
    	text-shadow: none !important;
    	border: none !important;
    	border-radius: 10px !important;
    	box-sizing: border-box !important;
    	box-shadow: none !important;
    	outline: none !important;
    	cursor: pointer !important;
    	margin: 0 !important;
    	padding: 15px !important;
    	/* This padding creates a button height of 49px */
    	transition:			all 0.5s linear !important;
    	-webkit-transition:	all 0.5s linear !important;
    	-moz-transition:	all 0.5s linear !important;
    	-o-transition:		all 0.5s linear !important;
    	/*
    	 * The below three styles remove all default formatting in iOS devices
    	 */
    	appearance: 		none !important;
    	-webkit-appearance:	none !important;
    	-moz-appearance:	none !important;
    }
    div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore a:hover {
    	background: #00c8e5 !important;
    	background-color: #00c8e5 !important;
    }
    div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore a:active {
    	background: #512400 !important;
    	background-color: #512400 !important;
    }
    @media only screen and (max-width: 414px) {
    	div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore,
    	div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore a {
    		font-size: 18px !important;
    		line-height: 18px !important;
    	}
    }
    @media only screen and (max-width: 375px) {
    	div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore,
    	div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore a {
    		font-size: 16px !important;
    		line-height: 16px !important;
    	}
    }
    @media only screen and (max-width: 320px) {
    	div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore,
    	div.wpdreams_asp_sc.ajaxsearchpro.isotopic#ajaxsearchprores1_1 p.showmore a {
    		font-size: 14px !important;
    		line-height: 14px !important;
    	}
    }
    

    …..

    Linking Attachment Search Results to Parent (Linked) Posts (Core Integration)

    This feature is implemented, this week I am planning to release the update. It is a major release, many new features and major improvements. I had to postpone it from last week, it is too much to test properly in a short time.

    That’s great news. I’m looking forward to seeing this in core. So I assume I can safely remove the custom code from functions.php once this is enabled? Please make sure to document where the settings are for this so I can find it quickly. My thanks again for this particular feature!

    …..

    Customizable Header in Settings Screen Date Filters

    I know you postponed this one. I’m just listing it here for reference.

    …..

    Spelling Error for Synonyms Button

    Thanks!

    No problem! 🙂

    …..

    QUESTIONS

    A. I’m curious as to how the new synonyms functionality can be used to improve the search? What is its main purpose?

    I did read the documentation actually. If I understand this correctly you can define synonyms for a keyword, and when a synonym is used in search it will display the search results for that synonym and also the word it is associated with. Sound correct?

    I’m not entirely sure if this feature could be useful on a site as large as ours. I can see where this could be very helpful on a site with specific subjects. But our site is on every possible subject, so it seems impractical to use this without building an entire thesaurus. It would be more interesting a feature if the search itself had a built in thesaurus it could use when generating search results. Now there’s an idea for you! 😉

    B. In your change-log you mentioned adding lazy-load functionality. Where was this added exactly? Does it apply to the ajax results? Is it activated by default?

    Ok, I see the feature in your screenshot and am glad I asked about this. Does this apply to isotopic ajax results?

    I don’t see how this would be helpful for isotopic results since they are always in the viewport. I’m assuming that the subsequent pages of isotopic results don’t load the images until you click to that page, correct?

    I’m going to check and make sure I have this disabled. Please let me know if there’s any good reason I should have this enabled for isotopic results.

    …..

    STILL WAITING FOR ANSWERS ON THE FOLLOWING…

    Issue and Question Regarding the Search Results Caching Feature and /asp_upload/ Directory

    Avatar Image Size Used for BuddyPress Activity Search Results

    Database Character Set and Collation

    …..

    Thank you for taking the time to respond to all these issues. Sorry there are so many, but I do believe we’ve made a lot of progress!

    ~ Michael

    #18897
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    It’s been a long time since I last heard from you. My last post was almost two months ago and you never responded to it. Did you ever see my post above?

    I’ve been incredibly busy the last two months working on all aspects of our platform. We’re due to launch by the end of this year. This was the first chance I’ve had in weeks to give the search some attention. I just upgraded ASP to the latest version (I was two versions behind).

    The good news is that the upgrade went well and it didn’t cause any new problems (at least anything obvious). In fact, the new upgrade completed one of the above items:

    Linking Attachment Search Results to Parent (Linked) Posts (Core Integration)

    COMPLETED

    The new core integration of this feature is working very nicely. I removed the filter we had in place for this in functions.php and tested this feature with the new setting. I like that you implemented it with a primary source and a fallback. This is all working perfectly, and my thanks again for including this in core.

    …..

    Now that we’re in the final months before launch I want to address as many of the above issues as possible. The post prior to this was a full listing of everything we had left. There were also a number of questions and more complex issues. Please look back in this thread to find those original questions.

    I also have one new question for you…

    Index Table Cron Options

    In your recent updates you added additional cron options for the index table. It’s now possible to run at more frequent intervals, like 5 minutes, 15 minutes, etc. I was tempted to set this lower than an hour, but then I started thinking about how large our site will be. I wanted to get your recommendation on how often we should be indexing for a huge site. If we had cron run more frequently then once per hour, would this use a lot of server resources? What about if a new indexing task is not completed when the next one is ready to begin? (this could happen if the time-frame were set very low, like 5 minutes). I’d greatly appreciate your recommendation and thoughts on all this..

    …..

    I hope you see this message. Please at least let me know you saw it even if you can’t respond in detail right away.

    I look forward to getting back to all this with you.

    All my best,

    ~ Michael

    #18911
    Ernest Marcinko
    Ernest Marcinko
    Keymaster

    Hi Michael,

    My apologies, I completely forgot to answer. I usually take regular shorter tickets first, and answer yours once I got the time to do so. Recently I got a bit more requests as usual + I had to migrate the server to a newer ubuntu distribution. Nevertheless, I should have been more careful checking which tickets were left unanwsered.

    Date Filter Bug
    Well, I honestly don’t know. Can you please check if there is any difference in the wp_posts table between the post_date and the post_date_gmt fields: https://i.imgur.com/AEWYG9b.png
    I don’t know if that makes any difference though.

    Featured Image Source Size Not Working in All Situations
    The most recent update (4.13.2) adresses this issue. It should be hopefully fine now.

    Attachment (Media) Images are Not Being Automatically Added to Index Table on Post Creation
    I recall addressing this issue as well. The biggest concern was, that the recent releases support file content indexing, which can be a difficult task, especially for large files. That combined with the file upload process is a disaster to handle, so I have decided to completely remove the automatic indexing upon file upload, and instead enabling a 5 minute cron job. That way, newly added files are indexed at a slower pace, keeping the server stable.

    The “See More Search Results” Button is Not Using Correct Font-Color Style on Mobile Devices When First Loaded

    Okay, I believe I see the problem here. The custom CSS you use, has an ID selector ‘#ajaxsearchprores1_1’. I am guessing, that on mobile devices this ID might be different, as in some cases themes use multiple boxes (especially in menus), and the plugin auto-detects duplicate
    nodes, and tries to fix the IDs. In that case, the actual ID of the element becomes ajaxsearchprores1_2, thus not matching the CSS selector.
    The reasoning behind this whole ID thing would be very complicated to explain.

    Long story short, try this modified version of custom CSS instead:

    Index Table Cron Options
    I recommend setting this option below the frequency of new posts. So if you are adding a few new posts every day, then daily is sufficient. New posts are also automatically indexed (enabled by default), this option is mostly for redundancy in that case. In the recent update I also lowered the number of files to be indexed per request (to only 1 per request), when the file content indexing is enabled. In that case, the cron is automatically enabled, and set to 5 minutes interval (or not changed if it is lower).
    One cron request usually only takes a few seconds with the default options, basically it is the same as one request when you generate the index table, so overlapping is not really possible. PHP also hard limits the request times, so that should not be an issue.

    I’m curious as to how the new synonyms functionality can be used to improve the search? What is its main purpose?
    It is mostly aimed at cases, where the ‘thing’ the user is looking for may not contain all the information (from the search perspective), and it repetitively happens for most results. There is a feature to add ‘additional keywords’, but it only works for each post/result. This feature is global for all indexed posts.
    I would say that for large databases this is useless, as I highly doubt there is missing information, rather there might be too much redundant information.

    B. In your change-log you mentioned adding lazy-load functionality. Where was this added exactly? Does it apply to the ajax results? Is it activated by default?
    It applies to isotopic results as well. Yes, images on subsequent pages are not loaded until the page is activated. Also, if the result list
    extends beyond the viewport, then it also activates automatically.
    Unless you have the number of live results per request set to a high number (like above 50), there is not much difference. I have added this feature, because multiple customers requested it, where they used the auto-populate feature with over 500 initial results, where loading over 500 images at once became an issue.

    Issue and Question Regarding the Search Results Caching Feature and /asp_upload/ Directory
    I like the idea of using the database as a cache method, but currently this may require major modifications on the cache wrapper class. It is one of the oldest features, and it is not ready for easy modifications via API.

    It should not be a very hard feature to implement though. I will try to add an extra cache table with an index, and a simple switch to the cache page to choose the method. I have noted this for the upcoming release, so it should be there.

    Avatar Image Size Used for BuddyPress Activity Search Results
    I see, this should be fixed by core. Until then, can you please try this custom code:

    Database Character Set and Collation
    It is left like that intentionally. It does not really matter in this case, as the tables are not used for any other purpose, it should be fine 🙂

    Best,
    Ernest Marcinko

    If you like my products, don't forget to rate them on codecanyon :)


    #18928
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    It’s great to hear from you! My responses below are long, but only because I copied in many of your responses (in italics) to make this easier to follow. I’ve also double checked this thread to make sure that every single item is listed here in this post, so there’s no need to look above. 😉

    My apologies, I completely forgot to answer. I usually take regular shorter tickets first, and answer yours once I got the time to do so. Recently I got a bit more requests as usual + I had to migrate the server to a newer ubuntu distribution. Nevertheless, I should have been more careful checking which tickets were left unanwsered.

    Don’t worry about it, though I appreciate the apology. I’ve been so busy these past few weeks that it honestly didn’t make any difference. This is the first time I’ve had since my last post to focus on ASP.

    Your support is absolutely amazing, and always has been. Thank you for going through and responding to each and every issue as you always do. I’m hopeful that we can slim this list down and solve all the issues in the coming weeks.

    …..

    Avatar Image Size Used for BuddyPress Activity Search Results

    I see, this should be fixed by core. Until then, can you please try this custom code:

    I agree this issue should be fixed in core. If you could include it in the next release would be great. I tried your patch but it unfortunately didn’t work. Instead of seeing the full size avatars I’m now seeing no images at all.

    …..

    Date Filter Bug

    Well, I honestly don’t know. Can you please check if there is any difference in the wp_posts table between the post_date and the post_date_gmt fields: https://i.imgur.com/AEWYG9b.png
    I don’t know if that makes any difference though.

    This was a good suggestion. I’ve attached here a screenshot from my posts table showing both the post_date and post_date_gmt columns. Not only are they showing different times, they are showing different dates. The post_date_gmt column is always one day ahead of the post_date column. This must be related to this problem. Any idea why these columns are different and what we can do to resolve this?

    …..

    Featured Image Source Size Not Working in All Situations (Attachment Results)

    COMPLETED

    The most recent update (4.13.2) adresses this issue. It should be hopefully fine now.

    When I originally reported this it was related to the image size being used for attachments and tags, which was not using the image source size setting set in ASP. The tags issue has to do with our own custom script and we are taking care of this on our end. I just rechecked to see if the correct image size was now being used for attachments, and it is. The attachment images are now loading the image size set in the ASP settings. I just wanted to let you know that your fix worked for this. Thank you!

    …..

    Attachment (Media) Images are Not Being Automatically Added to Index Table on Post Creation

    I recall addressing this issue as well. The biggest concern was, that the recent releases support file content indexing, which can be a difficult task, especially for large files. That combined with the file upload process is a disaster to handle, so I have decided to completely remove the automatic indexing upon file upload, and instead enabling a 5 minute cron job. That way, newly added files are indexed at a slower pace, keeping the server stable.

    At the moment I can’t reliably test that normal posts are being automatically indexed because of the date filter problem I’m still having. If I go and add a new post right now it won’t display in search results until the following day (so I can’t be sure it was added on post-creation). This is something I want to re-test once the date filter problem is resolved.

    Regarding the auto-indexing of attachments, I agree with you. This could especially be problematic on a site like ours, where we will have huge numbers of users all uploading media at the same time. We even have a gallery post-format where one post could have many images. If all this media were indexed on upload it would overwhelm the site I think.

    I like that you added a periodic cron-job specifically to handle indexing of attachments. But I am wondering about that 5 minute interval. Our site is a social media site with lots of media upload functionality. We could have ultimately tens of thousands or more users all uploading media at the same time. I don’t know how the cron job works, but I think running it every 5 minutes on our site may be a bad idea. I really need you to tell me.

    Perhaps you should consider making the cron frequency a setting (just like you can do for normal posts). So you could say to index attachments every hour, or any frequency that makes sense. Do you like this idea?

    On this same subject, do you think we should even be auto-indexing posts? Keep in mind we are building an enormous site that will have huge numbers of new posts every hour and day. Is there a possibility that auto-indexing will cause problems for us? Should we only be relying upon cron for this?

    …..

    The “See More Search Results” Button is Not Using Correct Font-Color Style on Mobile Devices When First Loaded

    Okay, I believe I see the problem here. The custom CSS you use, has an ID selector ‘#ajaxsearchprores1_1’. I am guessing, that on mobile devices this ID might be different, as in some cases themes use multiple boxes (especially in menus), and the plugin auto-detects duplicate
    nodes, and tries to fix the IDs. In that case, the actual ID of the element becomes ajaxsearchprores1_2, thus not matching the CSS selector.
    The reasoning behind this whole ID thing would be very complicated to explain.

    Long story short, try this modified version of custom CSS instead:

    The #ajaxsearchprores1_1 ID is not the cause of this problem. I have checked and the ID is present on both desktop and mobile devices. I also know this can’t be the cause because I use that ID on every single css selector I am customizing in ASP. If that ID were not present then none of my custom css would be functioning on mobile, and this is not the case.

    I have a special diagnostic tool that allows me to look at the DOM on mobile devices. It’s actually an iOS app that I use in cases like this where the results on mobile don’t reflect what we see on desktop or when emulating mobile. I noticed something strange when looking at the load more button.

    I’m seeing this:

    a {
    color: rgb(66, 139, 202)
    }

    As soon as I disabled this above the color of the text when back to my css settings. So I think this is related.

    Whatever is causing this only affects the load more button text when there are more ajax results to be displayed, so another words where this is a number in parenthesis next to the button text. In cases where there are no additional results to display the button text is using the correct color.

    This isn’t that important an issue, but there is something weird going on with this. The issue isn’t related to my css.

    …..

    Index Table Cron Options

    I recommend setting this option below the frequency of new posts. So if you are adding a few new posts every day, then daily is sufficient. New posts are also automatically indexed (enabled by default), this option is mostly for redundancy in that case. In the recent update I also lowered the number of files to be indexed per request (to only 1 per request), when the file content indexing is enabled. In that case, the cron is automatically enabled, and set to 5 minutes interval (or not changed if it is lower).
    One cron request usually only takes a few seconds with the default options, basically it is the same as one request when you generate the index table, so overlapping is not really possible. PHP also hard limits the request times, so that should not be an issue.

    This relates to what I said in the other issue above about the attachment indexing. We are building a huge social media site that will ultimately have millions of users and enormous numbers of new posts every day. What do you recommend for us knowing that we will have huge numbers of posts? Should we disable the automatic indexing of new posts on creation? Should we set the cron job to a greater interval? Or is it good where it is set now (every hour)? I want to make sure that new posts make it into search as quickly as possible, but without overloading our database or servers. I really need your advice on all this.

    You mentioned the php limits, which also raises a concern. How will the indexing perform when the database becomes huge? We can’t have it running into php execution time limits (we currently have that set to 5 minutes for single php requests). I would think you built into the indexing a chunking type process, so that it is made up into many small batches and can’t therefore run into php time limits.

    …..

    I’m curious as to how the new synonyms functionality can be used to improve the search? What is its main purpose?

    I would say that for large databases this is useless, as I highly doubt there is missing information, rather there might be too much redundant information.

    I think we fall into this category. Our site is going to be huge and the search is going to return a lot of results. Our focus later will likely turn to making the search more relevant.

    …..

    In your change-log you mentioned adding lazy-load functionality. Where was this added exactly? Does it apply to the ajax results? Is it activated by default?

    I have added this feature, because multiple customers requested it, where they used the auto-populate feature with over 500 initial results, where loading over 500 images at once became an issue.

    We’re using isotopic results as I think you know. We also have lots of images being displayed in the results. If the images are only being loaded when each ajax page loads this is a good thing. It will keep all the images from needing to load at once as you pointed out. So long as there aren’t any loading problems this is a good feature for reducing loading times. I’m glad you added it!

    One thing you didn’t answer here was, is the lazy-loading activated by default? Or is this a setting I need to turn on?

    …..

    Issue and Question Regarding the Search Results Caching Feature and /asp_upload/ Directory

    I like the idea of using the database as a cache method, but currently this may require major modifications on the cache wrapper class. It is one of the oldest features, and it is not ready for easy modifications via API.

    It should not be a very hard feature to implement though. I will try to add an extra cache table with an index, and a simple switch to the cache page to choose the method. I have noted this for the upcoming release, so it should be there.

    Firstly, you need to know that our search results caching doesn’t appear to be working at all. The only file I see in the /asp_upload/ directory is style.instances.css. There are no cached searches at all. This was what originally prompted me to write about this.

    The other reason I wrote about this was to see if we could completely eliminate the need for the /asp_upload/ directory. If we didn’t need this it would be one less directory we need shared between all the servers. We’ve engineered all of this at AWS, but the fewer dynamic folders like this we have the better.

    The problem is that in order to eliminate the folder we’d have to eliminate both style.instances.css and all the search cache results. Storing the cache in the database would solve the cache files part of this. But I don’t see how you could eliminate the dynamic css file.

    Storing the cache in the database is frankly a great idea on its own, I think. I’m glad you liked the idea. It would be awesome to see this in the next release. And yes, there would have to be a choice in the settings as to which caching method to use, files or database. As I said above our cache isn’t working at all right now with the file method. I do hope that this new DB storage method will work for us.

    …..

    Database Character Set and Collation

    It is left like that intentionally. It does not really matter in this case, as the tables are not used for any other purpose, it should be fine.

    Ok, so long as you think it won’t cause us problems. We have a number of plugins that are using the latin collation instead of utf8mb4. I just wanted to make sure you were aware.

    …..

    Intermittent Bug With Number of Search Result Columns (Cards)

    I will try to trigger this somehow, this information might actually help, as I know where exactly to look. I cannot replicate it though.

    I just tried to replicate this issue and didn’t see it. I ran a number of consecutive searches without going to new pages and this time the cards remained the same size. I’ll keep an eye out for this problem and will let you know if I see it again.

    …..

    Customizable Header in Settings Screen Date Filters

    Just listing this here so it isn’t forgotten about… 😉

    …..

    Linking Attachment Search Results to Parent (Linked) Posts (Core Integration)

    COMPLETED

    …..

    Attachments:
    You must be logged in to view attached files.
    #18949
    Ernest Marcinko
    Ernest Marcinko
    Keymaster

    Hi Michael,

    Avatar Image Size Used for BuddyPress Activity Search Results
    Indeed, I have made a mistake in there, the $v variable should have been $r. This version should be okay now:

    Date Filter Bug
    I beleive the post_date_gmt is to store the date in GMT timezone, to make WP Cron jobs and daylight savings calculations easier. Because of that, I am not sure if that is a problem or not, possibly not, if you are a few timezones away of GMT.

    Now, I think you should try a few tests here. Try adjusting the post date filter so that a post should come up according to the date, then check the post_date column on that same post in the database. Now also check the post date in WordPress (maybe it is displayed in the editor?), and if there is a difference, then it is very likely that somehow the dates are adjusted by a certain value.

    If there is a mismatch, then I’m guessing that there might be a variable I am not aware of – perhaps if the server timezone and the wordpress database timezone differ, wordpress may still store the post dates in the server timezone (as PHP will return that date), but then compensate it with the timezone difference when displaying. This way, the displayed date and the stored (post_date column) are different.
    This is just a theory though.

    Attachment (Media) Images are Not Being Automatically Added to Index Table on Post Creation

    It should not be an issue, as the cron job is always using the index limit (25 by default), and 1 for attachment contents. This means, that no more than 25 posts and 1 file (only the content) are indexed at one execution. This can be even lowered here:

    And if there are no items to index, then nothing happens. The plugin does not re-index items, that is done automatically, when a post is edited. So this cron index feature only applies to newly created items.

    The “See More Search Results” Button is Not Using Correct Font-Color Style on Mobile Devices When First Loaded

    That is a very generic rule, something that the theme would use as a default color, but in this case I hihgly doubt that. More interestingly, that rule should be immediately overwritten by the rule you have defined, as it is a much higher specificity CSS rule.

    Is there a source file associated with that rule? Chrome mobile console has this feature which tells you where it comes from: https://i.imgur.com/D4raitd.png

    With that, you should be able to pinpoint which file is adding that rule.

    I find it more interesting, that it is applied after an action and that a different rule is in effect. The only possible explanation is, that a class/ID is changed after the first click, and because of that, your rules get ‘correct’, and apply. But that means, that the initial rules should be incorrect, which does not seem to be the case. And the classes does not change either, at least not by this plugin, that is for sure.

    Anyways, I still recommend trying my version of the rules, you can even change the .asp_r class selector to .asp_r_1 if you want to only target the first search instance.
    Because there are less specific rules, it might be easier to maintain, and since you have the !important modifier on all of them, they surely apply above the default plugin CSS rules.

    One thing you didn’t answer here was, is the lazy-loading activated by default? Or is this a setting I need to turn on?

    You can turn it on under the Compatibility & Other Settings -> CSS & JS Loading panel: https://i.imgur.com/tf1zRjg.png

    Issue and Question Regarding the Search Results Caching Feature and /asp_upload/ Directory

    It is very likely a permission/ownership issue, although the CSS files would not be there either, as those use the same WordPress file API for creation. I honestly don’t know why those files are missing.

    There is an option on the back-end that forces the CSS files to be inline within the site header, in that case I believe nothing will be used from the asp_upload directory: https://i.imgur.com/Dt9Fazc.png
    However you still need a cache solution that would get the inline CSS from the header and move them to it’s own CSS files. Most cache plugins do that, as far as I know.

    Another possibility is, that once you finish styling the plugin, you simply lock down the directly, copy the CSS file contents to a custom CSS file, that is enqueued on the site.
    Then using this custom code you just simply de-queue all the front-end styles of the plugin:

    Best,
    Ernest Marcinko

    If you like my products, don't forget to rate them on codecanyon :)


    #18955
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    I’m going to respond to everything in detail tomorrow, but in the meantime I have one question for you regarding the below item:

    Avatar Image Size Used for BuddyPress Activity Search Results

    Indeed, I have made a mistake in there, the $v variable should have been $r. This version should be okay now:

    First, thanks for this fix. Just one character made the difference! The correct avatar size is now loading. When you add this fix to core please make sure to note it in your change-log so that I can remove the custom filter.

    So here is my question…

    Right now if I search for a user, say myself, I see mainly activity search results and my profile is also somewhere mixed in. Both the activity results and the user (profile) results display the full size avatar image. Displaying the full size avatar for both activity and user results makes sense. The only problem is there is no way to tell the difference between an activity search result and a user search result because they each display the same thing, an avatar and the user’s name. So unless you filter the search results to only display users or activity, it is very confusing.

    I had an idea for a simple solution, which is to display the word “Member” under the person’s name when it is a user search result, and “Activity” under the name for activity results. I would want to be able to customize the word (using the words I just mentioned), and make sure the word displays on the second line under the person’s name.

    This would make for a good feature in the plugin, but in the meantime could it be done with a filter and custom function?

    I definitely need to do this because we’re going to have endless members and they will each have lots of activity. My only other choice here would be to not display activity at all. But I’d like to try and display it in search so long as it doesn’t detract from other search results.

    ~ Michael

    #18962
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    Regarding my above idea for the Activity and User search results. I came to the realization today that there were more issues involved with the Activity results.

    Even if the activity results were labeled as activity, they would likely display in search results before the user result, making the user result difficult to find. More importantly, I realized that the activity results are completely undifferentiated from each other. This is really the biggest issue with them. All of the activity results for a single user are identical, displaying only the user avatar and name. There’s no meaningful difference between them and thus no reason to click one or another. The only way they would be usable is if they included the actual activity item text. I highly recommend this to you as an improvement, as without this you see endless identical search results.

    I’ve concluded that it is far more important to have an effective user search. It’s more logical to first search for a user, and then if you want to see their activity to go to it from their profile. The activity search results as they exist now only overwhelm the search with repetitive avatars and usernames. They make it impossible to find the user’s profile in the results.

    I’m going to deactivate the activity results feature. It’s just not useful in its present form and detracts from the overall quality of the search results. If you decide to take any of my suggestions regarding the activity results please let me know.

    …..

    On another note, I’m running late today with my work and probably won’t get to the rest of my responses until this next week (Tuesday).

    ~ Michael

    #19149
    Michael Samson
    Michael Samson
    Participant
    You cannot access this content.
    #19157
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    I just wanted to check in with you regarding my post above from last week. Did you see it yet?

    I’m sure you’re busy over there, but I’d like to keep this process moving forward.

    Hope all is well,

    ~ Michael

    #19190
    Ernest Marcinko
    Ernest Marcinko
    Keymaster

    Hi Michael,

    I had a few hundred emails I had to cover after the vacation, finally it is done. I have read two of your replies before we took off, but I promised myself and my wife, that I would not work during vacation time.

    Let’s get to it:

    Issue and Question Regarding the Search Results Caching Feature and /asp_upload/ Directory
    This is available now within the latest release 4.13.4. Under the Cache settings submenu, you can choose the database as the cache location. It will use the wp_options table for query caching.

    Intermittent Bug With Number of Search Result Columns (Cards)
    Thank you for the video, that looks really weird indeed, but at least I know what it looks like. Still, I have no clue why, to be honest – but I think there is hope. Usually, when I can’t find a cause of a problem, the best way is to bypass it somehow.
    In this case, I think adding a min-width attribute via a custom CSS to the result elements will prevent the shrinking effect.

    Try this:

    
    .asp_isotopic_item {
        min-width: 180px;
    }
    

    The value may need to be adjusted, this is just a sample. What I expect to happen, is that the elements cannot get resized below this defined width. Upsizing can still happen to fill the container width.

    Lazy loading issue
    Thank you for letting me know. I suspect that another script may have a different version of the lazy script loaded, and that may cause the problem. I will go through the script to see if there is a version check feature in it. I will probably rename a few functions to move them to a different scope, that will do the trick.

    Avatar Image Size Used for BuddyPress Activity Search Results
    I will have to test this in more details with the isotopic view.
    I am planning to implement a different isotopic view, where the image + title + description will be available at the same time, sort of a card-view. With the current view, the main issue is the space, and that it is centered around the image. I think, that a few minor changes to the activity results + this view will be a better output for these types of results. I will look into this for sure.

    Best,
    Ernest Marcinko

    If you like my products, don't forget to rate them on codecanyon :)


    #19253
    Michael Samson
    Michael Samson
    Participant

    Hi Ernest,

    It’s good to hear from you, and I certainly would not have wanted you to work on your vacation! I very much appreciate that you take the time to review my lengthy lists of items and write back on them one by one. I know how much time this takes and it shows how much you care about your plugin and clients.

    …..

    Issue and Question Regarding the Search Results Caching Feature and /asp_upload/ Directory

    This is available now within the latest release 4.13.4. Under the Cache settings submenu, you can choose the database as the cache location. It will use the wp_options table for query caching.

    I’ve updated to the latest version of ASP and activated the DB caching feature. Thank you so much for adding this!

    My question to you now is, how do I know the caching is actually working? Where in the database tables can I see the data? Also, do you believe that caching in the DB will improve search results time?

    …..

    Intermittent Bug With Number of Search Result Columns (Cards)

    Thank you for the video, that looks really weird indeed, but at least I know what it looks like. Still, I have no clue why, to be honest – but I think there is hope. Usually, when I can’t find a cause of a problem, the best way is to bypass it somehow.
    In this case, I think adding a min-width attribute via a custom CSS to the result elements will prevent the shrinking effect.

    It was a good idea to try this, but unfortunately it did not work. There were a few problems. The first issue was that if you set a hard limit on the size of the search result cards they will start wrapping incorrectly to extra rows. This happened viewing additional search results if memory serves me. The problem is that the plugin normally calculates the size of the cards so that they perfectly fit in a row. When I tried setting a min-width it prevented this from working properly. The other issue was that this will not work on smaller devices. You would need to use media queries for every possible device size. Otherwise you end up with cards that are too large for small devices. Simply put, the card widths need to be automatically determined to fit properly.

    So this sets us back to having to determine the cause again. I’m still amazed you don’t see anything like this on your end. Are there any particular tests or places to look at that may help us determine the cause?

    …..

    Lazy Loading Issue

    Thank you for letting me know. I suspect that another script may have a different version of the lazy script loaded, and that may cause the problem. I will go through the script to see if there is a version check feature in it. I will probably rename a few functions to move them to a different scope, that will do the trick.

    It’s possible that we had a script conflict, but I don’t know of any other place we are using lazy loading. I figured this didn’t work for us because we have so many custom scripts that modify what images you see in search results. Then again, there may indeed be a problem with this feature.

    …..

    Avatar Image Size Used for BuddyPress Activity Search Results

    I will have to test this in more details with the isotopic view.
    I am planning to implement a different isotopic view, where the image + title + description will be available at the same time, sort of a card-view. With the current view, the main issue is the space, and that it is centered around the image. I think, that a few minor changes to the activity results + this view will be a better output for these types of results. I will look into this for sure.

    What I previously wrote:

    Even if the activity results were labeled as activity, they would likely display in search results before the user result, making the user result difficult to find. More importantly, I realized that the activity results are completely undifferentiated from each other. This is really the biggest issue with them. All of the activity results for a single user are identical, displaying only the user avatar and name. There’s no meaningful difference between them and thus no reason to click one or another. The only way they would be usable is if they included the actual activity item text. I highly recommend this to you as an improvement, as without this you see endless identical search results.

    Please do me a favor… whatever changes you make to the Isotopic results, please make sure that the current design/view options are maintained. I’m always in favor of new display options, so long as the original options are maintained. For the most part the isotopic design we have now is working very well for us, and I don’t want to disrupt that.

    With that said, your idea above sounds interesting. I would considering adding back the activity search results, but only if they were clearly different than the user search results. My idea above about including the actual activity text was a good one. You would just need to limit the number of words. Then again, it may not be wise for me to add this back because we will have so many activity results on our site. Either way, I think this gives you some good ideas for improvements, even if I don’t need them.

    …..

    Date Filter Bug

    I believe the post_date_gmt is to store the date in GMT timezone, to make WP Cron jobs and daylight savings calculations easier. Because of that, I am not sure if that is a problem or not, possibly not, if you are a few timezones away of GMT.

    Now, I think you should try a few tests here. Try adjusting the post date filter so that a post should come up according to the date, then check the post_date column on that same post in the database. Now also check the post date in WordPress (maybe it is displayed in the editor?), and if there is a difference, then it is very likely that somehow the dates are adjusted by a certain value.

    If there is a mismatch, then I’m guessing that there might be a variable I am not aware of – perhaps if the server timezone and the wordpress database timezone differ, wordpress may still store the post dates in the server timezone (as PHP will return that date), but then compensate it with the timezone difference when displaying. This way, the displayed date and the stored (post_date column) are different.
    This is just a theory though.

    I had a thought that may be a good workaround for this problem. What if you made it so that the date range for the current date could have an offset (like one day into the future). The date range in the settings (front-end) would display the current date, but on the back-end it would use the offset time. This way if there are problems associated with time differences (whatever the cause), they can be worked around. It’s kind of like a time buffer to ensure that today’s date includes all of today’s posts. In order to make this work you would add an additional option where the user can select an offset (buffer) time in hours. What do you think?

    …..

    Found a Spelling Mistake in the Plugin

    I found a small spelling mistake in the plugin. If you go to the Relevance Options tab and then look at the button below, it says “estore Defaults” instead of “Restore Defaults”…

    …..

    Customizable Header in Settings Screen Date Filters

    Just listing this here so it isn’t forgotten about… ?

    …..

    I just looked over all the items in the posts above, and I think this is basically everything left that we’ve been discussing. We’ve managed to get a lot of things accomplished thanks to you!

    ~ Michael

Viewing 14 posts - 1 through 14 (of 14 total)

You must be logged in to reply to this topic.