<?

/************************************************************************
*
*                  OMS Web Service Functions 1.4
*                  -----------------------------
*
*     Copyright:   (C) 2007 moving primates GmbH
*      Function:   GetArtistArticle
*   Description:   Gets the artist description, history, press news and
*                  additional info texts in one or more languages (if
*                  available) of one artist.
*   Change Date:   12/Jun/2007
*
*************************************************************************
*
*   REQUIRED ELEMENTS:
*
*   The following required elements must be send with the request:
*
*   - ArtistID
*   - ArticleType ("Description", "History", "Press" or "AdditionalInfo")
*   - Fieldlist
*
*   FIELD ELEMENTS:
*
*   The following are Field elements which define what you get back from
*   the Web Service function. They must be named "Field", their value
*   must be the exact name of the following enumeration and they must be
*   created as a child element of "Fieldlist".
*
*   Field elements are optional, however it is required that you
*   create at least one; their send order is irrelevant.
*
*    - ArticleText
*   - ArticleLanguageID
*   - ArticleLanguageCode
*   - ArticleLanguageName
*
*   FILTER ELEMTNES:
*
*   If you want to use the filter options of this function create an
*   element called "Filter" and at least one of the following child
*   elements:
*
*   - LanguageCode ("de", "en" or leave blank)
*
*************************************************************************
*   More info about elements and the functions can be found inside
*   the documentation.
************************************************************************/

$ArtistID = "65868"; // Example ID from an artist
include("inc/config.php"); // Example path, point it to your config.php


$dom = create_document();
$root = create_root_element($dom, "OMS");
create_element_attribute($root, "xmlns", $oms_cfg['artist_data_xmlns'] . "/GetArtistArticle");


// Here we are defining the REQUIRED elements

$el_artist_id = create_element($dom, "ArtistID");
set_element_value($dom, $el_artist_id, $ArtistID);

$el_article_type = create_element($dom, "ArticleType");
set_element_value($dom, $el_article_type, "Description");


// Here we are defining the FIELDLIST and its elements (requesting all available)

$el_fields_list = create_element($dom, "FieldList");

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArticleText");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArticleLanguageID");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArticleLanguageCode");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArticleLanguageName");
add_child_element($el_fields_list, $el_field);


// Here we are defining the FILTER elements

$el_filter = create_element($dom, "Filter");

$el_lang_code = create_element($dom, "LanguageCode");
set_element_value($dom, $el_lang_code, "en");
add_child_element($el_filter, $el_lang_code);


// Preparing the XML which is going to be send

add_child_element($root, $el_artist_id);
add_child_element($root, $el_fields_list);
add_child_element($root, $el_article_type);
add_child_element($root, $el_filter);

$xml_str = dump_to_string($dom);

$par = array("String_1" => $oms_cfg['ws_login'],
            
"String_2" => $oms_cfg['ws_password'],
            
"String_3" => $xml_str );


// Executing the Web Service function "GetArtistArticle"

$GetArtistArticle = ProcessWSCall($oms_cfg['artist_data_ws_url'], "GetArtistArticle", $par, $oms_cfg['artist_data_xmlns']);

// Counting available articles

if(isset($GetArtistArticle['ArtistID']))
{
    if(isset(
$GetArtistArticle['ArticleList'][0]['Article']))
    {
        
$ArtistArticleCount = sizeof($GetArtistArticle['ArticleList'][0]['Article']);
    }
    else
    {
        
$ArtistArticleCount = 0;
    }
}


/************************************************************************
*
*   From here on we assign the content of the array to variables and
*   create some example output. This was done so you can see something
*   when opening the PHP files with your browser.
*
*   If you are looking for this code without any comments or output,
*   then check out the folder 'minimal_code'.
*
************************************************************************/

?>
<style type="text/css">
<!--
.font {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
}
-->
</style>
<span class="font"> <strong>We sent the following elements with our <u>REQUEST</u>:</strong><br />
<ul>
    <li><em>ArtistID</em> - value was &quot;34089&quot;, an example ID from an artist</li>
    <li><em>ArticleType</em> - value was &quot;Description&quot; </li>
    <li><em>Fieldlist</em> - the requested child elements were: <i>
        <ul>
            <li>ArticleText</li>
            <li>ArticleLanguageID</li>
            <li>ArticleLanguageCode</li>
            <li>ArticleLanguageName</li>
            <li>SoundsLike</li>
            <li>ArtistPictureExists</li>
            <li>FirstOnlineDate</li>
        </ul>
        </i></li>
    <li><em>Filter</em> - the requested child elements were:
        <ul>
            <li><i>LanguageCode</i> - value was &quot;en&quot; </li>
        </ul>
    </li>
</ul>
<br />
<strong>We got back the following array in <u>RESPONSE</u>:</strong><br />
<pre><? var_dump($GetArtistArticle); ?>
</pre>
<br />
<strong>We assign the array to  seperate variables and <u>OUTPUT</u> these (without any design here):</strong><br />
<?
    $ArtistID
= $GetArtistArticle['ArtistID'][0];
    
$ArticleType = $GetArtistArticle['ArticleType'][0];
    
$LanguageCode = $GetArtistArticle['Filter'][0]['LanguageCode'][0];
?>
<ul>
    <li>Artist ID: <? echo $ArtistID; ?></li>
    <li>Artist Type: <? echo $ArticleType; ?></li>
    <li>Language Code: <? echo $LanguageCode; ?></li>
    <?
    
for($i=0;$i<$ArtistArticleCount;$i++)
    {
        
$ArticleText = $GetArtistArticle['ArticleList'][0]['Article'][$i]['ArticleText'];
        
$ArticleLanguageID = $GetArtistArticle['ArticleList'][0]['Article'][$i]['ArticleLanguageID'];
        
$ArticleLanguageCode = $GetArtistArticle['ArticleList'][0]['Article'][$i]['ArticleLanguageCode'];
        
$ArticleLanguageName = $GetArtistArticle['ArticleList'][0]['Article'][$i]['ArticleLanguageName'];
?>
    <li>Article Text: <? echo $ArticleText; ?></li>
    <li>Article Language ID: <? echo $ArticleLanguageID; ?></li>
    <li>Article Language Code: <? echo $ArticleLanguageCode; ?></li>
    <li>Article Language Name: <? echo $ArticleLanguageName; ?></li>
    <?
    
}
?>
</ul>
</span>