Hallo!
Versuch mal folgende Änderungen:
Sie sind allerdings alle ungetestet, sodass ein Backup der Dateien unbedingt notwendig ist!
/calendar/common.php
ersetzen gegen:
Code: Alles auswählen
public $type = 'cal_date';
public function get_attendant_user()
{
foreach ($this->user_data as $user_id => $user_data)
{
if ($user_data['attendance_mode'] > 0)
{
return $user_id;
}
}
return false;
}
Code: Alles auswählen
if ($this->user_data[$user->id]['notify'] == $notify
&& $this->user_data[$user->id]['attendance_mode'] == $attendance_mode
&& $this->user_data[$user->id]['attendance_comment'] == $attendance_comment)
{
return $this;
}
ersetzen gegen:
Code: Alles auswählen
if (($user_id = $this->get_attendant_user()) && $user_id != $user->id)
{
$attendance_mode = 0;
$attendance_comment = '';
}
if ($this->user_data[$user->id]['notify'] == $notify
&& $this->user_data[$user->id]['attendance_mode'] == $attendance_mode
&& $this->user_data[$user->id]['attendance_comment'] == $attendance_comment)
{
return $this;
}
/calendar/show_date.php
Code: Alles auswählen
foreach ($date->user_data as $user_id => $data)
{
$_user = cal_users::get_user_by_id($user_id);
if ($data['attendance_mode'] > 0)
{
$block_name = 'attendances_yes';
}
else if ($data['attendance_mode'] < 0)
{
$block_name = 'attendances_no';
}
else
{
if (!$data['attendance_comment'])
{
continue;
}
$block_name = 'attendances_other';
}
$template->assign_block_vars($block_name, array(
'USER_ID' => $_user->id,
'USER_NAME' => $_user->name,
'USER_COLOUR' => $_user->colour,
'USER_URL' => $_user->url->get_built(),
'COMMENT' => nl2br($data['attendance_comment'])
));
}
ersetzen gegen:
Code: Alles auswählen
if ($user_id = $date->get_attendant_user())
{
$_user = cal_users::get_user_by_id($user_id);
$template->assign_block_vars('attendance_yes', array(
'USER_ID' => $_user->id,
'USER_NAME' => $_user->name,
'USER_COLOUR' => $_user->colour,
'USER_URL' => $_user->url->get_built(),
'COMMENT' => nl2br($date->user_data[$user_id]['attendance_comment'])
));
}
/styles/prosilver/template/calendar/show_date.html
Code: Alles auswählen
<dt class="attendance_mode">{L_ATTENDANCE}</dt>
<dd class="attendance_mode"><select name="attendance_mode">
<!-- IF ATTENDANCE_MODE > 0 -->
<option value="0">---</option>
<option value="1" selected="selected">{L_ATTENDANCE_YES}</option>
<option value="-1">{L_ATTENDANCE_NO}</option>
<!-- ELSEIF ATTENDANCE_MODE < 0 -->
<option value="0">---</option>
<option value="1">{L_ATTENDANCE_YES}</option>
<option value="-1" selected="selected">{L_ATTENDANCE_NO}</option>
<!-- ELSE -->
<option value="0" selected="selected">---</option>
<option value="1">{L_ATTENDANCE_YES}</option>
<option value="-1">{L_ATTENDANCE_NO}</option>
<!-- ENDIF -->
</select></dd>
<dt class="attendance_comment">{L_ATTENDANCE_COMMENT}:</dt>
<dd class="attendance_comment"><textarea name="own_attendance_comment" rows="7" cols="15">{ATTENDANCE_COMMENT}</textarea></dd>
<dd class="clear"><hr /></dd>
ersetzen gegen:
Code: Alles auswählen
<!-- IF attendance_yes == 0 -->
<dt class="attendance_mode">{L_ATTENDANCE}</dt>
<dd class="attendance_mode"><select name="attendance_mode">
<!-- IF ATTENDANCE_MODE > 0 -->
<option value="0">---</option>
<option value="1" selected="selected">{L_ATTENDANCE_YES}</option>
<option value="-1">{L_ATTENDANCE_NO}</option>
<!-- ELSEIF ATTENDANCE_MODE < 0 -->
<option value="0">---</option>
<option value="1">{L_ATTENDANCE_YES}</option>
<option value="-1" selected="selected">{L_ATTENDANCE_NO}</option>
<!-- ELSE -->
<option value="0" selected="selected">---</option>
<option value="1">{L_ATTENDANCE_YES}</option>
<option value="-1">{L_ATTENDANCE_NO}</option>
<!-- ENDIF -->
</select></dd>
<dt class="attendance_comment">{L_ATTENDANCE_COMMENT}:</dt>
<dd class="attendance_comment"><textarea name="own_attendance_comment" rows="7" cols="15">{ATTENDANCE_COMMENT}</textarea></dd>
<dd class="clear"><hr /></dd>
<!-- ENDIF -->
Code: Alles auswählen
<dt class="attendances">{L_ATTENDANCES}</dt>
<dd class="attendances"><dl>
<!-- BEGIN attendances_yes -->
<dt class="attendance_yes" title="{L_ATTENDANCE_YES}" onmouseover="show_attendance_comment('{attendances_yes.USER_ID}');">
<a href="{attendances_yes.USER_URL}" style="color: #{attendances_yes.USER_COLOUR};">{attendances_yes.USER_NAME}</a>
</dt>
<!-- IF attendances_yes.COMMENT -->
<dd id="attendance_comment_{attendances_yes.USER_ID}">
{attendances_yes.COMMENT}
</dd>
<!-- ENDIF -->
<!-- END attendances_yes -->
<!-- BEGIN attendances_no -->
<dt class="attendance_no" title="{L_ATTENDANCE_NO}" onmouseover="show_attendance_comment('{attendances_no.USER_ID}');">
<a href="{attendances_no.USER_URL}" style="color: #{attendances_no.USER_COLOUR};">{attendances_no.USER_NAME}</a>
</dt>
<!-- IF attendances_no.COMMENT -->
<dd id="attendance_comment_{attendances_no.USER_ID}">
{attendances_no.COMMENT}
</dd>
<!-- ENDIF -->
<!-- END attendances_no -->
<!-- BEGIN attendances_other -->
<dt class="attendance_other" title="{L_ATTENDANCE_OTHER}" onmouseover="show_attendance_comment('{attendances_other.USER_ID}');">
<a href="{attendances_other.USER_URL}" style="color: #{attendances_other.USER_COLOUR};">{attendances_other.USER_NAME}</a>
</dt>
<dd id="attendance_comment_{attendances_other.USER_ID}">
{attendances_other.COMMENT}
</dd>
<!-- END attendances_other -->
<!-- IF .attendances_yes == 0 && .attendances_no == 0 && .attendances_other == 0 -->
<dt>{L_NONE}</dt>
<!-- ENDIF -->
</dl></dd>
<dd id="attendance_comment" style="display: none;"><p>{L_ATTENDANCE_COMMENT}:</p><p> </p></dd>
ersetzen gegen:
Code: Alles auswählen
<dt class="attendances">{L_ATTENDANCES}</dt>
<dd class="attendances"><dl>
<!-- BEGIN attendances_yes -->
<dt class="attendance_yes" title="{L_ATTENDANCE_YES}" onmouseover="show_attendance_comment('{attendances_yes.USER_ID}');">
<a href="{attendances_yes.USER_URL}" style="color: #{attendances_yes.USER_COLOUR};">{attendances_yes.USER_NAME}</a>
</dt>
<!-- IF attendances_yes.COMMENT -->
<dd id="attendance_comment_{attendances_yes.USER_ID}">
{attendances_yes.COMMENT}
</dd>
<!-- ENDIF -->
<!-- BEGINELSE -->
<dt>{L_NONE}</dt>
<!-- ENDIF -->
</dl></dd>
<dd id="attendance_comment" style="display: none;"><p>{L_ATTENDANCE_COMMENT}:</p><p> </p></dd>
Nach diesen Änderungen sollte es nur für einen User möglich sein, sich anzumelden.
(Dies kannst du zunächst auch testen, um im Fehlerfall sagen zu können, wo der Fehler liegt.)
Nun kannst du in der Datei /styles/prosilver/template/calendar/show_date.html mit dem Code
Code: Alles auswählen
<!-- BEGIN attendances_yes -->
<a href="{attendances_yes.USER_URL}" style="color: #{attendances_yes.USER_COLOUR};">{attendances_yes.USER_NAME}</a>
<!-- END attendance_yes -->
Um den Namen des zuerst angemeldeten Users also hinter dem Termin-Namen auszugeben, musst du
ersetzen gegen:
Code: Alles auswählen
<!-- ENDIF --> {NAME}
<!-- BEGIN attendances_yes -->
(<a href="{attendances_yes.USER_URL}" style="color: #{attendances_yes.USER_COLOUR};">{attendances_yes.USER_NAME}</a>)
<!-- END attendance_yes -->
</h3>
<div class="actions">
Um auch in der Terminübersicht den Usernamen hinter dem Terminnamen auszugeben, musst du in der Datei /calendar/common.php
Code: Alles auswählen
$GLOBALS['template']->assign_block_vars('days.events', array(
'NAME' => $_date->name,
'URL' => $_date->url->get_built(),
'CLASSES' => implode(' ', $classes),
'TYPE' => $_date->type,
'IS_EQUAL' => $_date->copy_name_and_desc,
'VISIBLE' => $visible,
'INVITED' => $current_user->is_invited_to_date($_date),
'ATTENDANCE_MODE' => isset($_date->user_data[$current_user->id]) ? $_date->user_data[$current_user->id]['attendance_mode'] : 0,
'NOTIFY' => $current_user->gets_notified_of_date($_date)
));
ersetzen gegen:
Code: Alles auswählen
if ($attendant_user_id = $_date->get_attendant_user())
{
$attendant_user = cal_users::get_user_by_id($attendant_user_id);
}
$GLOBALS['template']->assign_block_vars('days.events', array(
'NAME' => $_date->name,
'URL' => $_date->url->get_built(),
'CLASSES' => implode(' ', $classes),
'TYPE' => $_date->type,
'IS_EQUAL' => $_date->copy_name_and_desc,
'VISIBLE' => $visible,
'INVITED' => $current_user->is_invited_to_date($_date),
'ATTENDANCE_MODE' => isset($_date->user_data[$current_user->id]) ? $_date->user_data[$current_user->id]['attendance_mode'] : 0,
'NOTIFY' => $current_user->gets_notified_of_date($_date),
'ATTENDANT_USER' => $attendant_user_id,
'ATTENDANT_USER_NAME' => $attendant_user_id ? $attendant_user->name : '',
'ATTENDANT_USER_COLOUR' => $attendant_user_id ? $attendant_user->colour : '',
'ATTENDANT_USER_URL' => $attendant_user_id ? $attendant_user->url->get_built()
));
/styles/prosilver/template/calendar/dates_list.html
Code: Alles auswählen
<dt class="name"><a href="{days.events.URL}">{days.events.NAME}</a></dt>
ersetzen gegen:
Code: Alles auswählen
<dt class="name"><a href="{days.events.URL}">{days.events.NAME}</a></dt>
<!-- IF days.events.ATTENDANT_USER -->
(<a href="{days.events.ATTENDANT_USER_URL}" style="color: #{days.events.ATTENDANT_USER_COLOUR};">{days.events.ATTENDANT_USER_NAME}</a>)
<!-- ENDIF -->
Wie gesagt: alle Änderungen sind ungetestet!
@Dabsy: was geht nicht mit welchem Kalender?