我想从我的项目中替换com.nineoldandroids库的依赖项,并将其替换为android本机库.
我正在尝试基于这个http://www.tutecentral.com/android-swipe-listview/制作一个项目.但是,我不需要支持低于v11的Android版本.因此,无需使用此库.但我找不到在其中使用的内容,而不是对代码本身进行更改.
该项目导入类
import com.nineoldandroids.animation.Animator;
import com.nineoldandroids.animation.AnimatorListenerAdapter;
import com.nineoldandroids.animation.ValueAnimator;
import com.nineoldandroids.view.ViewHelper;
import static com.nineoldandroids.view.ViewHelper.setAlpha;
import static com.nineoldandroids.view.ViewHelper.setTranslationX;
import static com.nineoldandroids.view.ViewPropertyAnimator.animate;
Run Code Online (Sandbox Code Playgroud)
谢谢.
我在Controller init()中有一个常见样式列表:
$this->view->headLink()->setStylesheet('/style/style.css');
$this->view->headLink()->appendStylesheet('/style/style2.css');
$this->view->headLink()->appendStylesheet('/style/style3.css');
$this->view->headLink()->appendStylesheet('/style/forms.css');
$this->view->headLink()->appendStylesheet('/style/ie_patches.css','all','lte IE 7');
Run Code Online (Sandbox Code Playgroud)
我需要的是稍后在该控制器的一个动作中从堆栈中删除其中一个样式表的方法.
感谢您的帮助,请原谅我的英语
我在流体模板中使用这个条件:
<f:if condition="{settings.image.className} == 'lightbox'">
<f:then>
....do something
</f:then>
<f:else>
<f:if condition="{settings.image.className} !== 'lightbox'">
<f:then>
....do something else
</f:then>
</f:if>
</f:else>
Run Code Online (Sandbox Code Playgroud)
它工作正常但如果$ settings.image.className"类似于"灯箱容器"而不仅仅是"灯箱"它当然不起作用.不幸的是我不知道怎么写一个condtion来检查$ settings.image.className是否包含"灯箱".
我找到的唯一指令是: ViewHelper Reference.但是我不知道如何应用它.
我写了一个表单视图助手,它扩展Zend\Form\View\Helper\FormMultiCheckbox
并覆盖了它的renderOptions(...)
方法:
<?php
namespace MyNamespace\Form\View\Helper;
use Zend\Form\View\Helper\FormMultiCheckbox as ZendFormMultiCheckbox;
class FormMultiCheckbox extends ZendFormMultiCheckbox
{
protected function renderOptions(...)
{
...
$label = $escapeHtmlHelper($label);
$labelOpen = $labelHelper->openTag($labelAttributes);
switch ($labelPosition) {
case self::LABEL_PREPEND:
$template = $labelOpen . $label . $labelClose . '%s';
break;
case self::LABEL_APPEND:
default:
$template = '%s' . $labelOpen . $label . $labelClose;
break;
}
$markup = sprintf($template, $input);
$combinedMarkup[] = $markup;
...
}
}
Run Code Online (Sandbox Code Playgroud)
下一步是注册新的视图助手.我这样做就像这里所示:
namespace Application;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
class Module {
... …
Run Code Online (Sandbox Code Playgroud) 下面的例子有内联符号吗?
<f:if condition="{value}==1">
<f:then>Value is 1</f:then>
<f:else if="{value}==2">Value is 2</f:else>
</f:if>
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助
我已经为一个特殊的,复杂的目的创建了一个新的表单元素类(带有附加按钮的文本输入字段,用于打开"搜索向导"弹出窗口).
为了正确呈现这个元素,我还创建了一个表单视图助手.一切正常,到目前为止还不错.
但是,如果我尝试使用FormCollection视图助手渲染表单,则该元素将呈现为基本输入元素.这是因为FormCollection助手依赖的FormElement视图助手使用硬编码的if子句系列将元素的类型映射到特定的表单视图助手.它无法映射我的元素类,因此可以回归FormInput
.
即(取自Zend/Form/View/Helper/FormElement.php,第41-49行):
if ($element instanceof Element\Button) {
$helper = $renderer->plugin('form_button');
return $helper($element);
}
if ($element instanceof Element\Captcha) {
$helper = $renderer->plugin('form_captcha');
return $helper($element);
}
...
$helper = $renderer->plugin('form_input');
return $helper($element);
Run Code Online (Sandbox Code Playgroud)
等等.
我有点卡在这里,因为这种架构并没有真正提升可扩展性.
我想到的唯一解决方案(除了手工渲染表单)是扩展FormElement视图助手类,从而创建我自己的CustomFormElement视图助手.但是,由于其复杂性,我将自定义元素放入自己的模块中.所以我必须动态编写这个CustomFormElement助手来添加来自任何模块的自定义元素.我不认为这是推荐的程序.
还有其他解决方案,或者甚至是我的完整方法未经推荐?提前致谢!
我有一个 viewhelper,它在 Typo3 V7.x 中运行良好,但在 V8.x 中,它的输出不再是纯 html,而是 html 编码的。
简化的viewhelper类:
namespace MyName\Teaserbox\ViewHelpers;
class TeaserboxViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
public function render ( $html = null ) {
return "<div><h2>$html</h2></div>"
}
}
Run Code Online (Sandbox Code Playgroud)
简化的 HTML:
<m:teaserbox><f:cObject typoscriptObjectPath="lib.someHTML"></f:cObject></m:teaserbox>
Run Code Online (Sandbox Code Playgroud)
输出类似于:
<div><h2>TEST</h2></div>
Run Code Online (Sandbox Code Playgroud) AARGH!我的TYPO3 6.2.11
工作很好!然后我更新了所有我的FLUIDTYPO3-Extensions
,现在我会收到一个错误:
Could not analyse class:FluidTYPO3\Flux\ViewHelpers\Flexform\SheetViewHelper maybe not loaded or no autoloader?
Run Code Online (Sandbox Code Playgroud)
这是更改日志,但对我来说没有明显的问题?FluidTYPO3:
flux 7.1.2 => 7.2.0
fluidcontent_core 1.0.3 => 1.1.0
fluidcontent 4.1.1 => 4.1.2
fluidpages 3.1.2 => 3.2.0
vhs 2.3.0 => 2.3.1
Run Code Online (Sandbox Code Playgroud)
我在所有模板和FLUX-FCE上更改了我的命名空间,xmlns:f
但这无济于事.从
xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
Run Code Online (Sandbox Code Playgroud)
至
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/FluidTYPO3/Flux/ViewHelpers"
f:schemaLocation="https://fluidtypo3.org/schemas/fluid-master.xsd"
xmlns:flux="http://typo3.org/ns/FluidTYPO3/Flux/ViewHelpers"
flux:schemaLocation="https://fluidtypo3.org/schemas/flux-master.xsd">
Run Code Online (Sandbox Code Playgroud)
没有.
这是一场灾难...我的网站因此错误而崩溃.我希望有人可以帮助我...(永远不要在晚上10点以后更新;)
在控制器中,我可以像这样调用viewRenderer帮助器:
$this->_helper->viewRenderer->setNoRender(true);
Run Code Online (Sandbox Code Playgroud)
如何在控制器动作助手中调用viewRenderer?假设我有一个Controller动作助手:
class Zend_Controller_Action_Helper_Ajaxrequest extends Zend_Controller_Action_Helper_Abstract{
public function test(){
//what I should do here
}
}
Run Code Online (Sandbox Code Playgroud) 我需要在流体模板中为完整的表行创建链接,此语法需要以下 html 代码(取自此问题)
<tr class="clickable-row" data-href="url://http://domain.com/index.php?...">
,我尝试使用内联 viewhelper 注释生成:
<tr class="clickable-row" data-href="url://{f:link.action(pageUid: settings.detailPid, absolute: 'TRUE', controller: 'Object', pluginName: 'Objects', action: 'detail', arguments: {object:item})}">
Run Code Online (Sandbox Code Playgroud)
这将链接包装在一个<a tag>
搞乱了一切的地方
viewhelper ×10
typo3 ×4
fluid ×3
php ×2
typo3-8.x ×2
action ×1
android ×1
animation ×1
animator ×1
autoloader ×1
controller ×1
flux ×1
forms ×1
helper ×1
stylesheet ×1
typo3-7.6.x ×1
view-helpers ×1
zend-form ×1