If I add a new ad slot to the bottom of the list, everything works OK. But if I put a new ad slot in the middle of the list, the new ad and all ads below it take their block settings (such as page visibility and region) from the ad that had previously been in the slot. For example, if I have 5 ads and add a new one in the second-to-last spot (which is now the 5th slot), the new ad slot will absorb the block settings of what had previously been in the 5th slot, and that existing ad (that had been in the 5th slot and is now in the 6th) will lose all of its settings.

The solution is that your module should allocate block settings based on the name of the ad slot, rather than the ad slots position in the list.

I'm creating almost a hundred slots to do targeted advertisements on different pages, and I would like to be able to manually alphabetize the list. Now, I can't, and I can't remove any obsolete ads from higher in the list, without screwing up the settings of everything below.

I'd be happy to send you $100 via PayPal if you think you can fix this bug. Thanks!

Comments

toemaz’s picture

Version: 6.x-1.0 » 6.x-1.x-dev
StatusFileSize
new3.34 KB

Find attached a patch to solve this issue. I haven't tested this patch at all, just wrote it out quickly. It has an upgrade path as well, since the block delta's will become the ad slot name instead of the index number.

toemaz’s picture

Status: Active » Needs review

Patch needs review.

jaydub’s picture

StatusFileSize
new4.51 KB

Attached is my version of this patch. A few differences:

In google_admanager.install:
- Original patch update function doesn't appear to actually update {blocks} with new deltas. Patched to pull existing ad_slots and convert ad_slot name to a lowercased 32 char string to use as the new delta (the delta column in the {blocks} table is max 32 chars so for consistency the calculated delta from the ad slot name is truncated at 32 chars).

In goolge_admanager.module
- Original patch adds a form submit handler for the admin settings page. However the admin settings page uses system_settings_form() which means that a custom form handler is not called. As a result the google_admanager_admin_settings_form_submit() submit handler in the patch is not called. For simplicity sake I kept the system_settings_form() and added a hook_form_alter() to add an additional submit handler so that google_admanager_admin_settings_form_submit() is now called. I removed the variable_set() calls from the custom submit handler as they are now redundant given system_settings_form().
- As in the install function I've set the hook_block implementation to lowercase and truncate to 32 chars the block delta.

toemaz’s picture

Applied to the 6-1 branch. Needs testing.

toemaz’s picture

Status: Needs review » Fixed

No problem reports so far. Changing status as fixed.

dankohn’s picture

Status: Fixed » Active
StatusFileSize
new234.26 KB
new248.97 KB

The upgrade on this broke, as about a dozen of my ad blocks lost their description. It is not yet ready for production. I'm using views_block to track my ad blocks. Attached PDFs of my ad blocks before and after the upgrade.

If you're interested and available, I'm happy to give you an admin account on my development server, where you can test the upgrade against my 102 ad blocks. I'm also happy to let you take a look at my database, to try to figure out why some of the upgrades failed.

Thanks again for the great module.

Here are the results from drush update:

No code updates available.                                           [ok]
You have pending database updates. Please run `drush updatedb` or    [warning]
visit update.php in your browser.
The following updates are pending:

 google_admanager module                                                        
 6100 - Update legacy blocks to use BLOCK_NO_CACHE cache mode, for              
 compatibility  with Drupal 6's block cache feature.                            
 6101 - Rerun the previous update to force the BLOCK_NO_CACHE settings for      
 blocks  added subsequent to update 6100 but before changes in                  
 http:drupal.orgnode351214#comment-2254886 applied                              
 6102 - Implementation of hook_update_N().   Convert block deltas from integers 
 to strings based on the   Google Ad Manager slot name. See                     
 http:drupal.orgnode624284                                                      

Do you wish to run all pending updates? (y/n): y
UPDATE {blocks} SET cache = -1 WHERE module =                        [success]
'google_admanager'
UPDATE {blocks} SET cache = -1 WHERE module =                        [success]
'google_admanager'
UPDATE {blocks} SET delta = 'amino-acids_leaderboard' WHERE[success]
bid = 717
UPDATE {blocks} SET delta = 'amino-acids_square' WHERE bid [success]
= 718
UPDATE {blocks} SET delta = 'autism_center-leaderboard'    [success]
WHERE bid = 719
UPDATE {blocks} SET delta = 'autism_center-square' WHERE   [success]
bid = 720
UPDATE {blocks} SET delta = 'dentist-square' WHERE bid =   [success]
730
UPDATE {blocks} SET delta =                                          [success]
'aggressive-behavior_leaderboard' WHERE bid = 715
UPDATE {blocks} SET delta = 'aggressive-behavior_square'   [success]
WHERE bid = 716
UPDATE {blocks} SET delta = 'feeding_problems-square' WHERE[success]
bid = 744
UPDATE {blocks} SET delta = 'dentist-leaderboard' WHERE bid[success]
= 729
UPDATE {blocks} SET delta = 'feeding_problems-leaderboard' [success]
WHERE bid = 743
UPDATE {blocks} SET delta = 'life_skills-leaderboard' WHERE[success]
bid = 759
UPDATE {blocks} SET delta = 'legal_support-square' WHERE   [success]
bid = 758
UPDATE {blocks} SET delta = 'legal_support-leaderboard'    [success]
WHERE bid = 757
UPDATE {blocks} SET delta = 'hippotherapy-square' WHERE bid[success]
= 756
UPDATE {blocks} SET delta = 'hippotherapy-leaderboard'     [success]
WHERE bid = 755
UPDATE {blocks} SET delta =                                          [success]
'complementary_and_alternative_me' WHERE bid = 728
UPDATE {blocks} SET delta = 'employment-square' WHERE bid =[success]
738
UPDATE {blocks} SET delta = 'all-pages_wide-skyscraper'    [success]
WHERE bid = 491
UPDATE {blocks} SET delta =                                          [error]
'complementary_and_alternative_me' WHERE bid = 727
UPDATE {blocks} SET delta = 'guanfacine-square' WHERE bid =[success]
752
UPDATE {blocks} SET delta =                                          [success]
'essential_fatty_acids_autism-squ' WHERE bid = 740
UPDATE {blocks} SET delta = 'employment-leaderboard' WHERE [success]
bid = 737
UPDATE {blocks} SET delta = 'guanfacine-leaderboard' WHERE [success]
bid = 751
UPDATE {blocks} SET delta =                                          [success]
'cognitive_behavioral_therapy-squ' WHERE bid = 726
UPDATE {blocks} SET delta = 'grants-square' WHERE bid = 750[success]
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_leader' WHERE bid = 359
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_square' WHERE bid = 360
UPDATE {blocks} SET delta =                                          [success]
'discrete_trial_training-square' WHERE bid = 734
UPDATE {blocks} SET delta =                                          [success]
'discrete_trial_training-leaderbo' WHERE bid = 733
UPDATE {blocks} SET delta =                                          [success]
'evidence-based_medicine_ebm-squa' WHERE bid = 742
UPDATE {blocks} SET delta = 'drug-pages_square' WHERE bid =[success]
689
UPDATE {blocks} SET delta =                                          [success]
'cognitive_behavioral_therapy-lea' WHERE bid = 725
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_leader' WHERE bid = 430
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_square' WHERE bid = 431
UPDATE {blocks} SET delta = 'grants-leaderboard' WHERE bid [success]
= 749
UPDATE {blocks} SET delta = 'floortime-leaderboard' WHERE  [success]
bid = 745
UPDATE {blocks} SET delta = 'drug-pages_leaderboard' WHERE [success]
bid = 688
UPDATE {blocks} SET delta = 'gluten-free_diet-square' WHERE[success]
bid = 748
UPDATE {blocks} SET delta = 'dolphin_therapy-square' WHERE [success]
bid = 736
UPDATE {blocks} SET delta =                                          [success]
'high_functioning_autism-square' WHERE bid = 754
UPDATE {blocks} SET delta = 'clonidine-square' WHERE bid = [success]
724
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_leader' WHERE bid = 485
UPDATE {blocks} SET delta = 'adhd_square' WHERE bid = 709  [success]
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_square' WHERE bid = 490
UPDATE {blocks} SET delta =                                          [success]
'all-pages_large-rectangle_bottom' WHERE bid = 492
UPDATE {blocks} SET delta =                                          [success]
'evidence-based_medicine_ebm-lead' WHERE bid = 741
UPDATE {blocks} SET delta = 'adhd_leaderboard' WHERE bid = [success]
708
UPDATE {blocks} SET delta = 'clonidine-leaderboard' WHERE  [success]
bid = 723
UPDATE {blocks} SET delta =                                          [success]
'essential_fatty_acids_autism-lea' WHERE bid = 739
UPDATE {blocks} SET delta = 'dolphin_therapy-leaderboard'  [success]
WHERE bid = 735
UPDATE {blocks} SET delta = 'diet-square' WHERE bid = 732  [success]
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_leader' WHERE bid = 584
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_square' WHERE bid = 585
UPDATE {blocks} SET delta = 'all-pages_wide-skyscraper'    [success]
WHERE bid = 586
UPDATE {blocks} SET delta =                                          [success]
'all-pages_large-rectangle_bottom' WHERE bid = 587
UPDATE {blocks} SET delta = 'gluten-free_diet-leaderboard' [success]
WHERE bid = 747
UPDATE {blocks} SET delta = 'diet-leaderboard' WHERE bid = [success]
731
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_leader' WHERE bid = 613
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_square' WHERE bid = 614
UPDATE {blocks} SET delta = 'all-pages_wide-skyscraper'    [success]
WHERE bid = 615
UPDATE {blocks} SET delta =                                          [success]
'all-pages_large-rectangle_bottom' WHERE bid = 616
UPDATE {blocks} SET delta = 'floortime-square' WHERE bid = [success]
746
UPDATE {blocks} SET delta = 'casein-free_diet-square' WHERE[success]
bid = 722
UPDATE {blocks} SET delta = 'homepage_leaderboard' WHERE   [success]
bid = 633
UPDATE {blocks} SET delta = 'homepage_square' WHERE bid =  [success]
634
UPDATE {blocks} SET delta = 'other-pages_leaderboard' WHERE[success]
bid = 635
UPDATE {blocks} SET delta = 'other-pages_square' WHERE bid [success]
= 636
UPDATE {blocks} SET delta =                                          [success]
'high_functioning_autism-leaderbo' WHERE bid = 753
UPDATE {blocks} SET delta = 'other-pages_square' WHERE bid [success]
= 667
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_leader' WHERE bid = 668
UPDATE {blocks} SET delta = 'all-pages_wide-skyscraper'    [success]
WHERE bid = 669
UPDATE {blocks} SET delta = 'homepage_leaderboard' WHERE   [success]
bid = 670
UPDATE {blocks} SET delta = 'casein-free_diet-leaderboard' [success]
WHERE bid = 721
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_square' WHERE bid = 675
UPDATE {blocks} SET delta =                                          [success]
'all-pages_large-rectangle_bottom' WHERE bid = 676
UPDATE {blocks} SET delta = 'homepage_square' WHERE bid =  [success]
677
UPDATE {blocks} SET delta = 'other-pages_leaderboard' WHERE[success]
bid = 680
UPDATE {blocks} SET delta = 'all-pages_skyscraper' WHERE   [success]
bid = 704
UPDATE {blocks} SET delta = 'life_skills-square' WHERE bid [success]
= 760
UPDATE {blocks} SET delta = 'listening_therapy-leaderboard'[success]
WHERE bid = 761
UPDATE {blocks} SET delta = 'listening_therapy-square'     [success]
WHERE bid = 762
UPDATE {blocks} SET delta = 'magnesium-leaderboard' WHERE  [success]
bid = 763
UPDATE {blocks} SET delta = 'magnesium-square' WHERE bid = [success]
764
UPDATE {blocks} SET delta = 'marriage-leaderboard' WHERE   [success]
bid = 765
UPDATE {blocks} SET delta = 'marriage-square' WHERE bid =  [success]
766
UPDATE {blocks} SET delta = 'music_therapy-leaderboard'    [success]
WHERE bid = 767
UPDATE {blocks} SET delta = 'music_therapy-square' WHERE   [success]
bid = 768
UPDATE {blocks} SET delta = 'neurofeedback-leaderboard'    [success]
WHERE bid = 769
UPDATE {blocks} SET delta = 'neurofeedback-square' WHERE   [success]
bid = 770
UPDATE {blocks} SET delta = 'nurses-leaderboard' WHERE bid [success]
= 771
UPDATE {blocks} SET delta = 'nurses-square' WHERE bid = 772[success]
UPDATE {blocks} SET delta = 'nutritionist-leaderboard'     [success]
WHERE bid = 773
UPDATE {blocks} SET delta = 'nutritionist-square' WHERE bid[success]
= 774
UPDATE {blocks} SET delta =                                          [success]
'occupational_therapy-leaderboard' WHERE bid = 775
UPDATE {blocks} SET delta = 'occupational_therapy-square'  [success]
WHERE bid = 776
UPDATE {blocks} SET delta = 'parent_training-leaderboard'  [success]
WHERE bid = 777
UPDATE {blocks} SET delta = 'parent_training-square' WHERE [success]
bid = 778
UPDATE {blocks} SET delta =                                          [success]
'picture_exchange_communication_s' WHERE bid = 779
UPDATE {blocks} SET delta =                                          [error]
'picture_exchange_communication_s' WHERE bid = 780
UPDATE {blocks} SET delta = 'preschool-leaderboard' WHERE  [success]
bid = 781
UPDATE {blocks} SET delta = 'preschool-square' WHERE bid = [success]
782
UPDATE {blocks} SET delta = 'private_school-leaderboard'   [success]
WHERE bid = 783
UPDATE {blocks} SET delta = 'private_school-square' WHERE  [success]
bid = 784
UPDATE {blocks} SET delta = 'recess-leaderboard' WHERE bid [success]
= 785
UPDATE {blocks} SET delta = 'recess-square' WHERE bid = 786[success]
UPDATE {blocks} SET delta =                                          [success]
'relationship_development_interve' WHERE bid = 787
UPDATE {blocks} SET delta =                                          [error]
'relationship_development_interve' WHERE bid = 788
UPDATE {blocks} SET delta =                                          [success]
'residential_centers-leaderboard' WHERE bid = 789
UPDATE {blocks} SET delta = 'residential_centers-square'   [success]
WHERE bid = 790
UPDATE {blocks} SET delta =                                          [success]
'self-injurious_behavior-leaderbo' WHERE bid = 791
UPDATE {blocks} SET delta =                                          [success]
'self-injurious_behavior-square' WHERE bid = 792
UPDATE {blocks} SET delta =                                          [success]
'sensory_activities-leaderboard' WHERE bid = 793
UPDATE {blocks} SET delta = 'sensory_activities-square'    [success]
WHERE bid = 794
UPDATE {blocks} SET delta =                                          [success]
'sensory_integration-leaderboard' WHERE bid = 795
UPDATE {blocks} SET delta = 'sensory_integration-square'   [success]
WHERE bid = 796
UPDATE {blocks} SET delta = 'sensory_rooms-leaderboard'    [success]
WHERE bid = 797
UPDATE {blocks} SET delta = 'sensory_rooms-square' WHERE   [success]
bid = 798
UPDATE {blocks} SET delta = 'social_story-leaderboard'     [success]
WHERE bid = 799
UPDATE {blocks} SET delta = 'social_story-square' WHERE bid[success]
= 800
UPDATE {blocks} SET delta = 'speech_therapy-leaderboard'   [success]
WHERE bid = 801
UPDATE {blocks} SET delta = 'speech_therapy-square' WHERE  [success]
bid = 802
UPDATE {blocks} SET delta =                                          [success]
'teaching_strategies-leaderboard' WHERE bid = 803
UPDATE {blocks} SET delta = 'teaching_strategies-square'   [success]
WHERE bid = 804
UPDATE {blocks} SET delta = 'visual_schedules-leaderboard' [success]
WHERE bid = 805
UPDATE {blocks} SET delta = 'visual_schedules-square' WHERE[success]
bid = 806
UPDATE {blocks} SET delta = 'vitamin_a-leaderboard' WHERE  [success]
bid = 807
UPDATE {blocks} SET delta = 'vitamin_a-square' WHERE bid = [success]
808
UPDATE {blocks} SET delta = 'vitamin_b6-leaderboard' WHERE [success]
bid = 809
UPDATE {blocks} SET delta = 'vitamin_b6-square' WHERE bid =[success]
810
UPDATE {blocks} SET delta = 'vitamin_c-leaderboard' WHERE  [success]
bid = 811
UPDATE {blocks} SET delta = 'vitamin_c-square' WHERE bid = [success]
812
UPDATE {blocks} SET delta = 'vitamin_therapy-leaderboard'  [success]
WHERE bid = 813
UPDATE {blocks} SET delta = 'vitamin_therapy-square' WHERE [success]
bid = 814
UPDATE {blocks} SET delta = 'weighted_vest-leaderboard'    [success]
WHERE bid = 815
UPDATE {blocks} SET delta = 'weighted_vest-square' WHERE   [success]
bid = 816
UPDATE {blocks} SET delta = 'autism_therapy-leaderboard'   [success]
WHERE bid = 817
UPDATE {blocks} SET delta = 'autism_therapy-square' WHERE  [success]
bid = 818
UPDATE {blocks} SET delta = 'drug-pages_leaderboard' WHERE [success]
bid = 830
UPDATE {blocks} SET delta = 'drug-pages_square' WHERE bid =[success]
831
UPDATE {blocks} SET delta = 'all-pages_skyscraper' WHERE   [success]
bid = 832
UPDATE {blocks} SET delta = 'adhd_leaderboard' WHERE bid = [success]
833
UPDATE {blocks} SET delta = 'adhd_square' WHERE bid = 834  [success]
UPDATE {blocks} SET delta =                                          [success]
'aggressive-behavior_leaderboard' WHERE bid = 835
UPDATE {blocks} SET delta = 'aggressive-behavior_square'   [success]
WHERE bid = 836
UPDATE {blocks} SET delta = 'amino-acids_leaderboard' WHERE[success]
bid = 837
UPDATE {blocks} SET delta = 'amino-acids_square' WHERE bid [success]
= 838
UPDATE {blocks} SET delta = 'autism_center-leaderboard'    [success]
WHERE bid = 839
UPDATE {blocks} SET delta = 'autism_center-square' WHERE   [success]
bid = 840
UPDATE {blocks} SET delta = 'casein-free_diet-leaderboard' [success]
WHERE bid = 841
UPDATE {blocks} SET delta = 'casein-free_diet-square' WHERE[success]
bid = 842
UPDATE {blocks} SET delta = 'clonidine-leaderboard' WHERE  [success]
bid = 843
UPDATE {blocks} SET delta = 'clonidine-square' WHERE bid = [success]
844
UPDATE {blocks} SET delta =                                          [success]
'cognitive_behavioral_therapy-lea' WHERE bid = 845
UPDATE {blocks} SET delta =                                          [success]
'cognitive_behavioral_therapy-squ' WHERE bid = 846
UPDATE {blocks} SET delta =                                          [success]
'complementary_and_alternative_me' WHERE bid = 847
UPDATE {blocks} SET delta =                                          [error]
'complementary_and_alternative_me' WHERE bid = 848
UPDATE {blocks} SET delta = 'dentist-leaderboard' WHERE bid[success]
= 849
UPDATE {blocks} SET delta = 'dentist-square' WHERE bid =   [success]
850
UPDATE {blocks} SET delta = 'diet-leaderboard' WHERE bid = [success]
851
UPDATE {blocks} SET delta = 'diet-square' WHERE bid = 852  [success]
UPDATE {blocks} SET delta =                                          [success]
'discrete_trial_training-leaderbo' WHERE bid = 853
UPDATE {blocks} SET delta =                                          [success]
'discrete_trial_training-square' WHERE bid = 854
UPDATE {blocks} SET delta = 'dolphin_therapy-leaderboard'  [success]
WHERE bid = 855
UPDATE {blocks} SET delta = 'dolphin_therapy-square' WHERE [success]
bid = 856
UPDATE {blocks} SET delta = 'employment-leaderboard' WHERE [success]
bid = 857
UPDATE {blocks} SET delta = 'employment-square' WHERE bid =[success]
858
UPDATE {blocks} SET delta =                                          [success]
'essential_fatty_acids_autism-lea' WHERE bid = 859
UPDATE {blocks} SET delta =                                          [success]
'essential_fatty_acids_autism-squ' WHERE bid = 860
UPDATE {blocks} SET delta =                                          [success]
'evidence-based_medicine_ebm-lead' WHERE bid = 861
UPDATE {blocks} SET delta =                                          [success]
'evidence-based_medicine_ebm-squa' WHERE bid = 862
UPDATE {blocks} SET delta = 'feeding_problems-leaderboard' [success]
WHERE bid = 863
UPDATE {blocks} SET delta = 'feeding_problems-square' WHERE[success]
bid = 864
UPDATE {blocks} SET delta = 'floortime-leaderboard' WHERE  [success]
bid = 865
UPDATE {blocks} SET delta = 'floortime-square' WHERE bid = [success]
866
UPDATE {blocks} SET delta = 'gluten-free_diet-leaderboard' [success]
WHERE bid = 867
UPDATE {blocks} SET delta = 'gluten-free_diet-square' WHERE[success]
bid = 868
UPDATE {blocks} SET delta = 'grants-leaderboard' WHERE bid [success]
= 869
UPDATE {blocks} SET delta = 'grants-square' WHERE bid = 870[success]
UPDATE {blocks} SET delta = 'guanfacine-leaderboard' WHERE [success]
bid = 871
UPDATE {blocks} SET delta = 'guanfacine-square' WHERE bid =[success]
872
UPDATE {blocks} SET delta =                                          [success]
'high_functioning_autism-leaderbo' WHERE bid = 873
UPDATE {blocks} SET delta =                                          [success]
'high_functioning_autism-square' WHERE bid = 874
UPDATE {blocks} SET delta = 'hippotherapy-leaderboard'     [success]
WHERE bid = 875
UPDATE {blocks} SET delta = 'hippotherapy-square' WHERE bid[success]
= 876
UPDATE {blocks} SET delta = 'legal_support-leaderboard'    [success]
WHERE bid = 877
UPDATE {blocks} SET delta = 'legal_support-square' WHERE   [success]
bid = 878
UPDATE {blocks} SET delta = 'life_skills-leaderboard' WHERE[success]
bid = 879
UPDATE {blocks} SET delta = 'life_skills-square' WHERE bid [success]
= 880
UPDATE {blocks} SET delta = 'listening_therapy-leaderboard'[success]
WHERE bid = 881
UPDATE {blocks} SET delta = 'listening_therapy-square'     [success]
WHERE bid = 882
UPDATE {blocks} SET delta = 'magnesium-leaderboard' WHERE  [success]
bid = 883
UPDATE {blocks} SET delta = 'magnesium-square' WHERE bid = [success]
884
UPDATE {blocks} SET delta = 'marriage-leaderboard' WHERE   [success]
bid = 885
UPDATE {blocks} SET delta = 'marriage-square' WHERE bid =  [success]
886
UPDATE {blocks} SET delta = 'music_therapy-leaderboard'    [success]
WHERE bid = 887
UPDATE {blocks} SET delta = 'music_therapy-square' WHERE   [success]
bid = 888
UPDATE {blocks} SET delta = 'neurofeedback-leaderboard'    [success]
WHERE bid = 889
UPDATE {blocks} SET delta = 'neurofeedback-square' WHERE   [success]
bid = 890
UPDATE {blocks} SET delta = 'nurses-leaderboard' WHERE bid [success]
= 891
UPDATE {blocks} SET delta = 'nurses-square' WHERE bid = 892[success]
UPDATE {blocks} SET delta = 'nutritionist-leaderboard'     [success]
WHERE bid = 893
UPDATE {blocks} SET delta = 'nutritionist-square' WHERE bid[success]
= 894
UPDATE {blocks} SET delta =                                          [success]
'occupational_therapy-leaderboard' WHERE bid = 895
UPDATE {blocks} SET delta = 'occupational_therapy-square'  [success]
WHERE bid = 896
UPDATE {blocks} SET delta = 'parent_training-leaderboard'  [success]
WHERE bid = 897
UPDATE {blocks} SET delta = 'parent_training-square' WHERE [success]
bid = 898
UPDATE {blocks} SET delta =                                          [success]
'picture_exchange_communication_s' WHERE bid = 899
UPDATE {blocks} SET delta =                                          [error]
'picture_exchange_communication_s' WHERE bid = 900
UPDATE {blocks} SET delta = 'preschool-leaderboard' WHERE  [success]
bid = 901
UPDATE {blocks} SET delta = 'preschool-square' WHERE bid = [success]
902
UPDATE {blocks} SET delta = 'private_school-leaderboard'   [success]
WHERE bid = 903
UPDATE {blocks} SET delta = 'private_school-square' WHERE  [success]
bid = 904
UPDATE {blocks} SET delta = 'recess-leaderboard' WHERE bid [success]
= 905
UPDATE {blocks} SET delta = 'recess-square' WHERE bid = 906[success]
UPDATE {blocks} SET delta =                                          [success]
'relationship_development_interve' WHERE bid = 907
UPDATE {blocks} SET delta =                                          [error]
'relationship_development_interve' WHERE bid = 908
UPDATE {blocks} SET delta =                                          [success]
'residential_centers-leaderboard' WHERE bid = 909
UPDATE {blocks} SET delta = 'residential_centers-square'   [success]
WHERE bid = 910
UPDATE {blocks} SET delta =                                          [success]
'self-injurious_behavior-leaderbo' WHERE bid = 911
UPDATE {blocks} SET delta =                                          [success]
'self-injurious_behavior-square' WHERE bid = 912
UPDATE {blocks} SET delta =                                          [success]
'sensory_activities-leaderboard' WHERE bid = 913
UPDATE {blocks} SET delta = 'sensory_activities-square'    [success]
WHERE bid = 914
UPDATE {blocks} SET delta =                                          [success]
'sensory_integration-leaderboard' WHERE bid = 915
UPDATE {blocks} SET delta = 'sensory_integration-square'   [success]
WHERE bid = 916
UPDATE {blocks} SET delta = 'sensory_rooms-leaderboard'    [success]
WHERE bid = 917
UPDATE {blocks} SET delta = 'sensory_rooms-square' WHERE   [success]
bid = 918
UPDATE {blocks} SET delta = 'social_story-leaderboard'     [success]
WHERE bid = 919
UPDATE {blocks} SET delta = 'social_story-square' WHERE bid[success]
= 920
UPDATE {blocks} SET delta = 'speech_therapy-leaderboard'   [success]
WHERE bid = 921
UPDATE {blocks} SET delta = 'speech_therapy-square' WHERE  [success]
bid = 922
UPDATE {blocks} SET delta =                                          [success]
'teaching_strategies-leaderboard' WHERE bid = 923
UPDATE {blocks} SET delta = 'teaching_strategies-square'   [success]
WHERE bid = 924
UPDATE {blocks} SET delta = 'visual_schedules-leaderboard' [success]
WHERE bid = 925
UPDATE {blocks} SET delta = 'visual_schedules-square' WHERE[success]
bid = 926
UPDATE {blocks} SET delta = 'vitamin_a-leaderboard' WHERE  [success]
bid = 927
UPDATE {blocks} SET delta = 'vitamin_a-square' WHERE bid = [success]
928
UPDATE {blocks} SET delta = 'vitamin_b6-leaderboard' WHERE [success]
bid = 929
UPDATE {blocks} SET delta = 'vitamin_b6-square' WHERE bid =[success]
930
UPDATE {blocks} SET delta = 'vitamin_c-leaderboard' WHERE  [success]
bid = 931
UPDATE {blocks} SET delta = 'vitamin_c-square' WHERE bid = [success]
932
UPDATE {blocks} SET delta = 'vitamin_therapy-leaderboard'  [success]
WHERE bid = 933
UPDATE {blocks} SET delta = 'vitamin_therapy-square' WHERE [success]
bid = 934
UPDATE {blocks} SET delta = 'weighted_vest-leaderboard'    [success]
WHERE bid = 935
UPDATE {blocks} SET delta = 'weighted_vest-square' WHERE   [success]
bid = 936
UPDATE {blocks} SET delta = 'autism_therapy-leaderboard'   [success]
WHERE bid = 937
UPDATE {blocks} SET delta = 'autism_therapy-square' WHERE  [success]
bid = 938
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_leader' WHERE bid = 986
UPDATE {blocks} SET delta =                                          [success]
'applied-behavior-analysis_square' WHERE bid = 987
UPDATE {blocks} SET delta = 'all-pages_skyscraper' WHERE   [success]
bid = 988
UPDATE {blocks} SET delta = 'speech_therapy-square' WHERE  [success]
bid = 989
UPDATE {blocks} SET delta =                                          [success]
'teaching_strategies-leaderboard' WHERE bid = 990
UPDATE {blocks} SET delta = 'teaching_strategies-square'   [success]
WHERE bid = 991
UPDATE {blocks} SET delta = 'visual_schedules-leaderboard' [success]
WHERE bid = 992
UPDATE {blocks} SET delta = 'visual_schedules-square' WHERE[success]
bid = 993
UPDATE {blocks} SET delta = 'vitamin_a-leaderboard' WHERE  [success]
bid = 994
UPDATE {blocks} SET delta = 'vitamin_a-square' WHERE bid = [success]
995
UPDATE {blocks} SET delta = 'vitamin_b6-leaderboard' WHERE [success]
bid = 996
UPDATE {blocks} SET delta = 'vitamin_b6-square' WHERE bid =[success]
997
UPDATE {blocks} SET delta = 'vitamin_c-leaderboard' WHERE  [success]
bid = 998
UPDATE {blocks} SET delta = 'adhd_leaderboard' WHERE bid = [success]
999
UPDATE {blocks} SET delta = 'vitamin_c-square' WHERE bid = [success]
1000
UPDATE {blocks} SET delta = 'vitamin_therapy-leaderboard'  [success]
WHERE bid = 1001
UPDATE {blocks} SET delta = 'vitamin_therapy-square' WHERE [success]
bid = 1002
UPDATE {blocks} SET delta = 'weighted_vest-leaderboard'    [success]
WHERE bid = 1003
UPDATE {blocks} SET delta = 'weighted_vest-square' WHERE   [success]
bid = 1004
UPDATE {blocks} SET delta = 'autism_therapy-leaderboard'   [success]
WHERE bid = 1005
UPDATE {blocks} SET delta = 'autism_therapy-square' WHERE  [success]
bid = 1006
UPDATE {blocks} SET delta = 'adhd_square' WHERE bid = 1007 [success]
UPDATE {blocks} SET delta =                                          [success]
'aggressive-behavior_leaderboard' WHERE bid = 1008
UPDATE {blocks} SET delta = 'aggressive-behavior_square'   [success]
WHERE bid = 1009
UPDATE {blocks} SET delta = 'amino-acids_leaderboard' WHERE[success]
bid = 1010
UPDATE {blocks} SET delta = 'amino-acids_square' WHERE bid [success]
= 1011
UPDATE {blocks} SET delta = 'autism_center-leaderboard'    [success]
WHERE bid = 1012
UPDATE {blocks} SET delta = 'autism_center-square' WHERE   [success]
bid = 1013
UPDATE {blocks} SET delta = 'casein-free_diet-leaderboard' [success]
WHERE bid = 1014
UPDATE {blocks} SET delta = 'all-pages_wide-skyscraper'    [success]
WHERE bid = 1015
UPDATE {blocks} SET delta = 'casein-free_diet-square' WHERE[success]
bid = 1016
UPDATE {blocks} SET delta = 'clonidine-leaderboard' WHERE  [success]
bid = 1017
UPDATE {blocks} SET delta = 'clonidine-square' WHERE bid = [success]
1018
UPDATE {blocks} SET delta =                                          [success]
'cognitive_behavioral_therapy-lea' WHERE bid = 1019
UPDATE {blocks} SET delta =                                          [success]
'cognitive_behavioral_therapy-squ' WHERE bid = 1020
UPDATE {blocks} SET delta =                                          [success]
'complementary_and_alternative_me' WHERE bid = 1021
UPDATE {blocks} SET delta =                                          [error]
'complementary_and_alternative_me' WHERE bid = 1022
UPDATE {blocks} SET delta = 'dentist-leaderboard' WHERE bid[success]
= 1023
UPDATE {blocks} SET delta = 'dentist-square' WHERE bid =   [success]
1024
UPDATE {blocks} SET delta = 'diet-leaderboard' WHERE bid = [success]
1025
UPDATE {blocks} SET delta =                                          [success]
'all-pages_large-rectangle_bottom' WHERE bid = 1026
UPDATE {blocks} SET delta = 'diet-square' WHERE bid = 1027 [success]
UPDATE {blocks} SET delta =                                          [success]
'discrete_trial_training-leaderbo' WHERE bid = 1028
UPDATE {blocks} SET delta =                                          [success]
'discrete_trial_training-square' WHERE bid = 1029
UPDATE {blocks} SET delta = 'dolphin_therapy-leaderboard'  [success]
WHERE bid = 1030
UPDATE {blocks} SET delta = 'dolphin_therapy-square' WHERE [success]
bid = 1031
UPDATE {blocks} SET delta = 'employment-leaderboard' WHERE [success]
bid = 1032
UPDATE {blocks} SET delta = 'employment-square' WHERE bid =[success]
1033
UPDATE {blocks} SET delta =                                          [success]
'essential_fatty_acids_autism-lea' WHERE bid = 1034
UPDATE {blocks} SET delta =                                          [success]
'essential_fatty_acids_autism-squ' WHERE bid = 1035
UPDATE {blocks} SET delta =                                          [success]
'evidence-based_medicine_ebm-lead' WHERE bid = 1036
UPDATE {blocks} SET delta = 'homepage_leaderboard' WHERE   [success]
bid = 1037
UPDATE {blocks} SET delta =                                          [success]
'evidence-based_medicine_ebm-squa' WHERE bid = 1038
UPDATE {blocks} SET delta = 'feeding_problems-leaderboard' [success]
WHERE bid = 1039
UPDATE {blocks} SET delta = 'feeding_problems-square' WHERE[success]
bid = 1040
UPDATE {blocks} SET delta = 'floortime-leaderboard' WHERE  [success]
bid = 1041
UPDATE {blocks} SET delta = 'floortime-square' WHERE bid = [success]
1042
UPDATE {blocks} SET delta = 'gluten-free_diet-leaderboard' [success]
WHERE bid = 1043
UPDATE {blocks} SET delta = 'gluten-free_diet-square' WHERE[success]
bid = 1044
UPDATE {blocks} SET delta = 'grants-leaderboard' WHERE bid [success]
= 1045
UPDATE {blocks} SET delta = 'grants-square' WHERE bid =    [success]
1046
UPDATE {blocks} SET delta = 'guanfacine-leaderboard' WHERE [success]
bid = 1047
UPDATE {blocks} SET delta = 'homepage_square' WHERE bid =  [success]
1048
UPDATE {blocks} SET delta = 'guanfacine-square' WHERE bid =[success]
1049
UPDATE {blocks} SET delta =                                          [success]
'high_functioning_autism-leaderbo' WHERE bid = 1050
UPDATE {blocks} SET delta =                                          [success]
'high_functioning_autism-square' WHERE bid = 1051
UPDATE {blocks} SET delta = 'hippotherapy-leaderboard'     [success]
WHERE bid = 1052
UPDATE {blocks} SET delta = 'hippotherapy-square' WHERE bid[success]
= 1053
UPDATE {blocks} SET delta = 'legal_support-leaderboard'    [success]
WHERE bid = 1054
UPDATE {blocks} SET delta = 'legal_support-square' WHERE   [success]
bid = 1055
UPDATE {blocks} SET delta = 'life_skills-leaderboard' WHERE[success]
bid = 1056
UPDATE {blocks} SET delta = 'life_skills-square' WHERE bid [success]
= 1057
UPDATE {blocks} SET delta = 'listening_therapy-leaderboard'[success]
WHERE bid = 1058
UPDATE {blocks} SET delta = 'other-pages_leaderboard' WHERE[success]
bid = 1059
UPDATE {blocks} SET delta = 'listening_therapy-square'     [success]
WHERE bid = 1060
UPDATE {blocks} SET delta = 'magnesium-leaderboard' WHERE  [success]
bid = 1061
UPDATE {blocks} SET delta = 'magnesium-square' WHERE bid = [success]
1062
UPDATE {blocks} SET delta = 'marriage-leaderboard' WHERE   [success]
bid = 1063
UPDATE {blocks} SET delta = 'marriage-square' WHERE bid =  [success]
1064
UPDATE {blocks} SET delta = 'music_therapy-leaderboard'    [success]
WHERE bid = 1065
UPDATE {blocks} SET delta = 'music_therapy-square' WHERE   [success]
bid = 1066
UPDATE {blocks} SET delta = 'neurofeedback-leaderboard'    [success]
WHERE bid = 1067
UPDATE {blocks} SET delta = 'neurofeedback-square' WHERE   [success]
bid = 1068
UPDATE {blocks} SET delta = 'nurses-leaderboard' WHERE bid [success]
= 1069
UPDATE {blocks} SET delta = 'other-pages_square' WHERE bid [success]
= 1070
UPDATE {blocks} SET delta = 'nurses-square' WHERE bid =    [success]
1071
UPDATE {blocks} SET delta = 'nutritionist-leaderboard'     [success]
WHERE bid = 1072
UPDATE {blocks} SET delta = 'nutritionist-square' WHERE bid[success]
= 1073
UPDATE {blocks} SET delta =                                          [success]
'occupational_therapy-leaderboard' WHERE bid = 1074
UPDATE {blocks} SET delta = 'occupational_therapy-square'  [success]
WHERE bid = 1075
UPDATE {blocks} SET delta = 'parent_training-leaderboard'  [success]
WHERE bid = 1076
UPDATE {blocks} SET delta = 'parent_training-square' WHERE [success]
bid = 1077
UPDATE {blocks} SET delta =                                          [success]
'picture_exchange_communication_s' WHERE bid = 1078
UPDATE {blocks} SET delta =                                          [error]
'picture_exchange_communication_s' WHERE bid = 1079
UPDATE {blocks} SET delta = 'preschool-leaderboard' WHERE  [success]
bid = 1080
UPDATE {blocks} SET delta = 'drug-pages_leaderboard' WHERE [success]
bid = 1081
UPDATE {blocks} SET delta = 'preschool-square' WHERE bid = [success]
1082
UPDATE {blocks} SET delta = 'private_school-leaderboard'   [success]
WHERE bid = 1083
UPDATE {blocks} SET delta = 'private_school-square' WHERE  [success]
bid = 1084
UPDATE {blocks} SET delta = 'recess-leaderboard' WHERE bid [success]
= 1085
UPDATE {blocks} SET delta = 'recess-square' WHERE bid =    [success]
1086
UPDATE {blocks} SET delta =                                          [success]
'relationship_development_interve' WHERE bid = 1087
UPDATE {blocks} SET delta =                                          [error]
'relationship_development_interve' WHERE bid = 1088
UPDATE {blocks} SET delta =                                          [success]
'residential_centers-leaderboard' WHERE bid = 1089
UPDATE {blocks} SET delta = 'residential_centers-square'   [success]
WHERE bid = 1090
UPDATE {blocks} SET delta =                                          [success]
'self-injurious_behavior-leaderbo' WHERE bid = 1091
UPDATE {blocks} SET delta = 'drug-pages_square' WHERE bid =[success]
1092
UPDATE {blocks} SET delta =                                          [success]
'self-injurious_behavior-square' WHERE bid = 1093
UPDATE {blocks} SET delta =                                          [success]
'sensory_activities-leaderboard' WHERE bid = 1094
UPDATE {blocks} SET delta = 'sensory_activities-square'    [success]
WHERE bid = 1095
UPDATE {blocks} SET delta =                                          [success]
'sensory_integration-leaderboard' WHERE bid = 1096
UPDATE {blocks} SET delta = 'sensory_integration-square'   [success]
WHERE bid = 1097
UPDATE {blocks} SET delta = 'sensory_rooms-leaderboard'    [success]
WHERE bid = 1098
UPDATE {blocks} SET delta = 'sensory_rooms-square' WHERE   [success]
bid = 1099
UPDATE {blocks} SET delta = 'social_story-leaderboard'     [success]
WHERE bid = 1100
UPDATE {blocks} SET delta = 'social_story-square' WHERE bid[success]
= 1101
UPDATE {blocks} SET delta = 'speech_therapy-leaderboard'   [success]
WHERE bid = 1102
UPDATE {blocks} SET delta =                                          [success]
'vitamin_b6_and_magnesium-leaderb' WHERE bid = 1155
UPDATE {blocks} SET delta =                                          [success]
'vitamin_b6_and_magnesium-square' WHERE bid = 1156
Cache cleared.
An error occurred at function : drush_core_cache_clear               [error]
Finished performing updates.                                         [ok]
An error occurred at function : drush_core_updatedb                  [error]
An error occurred at function : drush_pm_post_update                 [error]
healingthresholds:/var/www/staging.healingthresholds.com$ drush update
Refreshing update status information ...
Done.
Update information last refreshed: Tue, 2010-01-05 13:43
dankohn’s picture

StatusFileSize
new38.06 KB

The upgrade on this broke, as about a dozen of my ad blocks lost their description. It is not yet ready for production. I'm using views_block to track my ad blocks. Attached PDFs of my ad blocks before and after the upgrade.

If you're interested and available, I'm happy to give you an admin account on my development server, where you can test the upgrade against my 102 ad blocks. I'm also happy to let you take a look at my database, to try to figure out why some of the upgrades failed.

Thanks again for the great module.

Attached are the results from drush update.

toemaz’s picture

Priority: Normal » Critical

Thanks for the report.

It seems to fail because the delta, i.e. the ad slot name, is not unique for each block.

UPDATE {blocks} SET delta = 'picture_exchange_communication_s' WHERE bid = 779 [success]
UPDATE {blocks} SET delta = 'picture_exchange_communication_s' WHERE bid = 780 [error]

This is something I didn't anticipate and indeed an obvious bug. I will need to give it a thought how to solve this.

toemaz’s picture

@dankohn can you explain the use case of having 2 or more blocks with the same ad slot? Or is it simply a typo which I expect is not the case.

dankohn’s picture

I believe it came from when I tried to change the order of my ad blocks in the past. I think I might also have some ad blocks that are active in different themes. You can see from my before PDF that in my active theme, I only have one version of each ad, however,

Once I got things working, I stopped messing with it, because I have a lot of ad blocks and did not want to have to re-enter all the visibility info. That's when I opened this bug report.

toemaz’s picture

The solution might be to use md5($ad_slot) for the delta of the ad_slot blocks, instead of the actual ad_slot name.
This will also solve #694276: Database-Field to short for some adslot-names

If someone can cook up a patch, I'll be happy to commit it to the dev release.

dankohn’s picture

Could you please update the patch in #3 to work with the latest -dev release? After updating to fix the #351214 block caching bug, I now have about a dozen "dead" blocks that I cannot edit. When I remove them from the text list in the manager, I can no longer add them back.

jcisio’s picture

That's because the patch in #3 has critical issue with long adslot name. A quick fix is this patch:

--- google_admanager.module	31 Dec 2009 12:00:36 -0000	1.5.2.6
+++ google_admanager.module	7 May 2010 12:55:11 -0000
@@ -15,7 +15,7 @@ function google_admanager_block($op = 'l
     $ad_slots = explode("\n", str_replace(array("\r", "\t", "\0", "\x0B", " "), '', $ad_slots));
     $block_deltas = array();
     foreach ($ad_slots as $ad_slot) {
-      $block_deltas[truncate_utf8(drupal_strtolower($ad_slot), 64)] = $ad_slot;
+      $block_deltas[md5($ad_slot)] = $ad_slot;
     }
     if ($op == 'list') {
       foreach ($block_deltas as $block_delta => $block_name) {

About upgrade path available, dankohn, could you just use the same principle for it and test if it works?

jcisio’s picture

I hope that this critical issue get fixed with some code I've just committed.

jcisio’s picture

Status: Active » Fixed

As the code is committed, I'm marking this as "fixed". Feel free to reopen if it is not fixed.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.