Jump to content


Sovereign Grace Singles

  • Posts

  • Joined

  • Last visited

 Content Type 



IPS4 Providers

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog



Everything posted by Sovereign Grace Singles

  1. I'm sure you've run into a site which didn't have an og image etc to embed so the embed link is blank and white. Is it possible to use a default image when no image is set up or available from linked site?
  2. I now get the following error when the plugin is enabled on page created with Pages: System: ".$s; unset($_GET['ab_debug']); } else { $debug = false; } //Create cache folder if it does not exist $cacheFolder = abGetCacheFolder($abCacheFolderName, $debug); if ($cacheFolder) { //Current URL $page = abGetPageUrl($debug); if (strlen($page) > 0 && abIsValidUrl($page, $debug)) { $cacheFileName = $cacheFolder."/".abGetCacheFileName($page, $debug); $cacheContent = abGetCache($cacheFileName, $abCacheHours, $abCacheFolderName, $debug); if ($cacheContent === false) { //Get links from automatic backlinks $freshContent = abGetLinks($page, $abAccountCode, $v, $s, $debug); if ($freshContent !== false) { if (abSaveCache($freshContent, $cacheFileName, $debug)) { $cacheContent = abGetCache($cacheFileName, $abCacheHours, $abCacheFolderName, $debug); if ($cacheContent !== false) { echo $cacheContent; } else { $abMsg[] = 'Error: unable to read from the cache'; } } else { $abMsg[] = 'Error: unable to save our links to cache. Please make sure that the folder '.$abCacheFolderName.' located in the folder '.$_SERVER['DOCUMENT_ROOT'].' and is writable'; } } else { $abMsg[] = 'Error: unable to get links from server. Please make sure that your site supports either file_get_contents() or the cURL library.'; } } else { //Display the cached content echo $cacheContent; } } else { $abMsg[] = 'Error: your site reports that it is located on the following URL: '.$page.' - This is not a valid URL and we can not display links on this page. This is probably due to an incorrect setting of the $_SERVER variable.'; } } else { $abMsg[] = 'Error: Unable to create or read from your link cache folder. Please try to create a folder by the name "'.$abCacheFolderName.'" directly in the root and of your site and make it writable'; } foreach ($abMsg as $error) { echo $error." "; } /** * Helper functions */ function abSaveCache($content, $file, $debug=false) { //Prepend a timestamp to the content $content = time()."|".$content; echo ($debug) ? " Saving Cache: ".$content : ""; $fh = fopen($file, 'w'); if ($fh !== false) { if (!fwrite($fh, $content)) { echo ($debug) ? " Error Saving Cache!" : ""; return false; } } else { echo ($debug) ? " Error opening cache file for writing!" : ""; return false; } if (!fclose($fh)) { echo ($debug) ? " Error closing file handle!" : ""; return false; } if (!file_exists($file)) { echo ($debug) ? " Error could not create cache file!" : ""; return false; } else { echo ($debug) ? " Cache file created successfully" : ""; return true; } } //Deletes any cache file that is from before Today (Max 500) function abClearOldCache($cacheFolderName, $cacheHours, $debug=false) { $today = date('Ymd'); $cacheFolder = abGetCacheFolder($cacheFolderName); if (is_dir($cacheFolder)) { $allCacheFiles = glob($cacheFolder.'/*.cache'); $todaysCacheFiles = glob($cacheFolder.'/'.$today.'*.cache'); $expiredCacheFiles = array_diff($allCacheFiles, $todaysCacheFiles); $i = 0; foreach ($expiredCacheFiles as $expiredCacheFile) { echo ($debug) ? " Deleting expired cache file: ".$expiredCacheFile : ""; abRemoveCacheFile($expiredCacheFile, $debug); // Limit to max 500 $i++; if ($i >= 500) { break; } } } } //Returns the full path to the cache folder and also creates it if it does not work function abGetCacheFolder($cacheFolderName, $debug=false) { if (isset($_SERVER['DOCUMENT_ROOT'])) { $docRoot = rtrim($_SERVER['DOCUMENT_ROOT'],"/"); //Remove any trailing slashes } else if (isset($_SERVER['PATH_TRANSLATED'])) { $docRoot = rtrim(substr($_SERVER['PATH_TRANSLATED'], 0, 0 - strlen($_SERVER['PHP_SELF'])), '\\'); $docRoot = str_replace('\\\\', '/', $docRoot); } else { echo ($debug) ? " Error: Could not construct cache path" : ""; } $cacheFolder = $docRoot."/".$cacheFolderName; echo ($debug) ? " Cache folder is: ".$cacheFolder : ""; if (!file_exists($cacheFolder)) { echo ($debug) ? " Cache folder does not exist: ".$cacheFolder : ""; if (!@mkdir($cacheFolder,0777)) { echo ($debug) ? " Error - could not create cache folder: ".$cacheFolder : ""; return false; } else { echo ($debug) ? " Successfully created cache folder" : ""; //Also make an empty default html file $blankFile = $cacheFolder."/index.html"; if (!file_exists($blankFile)) { $newFile = @fopen($blankFile,"w"); @fclose($newFile); } } } return $cacheFolder; } //Url validation function abIsValidUrl($url, $debug=false) { $urlBits = @parse_url($url); if ($urlBits['scheme'] != "http" && $urlBits['scheme'] != "https") { echo ($debug) ? " Error! URL does not start with http: ".$url : ""; return false; } else if (strlen($urlBits['host']) < 4 || strpos($urlBits['host'], ".") === false) { echo ($debug) ? " Error! URL is incorrect: ".$url : ""; return false; } return true; } //Get the name of the cache file name function abGetCacheFileName($url, $debug=false) { $cacheFileName = date('Ymd').md5($url).".cache"; echo ($debug) ? " Cache file name for URL: ".$url." is ".$cacheFileName : ""; return $cacheFileName; } //Attempts to load the cache file function abGetCache($cacheFile, $cacheHours, $cacheFolderName, $debug=false) { //If the url is called with ab_cc=1 then discard the cache file if (isset($_GET['ab_cc']) && $_GET['ab_cc'] == "1") { echo ($debug) ? " Clear cache invoked!" : ""; abRemoveCacheFile($cacheFile); unset($_GET['ab_cc']); return false; } if (!file_exists($cacheFile)) { echo ($debug) ? " Error! Cache file does not exist! ".$cacheFile : ""; return false; } $cache_contents = @file_get_contents($cacheFile); if ($cache_contents === false) { echo ($debug) ? " Error: Cache file is completely empty!" : ""; return false; } else { echo ($debug) ? " Cache file contents: ".$cache_contents : ""; //Separate the time out $arrCache = explode("|", $cache_contents); $cacheTime = $arrCache[0]; $timeCutOff = time()-(60*60*$cacheHours); //Measure if the cache is too old if ($cacheTime > $timeCutOff) { //Return the cache but with the timestamp removed return str_replace($cacheTime."|", "", $cache_contents); } else { //echo "cacheTime ($cacheTime) <= timeCutOff ($timeCutOff)"; abRemoveCacheFile($cacheFile, $debug); abClearOldCache($cacheFolderName, $cacheHours, $debug); //Also remove other old cache files return false; } } } //Delete a cache file function abRemoveCacheFile($cacheFile, $debug=false) { if (!@unlink($cacheFile)) { echo ($debug) ? " Error: Could not remove cache file: ".$cacheFile : ""; return false; } else { echo ($debug) ? " Successfully removed the cache file: ".$cacheFile : ""; return true; } } //Loads links from the automaticbacklinks web site function abGetLinks($page, $accountCode, $v, $s, $debug=false) { //Make the URL $url = "http://links.automaticbacklinks.com/links.php"; $url = $url."?a=".$accountCode; $url = $url."&v=".$v; $url = $url."&s=".$s; $url = $url."&page=".urlencode($page); echo ($debug) ? " Making call to AB: ".$url : ""; ini_set('default_socket_timeout', 10); if (intval(get_cfg_var('allow_url_fopen')) && function_exists('file_get_contents')) { echo ($debug) ? " Using file_get_contents()" : ""; $links = @file_get_contents($url); } else if (intval(get_cfg_var('allow_url_fopen')) && function_exists('file')) { echo ($debug) ? " Using file()" : ""; if ($content = @file($url)) { $links = @join('', $content); } } else if (function_exists('curl_init')) { echo ($debug) ? " Using cURL()" : ""; $ch = curl_init ($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $links = curl_exec($ch); curl_close ($ch); } else { echo ($debug) ? " Error: no method available to fetch links!" : ""; return false; } return $links; } //remove ab_cc etc. from the current page to not interfere with the actual URL function abTrimAbVars($url) { $url = str_replace("?ab_cc=1", "", $url); $url = str_replace("&ab_cc=1", "", $url); $url = str_replace("?ab_debug=ebb384a447fd60080ea871916bf0e13d", "", $url); $url = str_replace("&ab_debug=ebb384a447fd60080ea871916bf0e13d", "", $url); $url = str_replace("&phpinfo=1", "", $url); return $url; } //Get page function abGetPageUrl($debug=false) { $query = ""; $protocol = (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != "off") ? "https://" : "http://"; $host = $_SERVER['HTTP_HOST']; $page = null; if (isset($_SERVER["REDIRECT_URL"]) && !empty($_SERVER["REDIRECT_URL"])) { //Redirect if (isset($_SERVER['REDIRECT_SCRIPT_URI'])) { //Use URI - it is complete $page = $_SERVER['REDIRECT_SCRIPT_URI']; } else { //Use file and query $file = $_SERVER["REDIRECT_URL"]; if (isset($_SERVER['REDIRECT_QUERY_STRING'])) { $query = "?".$_SERVER['REDIRECT_QUERY_STRING']; } } } else { //No redirect if (isset($_SERVER['REQUEST_URI'])) { //Use URI if (substr($_SERVER['REQUEST_URI'],0,4) == "http") { //Request URI has host in it $page = $_SERVER['REQUEST_URI']; } else { //Request uri lacks host $page = $protocol.$host.$_SERVER['REQUEST_URI']; } } else if (isset($_SERVER['SCRIPT_URI'])) { //Use URI - it is complete $page = $_SERVER['SCRIPT_URI']; } else { $file = $_SERVER['SCRIPT_NAME']; if (isset($_SERVER['QUERY_STRING'])) { $query = "?".$_SERVER['QUERY_STRING']; } } } if (empty($page)) { $page = $protocol.$host.$file.$query; } $page = abTrimAbVars($page); echo ($debug) ? " This page is reported as: ".$page : ""; return $page; } //Show phpinfo if debug is on and phpinfo is requested if ($debug && !empty($_GET['phpinfo']) && $_GET['phpinfo']) { ?>
  3. There was a product named "Advanced Profile Edits" which allowed someone to view the profile and change everything from the profile including notifications without loggin into the account. I run this on my board and it helps speed along such process. The product is no longer available but says to contact the developer: @Adriano Faria
    5 Star rating for a product which allows the join date to be changed. In my case a minor edit to the conf_global.php file's start date had to be made in order to go back before my IPS migration. My original site was on Vbulletin and my account was created back in 2014. I, being inexperienced had merged my old account during the migration to the new account rather than vice versa. The IPS migration took place in 2018 so the edit to the conf_global.php file was to allow join date before the board's migration back to 2014. If you're having to do the same because of making this error during the migration of your board Adriano Faria will be counting the seconds until you reach out to him for support! 😮 In all seriousness, 5 stars for a product that does what it says and for quick support. Many thanks Adriano!
  4. Genius! Thank you. Worked as described. My profile now displays my original account creation date before our IPS migration! https://www.christforums.com/profile/1-william/
  5. Yes, 08/15/2014. I am able to FTP and make changes to the conf_global.php file. My site was created in 2014 however we migrated to IPS last April.
  6. Running into an error. The reason I need to change the join date is because an old account was merged into the new account after my board's creation. Seems the plugin doesn't like the fact that I'm trying to create a join date before the board's creation. I need the join date to be 08/15/2014.
  7. Indeed it is fixed. Thank you very much!
  8. I'm having a compatibility issue with the NewsLetter application. Seems a language string is missing from Videos. UnderflowException: lang_not_exists__videos_comments (0) #0 /home/religio9/public_html/applications/newsletters/extensions/newsletters/NewsletterContent/Comment.php(71): IPS\_Lang->get('videos_comments') #1 /home/religio9/public_html/applications/newsletters/sources/Newsletter/Content.php(141): IPS\newsletters\extensions\newsletters\NewsletterContent\_Comment::getClasses() #2 /home/religio9/public_html/applications/newsletters/sources/Newsletter/Content.php(168): IPS\newsletters\Newsletter\_Content->extension() #3 /home/religio9/public_html/applications/newsletters/modules/admin/newsletters/content.php(209): IPS\newsletters\Newsletter\_Content->formElements(Object(IPS\Helpers\Form)) #4 /home/religio9/public_html/system/Dispatcher/Controller.php(85): IPS\newsletters\modules\admin\newsletters\_content->edit() #5 /home/religio9/public_html/applications/newsletters/modules/admin/newsletters/content.php(25): IPS\Dispatcher\_Controller->execute() #6 /home/religio9/public_html/system/Dispatcher/Dispatcher.php(146): IPS\newsletters\modules\admin\newsletters\_content->execute() #7 /home/religio9/public_html/admin/index.php(14): IPS\_Dispatcher->run() #8 {main}
  9. No I do not. With the video application enabled I cannot even preview the newsletter now. Unless I disable the Video application the following errors display. I've wrote the developer for the video application and await his support. Just thought I'd run this by you too: UnderflowException: lang_not_exists__videos_comments (0)
    Opentype's product does what is claimed. I had modified my template before purchasing this with most of the mods available in the product in order to improve upon SEO. This will no longer be necessary (modifying templates) because this product accomplishes what I had done to receive a 99 Google Page Speed score. The only Suggestion I have to make the product better is instead of disabling the H1 "Forum" perhaps allowing one to change "Forum" to another Title. This can be accomplished in Translate Language but just thought it may help those who haven't done so. I give this product 5 stars for not only providing a product which does what is claimed (default template) but also because of the ongoing revision updates. To note: I use this product on an aftermarket template. Only minor CSS was needed to correct Topic views alignment of avatars. For the default template the product works flawlessly.
  10. Note, I receive the error: 4C124/6 lang_not_exists__videos_comments When I disable the Video application the News Letter distributions runs in tasks successfully. Odd, this wasn't a problem until last update.
  11. After the latest update I noticed this morning that the scheduled News Letter was not distributed. The Admincp had a warning about News Letters being "tasked locked". Obviously an issue?
  12. Someone mentioned Tapatalk. If it was anything like Tapatalk where I could opt out my community I wouldn't have a problem with it. I belong to a niche that questionable affiliation directly impacts the site's reputation. In other words, I wouldn't want to belong on a reddit type of system. We'd surely be trolled by other forums which oppose our existence on said system. And that brings me to another question. If such system was implemented and a central or passport like login across the system was had, and my niche or board's users were black listed by others in a "spam defense" would that effect them on my site? Just something to consider. I also prefer to stay away from a "federated" type of system online. Before you know it people are going to be implementing guidelines and rules etc. We'll be having to comply with various cookie type warnings, GDPR, etc. Before you know it they'll be micro managing our content or pushing it down based on how well we align with the federation's mission in their site listing or search queries. Tis the nature of man. No thank you. Summation, having an opt out would be fine for me. Doesn't hurt to offer a service as long as it isn't forced upon me (within reason of how much the product increases in price for only offering the service). I'd prefer the service were offered at an additional cost for those that wish to contribute to such community.
  13. Worst case scenerio you can not allow "guest" to use the contact us page but only forum member groups. In spam prevention configuration I have " Guests must complete CAPTCHA in order to post?" and enabled invisible captcha. I believe this covers the "contact us" page (someone correct if wrong). I haven't had bots signing up to contact me but when I do receive an undesirable it is a real person.
  14. I wouldn't mind doing this also, that is changing a member's join date. I initially set up my new IPS board and created a new admin. When I migrated my VB board over I then merged the wrong old account to the new admin account rather than vice versa. The oldest account, mine, now appears to be the youngest with the most posts etc. Just chiming in to suggest that if such a simple database edit is safe I'm for doing this. Will wait until more feedback.
  15. When a cookie notification to guest is displayed >> admincp >> Terms and Privacy Policy >>> Show terms of service confirmation bar to Guests? The cookie warning window which has the button to "accept" doesn't fit on mobile. Is there a temporary way through custom css to fix this or an update that can be made? The window is much wider than the display screen and partially hidden so that it cannot be read:
  16. I use Cloudflare and 301 redirect at the DNS level rather than .htaccess. They shouldn't freak out if no warning from a ssl certificate etc occurs. But if you wish to time delay a redirect please ignore my suggestion. Though you may want to redirect to a landing page with an option or button to proceed after explaining why they are being redirected or automate a count down and auto redirect: <html> <body> <div id="counter">5</div> <script> setInterval(function() { var div = document.querySelector("#counter"); var count = div.textContent * 1 - 1; div.textContent = count; if (count <= 0) { window.location.replace("https://example.com"); } }, 1000); </script> </body> </html>
  17. I have the exact same error regarding the sitemap. Should I too start a ticket?
  18. Hi Joel, For you Alpha testers are you fellas migrating your current version of 4.3xx and testing with current themes and 3rd party products? Just curious as to whether current themes will work or there will be a waiting period for 3rd party companies to update their products for compatibility. Are the changes enough that most 3rd party products won't work without serious error?
  19. Note: I edited the XML (then reuploaded it) and just replaced the two instances for medium with mini regarding the avatar sizes. Now it looks like it is a matter of CSS. to get rid of some of the wasted spacing. .EFV_avatar { height: 0 !important; } You can see here the results: https://www.christforums.com/forum/58-bible-inspiration-and-translations/
  20. I'd like an option for smaller avatars so the spacing issue isn't so apparent.
  21. I noticed in the latest update that a single slide does not repeat sliding. Just like to compliment you Taman on this as I use a single slide for signed in members and multiple slides for guests. Great job, I love this theme!
  22. Hi Opentype, Do you have a demo? I think if I understand your product that you have implemented what I had on my homepage forums: https://www.christforums.com/ The avatars were removed and the last column that displayed last post information etc? If what you made will make my Behemouth template look the same but way of plugin rather than stripping code etc from forum templates I'll purchase your product. Thanks in advance for answering my questions. CF Note: I purchased it for the big avatars in topic listing. I already modded my home page but in the future I think this may be a time saver if I run multiple templates.
  23. I notice that when posting a link to a category the link does not auto embed. It would be nice if it did. Also it would be nice to be able to click a video and see it on a sole page to be able to rate and review etc. Just some friendly suggestions to make the product much better 🙂 https://www.christforums.com/videodirectory/ Example: If I post the link it only appears as a link rather than embedding.
  • Create New...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy