All add-ons currently require PHP 7.4 or greater.

On July 4th 2024 PHP 8.2 will be the new minimum requirement for all add-ons. Expect any add-on released after that date to require 8.2 or greater. Some releases may not immediately take advantage of 8.x specific features in PHP, which means you might, be able to continue using new releases in PHP 7.4, however, if you experience an error the first thing you should do is update to PHP 8.2 then create a support ticket if the error persists.

Publisher does not support the Fluid field type. Please do not contact asking when support will be available.

If you purchased an add-on from expressionengine.com, be sure to visit boldminded.com/claim to add the license to your account here on boldminded.com.

Ticket: Installing Publisher redirects to a blank white page / Update P&T add-ons throws errors

Status Resolved
Add-on / Version Publisher
Severity Critical
EE Version 24

Stephen Bowling

May 08, 2013

Installing Publisher redirects to a blank white page, clicking back shows Publisher installation complete, but then gives error after clicking Update P&T add-ons.

A Database Error Occurred
Error Number: 1060

Duplicate column name 'selection_id'

ALTER TABLE `exp_assets_selections` ADD `selection_id` int(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY AFTER `file_id`

Filename: third_party/publisher/libraries/Publisher/fieldtypes/Publisher_assets.php

Line Number: 112

On the front-end of the site, I get the following error when loading a page.

Error Number: 1054

Unknown column 'ae.publisher_lang_id' in 'where clause'

SELECT DISTINCT a.file_id, a.*, ae.* FROM exp_assets_files a INNER JOIN exp_assets_selections ae ON ae.file_id = a.file_id WHERE ae.entry_id IN (28) AND ae.field_id IN (2) AND is_draft = 0 AND ae.publisher_lang_id = 1 AND ae.publisher_status = "open" ORDER BY ae.sort_order

Filename: third_party/publisher/models/publisher_query.php

Line Number: 74

I haven’t changed any settings on Publisher yet.

I’m on a local MAMP server adding Publisher to an existing site. All P&T add-ons are up to date: Assets 2.1.2, WYGWAM 2.7.1, Playa 4.4.2. Please let me know what additional information would be helpful.

#1

BoldMinded (Brian)

Stephen, what happens if you uninstall Publisher, then go to that Publisher_assets.php file and comment out the entire install() method, then try to re-install Publisher?

#2

Stephen Bowling

Commenting out that install method causes the front-end and back-end of the site to only render white pages :/ Not getting any errors.

#3

BoldMinded (Brian)

You need to turn up the debugging. In index.php and admin.php make sure $debug = 1, and make sure $config[‘debug’] = 2, then you’ll see errors.

#4

Stephen Bowling

Sorry you are right, had to up it to 2.

A Database Error Occurred
Error Number: 1054

Unknown column 'id' in 'field list'

SELECT `id` FROM (`exp_publisher_category_posts`) WHERE `entry_id` = '118' AND `cat_id` = '1'

Filename: third_party/publisher/models/publisher_model.php

Line Number: 461
#5

BoldMinded (Brian)

Go to line 945 or so in the install_move_data() method of models/publisher_category.php and update it to this:

$this->insert_or_update('publisher_category_posts', $data, $row, 'cat_id');

You might need to uninstall and then re-install Publisher.

#6

Stephen Bowling

Should I keep the install method from before commented out as well?

#7

BoldMinded (Brian)

No, remove the comments and see what happens.

#8

Stephen Bowling

Okay, first got a memory error, then hit back and got this error:

A Database Error Occurred
Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ee()->publisher_lib->default_lang_id} AFTER `entry_id`' at line 1

ALTER TABLE `exp_assets_selections` ADD `publisher_lang_id` int(4) NOT NULL DEFAULT {ee()->publisher_lib->default_lang_id} AFTER `entry_id`

Filename: third_party/publisher/libraries/Publisher/fieldtypes/Publisher_assets.php

Line Number: 115
#9

BoldMinded (Brian)

What version of Publisher do you have?

#10

BoldMinded (Brian)

That line should be this:

ee()->db->query("ALTER TABLE `". ee()->db->dbprefix ."assets_selections` ADD `publisher_lang_id` int(4) NOT NULL DEFAULT  ". ee()->publisher_lib->default_lang_id ." AFTER `entry_id`");
#11

Stephen Bowling

I have version 0.98.7. Changing that line fixed it (and updating line 910 of publisher_category.php). Thanks for your help.

Is there any other information about my setup that would help?

#12

BoldMinded (Brian)

So everything installed correctly now?

#13

Stephen Bowling

Yes, looks good. No errors.

#14

BoldMinded (Brian)

Cool. I’ve made those same changes locally so they’ll be fixed in 98.8

#15

Stephen Bowling

Ran into another error after updating settings in Publisher

A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: fieldtypes/Select.php
Line Number: 61

Can you please assist with this as well? :D

#16

Stephen Bowling

Sorry, some additional information:

Changed a few of the select values on the setting page after install – the channels for approval, member groups, etc. Clicked ‘Save Settings’ and got the above error. Visiting other pages in the module don’t throw errors, but after returning to the Settings page, the errors persist.

#17

BoldMinded (Brian)

Can you take a screen shot of your settings page? That error doesn’t tell me much.

#18

Stephen Bowling

Sure, see link below.

https://dl.dropboxusercontent.com/u/144295/publisher_settings.jpg

#19

BoldMinded (Brian)

Ah, retina images on a non-retina screen, fun 😊 Unfortunately that didn’t reveal anything new either. Can you go to publisher/libraries/Interface_Builder/fieldtypes/Select.php and on line 59 you’ll see this:

foreach($this->settings['options'] as $option_value => $option_name)
  {
   $selected = ( (is_array($data) AND in_array($option_value, $data)) OR ((string) $data == (string) $option_value) ) ? 'selected="selected"' : NULL;

   $html[]   = '<option value="'.$option_value.'" '. $selected .'>'.$option_name.'</option>';
  }

Change that whole block to this:

var_dump(data);
foreach($this->settings['options'] as $option_value => $option_name)
  {
var_dump($option_value, $option_name);
   $selected = ( (is_array($data) AND in_array($option_value, $data)) OR ((string) $data == (string) $option_value) ) ? 'selected="selected"' : NULL;

   $html[]   = '<option value="'.$option_value.'" '. $selected .'>'.$option_name.'</option>';
  }
#20

Stephen Bowling

Here’s a screen shot w/ all the variables alongside the error messages.

https://dl.dropboxusercontent.com/u/144295/publisher_var_dump.jpg

#21

BoldMinded (Brian)

Since you had previous troubles with installing, would it be too much to ask to uninstall and re-install one more time? I can’t replicate this locally, and its throwing errors on everything :/

#22

Stephen Bowling

Would not be a problem. I just uninstalled and reinstalled. I hit a memory limit issue, then increased the memory limit in php.ini from 32MB to 128MB and pulled a fresh version of the database from the production server.

Reinstalled Publisher and everything installed smoothly, still got the same errors on the settings page though :/ We have ~1,500 rows in our channel data table if that makes a difference for the initial install.

I’m working on getting a staging server up so Publisher isn’t only on my local machine and see how that goes. I’ll keep you updated.

#23

Stephen Bowling

I have a staging server up. I installed Publisher on it and it installed fine (no memory error), but the same errors are occurring on the settings page. I added FTP/CP info to the ticket if you want to take a look at the environment. Please let me know if there is anything else I should try on my end.

#24

BoldMinded (Brian)

Stephen, are the correct file paths available to me on FTP? I can edit the mcp file, but its not reflecting my changes in the CP.

#25

Stephen Bowling

It’s hosted on Pagoda Box, so changes have to be deployed through the CP still (weak). Do you have an account there? If so I can add you as a collaborator which will let you deploy.

I just deployed the latest changes though, so should be up-to-date now.

#26

BoldMinded (Brian)

I just created an acct there, username is tilzinger.

#27

Stephen Bowling

Thanks, just added to the project. You have to click Deploy Latest in the top right to move code changes into production on the staging server.

#28

BoldMinded (Brian)

Strange. Ok. Thanks!

#29

BoldMinded (Brian)

I don’t know if this is going to work. I have to wait several minutes after every file change to see the debugging output b/c of the deployments.

#30

Stephen Bowling

Yeah, Pagoda Box can be a pain when trying to make quick changes. I set it up on a server over at DreamHost, but that one isn’t showing any issues, which would be a good thing, except we can’t run the production site there :/

Very strange.

#31

BoldMinded (Brian)

That leads me to believe that it’s a server issue. What version of php is the pagoda box?

#32

Stephen Bowling

5.3.8 on PagodaBox, 5.4.4 locally, 5.3.13 on DreamHost (where it seems to work okay). It looks like the DreamHost server has many more extensions enabled as well.

Pagoda:

'./configure' '--prefix=/usr' '--bindir=/usr/bin/php-5.3.8' '--sbindir=/usr/sbin/php-5.3.8' '--sysconfdir=/etc' '--localstatedir=/var' '--libdir=/usr/lib/php-5.3.8' '--with-pear=/usr/lib/php-5.3.8/php' '--with-config-file-path=/etc/php' '--enable-fpm' '--includedir=/usr/include/php-5.3.8' '--with-openssl' '--with-zlib' '--with-freetype-dir' '--enable-gd-native-ttf' '--with-jpeg-dir' '--with-png-dir' '--with-xpm-dir'

DreamHost:

'./configure' '--prefix=/usr/local/php53' '--datadir=/usr/local/php53/share' '--localstatedir=/usr/local/php53/var' '--without-pear' '--with-config-file-path=/etc/php53' '--with-config-file-scan-dir=/etc/php53/conf.d' '--enable-force-cgi-redirect' '--enable-trans-sid' '--with-zend-vm=GOTO' '--enable-cgi' '--enable-libxml=shared' '--enable-bcmath=shared' '--enable-calendar=shared' '--enable-ctype=shared' '--enable-dom=shared' '--enable-exif=shared' '--enable-fileinfo=shared' '--enable-filter=shared' '--enable-ftp=shared' '--enable-hash=shared' '--enable-intl=shared' '--enable-json=shared' '--enable-mbstring' '--enable-mbregex' '--enable-mbregex-backtrack' '--enable-pcntl=shared' '--enable-pdo' '--enable-phar=shared' '--enable-posix=shared' '--enable-session=shared' '--enable-shmop=shared' '--enable-simplexml=shared' '--enable-soap=shared' '--enable-sockets=shared' '--enable-sysvmsg=shared' '--enable-sysvsem=shared' '--enable-sysvshm=shared' '--enable-tokenizer=shared' '--enable-wddx=shared' '--enable-xml=shared' '--enable-xmlreader=shared' '--enable-xmlwriter=shared' '--enable-zip=shared' '--with-openssl=shared' '--with-kerberos' '--with-pcre-regex' '--with-sqlite3' '--with-zlib=shared' '--with-bz2=shared' '--with-curl=shared' '--with-gd=shared' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--with-zlib-dir=/usr' '--with-xpm-dir=/usr' '--with-freetype-dir=/usr' '--with-gettext=shared' '--with-gmp=shared' '--with-mhash=shared' '--with-iconv=shared' '--with-imap=shared' '--with-imap-ssl' '--with-ldap=shared' '--with-mcrypt=shared' '--with-msql=shared' '--with-mysql=shared' '--with-mysql-sock=/No-MySQL-hostname-was-specified' '--with-mysqli=shared' '--with-pdo-mysql=shared' '--with-pdo-pgsql=shared' '--with-pdo-sqlite' '--with-pgsql=shared' '--with-pspell=shared' '--with-readline=shared' '--with-sqlite=shared' '--with-tidy=shared' '--with-xmlrpc=shared' '--with-xsl=shared'
#33

BoldMinded (Brian)

Stephen, one thing that sticks out is the Dreamhost server has “–enable-json=shared”, but the other server does not. Publisher does rely on json_encode and json_decode methods, so I wonder if that might have something to do with it?

#34

BoldMinded (Brian)

Stephen, I have someone else getting similar errors on the settings screen. I’ve asked them for FTP access, then hopefully I can sort out the issue.

#35

Stephen Bowling

I tried enabling the JSON extension and uninstalled/reinstalled with no luck. Please keep me posted with whatever you find on the other installation. In the meantime we are setting up a simplified workflow using statuses and the native emails for new posts. Thanks! 😊

#36

BoldMinded (Brian)

Stephen, would you be able to zip up the whole site and send it to me so I can debug locally? If so send it to support@boldminded.com

#37

BoldMinded (Brian)

Stephen, I wasn’t getting these errors in my local install with the code you sent. I’m using MAMP with PHP 5.3.6

#38

Stephen Bowling

Thanks for taking the time to look further into my issues. I’ll try some different versions of PHP in MAMP and see if I have better luck.

#39

Brian Litzinger

Closing this for now, if it comes up again just open a new ticket.

Login to reply