Create segments Empty Data Display

twisted1919

Administrator
Staff member
Do me a favour, go to your subscribers list and just re-save a few subscribers (leave empty the field you compare to [EMPTY])
Then go back to your segment and see if you get subscribers now ?
 

twisted1919

Administrator
Staff member
I hear you :)
Thing is that at import, if a field has no value, or if you add the custom field after the subscriber has been created then the value field won't exist therefore the empty comparison won't work. This is pretty expected behavior.
We need to find a workaround for your particular case and the only one that comes in my mind right now, is to edit the file apps/common/models/ListSegment.php and at line 389 where you now have:
PHP:
        } else {
            // add a condition to return nothing as a result
            $criteria->compare('t.subscriber_id', -1);
        }
to make it:
PHP:
       } else {
            // add a condition to return nothing as a result
            // $criteria->compare('t.subscriber_id', -1);
        }
Which should work for you, but it's just a dirty hack with possible side effects.
 

developer

Member
In the same list, i have people where this field is set.

Is it possible that emails are sent t those subscribers also? If no, then i would not worry about side effects
 

twisted1919

Administrator
Staff member
Hmm, neah, forget about the above, it will misbehave, not a good solution.
How many people with the field set?
 

rewiaca

New Member
Ah, sorry but nothing so far, no idea that wouldn't imply a mass update to the records.
Shame on you, 1.5 years have passed and there are no progress on this problems.
What a email marketing software cant provide feature to marketer, that will helps him to send different e-mail based on field completeness???

Please fix this, you have about 114669$ only on codecanyon for selling this script, pay some freelance with YII knowledge, who can write a good import script, that will fill empty tags with NULL in database or other solution!
 

rewiaca

New Member
ALSO:
add please "if else" statements in email templates.
i want to write a simple script that will put FNAME and LNAME if it exsist in content of my email

Because [TAG:filter:defaultValue()] - doesnt work with FNAME and LNAME greetings.


Its a base feature of all email marketing application!
 
Last edited:

twisted1919

Administrator
Staff member
Shame on you, 1.5 years have passed and there are no progress on this problems.
What a email marketing software cant provide feature to marketer, that will helps him to send different e-mail based on field completeness???
Initially i wanted to write you a bitter reply, but i imagine it does not worth my effort.

Please fix this, you have about 114669$ only on codecanyon for selling this script
I actually did more if that's what interests you, feeling better now ?

pay some freelance with YII knowledge, who can write a good import script, that will fill empty tags with NULL in database or other solution!
Why don't you do it if you're not happy? I mean, you have paid a dirt amount when you purchased the app, you can hire someone to customize the app as you wish, that is, because i am dumb and cannot properly write code.

add please "if else" statements in email templates.
This is already doable, enable the template engine from /backend/index.php/settings/campaigns/template-engine then consult the template engine docs at http://twig.sensiolabs.org/doc/2.x/ to see how to use it.
 

frm.mwz

Well-Known Member
mass update to the records
As this is really needed for many (see other posts about it), what options do we have?
# do it in phpMyAdmin ourselves or by other experts?
# wait until the app has such feature (@twisted1919 can you make this a top priority, after DOI records and firefighting)?
# use a third party tool to help with these record changes (even though in a way phpMyAdmin is such a third party tool already, it is not as user friendly as some mwz gui users want it to be, as it is still tooo 'technical'), but which one?
 

twisted1919

Administrator
Staff member
@frm.mwz - this is now implemented in the daily cron job since it is a relatively heavy process and it is disabled by default.
You can enable it from backend > settings > cron > subscribers settings:
Screenshot 2017-01-23 14.34.26.png
Once enabled, you can add whatever custom fields you need with whatever defaults. Then when the daily cron job will run, it will populate all the custom fields for all subscribers with their custom data.

My only doubt atm is whether to run this daily or hourly. On my machine, it took 27 seconds to update 100k subscribers with 3 missing custom fields, so while it's very fast for me, for others could pose issues, so i am thinking to have it run just once a day as opposed to once an hour.
 

frm.mwz

Well-Known Member
@frm.mwz - this is now implemented in the daily cron job since it is a relatively heavy process and it is disabled by default.
You can enable it from backend > settings > cron > subscribers settings:
View attachment 3118
Once enabled, you can add whatever custom fields you need with whatever defaults. Then when the daily cron job will run, it will populate all the custom fields for all subscribers with their custom data.

My only doubt atm is whether to run this daily or hourly. On my machine, it took 27 seconds to update 100k subscribers with 3 missing custom fields, so while it's very fast for me, for others could pose issues, so i am thinking to have it run just once a day as opposed to once an hour.
Once a day midnight or 1am (during usual low load times) is probably best, as you say.
And anyone can run it by cli anytime if need be.
Awesome that you did it, sooo important & valuable!
:):cool::D

PS: Cannot find it...it will be in the next release I guess...one more thought: might be good if there was a button 'run it now' with the hint that it can take some time or is better left for the daily.
 
Last edited:
Top