27 $this->_oTemplate->pageStart();
29 $sClass = $this->_aModule[
'class_prefix'] .
'PageMain';
30 $oPage =
new $sClass ($this);
32 $this->_oTemplate->addCss (array(
'unit.css',
'main.css',
'twig.css'));
33 $this->_oTemplate->pageCode(
$sTitle,
false,
false);
41 $aRestriction = array (
42 'id' => $this->_oDb->getMediaIds($aDataEntry[$this->_oDb->_sFieldId],
'files'),
44 if (!$aRestriction[
'id']) {
45 $this->_oTemplate->displayNoData ();
49 $this->_oTemplate->pageStart();
51 echo
ChWsbService::call (
'files',
'get_browse_block', array($aRestriction, $this->_oConfig->getBaseUri() .
'files/' . $sUri),
'Search');
53 $this->_oTemplate->pageCode(
$sTitle);
61 $aRestriction = array (
62 'id' => $this->_oDb->getMediaIds($aDataEntry[$this->_oDb->_sFieldId],
'videos'),
64 if (!$aRestriction[
'id']) {
65 $this->_oTemplate->displayNoData ();
69 $this->_oTemplate->pageStart();
71 echo
ChWsbService::call (
'videos',
'get_browse_block', array($aRestriction, $this->_oConfig->getBaseUri() .
'videos/' . $sUri),
'Search');
73 $this->_oTemplate->pageCode(
$sTitle);
81 $aRestriction = array (
82 'id' => $this->_oDb->getMediaIds($aDataEntry[$this->_oDb->_sFieldId],
'sounds'),
84 if (!$aRestriction[
'id']) {
85 $this->_oTemplate->displayNoData ();
89 $this->_oTemplate->pageStart();
91 echo
ChWsbService::call (
'sounds',
'get_browse_block', array($aRestriction, $this->_oConfig->getBaseUri() .
'sounds/' . $sUri),
'Search');
93 $this->_oTemplate->pageCode(
$sTitle);
101 $aRestriction = array (
102 'id' => $this->_oDb->getMediaIds($aDataEntry[$this->_oDb->_sFieldId],
'images'),
104 if (!$aRestriction[
'id']) {
105 $this->_oTemplate->displayNoData ();
109 $this->_oTemplate->pageStart();
111 echo
ChWsbService::call (
'photos',
'get_browse_block', array($aRestriction, $this->_oConfig->getBaseUri() .
'photos/' . $sUri),
'Search');
113 $this->_oTemplate->pageCode(
$sTitle);
122 $sClass = $this->_aModule[
'class_prefix'] .
'Cmts';
123 $o =
new $sClass ($this->_sPrefix, (
int)$aDataEntry[$this->_oDb->_sFieldId]);
124 if (!
$o->isEnabled()) {
125 $this->_oTemplate->displayPageNotFound ();
129 $sRet =
$o->getCommentsFirst ();
131 $this->_oTemplate->pageStart();
135 $this->_oTemplate->pageCode(
$sTitle, 0, 0);
144 if (!$this->$sFuncAllowed($aDataEntry)) {
145 $this->_oTemplate->displayAccessDenied ();
154 $aProfiles = array ();
155 $iNum = $this->_oDb->$sFuncDbGetFans($aProfiles, $aDataEntry[$this->_oDb->_sFieldId], $iStart,
$iPerPage);
156 if (!$iNum || !$aProfiles) {
157 $this->_oTemplate->displayNoData ();
166 $sMainContent .= $oChTemplSearchProfile->displaySearchUnit(
$aProfile);
168 $sRet =
$GLOBALS[
'oFunctions']->centerContent($sMainContent,
'.searchrow_block_simple');
169 $sRet .=
'<div class="clear_both"></div>';
172 $sUrlStart = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . $sUrlBrowse . $aDataEntry[$this->_oDb->_sFieldUri];
173 $sUrlStart .= (
false === strpos($sUrlStart,
'?') ?
'?' :
'&');
176 'page_url' => $sUrlStart .
'page={page}&per_page={per_page}' . (
false !==
ch_get($this->sFilterName) ?
'&' . $this->sFilterName .
'=' .
ch_get($this->sFilterName) :
''),
180 'on_change_per_page' =>
"document.location='" . $sUrlStart .
"page=1&per_page=' + this.value + '" . (
false !==
ch_get($this->sFilterName) ?
'&' . $this->sFilterName .
'=' .
ch_get($this->sFilterName) .
"';":
"';"),
183 $sRet .= $oPaginate->getPaginate();
185 $this->_oTemplate->pageStart();
189 $this->_oTemplate->pageCode(
$sTitle,
false,
false);
197 $this->_oTemplate->pageStart();
200 $sClass = $this->_aModule[
'class_prefix'] .
'PageView';
201 $oPage =
new $sClass ($this, $aDataEntry);
203 if ($aDataEntry[$this->_oDb->_sFieldStatus] ==
'pending') {
204 $aVars = array (
'msg' => $sMsgPendingApproval);
205 echo $this->_oTemplate->parseHtmlByName (
'pending_approval_plank',
$aVars);
211 $sClass = $this->_aModule[
'class_prefix'] .
'Cmts';
212 $oCmts =
new $sClass ($this->_sPrefix, 0);
214 $this->_oTemplate->setPageDescription (substr(strip_tags($aDataEntry[$this->_oDb->_sFieldDescription]), 0, 255));
215 $this->_oTemplate->addPageKeywords ($aDataEntry[$this->_oDb->_sFieldTags]);
217 $this->_oTemplate->addJsTranslation(array(
'_Are_you_sure'));
219 $this->_oTemplate->addCss (
'view.css');
220 $this->_oTemplate->addCss (
'main.css');
221 $this->_oTemplate->addCss (
'entry_view.css');
222 $this->_oTemplate->addCss (
'unit_fan.css');
223 $this->_oTemplate->pageCode($aDataEntry[$this->_oDb->_sFieldTitle],
false,
false);
226 new ChWsbViews($this->_sPrefix, $aDataEntry[$this->_oDb->_sFieldId]);
234 if (!$this->$sIsAllowedFuncName($aDataEntry)) {
235 $this->_oTemplate->displayAccessDenied ();
239 $this->_oTemplate->pageStart();
241 $iEntryId = $aDataEntry[$this->_oDb->_sFieldId];
243 ch_import (
'FormUploadMedia', $this->_aModule);
244 $sClass = $this->_aModule[
'class_prefix'] .
'FormUploadMedia';
245 $oForm =
new $sClass ($this, $aDataEntry[$this->_oDb->_sFieldAuthorId], $iEntryId, $aDataEntry, $sMedia, $aMediaFields);
246 $oForm->initChecker($aDataEntry);
248 if (
$oForm->isSubmittedAndValid ()) {
250 $oForm->processMedia($iEntryId, $this->_iProfileId);
252 $this->$sIsAllowedFuncName($aDataEntry,
true);
254 header (
'Location:' . CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri]);
263 $this->_oTemplate->addCss (
'main.css');
264 $this->_oTemplate->addCss (
'forms_extra.css');
265 $this->_oTemplate->pageCode(
$sTitle);
270 $iEntryId = (int)$iEntryId;
271 if (!($aDataEntry = $this->_oDb->getEntryById($iEntryId))) {
272 $this->_oTemplate->displayPageNotFound ();
276 if (!$this->isAllowedBroadcast($aDataEntry)) {
277 $this->_oTemplate->displayAccessDenied ();
281 $this->_oTemplate->pageStart();
283 $GLOBALS[
'oTopMenu']->setCustomSubHeader($aDataEntry[$this->_oDb->_sFieldTitle]);
284 $GLOBALS[
'oTopMenu']->setCustomVar($this->_sPrefix.
'_view_uri', $aDataEntry[$this->_oDb->_sFieldUri]);
285 $GLOBALS[
'oTopMenu']->setCustomSubHeaderUrl(CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri]);
286 $GLOBALS[
'oTopMenu']->setCustomBreadcrumbs(array(
287 _t(
'_'.$this->_sPrefix) => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'home/',
288 $aDataEntry[$this->_oDb->_sFieldTitle] => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri],
292 $aRecipients = $this->_oDb->getBroadcastRecipients ($iEntryId);
294 echo
MsgBox ($sMsgNoRecipients);
295 $this->_oTemplate->pageCode($sMsgNoRecipients,
true,
true);
299 ch_import (
'FormBroadcast', $this->_aModule);
300 $sClass = $this->_aModule[
'class_prefix'] .
'FormBroadcast';
304 if (
$oForm->isSubmittedAndValid ()) {
307 if (!$oEmailTemplate) {
308 $this->_oTemplate->displayErrorOccured();
311 $aTemplate = $oEmailTemplate->getTemplate($this->_sPrefix .
'_broadcast');
312 $aTemplateVars = array (
313 'BroadcastTitle' => $this->_oDb->unescape(
$oForm->getCleanValue (
'title')),
314 'BroadcastMessage' => nl2br($this->_oDb->unescape(
$oForm->getCleanValue (
'message'))),
315 'EntryTitle' => $aDataEntry[$this->_oDb->_sFieldTitle],
316 'EntryUrl' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri],
318 $iSentMailsCounter = 0;
320 $iSentMailsCounter +=
sendMail(
$aProfile[
'Email'], $aTemplate[
'Subject'], $aTemplate[
'Body'],
$aProfile[
'ID'], $aTemplateVars);
322 if (!$iSentMailsCounter) {
323 $this->_oTemplate->displayErrorOccured();
329 $this->isAllowedBroadcast($aDataEntry,
true);
330 $this->_oTemplate->addCss (
'main.css');
331 $this->_oTemplate->pageCode($sMsgSent,
true,
true);
337 $this->_oTemplate->addCss (
'main.css');
338 $this->_oTemplate->pageCode(
$sTitle);
347 function _actionInvite ($iEntryId, $sEmailTemplate, $iMaxEmailInvitations, $sMsgInvitationSent, $sMsgNoUsers,
$sTitle)
349 $iEntryId = (int)$iEntryId;
350 if (!($aDataEntry = $this->_oDb->getEntryById($iEntryId))) {
351 $this->_oTemplate->displayPageNotFound ();
355 if (!$this->isAllowedSendInvitation ($aDataEntry)) {
356 $this->_oTemplate->displayAccessDenied ();
360 $this->_oTemplate->pageStart();
362 $GLOBALS[
'oTopMenu']->setCustomSubHeader($aDataEntry[$this->_oDb->_sFieldTitle]);
363 $GLOBALS[
'oTopMenu']->setCustomVar($this->_sPrefix.
'_view_uri', $aDataEntry[$this->_oDb->_sFieldUri]);
364 $GLOBALS[
'oTopMenu']->setCustomSubHeaderUrl(CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri]);
365 $GLOBALS[
'oTopMenu']->setCustomBreadcrumbs(array(
366 _t(
'_'.$this->_sPrefix) => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'home/',
367 $aDataEntry[$this->_oDb->_sFieldTitle] => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri],
368 $sTitle . $aDataEntry[$this->_oDb->_sFieldTitle] =>
'',
375 if (
$oForm->isSubmittedAndValid ()) {
381 $aTemplate = $oEmailTemplate->getTemplate($sEmailTemplate);
385 if (
false !==
ch_get(
'inviter_users') && is_array(
ch_get(
'inviter_users'))) {
386 $aInviteUsers =
ch_get(
'inviter_users');
387 foreach ($aInviteUsers
as $iRecipient) {
389 $aPlus = array_merge (array (
'NickName' =>
' ' .
getNickName($aRecipient[
'ID'])), $aPlusOriginal);
390 $iSuccess +=
sendMail(trim($aRecipient[
'Email']), $aTemplate[
'Subject'], $aTemplate[
'Body'],
'', $aPlus) ? 1 : 0;
395 $iMaxCount = $iMaxEmailInvitations;
396 $aEmails = preg_split (
"#[,\s\\b]+#",
ch_get(
'inviter_emails'));
397 $aPlus = array_merge (array (
'NickName' =>
''), $aPlusOriginal);
398 if ($aEmails && is_array($aEmails)) {
399 foreach ($aEmails
as $sEmail) {
400 if (strlen($sEmail) < 5)
402 $iRet =
sendMail(trim($sEmail), $aTemplate[
'Subject'], $aTemplate[
'Body'],
'', $aPlus) ? 1 : 0;
404 if ($iRet && 0 == --$iMaxCount)
409 $sMsg = sprintf($sMsgInvitationSent, $iSuccess);
411 $this->_oTemplate->addCss (
'main.css');
412 $this->_oTemplate->pageCode (
$sMsg,
true,
false);
417 $this->_oTemplate->addCss (
'main.css');
418 $this->_oTemplate->addCss (
'inviter.css');
419 $this->_oTemplate->pageCode(
$sTitle . $aDataEntry[$this->_oDb->_sFieldTitle]);
424 $iYear = (int)$iYear;
425 $iMonth = (int)$iMonth;
427 if (!$this->isAllowedBrowse()) {
428 $this->_oTemplate->displayAccessDenied ();
432 $this->_oTemplate->pageStart();
435 $oCalendar =
ch_instance ($this->_aModule[
'class_prefix'] .
'Calendar', array ($iYear, $iMonth, $this->_oDb, $this->_oConfig, $this->_oTemplate));
437 echo $oCalendar->display();
438 $this->_oTemplate->addCss (
'main.css');
439 $this->_oTemplate->pageCode(
$sTitle . $oCalendar->getTitle(),
true,
false);
446 if (0 === strcasecmp($sValue,
$aProfile[
'NickName']) ||
'my' ==
$sMode) {
452 if (!$this->isAllowedBrowse()) {
453 $this->_oTemplate->displayAccessDenied ();
459 ch_import (
'SearchResult', $this->_aModule);
460 $sClass = $this->_aModule[
'class_prefix'] .
'SearchResult';
464 $this->_oTemplate->displayPageNotFound ();
473 $this->_oTemplate->pageStart();
475 if (
$s =
$o->processing()) {
478 $this->_oTemplate->displayNoData ();
482 $this->_oTemplate->addCss (array(
'unit.css',
'main.css',
'twig.css'));
483 $this->_oTemplate->pageCode(
$o->aCurrent[
'title'],
false,
false);
488 if (!$this->isAllowedSearch()) {
489 $this->_oTemplate->displayAccessDenied ();
493 $this->_oTemplate->pageStart();
496 $_GET[
'Keyword'] = $sKeyword;
498 $_GET[
'Category'] = explode(
',', $sCategory);
500 if (is_array(
$_GET[
'Category']) && 1 == count(
$_GET[
'Category']) && !
$_GET[
'Category'][0]) {
501 unset(
$_GET[
'Category']);
505 if ($sCategory || $sKeyword) {
506 $_GET[
'submit_form'] = 1;
509 ch_import (
'FormSearch', $this->_aModule);
510 $sClass = $this->_aModule[
'class_prefix'] .
'FormSearch';
514 if (
$oForm->isSubmittedAndValid ()) {
516 ch_import (
'SearchResult', $this->_aModule);
517 $sClass = $this->_aModule[
'class_prefix'] .
'SearchResult';
518 $o =
new $sClass(
'search',
$oForm->getCleanValue(
'Keyword'),
$oForm->getCleanValue(
'Category'));
521 $this->_oTemplate->displayPageNotFound ();
525 if (
$s =
$o->processing()) {
530 $this->_oTemplate->displayNoData ();
534 $this->isAllowedSearch(
true);
536 $this->_oTemplate->addCss (array(
'unit.css',
'main.css',
'twig.css'));
537 $this->_oTemplate->pageCode(
$o->aCurrent[
'title'],
false,
false);
542 $this->_oTemplate->addCss (
'main.css');
543 $this->_oTemplate->pageCode(
$sTitle);
550 if (!$this->isAllowedAdd()) {
551 $this->_oTemplate->displayAccessDenied ();
555 $this->_oTemplate->pageStart();
559 $this->_oTemplate->addJs (
'main.js');
560 $this->_oTemplate->addCss (
'main.css');
561 $this->_oTemplate->addCss (
'forms_extra.css');
562 $this->_oTemplate->pageCode(
$sTitle);
567 $iEntryId = (int)$iEntryId;
568 if (!($aDataEntry = $this->_oDb->getEntryById($iEntryId))) {
569 $this->_oTemplate->displayPageNotFound ();
573 $GLOBALS[
'oTopMenu']->setCustomSubHeader($aDataEntry[$this->_oDb->_sFieldTitle]);
574 $GLOBALS[
'oTopMenu']->setCustomVar($this->_sPrefix.
'_view_uri', $aDataEntry[$this->_oDb->_sFieldUri]);
575 $GLOBALS[
'oTopMenu']->setCustomSubHeaderUrl(CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri]);
576 $GLOBALS[
'oTopMenu']->setCustomBreadcrumbs(array(
577 _t(
'_'.$this->_sPrefix) => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'home/',
578 $aDataEntry[$this->_oDb->_sFieldTitle] => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri],
582 if (!$this->isAllowedEdit($aDataEntry)) {
583 $this->_oTemplate->displayAccessDenied ();
587 $this->_oTemplate->pageStart();
590 $sClass = $this->_aModule[
'class_prefix'] .
'FormEdit';
591 $oForm =
new $sClass ($this, $aDataEntry[$this->_oDb->_sFieldAuthorId], $iEntryId, $aDataEntry);
592 if (isset($aDataEntry[$this->_oDb->_sFieldJoinConfirmation]))
593 $aDataEntry[$this->_oDb->_sFieldJoinConfirmation] = (int)$aDataEntry[$this->_oDb->_sFieldJoinConfirmation];
595 $oForm->initChecker($aDataEntry);
597 if (
$oForm->isSubmittedAndValid ()) {
599 $sStatus = $this->_oDb->getParam($this->_sPrefix .
'_autoapproval') ==
'on' || $this->
isAdmin() ?
'approved' :
'pending';
600 $aValsAdd = array ($this->_oDb->_sFieldStatus =>
$sStatus);
601 if (
$oForm->update ($iEntryId, $aValsAdd)) {
603 $oForm->processMedia($iEntryId, $this->_iProfileId);
605 $this->isAllowedEdit($aDataEntry,
true);
608 header (
'Location:' . CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri]);
623 $this->_oTemplate->addJs (
'main.js');
624 $this->_oTemplate->addCss (
'main.css');
625 $this->_oTemplate->addCss (
'forms_extra.css');
626 $this->_oTemplate->pageCode(
$sTitle);
631 header(
'Content-type:text/html;charset=utf-8');
633 $iEntryId = (int)$iEntryId;
634 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner($iEntryId, $this->_iProfileId, $this->isAdmin()))) {
639 if (!$this->isAllowedDelete($aDataEntry) || 0 !== strcasecmp($_SERVER[
'REQUEST_METHOD'],
'POST')) {
644 if ($this->_oDb->deleteEntryByIdAndOwner($iEntryId, $this->_iProfileId, $this->isAdmin())) {
645 $this->isAllowedDelete($aDataEntry,
true);
647 $sRedirect = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'browse/' . ($this->_iProfileId ?
'user/' . $this->_oDb->getProfileNickNameById($this->_iProfileId) :
'');
659 header(
'Content-type:text/html;charset=utf-8');
661 $iEntryId = (int)$iEntryId;
662 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner($iEntryId, $this->_iProfileId, $this->isAdmin()))) {
667 if (!$this->isAllowedMarkAsFeatured($aDataEntry) || 0 !== strcasecmp($_SERVER[
'REQUEST_METHOD'],
'POST')) {
672 if ($this->_oDb->markAsFeatured($iEntryId)) {
673 $this->isAllowedMarkAsFeatured($aDataEntry,
true);
675 $sRedirect = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri];
677 echo
MsgBox($aDataEntry[$this->_oDb->_sFieldFeatured] ? $sMsgSuccessRemove : $sMsgSuccessAdd) .
$sJQueryJS;
685 function _actionJoin ($iEntryId,
$iProfileId, $sMsgAlreadyJoined, $sMsgAlreadyJoinedPending, $sMsgJoinSuccess, $sMsgJoinSuccessPending, $sMsgLeaveSuccess)
687 header(
'Content-type:text/html;charset=utf-8');
689 $iEntryId = (int)$iEntryId;
690 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner($iEntryId, 0,
true))) {
695 if (!$this->isAllowedJoin($aDataEntry) || 0 !== strcasecmp($_SERVER[
'REQUEST_METHOD'],
'POST')) {
700 $isFan = $this->_oDb->isFan ($iEntryId, $this->_iProfileId,
true) || $this->_oDb->isFan ($iEntryId, $this->_iProfileId,
false);
704 if ($this->_oDb->leaveEntry($iEntryId, $this->_iProfileId)) {
707 $sRedirect = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri];
714 $isConfirmed = ($this->isEntryAdmin($aDataEntry) || !$aDataEntry[$this->_oDb->_sFieldJoinConfirmation] ?
true :
false);
716 if ($this->_oDb->joinEntry($iEntryId, $this->_iProfileId, $isConfirmed)) {
718 $this->
onEventJoin ($iEntryId, $this->_iProfileId, $aDataEntry);
719 $sRedirect = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri];
721 $this->onEventJoinRequest ($iEntryId, $this->_iProfileId, $aDataEntry);
724 echo
MsgBox($isConfirmed ? $sMsgJoinSuccess : $sMsgJoinSuccessPending) .
genAjaxyPopupJS($iEntryId,
'ajaxy_popup_result_div', $sRedirect);
735 header(
'Content-type:text/html;charset=utf-8');
737 $iEntryId = (int)$iEntryId;
738 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner($iEntryId, 0,
true))) {
743 if (!$this->isAllowedActivate($aDataEntry) || 0 !== strcasecmp($_SERVER[
'REQUEST_METHOD'],
'POST')) {
748 if ($this->_oDb->activateEntry($iEntryId)) {
749 $this->isAllowedActivate($aDataEntry,
true);
750 $sRedirect = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri];
759 function _actionManageFansPopup ($iEntryId,
$sTitle, $sFuncGetFans =
'getFans', $sFuncIsAllowedManageFans =
'isAllowedManageFans', $sFuncIsAllowedManageAdmins =
'isAllowedManageAdmins', $iMaxFans = 1000)
761 header(
'Content-type:text/html;charset=utf-8');
763 $iEntryId = (int)$iEntryId;
764 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner ($iEntryId, 0,
true))) {
769 if (!$this->$sFuncIsAllowedManageFans($aDataEntry)) {
774 $aProfiles = array ();
775 $iNum = $this->_oDb->$sFuncGetFans($aProfiles, $iEntryId,
true, 0, $iMaxFans);
781 $sActionsUrl =
ch_append_url_params(CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
"view/" . $aDataEntry[$this->_oDb->_sFieldUri],
'ajax_action=');
785 'name' =>
'fans_remove',
786 'value' =>
_t(
'_sys_btn_fans_remove'),
787 'onclick' =>
"onclick=\"getHtmlData('sys_manage_items_manage_fans_content', '{$sActionsUrl}remove&ids=' + sys_manage_items_get_manage_fans_ids(), false, 'post'); return false;\"",
791 if ($this->$sFuncIsAllowedManageAdmins($aDataEntry)) {
793 $aButtons = array_merge($aButtons, array (
796 'name' =>
'fans_add_to_admins',
797 'value' =>
_t(
'_sys_btn_fans_add_to_admins'),
798 'onclick' =>
"onclick=\"getHtmlData('sys_manage_items_manage_fans_content', '{$sActionsUrl}add_to_admins&ids=' + sys_manage_items_get_manage_fans_ids(), false, 'post'); return false;\"",
802 'name' =>
'fans_move_admins_to_fans',
803 'value' =>
_t(
'_sys_btn_fans_move_admins_to_fans'),
804 'onclick' =>
"onclick=\"getHtmlData('sys_manage_items_manage_fans_content', '{$sActionsUrl}admins_to_fans&ids=' + sys_manage_items_get_manage_fans_ids(), false, 'post'); return false;\"",
811 $aVarsContent = array (
812 'suffix' =>
'manage_fans',
813 'content' => $this->
_profilesEdit($aProfiles,
false, $aDataEntry),
814 'control' => $sControl,
816 $aVarsPopup = array (
818 'content' => $this->_oTemplate->parseHtmlByName(
'manage_items_form', $aVarsContent),
820 echo
$GLOBALS[
'oFunctions']->transBox($this->_oTemplate->parseHtmlByName(
'popup', $aVarsPopup),
true);
826 header(
'Content-type:text/html;charset=utf-8');
828 $iEntryId = (int)$iEntryId;
829 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner ($iEntryId, 0,
true))) {
834 $sEntryUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri];
836 require_once (CH_DIRECTORY_PATH_INC .
"shared_sites.inc.php");
845 'type' => $this->_sPrefix,
846 'orderby' =>
'popular'
848 $oTags =
new ChTemplTagsModule($aParam, $sTitleAllTags, CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'tags');
849 $this->_oTemplate->pageStart();
850 echo $oTags->getCode();
851 $this->_oTemplate->pageCode(
$sTitle,
false,
false);
858 'type' => $this->_sPrefix
860 $oCateg =
new ChTemplCategoriesModule($aParam,
_t(
'_categ_users'), CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'categories');
861 $this->_oTemplate->pageStart();
862 echo $oCateg->getCode();
863 $this->_oTemplate->pageCode(
$sTitle,
false,
false);
868 $aFile =
ChWsbService::call(
'files',
'get_file_array', array($aFileInfo[$sFieldMediaId]),
'Search');
869 if (!$aFile[
'date']) {
870 $this->_oTemplate->displayPageNotFound ();
873 $aFile[
'full_name'] =
uriFilter($aFile[
'title']) .
'.' . $aFile[
'extension'];
875 header (
"Cache-Control: must-revalidate, post-check=0, pre-check=0");
876 header (
"Content-type: " . $aFile[
'mime_type']);
877 header (
"Content-Length: " . filesize ($aFile[
'path']));
878 header (
"Content-Disposition: attachment; filename={$aFile['full_name']}");
879 readfile ($aFile[
'path']);
888 $iForumId = (int)$iForumId;
896 if (!(
$aForum = $this->_oDb->getForumById ($iForumId)))
899 if (!($aDataEntry = $this->_oDb->getEntryById (
$aForum[
'entry_id'])))
903 'admin' => $aDataEntry[$this->_oDb->_sFieldAuthorId] ==
$iMemberId || $this->isAdmin() ? 1 : 0,
904 'read' => $this->isAllowedReadForum ($aDataEntry,
$iMemberId) ? 1 : 0,
905 'post' => $this->isAllowedPostInForum ($aDataEntry,
$iMemberId) ? 1 : 0,
919 $aDataEntries = $this->_oDb->getEntriesByAuthor (
$iProfileId);
920 foreach ($aDataEntries
as $iEntryId) {
921 if ($this->_oDb->deleteEntryByIdAndOwner($iEntryId,
$iProfileId,
false))
926 $this->_oDb->removeFanFromAllEntries (
$iProfileId);
927 $this->_oDb->removeAdminFromAllEntries (
$iProfileId);
942 $iMediaId = (int)
$oAlert->iObject;
948 $sMediaType =
'videos';
951 $sMediaType =
'sounds';
954 $sMediaType =
'images';
957 $sMediaType =
'files';
963 return $this->_oDb->deleteMediaFile ($iMediaId, $sMediaType);
968 if (!$this->_iProfileId)
974 'item_img_src' => $sIcon,
975 'item_img_alt' => $sAlt,
976 'item_link' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'browse/my/' . $sLinkAppend,
978 'extra_info' => $isExtraCount ? $this->_oDb->getCountByAuthorAndStatus($this->_iProfileId,
'approved') + $this->_oDb->getCountByAuthorAndStatus($this->_iProfileId,
'pending') :
'',
989 $aObjectIds = strpos($aEvent[
'object_id'],
',') !==
false ? explode(
',', $aEvent[
'object_id']) : array($aEvent[
'object_id']);
994 foreach($aObjectIds
as $iId) {
995 $aItem = $this->_oDb->getEntryByIdAndOwner(
$iId, $aEvent[
'owner_id'], 1);
998 if($aItem[$this->_oDb->_sFieldStatus] ==
'approved' && $aParams[
'obj_privacy']->check($aParams[
'txt_privacy_view_event'],
$iId, $this->_iProfileId))
1002 if($iDeleted == count($aObjectIds))
1003 return array(
'perform_delete' =>
true);
1006 if(!
empty($aEvent[
'owner_id']))
1007 $iOwner = (int)$aEvent[
'owner_id'];
1010 if(!
empty($aEvent[
'date']))
1011 $iDate = (
int)$aEvent[
'date'];
1013 $bItems = !
empty($aItems) && is_array($aItems);
1014 if($iOwner == 0 && $bItems && isset($aParams[
'fields'][
'owner']) && !
empty($aItems[0][$aParams[
'fields'][
'owner']]))
1015 $iOwner = (int)$aItems[0][$aParams[
'fields'][
'owner']];
1017 if(
$iDate == 0 && $bItems && isset($aParams[
'fields'][
'date']) && !
empty($aItems[0][$aParams[
'fields'][
'date']]))
1018 $iDate = (
int)$aItems[0][$aParams[
'fields'][
'date']];
1020 if($iOwner == 0 ||
empty($aItems))
1024 $sCssPrefix = str_replace(
'_',
'-', $this->_sPrefix);
1025 $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/';
1026 if($aEvent[
'js_mode'])
1027 $sCss = $this->_oTemplate->addCss(array(
'wall_post.css',
'unit.css',
'twig.css'),
true);
1029 $this->_oTemplate->addCss(array(
'wall_post.css',
'unit.css',
'twig.css'));
1031 $iItems = count($aItems);
1035 $sClass = $this->_aModule[
'class_prefix'] .
'Voting';
1036 $oVoting =
new $sClass ($this->_sPrefix, 0, 0);
1041 $aItems = array_slice($aItems, 0, 4);
1043 $aTmplItems = array();
1044 foreach($aItems
as $aItem)
1045 $aTmplItems[] = array(
1046 'unit' => $this->_oTemplate->unit($aItem,
'unit', $oVoting,
true),
1049 $sTmplName = isset($aParams[
'templates'][
'grouped']) ? $aParams[
'templates'][
'grouped'] :
'modules/cheetah/wall/|timeline_post_twig_grouped.html';
1051 'owner_id' => $iOwner,
1052 'title' =>
_t($aParams[
'txt_added_new_title_plural'], $sOwner, $iItems),
1053 'description' =>
'',
1054 'content' => $sCss . $this->_oTemplate->parseHtmlByName($sTmplName, array(
1055 'mod_prefix' => $sCssPrefix,
1056 'mod_icon' => $aParams[
'icon'],
1057 'cpt_user_name' => $sOwner,
1058 'cpt_added_new' =>
_t($aParams[
'txt_added_new_plural'], $iItems),
1059 'ch_repeat:items' => $aTmplItems,
1066 $aItem = $aItems[0];
1068 $sTextWallObject =
_t($aParams[
'txt_object']);
1070 $sTmplName = isset($aParams[
'templates'][
'single']) ? $aParams[
'templates'][
'single'] :
'modules/cheetah/wall/|timeline_post_twig.html';
1072 'owner_id' => $iOwner,
1073 'title' =>
_t($aParams[
'txt_added_new_title_single'], $sOwner, $sTextWallObject),
1074 'description' => $aItem[$this->_oDb->_sFieldDescription],
1075 'content' => $sCss . $this->_oTemplate->parseHtmlByName($sTmplName, array(
1076 'mod_prefix' => $sCssPrefix,
1077 'mod_icon' => $aParams[
'icon'],
1078 'cpt_user_name' => $sOwner,
1079 'cpt_added_new' =>
_t($aParams[
'txt_added_new_single']),
1080 'cpt_object' => $sTextWallObject,
1081 'cpt_item_url' => $sBaseUrl . $aItem[$this->_oDb->_sFieldUri],
1082 'content' => $this->_oTemplate->unit($aItem,
'unit', $oVoting,
true),
1090 $iNoPhotoWidth = $iNoPhotoHeight = 140;
1091 $sNoPhoto = $this->_oTemplate->getImageUrl(
'no-image-thumb.png');
1092 $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/';
1094 $aOwner =
db_assoc_arr(
"SELECT `ID` AS `id`, `NickName` AS `username` FROM `Profiles` WHERE `ID`='" . (
int)$aEvent[
'owner_id'] .
"' LIMIT 1");
1096 $aObjectIds = strpos($aEvent[
'object_id'],
',') !==
false ? explode(
',', $aEvent[
'object_id']) : array($aEvent[
'object_id']);
1099 $iItems = count($aObjectIds);
1100 $iItemsLimit = isset($aParams[
'grouped'][
'items_limit']) ? (int)$aParams[
'grouped'][
'items_limit'] : 3;
1101 if($iItems > $iItemsLimit)
1102 $aObjectIds = array_slice($aObjectIds, 0, $iItemsLimit);
1105 $aContent = array();
1106 if(!
empty($aEvent[
'content']))
1107 $aContent = unserialize($aEvent[
'content']);
1109 if(!isset($aContent[
'idims']))
1110 $aContent[
'idims'] = array();
1113 $aItems = $aTmplItems = array();
1114 foreach($aObjectIds
as $iId) {
1115 $aItem = $this->_oDb->getEntryByIdAndOwner(
$iId, $aEvent[
'owner_id'], 1);
1118 else if($aItem[$this->_oDb->_sFieldStatus] ==
'approved' && $aParams[
'obj_privacy']->check($aParams[
'txt_privacy_view_event'],
$iId, $this->_iProfileId)) {
1119 $aItem[
'thumb_file'] =
'';
1120 $aItem[
'thumb_dims'] = array();
1121 if($aItem[$this->_oDb->_sFieldThumb]) {
1122 $aImage =
ChWsbService::call(
'photos',
'get_entry', array($aItem[$this->_oDb->_sFieldThumb],
'browse'),
'Search');
1123 if(!
empty($aImage)) {
1124 if(!isset($aContent[
'idims'][
$iId])) {
1125 $sPath = isset($aImage[
'file_path']) && file_exists($aImage[
'file_path']) ? $aImage[
'file_path'] : $aImage[
'file'];
1130 $aItem[
'thumb_file'] = $aImage[
'file'];
1131 $aItem[
'thumb_dims'] = $aContent[
'idims'][
$iId];
1134 $aImage =
ChWsbService::call(
'photos',
'get_entry', array($aItem[$this->_oDb->_sFieldThumb],
'browse2x'),
'Search');
1135 $aItem[
'thumb_file_2x'] = !
empty($aImage) ? $aImage[
'file'] : $aItem[
'thumb_file'];
1138 $aItem[$this->_oDb->_sFieldUri] = $sBaseUrl . $aItem[$this->_oDb->_sFieldUri];
1141 $aTmplItems[] = array(
1142 'mod_prefix' => $this->_sPrefix,
1143 'item_width' => isset($aItem[
'thumb_dims'][
'w']) ? $aItem[
'thumb_dims'][
'w'] : $iNoPhotoWidth,
1144 'item_height' => isset($aItem[
'thumb_dims'][
'h']) ? $aItem[
'thumb_dims'][
'h'] : $iNoPhotoHeight,
1145 'item_icon' => !
empty($aItem[
'thumb_file']) ? $aItem[
'thumb_file'] : $sNoPhoto,
1146 'item_icon_2x' => !
empty($aItem[
'thumb_file_2x']) ? $aItem[
'thumb_file_2x'] : $sNoPhoto,
1147 'item_page' => $aItem[$this->_oDb->_sFieldUri],
1148 'item_title' => $aItem[$this->_oDb->_sFieldTitle]
1153 if($iDeleted == count($aObjectIds))
1154 return array(
'perform_delete' =>
true);
1161 $aResult[
'save'][
'content'] = serialize($aContent);
1164 if($aEvent[
'js_mode'])
1165 $sCss = $this->_oTemplate->addCss(
'wall_outline.css',
true);
1167 $this->_oTemplate->addCss(
'wall_outline.css');
1169 $iOwner = (int)$aEvent[
'owner_id'];
1174 $iItems = count($aItems);
1176 $sTmplName = isset($aParams[
'templates'][
'grouped']) ? $aParams[
'templates'][
'grouped'] :
'modules/cheetah/wall/|outline_item_image_grouped';
1177 $aResult[
'content'] = $sCss . $this->_oTemplate->parseHtmlByName($sTmplName, array(
1178 'mod_prefix' => $this->_sPrefix,
1179 'mod_icon' => $sIcon,
1180 'user_name' => $sOwner,
1181 'user_link' => $sOwnerLink,
1182 'ch_repeat:items' => $aTmplItems,
1184 'album_title' =>
'',
1185 'album_description' =>
'',
1186 'album_comments' => 0 ?
_t(
'_wall_n_comments', 0) :
_t(
'_wall_no_comments'),
1187 'album_comments_link' =>
'',
1188 'post_id' => $aEvent[
'id'],
1189 'post_ago' => $aEvent[
'ago']
1196 $aItem = $aItems[0];
1197 $aTmplItem = $aTmplItems[0];
1199 $sTmplName = isset($aParams[
'templates'][
'single']) ? $aParams[
'templates'][
'single'] :
'modules/cheetah/wall/|outline_item_image';
1200 $aResult[
'content'] = $sCss . $this->_oTemplate->parseHtmlByName($sTmplName, array_merge($aTmplItem, array(
1201 'mod_prefix' => $this->_sPrefix,
1202 'mod_icon' => $sIcon,
1203 'user_name' => $sOwner,
1204 'user_link' => $sOwnerLink,
1205 'item_page' => $aItem[$this->_oDb->_sFieldUri],
1206 'item_title' => $aItem[$this->_oDb->_sFieldTitle],
1207 'item_description' => $this->_formatSnippetTextForOutline($aItem),
1208 'item_comments' => (
int)$aItem[$this->_oDb->_sFieldCommentCount] > 0 ?
_t(
'_wall_n_comments', $aItem[$this->_oDb->_sFieldCommentCount]) :
_t(
'_wall_no_comments'),
1209 'item_comments_link' => $aItem[$this->_oDb->_sFieldUri] .
'#cmta-' . $this->_sPrefix .
'-' . $aItem[$this->_oDb->_sFieldId],
1210 'post_id' => $aEvent[
'id'],
1211 'post_ago' => $aEvent[
'ago']
1219 $iId = (int)$aEvent[
'object_id'];
1220 $iOwner = (int)$aEvent[
'owner_id'];
1221 $sOwner = $iOwner != 0 ?
getNickName($iOwner) :
_t(
'_Anonymous');
1223 $aContent = unserialize($aEvent[
'content']);
1224 if(
empty($aContent) ||
empty($aContent[
'object_id']))
1227 $iItem = (int)$aContent[
'object_id'];
1228 $aItem = $this->_oDb->getEntryByIdAndOwner($iItem, $iOwner, 1);
1229 if(
empty($aItem) || !is_array($aItem))
1230 return array(
'perform_delete' =>
true);
1232 if(!$aParams[
'obj_privacy']->check($aParams[
'txt_privacy_view_event'], $iItem, $this->_iProfileId))
1236 $sClass = $this->_aModule[
'class_prefix'] .
'Cmts';
1237 $oCmts =
new $sClass($this->_sPrefix, $iItem);
1238 if(!$oCmts->isEnabled())
1241 $aComment = $oCmts->getCommentRow(
$iId);
1242 if(
empty($aComment) || !is_array($aComment))
1243 return array(
'perform_delete' =>
true);
1246 if($aItem[$this->_oDb->_sFieldThumb]) {
1247 $a = array(
'ID' => $aItem[$this->_oDb->_sFieldAuthorId],
'Avatar' => $aItem[$this->_oDb->_sFieldThumb]);
1249 $sImage = $aImage[
'no_image'] ?
'' : $aImage[
'file'];
1253 $sCssPrefix = str_replace(
'_',
'-', $this->_sPrefix);
1254 $sUri = $this->_oConfig->getUri();
1255 $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/';
1256 $sNoPhoto = $this->_oTemplate->getIconUrl(
'no-photo.png');
1257 if($aEvent[
'js_mode'])
1258 $sCss = $this->_oTemplate->addCss(array(
'wall_post.css',
'unit.css',
'twig.css'),
true);
1260 $this->_oTemplate->addCss(array(
'wall_post.css',
'unit.css',
'twig.css'));
1263 $sClass = $this->_aModule[
'class_prefix'] .
'Voting';
1264 $oVoting =
new $sClass ($this->_sPrefix, 0, 0);
1266 $sTextWallObject =
_t(
'_ch_' . $sUri .
'_wall_object');
1268 $sTmplName = isset($aParams[
'templates'][
'main']) ? $aParams[
'templates'][
'main'] :
'modules/cheetah/wall/|timeline_comment.html';
1270 'title' =>
_t(
'_ch_' . $sUri .
'_wall_added_new_title_comment', $sOwner, $sTextWallObject),
1271 'description' => $aComment[
'cmt_text'],
1272 'content' => $sCss . $this->_oTemplate->parseHtmlByName($sTmplName, array(
1273 'mod_prefix' => $sCssPrefix,
1274 'cpt_user_name' => $sOwner,
1275 'cpt_added_new' =>
_t(
'_ch_' . $sUri .
'_wall_added_new_comment'),
1276 'cpt_object' => $sTextWallObject,
1277 'cpt_item_url' => $sBaseUrl . $aItem[$this->_oDb->_sFieldUri],
1278 'cnt_comment_text' => $aComment[
'cmt_text'],
1279 'snippet' => $this->_oTemplate->unit($aItem,
'unit', $oVoting)
1289 $iId = (int)$aEvent[
'object_id'];
1290 $iOwner = (int)$aEvent[
'owner_id'];
1293 $aItem = $this->_oDb->getEntryByIdAndOwner(
$iId, $iOwner, 1);
1294 if(
empty($aItem) || !is_array($aItem))
1295 return array(
'perform_delete' =>
true);
1297 if(!$aParams[
'obj_privacy']->check($aParams[
'txt_privacy_view_event'],
$iId, $this->_iProfileId))
1300 $aContent = unserialize($aEvent[
'content']);
1301 if(
empty($aContent) || !isset($aContent[
'comment_id']))
1305 $sClass = $this->_aModule[
'class_prefix'] .
'Cmts';
1306 $oCmts =
new $sClass($this->_sPrefix,
$iId);
1307 if(!$oCmts->isEnabled())
1310 $aComment = $oCmts->getCommentRow((
int)$aContent[
'comment_id']);
1311 if(
empty($aComment) || !is_array($aComment))
1312 return array(
'perform_delete' =>
true);
1315 if($aItem[$this->_oDb->_sFieldThumb]) {
1316 $a = array(
'ID' => $aItem[$this->_oDb->_sFieldAuthorId],
'Avatar' => $aItem[$this->_oDb->_sFieldThumb]);
1318 $sImage = $aImage[
'no_image'] ?
'' : $aImage[
'file'];
1322 $sLangPrefix =
'_' . trim($this->_oConfig->getDbPrefix(),
'_');
1323 $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/';
1324 $sNoPhoto = $this->_oTemplate->getIconUrl(
'no-photo.png');
1325 if($aEvent[
'js_mode'])
1326 $sCss = $this->_oTemplate->addCss(array(
'wall_post.css',
'unit.css',
'twig.css'),
true);
1328 $this->_oTemplate->addCss(array(
'wall_post.css',
'unit.css',
'twig.css'));
1331 $sClass = $this->_aModule[
'class_prefix'] .
'Voting';
1332 $oVoting =
new $sClass ($this->_sPrefix, 0, 0);
1334 $sTextWallObject =
_t($sLangPrefix .
'_wall_object');
1336 $sTmplName = isset($aParams[
'templates'][
'main']) ? $aParams[
'templates'][
'main'] :
'modules/cheetah/wall/|timeline_comment.html';
1338 'title' =>
_t($sLangPrefix .
'_wall_added_new_title_comment', $sOwner, $sTextWallObject),
1339 'description' => $aComment[
'cmt_text'],
1340 'content' => $sCss . $this->_oTemplate->parseHtmlByName($sTmplName, array(
1341 'mod_prefix' => $this->_sPrefix,
1342 'cpt_user_name' => $sOwner,
1343 'cpt_added_new' =>
_t($sLangPrefix .
'_wall_added_new_comment'),
1344 'cpt_object' => $sTextWallObject,
1345 'cpt_item_url' => $sBaseUrl . $aItem[$this->_oDb->_sFieldUri],
1346 'cnt_comment_text' => $aComment[
'cmt_text'],
1347 'snippet' => $this->_oTemplate->unit($aItem,
'unit', $oVoting)
1355 'handlers' => array(
1356 array(
'alert_unit' => $this->_sPrefix,
'alert_action' =>
'add',
'module_uri' => $this->_aModule[
'uri'],
'module_class' =>
'Module',
'module_method' =>
'get_wall_post',
'groupable' => 0,
'group_by' =>
'',
'timeline' => 1,
'outline' => 1),
1357 array(
'alert_unit' => $this->_sPrefix,
'alert_action' =>
'comment_add',
'module_uri' => $this->_aModule[
'uri'],
'module_class' =>
'Module',
'module_method' =>
'get_wall_add_comment',
'groupable' => 0,
'group_by' =>
'',
'timeline' => 1,
'outline' => 0),
1360 array(
'alert_unit' => $this->_sPrefix,
'alert_action' =>
'commentPost',
'module_uri' => $this->_aModule[
'uri'],
'module_class' =>
'Module',
'module_method' =>
'get_wall_post_comment',
'groupable' => 0,
'group_by' =>
'',
'timeline' => 1,
'outline' => 0)
1363 array(
'unit' => $this->_sPrefix,
'action' =>
'add')
1371 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner ($iObjectId, 0,
true)))
1377 'lang_key' => $aLangKeys[
$sAction],
1381 'entry_url' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri],
1382 'entry_title' => $aDataEntry[$this->_oDb->_sFieldTitle],
1384 'recipient_id' => $aDataEntry[$this->_oDb->_sFieldAuthorId],
1385 'spy_type' =>
'content_activity',
1392 'handlers' => array(
1393 array(
'alert_unit' => $this->_sPrefix,
'alert_action' =>
'add',
'module_uri' => $this->_aModule[
'uri'],
'module_class' =>
'Module',
'module_method' =>
'get_spy_post'),
1394 array(
'alert_unit' => $this->_sPrefix,
'alert_action' =>
'change',
'module_uri' => $this->_aModule[
'uri'],
'module_class' =>
'Module',
'module_method' =>
'get_spy_post'),
1395 array(
'alert_unit' => $this->_sPrefix,
'alert_action' =>
'join',
'module_uri' => $this->_aModule[
'uri'],
'module_class' =>
'Module',
'module_method' =>
'get_spy_post'),
1396 array(
'alert_unit' => $this->_sPrefix,
'alert_action' =>
'rate',
'module_uri' => $this->_aModule[
'uri'],
'module_class' =>
'Module',
'module_method' =>
'get_spy_post'),
1397 array(
'alert_unit' => $this->_sPrefix,
'alert_action' =>
'commentPost',
'module_uri' => $this->_aModule[
'uri'],
'module_class' =>
'Module',
'module_method' =>
'get_spy_post'),
1400 array(
'unit' => $this->_sPrefix,
'action' =>
'add'),
1401 array(
'unit' => $this->_sPrefix,
'action' =>
'change'),
1402 array(
'unit' => $this->_sPrefix,
'action' =>
'join'),
1403 array(
'unit' => $this->_sPrefix,
'action' =>
'rate'),
1404 array(
'unit' => $this->_sPrefix,
'action' =>
'delete'),
1405 array(
'unit' => $this->_sPrefix,
'action' =>
'commentPost'),
1406 array(
'unit' => $this->_sPrefix,
'action' =>
'commentRemoved')
1413 if (!$this->_oDb->_sTableShoutbox)
1418 'name' => $this->_sPrefix,
1419 'title' => $this->
getTitleKey($this->_aModule[
'uri']),
1420 'table' => $this->_oDb->_sPrefix . $this->_oDb->_sTableShoutbox,
1421 'code_allow_use' => method_exists($this,
'isFan') ?
'return ChWsbService::call("' . $this->_aModule[
'uri'] .
'", "is_fan", array($iHandler));' :
'',
1422 'code_allow_delete' => method_exists($this,
'isEntryAdmin') ?
'return ChWsbService::call("' . $this->_aModule[
'uri'] .
'", "is_entry_admin", array($iHandler));' :
'',
1423 'code_allow_block' =>
'',
1440 if (!method_exists($this, $sFunc))
1445 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner ($iEntryId, 0,
true)))
1453 if (!($aDataEntry = $this->_oDb->getEntryByIdAndOwner ($iEntryId, 0,
true)) || $aDataEntry[$this->_oDb->_sFieldStatus] !=
'approved') {
1454 return array(
'skip' =>
true);
1457 if (isset($aAction2Name[
$sAction]))
1458 $sActionName = $aAction2Name[
$sAction];
1464 'template' => array (
1465 'Subscription' => $aDataEntry[$this->_oDb->_sFieldTitle] . ($sActionName ?
' (' . $sActionName .
')' :
''),
1466 'EntryTitle' => $aDataEntry[$this->_oDb->_sFieldTitle],
1467 'ActionName' => $sActionName,
1468 'ViewLink' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri],
1477 if (!preg_match(
'/^[A-Za-z0-9_-]+$/', $sSettingsCatName))
1478 return MsgBox(
_t(
'_sys_request_page_not_found_cpt'));
1480 $iId = $this->_oDb->getSettingsCategory($sSettingsCatName);
1482 return MsgBox(
_t(
'_sys_request_page_not_found_cpt'));
1487 if(isset($_POST[
'save']) && isset($_POST[
'cat'])) {
1489 $mixedResult =
$oSettings->saveChanges($_POST);
1495 if($mixedResult !==
true && !
empty($mixedResult))
1501 return $this->_oTemplate->parseHtmlByName(
'default_padding',
$aVars);
1506 if (
getPostFieldIfSet(
'action_activate') && (isset($_POST[
'entry']) && is_array($_POST[
'entry']))) {
1508 foreach ($_POST[
'entry']
as $iId) {
1509 if ($this->_oDb->activateEntry(
$iId)) {
1514 } elseif (
getPostFieldIfSet(
'action_delete') && (isset($_POST[
'entry']) && is_array($_POST[
'entry']))) {
1516 foreach ($_POST[
'entry']
as $iId) {
1518 $aDataEntry = $this->_oDb->getEntryById(
$iId);
1519 if (!$this->isAllowedDelete($aDataEntry))
1522 if ($this->_oDb->deleteEntryByIdAndOwner(
$iId, 0, $this->isAdmin())) {
1528 if ($isAdminEntries) {
1530 'action_delete' => $sKeyBtnDelete,
1531 ),
'',
true, 0,
$sUrl);
1534 'action_activate' => $sKeyBtnActivate,
1535 'action_delete' => $sKeyBtnDelete,
1536 ),
'',
true, 0,
$sUrl);
1544 if (!$this->isAllowedAdd()) {
1545 $this->_oTemplate->displayAccessDenied ();
1550 $this->
_addForm(CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'administration/admin_entries');
1552 'content' => ob_get_clean(),
1554 return $this->_oTemplate->parseHtmlByName(
'default_padding',
$aVars);
1561 $iEntryId = (int)$iEntryId;
1564 $o->reparseObjTags($this->_sPrefix, $iEntryId);
1569 $iEntryId = (int)$iEntryId;
1572 $o->reparseObjTags($this->_sPrefix, $iEntryId);
1585 ChWsbService::call(
'wmap',
'response_entry_add', array($this->_oConfig->getUri(), $iEntryId));
1587 $this->_oDb->createForum ($aDataEntry, $this->_oDb->getProfileNickNameById($this->_iProfileId));
1598 ChWsbService::call(
'wmap',
'response_entry_change', array($this->_oConfig->getUri(), $iEntryId));
1612 $sClass = $this->_aModule[
'class_prefix'] .
'Voting';
1613 $oVoting =
new $sClass ($this->_sPrefix, 0, 0);
1614 $oVoting->deleteVotings ($iEntryId);
1618 $sClass = $this->_aModule[
'class_prefix'] .
'Cmts';
1619 $oCmts =
new $sClass ($this->_sPrefix, $iEntryId);
1620 $oCmts->onObjectDelete ();
1624 $oViews =
new ChWsbViews($this->_sPrefix, $iEntryId,
false);
1625 $oViews->onObjectDelete();
1628 $this->_oDb->deleteForum ($iEntryId);
1632 ChWsbService::call(
'wmap',
'response_entry_delete', array($this->_oConfig->getUri(), $iEntryId));
1636 $oSubscription->unsubscribe(array(
'type' =>
'object_id',
'unit' => $this->_sPrefix,
'object_id' => $iEntryId));
1646 $oAlert =
new ChWsbAlerts($this->_sPrefix,
'mark_as_featured', $iEntryId, $this->_iProfileId, array(
'Featured' => $aDataEntry[$this->_oDb->_sFieldFeatured]));
1663 $iNum = $this->_oDb->getAdmins($aGroupAdmins, $iEntryId, 0, $iMaxFans);
1664 $aGroupAdmins[] =
getProfileInfo($aDataEntry[$this->_oDb->_sFieldAuthorId]);
1681 if ($sEmailTemplate)
1723 $sClass = $this->_aModule[
'class_prefix'] .
'FormAdd';
1724 $oForm =
new $sClass ($this, $this->_iProfileId);
1727 if (
$oForm->isSubmittedAndValid ()) {
1729 $sStatus = $this->_oDb->getParam($this->_sPrefix.
'_autoapproval') ==
'on' || $this->
isAdmin() ?
'approved' :
'pending';
1731 $this->_oDb->_sFieldCreated =>
time(),
1732 $this->_oDb->_sFieldUri =>
$oForm->generateUri(),
1733 $this->_oDb->_sFieldStatus =>
$sStatus,
1737 $iEntryId =
$oForm->insert ($aValsAdd);
1741 $this->isAllowedAdd(
true);
1743 $oForm->processMedia($iEntryId, $this->_iProfileId);
1745 $aDataEntry = $this->_oDb->getEntryByIdAndOwner($iEntryId, $this->_iProfileId, $this->
isAdmin());
1748 $sRedirectUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri];
1749 header (
'Location:' . $sRedirectUrl);
1764 function _manageEntries (
$sMode, $sValue, $isFilter, $sFormName, $aButtons, $sAjaxPaginationBlockId =
'', $isMsgBoxIfEmpty =
true,
$iPerPage = 0, $sUrlAdmin =
false)
1766 ch_import (
'SearchResult', $this->_aModule);
1767 $sClass = $this->_aModule[
'class_prefix'] .
'SearchResult';
1769 $o->sUnitTemplate =
'unit_admin';
1774 $sPagination = $sActionsPanel =
'';
1777 } elseif (!(
$sContent =
$o->displayResultBlock())) {
1778 if ($isMsgBoxIfEmpty)
1783 $sPagination = $sAjaxPaginationBlockId ?
$o->showPaginationAjax($sAjaxPaginationBlockId) :
$o->showPagination(array(
'url_admin' => $sUrlAdmin));
1784 $sActionsPanel =
$o->showAdminActionsPanel ($sFormName, $aButtons);
1788 'form_name' => $sFormName,
1790 'pagination' => $sPagination,
1791 'filter_panel' => $isFilter ?
$o->showAdminFilterPanel(
false !==
ch_get($this->_sFilterName) ?
ch_get($this->_sFilterName) :
'',
'filter_input_id',
'filter_checkbox_id', $this->_sFilterName) :
'',
1792 'actions_panel' => $sActionsPanel,
1794 return $this->_oTemplate->parseHtmlByName (
'manage',
$aVars);
1799 if (
$GLOBALS[
'oTemplConfig']->bAllowUnicodeInPreg)
1800 $sReg =
'/^[\pL\pN\-_]+$/u';
1802 $sReg =
'/^[\d\w\-_]+$/u';
1804 if (!preg_match($sReg, $sUri)) {
1805 $this->_oTemplate->displayPageNotFound ();
1809 if (!($aDataEntry = $this->_oDb->getEntryByUri($sUri))) {
1810 $this->_oTemplate->displayPageNotFound ();
1814 if ($aDataEntry[$this->_oDb->_sFieldStatus] ==
'pending' && !$this->isAdmin() && !($aDataEntry[$this->_oDb->_sFieldAuthorId] == $this->_iProfileId && $aDataEntry[$this->_oDb->_sFieldAuthorId])) {
1815 $this->_oTemplate->displayPageNotFound ();
1819 $GLOBALS[
'oTopMenu']->setCustomSubHeader($aDataEntry[$this->_oDb->_sFieldTitle]);
1820 $GLOBALS[
'oTopMenu']->setCustomVar($this->_sPrefix.
'_view_uri', $aDataEntry[$this->_oDb->_sFieldUri]);
1821 $GLOBALS[
'oTopMenu']->setCustomSubHeaderUrl(CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri]);
1822 $GLOBALS[
'oTopMenu']->setCustomBreadcrumbs(array(
1823 _t(
'_'.$this->_sPrefix) => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'home/',
1824 $aDataEntry[$this->_oDb->_sFieldTitle] => $sSubTab ? CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri] :
'',
1828 if ((!$this->_iProfileId || $aDataEntry[$this->_oDb->_sFieldAuthorId] != $this->_iProfileId) && !$this->isAllowedView($aDataEntry,
true)) {
1829 $this->_oTemplate->displayAccessDenied ();
1838 header(
'Content-type:text/html;charset=utf-8');
1840 if (
false !==
ch_get(
'ajax_action') && $this->isAllowedManageFans($aDataEntry) && 0 === strcasecmp($_SERVER[
'REQUEST_METHOD'],
'POST')) {
1842 $iEntryId = $aDataEntry[$this->_oDb->_sFieldId];
1844 if (
false !==
ch_get(
'ids'))
1847 $isShowConfirmedFansOnly =
false;
1848 switch (
ch_get(
'ajax_action')) {
1850 $isShowConfirmedFansOnly =
true;
1851 if ($this->_oDb->removeFans($iEntryId, $aIds)) {
1853 $this->onEventFanRemove ($iEntryId,
$iProfileId, $aDataEntry);
1856 case 'add_to_admins':
1857 $isShowConfirmedFansOnly =
true;
1858 if ($this->isAllowedManageAdmins($aDataEntry) && $this->_oDb->addGroupAdmin($iEntryId, $aIds)) {
1859 $aProfiles = array ();
1860 $iNum = $this->_oDb->getAdmins($aProfiles, $iEntryId, 0, $iMaxFans, $aIds);
1862 $this->onEventFanBecomeAdmin ($iEntryId,
$aProfile[
'ID'], $aDataEntry);
1865 case 'admins_to_fans':
1866 $isShowConfirmedFansOnly =
true;
1867 $iNum = $this->_oDb->getAdmins($aGroupAdmins, $iEntryId, 0, $iMaxFans);
1868 if ($this->isAllowedManageAdmins($aDataEntry) && $this->_oDb->removeGroupAdmin($iEntryId, $aIds)) {
1871 $this->onEventAdminBecomeFan ($iEntryId,
$aProfile[
'ID'], $aDataEntry);
1876 if ($this->_oDb->confirmFans($iEntryId, $aIds)) {
1877 echo
'<script type="text/javascript" language="javascript">
1878 document.location = "' . CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
"view/" . $aDataEntry[$this->_oDb->_sFieldUri] .
'";
1880 $aProfiles = array ();
1881 $iNum = $this->_oDb->getFans($aProfiles, $iEntryId,
true, 0, $iMaxFans, $aIds);
1884 $this->onEventJoinConfirm ($iEntryId,
$aProfile[
'ID'], $aDataEntry);
1889 if ($this->_oDb->rejectFans($iEntryId, $aIds)) {
1891 $this->onEventJoinReject ($iEntryId,
$iProfileId, $aDataEntry);
1898 $aProfiles = array ();
1899 $iNum = $this->_oDb->getFans($aProfiles, $iEntryId, $isShowConfirmedFansOnly, 0, $iMaxFans);
1911 $a = explode($sDivider, $sIds);
1916 $aRet[] = (int)
$iId;
1921 function _profilesEdit(&$aProfiles, $isCenterContent =
false, $aDataEntry = array())
1928 'ch_if:admin' => array (
1929 'condition' => $aDataEntry && $this->isEntryAdmin ($aDataEntry,
$aProfile[
'ID']) ?
true :
false,
1930 'content' => array (),
1933 $sResult .= $this->_oTemplate->parseHtmlByName(
'unit_fan',
$aVars);
1946 if (!$oEmailTemplate)
1949 $aTemplate = $oEmailTemplate->getTemplate($sEmailTemplateName);
1950 $aTemplateVars = array (
1951 'EntryTitle' => $aDataEntry[$this->_oDb->_sFieldTitle],
1952 'EntryUrl' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() .
'view/' . $aDataEntry[$this->_oDb->_sFieldUri],
1961 if (!$this->_iProfileId) {
1962 $this->_oTemplate->displayAccessDenied();
1966 $bAjaxMode = isset($_SERVER[
'HTTP_X_REQUESTED_WITH'])
and $_SERVER[
'HTTP_X_REQUESTED_WITH'] ==
'XMLHttpRequest' ?
true :
false;
1969 if (
ch_get(
'action_delete') && is_array(
ch_get(
'entry'))) {
1970 $aEntries =
ch_get(
'entry');
1971 foreach ($aEntries
as $iEntryId) {
1972 $iEntryId = (int)$iEntryId;
1973 $aDataEntry = $this->_oDb->getEntryById($iEntryId);
1974 if (!$this->isAllowedDelete($aDataEntry))
1977 if ($this->_oDb->deleteEntryByIdAndOwner($iEntryId, $this->_iProfileId, 0)) {
1984 $sClass = $this->_aModule[
'class_prefix'] .
'PageMy';
1989 header(
'Content-type:text/html;charset=utf-8');
1990 echo
$oPage->getBlockCode_My();
1996 header(
'Content-type:text/html;charset=utf-8');
1997 echo
$oPage->getBlockCode_Pending();
2001 $this->_oTemplate->pageStart();
2007 $this->_oTemplate->addJs (
'main.js');
2008 $this->_oTemplate->addCss (
'main.css');
2009 $this->_oTemplate->addCss (
'form.css');
2010 $this->_oTemplate->addCss (
'admin.css');
2011 $this->_oTemplate->addCss (
'forms_extra.css');
2012 $this->_oTemplate->pageCode(
$sTitle,
false,
false);
2038 if (!defined($sMembershipActionConstant))
2046 return strmaxtextlen($aEntryData[$this->_oDb->_sFieldDescription], $iMaxLen);