function edit_item_settings_page()
{
    $semantic = WP_PLUGIN_URL . '/panomanager/css/semantic.css';
    $item = null;
    if (isset($_GET['id']) && is_numeric($_GET['id'])) {
        $item = build_item($_GET['id']);
    }
    $item_types = get_item_types();
    ?>
<link rel="stylesheet" type="text/css" href="<?php 
    echo $semantic;
    ?>
"/>
<h2>Edit your item!</h2>
<hr>
<style type="text/css">
    #wpfooter{
        display: none;
    }

    #file_input {
        border: 1px solid #cccccc;
        padding: 5px;
    }

    .new_pano_form{
        width:85%;
        margin: 0px auto;
    }
</style>
<?php 
    if (isset($_GET['settings-saved'])) {
        ?>
    <div class="updated"><p>Item updated successfully.</p></div>
<?php 
    } elseif (isset($_GET['error'])) {
        ?>
    <div class="error"><p>Error updating item.</p></div>
<?php 
    }
    ?>
<form method="post" enctype="multipart/form-data" action="<?php 
    echo get_admin_url() . 'admin-post.php';
    ?>
" >
    <input type="hidden" name="action" value="edit_item"/>
    <input type="hidden" name="item_id" value="<?php 
    echo $item->get_id();
    ?>
"/>
    <div class="ui form segment new_item_form">
        <div class="ui form ">
            <div class="field">
                <div class="ui left labeled icon input">
                    <label>Item Name</label>
                    <input name="item_name" id="name" placeholder="Name" value="<?php 
    echo $item->get_name();
    ?>
" required/>
                </div>
            </div>
        </div>
        <div class="ui form ">
            <div class="field">
                <div class="ui left labeled icon input">
                    <label>Item Info</label>
                    <input name="item_description" id="description" placeholder="Description" value="<?php 
    echo $item->get_description();
    ?>
" required />
                </div>
            </div>
        </div>
        <div class="ui form">
            <div class="field">
                <div class="ui left labeled icon input">
                    <label for="image">Choose an image: <b>(Preferably 120x120)</b> </label>
                    <img class="item_image" src="<?php 
    echo content_url() . '/' . $item->get_image();
    ?>
" alt="Image"/>
                    <input type="file" name="item_image" id="image"  />
                </div>
            </div>
        </div>
        <div class="ui form ">
            <div class="field">
                <div class="ui left labeled icon input">
                    <label>Item Price</label>
                    <input name="item_price" id="price" placeholder="Price" value="<?php 
    echo $item->get_price();
    ?>
"/>
                </div>
            </div>
        </div>
        <div class="ui form">
            <div class="field">
                <label>Select an item type</label>
                <select name="item_type_id">
                    <option value="NA">...</option>
                    <?php 
    foreach ($item_types as $item_type) {
        ?>
                        <option value="<?php 
        echo $item_type->id;
        ?>
" <?php 
        echo $item_type->id === $item->get_type_id() ? "selected" : "";
        ?>
><?php 
        echo $item_type->name;
        ?>
</option>
                    <?php 
    }
    ?>
                </select>
            </div>
        </div>
        <?php 
    submit_button();
    ?>
    </div>
</form>
<?php 
}
Beispiel #2
0
 public function collectData(array $param)
 {
     function ExtractFromDelimiters($string, $start, $end)
     {
         if (strpos($string, $start) !== false) {
             $section_retrieved = substr($string, strpos($string, $start) + strlen($start));
             $section_retrieved = substr($section_retrieved, 0, strpos($section_retrieved, $end));
             return $section_retrieved;
         }
         return false;
     }
     function StripWithDelimiters($string, $start, $end)
     {
         while (strpos($string, $start) !== false) {
             $section_to_remove = substr($string, strpos($string, $start));
             $section_to_remove = substr($section_to_remove, 0, strpos($section_to_remove, $end) + strlen($end));
             $string = str_replace($section_to_remove, '', $string);
         }
         return $string;
     }
     function build_item($uri, $title, $author, $timestamp, $thumnail, $content)
     {
         $item = new \Item();
         $item->uri = $uri;
         $item->title = $title;
         $item->author = $author;
         $item->timestamp = $timestamp;
         $item->thumbnailUri = $thumnail;
         $item->content = $content;
         return $item;
     }
     function cleanup_post_content($content, $site_url)
     {
         $content = str_replace(':arrow:', '&#x27a4;', $content);
         $content = str_replace('href="attachments/', 'href="' . $site_url . 'attachments/', $content);
         $content = StripWithDelimiters($content, '<script', '</script>');
         return $content;
     }
     function fetch_post_content($uri, $site_url)
     {
         $html = $this->file_get_html($uri) or $this->returnError('Could not request GBAtemp: ' . $uri, 500);
         $content = $html->find('div.messageContent', 0)->innertext;
         return cleanup_post_content($content, $site_url);
     }
     $typeFilter = '';
     if (!empty($param['type'])) {
         if ($param['type'] == 'N' || $param['type'] == 'R' || $param['type'] == 'T' || $param['type'] == 'F') {
             $typeFilter = $param['type'];
             if ($typeFilter == 'N') {
                 $this->filter = 'News';
             }
             if ($typeFilter == 'R') {
                 $this->filter = 'Review';
             }
             if ($typeFilter == 'T') {
                 $this->filter = 'Tutorial';
             }
             if ($typeFilter == 'F') {
                 $this->filter = 'Forum';
             }
         } else {
             $this->returnError('The provided type filter is invalid. Expecting N, R, T, or F.', 400);
         }
     } else {
         $this->returnError('Please provide a type filter. Expecting N, R, T, or F.', 400);
     }
     $html = $this->file_get_html($this->getURI()) or $this->returnError('Could not request GBAtemp.', 500);
     if ($typeFilter == 'N') {
         foreach ($html->find('li[class=news_item full]') as $newsItem) {
             $url = $this->getURI() . $newsItem->find('a', 0)->href;
             $img = $this->getURI() . $newsItem->find('img', 0)->src;
             $time = intval(ExtractFromDelimiters($newsItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
             $author = $newsItem->find('a.username', 0)->plaintext;
             $title = $newsItem->find('a', 1)->plaintext;
             $content = fetch_post_content($url, $this->getURI());
             $this->items[] = build_item($url, $title, $author, $time, $img, $content);
         }
     } else {
         if ($typeFilter == 'R') {
             foreach ($html->find('li.portal_review') as $reviewItem) {
                 $url = $this->getURI() . $reviewItem->find('a', 0)->href;
                 $img = $this->getURI() . ExtractFromDelimiters($reviewItem->find('a', 0)->style, 'image:url(', ')');
                 $title = $reviewItem->find('span.review_title', 0)->plaintext;
                 $content = $this->file_get_html($url) or $this->returnError('Could not request GBAtemp: ' . $uri, 500);
                 $author = $content->find('a.username', 0)->plaintext;
                 $time = intval(ExtractFromDelimiters($content->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
                 $intro = '<p><b>' . $content->find('div#review_intro', 0)->plaintext . '</b></p>';
                 $review = $content->find('div#review_main', 0)->innertext;
                 $subheader = '<p><b>' . $content->find('div.review_subheader', 0)->plaintext . '</b></p>';
                 $procons = $content->find('table.review_procons', 0)->outertext;
                 $scores = $content->find('table.reviewscores', 0)->outertext;
                 $content = cleanup_post_content($intro . $review . $subheader . $procons . $scores, $this->getURI());
                 $this->items[] = build_item($url, $title, $author, $time, $img, $content);
             }
         } else {
             if ($typeFilter == 'T') {
                 foreach ($html->find('li.portal-tutorial') as $tutorialItem) {
                     $url = $this->getURI() . $tutorialItem->find('a', 0)->href;
                     $title = $tutorialItem->find('a', 0)->plaintext;
                     $time = intval(ExtractFromDelimiters($tutorialItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
                     $author = $tutorialItem->find('a.username', 0)->plaintext;
                     $content = fetch_post_content($url, $this->getURI());
                     $this->items[] = build_item($url, $title, $author, $time, '', $content);
                 }
             } else {
                 if ($typeFilter == 'F') {
                     foreach ($html->find('li.rc_item') as $postItem) {
                         $url = $this->getURI() . $postItem->find('a', 1)->href;
                         $title = $postItem->find('a', 1)->plaintext;
                         $time = intval(ExtractFromDelimiters($postItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
                         $author = $postItem->find('a.username', 0)->plaintext;
                         $content = fetch_post_content($url, $this->getURI());
                         $this->items[] = build_item($url, $title, $author, $time, '', $content);
                     }
                 }
             }
         }
     }
 }