diff --git a/templates/dir.cpp b/templates/dir.cpp index 408bc03..48e2f31 100755 --- a/templates/dir.cpp +++ b/templates/dir.cpp @@ -122,7 +122,8 @@ void dir_can_use_mkdir(Info & i) static std::wstring dir_parents_str; -void dir_is(Info & i) + +bool dir_is(const std::wstring & par) { dir_parents_str.clear(); @@ -132,11 +133,23 @@ void dir_is(Info & i) dir_parents_str += '/'; } - if( !i.par.empty() && i.par[i.par.size()-1] != '/' ) + if( !par.empty() && par[par.size()-1] != '/' ) if( !dir_parents_str.empty() ) dir_parents_str.erase(dir_parents_str.size()-1); - i.res = (i.par == dir_parents_str); + return par == dir_parents_str; +} + + +void dir_is(Info & i) +{ + i.res = dir_is(i.par); +} + + +void dir_is_no(Info & i) +{ + i.res = !dir_is(i.par); } @@ -154,6 +167,13 @@ void dir_has_parents(Info & i) } +void dir_level_is(Info & i) +{ + i.res = (cur->request->dir_tab.size() == size_t(Toi(i.par))); +} + + + static std::vector dir_childs_table; @@ -337,6 +357,11 @@ void dir_last_url_is(Info & i) i.res = cur->request->dir_tab.back()->url == i.par; } +void dir_last_url_is_no(Info & i) +{ + i.res = cur->request->dir_tab.back()->url != i.par; +} + void dir_last_date_creation(Info & i) { diff --git a/templates/item.cpp b/templates/item.cpp index 3be7fe9..8b4cfac 100755 --- a/templates/item.cpp +++ b/templates/item.cpp @@ -33,6 +33,11 @@ void item_is(Info & i) } +void item_no_is(Info & i) +{ + i.res = !cur->request->is_item; +} + void item_id(Info & i) { @@ -162,6 +167,15 @@ void item_url_is(Info & i) } +void item_url_is_no(Info & i) +{ + if( !cur->request->is_item ) + i.res = true; + else + i.res = (cur->request->item.url != i.par); +} + + void item_link(Info & i) { doc_proto(i); diff --git a/templates/templates.cpp b/templates/templates.cpp index d6a3cfe..9d84b51 100755 --- a/templates/templates.cpp +++ b/templates/templates.cpp @@ -191,7 +191,9 @@ void Templates::CreateFunctions() ezc_functions.Insert("dir_can_use_emacs", dir_can_use_emacs); ezc_functions.Insert("dir_can_use_mkdir", dir_can_use_mkdir); ezc_functions.Insert("dir_is", dir_is); + ezc_functions.Insert("dir_is_no", dir_is_no); ezc_functions.Insert("dir_has_parents", dir_has_parents); + ezc_functions.Insert("dir_level_is", dir_level_is); ezc_functions.Insert("dir_childs_tab", dir_childs_tab); ezc_functions.Insert("dir_childs_is_parent", dir_childs_is_parent); @@ -210,6 +212,7 @@ void Templates::CreateFunctions() ezc_functions.Insert("dir_last_user", dir_last_user); ezc_functions.Insert("dir_last_url", dir_last_url); ezc_functions.Insert("dir_last_url_is", dir_last_url_is); + ezc_functions.Insert("dir_last_url_is_no", dir_last_url_is_no); ezc_functions.Insert("dir_last_date_creation", dir_last_date_creation); ezc_functions.Insert("dir_last_date_modification", dir_last_date_modification); ezc_functions.Insert("dir_last_date_creation_nice", dir_last_date_creation_nice); @@ -276,6 +279,7 @@ void Templates::CreateFunctions() item */ ezc_functions.Insert("item_is", item_is); + ezc_functions.Insert("item_no_is", item_no_is); ezc_functions.Insert("item_id", item_id); ezc_functions.Insert("item_subject", item_subject); ezc_functions.Insert("item_subject_noescape", item_subject_noescape); @@ -288,6 +292,7 @@ void Templates::CreateFunctions() ezc_functions.Insert("item_dir", item_dir); ezc_functions.Insert("item_url", item_url); ezc_functions.Insert("item_url_is", item_url_is); + ezc_functions.Insert("item_url_is_no", item_url_is_no); ezc_functions.Insert("item_link", item_link); ezc_functions.Insert("item_filetype_is_none", item_filetype_is_none); ezc_functions.Insert("item_filetype_is_image", item_filetype_is_image); diff --git a/templates/templates.h b/templates/templates.h index 1ef9d22..86e639f 100755 --- a/templates/templates.h +++ b/templates/templates.h @@ -101,7 +101,9 @@ namespace TemplatesFunctions void dir_can_use_emacs(Info & i); void dir_can_use_mkdir(Info & i); void dir_is(Info & i); + void dir_is_no(Info & i); void dir_has_parents(Info & i); + void dir_level_is(Info & i); void dir_childs_tab(Info & i); void dir_childs_is_parent(Info & i); @@ -120,6 +122,7 @@ namespace TemplatesFunctions void dir_last_user(Info & i); void dir_last_url(Info & i); void dir_last_url_is(Info & i); + void dir_last_url_is_no(Info & i); void dir_last_date_creation(Info & i); void dir_last_date_modification(Info & i); void dir_last_date_creation_nice(Info & i); @@ -186,7 +189,8 @@ namespace TemplatesFunctions /* item */ - void item_is(Info & i); // !! change to is_item lub na item_defined + void item_is(Info & i); + void item_no_is(Info & i); void item_id(Info & i); void item_subject(Info & i); void item_subject_noescape(Info & i); @@ -201,6 +205,7 @@ namespace TemplatesFunctions void item_dir(Info & i); void item_url(Info & i); void item_url_is(Info & i); + void item_url_is_no(Info & i); void item_link(Info & i); void item_filetype_is_none(Info & i); void item_filetype_is_image(Info & i);