HELP !!! 5.7.3.1 Bug with Attributes

Permalink
Hi,

I update a website for my clients from 5.7.2 to 5.7.3.1 and ever since, A lot of things have crashed... I seem to have issue with Attributes since every back-office page concerning Attributes shows me this message :
"An unexpected error occurred.
Class \Concrete\Attribute\FilesetAttribute\Controller does not exist"

I also had issue apparently with multilingual settings (except for the superadmin account) but this thread apparently solved this issue:
https://www.concrete5.org/community/forums/customizing_c5/all-users-...

But still, when I want to create a new page from the composer, it tells me for one of the attributes : "Unable to load block into composer. You must edit this content from within the context of the page." And when I anyway try to create the page, I get the following error (attached image)
And the page listing the pages that this composer creates now gives me a 504 Bad Getaway error...

I am really freaking out now, my client wanted to publish their website next week, they were almost done filling this new one with their content ! Is there anything I can try to do to fix this ?

development URL :http://www.troispetitspoints.ch/_new...

HELP PLEASE !

All the best
Quentin

2 Attachments

qntndlttr
 
Korvin replied on at Permalink Reply
Korvin
Can you paste the full error output with debug enabled, or link to a page that has the error displayed?
qntndlttr replied on at Permalink Reply 1 Attachment
qntndlttr
Hi Korvin,

Here is the debug output when I try to load the page [website]/dashboard/pages/attributes

I hope this helps !

Thanks in advance
Quentin
Korvin replied on at Permalink Reply
Korvin
This says that you have 5.7.2 installed, can you run the upgrade at http://trois-petits-points.ch/_new/index.php/ccm/system/upgrade... ?
Korvin replied on at Permalink Reply
Korvin
Also, there isn't such thing as a "FilesetAttribute", I think you have some custom code that is no longer working or a package that isn't compatible with 5.7.3.1 yet, you should make sure to upgrade all of your packages at the same time as you fully upgrade your site.
qntndlttr replied on at Permalink Reply
qntndlttr
Hi

I did the upgrade, but it didn't change the Class error.

I know that the Fileset Attribute is not standard, but I havent installed any attributes add-ons, son I don't know what to update/remove... Do you have any ideas ?

Cheers !
Korvin replied on at Permalink Reply
Korvin
Can post the info from the "Environment Information" page in your dashboard?
qntndlttr replied on at Permalink Reply
qntndlttr
Sure, here it is

# concrete5 Version
Core Version - 5.7.3.1
Version Installed - 5.7.3.1
Database Version - 20150109000000
# concrete5 Packages
List files from set (1.0.7).
# concrete5 Overrides
blocks/content, blocks/vimeo, blocks/autonav, blocks/share_this_page, blocks/form, blocks/page_list, languages/fi_FI, languages/ja_JP, languages/el_GR, languages/sl_SI, languages/it_IT, languages/de_DE, languages/sv_SE, languages/fr_FR, languages/ru_RU, languages/da_DK, languages/tr_TR, languages/nl_NL, themes/vivid
# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - Off
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).
# Server Software
Apache
Korvin replied on at Permalink Reply
Korvin
Its the "List files from set" package. You will need to uninstall that package and open a support request.
qntndlttr replied on at Permalink Reply
qntndlttr
So uninstalling this should solve the problem ?
Korvin replied on at Permalink Reply
Korvin
I'm not quite sure, that package doesn't seem to include an attribute type but it certainly fits the name.
qntndlttr replied on at Permalink Reply
qntndlttr
Indeed it does

I had high hopes on this, I did uninstall the the package (which I wasn't using in any pages) but that didn't solve the problem.

I do have a text attribute called Fileset Name (handle :"fileset_name") but I do need it (I though the package was like the files attribute available in 5.6 but it isn't)

Any further suggestions ?
Mnkras replied on at Permalink Reply
Mnkras
Was this a page attribute or a file attribute? and was it applied to any pages?
qntndlttr replied on at Permalink Reply
qntndlttr
It is a page attribute meant to match a fileset to generate a "fancy box" gallery.
Mnkras replied on at Permalink Reply
Mnkras
Could you provide any code on how you are using the page attribute?
qntndlttr replied on at Permalink Reply
qntndlttr
Sure !

This is the /application/blocks/page_list/templates/gallery/view.php file, it's the only place where I a using this attribute :

<?php
defined('C5_EXECUTE') or die("Access Denied.");
$th = Loader::helper('text');
$c = Page::getCurrentPage();
$dh = Core::make('helper/date'); /* @var $dh \Concrete\Core\Localization\Service\Date */
$ih = Core::make("helper/image");
Loader::model("file_set");
Loader::model('file_list');
?>
<?php if ( $c->isEditMode() && $controller->isBlockEmpty()) { ?>
    <div class="ccm-edit-mode-disabled-item"><?php echo t('Empty Page List Block.')?></div>
<?php } else { ?>
<div class="ccm-block-page-list-wrapper">
    <div class="ccm-block-page-list-pages galerie_pagelist">
    <?php foreach ($pages as $page):
Mnkras replied on at Permalink Reply
Mnkras
I can't seem to replicate the error,

I did make some minor changes (better fault tolerance along with only allowing images to be displayed)

<?php
defined('C5_EXECUTE') or die("Access Denied.");
$th = Loader::helper('text');
$c = Page::getCurrentPage();
$dh = Core::make('helper/date'); /* @var $dh \Concrete\Core\Localization\Service\Date */
$ih = Core::make("helper/image");
use Concrete\Core\File\Type\Type as FileType;
?>
<?php if ( $c->isEditMode() && $controller->isBlockEmpty()) { ?>
    <div class="ccm-edit-mode-disabled-item"><?php echo t('Empty Page List Block.')?></div>
<?php } else { ?>
    <div class="ccm-block-page-list-wrapper">
        <div class="ccm-block-page-list-pages galerie_pagelist">
            <?php foreach ($pages as $page):
                // Prepare data for each page being listed...
qntndlttr replied on at Permalink Reply
qntndlttr
Right, so the GREAT news is, I dont get a 504 error anymore on the page that was causing problem (http://www.trois-petits-points.ch/_new/medias) - the 504 will be taken car of through some AJAX requests.

But I still have this Class error whenever I try to access any Attributes-related pages from the backend, do you have any ideas about that ?


Thanks a lot anyway for your help so far !


***** EDIT *****

I only get rid of the 504 error when commenting out this part which generates the thumbnails for the gallery.

I wish I could make it asynchronous but I don't really know how.
<?php
                            $i=0;
                            $maxWidth=400;
                            $maxHeight=400;
                            foreach($files as $file){
                                ?>
                                <div class="gallery_thumb <?php if ($i>=12) {echo('hidden');}?>">
                                    <?php
                                    echo('<a class="fancybox" rel="'.strtolower(str_replace(" ", "", $title)).'" href="'.$file->getRelativePath().'">');
                                    $ih->outputThumbnail($file, $maxWidth, $maxHeight, $alt = null, $return = false, $crop = true);
                                    ?>
                                    </a>
                                </div>
                                <?php
                                $i++;


Cheers
Q
qntndlttr replied on at Permalink Reply 1 Attachment
qntndlttr
Here is the new debug from the same page :
exchangecore replied on at Permalink Best Answer Reply
exchangecore
Where is the FilesetAttribute type coming from? The "List files from set" package doesn't seem to have this bundled with it and this isn't a standard attribute type. Is it possible you used to have a package installed and you removed it that perhaps provided this functionality (and didn't cleanly remove itself on uninstall). The reason you're getting this error is simply because there is still something assigned to your page attributes with this attribute type, but the attribute type was likely removed / uninstalled and the class can't be found anymore.

The 504 error is really a completely separate issue than the class issue. If you're using nginx just do a quick search for "504 error nginx" on google and you'll see loads of results guiding you to re-configuring to avoid this (assuming you're the server admin).
qntndlttr replied on at Permalink Reply
qntndlttr
I checked my project and the add-ons linked to it. There is indeed a FileSet attribute (https://www.concrete5.org/marketplace/addons/fileset-attribute/) but it is not compatible with 5.7+

I don't know how I could have installed it, but the sure thing is that I can't re-install it to cleanly uninstall it afterwards...

This is such a mess
qntndlttr replied on at Permalink Reply
qntndlttr
Thanks to ExchangeCore, I finally managed to solved this.

It turns out that some way or another, the Fileset attribute, which is not compatible with 5.7+ was installed in the CMS so we had to manually delete any mention of it through SQL requests in the PHPMyAdmin.

Everything seems fine now

Thanks everyone for your help !