/** * Event: core.posting_modify_template_vars * * Send the Trader type on edits or preview * * @param phpbbEvent $event */ public function posting_modify_template_vars(phpbbEvent $event) { $mode = $enable_trader = $topic_id = $post_id = $topic_first_post_id = false; $data = $event->get_data(); if (empty($data['post_data']['enabled_trader_types'])) { return; } if (!empty($data['mode'])) { $mode = $data['mode']; } if ($mode == 'reply') { return; } if (!empty($data['post_data']['topic_id'])) { $topic_id = $data['post_data']['topic_id']; } if (!empty($data['post_data']['post_id'])) { $post_id = $data['post_data']['post_id']; } if (!empty($data['post_data']['topic_first_post_id'])) { $topic_first_post_id = $data['post_data']['topic_first_post_id']; } $_post = $this->request->get_super_global(phpbbRequest::POST); $type_bitfield = $data['post_data']['enabled_trader_types']; $data['page_data']['TRADER_BUY'] = $this->manager->isSetBuy($type_bitfield); $data['page_data']['TRADER_SELL'] = $this->manager->isSetSell($type_bitfield); $data['page_data']['TRADER_TRADE'] = $this->manager->isSetTrade($type_bitfield); if ($mode == 'post') { $data['page_data']['TRADER_SHOW_FIELD'] = true; if (!empty($data['submit']) || !empty($data['preview'])) { // get value from the post $data['page_data']['TRADER_TYPE'] = $_post['prefixfield']; } $event->set_data($data); } else { if ($mode == 'edit') { // set the trader type if ($topic_id && $post_id && $post_id == $topic_first_post_id) { if (!empty($data['submit']) || !empty($data['preview'])) { // get value from the post $data['page_data']['TRADER_TYPE'] = $_post['prefixfield']; } else { // get value from the db $data['page_data']['TRADER_TYPE'] = $data['post_data']['topic_trader_type']; } $data['page_data']['TRADER_SHOW_FIELD'] = true; $event->set_data($data); } else { return; // not the first post! do nothing } } } }