<?php
/**
 * @copyright ONE/DEPO Project
 * @license   PHP License 3.01 <http://www.php.net/license/3_01.txt>
 */


/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * 商品 出品依頼確認
 *
 * @package     Seller.Itemexhibit.Request.Item.Check
 * @author      H.Watanabe <hiroshi.watanabe@netnee.jp>
 * @access      public
 */
class Seller_Itemexhibit_Request_Item_Check
{
    var $view;
    var $itemupdate;
    var $auth;
    var $c_mypage;
    var $fileUpload;

    var $castnm;
    var $genrenm;

    var $title;
    var $pagename;

    //基本情報
    var $itemnm;
    var $itemnmkana;
    var $maker_capi;
    var $makercd;
    var $labelcd;
    var $seriescd;
    var $iteminfo;
    var $comment;
    var $genre;
    var $itemdivcd;
    var $eirinrating;
    var $examgroupcd;
    var $examno;
    var $rankingrate;
    var $releasedate;

    //構成情報
    var $jancd;
    var $isbncd;
    var $makeritemcd;
    var $salestartdate;
    var $makerprice;
    var $orderclosedate;
    var $saleformcd;
    var $rectime;
    var $mediacd;
    var $struct_comment;
    var $variationnm;

    // ダウンロード販売フラグ
    var $download;
    
    //var $downfile;
    
    var $cd;
    var $actionnm;
    var $error;

    var $itemexp;

    var $basic_option01;
    var $basic_option02;
    var $basic_option03;
    var $basic_option04;
    var $basic_option05;
    var $basic_option06;
    var $basic_option07;
    var $basic_option08;
    var $basic_option09;
    var $basic_option10;

    var $struct_option01;
    var $struct_option02;
    var $struct_option03;
    var $struct_option04;
    var $struct_option05;
    var $struct_option06;
    var $struct_option07;
    var $struct_option08;
    var $struct_option09;
    var $struct_option10;

    var $use_tags;
    var $actionChain;
    

    function execute()
    {
        $log =& LogFactory::getLog();
        $log->debug("Seller_Itemexhibit_Request_Item_Checkが実行されました", "Seller_Itemexhibit_Request_Item_Check#execute");
        
        // ユーザチェック
        $membercd = $this->auth->getAuthData("membercd");
        if (!empty($membercd)) {
            $status = $this->c_mypage->checkStatus($membercd);
        }

        $errorList =& $this->actionChain->getCurErrorList();
        if (!$status['scd'])
        {
            $errorList -> add(1, "出品者情報が登録されていません。");
            return 'input';
        }
        // 出品者ID取得
        $sellercd = $status['scd'];
        
        if (preg_match_all("@(?:</?([^>]*?)>)@im",$this->itemexp, $match)) {
            //$log->debug(print_r($match[0],true), "");

            $use_tags = str_replace(",", "|", $this->use_tags);
            foreach ($match[0] as $val) {
                if (!preg_match("@(?:</?[".$use_tags."]++(([\s]+[^>]*?)*)>)@im",$val)) {
                    $log->debug("@(?:</?[".$use_tags."]++(([\s]+[^>]*?)*)>)@im  : ". $val, "");
                    $errorList->add("error", "使用できないHTMLタグが入力されています。");
                    $errorList->add("error", "「".$this->use_tags."」が使用できます。");
                    return 'input';
                }
            }
        }
/***
        echo "[" . $_FILES['image_s']['name'] . "]<br>";
        echo "[" . $_FILES['image_m']['name'] . "]<br>";
        echo "[" . $_FILES['image_l']['name'] . "]<br>";
***/
        $errflg = false;
        // 商品画像のチェック
        if (empty($_FILES['image_s']['name'])) {
            $errorList -> add(1, "商品画像 サイズ小（一覧表示用）が入力されていません。");
            $errflg = true;
        }
        if (empty($_FILES['image_m']['name'])) {
            $errorList -> add(1, "商品画像 サイズ中（詳細表示用）が入力されていません。");
            $errflg = true;
        }
        if (empty($_FILES['image_l']['name'])) {
            $errorList -> add(1, "商品画像 サイズ大（拡大表示用）が入力されていません。");
            $errflg = true;
        }
        if ($errflg) return 'input';

        // ダウンロード商品アップロード
        if($this->download == '1') {
            // 過去商品ファイル削除
            foreach (glob(IMAGE_WORKDIR ."/". 'preitem_' . $sellercd . '.' .".*", GLOB_NOSORT) as $filename) {
                @unlink($filename);
            }
            //--
            
            $this->fileUpload->setName('downfile'); // アップロードフィールド名
            $this->fileUpload->setFilemode('0666');
            //$mimeType     = $this->fileUpload->getMimeType();
            //$filesize     = $this->fileUpload->getFilesize();
            $originalName = $this->fileUpload->getOriginalName(); // 元ファイル名
            if (isset($originalName[0]) && $originalName[0]) {
                $pathinfo = pathInfo($originalName[0]);
                $extension = $pathinfo['extension'];
                $filenm =  'preitem_' . $sellercd . '.' . $pathinfo['extension'];
                
                $dest = IMAGE_WORKDIR ."/". $filenm;
                $this->fileUpload->move(0, $dest);
            } else {
                $errorList -> add(1, "ダウンロード商品ファイルが指定されていません。");
                return 'input';
            }
            
        }
        // 過去商品ファイル削除
        foreach (glob(IMAGE_WORKDIR ."/". 'preitem_' . $sellercd . '.' ."[SML].*", GLOB_NOSORT) as $filename) {
            @unlink($filename);
        }
        $this->setImages("image_s", $sellercd . "S");
        $this->setImages("image_m", $sellercd . "M");
        $this->setImages("image_l", $sellercd . "L");
        
        return 'success';
    }
    
    function setImages($terget, $filename) {
        $this->fileUpload->setName($terget); // アップロードフィールド名
        $this->fileUpload->setFilemode('0666');
        //$mimeType     = $this->fileUpload->getMimeType();
        //$filesize     = $this->fileUpload->getFilesize();
        $originalName = $this->fileUpload->getOriginalName(); // 元ファイル名
        if (isset($originalName[0]) && $originalName[0]) {
            $pathinfo = pathInfo($originalName[0]);
            $extension = $pathinfo['extension'];
            $filenm =  'preitem_' . $filename . '.jpg';
            
            $dest = IMAGE_WORKDIR ."/". $filenm;
            $this->fileUpload->move(0, $dest);
        } else {
            //$errorList -> add(1, "ダウンロード商品ファイルが指定されていません。");
            //return 'input';
            return false;
        }
        return true;
    }
    
    function setBasicOption() {
        return $this->itemupdate->getOptionList(100,200);
    }
    function setStructOption() {
        return $this->itemupdate->getOptionList(200,300);
    }


    function getCastname($params)
    {
        return $this->castnm[$params["itemcd"]];
    }

    function getGenrename($params)
    {
        return $this->genrenm[$params["itemcd"]];
    }


    // 名前取得
    function getMakernm()
    {
        return $this->itemupdate->getMakernm($this->makercd);
    }

    function getGenreCheckbox() {
        $genre["l"] = $this->view->getGenreTreeAll();
        $genre["s"] = $this->view->getGenrecdForItemcd($this->result["itemcd"]);
        return $genre;
    }
    function getGenrenmList()
    {
        if (!empty($this->genre)) {
            if (is_array($this->genre)) {
                return $this->view->getGenreTree($this->genre);
            }
        }
        return "";
    }
}
?>
