Exemple #1
0
 function execute($par)
 {
     global $wgOut, $wgUser;
     $this->setHeaders();
     if (!$wgUser->isAllowed('stafflog')) {
         throw new PermissionsError('stafflog');
     }
     $pager = new StaffLoggerPager("");
     $sTypesDropDown = XML::openElement('select', array('name' => 'type', 'id' => 'StaffLogFilterType'));
     foreach ($this->aTypes as $k => $v) {
         $sTypesDropDown .= XML::option($v, $k, $k == $this->request->getText('type', ''));
     }
     $sTypesDropDown .= XML::closeElement('select');
     $wgOut->addHTML(XML::openElement('form', array('method' => 'get', 'action' => $this->getTitle()->getLocalURL())) . XML::openElement('fieldset') . XML::element('legend', null, wfMsg('stafflog-filter-label'), false) . XML::inputLabel(wfMsg('stafflog-filter-user'), 'user', 'StaffLogFilterUser', false, htmlspecialchars($this->request->getText('user', ''), ENT_QUOTES, 'UTF-8')) . XML::label(wfMsg('stafflog-filter-type'), 'StaffLogFilterType') . ' ' . $sTypesDropDown . ' ' . XML::submitButton(wfMsg('stafflog-filter-apply')) . XML::closeElement('fieldset') . XML::closeElement('form') . XML::openElement('div', array('class' => 'mw-spcontent')) . $pager->getNavigationBar() . '<ul>' . $pager->getBody() . '</ul>' . $pager->getNavigationBar() . XML::closeElement('div'));
 }
Exemple #2
0
 static function dumpError($error, $backtrace_depth = 1)
 {
     if (Kennel::$ROOT_URL) {
         $backtrace = debug_backtrace();
         $file = $backtrace[$backtrace_depth + 1]['file'];
         $line = $backtrace[$backtrace_depth + 1]['line'];
         $message = "{$error} in <strong>{$file}</strong> at line <strong>{$line}</strong>";
         $p = XML::element('p', null, array('class' => 'msg_error'), $message);
         echo $p;
         if (Kennel::getSetting('application', 'debug_mode')) {
             self::backtrace($backtrace_depth + 1);
         }
     } else {
         // Ajax or Cli
         $backtrace = debug_backtrace();
         $file = $backtrace[$backtrace_depth + 1]['file'];
         $line = $backtrace[$backtrace_depth + 1]['line'];
         $message = "Kennel error: {$error} in {$file} at line {$line}\n";
         echo $message;
     }
 }
Exemple #3
0
 private function _getOutput()
 {
     // Make $template and $title accessible in the descendant views
     $this->__set('template', $this);
     $this->__set('title', $this->title);
     // Template View (must run first since ancestor views might call functions from $template)
     $templateView = XML::text($this->_template->__toString());
     // <html>
     $this->_html = XML::element('html');
     $this->_html->dir = $this->dir;
     if (Kennel::getSetting('i18n', 'enabled')) {
         $this->_html->lang = i18n::getLang();
     }
     // <head>
     $this->_head = XML::element('head', $this->_html);
     // <title>
     $title = XML::element('title', $this->_head);
     $title->setValue($this->getTitle());
     // favicon
     if ($this->favicon) {
         $this->_head->adopt(html::favicon($this->favicon));
     }
     // Content Type
     $this->_head->adopt(html::meta(array('charset' => 'utf-8')));
     // <meta>
     foreach ($this->_meta as $meta) {
         $this->_head->adopt(html::meta($meta));
     }
     // <link>
     foreach ($this->_links as $link) {
         $this->_head->adopt(html::link($link['rel'], $link['href'], $link['type'], $link['title']));
     }
     // <style>
     $this->_head->adopt(html::css($this->_stylesheets));
     // <script>
     $this->_head->adopt(html::js($this->_scripts));
     // <body>
     $this->_body = XML::element('body', $this->_html);
     $this->_body->class = browser::css();
     if (Kennel::getSetting('i18n', 'enabled')) {
         $this->_body->class .= ' ' . i18n::getLang();
     }
     if ($this->bodyClass) {
         $this->_body->class .= ' ' . $this->bodyClass;
     }
     // Inject the Template View
     $this->_body->adopt($templateView);
     // Return the whole shebang
     return self::$DOCTYPE_DECLARATIONS[$this->doctype] . $this->_html->output(true);
 }
 /**
  * @brief add history to wall toolbar
  **/
 function onBeforeToolbarMenu(&$items)
 {
     $app = F::app();
     if (empty($app->wg->EnableWallExt)) {
         return true;
     }
     $title = $app->wg->Title;
     $action = $app->wg->Request->getText('action');
     if ($title instanceof Title && $title->isTalkPage() && WallHelper::isWallNamespace($title->getNamespace())) {
         if (is_array($items)) {
             foreach ($items as $k => $value) {
                 if ($value['type'] == 'follow') {
                     unset($items[$k]);
                     break;
                 }
             }
         }
     }
     if ($title instanceof Title && WallHelper::isWallNamespace($title->getNamespace()) && !$title->isSubpage() && empty($action)) {
         $item = array('type' => 'html', 'html' => XML::element('a', array('href' => $title->getFullUrl('action=history')), wfMsg('wall-toolbar-history')));
         if (is_array($items)) {
             $inserted = false;
             $itemsout = array();
             foreach ($items as $value) {
                 $itemsout[] = $value;
                 if ($value['type'] == 'follow') {
                     $itemsout[] = $item;
                     $inserted = true;
                 }
             }
             if (!$inserted) {
                 array_unshift($items, $item);
             } else {
                 $items = $itemsout;
             }
         } else {
             $items = array($item);
         }
     }
     return true;
 }
 public function createPostContent($title, $body)
 {
     return XML::element("title", array(), $title) . "\n" . XML::element("body", array(), $body);
 }
 /**
  * Writes a <site> tag representing the given Site object.
  *
  * @param Site $site
  */
 private function exportSite(Site $site)
 {
     if ($site->getType() !== Site::TYPE_UNKNOWN) {
         $siteAttr = array('type' => $site->getType());
     } else {
         $siteAttr = null;
     }
     fwrite($this->sink, "\t" . XML::openElement('site', $siteAttr) . "\n");
     fwrite($this->sink, "\t\t" . XML::element('globalid', null, $site->getGlobalId()) . "\n");
     if ($site->getGroup() !== Site::GROUP_NONE) {
         fwrite($this->sink, "\t\t" . XML::element('group', null, $site->getGroup()) . "\n");
     }
     if ($site->getSource() !== Site::SOURCE_LOCAL) {
         fwrite($this->sink, "\t\t" . XML::element('source', null, $site->getSource()) . "\n");
     }
     if ($site->shouldForward()) {
         fwrite($this->sink, "\t\t" . XML::element('forward', null, '') . "\n");
     }
     foreach ($site->getAllPaths() as $type => $path) {
         fwrite($this->sink, "\t\t" . XML::element('path', array('type' => $type), $path) . "\n");
     }
     foreach ($site->getLocalIds() as $type => $ids) {
         foreach ($ids as $id) {
             fwrite($this->sink, "\t\t" . XML::element('localid', array('type' => $type), $id) . "\n");
         }
     }
     //@todo: export <data>
     //@todo: export <config>
     fwrite($this->sink, "\t" . XML::closeElement('site') . "\n");
 }
Exemple #7
0
 function textarea($field_schema, $field_id, $attributes = null, $field_value = null, $field_error = null)
 {
     $textarea = XML::element('textarea');
     $textarea->set('name', $field_id);
     $textarea->set('id', $field_id);
     // Custom attributes
     if (is_array($attributes)) {
         foreach ($attributes as $att => $value) {
             $textarea->set($att, $value);
         }
     }
     // Value
     if ($field_value) {
         $textarea->set('text', $field_value);
     } else {
         $textarea->set('text', '');
     }
     // Invalid
     if ($field_error) {
         $textarea->set('class', 'invalid');
     }
     return $textarea;
 }
Exemple #8
0
 function render_list()
 {
     if (!isset($this->page)) {
         $this->getPage();
     }
     $table = XML::element('table');
     $tr = XML::element('tr', $table);
     //Columns
     foreach ($this->fields as $name => $caption) {
         $th = XML::element('th', $tr, null, $caption);
     }
     //Actions
     if (count($this->actions) > 0 && count($this->page) > 0) {
         $th = XML::element('th', $tr, null, 'Actions');
     }
     if (count($this->page) == 0) {
         $tr = XML::element('tr', $table, array('class' => 'error'));
         $td = XML::element('td', $tr, array('colspan' => count($this->fields)));
         $td->setText($this->empty_message);
     } else {
         $n = 0;
         foreach ($this->page as $row) {
             $class = $n++ % 2 ? 'even' : 'odd';
             $tr = XML::element('tr', $table, array('class' => $class));
             //Columns
             foreach ($this->fields as $name => $caption) {
                 $td = XML::element('td', $tr);
                 $td->setText($row->{$name});
             }
             //Actions
             if (count($this->actions) && count($this->page) > 0) {
                 $td = XML::element('td', $tr);
                 foreach ($this->actions as $action) {
                     foreach ($action['vars'] as $key => $var) {
                         $key++;
                         $action['link'] = str_replace("%{$key}", $row->{$var}, $action['link']);
                         $action['html'] = str_replace("%{$key}", $row->{$var}, $action['html']);
                     }
                     $a = XML::element('a', $td, array('href' => $action['link'], 'class' => 'list_action'));
                     $a->setText(" {$action['html']} ");
                 }
             }
         }
     }
     print $table;
 }
 /**
  * execute
  *
  * main entry point
  * @author eloy@wikia.com
  *
  * @param string $subpage: subpage of Title
  *
  * @return nothing
  */
 public function execute($subpage)
 {
     global $wgUser, $wgOut, $wgRequest, $wgWikiaBatchTasks;
     if ($wgUser->isBlocked()) {
         throw new UserBlockedError($this->getUser()->mBlock);
     }
     if (wfReadOnly()) {
         $wgOut->readOnlyPage();
         return;
     }
     if (!$wgUser->isAllowed('taskmanager')) {
         $this->displayRestrictionError();
         return;
     }
     $wgOut->setPageTitle(wfMsg('taskmanager_title'));
     $wgOut->setRobotpolicy('noindex,nofollow');
     $wgOut->setArticleRelated(false);
     $this->mTitle = Title::makeTitle(NS_SPECIAL, "TaskManager");
     $this->mAction = $wgRequest->getVal("action");
     if ($this->mAction) {
         switch ($this->mAction) {
             case "task":
                 #--- get task type and class
                 $sClass = $wgRequest->getText("wpType", null);
                 if (is_subclass_of($sClass, "BatchTask")) {
                     $oObject = new $sClass();
                     #--- get form for this class
                     $wgOut->addHTML($oObject->getForm($this->mTitle));
                 }
                 $wgOut->addHTML(XML::element("a", array("href" => $this->mTitle->getLocalUrl(), wfMsg("taskmanager_tasklist"))));
                 break;
             case "save":
                 #--- get task type and class
                 $sType = $wgRequest->getText("wpType", null);
                 $sClass = $wgWikiaBatchTasks[$sType];
                 if (is_subclass_of($sClass, "BatchTask")) {
                     $oObject = new $sClass();
                     $aFormData = $oObject->submitForm();
                     if ($aFormData === true) {
                         #--- all correct, show new task form
                         $this->loadTaskForm();
                     } else {
                         #--- errors, show again form for choosen task
                         $wgOut->addHTML($oObject->getForm($this->mTitle, $aFormData));
                     }
                 }
                 $wgOut->addHTML(Wikia::linkTag($this->mTitle->getLocalUrl(), wfMsg("taskmanager_tasklist")));
                 break;
                 /**
                  * get task form for given id, NOTE - it should check if
                  * task is editable or not
                  */
             /**
              * get task form for given id, NOTE - it should check if
              * task is editable or not
              */
             case "edit":
                 $oTask = $this->loadTaskData($wgRequest->getVal("id"));
                 #--- nothing so far
                 break;
                 /**
                  * remove task from database, carefull - without confirmation
                  * so far
                  */
             /**
              * remove task from database, carefull - without confirmation
              * so far
              */
             case "remove":
                 #--- check if task exists
                 $oTask = $this->loadTaskData($wgRequest->getVal("id"));
                 if (!empty($oTask->task_id)) {
                     $this->removeTask($oTask->task_id);
                     $wgOut->addHTML(Wikia::successbox("Task nr {$oTask->task_id} removed"));
                 } else {
                     $wgOut->addHTML(Wikia::errorbox("Task doesn't exists"));
                 }
                 $this->loadTaskForm();
                 $this->loadPager();
                 break;
                 /**
                  * start task, possible only when task in TASK_WAITING state
                  */
             /**
              * start task, possible only when task in TASK_WAITING state
              */
             case "start":
                 #--- check if task exists
                 $oTask = $this->loadTaskData($wgRequest->getVal("id"));
                 if (!empty($oTask->task_id) && $oTask->task_status == TASK_WAITING) {
                     $this->changeTaskStatus($oTask->task_id, TASK_QUEUED);
                     $wgOut->addHTML(Wikia::successbox("Task nr {$oTask->task_id} queued"));
                 } else {
                     $wgOut->addHTML(Wikia::errorbox("Task doesn't exists"));
                 }
                 $this->loadTaskForm();
                 $this->loadPager();
                 break;
                 /**
                  * stop task, possible only when task in TASK_QUEUED state
                  */
             /**
              * stop task, possible only when task in TASK_QUEUED state
              */
             case "stop":
                 #--- check if task exists
                 $oTask = $this->loadTaskData($wgRequest->getVal("id"));
                 if (!empty($oTask->task_id) && $oTask->task_status == TASK_QUEUED) {
                     $this->changeTaskStatus($oTask->task_id, TASK_WAITING);
                     $wgOut->addHTML(Wikia::successbox("Task nr {$oTask->task_id} paused"));
                 } else {
                     $wgOut->addHTML(Wikia::errorbox("Task doesn't exists"));
                 }
                 $this->loadTaskForm();
                 $this->loadPager();
                 break;
                 /**
                  * terminate running task
                  */
             /**
              * terminate running task
              */
             case "finish":
                 $oTaskData = $this->loadTaskData($wgRequest->getVal("id"));
                 if (!empty($oTaskData->task_id)) {
                     $oTask = BatchTask::newFromData($oTaskData);
                     $oTask->closeTask();
                     $wgOut->addHTML(Wikia::successbox("Task nr {$oTaskData->task_id} stopped"));
                 } else {
                     $wgOut->addHTML(Wikia::errorbox("Task doesn't exists"));
                 }
                 $this->loadTaskForm();
                 $this->loadPager();
                 break;
                 /**
                  * show log for closed task
                  */
             /**
              * show log for closed task
              */
             case "log":
                 #--- check if task exists
                 $oTaskData = $this->loadTaskData($wgRequest->getVal("id"));
                 if (!empty($oTaskData->task_id)) {
                     $oTask = BatchTask::newFromData($oTaskData);
                     $oTmpl = new EasyTemplate(dirname(__FILE__) . "/templates/");
                     $oTmpl->set_vars(array("events" => $oTask->getLog(true)));
                     $wgOut->addHTML($oTmpl->render("log"));
                 }
                 $this->loadTaskForm();
                 $this->loadPager();
                 break;
                 /**
                  * add a restore task for this specific task
                  * currently it works only for COMPLETED MultiDelete tasks
                  */
             /**
              * add a restore task for this specific task
              * currently it works only for COMPLETED MultiDelete tasks
              */
             case "undo":
                 #--- check if task exists
                 $oTaskData = $this->loadTaskData($wgRequest->getVal("id"));
                 if (!empty($oTaskData->task_id)) {
                     $oTask = BatchTask::newFromData($oTaskData);
                     /* add a new restore task here
                     		   todo differentiate between single and multi mode
                     		 */
                     $thisTask = new MultiRestoreTask(true);
                     if (TASK_FINISHED_UNDO != $oTaskData->task_status) {
                         $arguments = unserialize($oTaskData->task_arguments);
                         $thisTask->mArguments = $arguments;
                         $thisTask->mMode = $arguments["mode"];
                         $thisTask->mAdmin = $wgUser->getName();
                         $thisTask->mMotherTask = $oTaskData->task_id;
                         $submit_id = $thisTask->submitForm();
                         $wgOut->addHTML(Wikia::successbox("Task nr {$oTaskData->task_id} was scheduled to be undone"));
                         $this->changeTaskStatus($oTaskData->task_id, TASK_FINISHED_UNDO);
                     } else {
                         $wgOut->addHTML(Wikia::errorbox("Task {$oTaskData->task_id} was already set to undo"));
                     }
                 }
                 $this->loadTaskForm();
                 $this->loadPager();
                 break;
                 /**
                  * default action, just show task form
                  */
             /**
              * default action, just show task form
              */
             default:
                 $this->loadTaskForm();
                 break;
         }
     } else {
         $this->loadTaskForm();
         $this->loadPager();
     }
 }
 function getEditButtons($tabindex)
 {
     global $wgLivePreview, $wgUser;
     $buttons = array();
     $temp = array('id' => 'wpSave', 'name' => 'wpSave', 'type' => 'submit', 'tabindex' => ++$tabindex, 'value' => wfMsg('savearticle'), 'accesskey' => wfMsg('accesskey-save'), 'title' => wfMsg('tooltip-save') . ' [' . wfMsg('accesskey-save') . ']', 'onclick' => 'needToConfirm = false', 'class' => 'button primary submit_button wpSave');
     $buttons['save'] = XML::element('input', $temp, '');
     $temp = array('id' => 'wpPreview', 'name' => 'wpPreview', 'type' => 'submit', 'tabindex' => ++$tabindex, 'value' => wfMsg('showpreview'), 'accesskey' => wfMsg('accesskey-preview'), 'title' => wfMsg('tooltip-preview') . ' [' . wfMsg('accesskey-preview') . ']', 'onclick' => 'needToConfirm = false; checkMinLength = false; checkSummary();', 'class' => 'button secondary submit_button');
     $buttons['preview'] = XML::element('input', $temp, '');
     $buttons['live'] = '';
     $temp = array('id' => 'wpDiff', 'name' => 'wpDiff', 'type' => 'submit', 'tabindex' => ++$tabindex, 'value' => wfMsg('showdiff'), 'accesskey' => wfMsg('accesskey-diff'), 'title' => wfMsg('tooltip-diff') . ' [' . wfMsg('accesskey-diff') . ']', 'onclick' => 'needToConfirm = false; checkMinLength = false; checkSummary();', 'class' => 'button secondary submit_button');
     $buttons['diff'] = XML::element('input', $temp, '');
     wfRunHooks('EditPageBeforeEditButtons', array(&$this, &$buttons, &$tabindex));
     return $buttons;
 }
					if (!empty($post['readmore'])) {
						if (substr($post['text'], -4) == '</p>') {
							$post['text'] = substr($post['text'], 0, -4) . '<br>' . $readMoreLink . '</p>';
						} else {
							$post['text'] .=  '' .$readMoreLink;
						}
					} else {
						$post['text'] .= '';
					}

					echo $post['text'];
					?>
				</blockquote>
			</li>
<?php
		}
?>
	</ul>
	<?php  // only display more link for the bloglistingbox
		if (strpos($blogListingClass, 'WikiaBlogListingBox') !== false && !empty($seeMoreUrl)) {
			echo XML::element('a', array( 'href'=> $seeMoreUrl, 'class' => 'more'), wfMsg('oasis-more'));
		}
		if (isset($pager)) {
			echo "<div id='wk_blogs_loader2' style='float:right;'></div>";
			echo "<div class='wk_blogs_pager'>";
			echo $pager;
			echo "</div>";
		}
	?>
</section>
 public function execute($subpage)
 {
     wfProfileIn(__METHOD__);
     $this->games = WF::build('ScavengerHuntGames');
     $this->setHeaders();
     $this->mTitle = SpecialPage::getTitleFor('scavengerhunt');
     if ($this->isRestricted() && !$this->userCanExecute($this->user)) {
         $this->displayRestrictionError();
         return;
     }
     @(list($action, $id) = explode('/', $subpage));
     $action = !empty($action) ? $action : 'list';
     $id = (int) $id;
     $game = $this->games->findById($id);
     if (empty($game)) {
         $game = $this->games->newGame();
     }
     // check edit tokens
     if ($this->request->wasPosted() && !$this->user->matchEditToken($this->request->getVal('wpEditToken'))) {
         NotificationsController::addConfirmation(wfMsg('scavengerhunt-edit-token-mismatch'), NotificationsController::CONFIRMATION_ERROR);
         $this->out->redirect($this->mTitle->getFullUrl());
         return;
     }
     $this->out->addStyle(AssetsManager::getInstance()->getSassCommonURL('extensions/wikia/ScavengerHunt/css/scavenger-special.scss'));
     $this->out->addStyle(AssetsManager::getInstance()->getSassCommonURL('extensions/wikia/ScavengerHunt/css/scavenger-game.scss'));
     $this->out->addScriptFile($this->app->getGlobal('wgExtensionsPath') . '/wikia/ScavengerHunt/js/scavenger-special.js');
     $template = WF::build('EasyTemplate', array(dirname(__FILE__) . '/templates/'));
     $errors = array();
     switch ($action) {
         case 'list':
             $button = '<a class="wikia-button scavengerhunt-add-button" href="' . $this->mTitle->getFullUrl() . '/add">' . XML::element('img', array('class' => 'sprite new', 'src' => $this->app->getGlobal('wgBlankImgUrl'))) . wfMsg('scavengerhunt-button-add') . '</a>';
             $this->out->mPagetitle .= $button;
             $this->out->mPageLinkTitle = true;
             // Games list
             $pager = WF::build('ScavengerHuntGamesPager', array($this->games, $this->mTitle->getFullUrl(), $template));
             $this->out->addHTML($pager->getBody() . $pager->getNavigationBar());
             break;
         case 'toggle':
             $enable = !$game->isEnabled();
             $game->setEnabled($enable);
             $errors = $this->validateGame($game);
             if (empty($errors['errors'])) {
                 $game->save();
                 NotificationsController::addConfirmation($enable ? wfMsg('scavengerhunt-game-has-been-enabled') : wfMsg('scavengerhunt-game-has-been-disabled'));
                 //success! go to the list
                 $this->out->redirect($this->mTitle->getFullUrl());
                 return;
             } else {
                 //failure - display errors
                 $game->setEnabled(false);
             }
             // no "break" on purpose - wasPosted() will return false but we'll display proper template
         // no "break" on purpose - wasPosted() will return false but we'll display proper template
         case 'edit':
             if ($this->request->wasPosted()) {
                 if ($this->request->getVal('enable')) {
                     $enabled = !$this->request->getVal('prevEnabled');
                     $game->setEnabled($enabled);
                     $errors = $this->validateGame($game);
                     if (empty($errors['errors'])) {
                         $game->save();
                         NotificationsController::addConfirmation($enabled ? wfMsg('scavengerhunt-game-has-been-enabled') : wfMsg('scavengerhunt-game-has-been-disabled'));
                         $this->out->redirect($this->mTitle->getFullUrl() . "/edit/{$id}");
                         return;
                     } else {
                         $game->setEnabled(false);
                     }
                 } else {
                     if ($this->request->getVal('delete')) {
                         $game->delete();
                         NotificationsController::addConfirmation(wfMsg('scavengerhunt-game-has-been-deleted'));
                         $this->out->redirect($this->mTitle->getFullUrl());
                         return;
                     }
                 }
             }
             // no "break" on purpose
         // no "break" on purpose
         case 'add':
             if ($this->request->wasPosted()) {
                 if ($this->request->getVal('save')) {
                     $game = $this->updatePostedGame($game);
                     // move the validation process to the moment of enabling the game
                     $errors = $this->validateGame($game);
                     // save changes
                     if (empty($errors['errors']) && $game->save()) {
                         NotificationsController::addConfirmation($action == 'add' ? wfMsg('scavengerhunt-game-has-been-created') : wfMsg('scavengerhunt-game-has-been-saved'));
                         $this->out->redirect($this->mTitle->getFullUrl());
                         return;
                     } else {
                         NotificationsController::addConfirmation(wfMsg('scavengerhunt-game-has-not-been-saved'), NotificationsController::CONFIRMATION_NOTIFY);
                     }
                 }
             }
             $template->set('errors', isset($errors['errors']) ? $errors['errors'] : array());
             $template->set('highlight', isset($errors['highlight']) ? $errors['highlight'] : array());
             $template->set('editToken', $this->user->getEditToken());
             $template->set_vars($this->getTemplateVarsFromGame($game));
             $this->out->addHTML($template->render('form'));
             break;
     }
     wfProfileOut(__METHOD__);
 }
Exemple #13
0
 function dumpError($sql)
 {
     if (Kennel::$ROOT_URL && !Request::isAjax()) {
         // Non-ajax HTTP Request
         $table = XML::element('table', null, array('border' => '1'));
         $tr = XML::element('tr', $table);
         $th = XML::element('th', $tr, array('colspan' => '2'), "SQL query returned an error");
         $tr = XML::element('tr', $table);
         $th = XML::element('th', $tr, null, 'query');
         $td = XML::element('td', $tr, null, syntax::mysql($sql));
         $tr = XML::element('tr', $table);
         $th = XML::element('th', $tr, null, 'error');
         $td = XML::element('td', $tr, null, mysql_error(self::$CONN));
         $full_backtrace = debug_backtrace();
         $backtrace = $full_backtrace[2];
         if (isset($backtrace['file'])) {
             $tr = XML::element('tr', $table);
             $th = XML::element('th', $tr, null, 'file');
             $td = XML::element('td', $tr, null, $backtrace['file']);
         }
         if (isset($backtrace['line'])) {
             $tr = XML::element('tr', $table);
             $th = XML::element('th', $tr, null, 'line');
             $td = XML::element('td', $tr, null, $backtrace['line']);
         }
         if ($backtrace['class']) {
             $tr = XML::element('tr', $table);
             $th = XML::element('th', $tr, null, 'class');
             $td = XML::element('td', $tr, null, $backtrace['class']);
         }
         if ($backtrace['function']) {
             $tr = XML::element('tr', $table);
             $th = XML::element('th', $tr, null, 'function');
             $td = XML::element('td', $tr, null, $backtrace['function']);
         }
         echo $table;
     } else {
         // Ajax or cli
         $default = "";
         echo "\n";
         // red background, bold
         echo "SQL query returned an error:{$default}\n";
         $lines = explode("\n", $sql);
         foreach ($lines as $line) {
             echo "  {$line}\n";
         }
         $error = mysql_error(self::$CONN);
         echo "";
         // red
         echo "{$error}{$default}\n\n";
     }
     die;
 }
Exemple #14
0
 static function dump($return = false)
 {
     $table = XML::element('table', null, array('border' => '1', 'style' => 'background-color: #FFF; color: #000;'));
     $tr = XML::element('tr', $table);
     $td = XML::element('td', $tr, array('style' => 'font-weight: bold;'), 'Method');
     $td = XML::element('td', $tr, null, self::$METHOD);
     $tr = XML::element('tr', $table);
     $td = XML::element('td', $tr, array('style' => 'font-weight: bold;'), 'Resource');
     $td = XML::element('td', $tr, null, self::$RESOURCE);
     $tr = XML::element('tr', $table);
     $td = XML::element('td', $tr, array('style' => 'font-weight: bold;'), 'Controller');
     $td = XML::element('td', $tr, null, self::$CONTROLLER);
     $tr = XML::element('tr', $table);
     $td = XML::element('td', $tr, array('style' => 'font-weight: bold;'), 'Action');
     $td = XML::element('td', $tr, null, self::$ACTION);
     $tr = XML::element('tr', $table);
     $td = XML::element('td', $tr, array('style' => 'font-weight: bold;'), 'Arguments');
     $td = XML::element('td', $tr, null, debug::getDump(self::$ARGS, true));
     if ($return) {
         return $table;
     } else {
         print $table;
     }
 }
Exemple #15
0
 public function toXML($isSimplified)
 {
     global $wgDataTransferViewXMLParseFields;
     global $wgDataTransferViewXMLParseFreeText;
     global $wgParser, $wgTitle;
     if ($this->mIsTemplate) {
         global $wgContLang;
         $namespace_labels = $wgContLang->getNamespaces();
         $template_label = $namespace_labels[NS_TEMPLATE];
         $field_str = str_replace(' ', '_', wfMessage('dt_xml_field')->inContentLanguage()->text());
         $name_str = str_replace(' ', '_', wfMessage('dt_xml_name')->inContentLanguage()->text());
         $bodyXML = '';
         foreach ($this->mFields as $fieldName => $fieldValue) {
             // If this field itself holds template calls,
             // get the XML for those calls.
             if (is_array($fieldValue)) {
                 $fieldValueXML = '';
                 foreach ($fieldValue as $subComponent) {
                     $fieldValueXML .= $subComponent->toXML($isSimplified);
                 }
             } elseif ($wgDataTransferViewXMLParseFields) {
                 // Avoid table of contents and "edit" links
                 $fieldValue = $wgParser->parse("__NOTOC__ __NOEDITSECTION__\n" . $fieldValue, $wgTitle, new ParserOptions())->getText();
             }
             if ($isSimplified) {
                 if (is_numeric($fieldName)) {
                     // add "Field" to the beginning of the file name, since
                     // XML tags that are simply numbers aren't allowed
                     $fieldTag = $field_str . '_' . $fieldName;
                 } else {
                     $fieldTag = str_replace(' ', '_', trim($fieldName));
                 }
                 $attrs = null;
             } else {
                 $fieldTag = $field_str;
                 $attrs = array($name_str => $fieldName);
             }
             if (is_array($fieldValue)) {
                 $bodyXML .= Xml::tags($fieldTag, $attrs, $fieldValueXML);
             } else {
                 $bodyXML .= Xml::element($fieldTag, $attrs, $fieldValue);
             }
         }
         if ($isSimplified) {
             $templateName = str_replace(' ', '_', $this->mTemplateName);
             return Xml::tags($templateName, null, $bodyXML);
         } else {
             return Xml::tags($template_label, array($name_str => $this->mTemplateName), $bodyXML);
         }
     } else {
         $free_text_str = str_replace(' ', '_', wfMessage('dt_xml_freetext')->inContentLanguage()->text());
         if ($wgDataTransferViewXMLParseFreeText) {
             $freeText = $this->mFreeText;
             // Undo the escaping that happened before.
             $freeText = str_replace(array('&#123;', '&#125;'), array('{', '}'), $freeText);
             // Get rid of table of contents.
             $mw = MagicWord::get('toc');
             if ($mw->match($freeText)) {
                 $freeText = $mw->replace('', $freeText);
             }
             // Avoid "edit" links.
             $freeText = $wgParser->parse("__NOEDITSECTION__\n" . $freeText, $wgTitle, new ParserOptions())->getText();
         } else {
             $freeText = $this->mFreeText;
         }
         return XML::element($free_text_str, array('id' => $this->mFreeTextID), $freeText);
     }
 }
Exemple #16
0
 /**
  * link
  *
  * return XML/HTML code with link
  *
  * @access public
  * @static
  * @author eloy@wikia
  *
  * @param string $url: message for user
  * @param string $title: link body
  * @param mixed $attribs default null: attribbs for tag
  *
  * @todo safety checking
  *
  * @return string composed HTML/XML code
  */
 public static function linkTag($url, $title, $attribs = null)
 {
     return XML::element("a", array("href" => $url), $title);
 }