ModX Revo Relative Path Images in Resource Editor - ckeditor

I have a site in ModX Revolution that I am having an issue with. Well... ok, it's not an issue for me, but for my client it will definately be an issue.
The issue is, I am finding that when adding an image to a resource using the CKEditor plugin, the paths to the images are not site relative(they are being put in as assets/images/image.png, when it should be /assets/images/image.png). Which of course will cause them to fail to load in when /page/YXZ is rendered.
I have searched all around, and I cannot find the answer to this seemingly impossible task...
How can I ensure that all files are relative to the site, without having to revert to <base href="" /> tags?
Note:
I cannot use <base href>, due to #identifier links throughout the site.

You should be using <base href="[[++site_url]]"> with MODX, or you'll run into all kinds of problems with url references (such as this one).
If you want to use anchor tags, you just need to modify the syntax slightly:
My Anchor Link
http://rtfm.modx.com/revolution/2.x/making-sites-with-modx/structuring-your-site/resources/named-anchor
Note for others: if you want to use friendly urls with a MODX site, the <base href=""> tag is essential: http://rtfm.modx.com/revolution/2.x/administering-your-site/using-friendly-urls

I have "fixed" the issue by going with TinyMCE instead of CKEditor for this. There are special settings in TinyMCE that allow me to set rootrelative links for images and files.

Take a look at the 'strip_image_paths' system variable under the file system group... you can set so that modx will rewrite them as either relative or absolute.

You should still be able to use anchor links with the base href.

Related

ExpressionEngine images/fonts missing from subtemplates (template in template group)

I have set up a site with ExpressionEngine, and put the fonts and images folder in the root of the site, and they work absolutely fine for pages that are template group home pages (with the house icon) but they suddenly dont work on pages that are added to the same template group as new templates...
the paths look like this in the html:
href="fonts/Anybody.woff2" or url(img/header_stripes_light.svg)
where should I copy the fonts and images folders to make them also work in subtemplates? I couldn't find anything useful in their documentation about this issue.
That's an easy one! make those url's absolute and you're fine.
Do it like this: href="/fonts/Anybody.woff2" or url(/img/header_stripes_light.svg)
Your paths are relative to the page now, so without the initial "/"

joomla prepends to 'path'

my wife have a joomla 2.5 site
She claims that she has done nothing except, installing and and subsequently uninstalling Koowa plugi, Ninja plugin and Ninjaboard component.
Anyway after that the joomla 'path' have changed such that between the domain name and the path rendered by HTML, the joomla server now seems to insert "/index.php" or "/index.php/menu-item-name"
for example clicking a link like the following:
<a href="images/some_folder/xxx.JPG">
points to something like: http://www.domain.contry/index.php/fun/images/some_folder/xxx.JPG
how to we change the 'global path settings' such that
<a href="images/some_folder/xxx.JPG">
points to
http://www.domain.contry/images/some_folder/xxx.JPG
NB: my joomla and php skills are very basic :)
Update:
I think the problem something like this:
all the image paths used to be 'absolute' and are now relative, so if I am in 'index.php/some-menu' and click 'images/xxx.jpg' then it resolves to 'index.php/some-menu/images/xxx.jpg', she has all her images in the image folder, is there some way make all image paths 'absolute' instead of relative in joomla?
because changing 'images/xxx.jpg' to '/images/xxx.jpg' with firebug fixes the problem...
if it is not possible in joomla... how bad do you think it is to:
download the sql database
and run a regex akin to
s/<.+?=\"(images)\/[\w\s]+?\.[\w\d]+)\".*?>/\/$1/g
Look in your global configuration under the Site tab for your SEO settings. Make sure you have URL rewriting enabled, and follow the directions in the tooltip to rename htaccess.txt (Linux servers) or web.config.txt (Windows servers) if necessary.
If you get a server error on the site at this point, try uncommenting RewriteBase / in .htaccess.

Change image icon in addressbar of browser

I searched through many sites, but I failed to get an answer.
Question :
I want to change icon as per given in below image in my browser.
Currently chrome and Mozilla does not support this feature if you want check you can check it in either ie or safari, it will show where you want.
you should add this tag to head
<link rel="shortcut icon" href="<YOUR ICON PATH>">
this is a tool to help you to create icon using converter
http://www.favicongenerator.com/
Those are called "favicons", and you can set one for your website using a special tag in the HEAD of your HTML. You can find many tutorials on this by Googling (now that you know what they're called).
Wikipedia suggests a tag something like this:
<link rel="shortcut icon" href="http://example.com/myicon.ico" />
As an alternative, your website can provide an image named favicon.ico in the root folder.
That icon names "favicon". To create Something like that go to THIS LINK, Upload an image and get the favicon.ico file, then put it next to your template page on your host.
To get more information go HERE.

Font awesome not displaying properly on Firefox

I am trying to use a font awesome icon in a widget that is installed on a customers website. The font awesome icons displays correctly in Safari and Chrome but doesnt in Firefox. However, it still displays correctly in Firefox when previewing it on our site. Does this have something to do with how Firefox displays third party fonts across domains?
Any ideas would be greatly appreciated. Thanks.
Note: This was tested using Firefox V9 and above.
Firefox only allows cross-domain linking of fonts if the server the font is on sends the right CORS headers. And it does this because the spec very clearly says to do it, at http://dev.w3.org/csswg/css3-fonts/#default-same-origin-restriction
I notice a strange behaviour, probably related to the firefox security policies.
I had the same problems with a project configuration like so:
/site/html <--- where all the .html files go
/site/resources/... <--- where all the css, font, img, js stuff goes
now, I included the font-awesome.min.css in an html file located under the /site/html directory and I experimented your problem.
But when you download the Font Awesome package it is shipped with html demo files that actually works in firefox. What's the trick?!
Their project structure has the "resources" folder (they call it "assets") nested inside the "html" folder. This seems to calm down the firefox security policy.
Finally, my answer is: get a configuration like the following
/site/html <--- where all the .html files go
/site/html/resources/... <--- where all the css, font, img, js stuff goes
it worked for me.
If you are hosting your font on S3, you have to enable CORS on the bucket. See my answer to this other question for details
MaxCDN identified and fix this issue. They set the right CORS headers and embedding this line to your website should work:
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
Firefox blocks Cross-Origin Request.
Firefox disallows reading the remote resource due to Same Origin Policy for below CDN:
https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css
I dug little to fix CORS issue instead I replaced above CDN with below one and icons rendering fine:
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0/css/font-awesome.min.css" media="all" rel="stylesheet" type="text/css">
Use direct link for including css files , also make sure you don't get a cross-domain error in the debugging console .
For example when you access your website from :
http://www.domain.tld make sure you link css file from the same path including www
like so : http://www.domain.tld/css/style.css
and when you access from http:// > link css files also from that very same path without www.
http://domain.tld/css/style.css
i got that issue some time ago and it was fixed by modifying css paths to request css files from the "same" web address / path .
example:
you can view font awesome icons in this path
http://webake.ro/
But not in this one :
http://www.webake.ro/
because the font was linked from within http://domain.tld path without adding www. in the
link href=
Font from origin 'http://webake.ro' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.webake.ro' is therefore not allowed access.
Turn your fonts into base64 and include through CSS. This way you push the fonts through the browser code and the font files are not downloaded in the usual fashion needing cross domain permissions. This is also a DISA STIG issue to disable downloadable fonts but probably not your issue here. The solution can be seen at this post and also copied here:
You just need to Base64 the font and include it in a CSS file. Make sure to remove your call to the downloadable WOFF file once you include the call to the new FontAwesomeB64.css
Use https://www.base64encode.org/ to encode the WOFF Font-Awesome font file.
Edit the the resulting file and add these lines. When you get to the src:url line, make sure to run that right into the base64 information you received (don't use the greater than and less than signs I show here.) At the end of that base64 information add the single quote, parentheses, a semi-colon, and curly brace to finish:
#font-face {
font-weight: 400;
font-style: normal;
font-family: 'FontAwesome';
src:url(data:application/x-font-woff;base64,<insert base64 code here>);}
You now have a base64 CSS file of the Font-Awesome font that bypasses all font download denial settings in browsers.
I've found that this works with all fonts, a little heavier on the download but worth the guarantee of functionality.
#font-face{font-family:'FontAwesome-webfont';
trust me, this really works.

AbcPdf - document not applying CSS

This may be more of a tech support issue, but I'm wondering if any other developers have come across this:
I'm using Abcpdf in my ASP.NET code to generate a PDF from HTML. It works fine, but one user is generating PDFs that don't have the CSS applied (IE8, Adobe Acrobat latest version - same as everyone else). Since this is the only user complaining, I'm sure it's a local setting, but I can't figure out what would prevent the css from loading - a browser setting? An Acrobat setting?
Does anyone have any suggestions?
Perhaps an issue with different versions of Acrobat reader? I'd look into this.
This doesn't make a lot of sense because AbcPdf uses service side logic to create the PDF based on what methods you are using to create the document (ex. AddImageUrl vs drawing out the document manually, etc.).
For what it's worth the staff at WebSuperGoo (the vendor of AbcPdf) is great with replying to support questions such as this. I've run across a few edge cases with their product that they've always followed up with workarounds or alternatives to address in a timely manner.
make sure you have media="print" for the CSS style sheet! Just spent ages looking at this pulling my hair out and was about to email WebSuperGoo then that thought came to me.
just about to back out all the changes I've made to my code and test again but it looks like with EngineType.Gecko it needs to be media="print" where as with EngineType.MSHtml it can be media="screen".....
very odd but hope that helps someone!
Make sure that the CSS is an absolute URL rather than relative, or add a base tag to the header of the HTML
For example, rather than
<style type="text/css" href="/styles/somecss.css" rel="stylesheet" />
use
<style type="text/css" href="http://myserver.com/styles/somecss.css" rel="stylesheet" />
Also if you site is SSL or authenticated then you will have to either make the area with the stylesheet un-authenticated, or, set the password and username attributes of the PDF object so that ABCPdf can authenticate
You can try the following in version 9
doc.HtmlOptions.PageLoadMethod =
PageLoadMethodType.WebBrowserNavigate;
I am using Version 10 of ABCpdf and I found that the style sheet path should be absolute instead of relative.
I changed the stylesheet path from "C:\MyProject\Resources\Styles.css" to "http:\www.MyDomain.com\Resources\Styles.css" and it worked.
Although, version 6 seems to be working with relative paths. I didnot check it with other versions
As per WebSuperGoo support:
(Query # : 6.17)
HTML does not exist within a file and so it does not have a location.
External stylesheets and images are often referenced via relative URLs. Because the HTML has no location it is impossible to resolve
these relative references.
So you need to provide your stylesheet and image links as absolute references. Or you may be able to use the HTML BASE element to specify
an appropriate base location. Or you can save your HTML to file in an
appropriate location and then use AddImageUrl.
Have you tried;
theDoc.HtmlOptions.DoMarkup = true;
This forces the engine to process the HTML before rendering.

Resources