<input type="text" size="20" name="partner[<?php 
echo $item['username'];
?>
][date_start]" value="" class="calendarSelectDate">
      </div>
      
      <div class="fieldgroup">
        <label>End Date:</label>
        <input type="text" size="20" name="partner[<?php 
echo $item['username'];
?>
][date_end]" value="" class="calendarSelectDate">
      </div>
      
      <?php 
$fields =& GetUserPartnerFields($item);
foreach ($fields as $field) {
    ArrayHSC($field);
    AdminFormField($field);
    if ($field['request_only'] && IsEmptyString($field['value'])) {
        continue;
    }
    ?>
        
          <div class="fieldgroup">
            <?php 
    if ($field['request_only']) {
        ?>
              <label for="<?php 
        echo $field['name'];
        ?>
Esempio n. 2
0
function txPartnerRequestAdd()
{
    global $C, $DB, $L, $t, $domain;
    $v = new Validator();
    $v->Register($_REQUEST['email'], V_EMAIL, $L['INVALID_EMAIL']);
    $v->Register($_REQUEST['name'], V_EMPTY, sprintf($L['REQUIRED_FIELD'], $L['YOUR_NAME']));
    $v->Register($_REQUEST['username'], V_REGEX, $L['INVALID_USERNAME'], '~^[a-z0-9_]+~i');
    $v->Register($_REQUEST['username'], V_LENGTH, sprintf($L['USERNAME_LENGTH'], 3, 32), '3,32');
    // Validation of user defined fields
    $fields =& GetUserPartnerFields();
    foreach ($fields as $field) {
        if ($field['on_request']) {
            if ($field['required_request']) {
                $v->Register($_REQUEST[$field['name']], V_EMPTY, sprintf($L['REQUIRED_FIELD'], $field['label']));
            }
            if (!IsEmptyString($_REQUEST[$field['name']]) && $field['validation']) {
                $v->Register($_REQUEST[$field['name']], $field['validation'], $field['validation_message'], $field['validation_extras']);
            }
        }
    }
    // Check captcha code
    if ($C['request_captcha']) {
        VerifyCaptcha($v);
    }
    // Check if this username exists
    if ($DB->Count('SELECT COUNT(*) FROM `tx_partners` WHERE `username`=?', array($_REQUEST['username']))) {
        $v->SetError($L['USERNAME_TAKEN']);
    }
    // Check if this e-mail address already exists
    if ($DB->Count('SELECT COUNT(*) FROM `tx_partners` WHERE `email`=?', array($_REQUEST['email']))) {
        $v->SetError($L['EXISTING_REQUEST']);
    }
    // Check blacklist
    $blacklisted = CheckBlacklistPartner($_REQUEST);
    if ($blacklisted !== FALSE) {
        $v->SetError(sprintf($blacklisted[0]['reason'] ? $L['BLACKLISTED_REASON'] : $L['BLACKLISTED'], $blacklisted[0]['match'], $blacklisted[0]['reason']));
    }
    if (!$v->Validate()) {
        return $v->ValidationError('txShPartnerRequest', TRUE);
    }
    // Insert partner data
    $DB->Update('INSERT INTO `tx_partners` VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', array($_REQUEST['username'], sha1(RandomPassword()), $_REQUEST['name'], $_REQUEST['email'], $_SERVER['REMOTE_ADDR'], MYSQL_NOW, null, null, null, $C['submissions_per_person'], $C['gallery_weight'], null, 0, null, 0, 0, 0, 'pending', null, null, 0, 0, 0, 1, 0));
    // Insert user-defined fields
    $query_data = CreateUserInsert('tx_partner_fields', $_REQUEST);
    $DB->Update('INSERT INTO `tx_partner_fields` VALUES (' . $query_data['bind_list'] . ')', $query_data['binds']);
    $t->assign_by_ref('request', $_REQUEST);
    $t->assign_by_ref('user_fields', $fields);
    $t->display($domain['template_prefix'] . 'partner-request-complete.tpl');
    // See if we need to e-mail any administrators
    $requests_waiting = $DB->Count('SELECT COUNT(*) FROM `tx_partners` WHERE `status`=?', array('pending'));
    $t->assign('requests_waiting', $requests_waiting);
    $administrators =& $DB->FetchAll('SELECT * FROM `tx_administrators`');
    foreach ($administrators as $administrator) {
        if ($administrator['requests_waiting'] > 0) {
            if ($administrator['notifications'] & E_PARTNER_REQUEST && $requests_waiting % $administrator['requests_waiting'] == 0) {
                SendMail($administrator['email'], 'email-admin-requests.tpl', $t);
            }
        }
    }
}