本文整理汇总了PHP中Goteo\Library\Text::html方法的典型用法代码示例。如果您正苦于以下问题:PHP Text::html方法的具体用法?PHP Text::html怎么用?PHP Text::html使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Goteo\Library\Text
的用法示例。
在下文中一共展示了Text::html方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: index
public function index()
{
if (isset($_GET['error'])) {
throw new \Goteo\Core\Error('418', Text::html('fatal-error-teapot'));
}
// orden de los elementos en portada
$order = Home::getAll();
// si estamos en easy mode, quitamos el feed
if (defined('GOTEO_EASY') && \GOTEO_EASY === true && isset($order['feed'])) {
unset($order['feed']);
}
// entradas de blog
if (isset($order['posts'])) {
// entradas en portada
$posts = Post::getAll();
}
// Proyectos destacados
if (isset($order['promotes'])) {
$promotes = Promote::getAll(true);
foreach ($promotes as $key => &$promo) {
try {
$promo->projectData = Project::getMedium($promo->project, LANG);
} catch (\Goteo\Core\Error $e) {
unset($promotes[$key]);
}
}
}
// actividad reciente
if (isset($order['feed'])) {
$feed = array();
$feed['goteo'] = Feed::getAll('goteo', 'public', 15);
$feed['projects'] = Feed::getAll('projects', 'public', 15);
$feed['community'] = Feed::getAll('community', 'public', 15);
}
// Banners siempre
/* $banners = Banner::getAll(true);
foreach ($banners as $id => &$banner) {
if (!empty($banner->project)) {
try {
$banner->project = Project::get($banner->project, LANG);
} catch (\Goteo\Core\Error $e) {
unset($banners[$id]);
}
}
}*/
$template = VIEW_PATH . '/index.html.php';
return new View($template, array('banners' => $banners, 'posts' => $posts, 'promotes' => $promotes, 'order' => $order));
}
示例2: index
public function index($post = null)
{
if (!empty($post)) {
$show = 'post';
// -- Mensaje azul molesto para usuarios no registrados
if (empty($_SESSION['user'])) {
$_SESSION['jumpto'] = '/blog/' . $post;
Message::Info(Text::html('user-login-required'));
}
} else {
$show = 'list';
}
// sacamos su blog
$blog = Model\Blog::get(\GOTEO_NODE, 'node');
$filters = array();
if (isset($_GET['tag'])) {
$tag = Model\Blog\Post\Tag::get($_GET['tag']);
if (!empty($tag->id)) {
$filters['tag'] = $tag->id;
}
} else {
$tag = null;
}
if (isset($_GET['author'])) {
$author = Model\User::getMini($_GET['author']);
if (!empty($author->id)) {
$filters['author'] = $author->id;
}
} else {
$author = null;
}
if (!empty($filters)) {
$blog->posts = Model\Blog\Post::getList($filters);
}
if (isset($post) && !isset($blog->posts[$post]) && $_GET['preview'] != $_SESSION['user']->id) {
throw new \Goteo\Core\Redirection('/blog');
}
// segun eso montamos la vista
return new View('view/blog/index.html.php', array('blog' => $blog, 'show' => $show, 'filters' => $filters, 'post' => $post, 'owner' => \GOTEO_NODE));
}
示例3:
"/>
<?php
if (isset($errors['rpassword'])) {
?>
<em><?php
echo $errors['rpassword'];
?>
</em><?php
}
?>
</div>
<input class="checkbox" id="register_accept" name="confirm" type="checkbox" value="true" />
<label class="conditions" for="register_accept"><?php
echo Text::html('login-register-conditions');
?>
</label><br />
<button class="disabled" disabled="disabled" id="register_continue" name="register" type="submit" value="register"><?php
echo Text::get('login-register-button');
?>
</button>
</form>
</div>
</div>
</div>
<?php
示例4: elseif
<span class="left"><?php
echo Text::get('invest-reward-none');
?>
</span>
<?php
} elseif (!empty($individual->units)) {
// unidades limitadas
?>
<strong><?php
echo Text::get('project-rewards-individual_reward-limited');
?>
</strong><br />
<?php
$units = $individual->units - $individual->taken;
// resto
echo Text::html('project-rewards-individual_reward-units_left', $units);
?>
<br />
<?php
}
?>
</label>
</li>
<?php
}
?>
</ul>
</div>
</div>
示例5: activate
/**
* Activación usuario.
*
* @param type string $token
*/
public function activate($token)
{
$query = Model\User::query('SELECT id FROM user WHERE token = ?', array($token));
if ($id = $query->fetchColumn()) {
$user = Model\User::get($id);
if (!$user->confirmed) {
$user->confirmed = true;
$user->active = true;
if ($user->save($errors)) {
Message::Info(Text::get('user-activate-success'));
$_SESSION['user'] = $user;
// Evento Feed
$log = new Feed();
$log->setTarget($user->id, 'user');
$log->populate('nuevo usuario registrado (confirmado)', '/admin/users', Text::html('feed-new_user', Feed::item('user', $user->name, $user->id)));
$log->doAdmin('user');
// evento público
$log->title = $user->name;
$log->url = null;
$log->doPublic('community');
unset($log);
} else {
Message::Error($errors);
}
} else {
Message::Info(Text::get('user-activate-already-active'));
}
} else {
Message::Error(Text::get('user-activate-fail'));
}
throw new Redirection('/dashboard');
}
示例6: comunication
public function comunication()
{
@mail(\GOTEO_FAIL_MAIL, 'Comunicacion online', 'Este GET<pre>' . print_r($_GET, 1) . '</pre> y este POST:<pre>' . print_r($_POST, 1) . '</pre>');
if (isset($_POST['__expected_field___'])) {
$_POST['invest'] = $id = $_POST['__expected_field___'];
$invest = Invest::get($id);
$userData = User::getMini($invest->user);
$projectData = Project::getMini($invest->project);
$response = '';
foreach ($_POST as $n => $v) {
$response .= "{$n}:'{$v}'; ";
}
$conf = array('mode' => 0600, 'timeFormat' => '%X %x');
$logger =& \Log::singleton('file', 'logs/' . date('Ymd') . '_invest.log', 'caller', $conf);
$logger->log("response: {$response}");
$logger->log('##### END TPV [' . $id . '] ' . date('d/m/Y') . ' ' . $_POST['__expected_field___'] . '#####');
$logger->close();
if (!empty($_POST['__expected_field___'])) {
try {
$tpvRef = $_POST['__expected_field___'];
$tpvAut = $_POST['__expected_field___'];
$values = array(':id' => $invest->id, ':payment' => $tpvRef, ':transaction' => $tpvAut, ':charged' => date('Y-m-d'));
$sql = "UPDATE invest\n SET\n status = 1,\n payment = :payment,\n charged = :charged,\n transaction = :transaction\n WHERE id = :id";
if (Invest::query($sql, $values)) {
Invest::setDetail($invest->id, 'tpv-response', 'La comunicación online del tpv se a completado correctamente. Proceso controller/tpv');
} else {
@mail(\GOTEO_FAIL_MAIL, 'Error db en comunicacion online', 'En la grabación de referencia, num auth. y estado. Ha fallado: ' . $sql . ' ' . print_r($values, 1) . '<hr /><pre>' . print_r($invest, 1) . '</pre>');
}
// CALLSYS
} catch (\PDOException $e) {
@mail(\GOTEO_FAIL_MAIL, 'Error db en comunicacion online', 'En la grabación de referencia, num auth. y estado. Ha dado un PDO::Exception<br /><pre>' . print_r($invest, 1) . '</pre>');
}
$_POST['result'] = 'Transaccion ok';
$log_text = "%s ha aportado %s al proyecto %s mediante TPV";
$doPublic = true;
echo '$*$OKY$*$';
} else {
$Cerr = (string) $_POST['Codigo_error'];
$errTxt = self::$errcode[$Cerr];
Invest::setDetail($invest->id, 'tpv-response-error', 'El tpv ha comunicado el siguiente Codigo error: ' . $Cerr . ' - ' . $errTxt . '. El aporte a quedado \'En proceso\'. Proceso controller/tpv');
@mail(\GOTEO_FAIL_MAIL, 'Error en TPV', 'Codigo error: ' . $Cerr . ' ' . $errTxt . '<br /><pre>' . print_r($_POST, 1) . '</pre>');
$invest->cancel('ERR ' . $Cerr);
$_POST['result'] = 'Fail';
$log_text = 'Ha habido un <span class="red">ERROR de TPV (Codigo: ' . $Cerr . ' ' . $errTxt . ')</span> en el aporte de %s de %s al proyecto %s mediante TPV';
$doPublic = false;
}
// Evento Feed
$log = new Feed();
$log->setTarget($projectData->id);
$log->populate('Aporte TPV', '/admin/invests', \vsprintf($log_text, $log_items = array(Feed::item('user', $userData->name, $userData->id), Feed::item('money', $invest->amount . ' €'), Feed::item('project', $projectData->name, $projectData->id))));
$log->doAdmin('money');
if ($doPublic) {
// evento público
$log_html = Text::html('feed-invest', Feed::item('money', $invest->amount . ' €'), Feed::item('project', $projectData->name, $projectData->id));
if ($invest->anonymous) {
$log->populate(Text::get('regular-anonymous'), '/user/profile/anonymous', $log_html, 1);
} else {
$log->populate($userData->name, '/user/profile/' . $userData->id, $log_html, $userData->avatar->id);
}
$log->doPublic('community');
}
unset($log);
} else {
echo 'Se esperaban recibir datos de comunicación online del TPV.';
@mail(\GOTEO_FAIL_MAIL, 'Comunicacion online sin datos', 'Este GET<pre>' . print_r($_GET, 1) . '</pre> y este POST:<pre>' . print_r($_POST, 1) . '</pre>');
// throw new Redirection('/', Error::BAD_REQUEST);
}
die;
}
示例7: View
$(".navi-discover-group").click(function (event) {
event.preventDefault();
/* Quitar todos los active, ocultar todos los elementos */
$(".navi-discover-group-"+this.rev).removeClass('active');
$(".discover-group-"+this.rev).hide();
/* Poner acctive a este, mostrar este */
$("#navi-discover-group-"+this.rel).addClass('active');
$("#discover-group-"+this.rel).show();
});
});
</script>
<div id="sub-header">
<div>
<h2><?php
echo Text::html('discover-banner-header');
?>
</h2>
</div>
</div>
<div id="main">
<?php
echo new View('view/discover/searcher.html.php', array('categories' => $categories, 'locations' => $locations, 'rewards' => $rewards));
?>
<?php
foreach ($this['lists'] as $type => $list) {
if (array_empty($list)) {
continue;
}
示例8: htmlspecialchars
<form action="/user/oauth_register" method="post">
<div class="userid">
<label for="RegisterUserid"><?php echo Text::get('login-register-userid-field'); ?></label>
<input type="text" id="RegisterUserid" name="userid" value="<?php echo htmlspecialchars($username) ?>"/>
<?php if(isset($errors['userid'])) { ?><em><?php echo $errors['userid']?></em><?php } ?>
</div>
<div class="email">
<label for="RegisterEmail"><?php echo Text::get('login-register-email-field'); ?></label>
<input type="text" id="RegisterEmail" name="email" value="<?php echo htmlspecialchars($email) ?>"/>
<?php if(isset($errors['email'])) { ?><em><?php echo $errors['email']?></em><?php } ?>
</div>
<input class="checkbox" id="register_accept" name="confirm" type="checkbox" value="true" />
<label class="conditions" for="register_accept"><?php echo Text::html('login-register-conditions'); ?></label><br />
<button class="disabled" disabled="disabled" id="register_continue" name="register" type="submit" value="register"><?php echo Text::get('login-register-button'); ?></button>
<?php
//tokens para poder saber que es un registro automatico
foreach($oauth->tokens as $key => $val) {
if($val['token']) echo '<input type="hidden" name="tokens[' . $key . '][token]" value="' . htmlspecialchars($val['token']) . '" />';
if($val['secret']) echo '<input type="hidden" name="tokens[' . $key . '][secret]" value="' . htmlspecialchars($val['secret']) . '" />';
}
//data extra para incluir al usuario
foreach($oauth->user_data as $key => $val) {
if($val && $key!='email') echo '<input type="hidden" name="' . $key . '" value="' . htmlspecialchars($val) . '" />';
}
//proveedor
示例9: execute
public function execute()
{
if (!\defined('CRON_EXEC')) {
@mail(\GOTEO_FAIL_MAIL, 'Se ha lanzado MANUALMENTE el cron ' . __FUNCTION__ . ' en ' . SITE_URL, 'Se ha lanzado manualmente el cron ' . __FUNCTION__ . ' en ' . SITE_URL . ' a las ' . date('H:i:s') . ' Usuario ' . $_SESSION['user']->id);
echo 'Lanzamiento manual a las ' . date('H:i:s') . ' <br />';
} else {
echo 'Lanzamiento automatico a las ' . date('H:i:s') . ' <br />';
}
// a ver si existe el bloqueo
$block_file = GOTEO_PATH . 'logs/cron-' . __FUNCTION__ . '.block';
if (file_exists($block_file)) {
echo 'Ya existe un archivo de log ' . date('Ymd') . '_' . __FUNCTION__ . '.log<br />';
$block_content = \file_get_contents($block_file);
echo 'El contenido del bloqueo es: ' . $block_content;
// lo escribimos en el log
$log_file = GOTEO_PATH . 'logs/cron/' . date('Ymd') . '_' . __FUNCTION__ . '.log';
\file_put_contents($log_file, \ob_get_contents(), FILE_APPEND);
\chmod($log_file, 0777);
/*
@mail(\GOTEO_FAIL_MAIL, 'Cron '. __FUNCTION__ .' bloqueado en ' . SITE_URL,
'Se ha encontrado con que el cron '. __FUNCTION__ .' está bloqueado el '.date('d-m-Y').' a las ' . date ('H:i:s') . '
El contenido del bloqueo es: '. $block_content);
*/
die;
} else {
$block = 'Bloqueo del ' . $block_file . ' activado el ' . date('d-m-Y') . ' a las ' . date('H:i:s') . '<br />';
if (\file_put_contents($block_file, $block, FILE_APPEND)) {
\chmod($block_file, 0777);
echo $block;
} else {
echo 'No se ha podido crear el archivo de bloqueo<br />';
@mail(\GOTEO_FAIL_MAIL, 'Cron ' . __FUNCTION__ . ' no se ha podido bloquear en ' . SITE_URL, 'No se ha podido crear el archivo ' . $block_file . ' el ' . date('d-m-Y') . ' a las ' . date('H:i:s'));
}
}
echo '<hr />';
// debug para supervisar en las fechas clave
// $debug = ($_GET['debug'] == 'debug') ? true : false;
$debug = true;
// revision de proyectos: dias, conseguido y cambios de estado
// proyectos en campaña,
// (publicados hace más de 40 días que no tengan fecha de pase)
// o (publicados hace mas de 80 días que no tengan fecha de exito)
$projects = Model\Project::getActive();
if ($debug) {
echo 'Comenzamos con los proyectos en campaña (esto está en ' . \LANG . ')<br /><br />';
}
foreach ($projects as $project) {
if ($debug) {
echo 'Proyecto ' . $project->name . '<br />';
}
// a ver si tiene cuenta paypal
$projectAccount = Model\Project\Account::get($project->id);
/*
if (empty($projectAccount->paypal)) {
if ($debug) echo 'No tiene cuenta PayPal<br />';
// Evento Feed solamente si automático
if (\defined('CRON_EXEC')) {
$log = new Feed();
$log->setTarget($project->id);
$log->populate('proyecto sin cuenta paypal (cron)', '/admin/projects',
\vsprintf('El proyecto %s aun no ha puesto su %s !!!', array(
Feed::item('project', $project->name, $project->id),
Feed::item('relevant', 'cuenta PayPal')
)));
$log->doAdmin('project');
unset($log);
// mail de aviso
$mailHandler = new Mail();
$mailHandler->to = \GOTEO_CONTACT_MAIL;
$mailHandler->toName = 'Goteo.org';
$mailHandler->subject = 'El proyecto '.$project->name.' no tiene cuenta PayPal';
$mailHandler->content = 'Hola Goteo, el proyecto '.$project->name.' no tiene cuenta PayPal y el proceso automatico no podrá tratar los preaprovals al final de ronda.';
$mailHandler->html = false;
$mailHandler->template = null;
$mailHandler->send();
unset($mailHandler);
$task = new Model\Task();
$task->node = \GOTEO_NODE;
$task->text = "Poner la cuenta PayPal al proyecto <strong>{$project->name}</strong> urgentemente!";
$task->url = "/admin/projects/accounts/{$project->id}";
$task->done = null;
$task->saveUnique();
}
}
*/
$log_text = null;
if ($debug) {
echo 'Minimo: ' . $project->mincost . ' ¥ <br />';
}
$execute = false;
$cancelAll = false;
if ($debug) {
echo 'Obtenido: ' . $project->amount . ' ¥<br />';
}
//.........这里部分代码省略.........
示例10:
?>
><?php
echo $lng->name;
?>
</option>
<?php
}
?>
</select>
</form>
<?php
if ($_SESSION['translate_type'] == 'project' && !empty($_SESSION['translate_project'])) {
?>
<p><?php
echo Text::html('dashboard-translate-doing_project', $_SESSION['translate_project']->name, $this['project']->lang_name);
?>
</p>
<?php
}
?>
<?php
if (!empty($_SESSION['translate_type']) && $_SESSION['translate_type'] != 'profile') {
?>
<a href="#" name="profile" class="button aqua" onclick="item_select('profile');"><?php
echo Text::get('dashboard-translate-select_profile');
?>
</a>
<?php
} else {
示例11:
}
img a {
border:none;
border-style:none
}
</style>
</head>
<body style="margin: 0px; padding: 0px; font-family: Helvetica, Arial, Geneva, sans-serif; color:#58595B; padding-left: 20px; background-color: #f1f1f1;">
<?php
if (isset($this['sinoves'])) {
?>
<div style="width: 100%; height: 22px; line-height:22px; font-size:10px; color:#cccccc; background-color:#58595B;"><span style="margin-left:50px;"><?php
echo Text::html('mailer-sinoves', $this['sinoves'] . '" style="color:white;');
?>
</span></div><?php
}
?>
<div style="width: 100%; background-color:#CDE4E5; padding-top:7px; padding-bottom:7px;"><span style="margin-left:50px;"><img src="cid:logo" alt="Goteo"/></span></div>
<div style="width:630px; margin-left:50px; margin-top:20px;">
<div><!--mensaje - contenido-->
<?php
echo $this['content'];
?>
</div>
<div style="font-size:11px; color:#20B3B2; padding-bottom:10px; padding-top:10px; border-bottom: 1px solid #20B3B2; border-top: 1px solid #20B3B2;"><?php
示例12: get
public static function get($id, $lang = null)
{
try {
// metemos los datos del proyecto en la instancia
$query = self::query("SELECT * FROM project WHERE id = ?", array(urldecode($id)));
$project = $query->fetchObject(__CLASS__);
if (!$project instanceof \Goteo\Model\Project) {
throw new \Goteo\Core\Error('404', Text::html('fatal-error-project'));
}
// si recibimos lang y no es el idioma original del proyecto, ponemos la traducción y mantenemos para el resto de contenido
if ($lang == $project->lang) {
$lang = null;
} elseif (!empty($lang)) {
$sql = "\n SELECT\n IFNULL(project_lang.description, project.description) as description,\n IFNULL(project_lang.motivation, project.motivation) as motivation,\n IFNULL(project_lang.video, project.video) as video,\n IFNULL(project_lang.about, project.about) as about,\n IFNULL(project_lang.goal, project.goal) as goal,\n IFNULL(project_lang.related, project.related) as related,\n IFNULL(project_lang.reward, project.reward) as reward,\n IFNULL(project_lang.keywords, project.keywords) as keywords,\n IFNULL(project_lang.media, project.media) as media,\n IFNULL(project_lang.subtitle, project.subtitle) as subtitle,\n IFNULL(project_lang.evaluation, project.evaluation) as evaluation\n FROM project\n LEFT JOIN project_lang\n ON project_lang.id = project.id\n AND project_lang.lang = :lang\n WHERE project.id = :id\n ";
$query = self::query($sql, array(':id' => $id, ':lang' => $lang));
foreach ($query->fetch(\PDO::FETCH_ASSOC) as $field => $value) {
$project->{$field} = $value;
}
}
if (isset($project->media)) {
$project->media = new Project\Media($project->media);
}
if (isset($project->video)) {
$project->video = new Project\Media($project->video);
}
// owner
$project->user = User::get($project->owner, $lang);
// galeria
$project->gallery = Project\Image::getGallery($project->id);
// imágenes por sección
foreach (Project\Image::sections() as $sec => $val) {
if ($sec != '') {
$project->secGallery[$sec] = Project\Image::get($project->id, $sec);
}
}
// categorias
$project->categories = Project\Category::get($id);
// skills
$project->skills = Project\Skill::get($id);
// costes y los sumammos
$project->costs = Project\Cost::getAll($id, $lang);
$project->minmax();
// retornos colectivos
$project->social_rewards = Project\Reward::getAll($id, 'social', $lang);
// retornos individuales
$project->individual_rewards = Project\Reward::getAll($id, 'individual', $lang);
// colaboraciones
$project->supports = Project\Support::getAll($id, $lang);
//-----------------------------------------------------------------
// Diferentes verificaciones segun el estado del proyecto
//-----------------------------------------------------------------
$project->investors = Invest::investors($id);
$project->num_investors = Invest::numInvestors($id);
$amount = Invest::invested($id);
if ($project->invested != $amount) {
self::query("UPDATE project SET amount = '{$amount}' WHERE id = ?", array($id));
}
$project->invested = $amount;
$project->amount = $amount;
//mensajes y mensajeros
$messegers = array();
$project->messages = Message::getAll($id, $lang);
$project->num_messages = 0;
foreach ($project->messages as $msg) {
$project->num_messages++;
$project->num_messages += count($msg->responses);
$messegers[$msg->user] = $msg->user;
}
$project->num_messegers = count($messegers);
$project->setDays();
$project->setTagmark();
// fecha final primera ronda (fecha campaña + 40)
if (!empty($project->published)) {
$ptime = strtotime($project->published);
$project->willpass = date('Y-m-d', \mktime(0, 0, 0, date('m', $ptime), date('d', $ptime) + 40, date('Y', $ptime)));
}
//-----------------------------------------------------------------
// Fin de verificaciones
//-----------------------------------------------------------------
return $project;
} catch (\PDOException $e) {
throw new \Goteo\Core\Exception($e->getMessage());
} catch (\Goteo\Core\Error $e) {
throw new \Goteo\Core\Error('404', Text::html('fatal-error-project'));
}
}
示例13: if
Goteo\Library\Text;
$bodyClass = 'user-login';
// para que el prologue ponga el c�digo js para bot�n facebook en el bannerside
$fbCode = Text::widget(Text::get('social-account-facebook'), 'fb');
include 'view/prologue.html.php';
include 'view/header.html.php';
$error = $this['error'];
$message = $this['message'];
extract($_POST);
?>
<div id="sub-header">
<div class="clearfix">
<div class="subhead-banner">
<h2 class="message"><?php echo Text::html('login-banner-header'); ?></h2>
</div>
<?/*<div class="mod-pojctopen"><?php echo Text::html('open-banner-header', $fbCode); ?></div>*/?>
</div>
</div>
<div id="main">
<div class="login">
<div>
<h2><?php echo Text::get('login-recover-header'); ?></h2>
<?php if (!empty($error)): ?>
<p class="error"><?php echo $error; ?></p>
<?php endif ?>
示例14: paid
public function paid($id = null)
{
if ($_GET['result'] != 'ok') {
die;
}
$id = $_GET['sendid'];
if (empty($id)) {
die;
}
// el aporte
$invest = Model\Invest::get($id);
if ($invest->status != "-1") {
die;
}
$projectData = Model\Project::getMedium($invest->project);
// para evitar las duplicaciones de feed y email
if (isset($_SESSION['invest_' . $invest->id . '_completed'])) {
die;
}
$user = Model\User::get($invest->user);
// Paypal solo disponible si activado
if ($invest->method == 'axes') {
// hay que cambiarle el status a 0
$invest->setStatus('0');
// Evento Feed
$log = new Feed();
$log->setTarget($projectData->id);
$log->populate('Aporte Axes', '/admin/invests', \vsprintf("%s ha aportado %s al proyecto %s mediante PayPal", array(Feed::item('user', $user->name, $user->id), Feed::item('money', $invest->amount . ' ¥'), Feed::item('project', $projectData->name, $projectData->id))));
$log->doAdmin('money');
// evento público
$log_html = Text::html('feed-invest', Feed::item('money', $invest->amount . ' ¥'), Feed::item('project', $projectData->name, $projectData->id));
if ($invest->anonymous) {
$log->populate(Text::get('regular-anonymous'), '/user/profile/anonymous', $log_html, 1);
} else {
$log->populate($user->name, '/user/profile/' . $user->id, $log_html, $user->avatar->id);
}
$log->doPublic('community');
unset($log);
}
// fin segun metodo
// texto recompensa
// @TODO quitar esta lacra de N recompensas porque ya es solo una recompensa siempre
$rewards = $invest->rewards;
array_walk($rewards, function (&$reward) {
$reward = $reward->reward;
});
$txt_rewards = implode(', ', $rewards);
// recaudado y porcentaje
$amount = $projectData->invested;
$percent = floor($projectData->invested / $projectData->mincost * 100);
// email de agradecimiento al cofinanciador
// primero monto el texto de recompensas
//@TODO el concepto principal sería 'renuncia' (porque todos los aportes son donativos)
if ($invest->resign) {
// Plantilla de donativo segun la ronda
if ($projectData->round == 2) {
$template = Template::get(36);
// en segunda ronda
} else {
$template = Template::get(28);
// en primera ronda
}
} else {
// plantilla de agradecimiento segun la ronda
if ($projectData->round == 2) {
$template = Template::get(34);
// en segunda ronda
} else {
$template = Template::get(10);
// en primera ronda
}
}
// Dirección en el mail (y version para regalo)
$txt_address = Text::get('invest-address-address-field') . ' ' . $invest->address->address;
$txt_address .= '<br> ' . Text::get('invest-address-zipcode-field') . ' ' . $invest->address->zipcode;
// $txt_address .= '<br> ' . Text::get('invest-address-location-field') . ' ' . $invest->address->location;
// $txt_address .= '<br> ' . Text::get('invest-address-country-field') . ' ' . $invest->address->country;
$txt_destaddr = $txt_address;
$txt_address = Text::get('invest-mail_info-address') . '<br>' . $txt_address;
// Agradecimiento al cofinanciador
// Sustituimos los datos
$subject = str_replace('%PROJECTNAME%', $projectData->name, $template->title);
// En el contenido:
$search = array('%USERNAME%', '%PROJECTNAME%', '%PROJECTURL%', '%AMOUNT%', '%REWARDS%', '%ADDRESS%');
$replace = array($user->name, $projectData->name, SITE_URL . '/project/' . $projectData->id, $confirm->amount, $txt_rewards, $txt_address);
$content = \str_replace($search, $replace, $template->text);
$mailHandler = new Mail();
$mailHandler->reply = GOTEO_CONTACT_MAIL;
$mailHandler->replyName = GOTEO_MAIL_NAME;
$mailHandler->to = $user->email;
$mailHandler->toName = $user->name;
$mailHandler->subject = $subject;
$mailHandler->content = $content;
$mailHandler->html = true;
$mailHandler->template = $template->id;
if ($mailHandler->send($errors)) {
Message::Info(Text::get('project-invest-thanks_mail-success'));
} else {
Message::Error(Text::get('project-invest-thanks_mail-fail'));
Message::Error(implode('<br />', $errors));
//.........这里部分代码省略.........
示例15: view
private function view($id, $show, $post = null)
{
$project = Model\Project::get($id, LANG);
// recompensas
foreach ($project->individual_rewards as &$reward) {
$reward->none = false;
$reward->taken = $reward->getTaken();
// cofinanciadores quehan optado por esta recompensas
// si controla unidades de esta recompensa, mirar si quedan
if ($reward->units > 0 && $reward->taken >= $reward->units) {
$reward->none = true;
}
}
// mensaje cuando, sin estar en campaña, tiene fecha de publicación, es que la campaña ha sido cancelada
if ($project->status < 3 && !empty($project->published)) {
Message::Info(Text::get('project-unpublished'));
} elseif ($project->status < 3) {
// mensaje de no publicado siempre que no esté en campaña
Message::Info(Text::get('project-not_published'));
}
// solamente se puede ver publicamente si...
$grant = false;
if ($project->status > 2) {
// está publicado
$grant = true;
} elseif ($project->owner == $_SESSION['user']->id) {
// es el dueño
$grant = true;
} elseif (ACL::check('/project/edit/todos')) {
// es un admin
$grant = true;
} elseif (ACL::check('/project/view/todos')) {
// es un usuario con permiso
$grant = true;
} elseif (isset($_SESSION['user']->roles['checker']) && Model\User\Review::is_assigned($_SESSION['user']->id, $project->id)) {
// es un revisor y lo tiene asignado
$grant = true;
}
// (Callsys)
// si lo puede ver
if ($grant) {
$viewData = array('project' => $project, 'show' => $show);
// sus entradas de novedades
$blog = Model\Blog::get($project->id);
// si está en modo preview, ponemos todas las entradas, incluso las no publicadas
if (isset($_GET['preview']) && $_GET['preview'] == $_SESSION['user']->id) {
$blog->posts = Model\Blog\Post::getAll($blog->id, null, false);
}
$viewData['blog'] = $blog;
// tenemos que tocar esto un poquito para motrar las necesitades no economicas
if ($show == 'needs-non') {
$viewData['show'] = 'needs';
$viewData['non-economic'] = true;
}
// -- Mensaje azul molesto para usuarios no registrados
if (($show == 'messages' || $show == 'updates') && empty($_SESSION['user'])) {
Message::Info(Text::html('user-login-required'));
}
//tenemos que tocar esto un poquito para gestionar los pasos al aportar
if ($show == 'invest') {
// si no está en campaña no pueden estar aqui ni de coña
if ($project->status != 3) {
Message::Info(Text::get('project-invest-closed'));
throw new Redirection('/project/' . $id, Redirection::TEMPORARY);
}
$viewData['show'] = 'supporters';
/* pasos de proceso aporte
*
* 1, 'start': ver y seleccionar recompensa (y cantidad)
* 2, 'login': loguear con usuario/contraseña o con email (que crea el usuario automáticamente)
* 3, 'confirm': confirmar los datos y saltar a la pasarela de pago
* 4, 'ok'/'fail': al volver de la pasarela de pago, la confirmación nos dice si todo bien o algo mal
* 5, 'continue': recuperar aporte incompleto (variante de confirm)
*/
// usamos la variable de url $post para movernos entre los pasos
$step = isset($post) && in_array($post, array('start', 'login', 'confirm', 'continue')) ? $post : 'start';
// si llega confirm ya ha terminado el proceso de aporte
if (isset($_GET['confirm']) && \in_array($_GET['confirm'], array('ok', 'fail'))) {
unset($_SESSION['invest-amount']);
// confirmación
$step = $_GET['confirm'];
} else {
// si no, a ver en que paso estamos
if (isset($_GET['amount'])) {
$_SESSION['invest-amount'] = $_GET['amount'];
}
// si el usuario está validado, recuperamos posible amount y mostramos
if ($_SESSION['user'] instanceof Model\User) {
$step = 'confirm';
} elseif ($step != 'start' && empty($_SESSION['user'])) {
// si no está validado solo puede estar en start
Message::Info(Text::get('user-login-required-to_invest'));
$step = 'start';
} elseif ($step == 'start') {
// para cuando salte
$_SESSION['jumpto'] = SEC_URL . '/project/' . $id . '/invest/#continue';
} else {
$step = 'start';
}
}
//.........这里部分代码省略.........