We have moved to Github. Please open tickets there.

Ticket #3360: 9110_elgg_ecml_1.8.patch.diff

File 9110_elgg_ecml_1.8.patch.diff, 13.3 KB (added by ashleyward, 2 years ago)

Patch to ECML plugin

  • views/default/ecml/admin/css.php

     
    1 <?php 
    2 /** 
    3 * ECML CSS 
    4 */ 
    5 ?> 
    6  
    7 .ecml_admin_table { 
    8     width:100%; 
    9 } 
    10 .ecml_admin_table td, th { 
    11     border: 1px solid gray; 
    12     text-align: center; 
    13     padding: 5px; 
    14 } 
    15 .ecml_admin_table th, .ecml_keyword_desc { 
    16     font-weight: bold; 
    17 } 
    18 .ecml_row_odd { 
    19     background-color: #EEE; 
    20 } 
    21 .ecml_row_even { 
    22  
    23 } 
    24 .ecml_restricted { 
    25     color: #555; 
    26 } 
    27  
    28  
    29 /* ecml embed web services list */ 
    30 .ecml_web_service_list { 
    31     margin:0; 
    32     padding:0; 
    33 } 
    34 .ecml_web_service_list li { 
    35     list-style: none; 
    36     margin:0 0 0 0; 
    37     padding:0; 
    38     /* display:inline; */ 
    39  
    40 } 
    41 .ecml_web_service_list li a { 
    42     display:block; 
    43     float:left; 
    44     height:41px; 
    45     width:152px; 
    46     background-position: center center; 
    47     background-repeat: no-repeat; 
    48     text-indent: -900em; 
    49     border:2px solid transparent; 
    50     margin:0 20px 10px 0; 
    51 } 
    52 .ecml_web_service_list li a.selected { 
    53     border-color:#999999; 
    54     -webkit-border-radius: 5px; 
    55     -moz-border-radius: 5px; 
    56 } 
    57 .ecml_web_service_list li a.youtube { 
    58     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/logo_youtube.gif); 
    59     width:102px; 
    60 } 
    61 .ecml_web_service_list li a.slideshare { 
    62     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/logo_slideshare.gif); 
    63 } 
    64 .ecml_web_service_list li a.vimeo { 
    65     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/logo_vimeo.gif);   
    66     width:130px; 
    67 } 
    68 .ecml_web_service_list li a.googlemaps { 
    69     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/logo_googlemaps.gif);  
    70 } 
    71 .ecml_web_service_list li a.blip_tv { 
    72     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/logo_bliptv.gif); 
    73     width:102px;     
    74 } 
    75 .ecml_web_service_list li a.dailymotion { 
    76     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/logo_dailymotion.gif);     
    77 } 
    78 .ecml_web_service_list li a.livevideo { 
    79     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/logo_livevideo.gif);   
    80     width:166px; 
    81 } 
    82 .ecml_web_service_list li a.redlasso { 
    83     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/logo_redlasso.gif); 
    84     background-position:center 4px; 
    85     width:130px; 
    86 } 
    87  
    88 .embed_content_section { 
    89     border:none; 
    90     -webkit-border-radius: 5px; 
    91     -moz-border-radius: 5px; 
    92     background-color:#EEEEEE; 
    93     margin:10px 0 10px 0; 
    94     padding:5px; 
    95     width:auto; 
    96 } 
    97 .ecml_generated_code { 
    98     color:#666666; 
    99     font-size:85%; 
    100     font-style:normal; 
    101     line-height: 1.3em; 
    102     margin:5px 0; 
    103 } 
    104 .ecml_embed_instructions, 
    105 .ecml_embed_preview { 
    106     background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png); 
    107     background-repeat: no-repeat; 
    108     background-position: 0px -367px; 
    109     padding-left: 12px; 
    110 } 
    111 .ecml_embed_instructions.open, 
    112 .ecml_embed_preview.open { 
    113     background-position: 0px -388px; 
    114 } 
    115 #embed_service_url { 
    116     -webkit-border-radius: 5px; 
    117     -moz-border-radius: 5px; 
    118     background-color:#EEEEEE; 
    119     margin:10px 0 10px 0; 
    120     padding:5px; 
    121     width:auto; 
    122 } 
    123 #web_services_resource { 
    124     width:670px; 
    125 } 
    126 #url_status { 
    127     width:30px; 
    128     height:30px; 
    129     float:right; 
    130 } 
    131 #url_status.success { 
    132     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/url_status.png); 
    133     background-repeat: no-repeat; 
    134     background-position: left top; 
    135 } 
    136 #url_status.failure { 
    137     background-image: url(<?php echo elgg_get_site_url(); ?>mod/ecml/graphics/url_status.png); 
    138     background-repeat: no-repeat; 
    139     background-position: left bottom; 
    140 } 
    141 #embed_ecml_keyword_help, 
    142 #ecml_preview { 
    143     padding:10px; 
    144 } 
    145 #ecml_preview object, 
    146 #ecml_preview embed, 
    147 #ecml_preview iframe { 
    148     width: auto; 
    149     max-height:240px; 
    150 } 
    151 #embed_submit { 
    152     margin:10px 0 0 0; 
    153 } 
    154  
    155  
    156  
  • views/default/ecml/help/blip.tv.php

     
    1 <?php 
    2 /** 
    3  * ECML help for blip.tv 
    4  */ 
    5  
    6 echo '<h3>' . elgg_echo('ecml:keywords:blip.tv') . '</h3>'; 
    7 echo '<p>' . elgg_echo('ecml:keywords:blip.tv:desc') . '</p>'; 
    8 echo '<p>' . elgg_echo('ecml:keywords:blip.tv:usage') . '</p>'; 
    9  
    10 ?> 
    11  
    12 <img src="<?php echo elgg_get_site_url()?>mod/ecml/graphics/blip.tv.png" /> 
    13  No newline at end of file 
  • views/default/ecml/css.php

     
    101101    line-height: 1.3em; 
    102102    margin:5px 0; 
    103103} 
     104 
    104105.ecml_embed_instructions, 
    105106.ecml_embed_preview { 
    106     background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png); 
    107     background-repeat: no-repeat; 
    108     background-position: 0px -367px; 
    109     padding-left: 12px; 
     107    left: 5px; 
     108    color: #333333; 
    110109} 
    111 .ecml_embed_instructions.open, 
    112 .ecml_embed_preview.open { 
    113     background-position: 0px -388px; 
     110.ecml_embed_instructions:hover, 
     111.ecml_embed_preview:hover { 
     112    color: #666666; 
     113    text-decoration: none; 
    114114} 
     115.ecml_embed_instructions:before, 
     116.ecml_embed_preview:before { 
     117    content: "\25BA"; 
     118} 
     119.ecml_embed_instructions.elgg-state-active:before, 
     120.ecml_embed_preview.elgg-state-active:before { 
     121    content: "\25BC"; 
     122} 
     123 
    115124#embed_service_url { 
    116125    -webkit-border-radius: 5px; 
    117126    -moz-border-radius: 5px; 
  • views/default/ecml/keyword_help.php

     
    66 *  
    77 */ 
    88 
    9 $keyword = elgg_get_array_value('keyword', $vars); 
     9$keyword = elgg_extract('keyword', $vars); 
    1010$content = elgg_view("ecml/help/$keyword"); 
    1111 
    1212if (!$keyword || !ecml_is_valid_keyword($keyword)) { 
  • views/default/embed/web_services/content.php

     
    99 *  
    1010 */ 
    1111 
    12 $internal_name = elgg_get_array_value('internal_name', $vars); 
     12$internal_id = elgg_extract('internal_id', $vars); 
    1313 
    1414$keywords = ecml_get_keywords(); 
    1515elgg_sort_3d_array_by_value($keywords, 'name'); 
     
    2424        unset ($keywords[$i]); 
    2525        continue; 
    2626    } 
    27      
    28     // make sure the classname doens't have invalid chars. 
     27    // make sure the classname doesn't have invalid chars. 
    2928    $class = str_replace(array('.', ','), '_', $i); 
    3029    $keyword_js_array[] = $class; 
    3130     
    32     $keywords_html .= "<li class='ecml_web_service'><a class=\"$class link\">{$v['name']}</a></li>"; 
     31    $keywords_html .= "<li class='ecml_web_service'>"; 
     32     
     33    $keywords_html .= elgg_view('output/url', array(  
     34        'href' => '#embed_ecml_keyword_help',  
     35        'text' => $v['name'],  
     36        'class' => $class, 
     37    )); 
     38     
     39    $keywords_html .= "</li>"; 
    3340} 
    3441 
    3542$keywords_html .= "</ul>"; 
     
    5360 
    5461echo $keywords_html; 
    5562 
    56 echo "<div class='embed_content_section instructions hidden'><a class='ecml_embed_instructions link'>Instructions</a>"; 
     63echo "<div class='embed_content_section instructions hidden'><a class='ecml_embed_instructions link elgg-toggler' href='#embed_ecml_keyword_help'>Instructions</a>"; 
    5764echo "<div id='embed_ecml_keyword_help' class='hidden'></div></div>"; 
    5865 
    5966echo "<div id='embed_service_url'><label>URL<br />".$input."<div id='url_status' class=''></div></label>"; 
    6067echo "<div class='ecml_generated_code hidden'>ECML: <span id='ecml_code'></span></div></div>"; 
    6168 
    62 echo "<div class='embed_content_section preview hidden'><a class='ecml_embed_preview link'>Preview</a>"; 
     69echo "<div class='embed_content_section preview hidden'><a class='ecml_embed_preview link elgg-toggler' href='#ecml_preview'>Preview</a>"; 
    6370echo "<div id='ecml_preview' class='hidden'></div></div>"; 
    6471 
    6572echo "<div class='divider margin-top'></div>"; 
     
    6976 
    7077<script type="text/javascript"> 
    7178 
    72 $(document).ready(function() { 
    73     $('a.ecml_embed_instructions.link').click(function() { 
    74         elgg_slide_toggle($(this), '.embed_content_section.instructions', '#embed_ecml_keyword_help'); 
    75         $('.ecml_embed_instructions').toggleClass('open'); 
    76     }); 
    77      
    78     $('a.ecml_embed_preview.link').click(function() { 
    79         elgg_slide_toggle($(this), '.embed_content_section.preview', '#ecml_preview'); 
    80         $('.ecml_embed_preview').toggleClass('open'); 
    81     }); 
    82 }); 
    83  
    8479$(function() { 
    8580    var keywords = <?php echo $keywords_js; ?>; 
    8681    var selected_service = ''; 
     
    9287    // counter for paused input to try to validate/generate a preview. 
    9388    var rest_timeout_id = null; 
    9489    var rest_min_time = 750; 
    95     var embed_generate_ecml_url = '<?php echo elgg_get_site_url(); ?>pg/ecml_generate'; 
    96     var embed_ecml_keyword_help_url = '<?php echo elgg_get_site_url(); ?>pg/ecml/'; 
    97     var internal_name = '<?php echo addslashes($internal_name); ?>'; 
     90    var embed_generate_ecml_url = '<?php echo elgg_get_site_url(); ?>ecml_generate'; 
     91    var embed_ecml_keyword_help_url = '<?php echo elgg_get_site_url(); ?>ecml/'; 
     92    var internal_id = '<?php echo addslashes($internal_id); ?>'; 
    9893     
    9994    var web_services_ecml_update = function() { 
    10095        if (rest_timeout_id) { 
     
    156151        selected_service = service; 
    157152        $('.ecml_web_service a').removeClass('selected'); 
    158153        $('.ecml_web_service a.' + service).addClass('selected'); 
    159         $('.embed_content_section.instructions').removeClass('hidden'); // reveal instructions link/panel 
     154        $('.embed_content_section.instructions').slideDown(); // reveal instructions link/panel 
    160155    } 
    161156 
    162157    // pings back core to generate the ecml. 
     
    175170                $('#ecml_preview').html(data.html); 
    176171                $('#ecml_code').html(data.ecml); 
    177172                $('body').data('elgg_embed_ecml', data.ecml); 
    178                 $('.embed_content_section.preview').removeClass('hidden'); // reveal preview link/panel 
    179                 $('.ecml_generated_code').removeClass('hidden'); // reveal ecml generated code 
     173                $('.embed_content_section.preview').slideDown(); // reveal preview link/panel 
     174                $('.ecml_generated_code').slideDown(); // reveal ecml generated code 
    180175 
    181176                // set status for embed button 
    182177                embed_button.removeAttr('disabled').removeClass('disabled'); 
     
    185180                // data failure 
    186181                embed_button.attr('disabled', 'disabled').addClass('disabled'); 
    187182                url_status.removeClass('success').removeClass('failure'); 
     183 
     184                $('.embed_content_section.preview').slideUp(); // hide preview link/panel 
     185                $('.ecml_generated_code').slideUp(); // hide ecml generated code 
    188186            } 
    189187        }, 'json'); 
    190188    } 
     
    210208            content = embed_resource_input.val(); 
    211209        } 
    212210 
    213         elggEmbedInsertContent(content, internal_name); 
     211        elggEmbedInsertContent(content, internal_id); 
    214212         
    215213        return false; 
    216214    }); 
  • manifest.xml

     
    77    <field key="website" value="http://www.elgg.org/" /> 
    88    <field key="copyright" value="(C) Curverider 2008-2010" /> 
    99    <field key="licence" value="GNU Public License version 2" /> 
    10     <field key="elgg_version" value="2009030702" /> 
     10    <field key="elgg_version" value="2011032200" /> 
    1111    <field key="elgg_install_state" value="enabled" /> 
    1212    <field key="admin_interface" value="advanced" /> 
    1313</plugin_manifest> 
  • start.php

     
    2525    define('ECML_KEYWORD_REGEX', '/\[([a-z0-9\.]+)([^\]]+)?\]/'); 
    2626 
    2727    // help page 
    28     register_page_handler('ecml', 'ecml_help_page_handler'); 
     28    elgg_register_page_handler('ecml', 'ecml_help_page_handler'); 
    2929 
    3030    // admin access page 
    31     register_page_handler('ecml_admin', 'ecml_admin_page_handler'); 
     31    elgg_register_page_handler('ecml_admin', 'ecml_admin_page_handler'); 
    3232 
    3333    // ecml validator for embed 
    34     register_page_handler('ecml_generate', 'ecml_generate_page_handler'); 
     34    elgg_register_page_handler('ecml_generate', 'ecml_generate_page_handler'); 
    3535 
    3636    // CSS for admin access 
    37     elgg_extend_view('css/screen', 'ecml/admin/css'); 
     37    elgg_extend_view('css/elgg', 'ecml/css'); 
    3838 
    3939    // admin action to save permissions 
    4040    elgg_register_action('settings/ecml/save', dirname(__FILE__) . '/actions/save_permissions.php', 'admin'); 
     
    7070    // it's more efficient to use this as a blacklist 
    7171    // but probably makes more sense from a UI perspective as a whitelist. 
    7272    // uses [views][view_name] = array(keywords, not, allowed) 
    73     $CONFIG->ecml_permissions = unserialize(get_plugin_setting('ecml_permissions', 'ecml')); 
     73    $CONFIG->ecml_permissions = unserialize(elgg_get_plugin_setting('ecml_permissions', 'ecml')); 
    7474 
    7575    // 3rd party media embed section 
    7676    elgg_register_plugin_hook_handler('embed_get_sections', 'all', 'ecml_embed_web_services_hook'); 
     
    221221        'vimeo' => array('params' => array('src', 'width', 'height'), 'embed_format' => 'src="%s"'), 
    222222        'googlemaps' => array('params' => array('src', 'width', 'height'), 'embed_format' => 'src="%s"'), 
    223223        //'scribd' 
    224         'blip.tv' => array('params' => array('width', 'height'), 'embed_format' => '%s'), 
     224        'blip_tv' => array('params' => array('width', 'height'), 'embed_format' => '%s'), 
    225225        'dailymotion' => array('params' => array('src', 'width', 'height'), 'embed_format' => 'src="%s"'), 
    226226        'livevideo' => array('params' => array('src', 'width', 'height'), 'embed_format' => 'src="%s"'), 
    227227        'redlasso' => array('params' => array('id', 'width', 'height'), 'embed_format' => 'id="%s"'),