This article will cover some of the favicon cache issues you get when working with Windows 10 and Firefox 56.0.2 (64-bit), but the information will probably apply to other setups.
If your Favicon is cached and you cannot unchache the icon then this article will guide you through the process of fixing that and why.
Internet Shorcuts are handled by your default browser. There are 2 ways to create an Internet Shortcut.
The following article goes into some depths about this. How do I set a custom icon for a desktop URL shortcut? - Ask Leo!
On the Windows desktop, right click and create a new shortcut but using a URL as the location. This will create a shorcut that uses the Firefox default icon but I have seen it use the favicon before now.
The icon created typically looks like:
With the code inside the shortcut:
[{000214B0-0000-0000-C000-000000000048}] Prop3=19,11 [InternetShortcut] IDList= URL=https://quantumwarp.com/
In Firefox highlight the URL in the address bar and drag it to the Windows desktop.
This method always creates a shortcut using an icon created by using the Favicon (48px or highest quality layer in the icon) stored in Firefox and then super imposes this on a white background. This leads to a very small icon in the middle of a white square. a lot of people complained about this so it is possible to change this behavious to use the normal Firefox icon. If the icon does not exist in Firefox then the icon will be grabbed from the website via Firefox internally and the same process will occur. If no Favicon exists then you might see a World icon.
Some other browsers might support this feature but I have not tested them.
The icon created could looks like one of these:
As you can see it has used the URL title for the description, this can be changed by renaming the shortcut.
With the code inside the shortcut:
[InternetShortcut] URL=https://quantumwarp.com/ IDList= HotKey=0 IconFile=C:\Users\testuser\AppData\Local\Mozilla\Firefox\Profiles\727ui0od.default-1577462149946\shortcutCache\TiE1mKLHrw+Is5_yDymu0w==.ico IconIndex=0
This is an easy one to explain (after a lot of research) but first you need to know the process Windows goes through to create the shortcut.
The Process
When creating an internet shortcut via drag and drop the following occurs:
Cause
As you can see there are 3 caches involved, this is where the issue creep in. The favicon might be correct in Firefox but because Windows has its own independent cache the old version can persist within the Windows cache.
Solution
The only way to get a Windows Internet Shorcut Icon to have an upto date icon is to:
NB: Firefox Favicons stored in the database expire after 7 days but I do not know if that causes the Internet Shortcuts Icons in the shortcutCache to be automatically updated or if you need to visit the URL in question or they do not get updated at all. Depending on the answer you might only need to wipe/refresh the Windows Icon cache if the favicon that you need to update is older than 7 days. One further thing you could try is to set the expiry data in the Firefox database for all of the required Favicons to 0 or another time in the past.
I have changed my favicon on my site but my Firefox Bookmark icon has not changed. This is because the favicon is cached but not within the normal Firefox file cache.
You can possibly bypass this problem if you use versioning on your favicon by using the following code to declare your favicon.ico changing the variable when you make change.
<link rel="shortcut icon" href="/favicon.ico?v=QWr4XjEpXx">
You can disable the use of Favicons for Internet Shorcuts by modifying some Firefox settings in about:config, this also assumes Firefox is the default browser of Windows.
In about:config set these options to false and restart the browser.
browser.chrome.favicons browser.chrome.site_icons
The original article from HowToGeek - Quick Tip: Disable Favicons in Firefox | HowToGeek
When you visit a site in Firefox it caches the favicon.ico, favicon-16x16.png, favicon-32x32.png (only 1 of the png is stored, 16x16 if both present).
It caches them in it's own database as BLOBs and the location varies from version to version. It only ever grabs the following layers 16/32/48.
FF <55 - %AppData%\Mozilla\Firefox\Profiles\.default\places.sqlite FF 55+ - %AppData%\Mozilla\Firefox\Profiles\.default\favicons.sqlite
After research I can confirm the expiry date set on all favicon assets in the database is 7 days. I have not found anywhere that this can be changed. It should also be noted that changing caching options in your .htaccess seems to make no difference.
Firefox 55.0 got a new storage system for Favicon data.
Moved from the places.sqlite file into its own 'favicons.sqlite' file, along with adding two temporary storage files 'favicons.sqlite-wal' and 'favicons.sqlite-shm' which are used while Firefox is running. Then as Firefox is closed the temporary data is written to the main 'favcions.sqlite' file.
The goals for the new storage system include saving the new Favicon with the newly saved bookmark (vs being saved upon the first use of the new bookmark) and the ability for Favicons to be Sync'd (although I'm not sure if the Sync service has been updated just yet).
Favicons Disappear After 55+ Updates | Firefox Support Forum | Mozilla Support
So for those of us who are developing our sites often we need a way to be able to empty the favicon cache. This is not always as easy as it seems so I will outline what works.
%AppData%\Mozilla\Firefox\Profiles\.default\favicons.sqlite
These are a collection of links with different ways of doing this. I have not test any of them but they are for reference.
[InternetShortcut] URL=https://quantumwarp.com/ IDList= HotKey=0 IconFile=C:\Users\testuser\AppData\Local\Mozilla\Firefox\Profiles\727ui0od.default-1577462149946\shortcutCache\TiE1mKLHrw+Is5_yDymu0w==.ico IconIndex=0
This is the easiest cache to clean.
%LocalAppData%\Mozilla\Firefox\Profiles\.default\shortcutCache\
Notes
As of now I do not believe that there is any Windows event that expires the Icon Cache or that they have an expiry date.
Most of the delete icon cache out there refer to just deleting the IconCache.db and this is ok for Windows 7 but is not correct for windows 10. The file IconCache.db is still present in Windows 10 but is no longer used. The icons are now stored in the following folder within the files all starting with iconcache*.
%LocalAppData%\Microsoft\Windows\Explorer
This is where you can refresh the icons without needing to reboot the PC.
After issuing this command, icons might not refresh but instead change into Blank Paper icons. This is probably because you have emptied the Firefox Internet Shorcut Cache and Windows cannot find the correct icon so it uses the first icon (Blank Paper) in the default icon library (C:\windows\system32\shell32.dll). You can fix this by recreating the shortcut for the URL using the Drag and Drop method, this will cause the favicon to be downloaded again consequently this Internet Shortcut icon will display correctly with the new version of the icon. You also find all other shortcuts that were using the same icon will now also be restored but using the newer icon. You do not need to recreate each one individually, it is only because the icon is missing from the shortcutCache folder that we do this.
Open a command prompt and enter the appropriate command:
For Windows 7 and 8 use
ie4uinit.exe -ClearIconCache
For Windows 10
ie4uinit.exe -show
Notes
NB: If some of the iconcache* files do not delete, logout, log back in and repeat the process, this should be enough. Once the icons have refreshed it would not harm to reboot, this is optional.
Notes
The following instructions are how to export a transparent PNG version of my QuantumWarp logo from a SVG using Inkscape.
Once exported to make the white version you can manually change the black to white by using paint.net
Option 1
Width:1000.00 Height:400.00
Option 2
x0 = 0.000 y0 = 0.000 x1 = 1000.000 y1 = 400.000
Width: 1000px at 90.00 dpi Height: 400px at 90.00 dpi
This page shows you what the different standard layouts that come installed with JDownloads look like so you can easily choose what you want.
There are some more layouts available at JDownloads.com in the Layout Section and these already have images and descriptions.
Defines the layout of the categories as well as the download items for the use with CHECK boxes above and below the Download list.
Here is a sample layout with 4 columns. If you create your own layout with more then one column, you must observe the rules which may be found in the FAQ.
This is a subcategory layout used in categories when subcategory pagination is enabled by the 'Show page navigation for subcategories?' option in the Frontend tab of the Configuration. This layout must not be activated because it is automatically used when the above option is selected. It is not intended as a standalone category layout.
Defines the layout of the Download list when displaying as a single category view.
Defines the layout of the Download list displayed below the categories.
Defines the layout of the Download detailed view.
Defines the layout of the Download summary page with the list of those files selected for downloading. This is the page where actual dowloading is initiated.
Defines how the form and the results from the frontend search function are shown.
Back your system and files up before doing anything.
Currently if you have split profile locations you cannot upgrade Windows 10. This might be the case for other operating systems.
This article came about because I had already moved my documents, pictures and music to my D: drive by changing the location of those libraries. It is an easy thing to move your libraries but I kept on finding programs such as VirtualBox created their own library folder and this was back in my profile on the C: drive so I decided that I might aswell move my whole profile on to the D: drive. There were serveral methods I came across all with various pros and cons:
Moving your profile from one location to another on the same PC is not an easy thing to do, not any more, because you need to make sure that file permission are correct and that all references point to the new location properly. My process outlined below goes over all aspects of moving your profile correctly. This will should work on XP, Vista, Windows 7, Windows 8 and Windows 10.
One other thing to consider is are you just moving 1 User Profile or do you want to move all of your profiles in which case you will find is is also possibly to change the default location for new profiles easily.
Prerquisite Software
I would recommend you create a user folder to hold your profiles (eg D:\Users) even if it is just for your one profile at the minute. This folder will have the exact same permissions as on the C: drive so you know the permissions are not going to cause any problems. It is possibly to put this folder anywhere but I prefer to use D:\Users\ as in this example.
Also read about changing the default profile locations before doing anything in this section as you might not want to do this step.
This method takes a little setting up and understanding but this method will do all of the heavy lifting for you whilst you know there wont be any mistakes. You can use either the RoboCopy command directly or you can use ChoEazyCopy whichs configures and uses RoboCopy via a GUI. Both methods do exactly the same thing.
RoboCopy Command
RoboCopy.exe "C:\" "D:\" *.* /E /LEV:2 /DCOPY:T /SEC /COPYALL /MT:8 /XF *.* /XD "C:\$RECYCLE.BIN" "C:\$SysReset" "C:\$Windows.~WS" "C:\Boot" "C:\Documents and Settings" "C:\MSOCache" "C:\PerfLogs" "C:\Program Files" "C:\Program files (x86)" "C:\ProgramData" "C:\Recovery" "C:\System Volume Information" "C:\VTRoot" "C:\Windows" "C:\Windows.old" /L
ChoEazyCopy Settings File
<ChoAppSettings> <MaxStatusMsgSize>1000</MaxStatusMsgSize> <SourceDirectory>C:\\</SourceDirectory> <DestDirectory>D:\\</DestDirectory> <RoboCopyFilePath>RoboCopy.exe</RoboCopyFilePath> <Files>*.*</Files> <CopyNoEmptySubDirectories>false</CopyNoEmptySubDirectories> <CopySubDirectories>true</CopySubDirectories> <OnlyCopyNLevels>2</OnlyCopyNLevels> <CopyFilesRestartableMode>false</CopyFilesRestartableMode> <CopyFilesBackupMode>false</CopyFilesBackupMode> <FallbackCopyFilesMode>false</FallbackCopyFilesMode> <UnbufferredIOCopy>false</UnbufferredIOCopy> <EncrptFileEFSRawMode>false</EncrptFileEFSRawMode> <CopyFlags /> <CopyDirTimestamp>true</CopyDirTimestamp> <CopyFilesWithSecurity>true</CopyFilesWithSecurity> <CopyFilesWithFileInfo>true</CopyFilesWithFileInfo> <CopyFilesWithNoFileInfo>false</CopyFilesWithNoFileInfo> <FixFileSecurityOnFiles>false</FixFileSecurityOnFiles> <FixFileTimeOnFiles>false</FixFileTimeOnFiles> <DelDestFileDirIfNotExistsInSource>false</DelDestFileDirIfNotExistsInSource> <MirrorDirTree>false</MirrorDirTree> <MoveFiles>false</MoveFiles> <MoveFilesNDirs>false</MoveFilesNDirs> <AddFileAttributes /> <RemoveFileAttributes /> <CreateDirTree>false</CreateDirTree> <CreateFATFileNames>false</CreateFATFileNames> <TurnOffLongPath>false</TurnOffLongPath> <RunAgainWithNoChangesSeen>0</RunAgainWithNoChangesSeen> <RunAgainWithChangesSeenInMin>0</RunAgainWithChangesSeenInMin> <RunHourStartTimeTicks>0</RunHourStartTimeTicks> <RunHourEndTimeTicks>0</RunHourEndTimeTicks> <CheckRunHourPerFileBasis>false</CheckRunHourPerFileBasis> <InterPacketGapInMS>0</InterPacketGapInMS> <CopySymbolicLinks>false</CopySymbolicLinks> <MultithreadCopy>8</MultithreadCopy> <CopyNODirInfo>false</CopyNODirInfo> <CopyWithoutWindowsCopyOffload>false</CopyWithoutWindowsCopyOffload> <CopyOnlyFilesWithArchiveAttributes>false</CopyOnlyFilesWithArchiveAttributes> <CopyOnlyFilesWithArchiveAttributesAndReset>false</CopyOnlyFilesWithArchiveAttributesAndReset> <ExcludeFilesWithGivenNames>*.*</ExcludeFilesWithGivenNames> <ExcludeDirsWithGivenNames>"C:\$RECYCLE.BIN";"C:\$SysReset";"C:\$Windows.~WS";"C:\Boot";"C:\Documents and Settings";"C:\MSOCache";"C:\PerfLogs";"C:\Program Files";"C:\Program files (x86)";"C:\ProgramData";"C:\Recovery";"C:\System Volume Information";"C:\VTRoot";"C:\Windows";"C:\Windows.old";</ExcludeDirsWithGivenNames> <ExcludeChangedFiles>false</ExcludeChangedFiles> <ExcludeNewerFiles>false</ExcludeNewerFiles> <ExcludeOlderFiles>false</ExcludeOlderFiles> <ExcludeExtraFilesAndDirs>false</ExcludeExtraFilesAndDirs> <ExcludeLonelyFilesAndDirs>false</ExcludeLonelyFilesAndDirs> <IncludeSameFiles>false</IncludeSameFiles> <IncludeTweakedFiles>false</IncludeTweakedFiles> <ExcludeFilesBiggerThanNBytes>0</ExcludeFilesBiggerThanNBytes> <ExcludeFilesSmallerThanNBytes>0</ExcludeFilesSmallerThanNBytes> <ExcludeFilesOlderThanNDays>0</ExcludeFilesOlderThanNDays> <ExcludeFilesNewerThanNDays>0</ExcludeFilesNewerThanNDays> <ExcludeFilesUnusedSinceNDays>0</ExcludeFilesUnusedSinceNDays> <ExcludeFilesUsedSinceNDays>0</ExcludeFilesUsedSinceNDays> <ExcludeJunctionPoints>false</ExcludeJunctionPoints> <AssumeFATFileTimes>false</AssumeFATFileTimes> <CompensateOneHourDSTTimeDiff>false</CompensateOneHourDSTTimeDiff> <ExcludeJunctionPointsForDirs>false</ExcludeJunctionPointsForDirs> <ExcludeJunctionPointsForFiles>false</ExcludeJunctionPointsForFiles> <NoOfRetries>0</NoOfRetries> <WaitTimeBetweenRetries>0</WaitTimeBetweenRetries> <SaveRetrySettingsToRegistry>false</SaveRetrySettingsToRegistry> <WaitForSharenames>false</WaitForSharenames> <ListOnly>true</ListOnly> <ReportExtraFiles>false</ReportExtraFiles> <VerboseOutput>false</VerboseOutput> <IncludeSourceFileTimestamp>false</IncludeSourceFileTimestamp> <IncludeFullPathName>false</IncludeFullPathName> <PrintByteSizes>false</PrintByteSizes> <NoFileSizeLog>false</NoFileSizeLog> <NoFileClassLog>false</NoFileClassLog> <NoFileNameLog>false</NoFileNameLog> <NoDirListLog>false</NoDirListLog> <NoProgress>false</NoProgress> <ShowEstTimeOfArrival>false</ShowEstTimeOfArrival> <NoJobHeader>false</NoJobHeader> <NoJobSummary>false</NoJobSummary> </ChoAppSettings>
NB: C:\\ (source) and D:\\ (target) it is intentional to have 2 trailing slashes and is a workaround for a bug when using root folders in ChoEazyCopy. This bug has been reported but only applies to ChoEazyCopy but not when using RoboCopy directly.
Switches Explained
This can easily be done with a piece of software called Profile Relocator. This is ideally used when you first setup a new PC before you create any profiles (except the one you were required to do to set windows up which you can delete later), however you can still use this on a live PC.
Profile relocator does not move exisiting profiles.
Instructions
This is what it does according to the readme:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ProfilesDirectory HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\Public HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\Default
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\!ProfileRelocator-Original
Notes
This process will copy the selected profile to the new location with all of the ACL permission intact. In this example I am moving a single profile from C:\Users to D:\Users. This process will copy all profiles that you do not specify in one action so you do not have to repeat this for every profile if doing more than one.
You can use either the RoboCopy command directly or you can use ChoEazyCopy whichs configures and uses RoboCopy via a GUI. Both methods do exactly the same thing.
Notes
RoboCopy Command
RoboCopy.exe "C:\Users" "D:\Users" *.* /E /ZB /DCOPY:T /SEC /COPYALL /SL /MT:8 /XD "C:\Users\All Users" "C:\Users\Default" "C:\Users\Default User" "C:\Users\Default.migrated" "C:\Users\DefaultAppPool" "C:\Users\LogMeInRemoteUser" "C:\Users\Public" "C:\Users\UpdatusUser" /R:1 /W:1 /UNILOG:"C:\profile-copy.log" /L
ChoEazyCopy Settings File
<ChoAppSettings> <MaxStatusMsgSize>1000</MaxStatusMsgSize> <SourceDirectory>C:\Users</SourceDirectory> <DestDirectory>D:\Users</DestDirectory> <RoboCopyFilePath>RoboCopy.exe</RoboCopyFilePath> <Files>*.*</Files> <CopyNoEmptySubDirectories>false</CopyNoEmptySubDirectories> <CopySubDirectories>true</CopySubDirectories> <OnlyCopyNLevels>0</OnlyCopyNLevels> <CopyFilesRestartableMode>false</CopyFilesRestartableMode> <CopyFilesBackupMode>false</CopyFilesBackupMode> <FallbackCopyFilesMode>true</FallbackCopyFilesMode> <UnbufferredIOCopy>false</UnbufferredIOCopy> <EncrptFileEFSRawMode>false</EncrptFileEFSRawMode> <CopyFlags /> <CopyDirTimestamp>true</CopyDirTimestamp> <CopyFilesWithSecurity>true</CopyFilesWithSecurity> <CopyFilesWithFileInfo>true</CopyFilesWithFileInfo> <CopyFilesWithNoFileInfo>false</CopyFilesWithNoFileInfo> <FixFileSecurityOnFiles>false</FixFileSecurityOnFiles> <FixFileTimeOnFiles>false</FixFileTimeOnFiles> <DelDestFileDirIfNotExistsInSource>false</DelDestFileDirIfNotExistsInSource> <MirrorDirTree>false</MirrorDirTree> <MoveFiles>false</MoveFiles> <MoveFilesNDirs>false</MoveFilesNDirs> <AddFileAttributes /> <RemoveFileAttributes /> <CreateDirTree>false</CreateDirTree> <CreateFATFileNames>false</CreateFATFileNames> <TurnOffLongPath>false</TurnOffLongPath> <RunAgainWithNoChangesSeen>0</RunAgainWithNoChangesSeen> <RunAgainWithChangesSeenInMin>0</RunAgainWithChangesSeenInMin> <RunHourStartTimeTicks>0</RunHourStartTimeTicks> <RunHourEndTimeTicks>0</RunHourEndTimeTicks> <CheckRunHourPerFileBasis>false</CheckRunHourPerFileBasis> <InterPacketGapInMS>0</InterPacketGapInMS> <CopySymbolicLinks>true</CopySymbolicLinks> <MultithreadCopy>8</MultithreadCopy> <CopyNODirInfo>false</CopyNODirInfo> <CopyWithoutWindowsCopyOffload>false</CopyWithoutWindowsCopyOffload> <CopyOnlyFilesWithArchiveAttributes>false</CopyOnlyFilesWithArchiveAttributes> <CopyOnlyFilesWithArchiveAttributesAndReset>false</CopyOnlyFilesWithArchiveAttributesAndReset> <ExcludeFilesWithGivenNames /> <ExcludeDirsWithGivenNames>"C:\Users\All Users";"C:\Users\Default";"C:\Users\Default User";"C:\Users\Default.migrated";"C:\Users\DefaultAppPool";"C:\Users\LogMeInRemoteUser";"C:\Users\Public";"C:\Users\UpdatusUser";</ExcludeDirsWithGivenNames> <ExcludeChangedFiles>false</ExcludeChangedFiles> <ExcludeNewerFiles>false</ExcludeNewerFiles> <ExcludeOlderFiles>false</ExcludeOlderFiles> <ExcludeExtraFilesAndDirs>false</ExcludeExtraFilesAndDirs> <ExcludeLonelyFilesAndDirs>false</ExcludeLonelyFilesAndDirs> <IncludeSameFiles>false</IncludeSameFiles> <IncludeTweakedFiles>false</IncludeTweakedFiles> <ExcludeFilesBiggerThanNBytes>0</ExcludeFilesBiggerThanNBytes> <ExcludeFilesSmallerThanNBytes>0</ExcludeFilesSmallerThanNBytes> <ExcludeFilesOlderThanNDays>0</ExcludeFilesOlderThanNDays> <ExcludeFilesNewerThanNDays>0</ExcludeFilesNewerThanNDays> <ExcludeFilesUnusedSinceNDays>0</ExcludeFilesUnusedSinceNDays> <ExcludeFilesUsedSinceNDays>0</ExcludeFilesUsedSinceNDays> <ExcludeJunctionPoints>false</ExcludeJunctionPoints> <AssumeFATFileTimes>false</AssumeFATFileTimes> <CompensateOneHourDSTTimeDiff>false</CompensateOneHourDSTTimeDiff> <ExcludeJunctionPointsForDirs>false</ExcludeJunctionPointsForDirs> <ExcludeJunctionPointsForFiles>false</ExcludeJunctionPointsForFiles> <NoOfRetries>1</NoOfRetries> <WaitTimeBetweenRetries>1</WaitTimeBetweenRetries> <SaveRetrySettingsToRegistry>false</SaveRetrySettingsToRegistry> <WaitForSharenames>false</WaitForSharenames> <ListOnly>true</ListOnly> <ReportExtraFiles>false</ReportExtraFiles> <VerboseOutput>false</VerboseOutput> <IncludeSourceFileTimestamp>false</IncludeSourceFileTimestamp> <IncludeFullPathName>false</IncludeFullPathName> <PrintByteSizes>false</PrintByteSizes> <NoFileSizeLog>false</NoFileSizeLog> <NoFileClassLog>false</NoFileClassLog> <NoFileNameLog>false</NoFileNameLog> <NoDirListLog>false</NoDirListLog> <NoProgress>false</NoProgress> <ShowEstTimeOfArrival>false</ShowEstTimeOfArrival> <UnicodeOutputLogFilePath>C:\profile-copy.log</UnicodeOutputLogFilePath> <NoJobHeader>false</NoJobHeader> <NoJobSummary>false</NoJobSummary> </ChoAppSettings>
Switches Explained
Once the profile has been moved the registry needs some changes making to it so things work properly. This needs to be done for each profile moved.
Step 1 - Change Profile Image Path
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-xx-xxxxxxxxxx-xxxxxxxxxx-xxxx\ProfileImagePath
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-xx-xxxxxxxxxx-xxxxxxxxxx-xxxx\State
Once you have done all of the above for each of the moved profiles, reboot the computer.
Step 2 - Change the static references in the registry
We need to change all references of C:\Users\{username} to D:\Users\{username} - this is also a good reason for keeping the same folder format but on the D: drive as it is slightly easier to change the locations in the registry.
For this we will use a Registry editor that will allow us to do a text search and replace within the registry. Install this via your temporary administrator account.
This procedure needs to be done for each profile.
NB: Some entries in the registry have the format C:\Users\USERNAM~1\ (old file format) you might want to change these but I suspect that this is fromm old buggy software I no longer have
Once you have done the process above for each moved account then you should reboot the computer.
Now you have moved your profile you might need to do some of the follwoing to keep you computer running correctly
All the changes have been made and hopefully you now have moved your profiles.
After I have finished moving my profile I noticed a couple of issues which might not always occur. These are easy enough to fix.
There could be some other minor issues that occur because of the change of folder and file locations but should just be a case of changing settings in the various softwares.
General
Registry Software
Microsoft User State Migration Tool (USMT) Software
Microsoft User State Migration Tool (USMT)
3rd Party Transfer Software
RoboCopy GUI Software
RoboCopy
Xcopy
Symbolic Links
SysPrep
Managing Libraries
Quick Links
del %appdata%\microsoft\windows\recent\automaticdestinations\*
NTFS Cut and Copy Permissions behaviour
NTFS Extended Attributes
These are for those fiddly settings you can never find.
You need to setup a cron job for both EasyBlog and Komento because
Send E-mails During Page Load Location
Use this information to turn the feature off, if not already. This also where you can setup other notification options.
Official Documentation
Notification of the requirement to use cron
Currently the only notification that you need a cron job is if you visit the following pages. they also have a link to the official documentation for setting up a cron job.
Shared Hosts
remember that on shared hosts you will have limits on your email send and receive volume and the frequency that your cron can run.
These are a typical example of limitations on a well run server.
Setup your cron to run every 10 minutes with a 50 emails max send. You could push it to 100 emails max send.
Disable Blog Header Title and Header Description
The settings to disable these are at
NB: EasyBlog retrieves the info from Joomla, not a separate database
Assuming EasyBlog Composer
(Settings-->Media-->General-->Storage Paths)
I need to test my folder selection to see if it all works as expected.
Default:
Mine:
This is much neater as all of the blog media is within one folder. I have many application installed in my Joomla website.
If you are using EasyBlog and Komento it is important to match the themes.
I like the following EasyBlog themes:
Kometo also has these themes:
If easy blog has its own built in commenting system why do i need Komento ?
EasyBlog had its own commenting system, integrating with komento gives you more features given in the default easyblog comment.
Do i need to use the inbuilt media manager?
You do not need to use media manager to upload your pictures, using your editor would work.
What are the benefits of using the inbuilt media manager?
The build in manager makes it easy for you to upload picture, it also automatically create thumbnails and full view and will come in handy when using lightbox. It also has additional features like pictures that you could share with others using the shared folder.
Can you recommend which comment system to use? i do not know if disqus is better because it is cloud based ?
You might need to check your requirements and what you will need for your blogs.
Why does Easyblog not use the Joomla template?
EasyBlog had themes which you could choose to better suite your site. We also have partners with template developer that supports easyblog
Link --> http://stackideas.com/partners
Will ever use the joomla template?
As for the Joomla template, the default theme that is included in EasyBlog was created to inherit most of the styling of your Joomla template but some of the elements are designed internally. For instance, the toolbar in EasyBlog, we have to design this on our own because there's no other Joomla template that is designing the toolbar :)
You can read this documentation link and see is it helpful for you? -> Template Overriding - Customizations - EasyBlog Documentation
Does Easyblog allows the use of joomla plugins
EasyBlog does trigger content plugins but whether or not it works with EasyBlog is another matter because some of these content plugins are explicitly configured to work with Joomla articles. We can't really tell you which plugin works and which plugin doesn't but if I recall correctly, allvideos plugin does work but EasyBlog has a built in video embed tool so not too sure if Allvideos is really necessary?
Where does the number come from of the folder my uploaded images are put it?
The number comes from the User ID
When i upload an image using your image manager, the manager uploads the image and puts it in a folder of that user, ie /easyblog_images/623/ is there anyway of turning this off because running a blog i do not want images all over the place. i want them like /images/blog/2014/09 etc.. no user number
There is also a shared folder in EasyBlog where they are stored in a shared folder . The shared folder does not categorize images into user id folders. However do take note that storing them in a shared folder also means that all authors on your site will be able to access them.
When inserting an image using your manager it uses an absolute image link ie http://www.mywebsite.com/images/easyblog_images/mypicture.jpg this is really bad, lets say i was developing on my test server and then moved it, none of the image links would then work. please can you tell me if you can turn this off as i do not understand why anyone would have this option on anyway.
The URL that is inserted into the blog post is actually dependent on your editor's configuration. If the editor that you are currently using is configured to use relative URLs, the url of the image will be relative because these WYSIWYG editors would format the urls accordingly.
This is only seems to work with JCE Editor. Does not work with None/TinyMCE/JCK
Proprietary software is computer software for which the software's publisher or another person retains intellectual property rights—usually copyright of the source code,[1] but sometimes patent rights.[2]. A Proprietry
A license for such software maintains the vendors rights tot hat software and affords the end user the use of the software under certain conditions and are usually aggreed to in a End User License Agreement (EULA).
For further information see these articles from Wikipedia
I have come across these examples of licenses.
/** * @version 3.0.x * @package Simple Image Gallery Pro * @author JoomlaWorks - http://www.joomlaworks.net * @copyright Copyright (c) 2006 - 2014 JoomlaWorks Ltd. All rights reserved. * @license http://www.joomlaworks.net/license */
By checking this, you agree with the following: 1. To accept full responsibility for the comment that you submit. 2. To use this function only for lawful purposes. 3. Not to post defamatory, abusive, offensive, racist, sexist, threatening, vulgar, obscene, hateful or otherwise inappropriate comments, or to post comments which will constitute a criminal offense or give rise to civil liability. 4. Not to post or make available any material which is protected by copyright, trade mark or other proprietary right without the express permission of the owner of the copyright, trade mark or any other proprietary right. 5. To evaluate for yourself the accuracy of any opinion, advice or other content.
Getting Xdebug, Xampp and Netbeans to work together in Windows can be a tricky thing and I want to address that here. These instructions will get debugging working all on the same PC and IP.
A symptom of a PC that is not setup correctly is this Netbeans Socket Exception error. You get this error when Netbeans cannot communicate with Xdebug and is usually because you are running them both on the same computer and therefore IP so the traffic routing is getting mixed up. It could also because something else is running on the debug port you have selected.
These settings are what I am using now and work well.
output_buffering = Off
[XDebug] zend_extension="D:\websites\php\ext\php_xdebug.dll" ;zend_extension="D:\websites\php\ext\php_xdebug-2.5.4-5.6-vc11.dll" xdebug.idekey = netbeans-xdebug xdebug.profiler_append = 0 xdebug.profiler_enable = 0 xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir = "d:\websites\tmp\xdebug" xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 1 xdebug.remote_autostart = 0 xdebug.remote_connect_back = 0 xdebug.remote_host = "192.168.1.160" xdebug.remote_port = 9001 xdebug.remote_handler = "dbgp" xdebug.remote_mode = req xdebug.remote_log = "d:\websites\tmp\xdebug\xdebug_remote.log" xdebug.show_local_vars = 9 xdebug.trace_output_dir = "d:\websites\tmp" ;xdebug.show_exception_trace = 1
Minimum working settings
These are the minimum settings I have found to work but are here only for reference.
[XDebug] ;zend_extension="D:\websites\php\ext\php_xdebug.dll" zend_extension="D:\websites\php\ext\php_xdebug-2.5.4-5.6-vc11.dll" xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=192.168.1.160 xdebug.remote_port=9001 xdebug.idekey=netbeans-xdebug
(Tools --> Options --> PHP --> Debugging)
You need to send a trigger to Xdebug via your browser to trigger the debugger. You can send the trgger via GET/POST but you need a plugin for this.
Now you have configured your system as above you need to test it before you can rely on it.
If xdebug does not work straight away then trying these things might help.
This code is taken from 21.4.2 How to Set Up XDebug | Oracle
<?php $address = '127.0.0.1'; $port = '9000'; $sock = socket_create(AF_INET, SOCK_STREAM, 0); socket_bind($sock, $address, $port) or die(); socket_listen($sock); $client = socket_accept($sock); echo "Connection established: $client"; socket_close($client); socket_close($sock); ?>
However I found this slightly better version from dbgtest.php · GitHub
<?php // adapted from https://blogs.oracle.com/netbeansphp/entry/howto_check_xdebug_installation $address = $argv[1] ?: '127.0.0.1'; $port = '9000'; $sock = socket_create(AF_INET, SOCK_STREAM, 0); socket_bind($sock, $address, $port) or die(); echo "Listening to $address:$port\n"; socket_listen($sock); $client = socket_accept($sock); echo "Connection established: $client\n"; socket_close($client); socket_close($sock);
Call to undefined function socket_create()
If there is something running on this socket you will get an error as shown below. This shows that some other process is using the port 9000.
Warning: socket_bind(): unable to bind address [10048]: Only one usage of each socket address (protocol/network address/port) is normally permitted. in D:\websites\htdocs\dbgtest.php on line 5
These are a few workarounds I tried and might work for you. These are not designed to be a permanent fix.
Method 1
* I am not sure if you need to do the IP fix aswell for this to work. It is all caused by routing issues on the loopback system of the PC. Or sockets might be needed.
Method 2
Method 3 - (if working and then stops for no reason)
This code is incredibly useful for going through an array and applying changes to the individual values without having to create a specific loop to perfom this action. In this example all apostrophes are escaped.
// Walk through the array and escape all apostophes (anonymous function) array_walk($merged_config, function(&$value, &$key) { $value = str_replace("'", "\\'", $value); });
this also works, without the &$key
// Walk through the array and escape all apostophes (anonymous function) array_walk($merged_config, function(&$value) { $value = str_replace("'", "\\'", $value); });
keep the '&' it is important. This creates a reference to the object in memory.
When testing the translation system on QWcrm I needed to try different locales (languages) to see if the software actually worked how it should. The following are ways to change the HTTP_ACCEPT_LANGUAGE header that the browser sends to the webhost with its request.
This will also fix the issue where Firefox was sending en-US instead of en-GB
Option 1 - Change the browser system settings
Option 2 - re install
You can also just install Firefox with the correct locale.
Option 3 - Plugins
Using a plugin will allow you to easily change the settings on a temporary basis.
Option 1 - Change the browser system settings
This is useful when you want to control the errors outputted tot he screen or is a class or some other code is not behaving as expected, such as the ADOdb error class.
The following code will preserve the current error reporting level so once your code has finished running the system's error reporting will be returned to its normal state.
// Get current PHP error reporting level $reporting_level = error_reporting(); // Disable PHP error reporting (works globally) error_reporting(0); // Add you code here // Re-Enable PHP error reporting error_reporting($reporting_level);