function submit($data, $form)
 {
     $member = Member::currentUser();
     if (!$member || !$member->inGroup("ADMIN")) {
         $form->setMessage("You need to be logged as an admin to send this email.", "bad");
         return Controller::curr()->redirectBack();
     }
     $data = Convert::raw2sql($data);
     $page = null;
     if (isset($data["ModuleProductID"])) {
         $page = ModuleProduct::get()->byID(intval($data["ModuleProductID"]));
     }
     if (!$page) {
         $form->setMessage("Can not find the right page for saving this email.", "bad");
         return Controller::curr()->redirectBack();
     }
     $email = new ModuleProductEmail();
     $form->saveInto($email);
     $email->write();
     if (Director::is_ajax()) {
         return "mail sent!";
     } else {
         return Controller::curr()->redirect($page->Link());
     }
 }
 /**
  * Display a wildcard in the back end
  * @return string
  */
 public function generate()
 {
     if (TL_MODE == 'BE') {
         $objTemplate = new \BackendTemplate('be_wildcard');
         $objTemplate->wildcard = '### ' . utf8_strtoupper($GLOBALS['TL_LANG']['FMD']['product_detail'][0]) . ' ###';
         $objTemplate->title = $this->headline;
         $objTemplate->id = $this->id;
         $objTemplate->link = $this->name;
         $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id;
         return $objTemplate->parse();
     }
     // Set the item from the auto_item parameter
     if (!isset($_GET['items']) && $GLOBALS['TL_CONFIG']['useAutoItem'] && isset($_GET['auto_item'])) {
         \Input::setGet('items', \Input::get('auto_item'));
     }
     $this->catalogs = $this->sortOutProtected(deserialize($this->catalogs));
     return parent::generate();
 }
 /**
  * Display a wildcard in the back end
  * @return string
  */
 public function generate()
 {
     if (TL_MODE == 'BE') {
         $objTemplate = new \BackendTemplate('be_wildcard');
         $objTemplate->wildcard = '### ' . utf8_strtoupper($GLOBALS['TL_LANG']['FMD']['product_list'][0]) . ' ###';
         $objTemplate->title = $this->headline;
         $objTemplate->id = $this->id;
         $objTemplate->link = $this->name;
         $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id;
         return $objTemplate->parse();
     }
     $this->catalogs = $this->sortOutProtected(deserialize($this->catalogs));
     // No catalog available
     if (!is_array($this->catalogs) || empty($this->catalogs)) {
         return '';
     }
     // Show the catalog detail if an item has been selected
     if ($this->product_detailModule > 0 && (isset($_GET['items']) || $GLOBALS['TL_CONFIG']['useAutoItem'] && isset($_GET['auto_item']))) {
         return $this->getFrontendModule($this->product_detailModule, $this->strColumn);
     }
     return parent::generate();
 }
 /**
  * Admin ONLY action
  * to view a list of all developers
  * that have not been contacted yet
  */
 function introemails()
 {
     $i = 0;
     $member = Member::currentUser();
     $dos = new ArrayList();
     if ($member && $member->inGroup("ADMIN")) {
         $modules = ModuleProduct::get()->filter(array("ShowInSearch" => 1, "ShowInMenus" => 1));
         foreach ($modules as $module) {
             if (!$module->HasEmail() && !$module->HasMemberContact()) {
                 $i++;
                 if ($i < 10) {
                     $dos->push($module);
                 } else {
                     break;
                 }
             }
         }
         return $this->customise(array("Products" => $dos));
     }
     Security::permissionFailure($this, "You need to log in as an Administrator.");
 }
 /**
  *
  * @return Object Product
  */
 function NextProduct()
 {
     return ModuleProduct::get()->where("\"Sort\" > " . $this->Sort . " AND ParentID = " . $this->ParentID)->sort("Sort", "ASC")->limit(1)->first();
 }
 /**
  * Allows validation of fields via specification of a php function for validation which is executed after
  * the form is submitted
  */
 function php($data)
 {
     $valid = true;
     if (isset($data["Code"])) {
         $type = Convert::raw2sql($data["Code"]);
         $extension = '';
         if (Versioned::current_stage() == "Live") {
             $extension = "_Live";
         }
         if (ModuleProduct::get()->filter(array("Code" => $type))->exclude("ModuleProduct", $this->currentID - 0)->count()) {
             $errorMessage = sprintf(_t('Form.CODEALREADYINUSE', "Your code %s is already in use - please check if your code is listed already or use an alternative code."), $type);
             $this->validationError($fieldName = "Code", $errorMessage, "required");
             $valid = false;
         }
     }
     if (!$valid) {
         return false;
     }
     return parent::php($data);
 }