public function execute() { $listing_type = new SJB_ListingType($_REQUEST); $add_listing_type_form = new SJB_Form($listing_type); $form_is_submitted = SJB_Request::getVar('action') == 'add'; $errors = null; if ($form_is_submitted && $add_listing_type_form->isDataValid($errors)) { SJB_ListingTypeManager::saveListingType($listing_type); $this->createListingTypePage($listing_type); $listingTypeID = $listing_type->getID(); if (in_array($listingTypeID, array('Job', 'Resume'))) { $title = $listing_type->getPropertyValue('name'); } else { $title = $listing_type->getPropertyValue('name') . ' Listing'; } $pageInfo = array('page_id' => 'Post' . $listingTypeID, 'page_name' => 'Post ' . $title); $page = new SJB_PostingPages($pageInfo, $listing_type->getSID()); SJB_PostingPagesManager::savePage($page); SJB_PageManager::addPage(array('uri' => '/' . strtolower($listingTypeID) . '-preview/', 'module' => 'classifieds', 'function' => 'display_my_listing', 'template' => '', 'title' => $title . ' Preview', 'access_type' => 'user', 'parameters' => array('display_template' => 'display_listing.tpl'), 'keywords' => '', 'description' => '', 'pass_parameters_via_uri' => 1)); SJB_PageManager::addPage(array('uri' => '/my-' . strtolower($listingTypeID) . '-details/', 'module' => 'classifieds', 'function' => 'display_my_listing', 'template' => '', 'title' => 'My ' . $title . ' Details', 'access_type' => 'user', 'parameters' => array('display_template' => 'display_listing.tpl'), 'keywords' => '', 'description' => '', 'pass_parameters_via_uri' => 1)); SJB_PageManager::addPage(array('uri' => '/print-my-' . strtolower($listingTypeID) . '/', 'module' => 'classifieds', 'function' => 'display_my_listing', 'template' => 'blank.tpl', 'title' => 'Print ' . $title, 'access_type' => 'user', 'parameters' => array('display_template' => 'print_listing.tpl', 'listing_type_id' => $listingTypeID), 'keywords' => '', 'description' => '', 'pass_parameters_via_uri' => 0)); SJB_PageManager::addPage(array('uri' => '/print-' . strtolower($listingTypeID) . '/', 'module' => 'classifieds', 'function' => 'display_listing', 'template' => 'blank.tpl', 'title' => 'Print ' . $title, 'access_type' => 'user', 'parameters' => array('display_template' => 'print_listing.tpl', 'listing_type_id' => $listingTypeID), 'keywords' => '', 'description' => '', 'pass_parameters_via_uri' => 0)); SJB_PageManager::addPage(array('uri' => '/manage-' . strtolower($listingTypeID) . '/', 'module' => 'classifieds', 'function' => 'manage_listing', 'template' => '', 'title' => 'Manage ' . $title, 'access_type' => 'user', 'parameters' => array(), 'keywords' => '', 'description' => '', 'pass_parameters_via_uri' => 1)); SJB_PageManager::addPage(array('uri' => '/edit-' . strtolower($listingTypeID) . '/', 'module' => 'classifieds', 'function' => 'edit_listing', 'template' => '', 'title' => 'Edit ' . $title, 'access_type' => 'user', 'parameters' => '', 'keywords' => '', 'description' => '', 'pass_parameters_via_uri' => 0)); $breadCrumbs = new SJB_Breadcrumbs(); $parentId = $breadCrumbs->getElementByUri('/my-listings/'); $uri = '/my-listings/' . $listingTypeID . '/'; $breadCrumbs->addElement('My ' . $title . 's', $uri, $parentId); $newBreadcrumbId = $breadCrumbs->getElementByUri($uri); $breadCrumbs->addElement('My ' . $title . ' Preview', '/my-' . strtolower($listingTypeID) . '-details/', $newBreadcrumbId); $breadCrumbs->addElement('Edit ' . $title, '/edit-' . strtolower($listingTypeID) . '/', $newBreadcrumbId); $breadCrumbs->addElement('Manage ' . $title, '/manage-' . strtolower($listingTypeID) . '/', $newBreadcrumbId); SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/listing-types/"); } else { $template_processor = SJB_System::getTemplateProcessor(); $template_processor->assign("errors", $errors); $add_listing_type_form->registerTags($template_processor); $template_processor->assign("form_fields", $add_listing_type_form->getFormFieldsInfo()); $template_processor->display("add_listing_type.tpl"); } }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $passed_parameters_via_uri = SJB_Request::getVar('passed_parameters_via_uri', false); $listing_type_id = ''; $action = SJB_Request::getVar('action', 'list'); $pageSID = SJB_Request::getVar('page_sid', 0); if ($passed_parameters_via_uri) { $passed_parameters_via_uri = SJB_UrlParamProvider::getParams(); $listing_type_id = isset($passed_parameters_via_uri[0]) ? $passed_parameters_via_uri[0] : null; $action = isset($passed_parameters_via_uri[1]) ? $passed_parameters_via_uri[1] : $action; $pageSID = isset($passed_parameters_via_uri[2]) ? $passed_parameters_via_uri[2] : $pageSID; } $listing_type_sid = SJB_ListingTypeManager::getListingTypeSIDByID($listing_type_id); $submit = SJB_Request::getVar('submit', false); $errors = array(); $template = 'posting_pages.tpl'; if ($listing_type_sid) { $listingTypeInfo = SJB_ListingTypeManager::getListingTypeInfoBySID($listing_type_sid); switch ($action) { case 'new': $page = new SJB_PostingPages($_REQUEST, $listing_type_sid); $form = new SJB_Form($page); $form->registerTags($tp); $form_fields = $form->getFormFieldsInfo(); if ($submit) { $addValidParam = array('field' => 'listing_type_sid', 'value' => $listing_type_sid); if ($form->isDataValid($errors, $addValidParam)) { SJB_PostingPagesManager::savePage($page); SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/posting-pages/" . strtolower($listingTypeInfo['id']) . "/added"); } } $tp->assign("form_fields", $form_fields); $template = 'input_page_form.tpl'; break; case 'edit': $template = 'input_page_form.tpl'; $field_action = SJB_Request::getVar('field_action'); $pageInfo = SJB_PostingPagesManager::getPageInfoBySID($pageSID); $pageInfo = array_merge($pageInfo, $_REQUEST); $page = new SJB_PostingPages($pageInfo, $listing_type_sid); $page->setSID($pageSID); $form = new SJB_Form($page); $form->registerTags($tp); $form_fields = $form->getFormFieldsInfo(); if ($submit) { $addValidParam = array('field' => 'listing_type_sid', 'value' => $listing_type_sid); if ($form->isDataValid($errors, $addValidParam)) { SJB_PostingPagesManager::savePage($page); $pageInfo = SJB_PostingPagesManager::getPageInfoBySID($pageSID); if ($submit == 'save') { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/posting-pages/" . $listing_type_id . "/"); } } } //echo "field_action: $field_action<br>"; exit; switch ($field_action) { case 'add_fields': $listing_fields = SJB_Request::getVar('listing_fields', array()); foreach ($listing_fields as $listing_field) { SJB_PostingPagesManager::addListingFieldOnPage($listing_field, $pageSID, $listing_type_sid); } break; case 'move_down': $field_sid = SJB_Request::getVar('field_sid', null); SJB_PostingPagesManager::moveDownFieldBySID($field_sid, $pageSID); break; case 'move_up': $field_sid = SJB_Request::getVar('field_sid', null); SJB_PostingPagesManager::moveUpFieldBySID($field_sid, $pageSID); break; case 'remove': SJB_PostingPagesManager::removeFieldFromPageById(SJB_Request::getVar('relationId', null), $listing_type_sid); break; case 'move': $field_sid = SJB_Request::getVar('field_sid', null); $movePageID = SJB_Request::getVar('movePageID', false); if ($movePageID !== false) { SJB_PostingPagesManager::moveFieldToPade($field_sid, $movePageID, $listing_type_sid); } $template = 'move_field.tpl'; break; case 'save_order': $item_order = SJB_Request::getVar('item_order', null); SJB_PostingPagesManager::saveNewJobFieldsOrder($item_order, $pageSID); break; } $listing_fields = SJB_PostingPagesManager::getListingFieldsInfo($listing_type_sid); $fieldsOnPage = SJB_PostingPagesManager::getAllFieldsByPageSID($pageSID); $pages = SJB_PostingPagesManager::getPagesByListingTypeSID($listing_type_sid); $tp->assign('pageInfo', $pageInfo); $tp->assign('pages', $pages); $tp->assign('countPages', count($pages)); $tp->assign("pageSID", $pageSID); $tp->assign("fieldsOnPage", $fieldsOnPage); $tp->assign("form_fields", $form_fields); $tp->assign("listing_fields", $listing_fields); break; case 'added': $action = 'list'; break; case 'modified': $action = 'list'; break; case 'move_up': SJB_PostingPagesManager::moveUpPageBySID($pageSID); $action = 'list'; break; case 'move_down': SJB_PostingPagesManager::moveDownPageBySID($pageSID); $action = 'list'; break; case 'delete': $countPages = SJB_PostingPagesManager::getNumPagesByListingTypeSID($listing_type_sid); if ($countPages > 1) { SJB_PostingPagesManager::deletePageBySID($pageSID); } $action = 'list'; break; } if ($action == 'list') { $pages = SJB_PostingPagesManager::getPagesByListingTypeSID($listing_type_sid); $tp->assign('pages', $pages); $tp->assign('countPages', count($pages)); $template = 'posting_pages.tpl'; } $tp->assign('listingTypeInfo', $listingTypeInfo); } else { $errors['UNDEFINED_LISTING_TYPE_ID'] = 1; } $tp->assign('action', $action); $tp->assign('errors', $errors); $tp->display($template); }