1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Other Script to convert old Smilies XML format to New one

Discussion in 'Resource and Add-on Discussions' started by Quags, Oct 21, 2014.

  1. Quags

    Quags Member

    Really simple script, nothing special here, just a quick hack to convert Smilies XML files I find around this site in an older format to a newer one that works.

    Example Old Format:
    Code:
    <smilies_export>
      <smilie_categories/>
      <smilies>
        <smilie title="Android" display_order="1" display_in_editor="1">
          <image_url>styles/default/xenforo/xenforo-extended-sprite.png</image_url>
          <sprite_params h="18" w="18" x="-80" y="0"/>
          <smilie_text>:android:</smilie_text>
        </smilie>
        <smilie title="Angelic" display_order="1" display_in_editor="1">
          <image_url>styles/default/xenforo/xenforo-extended-sprite.png</image_url>
          <sprite_params h="18" w="18" x="0" y="-209"/>
          <smilie_text>:angelic:</smilie_text>
    
    After Script Runs:
    Code:
    <smilies>
      <smilie y="0" x="-80" h="18" w="18" sprite_mode="1">
        <title><![CDATA[Android]]></title>
        <image_url><![CDATA[styles/default/xenforo/xenforo-extended-sprite.png]]></image_url>
        <smilie_text><![CDATA[:android:]]></smilie_text>
      </smilie>
      <smilie y="-209" x="0" h="18" w="18" sprite_mode="1">
        <title><![CDATA[Angelic]]></title>
        <image_url><![CDATA[styles/default/xenforo/xenforo-extended-sprite.png]]></image_url>
        <smilie_text><![CDATA[:angelic:]]></smilie_text>
    
    Source Code:
    PHP:
    <?php
    // Grab xml2array.php from http://www.bin-co.com/php/scripts/xml2array/
    //   or https://gist.github.com/detain/a168ef3c4d57880cd3e0
    require_once(dirname(__FILE__) . '/xml2array.php');
    $xml trim(file_get_contents('smilies-xenforo_extended.xml'));
    $arr xml2array($xml1'attribute');
    $sar $arr['smilies_export']['smilies']['smilie'];
    echo 
    '<?xml version="1.0" encoding="utf-8"?>
    <smilies>
    '
    ;
    foreach (
    $sar as $odx => $smilie)
    {
            
    $smilie_text = array();
            if (
    sizeof($smilie['smilie_text']) > 1)
            {
                    foreach (
    $smilie['smilie_text'] as $idx => $sdata)
                    {
                            
    $smilie_text[] = $sdata['value'];
                    }
            }
            elseif (isset(
    $smilie['smilie_text']['value']))
            {
                    
    $smilie_text[] = $smilie['smilie_text']['value'];
            }
            echo 
    '  <smilie y="'
            
    .$smilie['sprite_params']['attr']['y'].'" x="'
            
    .$smilie['sprite_params']['attr']['x'].'" h="'
            
    .$smilie['sprite_params']['attr']['h'].'" w="'
            
    .$smilie['sprite_params']['attr']['w'].'" sprite_mode="1">
        <title><![CDATA['
    .$smilie['attr']['title'].']]></title>
        <image_url><![CDATA['
    .$smilie['image_url']['value'].']]></image_url>
        <smilie_text><![CDATA['
    .implode("\n",$smilie_text).']]></smilie_text>
      </smilie>
    '
    ;
    }
    echo 
    '</smilies>
    '
    ;
    ?>

    *Note: No idea here if im really posting this in the right area or if this kind of stuff is wanted here..so feel free to correct me where i should be putting stuff like this.
     
    Mirovinger likes this.

Share This Page