function _edit_home() { global $user, $style; $v = $this->__(array('id' => 0)); $sql = 'SELECT * FROM _email WHERE email_id = ?'; $email = sql_fieldrow(sql_filter($sql, $v['id'])); if (!$email = sql_fieldrow(sql_filter($sql, $v['id']))) { $this->e('El registro de email no existe.'); } $v_fields = array('data', 'batch', 'gretting', 'from', 'from_address', 'subject', 'message'); if (_button()) { $v = array_merge($v, $this->__($v_fields)); $v['data'] = '_email_' . $v['data']; $v['message'] = str_replace(array('<', '>', '"'), array('<', '>', '"'), $v['message']); $sql = 'UPDATE _email SET ?? WHERE email_id = ?'; sql_query(sql_filter($sql, sql_build('UPDATE', ksql('email', $v)), $v['id'])); $this->e('El mensaje programado fue actualizado.'); } $tables = sql_rowset('SHOW TABLES', false, false, false, MYSQL_NUM); $i = 0; foreach ($tables as $table) { $table = $table[0]; $search = '_email_'; if (preg_match('#' . $search . '#i', $table)) { if (!$i) { $style->assign_block_vars('tables', array()); } $style->assign_block_vars('tables.row', array( 'TABLE' => str_replace($search, '', $table)) ); $i++; } } $sv = array(); foreach ($v_fields as $field) { $sv[strtoupper($field)] = $email['email_' . $field]; } $this->as_vars($sv); }
function home() { global $core, $user, $style; $tree = $this->valid_tree(); $v = $this->__(array('is_comment' => 0)); // Comment posting enabled and form submitted. if ($v['is_comment'] && $this->submit) { if (!$tree['tree_allow_comments']) { _fatal(); } $cv = $this->__(array('comment_username', 'comment_address', 'comment_website', 'comment_message', 'comment_security')); $comment_time = time(); if (!$user->d('is_member')) { foreach ($cv as $cv_k => $cv_v) { if (empty($cv_v)) { $this->error('E_COMMENT_FILL_FIELDS'); break; } } if (!$this->errors()) { $sql = "SELECT comment_time\n\t\t\t\t\t\tFROM _comments\n\t\t\t\t\t\tWHERE comment_ip = '" . $this->_escape($user->ip) . "'\n\t\t\t\t\t\t\tAND comment_status = 0"; if ($row_flood = $this->_fieldrow($sql)) { if ($comment_time - $row_flood['comment_time'] < 30) { $this->error('E_COMMENT_FLOOD_TIME'); } } } // CAPTCHA verification include XFS . 'core/xcf.php'; $xcf = new captcha(); if ($xcf->check($cv['comment_security']) === false) { $cv['comment_security'] = ''; $this->error('E_COMMENT_INVALID_CAPTCHA'); } unset($xcf); } if (!$this->errors()) { $approve_comments = !$user->d('is_member') ? $tree['tree_approve_comments'] : 1; $sql_insert = array('tree' => (int) $tree['tree_id'], 'uid' => (int) $user->d('user_id'), 'username' => $cv['comment_username'], 'email' => $cv['comment_address'], 'website' => $cv['comment_website'], 'ip' => $user->ip, 'status' => (int) $approve_comments, 'time' => (int) $comment_time, 'message' => $cv['comment_message']); $sql = 'INSERT INTO _comments' . $this->_build_array('INSERT', ksql('comment', $sql_insert)); $this->_sql($sql); if ($approve_comments) { $sql = 'UPDATE _tree SET tree_comments = tree_comments + 1 WHERE tree_id = ' . (int) $tree['tree_id']; $this->_sql($sql); } // Send new comment email notification for approval. if (!$approve_comments) { unset($cv['comment_security']); include XFS . 'core/emailer.php'; $emailer = new emailer(); $emailer->from($cv['comment_address']); $emailer->use_template('comment_approval'); if (empty($tree['tree_form_email'])) { $tree['tree_form_email'] = $core->v('default_comments_email'); } foreach (explode(';', $tree['tree_form_email']) as $i => $row) { $row_f = !$i ? 'email_address' : 'cc'; $emailer->{$row_f}($row); } $input = array(); foreach ($cv as $row_k => $row_v) { if (empty($row_v)) { continue; } if ($row_k == 'comment_message') { $row_v = str_replace("\r\n", '<br />', $row_v); } $input[] = '< ' . $row_v; } $emailer->assign_vars(array('U_APPROVAL' => _link($this->alias_id($tree), array('x1' => 'comments')), 'INPUT_FIELDS' => implode('<br /><br />', $input), 'FROM_USERNAME' => $cv['comment_username'])); $emailer->send(); $emailer->reset(); } redirect(_link($this->alias_id($tree))); } if ($this->errors()) { if (is_ghost()) { $this->e('!'); } $style->assign_block_vars('comments_error', array('MESSAGE' => $this->get_errors())); } } // if (!empty($tree['tree_redirect'])) { if (preg_match('#^[a-z0-9\\-\\_]+$#is', $tree['tree_redirect'])) { $tree['tree_redirect'] = _link($tree['tree_redirect']); } redirect($tree['tree_redirect']); } // if ($tree['tree_parent']) { $sql = 'SELECT * FROM _tree WHERE tree_id = ' . (int) $tree['tree_parent']; $parent = $this->_fieldrow($sql); if ($tree['tree_level'] > 2) { $sql = 'SELECT * FROM _tree WHERE tree_id = ' . (int) $parent['tree_parent']; $subparent = $this->_fieldrow($sql); } } if ($tree['tree_node']) { $sql = 'SELECT * FROM _tree WHERE tree_id = ' . (int) $tree['tree_node']; $node = $this->_fieldrow($sql); } // if (@method_exists($this, 'cf_' . $this->alias_id($tree))) { $this->{'cf_' . $this->alias_id($tree)}($tree); } // $sql = 'SELECT * FROM _tree WHERE tree_parent = ' . (int) $tree['tree_id'] . ' AND tree_child_hide = 0 ORDER BY ' . $this->child_order($tree); $childs = $this->_rowset($sql); foreach ($childs as $i => $row) { if (!$i) { $sql = 'SELECT image_id, image_tree, image_extension FROM _images WHERE image_tree IN (' . implode(',', array_keys($childs)) . ') ORDER BY RAND()'; $images_child = $this->_rowset($sql, 'tree_id'); $style->assign_block_vars('tree_child', array('ORDER_URL' => _link($tree['tree_id'], array('order', 0, 0, 0, 0)))); } $style->assign_block_vars('tree_child.row', array('ITEM' => $row['tree_id'], 'URL' => _link($this->alias_id($row)), 'SUBJECT' => $row['tree_subject'], 'CONTENT' => $row['tree_content'], 'EDITED' => $user->format_date($row['tree_edited']), 'IMAGE' => isset($images_child[$row['tree_id']]) ? $images_child[$row['tree_id']]['image_id'] . '.' . $images_child[$row['tree_id']]['image_extension'] : 'default.gif')); } // Comments if ($tree['tree_allow_comments'] && $tree['tree_comments']) { $sql = 'SELECT c.comment_id, c.comment_username, c.comment_website, c.comment_time, c.comment_message, m.user_username FROM _comments c, _members m WHERE c.comment_tree = ' . (int) $tree['tree_id'] . ' AND c.comment_status = 1 AND c.comment_uid = m.user_id ORDER BY c.comment_time DESC'; $comments = $this->_rowset($sql); foreach ($comments as $i => $row) { if (!$i) { $style->assign_block_vars('comments', array()); } $style->assign_block_vars('comments.row', array('ID' => $row['comment_id'], 'SUSERNAME' => $row['user_username'], 'USERNAME' => $row['comment_username'], 'WEBSITE' => $row['comment_website'], 'TIME' => $user->format_date($row['comment_time']), 'MESSAGE' => str_replace("\n", '<br />', $row['comment_message']))); } } // if ($this->css_parent($tree)) { $sql = 'SELECT * FROM _tree WHERE tree_parent = ' . (int) $this->css_var($tree) . ' AND tree_child_hide = 0 ORDER BY ' . $this->child_order($tree); $childs_parent = $this->_rowset($sql); foreach ($childs_parent as $i => $row) { if (!$i) { $sql = 'SELECT image_id, image_tree, image_extension FROM _images WHERE image_tree IN (' . implode(',', array_keys($childs_parent)) . ') ORDER BY RAND()'; $images_child_parent = $this->_rowset($sql, 'tree_id'); $style->assign_block_vars('tree_child', array('ORDER_URL' => _link($tree['tree_id'], array('order', 0, 0, 0, 0)))); } $style->assign_block_vars('tree_child_parent.row', array('ITEM' => $row['tree_id'], 'URL' => _link($this->alias_id($row)), 'TITLE' => $row['tree_subject'], 'IMAGE' => isset($images_child_parent[$row['tree_id']]) ? $images_child_parent[$row['tree_id']]['image_id'] . '.' . $images_child_parent[$row['tree_id']]['image_extension'] : 'default.gif')); } } if ($tree['tree_downloads']) { $sql = 'SELECT * FROM _downloads WHERE download_tree = ' . (int) $tree['tree_id'] . ' ORDER BY download_order'; $downloads = $this->_rowset($sql); foreach ($downloads as $i => $row) { if (!$i) { $style->assign_block_vars('downloads', array('ORDER_URL' => _link($tree['tree_id'], array('orderd', 0, 0, 0, 0)))); } $style->assign_block_vars('downloads.row', array('ITEM' => $row['download_id'], 'DOWNLOAD' => _link('get', $row['download_alias'] . '.' . $row['download_extension']), 'TITLE' => $row['download_title'])); } } // if ($tree['tree_form']) { $style->assign_block_vars('form', array('URL' => _link($this->alias_id($tree), 'form'))); } $s_css_page = ''; if (@file_exists('./style/css/_tree_' . $this->alias_id($tree) . '.css')) { $s_css_page = $this->alias_id($tree) . '/'; } elseif ($this->css_parent($tree)) { if (empty($tree['tree_css_var'])) { $tree['tree_css_var'] = 'parent'; } $ary_css_var = false; switch ($tree['tree_css_var']) { case 'parent': case 'subparent': case 'node': $ary_css_var = ${$tree['tree_css_var']}; break; default: if (is_numeric($tree['tree_css_var'])) { $sql = 'SELECT * FROM _tree WHERE tree_id = ' . (int) $tree['tree_css_var']; if ($css_var_row = $this->_fieldrow($sql)) { $ary_css_var = $css_var_row; } } break; } if ($ary_css_var !== false) { $s_css_page = $this->alias_id($ary_css_var) . '/'; } } //$tree['tree_content'] = $this->parse($tree['tree_content']); $tv = array('ADI' => $core->v('address') . 'container/images/a_' . ($this->css_parent($tree) ? $this->css_var($tree) : $tree['tree_id']) . '/', 'V_TREE' => $tree['tree_id'], 'V_CSS' => $s_css_page, 'V_SUBJECT' => $tree['tree_subject'], 'V_CONTENT' => $tree['tree_content'], 'V_COMMENTS' => $tree['tree_comments'], 'V_ALLOW_COMMENTS' => $tree['tree_allow_comments'], 'U_COMMENTS' => _link($this->alias_id($tree)), 'U_XCF' => _link($this->alias_id($tree) . '-xs.jpg', false, false)); $this->as_vars($tv); $tree['tree_subject'] = strip_tags($tree['tree_subject']); // if ($tree['tree_alias'] != 'home') { if ($node['tree_id'] != $parent['tree_id']) { $this->navigation($node['tree_subject'], $this->alias_id($node)); } if ($tree['tree_level'] > 2) { if ($parent['tree_id'] && $node['tree_id'] && $tree['tree_level'] > 3) { $this->navigation('...'); } $this->navigation($subparent['tree_subject'], $this->alias_id($subparent)); } if ($parent['tree_id']) { $this->navigation($parent['tree_subject'], $this->alias_id($parent)); } $this->navigation($tree['tree_subject'], $this->alias_id($tree)); } if ($user->d('is_member')) { $i = 0; $auth_tree = array('create', 'modify', 'remove'); foreach ($auth_tree as $row) { if ($user->auth_get('cp_' . $row)) { if (!$i) { $style->assign_block_vars('auth', array()); } $lang = 'CP_AUTH_' . strtoupper($row); $style->assign_block_vars('auth.row', array('U_LINK' => _link('cp', array($row, $this->alias_id($tree, false, false, false))), 'V_NAME' => _lang($lang))); $i++; } } } // $this->template = 'tree'; if (!empty($tree['tree_template']) && @file_exists('./style/pages/' . $tree['tree_template'] . '.htm')) { $this->template = 'pages/' . $tree['tree_template']; } // TODO: 304 header response header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $tree['tree_edited']) . ' GMT'); return; }