Example #1
0
function cot_build_structure_folio_tree($parent = '', $selected = array(), $level = 0, $template = '')
{
    global $structure, $cfg, $db, $sys;
    global $i18n_notmain, $i18n_locale, $i18n_write, $i18n_admin, $i18n_read, $db_i18n_pages;
    if (empty($parent)) {
        $i18n_enabled = $i18n_read;
        $children = array();
        foreach ($structure['folio'] as $i => $x) {
            if (mb_substr_count($structure['folio'][$i]['path'], ".") == 0) {
                $children[] = $i;
            }
        }
    } else {
        $i18n_enabled = $i18n_read && cot_i18n_enabled($parent);
        $children = cot_structure_children('folio', $parent, false, false);
    }
    //cot_print($children, $parent);
    $t1 = new XTemplate(cot_tplfile(array('folio', 'tree', $template), 'module'));
    if (count($children) == 0) {
        return false;
    }
    $jj = 0;
    foreach ($children as $row) {
        $jj++;
        $t1->assign(array("ROW_TITLE" => htmlspecialchars($structure['folio'][$row]['title']), "ROW_DESC" => $structure['folio'][$row]['desc'], "ROW_COUNT" => $structure['folio'][$row]['count'], "ROW_ICON" => $structure['folio'][$row]['icon'], "ROW_HREF" => cot_url("folio", "c=" . $row . "&type=" . $type), "ROW_SELECTED" => in_array($row, $selected) ? 1 : 0, "ROW_SUBCAT" => cot_build_structure_folio_tree($row, $selected, $level + 1), "ROW_LEVEL" => $level, "ROW_ODDEVEN" => cot_build_oddeven($jj), "ROW_JJ" => $jj));
        if ($i18n_enabled && $i18n_notmain) {
            $x_i18n = cot_i18n_get_cat($row, $i18n_locale);
            if ($x_i18n) {
                $urlparams = !$cfg['plugin']['i18n']['omitmain'] || $i18n_locale != $cfg['defaultlang'] ? "c={$row}&l={$i18n_locale}" : "c={$row}";
                $t1->assign(array('ROW_URL' => cot_url('folio', $urlparams), 'ROW_TITLE' => $x_i18n['title'], 'ROW_DESC' => $x_i18n['desc']));
            }
        }
        $t1->parse("MAIN.CATS");
        $t1->assign(array("TITLE" => htmlspecialchars($structure['folio'][$parent]['title']), "DESC" => $structure['folio'][$parent]['desc'], "COUNT" => $structure['folio'][$parent]['count'], "ICON" => $structure['folio'][$parent]['icon'], "HREF" => cot_url("folio", "c=" . $parent), "LEVEL" => $level));
    }
    if ($jj == 0) {
        return false;
    }
    $t1->parse("MAIN");
    return $t1->text("MAIN");
}
function cot_build_structure_market_tree($parent = '', $selected = '', $level = 0, $template = '')
{
    global $structure, $cfg, $db, $sys, $cot_extrafields, $db_structure;
    global $i18n_notmain, $i18n_locale, $i18n_write, $i18n_admin, $i18n_read, $db_i18n_pages;
    $urlparams = array();
    /* === Hook === */
    foreach (cot_getextplugins('market.tree.first') as $pl) {
        include $pl;
    }
    /* ===== */
    if (empty($parent)) {
        $i18n_enabled = $i18n_read;
        $children = array();
        foreach ($structure['market'] as $i => $x) {
            if (mb_substr_count($structure['market'][$i]['path'], ".") == 0) {
                $children[] = $i;
            }
        }
    } else {
        $i18n_enabled = $i18n_read && cot_i18n_enabled($parent);
        $children = $structure['market'][$parent]['subcats'];
    }
    $t1 = new XTemplate(cot_tplfile(array('market', 'tree', $template), 'module'));
    /* === Hook === */
    foreach (cot_getextplugins('market.tree.main') as $pl) {
        include $pl;
    }
    /* ===== */
    if (count($children) == 0) {
        return false;
    }
    $t1->assign(array("TITLE" => htmlspecialchars($structure['market'][$parent]['title']), "DESC" => $structure['market'][$parent]['desc'], "COUNT" => $structure['market'][$parent]['count'], "ICON" => $structure['market'][$parent]['icon'], "HREF" => cot_url("market", $urlparams + array('c' => $parent)), "LEVEL" => $level));
    $jj = 0;
    /* === Hook - Part1 : Set === */
    $extp = cot_getextplugins('market.tree.loop');
    /* ===== */
    foreach ($children as $row) {
        $jj++;
        $urlparams['c'] = $row;
        $subcats = $structure['market'][$row]['subcats'];
        $t1->assign(array("ROW_TITLE" => htmlspecialchars($structure['market'][$row]['title']), "ROW_DESC" => $structure['market'][$row]['desc'], "ROW_COUNT" => $structure['market'][$row]['count'], "ROW_ICON" => $structure['market'][$row]['icon'], "ROW_HREF" => cot_url("market", $urlparams), "ROW_SELECTED" => is_array($selected) && in_array($row, $selected) || !is_array($selected) && $row == $selected ? 1 : 0, "ROW_SUBCAT" => count($subcats) > 0 ? cot_build_structure_market_tree($row, $selected, $level + 1) : '', "ROW_LEVEL" => $level, "ROW_ODDEVEN" => cot_build_oddeven($jj), "ROW_JJ" => $jj));
        // Extra fields for structure
        foreach ($cot_extrafields[$db_structure] as $exfld) {
            $uname = strtoupper($exfld['field_name']);
            $t1->assign(array('ROW_' . $uname . '_TITLE' => isset($L['structure_' . $exfld['field_name'] . '_title']) ? $L['structure_' . $exfld['field_name'] . '_title'] : $exfld['field_description'], 'ROW_' . $uname => cot_build_extrafields_data('structure', $exfld, $structure['market'][$row][$exfld['field_name']]), 'ROW_' . $uname . '_VALUE' => $structure['market'][$row][$exfld['field_name']]));
        }
        if ($i18n_enabled && $i18n_notmain) {
            $x_i18n = cot_i18n_get_cat($row, $i18n_locale);
            if ($x_i18n) {
                if (!$cfg['plugin']['i18n']['omitmain'] || $i18n_locale != $cfg['defaultlang']) {
                    $urlparams['l'] = $i18n_locale;
                }
                $t1->assign(array('ROW_URL' => cot_url('market', $urlparams), 'ROW_TITLE' => $x_i18n['title'], 'ROW_DESC' => $x_i18n['desc']));
            }
        }
        /* === Hook - Part2 : Include === */
        foreach ($extp as $pl) {
            include $pl;
        }
        /* ===== */
        $t1->parse("MAIN.CATS");
    }
    if ($jj == 0) {
        return false;
    }
    $t1->parse("MAIN");
    return $t1->text("MAIN");
}
function cot_usercategories_tree($chosen = '', $parent = '', $template = '', $level = 0)
{
    global $structure, $cfg, $gm, $group;
    global $i18n_notmain, $i18n_locale, $i18n_read;
    $urlparams = array('gm' => $gm, 'group' => $group);
    /* === Hook === */
    foreach (cot_getextplugins('usercategories.tree.first') as $pl) {
        include $pl;
    }
    /* ===== */
    if (empty($structure['usercategories'])) {
        return false;
    }
    if (!is_array($chosen)) {
        $chosen = explode(',', $chosen);
    }
    if (empty($parent)) {
        $i18n_enabled = $i18n_read;
        $children = array();
        foreach ($structure['usercategories'] as $i => $x) {
            if (mb_substr_count($structure['usercategories'][$i]['path'], ".") == 0) {
                $children[] = $i;
            }
        }
    } else {
        $i18n_enabled = $i18n_read && cot_i18n_enabled($parent);
        $children = $structure['usercategories'][$parent]['subcats'];
    }
    if (count($children) == 0) {
        return false;
    }
    $t1 = new XTemplate(cot_tplfile(array('usercategories', 'cattree', $template), 'plug'));
    /* === Hook === */
    foreach (cot_getextplugins('usercategories.tree.main') as $pl) {
        include $pl;
    }
    /* ===== */
    $level++;
    if ($parent) {
        $t1->assign(array("CAT_TITLE" => htmlspecialchars($structure['usercategories'][$parent]['title']), "CAT_DESC" => $structure['usercategories'][$parent]['desc'], "CAT_COUNT" => $structure['usercategories'][$parent]['count'], "CAT_ICON" => $structure['usercategories'][$parent]['icon']));
    }
    $t1->assign(array("CAT_URL" => cot_url("users", $urlparams + array('cat' => $parent)), "CAT_LEVEL" => $level));
    $jj = 0;
    /* === Hook - Part1 : Set === */
    $extp = cot_getextplugins('usercategories.tree.loop');
    /* ===== */
    foreach ($children as $row) {
        $jj++;
        $subcats = $structure['usercategories'][$row]['subcats'];
        $urlparams['cat'] = $row;
        $t1->assign(array("CAT_ROW_CAT" => $row, "CAT_ROW_TITLE" => htmlspecialchars($structure['usercategories'][$row]['title']), "CAT_ROW_DESC" => $structure['usercategories'][$row]['desc'], "CAT_ROW_COUNT" => $structure['usercategories'][$row]['count'], "CAT_ROW_ICON" => $structure['usercategories'][$row]['icon'], "CAT_ROW_URL" => cot_url("users", $urlparams), "CAT_ROW_SELECTED" => is_array($chosen) && in_array($row, $chosen) || !is_array($chosen) && $row == $chosen ? 1 : 0, "CAT_ROW_SUBCAT" => count($subcats) > 0 ? cot_usercategories_tree($chosen, $row, $template, $level) : '', "CAT_ROW_ODDEVEN" => cot_build_oddeven($jj), "CAT_ROW_JJ" => $jj));
        if ($i18n_enabled && $i18n_notmain) {
            $x_i18n = cot_i18n_get_cat($row, $i18n_locale);
            if ($x_i18n) {
                if (!$cfg['plugin']['i18n']['omitmain'] || $i18n_locale != $cfg['defaultlang']) {
                    $urlparams['l'] = $i18n_locale;
                }
                $t1->assign(array('CAT_ROW_URL' => cot_url('users', $urlparams), 'CAT_ROW_TITLE' => $x_i18n['title'], 'CAT_ROW_DESC' => $x_i18n['desc']));
            }
        }
        /* === Hook - Part2 : Include === */
        foreach ($extp as $pl) {
            include $pl;
        }
        /* ===== */
        $t1->parse("MAIN.CAT_ROW");
    }
    if ($jj == 0) {
        return false;
    }
    $t1->parse("MAIN");
    return $t1->text("MAIN");
}
Example #4
0
/* ====================
[BEGIN_COT_EXT]
Hooks=page.main
Order=5
[END_COT_EXT]
==================== */
/**
 * I18n for pages: redefines page body and title
 *
 * @package I18n
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */
defined('COT_CODE') or die('Wrong URL');
$i18n_enabled = $i18n_read && cot_i18n_enabled($pag['page_cat']);
if ($i18n_enabled && $i18n_notmain) {
    $pag_i18n = cot_i18n_get_page($id, $i18n_locale);
    $cat_i18n = cot_i18n_get_cat($pag['page_cat'], $i18n_locale);
    if (!$cat_i18n) {
        $cat_i18n =& $structure['page'][$pag['page_cat']];
    }
    if ($pag_i18n) {
        // Override <title>, subtitle and desc
        $title_params = array('TITLE' => $pag_i18n['ipage_title'], 'CATEGORY' => $cat_i18n['title']);
        $out['subtitle'] = cot_title($cfg['page']['title_page'], $title_params);
        $out['desc'] = htmlspecialchars(strip_tags($pag_i18n['ipage_desc']));
        // Enable indexing
        $sys['noindex'] = false;
        // Merge with page data
        $pag = array_merge($pag, $pag_i18n);
Example #5
0
         cot_message(cot_rc('i18n_items_updated', array('cnt' => $updated_cnt)));
     }
     if ($removed_cnt > 0) {
         cot_message(cot_rc('i18n_items_removed', array('cnt' => $removed_cnt)));
     }
     cot_redirect(cot_url('plug', "e=i18n&m=structure&l={$i18n_locale}&d={$durl}", '', true));
 }
 $t = new XTemplate(cot_tplfile('i18n.structure', 'plug'));
 // Render table
 $ii = 0;
 $k = -1;
 /* === Hook - Part1 : Set === */
 $extp = cot_getextplugins('i18n.structure.loop');
 /* ===== */
 foreach ($structure['page'] as $code => $row) {
     if (cot_i18n_enabled($code)) {
         $k++;
         if ($k < $d || $ii == $maxperpage) {
             continue;
         }
         $cat_i18n = $i18n_structure[$code][$i18n_locale];
         $t->assign(array('I18N_CATEGORY_ROW_TITLE' => htmlspecialchars($row['title']), 'I18N_CATEGORY_ROW_DESC' => htmlspecialchars($row['desc']), 'I18N_CATEGORY_ROW_CODE_NAME' => "code[{$ii}]", 'I18N_CATEGORY_ROW_CODE_VALUE' => $code, 'I18N_CATEGORY_ROW_ITITLE_NAME' => "title[{$ii}]", 'I18N_CATEGORY_ROW_ITITLE_VALUE' => htmlspecialchars($cat_i18n['title']), 'I18N_CATEGORY_ROW_IDESC_NAME' => "desc[{$ii}]", 'I18N_CATEGORY_ROW_IDESC_VALUE' => htmlspecialchars($cat_i18n['desc']), 'I18N_CATEGORY_ROW_ODDEVEN' => cot_build_oddeven($ii)));
         /* === Hook - Part2 : Include === */
         foreach ($extp as $pl) {
             include $pl;
         }
         /* ===== */
         $t->parse('MAIN.I18N_CATEGORY_ROW');
         $ii++;
     }
 }
function cot_usercategories_tree($chosen = '', $parent = '', $template = '', $level = 0)
{
    global $structure, $cfg, $gm, $group;
    global $i18n_notmain, $i18n_locale, $i18n_read;
    if (empty($structure['usercategories'])) {
        return false;
    }
    if (!is_array($chosen)) {
        $chosen = explode(',', $chosen);
    }
    if (empty($parent)) {
        $i18n_enabled = $i18n_read;
        $children = array();
        foreach ($structure['usercategories'] as $i => $x) {
            if (mb_substr_count($structure['usercategories'][$i]['path'], ".") == 0) {
                $children[] = $i;
            }
        }
    } else {
        $i18n_enabled = $i18n_read && cot_i18n_enabled($parent);
        $children = cot_structure_children('usercategories', $parent, false, false);
    }
    if (count($children) == 0) {
        return false;
    }
    $t1 = new XTemplate(cot_tplfile(array('usercategories', 'cattree', $template), 'plug'));
    $level++;
    $jj = 0;
    foreach ($children as $row) {
        $jj++;
        $subcats = cot_structure_children('usercategories', $row, false, false);
        $t1->assign(array("CAT_ROW_CAT" => $row, "CAT_ROW_TITLE" => htmlspecialchars($structure['usercategories'][$row]['title']), "CAT_ROW_DESC" => $structure['usercategories'][$row]['desc'], "CAT_ROW_COUNT" => $structure['usercategories'][$row]['count'], "CAT_ROW_ICON" => $structure['usercategories'][$row]['icon'], "CAT_ROW_URL" => cot_url("users", "gm=" . $gm . "&cat=" . $row . "&group=" . $group), "CAT_ROW_SELECTED" => is_array($chosen) && in_array($row, $chosen) || !is_array($chosen) && $row == $chosen ? 1 : 0, "CAT_ROW_SUBCAT" => count($subcats) > 0 ? cot_usercategories_tree($chosen, $row, $template, $level) : '', "CAT_ROW_ODDEVEN" => cot_build_oddeven($jj), "CAT_ROW_JJ" => $jj));
        if ($i18n_enabled && $i18n_notmain) {
            $x_i18n = cot_i18n_get_cat($row, $i18n_locale);
            if ($x_i18n) {
                $urlparams = !$cfg['plugin']['i18n']['omitmain'] || $i18n_locale != $cfg['defaultlang'] ? "gm=" . $gm . "&cat=" . $row . "&group=" . $group . "&l=" . $i18n_locale : "gm=" . $gm . "&cat=" . $row . "&group=" . $group;
                $t1->assign(array('CAT_ROW_URL' => cot_url('users', $urlparams), 'CAT_ROW_TITLE' => $x_i18n['title'], 'CAT_ROW_DESC' => $x_i18n['desc']));
            }
        }
        $t1->parse("MAIN.CAT_ROW");
        if ($parent) {
            $t1->assign(array("CAT_TITLE" => htmlspecialchars($structure['usercategories'][$parent]['title']), "CAT_DESC" => $structure['usercategories'][$parent]['desc'], "CAT_COUNT" => $structure['usercategories'][$parent]['count'], "CAT_ICON" => $structure['usercategories'][$parent]['icon']));
        }
        $t1->assign(array("CAT_URL" => cot_url("users", "gm=" . $gm . "&cat=" . $parent . "&group=" . $group), "CAT_LEVEL" => $level));
    }
    if ($jj == 0) {
        return false;
    }
    $t1->parse("MAIN");
    return $t1->text("MAIN");
}
Example #7
0
/* ====================
[BEGIN_COT_EXT]
Hooks=page.list.query
Order=5
[END_COT_EXT]
==================== */
/**
 * Modifies page selection query if not in main category
 * to select only translated pages and localize them
 *
 * @package I18n
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */
defined('COT_CODE') or die('Wrong URL');
$i18n_enabled = $i18n_read && cot_i18n_enabled($c);
if ($i18n_enabled && $i18n_notmain) {
    $list_url_path = array('c' => $c, 'ord' => $o, 'p' => $p);
    if ($s != $cfg['page']['cat_' . $c]['order']) {
        $list_url_path['s'] = $s;
    }
    if ($w != $cfg['page']['cat_' . $c]['way']) {
        $list_url_path['w'] = $w;
    }
    if (!$cfg['plugin']['i18n']['omitmain'] || $i18n_locale != $cfg['defaultlang']) {
        $list_url_path['l'] = $i18n_locale;
    }
    $list_url = cot_url('page', $list_url_path);
    $join_columns .= ',i18n.*';
    $join_condition .= " LEFT JOIN {$db_i18n_pages} AS i18n ON i18n.ipage_id = p.page_id AND i18n.ipage_locale = '{$i18n_locale}' AND i18n.ipage_id IS NOT NULL";
}