Getting skin method results in AttributeError - plone

When I try to call a skin method as follows:
portal.skin_method()
it results in
AttributeError.
I remember being able to do this in older versions of Plone.
Has something changed here?
PS: I am able to do:
portal.portal_skins.skin_name.skin_method()

The behavior has not changed.
Most likely your portal_skins registration is somehow broken or lost after a theme upgrade.
Can you confirm you can see skin_method.py in ZMI > portal_skins
Can you check that this particular skin folder is active in the current theme skin list in ZMI > portal_skins > Properties tab?

Related

Trying to override templates in FOSUserBundle, but having no effect

I'm trying to modify the skin of the register.html.twig template found in FOSUserBundle/Resources/views/Registration/register.html.twig.
I've basically followed the instructions in the documentation down to a T.
Like it told to do so, I created /app/Resources/views/FOSUserBundle/views/Registration/register.html.twig.
Cleared the cache (and browser cache just to be sure)
NO effect! I've put a blank file in register.html.twig, but no matter what I put there, when I go to /register/, I still see the default template.
Yep, these things happen all the time.
It should be:
/app/Resources/FOSUserBundle/views/Registration/register.html.twig
Reference

drupal 6 /user/permissions checkbox page core module

Does anyone know where i can find the code that makes the user/permissions checkbox page in drupal? I'd like to see how it's done to make something similar for a custom module i'm building.
The function you're looking for is theme_checkbox($element) and can be found in root/includes/form.inc. If you ever want to know what function/template is responsible for a certain HTML element then Theme developer is your friend.
Enable the module, set the permissions and you'll see a small checkbox Themer info. Then just point to the HTML part you're interested and see what theme function/template is doing the rendering.
i think on default module folder there is user folder on user.admin.inc file contain code for permission function is user_admin_perm(); see this code

Plone imagemaps error with zopyx.tinymceplugins.imgmap

I'm using Plone 4.2. I had the need to manage imagemaps in my application so I installed the following product: http://pypi.python.org/pypi/zopyx.tinymceplugins.imgmap. This product uses TinyMCE to edit the images and add links to them.
After installing this product, I noticed that I am now unable to view my TinyMCE controls while editing a content type. Looking at my browser's error console, I notice that all my *.kss cannot be read. This is the error that is displayed for all *.kss files:
Error: The stylesheet http://localhost:8082/plone/portal_kss/My%20CMS%20theme/++resource++tinymce.kss/tinymce.kss was not loaded because its MIME type, "text/plain", is not "text/css".
Source File: http://localhost:8082/plone/folder-test/image-maps-test/page-with-imagemap/edit
Line: 0
I do not understand why there should be error regarding the MIME type. Anyone has a clue on how to fix this?
Additionally, I get the following:
GET http://localhost:8082/plone/portal_javascripts/My%20CMS%20theme/plugins/imgmap/editor_plugin.js 500 (Internal Server Error)
Just to answer my own question:
I opened the product's skins.xml file
(i.e. zopyx.tinymceplugins.imgmap-0.3.1/zopyx/tinymceplugins/imgmap/profiles/default/skins.xml)
This is how it looks like:
<?xml version="1.0"?>
<object name="portal_skins" allow_any="False" cookie_persistence="False">
<object name="zopyx_tinymceplugins_imgmap"
meta_type="Filesystem Directory View"
directory="zopyx.tinymceplugins.imgmap:skins/zopyx_tinymceplugins_imgmap"/>
<skin-path name="Plone Default">
<layer name="zopyx_tinymceplugins_imgmap"
insert-after="custom"/>
</skin-path>
<skin-path name="Sunburst Theme">
<layer name="zopyx_tinymceplugins_imgmap"
insert-after="custom"/>
</skin-path>
</object>
It appears that the product has been geared towards specific themes.
Now, my application has a custom theme i.e. MyCustomTheme. When I inspect my portal_skins
Site > Zope Management Interface > portal_skins > properties
I notice that indeed the "Sunburst Theme" has included the zopyx_tinymceplugins_imgmap skin layer in the 'Plone Default' and 'Sunburst Theme', but NOT in my 'MyCustomTheme'. It has added it right after the custom layer.
So I go ahead and manually add zopyx_tinymceplugins_imgmap in MyCustomTheme, just immediately after the custom layer.
This manages to fix it, and I can now view my TinyMCE controls. I believe there must be a better way to have it work.
Hope this helps someone in future.
UPDATE: See this for a better solution.

How do I load / unload css changes quickly on a plone + Zope site ? (noob)

Basically, i'm admin of a plone website and i want to try out changes in the plone.css, plus other stuff in the Base Properties and ploneCustom.css for my additionnal elements.
I want to be able to quickly swicth from my custom css to the default for trying out different versions of plone.css.
What's the best way ? Is it about the cache or should I try CSS Manager type switching ? If so how ?
When I "save" the contents of plone.css or other style properties, it either takes ages to show up or ages to disappear...
thanks.
Enable portal_css debug mode e.g.:
(follows #aclark 's answer)....or in production mode, Css are all merged in a single big css per performances reasons. There's a little trick to force the css refresh though: just go to Zope Management Interface -> portal_css. Here toggle the selection of any css (just to simulate a change in the configuration) and then at the end of the page click "Save". This makes Zope think that you made some change and it force it to refresh the css digest.
In the ZMI you can also go to the Statistics tab under ResourceRegistryCache and delete the CSS cache directly. Nice and quick.
What to do to work with CSS if you dont have access to ZMI (you are not admin of the site)?

Could not resolve * to a component implementation

I'm a wee bit stuck on this, and was hoping you might have some input to help me.
I'm getting the "Could not resolve * to a component implementation." error message. However, everything I've read about this via Google hasn't helped my case in the slightest. I presume I'm just missing something obvious, but maybe its something more serious.
So, to solve this problem, I've tried two things, and both work, as far as they take me. First, I added a new component, of the exact same variety, and then copied the contents of the erroring component into it. I replace the viewstack 'page' with the new component (which as near as I can tell is IDENTICAL, but with a different name), and the compiler error goes away.
I can also solve this by simply renaming the original component & letting FB4 refactor for me. The error goes away again. But if I then re-rename back to the original name, I get the compiler error again.
I've tried to clean the project several times, and that doesn't help. Neither does deleting the workspace, and re-importing the project.
I'd really like to understand what I've done wrong here. What am I missing?
Thanks much!
Try the following:
Right-click on your project in the
Package Explorer.
Select "Properties" in the pop-up
menu (last item).
Click "Flex Library Build Path"
Click the "Classes" tab
Try to find the name of your new component in there. If you do, see if it is checked or not. If it is not, check it. That should solve the problem right there, but you may have to clean and (sometimes) quit FB4 and relaunch.
Usually errors like this means you have two components named similarly and the compiler couldn't tell which one you wanted to use.
Do you have another component with the same, even in a different package? Or do you have a variable in your component the same name as the component? Be sure to check your SWCs and/or Library projects.
I'm assuming this is a compile time error; is that correct?
In my case the problem was solved by changing the SDK version of the Flex Compiler to 4.5
You can try with different SDK versions, until you get your component to compile or until the error changes to something related to a theme related error.
After changin this I got an error related to a propertie that is not supported by the current theme, so I open the component in design view and in the Properties View selected the Appearance tab and changed the theme from SPARK to HALO
Hope this is usefull for somebody else
One cause of this error is that the default xml namespace for the component is not the same as the the package in which the component resides.
Check to make sure that the default xmlns entry in the component definition is the same as the package.
For example:
If you have an component MyControl.mxml located in the package com.company.components.controls
The mxml opening tag might look something like this:
<MyControl xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:util="com.company.components.util.*"
xmlns:components="com.company.components.*"
xmlns="com.company.components.controls.*">
Note how the default xmlns entry points to the same package.
Why this happens:
What often happens is that after you refactor an MXML class by moving it to a new package you will end up with a an valid but not correct mxml definition.
For example say I refactor and move the MyControl.mxml from the com.company.components package to the com.company.components.controls package. The xmlns definitions will not be updated so they will look like this:
<controls:MyControl xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:util="com.company.components.util.*"
xmlns="com.company.components.*"
xmlns:controls="com.company.components.controls.*">
Note how the default namespace still points to the com.company.components package and the mxml tag MyControl has to be prefixed by the namespace controls this is an indication of the issue.
Now here is the catch; This is technically valid and will often work. The reason is that it is valid and the components can all be found in their defined xmlns locations.
The problem comes when you try to use a component that is expected to be found, by the framework or parent component, in the default namespace. A good example of this is and other subcomponents of the parent mxml component you might be extending.
To fix this you should modify the mxml tag and namespaces so that the default namespace is the same as the current package. (As in the first example)
Might be I am very late to answer this question, but this might be because the package name which is associating with your class is not the exact and appropriate.

Resources